Open CASCADE Technology 7.8.2.dev
XCAFDoc_VisMaterialTool Class Reference

Provides tools to store and retrieve attributes (visualization materials) of TopoDS_Shape in and from TDocStd_Document. More...

#include <XCAFDoc_VisMaterialTool.hxx>

Inheritance diagram for XCAFDoc_VisMaterialTool:

Public Member Functions

 XCAFDoc_VisMaterialTool ()
 Empty constructor.
 
TDF_Label BaseLabel () const
 returns the label under which colors are stored
 
const Handle< XCAFDoc_ShapeTool > & ShapeTool ()
 Returns internal XCAFDoc_ShapeTool tool.
 
Standard_Boolean IsMaterial (const TDF_Label &theLabel) const
 Returns TRUE if Label belongs to a Material Table.
 
TDF_Label AddMaterial (const Handle< XCAFDoc_VisMaterial > &theMat, const TCollection_AsciiString &theName) const
 Adds Material definition to a Material Table and returns its Label.
 
TDF_Label AddMaterial (const TCollection_AsciiString &theName) const
 Adds Material definition to a Material Table and returns its Label.
 
void RemoveMaterial (const TDF_Label &theLabel) const
 Removes Material from the Material Table.
 
void GetMaterials (TDF_LabelSequence &Labels) const
 Returns a sequence of Materials currently stored in the Material Table.
 
void SetShapeMaterial (const TDF_Label &theShapeLabel, const TDF_Label &theMaterialLabel) const
 Sets new material to the shape.
 
void UnSetShapeMaterial (const TDF_Label &theShapeLabel) const
 Removes a link with GUID XCAFDoc::VisMaterialRefGUID() from shape label to material.
 
Standard_Boolean IsSetShapeMaterial (const TDF_Label &theLabel) const
 Returns TRUE if label has a material assignment.
 
Standard_Boolean SetShapeMaterial (const TopoDS_Shape &theShape, const TDF_Label &theMaterialLabel)
 Sets a link with GUID XCAFDoc::VisMaterialRefGUID() from shape label to material label.
 
Standard_Boolean UnSetShapeMaterial (const TopoDS_Shape &theShape)
 Removes a link with GUID XCAFDoc::VisMaterialRefGUID() from shape label to material.
 
Standard_Boolean IsSetShapeMaterial (const TopoDS_Shape &theShape)
 Returns TRUE if shape has a material assignment.
 
Standard_Boolean GetShapeMaterial (const TopoDS_Shape &theShape, TDF_Label &theMaterialLabel)
 Returns label with material assigned to shape.
 
Handle< XCAFDoc_VisMaterialGetShapeMaterial (const TopoDS_Shape &theShape)
 Returns material assigned to shape or NULL if not assigned.
 
virtual const Standard_GUIDID () const override
 Returns GUID of this attribute type.
 
virtual void Restore (const Handle< TDF_Attribute > &) override
 Does nothing.
 
virtual Handle< TDF_AttributeNewEmpty () const override
 Creates new instance of this tool.
 
virtual void Paste (const Handle< TDF_Attribute > &, const Handle< TDF_RelocationTable > &) const override
 Does nothing.
 
- Public Member Functions inherited from TDF_Attribute
virtual void SetID (const Standard_GUID &)
 Sets specific ID of the attribute (supports several attributes of one type at the same label feature).
 
virtual void SetID ()
 Sets default ID defined in nested class (to be used for attributes having User ID feature).
 
const TDF_Label Label () const
 Returns the label to which the attribute is attached. If the label is not included in a DF, the label is null. See Label. Warning If the label is not included in a data framework, it is null. This function should not be redefined inline.
 
Standard_Integer Transaction () const
 Returns the transaction index in which the attribute has been created or modified.
 
Standard_Integer UntilTransaction () const
 Returns the upper transaction index until which the attribute is/was valid. This number may vary. A removed attribute validity range is reduced to its transaction index.
 
Standard_Boolean IsValid () const
 Returns true if the attribute is valid; i.e. not a backuped or removed one.
 
Standard_Boolean IsNew () const
 Returns true if the attribute has no backup.
 
Standard_Boolean IsForgotten () const
 Returns true if the attribute forgotten status is set.
 
