Open CASCADE Technology 7.8.2.dev
XCAFDoc_Editor Class Reference

Tool for edit structure of document. More...

#include <XCAFDoc_Editor.hxx>

Static Public Member Functions

static Standard_Boolean Expand (const TDF_Label &theDoc, const TDF_Label &theShape, const Standard_Boolean theRecursively=Standard_True)
 Converts shape (compound/compsolid/shell/wire) to assembly.
 
static Standard_Boolean Expand (const TDF_Label &theDoc, const Standard_Boolean theRecursively=Standard_True)
 Converts all compounds shapes in the document to assembly.
 
static Standard_Boolean Extract (const TDF_LabelSequence &theSrcLabels, const TDF_Label &theDstLabel, const Standard_Boolean theIsNoVisMat=Standard_False)
 Clones all labels to a new position, keeping the structure with all the attributes.
 
static Standard_Boolean Extract (const TDF_Label &theSrcLabel, const TDF_Label &theDstLabel, const Standard_Boolean theIsNoVisMat=Standard_False)
 Clones the label to a new position, keeping the structure with all the attributes.
 
static TDF_Label CloneShapeLabel (const TDF_Label &theSrcLabel, const Handle< XCAFDoc_ShapeTool > &theSrcShapeTool, const Handle< XCAFDoc_ShapeTool > &theDstShapeTool, TDF_LabelDataMap &theMap)
 Copies shapes label with keeping of shape structure (recursively)
 
static void CloneMetaData (const TDF_Label &theSrcLabel, const TDF_Label &theDstLabel, NCollection_DataMap< Handle< XCAFDoc_VisMaterial >, Handle< XCAFDoc_VisMaterial > > *theVisMatMap, const Standard_Boolean theToCopyColor=Standard_True, const Standard_Boolean theToCopyLayer=Standard_True, const Standard_Boolean theToCopyMaterial=Standard_True, const Standard_Boolean theToCopyVisMaterial=Standard_True, const Standard_Boolean theToCopyAttributes=Standard_True)
 Copies metadata contains from the source label to the destination label. Protected against creating a new label for non-existent tools.
 
static void GetParentShapeLabels (const TDF_Label &theLabel, TDF_LabelMap &theRelatedLabels)
 Gets shape labels that has down relation with the input label.
 
static void GetChildShapeLabels (const TDF_Label &theLabel, TDF_LabelMap &theRelatedLabels)
 Gets shape labels that has up relation with the input label.
 
static bool FilterShapeTree (const Handle< XCAFDoc_ShapeTool > &theShapeTool, const TDF_LabelMap &theLabelsToKeep)
 Filters original shape tree with keeping structure. The result will include the full label hierarchy lower then input labels. Any higher hierarchy labels will be filtered to keep only necessary labels. All not related shape labels with input will be cleared (all attributes will be removed).
 
static Standard_Boolean RescaleGeometry (const TDF_Label &theLabel, const Standard_Real theScaleFactor, const Standard_Boolean theForceIfNotRoot=Standard_False)
 Applies geometrical scaling to the following assembly components:
 

Detailed Description

Tool for edit structure of document.

Member Function Documentation

◆ CloneMetaData()

static void XCAFDoc_Editor::CloneMetaData ( const TDF_Label & theSrcLabel,
const TDF_Label & theDstLabel,
NCollection_DataMap< Handle< XCAFDoc_VisMaterial >, Handle< XCAFDoc_VisMaterial > > * theVisMatMap,
const Standard_Boolean theToCopyColor = Standard_True,
const Standard_Boolean theToCopyLayer = Standard_True,
const Standard_Boolean theToCopyMaterial = Standard_True,
const Standard_Boolean theToCopyVisMaterial = Standard_True,
const Standard_Boolean theToCopyAttributes = Standard_True )
static

Copies metadata contains from the source label to the destination label. Protected against creating a new label for non-existent tools.

Parameters
[in]theSrcLabeloriginal label to copy from
[in]theDstLabeldestination shape label to set attributes
[in]theVisMatMaprelating map of the original VisMaterial and created. Can be NULL for the same document
[in]theToCopyColorcopying visible value and shape color (handled all color type)
[in]theToCopyLayercopying layer
[in]theToCopyMaterialcopying material
[in]theToCopyVisMaterialcopying visual material
[in]theToCopyAttributescopying of other node attributes, for example, a shape's property

◆ CloneShapeLabel()

static TDF_Label XCAFDoc_Editor::CloneShapeLabel ( const TDF_Label & theSrcLabel,
const Handle< XCAFDoc_ShapeTool > & theSrcShapeTool,
const Handle< XCAFDoc_ShapeTool > & theDstShapeTool,
TDF_LabelDataMap & theMap )
static

