#include "X3D_IndexedFaceSet.h" #include using namespace std; namespace X3DTK { namespace X3D { IndexedFaceSet::IndexedFaceSet() : X3DComposedGeometryNode() { define(Recorder::getTypeName("IndexedFaceSet", "Geometry3D")); define(Recorder::getAttribute("colorIndex", &IndexedFaceSet::_colorIndex, MFInt32())); define(Recorder::getAttribute("convex", &IndexedFaceSet::_convex, true)); define(Recorder::getAttribute("coordIndex", &IndexedFaceSet::_coordIndex, MFInt32())); define(Recorder::getAttribute("creaseAngle", &IndexedFaceSet::_creaseAngle, 0.0f)); define(Recorder::getAttribute("normalIndex", &IndexedFaceSet::_normalIndex, MFInt32())); define(Recorder::getAttribute("texCoordIndex", &IndexedFaceSet::_texCoordIndex, MFInt32())); } IndexedFaceSet::~IndexedFaceSet() { } void IndexedFaceSet::setColorIndex(const MFInt32 &colorIndex) { _colorIndex = colorIndex; if ((getNormalPerVertex()) && ((_colorIndex.empty()) || (_colorIndex.back() != -1))) _colorIndex.push_back(-1); } void IndexedFaceSet::setConvex(const SFBool &convex) { _convex = convex; } void IndexedFaceSet::setCoordIndex(const MFInt32 &coordIndex) { _coordIndex = coordIndex; if ((_coordIndex.empty()) || (_coordIndex.back() != -1)) _coordIndex.push_back(-1); } void IndexedFaceSet::setCreaseAngle(const SFFloat &creaseAngle) { _creaseAngle = creaseAngle; } void IndexedFaceSet::setNormalIndex(const MFInt32 &normalIndex) { _normalIndex = normalIndex; if ((getNormalPerVertex()) && ((_normalIndex.empty()) || (_normalIndex.back() != -1))) _normalIndex.push_back(-1); } void IndexedFaceSet::setTexCoordIndex(const MFInt32 &texCoordIndex) { _texCoordIndex = texCoordIndex; if ((_texCoordIndex.empty()) || (_texCoordIndex.back() != -1)) _texCoordIndex.push_back(-1); } } }