Standard_Boolean IsAttribute (const Standard_GUID &anID) const
 Returns true if it exists an associated attribute of <me> with <anID> as ID.
 
Standard_Boolean FindAttribute (const Standard_GUID &anID, Handle< TDF_Attribute > &anAttribute) const
 Finds an associated attribute of <me>, according to <anID>. the returned <anAttribute> is a valid one. The method returns True if found, False otherwise. A removed attribute cannot be found using this method.
 
template<class T >
Standard_Boolean FindAttribute (const Standard_GUID &theID, Handle< T > &theAttr) const
 Safe variant for arbitrary type of argument.
 
void AddAttribute (const Handle< TDF_Attribute > &other) const
 Adds an Attribute <other> to the label of <me>.Raises if there is already one of the same GUID fhan <other>.
 
Standard_Boolean ForgetAttribute (const Standard_GUID &aguid) const
 Forgets the Attribute of GUID <aguid> associated to the label of <me>. Be careful that if <me> is the attribute of <guid>, <me> will have a null label after this call. If the attribute doesn't exist returns False. Otherwise returns True.
 
void ForgetAllAttributes (const Standard_Boolean clearChildren=Standard_True) const
 Forgets all the attributes attached to the label of <me>. Does it on the sub-labels if <clearChildren> is set to true. Of course, this method is compatible with Transaction & Delta mechanisms. Be careful that if <me> will have a null label after this call.
 
virtual void AfterAddition ()
 Something to do after adding an Attribute to a label.
 
virtual void BeforeRemoval ()
 Something to do before removing an Attribute from a label.
 
virtual void BeforeForget ()
 Something to do before forgetting an Attribute to a label.
 
virtual void AfterResume ()
 Something to do after resuming an Attribute from a label.
 
virtual Standard_Boolean AfterRetrieval (const Standard_Boolean forceIt=Standard_False)
 Something to do AFTER creation of an attribute by persistent-transient translation. The returned status says if AfterUndo has been performed (true) or if this callback must be called once again further (false). If <forceIt> is set to true, the method MUST perform and return true. Does nothing by default and returns true.
 
virtual Standard_Boolean BeforeUndo (const Handle< TDF_AttributeDelta > &anAttDelta, const Standard_Boolean forceIt=Standard_False)
 Something to do before applying <anAttDelta>. The returned status says if AfterUndo has been performed (true) or if this callback must be called once again further (false). If <forceIt> is set to true, the method MUST perform and return true. Does nothing by default and returns true.
 
virtual Standard_Boolean AfterUndo (const Handle< TDF_AttributeDelta > &anAttDelta, const Standard_Boolean forceIt=Standard_False)
 Something to do after applying <anAttDelta>. The returned status says if AfterUndo has been performed (true) or if this callback must be called once again further (false). If <forceIt> is set to true, the method MUST perform and return true. Does nothing by default and returns true.
 
virtual void BeforeCommitTransaction ()
 A callback. By default does nothing. It is called by TDF_Data::CommitTransaction() method.
 
void Backup ()
 Backups the attribute. The backuped attribute is flagged "Backuped" and not "Valid".
 
Standard_Boolean IsBackuped () const
 Returns true if the attribute backup status is set. This status is set/unset by the Backup() method.
 
virtual Handle< TDF_AttributeBackupCopy () const
 Copies the attribute contents into a new other attribute. It is used by Backup().
 
virtual Handle< TDF_DeltaOnAdditionDeltaOnAddition () const
 Makes an AttributeDelta because <me> appeared. The only known use of a redefinition of this method is to return a null handle (no delta).
 
virtual Handle< TDF_DeltaOnForgetDeltaOnForget () const
 Makes an AttributeDelta because <me> has been forgotten.
 
virtual Handle< TDF_DeltaOnResumeDeltaOnResume () const
 Makes an AttributeDelta because <me> has been resumed.
 
virtual Handle< TDF_DeltaOnModificationDeltaOnModification (const Handle< TDF_Attribute > &anOldAttribute) const
 Makes a DeltaOnModification between <me> and.
 
virtual void DeltaOnModification (const Handle< TDF_DeltaOnModification > &aDelta)
 Applies a DeltaOnModification to <me>.
 
virtual Handle< TDF_DeltaOnRemovalDeltaOnRemoval () const
 Makes a DeltaOnRemoval on <me> because <me> has disappeared from the DS.
 
