#include "MESH_PrimitiveMeshBuilderStateVariables.h" #include "MemReleaser.h" #include using namespace std; namespace X3DTK { namespace MESH { PrimitiveMeshBuilderStateVariables::PrimitiveMeshBuilderStateVariables() : _step(0.0f), _boundingBox(false), _center(SFVec3f(0.0f, 0.0f, 0.0f)), _size(SFVec3f(0.0f, 0.0f, 0.0f)) { } void PrimitiveMeshBuilderStateVariables::addNode(SFNode N) { _visitedNodes.push_back(N); } bool PrimitiveMeshBuilderStateVariables::getNode(SFNode N) const { return (std::find(_visitedNodes.begin(), _visitedNodes.end(), N) != _visitedNodes.end()); } void PrimitiveMeshBuilderStateVariables::addToDeleteNode(SFNode N) { _toDeleteNodes.push_back(N); } void PrimitiveMeshBuilderStateVariables::setParameters(float step, bool boundingBox) { if (step == 0.0f) _step = 30.0f; else _step = step; _boundingBox = boundingBox; } void PrimitiveMeshBuilderStateVariables::setCenter(const SFVec3f ¢er) { _center = center; } void PrimitiveMeshBuilderStateVariables::setSize(const SFVec3f &size) { _size = size; } void PrimitiveMeshBuilderStateVariables::init() { _visitedNodes.clear(); _toDeleteNodes.clear(); } void PrimitiveMeshBuilderStateVariables::finish() { MemReleaser *memreleaser = Singleton::getInstance(); for (MFNode::iterator it = _toDeleteNodes.begin(); it != _toDeleteNodes.end(); ++it) { cout << "releasing " << *it << endl; memreleaser->release(*it); } } } }