Defines a visitor that visits each unique element only once. More...
#include <cadex/ModelData_SceneGraphElementUniqueVisitor.hxx>
Public Member Functions | |
ModelData_SceneGraphElementUniqueVisitor (ModelData_Model::ElementVisitor &theRef) | |
Constructor. | |
virtual void | operator() (const ModelData_Part &thePart) override |
virtual bool | VisitEnter (const ModelData_Assembly &theAssembly) override |
Enters an assembly. | |
virtual void | VisitLeave (const ModelData_Assembly &theAssembly) override |
Leaves an assembly. | |
virtual bool | VisitEnter (const ModelData_Instance &theInstance) override |
Enters an instance. | |
virtual void | VisitLeave (const ModelData_Instance &theInstance) override |
Leaves an instance. | |
Defines a visitor that visits each unique element only once.
Children of already visited assemblies or referred element of already visited instances, or already visited parts will never be visited again.
Already visited instances or assemblies will be entered with Ref() visitor VisitEnter() as well as left with VisitLeave().
Uses the associated visitor (Reference()) to really visit an element.
cadex::ModelData_SceneGraphElementUniqueVisitor::ModelData_SceneGraphElementUniqueVisitor | ( | ModelData_Model::ElementVisitor & | theRef | ) |
Constructor.
theRef is a referred visitor which will be used to visit the elements.
|
overridevirtual |
Invokes operator() for the Ref() visitor if the part has not been already visited.
Implements cadex::ModelData_Model::ElementVisitor.
|
overridevirtual |
Enters an assembly.
Always invokes VisitEnter() for the Ref() visitor but returns true only if the assembly is being visited for the first time and Ref() visitor returned true. Thus children of already visited assembly won't be visited again.
Implements cadex::ModelData_Model::ElementVisitor.
|
overridevirtual |
Enters an instance.
Always invokes VisitEnter() for the Ref() visitor but returns true only if the instance is being visited for the first time and Ref() visitor returned true. Thus referred element of already visited instance won't be visited again.
Implements cadex::ModelData_Model::ElementVisitor.
|
overridevirtual |
Leaves an assembly.
Always invokes VisitLeave() of the Ref() visitor.
Implements cadex::ModelData_Model::ElementVisitor.
|
overridevirtual |
Leaves an instance.
Always invokes VisitLeave() of the Ref() visitor.
Implements cadex::ModelData_Model::ElementVisitor.