virtual void References (const Handle< TDF_DataSet > &aDataSet) const
 Adds the first level referenced attributes and labels to <aDataSet>.
 
virtual Standard_OStreamDump (Standard_OStream &anOS) const
 Dumps the minimum information about <me> on <aStream>.
 
Standard_OStreamoperator<< (Standard_OStream &anOS) const
 
virtual void ExtendedDump (Standard_OStream &anOS, const TDF_IDFilter &aFilter, TDF_AttributeIndexedMap &aMap) const
 Dumps the attribute content on <aStream>, using <aMap> like this: if an attribute is not in the map, first put add it to the map and then dump it. Use the map rank instead of dumping each attribute field.
 
void Forget (const Standard_Integer aTransaction)
 Forgets the attribute. <aTransaction> is the current transaction in which the forget is done. A forgotten attribute is also flagged not "Valid".
 
virtual void DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const
 Dumps the content of me into the stream.
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Static Public Member Functions

static Handle< XCAFDoc_VisMaterialToolSet (const TDF_Label &L)
 Creates (if not exist) ColorTool.
 
static const Standard_GUIDGetID ()
 
static Handle< XCAFDoc_VisMaterialGetMaterial (const TDF_Label &theMatLabel)
 Returns Material defined by specified Label, or NULL if the label is not in Material Table.
 
static Standard_Boolean GetShapeMaterial (const TDF_Label &theShapeLabel, TDF_Label &theMaterialLabel)
 Returns label with material assigned to shape label.
 
static Handle< XCAFDoc_VisMaterialGetShapeMaterial (const TDF_Label &theShapeLabel)
 Returns material assigned to the shape label.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const char * get_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Protected Member Functions inherited from TDF_Attribute
 TDF_Attribute ()
 Initializes fields.
 

Detailed Description

Provides tools to store and retrieve attributes (visualization materials) of TopoDS_Shape in and from TDocStd_Document.

This attribute defines the list of visualization materials (XCAFDoc_VisMaterial) within the whole document. Particular material is assigned to the shape through tree-nodes links.

Visualization materials might co-exists with independent color attributes (XCAFDoc_ColorTool), but beware to preserve consistency between them (it is better using one attribute type at once to avoid ambiguity). Unlike color attributes, list of materials should be managed explicitly by application, so that there is no tool eliminating material duplicates or removing unused materials.

See also
XCAFDoc_VisMaterial

Constructor & Destructor Documentation

◆ XCAFDoc_VisMaterialTool()

XCAFDoc_VisMaterialTool::XCAFDoc_VisMaterialTool ( )

Empty constructor.

Member Function Documentation

◆ AddMaterial() [1/2]

TDF_Label XCAFDoc_VisMaterialTool::AddMaterial ( const Handle< XCAFDoc_VisMaterial > & theMat,
const TCollection_AsciiString & theName ) const

Adds Material definition to a Material Table and returns its Label.

◆ AddMaterial() [2/2]

TDF_Label XCAFDoc_VisMaterialTool::AddMaterial ( const TCollection_AsciiString & theName) const

Adds Material definition to a Material Table and returns its Label.

◆ BaseLabel()

TDF_Label XCAFDoc_VisMaterialTool::BaseLabel ( ) const
inline

returns the label under which colors are stored

◆ GetID()

static const Standard_GUID & XCAFDoc_VisMaterialTool::GetID ( )
static

◆ GetMaterial()

static Handle< XCAFDoc_VisMaterial > XCAFDoc_VisMaterialTool::GetMaterial ( const TDF_Label & theMatLabel)
static

Returns Material defined by specified Label, or NULL if the label is not in Material Table.

◆ GetMaterials()

void XCAFDoc_VisMaterialTool::GetMaterials ( TDF_LabelSequence & Labels) const

Returns a sequence of Materials currently stored in the Material Table.

◆ GetShapeMaterial() [1/4]

static Handle< XCAFDoc_VisMaterial > XCAFDoc_VisMaterialTool::GetShapeMaterial ( const TDF_Label & theShapeLabel)
static

Returns material assigned to the shape label.

◆ GetShapeMaterial() [2/4]

static Standard_Boolean XCAFDoc_VisMaterialTool::GetShapeMaterial ( const TDF_Label & theShapeLabel,
TDF_Label & theMaterialLabel )
static

