Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Data Structures
XCAFDoc_ShapeTool.hxx File Reference
#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_XCAFDoc_ShapeTool.hxx>
#include <XCAFDoc_DataMapOfShapeLabel.hxx>
#include <Standard_Boolean.hxx>
#include <TDF_Attribute.hxx>
#include <Standard_Integer.hxx>
#include <Handle_TDF_Attribute.hxx>
#include <Handle_TDF_RelocationTable.hxx>
#include <Handle_XCAFDoc_GraphNode.hxx>

Data Structures

class  XCAFDoc_ShapeTool
 A tool to store shapes in an XDE
document in the form of assembly structure, and to maintain this structure.
The API provided by this class allows to work with this
structure regardless of its low-level implementation.
All the shapes are stored on child labels of a main label which is
XCAFDoc_DocumentTool::LabelShapes(). The label for assembly also has
sub-labels, each of which represents the instance of
another shape in that assembly (component). Such sub-label
stores reference to the label of the original shape in the form
of TDataStd_TreeNode with GUID XCAFDoc::ShapeRefGUID(), and its
location encapsulated into the NamedShape.
For correct work with an XDE document, it is necessary to use
methods for analysis and methods for working with shapes.
For example:
if ( STool->IsAssembly(aLabel) )
{ Standard_Boolean subchilds = Standard_False; (default)
Standard_Integer nbc = STool->NbComponents
(aLabel[,subchilds]);
}
If subchilds is True, commands also consider sub-levels. By
default, only level one is checked.
In this example, number of children from the first level of
assembly will be returned. Methods for creation and initialization:
Constructor:
XCAFDoc_ShapeTool::XCAFDoc_ShapeTool()
Getting a guid:
Standard_GUID GetID ();
Creation (if does not exist) of ShapeTool on label L:
Handle(XCAFDoc_ShapeTool) XCAFDoc_ShapeTool::Set(const TDF_Label& L)
Analyze whether shape is a simple shape or an instance or a
component of an assembly or it is an assembly ( methods of analysis).
For example:
STool->IsShape(aLabel) ;
Analyze that the label represents a shape (simple
shape, assembly or reference) or
STool->IsTopLevel(aLabel);
Analyze that the label is a label of a top-level shape.
Work with simple shapes, assemblies and instances (
methods for work with shapes).
For example:
Add shape:
Standard_Boolean makeAssembly;
// True to interpret a Compound as an Assembly, False to take it
as a whole
aLabel = STool->AddShape(aShape, makeAssembly);
Get shape:
TDF_Label aLabel...
// A label must be present if
(aLabel.IsNull()) { ... no such label : abandon .. }
TopoDS_Shape aShape;
aShape = STool->GetShape(aLabel);
if (aShape.IsNull())
{ ... this label is not for a Shape ... }
To get a label from shape.
Standard_Boolean findInstance = Standard_False;
(this is default value)
aLabel = STool->FindShape(aShape [,findInstance]);
if (aLabel.IsNull())
{ ... no label found for this shape ... }
More...