#include <cadex/Base_String.hxx>
#include <cadex/LicenseManager_Activate.h>
#include <cadex/ModelData_Assembly.hxx>
#include <cadex/ModelData_Body.hxx>
#include <cadex/ModelData_BodyList.hxx>
#include <cadex/ModelData_BRepRepresentation.hxx>
#include <cadex/ModelData_Instance.hxx>
#include <cadex/ModelData_Layer.hxx>
#include <cadex/ModelData_ModelReader.hxx>
#include <cadex/ModelData_Part.hxx>
#include <iostream>
#include "../../cadex_license.cxx"
using namespace std;
{
public:
LayerItemVisitor() : myPartsNb(0), myAssembliesNb(0), myInstancesNb(0), myShapesNb(0)
{
}
void GetElementsCount()
{
cout << "Number of parts: " << myPartsNb << endl;
cout << "Number of assemblies: " << myAssembliesNb << endl;
cout << "Number of instances: " << myInstancesNb << endl;
cout << "Number of shapes: " << myShapesNb << endl;
}
protected:
{
++myPartsNb;
++myAssembliesNb;
++myInstancesNb;
}
}
{
++myShapesNb;
}
private:
size_t myPartsNb;
size_t myAssembliesNb;
size_t myInstancesNb;
size_t myShapesNb;
};
{
protected:
{
LayerItemVisitor aLayerItemVisitor;
theLayer.
Accept (aLayerItemVisitor);
cout <<
"Layer " << theLayer.
Name() <<
" contains:" << endl;
aLayerItemVisitor.GetElementsCount();
}
};
{
public:
LayersFiller() : mySubshapesLayer ("SubshapesLayer"), mySGELayer ("SGELayer")
{
}
{
return mySGELayer;
}
{
return mySubshapesLayer;
}
protected:
{
mySGELayer.
Add (thePart);
if (aBRep) {
for (ModelData_BodyList::SizeType i = 0; i < aBodyList.
Size(); ++i) {
}
}
}
{
mySGELayer.Add (theElement);
return true;
}
private:
};
int main (int argc, char *argv[])
{
auto aKey = LicenseKey::Value();
if (!CADExLicense_Activate (aKey)) {
cerr << "Failed to activate CAD Exchanger license." << endl;
return 1;
}
if (argc != 2) {
cerr << "Usage: " << argv[0] << " <input_file>, where:" << endl;
cerr << " <input_file> is a name of the XML file to be read" << endl;
return 1;
}
const char* aSource = argv[1];
cerr << "Failed to read the file " << aSource << endl;
return 1;
}
ModelData_Model::LayerIterator aLayerIt (aModel);
if (!aLayerIt.HasNext()) {
LayersFiller aVisitor;
aModel.
AddLayer (aVisitor.SGELayer());
aModel.AddLayer (aVisitor.SubshapesLayer());
}
LayersVisitor aLayerVisitor;
aModel.
Accept (aLayerVisitor);
return 0;
}
Defines a group of scene graph element.
Definition: ModelData_Assembly.hxx:33
Defines precise Boundary Representation of part.
Definition: ModelData_BRepRepresentation.hxx:39
const ModelData_BodyList & Get() const
Returns an associated topological object.
Definition: ModelData_BRepRepresentation.cxx:626
void AddToLayer(const ModelData_Shape &theSubshape, const ModelData_Layer &theLayer)
Adds subshape to layer.
Definition: ModelData_BRepRepresentation.cxx:797
bool IsOfType() const
Returns true if the object has a type T.
Definition: ModelData_BaseObject.hxx:57
Base_UTF16String Name() const
Definition: ModelData_BaseObject.cxx:218
Defines a root topological shape that can be owned by B-Rep representation.
Definition: ModelData_Body.hxx:28
Defines a list of bodies.
Definition: ModelData_BodyList.hxx:31
Defines an occurrence of assembly or part in a scene graph.
Definition: ModelData_Instance.hxx:34
Defines a visitor of the layer elements.
Definition: ModelData_Layer.hxx:57
Provides a layer of objects.
Definition: ModelData_Layer.hxx:34
void Accept(ItemVisitor &theVisitor) const
Accepts the element visitor.
Definition: ModelData_Layer.cxx:280
void Add(const ModelData_SceneGraphElement &theElement)
Adds element to the layer.
Definition: ModelData_Layer.cxx:244
Provides combined methods VisitEnter() and VisitLeave() to visit all elements.
Definition: ModelData_Model.hxx:123
Defines a visitor of the layers.
Definition: ModelData_Model.hxx:164
Provides CAD Exchanger data model.
Definition: ModelData_Model.hxx:43
void Accept(ElementVisitor &theVisitor) const
Accepts a visitor.
Definition: ModelData_Model.cxx:833
Reads any format that CAD Exchanger can import.
Definition: ModelData_ModelReader.hxx:33
Defines a leaf node in the scene graph hiearchy.
Definition: ModelData_Part.hxx:35
ModelData_BRepRepresentation BRepRepresentation() const
Definition: ModelData_Part.cxx:360
Base class for part, instance and assembly.
Definition: ModelData_SceneGraphElement.hxx:39
Base class of topological shapes.
Definition: ModelData_Shape.hxx:37
Defines classes, types, and global functions related to CAD Exchanger.
Definition: A3DSTestLib.hxx:22