Returns label with material assigned to shape label.

Parameters
theShapeLabel[in] shape label
theMaterialLabel[out] material label
Returns
FALSE if no material is assigned

◆ GetShapeMaterial() [3/4]

Handle< XCAFDoc_VisMaterial > XCAFDoc_VisMaterialTool::GetShapeMaterial ( const TopoDS_Shape & theShape)

Returns material assigned to shape or NULL if not assigned.

◆ GetShapeMaterial() [4/4]

Standard_Boolean XCAFDoc_VisMaterialTool::GetShapeMaterial ( const TopoDS_Shape & theShape,
TDF_Label & theMaterialLabel )

Returns label with material assigned to shape.

Parameters
theShape[in] shape
theMaterialLabel[out] material label
Returns
FALSE if no material is assigned

◆ ID()

virtual const Standard_GUID & XCAFDoc_VisMaterialTool::ID ( ) const
inlineoverridevirtual

Returns GUID of this attribute type.

Implements TDF_Attribute.

◆ IsMaterial()

Standard_Boolean XCAFDoc_VisMaterialTool::IsMaterial ( const TDF_Label & theLabel) const
inline

Returns TRUE if Label belongs to a Material Table.

◆ IsSetShapeMaterial() [1/2]

Standard_Boolean XCAFDoc_VisMaterialTool::IsSetShapeMaterial ( const TDF_Label & theLabel) const

Returns TRUE if label has a material assignment.

◆ IsSetShapeMaterial() [2/2]

Standard_Boolean XCAFDoc_VisMaterialTool::IsSetShapeMaterial ( const TopoDS_Shape & theShape)

Returns TRUE if shape has a material assignment.

◆ NewEmpty()

virtual Handle< TDF_Attribute > XCAFDoc_VisMaterialTool::NewEmpty ( ) const
inlineoverridevirtual

Creates new instance of this tool.

Implements TDF_Attribute.

◆ Paste()

virtual void XCAFDoc_VisMaterialTool::Paste ( const Handle< TDF_Attribute > & ,
const Handle< TDF_RelocationTable > &  ) const
inlineoverridevirtual

Does nothing.

Implements TDF_Attribute.

◆ RemoveMaterial()

void XCAFDoc_VisMaterialTool::RemoveMaterial ( const TDF_Label & theLabel) const

Removes Material from the Material Table.

◆ Restore()

virtual void XCAFDoc_VisMaterialTool::Restore ( const Handle< TDF_Attribute > & )
inlineoverridevirtual

Does nothing.

Implements TDF_Attribute.

◆ Set()

static Handle< XCAFDoc_VisMaterialTool > XCAFDoc_VisMaterialTool::Set ( const TDF_Label & L)
static

Creates (if not exist) ColorTool.

◆ SetShapeMaterial() [1/2]

void XCAFDoc_VisMaterialTool::SetShapeMaterial ( const TDF_Label & theShapeLabel,
const TDF_Label & theMaterialLabel ) const

Sets new material to the shape.

◆ SetShapeMaterial() [2/2]

Standard_Boolean XCAFDoc_VisMaterialTool::SetShapeMaterial ( const TopoDS_Shape & theShape,
const TDF_Label & theMaterialLabel )

Sets a link with GUID XCAFDoc::VisMaterialRefGUID() from shape label to material label.

Parameters
theShape[in] shape
theMaterialLabel[in] material label
Returns
FALSE if cannot find a label for shape

◆ ShapeTool()

const Handle< XCAFDoc_ShapeTool > & XCAFDoc_VisMaterialTool::ShapeTool ( )

Returns internal XCAFDoc_ShapeTool tool.

◆ UnSetShapeMaterial() [1/2]

void XCAFDoc_VisMaterialTool::UnSetShapeMaterial ( const TDF_Label & theShapeLabel) const

Removes a link with GUID XCAFDoc::VisMaterialRefGUID() from shape label to material.

◆ UnSetShapeMaterial() [2/2]

Standard_Boolean XCAFDoc_VisMaterialTool::UnSetShapeMaterial ( const TopoDS_Shape & theShape)

Removes a link with GUID XCAFDoc::VisMaterialRefGUID() from shape label to material.

Returns
TRUE if such link existed

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