// // Vrml 97 library // Copyright (C) 1998 Chris Morley // // %W% %G% // VrmlNodeNormal.cpp #include "VrmlNodeNormal.h" #include "VrmlNodeType.h" static VrmlNode *creator( VrmlScene *s ) { return new VrmlNodeNormal(s); } // Define the built in VrmlNodeType:: "Normal" fields VrmlNodeType *VrmlNodeNormal::defineType(VrmlNodeType *t) { static VrmlNodeType *st = 0; if (! t) { if (st) return st; t = st = new VrmlNodeType("Normal", creator); } VrmlNode::defineType(t); // Parent class t->addExposedField("vector", VrmlField::MFVEC3F); return t; } VrmlNodeType *VrmlNodeNormal::nodeType() const { return defineType(0); } VrmlNodeNormal::VrmlNodeNormal(VrmlScene *scene) : VrmlNode(scene) { } VrmlNodeNormal::~VrmlNodeNormal() { } VrmlNode *VrmlNodeNormal::cloneMe() const { return new VrmlNodeNormal(*this); } VrmlNodeNormal* VrmlNodeNormal::toNormal() const { return (VrmlNodeNormal*) this; } ostream& VrmlNodeNormal::printFields(ostream& os, int indent) { if (d_vector.size() > 0) PRINT_FIELD(vector); return os; } // Set the value of one of the node fields. void VrmlNodeNormal::setField(const char *fieldName, const VrmlField &fieldValue) { if TRY_FIELD(vector, MFVec3f) else VrmlNode::setField(fieldName, fieldValue); }