// // Vrml 97 library // Copyright (C) 1998 Chris Morley // // %W% %G% // VrmlNodeGeometry.cpp #include "VrmlNodeGeometry.h" #include "VrmlNodeType.h" // Define the fields of all built in geometry nodes VrmlNodeType *VrmlNodeGeometry::defineType(VrmlNodeType *t) { return VrmlNode::defineType(t); } VrmlNodeGeometry::VrmlNodeGeometry(VrmlScene *s) : VrmlNode(s), d_viewerObject(0) { } VrmlNodeGeometry::~VrmlNodeGeometry() { /* Need access to viewer to delete viewerObject...*/ } VrmlNodeGeometry* VrmlNodeGeometry::toGeometry() const { return (VrmlNodeGeometry*) this; } VrmlNodeColor *VrmlNodeGeometry::color() { return 0; } // Geometry nodes need only define insertGeometry(), not render(). void VrmlNodeGeometry::render(Viewer *v) { if ( d_viewerObject && isModified() ) { v->removeObject(d_viewerObject); d_viewerObject = 0; } if (d_viewerObject) v->insertReference(d_viewerObject); else { d_viewerObject = insertGeometry(v); clearModified(); } }