Hide menu
Loading...
Searching...
No Matches
cadex::ModelData::ModelElementUniqueVisitor Class Reference

Defines a visitor that visits each unique element only once. More...

#include <cadex/ModelData/ModelElementVisitor.hxx>

Inheritance diagram for cadex::ModelData::ModelElementUniqueVisitor:
cadex::ModelData::ModelElementVisitor

Public Member Functions

 ModelElementUniqueVisitor (ModelElementVisitor &theRef)
 Constructor.
 
void operator() (const Part &thePart) override
 
bool VisitEnter (const Assembly &theAssembly) override
 Enters an assembly.
 
void VisitLeave (const Assembly &theAssembly) override
 Leaves an assembly.
 
bool VisitEnter (const Instance &theInstance) override
 Enters an instance.
 
void VisitLeave (const Instance &theInstance) override
 Leaves an instance.
 

Detailed Description

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.

Examples
MTKConverter/Program.cs, MTKConverter/main.cxx, machining/dfm_analyzer/Program.cs, machining/dfm_analyzer/main.cxx, machining/feature_recognizer/Program.cs, machining/feature_recognizer/main.cxx, molding/dfm_analyzer/Program.cs, molding/dfm_analyzer/main.cxx, molding/feature_recognizer/Program.cs, molding/feature_recognizer/main.cxx, sheet_metal/dfm_analyzer/Program.cs, sheet_metal/dfm_analyzer/main.cxx, sheet_metal/feature_recognizer/Program.cs, sheet_metal/feature_recognizer/main.cxx, sheet_metal/unfolder/Program.cs, sheet_metal/unfolder/main.cxx, wall_thickness/analyzer/Program.cs, and wall_thickness/analyzer/main.cxx.

Constructor & Destructor Documentation

◆ ModelElementUniqueVisitor()

cadex::ModelData::ModelElementUniqueVisitor::ModelElementUniqueVisitor ( ModelElementVisitor & theRef)

Constructor.

theRef is a referred visitor which will be used to visit the elements.

Member Function Documentation

◆ operator()()

void cadex::ModelData::ModelElementUniqueVisitor::operator() ( const Part & thePart)
overridevirtual

Invokes operator() for the Ref() visitor if the part has not been already visited.

Implements cadex::ModelData::ModelElementVisitor.

◆ VisitEnter() [1/2]

bool cadex::ModelData::ModelElementUniqueVisitor::VisitEnter ( const Assembly & theAssembly)
overridevirtual

Enters an assembly.

Invokes VisitEnter() for the Ref() visitor if the assembly has not been already visited. Thus children of already visited assembly won't be visited again.

Implements cadex::ModelData::ModelElementVisitor.

◆ VisitEnter() [2/2]

bool cadex::ModelData::ModelElementUniqueVisitor::VisitEnter ( const Instance & theInstance)
overridevirtual

Enters an instance.

Invokes VisitEnter() for the Ref() visitor if the instance has not been already visited. Referred element of already visited instance won't be visited again.

Implements cadex::ModelData::ModelElementVisitor.

◆ VisitLeave() [1/2]

void cadex::ModelData::ModelElementUniqueVisitor::VisitLeave ( const Assembly & theAssembly)
overridevirtual

Leaves an assembly.

Invokes VisitLeave() of the Ref() visitor if the assembly is being visited for the first time.

Implements cadex::ModelData::ModelElementVisitor.

◆ VisitLeave() [2/2]

void cadex::ModelData::ModelElementUniqueVisitor::VisitLeave ( const Instance & theInstance)
overridevirtual

Leaves an instance.

Invokes VisitLeave() of the Ref() visitor if the instance is being visited for the first time.

Implements cadex::ModelData::ModelElementVisitor.