#include "MESH_ConnectedComComputer.h" #include "MESH_ConnectedComComputerCoreVisitor.h" #include "MESH_ConnectedComComputerMeshCoreVisitor.h" #include "MESH_ConnectedComComputerStateVariables.h" #include "DFSGraphTraversal.h" #include "Progress.h" #include using namespace std; namespace X3DTK { namespace MESH { ConnectedComComputer::ConnectedComComputer() : X3DMultiPassProcessor() { progress = new Progress(256); Singleton::getInstance()->setProgress(progress); setGraphTraversal("Vertex", new DFSGraphTraversal()); setComponentVisitor("Vertex", new ConnectedComComputerCoreVisitor(progress)); setGraphTraversal("Mesh", new DFSGraphTraversal()); setComponentVisitor("Mesh", new ConnectedComComputerMeshCoreVisitor()); } ConnectedComComputer::~ConnectedComComputer() { Singleton::removeInstance(); delete progress; } void ConnectedComComputer::compute(Scene *S) { compute(static_cast(S)); S->getProcessHistory().addEntry("MESH::ConnectedComComputer"); } void ConnectedComComputer::compute(X3DNode *N) { Singleton::getInstance()->init(); traverse("Vertex", N); Singleton::getInstance()->finish(); Singleton::getInstance()->init(); traverse("Mesh", N); Singleton::getInstance()->finish(); } void ConnectedComComputer::setSelectedNodes(const MFNode &selectedNodes) { Singleton::getInstance()->setSelectedNodes(selectedNodes); } } }