Copies shapes label with keeping of shape structure (recursively)

Parameters
[in]theSrcLabeloriginal label to copy from
[in]theSrcShapeToolshape tool to get
[in]theDstShapeToolshape tool to set
[out]theMaprelating map of the original shapes label and labels created from them
Returns
result shape label

◆ Expand() [1/2]

static Standard_Boolean XCAFDoc_Editor::Expand ( const TDF_Label & theDoc,
const Standard_Boolean theRecursively = Standard_True )
static

Converts all compounds shapes in the document to assembly.

Parameters
[in]theDocinput document
[in]theRecursivelyrecursively expand a compound subshape
Returns
True if shape successfully expanded

◆ Expand() [2/2]

static Standard_Boolean XCAFDoc_Editor::Expand ( const TDF_Label & theDoc,
const TDF_Label & theShape,
const Standard_Boolean theRecursively = Standard_True )
static

Converts shape (compound/compsolid/shell/wire) to assembly.

Parameters
[in]theDocinput document
[in]theShapeinput shape label
[in]theRecursivelyrecursively expand a compound subshape
Returns
True if shape successfully expanded

◆ Extract() [1/2]

static Standard_Boolean XCAFDoc_Editor::Extract ( const TDF_Label & theSrcLabel,
const TDF_Label & theDstLabel,
const Standard_Boolean theIsNoVisMat = Standard_False )
static

Clones the label to a new position, keeping the structure with all the attributes.

Parameters
[in]theSrcLabeloriginal label to copy from
[in]theDstLabellabel to set result as a component of or a main document's label to simply set new shape
[in]theIsNoVisMatget a VisMaterial attributes as is or convert to color
Returns
True if shape successfully extracted

◆ Extract() [2/2]

static Standard_Boolean XCAFDoc_Editor::Extract ( const TDF_LabelSequence & theSrcLabels,
const TDF_Label & theDstLabel,
const Standard_Boolean theIsNoVisMat = Standard_False )
static

Clones all labels to a new position, keeping the structure with all the attributes.

Parameters
[in]theSrcLabelsoriginal labels to copy from
[in]theDstLabellabel to set result as a component of or a main document's label to simply set new shape
[in]theIsNoVisMatget a VisMaterial attributes as is or convert to color
Returns
True if shape successfully extracted

◆ FilterShapeTree()

static bool XCAFDoc_Editor::FilterShapeTree ( const Handle< XCAFDoc_ShapeTool > & theShapeTool,
const TDF_LabelMap & theLabelsToKeep )
static

Filters original shape tree with keeping structure. The result will include the full label hierarchy lower then input labels. Any higher hierarchy labels will be filtered to keep only necessary labels. All not related shape labels with input will be cleared (all attributes will be removed).

The result impact directly into original document and existed shape labels. Attributes related to removed shape can became invalide. For example, GDT with relation on removed shape label(s) and without attachment point(s) became invalid for visualization.

Parameters
[in]theShapeToolshape tool to extract from
[in]theLabelsToKeeplabels to keep
Returns
true if the tree was filtered successfully.

◆ GetChildShapeLabels()

static void XCAFDoc_Editor::GetChildShapeLabels ( const TDF_Label & theLabel,
TDF_LabelMap & theRelatedLabels )
static

Gets shape labels that has up relation with the input label.

Parameters
[in]theLabelinput label
[out]theRelatedLabelsoutput labels

◆ GetParentShapeLabels()

static void XCAFDoc_Editor::GetParentShapeLabels ( const TDF_Label & theLabel,
TDF_LabelMap & theRelatedLabels )
static

Gets shape labels that has down relation with the input label.

Parameters
[in]theLabelinput label
[out]theRelatedLabelsoutput labels

◆ RescaleGeometry()

static Standard_Boolean XCAFDoc_Editor::RescaleGeometry ( const TDF_Label & theLabel,
const Standard_Real theScaleFactor,
const Standard_Boolean theForceIfNotRoot = Standard_False )
static

Applies geometrical scaling to the following assembly components:

  • part geometry
  • sub-assembly/part occurrence location
  • part's centroid, area and volume attributes
  • PMIs (warnings and errors are reported if it is impossible to make changes) Normally, should start from a root sub-assembly, but if theForceIfNotRoot true scaling will be applied forcibly. If theLabel corresponds to the shape tool scaling is applied to the whole assembly.
    Parameters
    [in]theLabelstarting label
    [in]theScaleFactorscale factor, should be positive
    [in]theForceIfNotRootallows scaling of a non root assembly if true, otherwise - returns false
    Returns
    true in case of success, otherwise - false.

The documentation for this class was generated from the following file: