// // Vrml 97 library // Copyright (C) 1998 Chris Morley // // %W% %G% // VrmlNodeWorldInfo.cpp #include "VrmlNodeWorldInfo.h" #include "VrmlNodeType.h" #include "VrmlScene.h" // WorldInfo factory. static VrmlNode *creator(VrmlScene *s) { return new VrmlNodeWorldInfo(s); } // Define the built in VrmlNodeType:: "WorldInfo" fields VrmlNodeType *VrmlNodeWorldInfo::defineType(VrmlNodeType *t) { static VrmlNodeType *st = 0; if (! t) { if (st) return st; t = st = new VrmlNodeType("WorldInfo", creator); } VrmlNodeChild::defineType(t); // Parent class t->addField("info", VrmlField::MFSTRING); t->addField("title", VrmlField::SFSTRING); return t; } VrmlNodeType *VrmlNodeWorldInfo::nodeType() const { return defineType(0); } VrmlNodeWorldInfo::VrmlNodeWorldInfo(VrmlScene *scene) : VrmlNodeChild(scene) { } VrmlNodeWorldInfo::~VrmlNodeWorldInfo() { } VrmlNode *VrmlNodeWorldInfo::cloneMe() const { return new VrmlNodeWorldInfo(*this); } ostream& VrmlNodeWorldInfo::printFields(ostream& os, int indent) { if (d_title.get()) PRINT_FIELD(title); if (d_info.size() > 0) PRINT_FIELD(info); return os; } // Set the value of one of the node fields. void VrmlNodeWorldInfo::setField(const char *fieldName, const VrmlField &fieldValue) { if TRY_FIELD(info, MFString) else if TRY_FIELD(title, SFString) else VrmlNode::setField(fieldName, fieldValue); }