Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions
TDF_Attribute Class Reference

This abstract class, alongwith Label,
is one of the cornerstones of Model Editor.
The groundwork is to define the root of
information. This information is to be
attached to a Label, and could be of any of
the following types:
More...

#include <TDF_Attribute.hxx>

Inherits MMgt_TShared.

Inherited by DDataStd_DrawPresentation, TDataStd_AsciiString, TDataStd_BooleanArray, TDataStd_BooleanList, TDataStd_ByteArray, TDataStd_Comment, TDataStd_Current, TDataStd_Directory, TDataStd_Expression, TDataStd_ExtStringArray, TDataStd_ExtStringList, TDataStd_Integer, TDataStd_IntegerArray, TDataStd_IntegerList, TDataStd_IntPackedMap, TDataStd_Name, TDataStd_NamedData, TDataStd_NoteBook, TDataStd_Real, TDataStd_RealArray, TDataStd_RealList, TDataStd_ReferenceArray, TDataStd_ReferenceList, TDataStd_Relation, TDataStd_Tick, TDataStd_TreeNode, TDataStd_UAttribute, TDataStd_Variable, TDataXtd_Axis, TDataXtd_Constraint, TDataXtd_Geometry, TDataXtd_Pattern, TDataXtd_Placement, TDataXtd_Plane, TDataXtd_Point, TDataXtd_Position, TDataXtd_Shape, TDF_Reference, TDF_TagSource, TDocStd_Modified, TDocStd_Owner, TDocStd_XLink, TDocStd_XLinkRoot, TFunction_Function, TFunction_GraphNode, TFunction_Scope, TNaming_NamedShape, TNaming_Naming, TNaming_UsedShapes, TObj_TIntSparseArray, TObj_TModel, TObj_TNameContainer, TObj_TObject, TObj_TReference, TObj_TXYZ, TPrsStd_AISPresentation, TPrsStd_AISViewer, XCAFDoc_Area, XCAFDoc_Centroid, XCAFDoc_Color, XCAFDoc_ColorTool, XCAFDoc_Datum, XCAFDoc_DimTol, XCAFDoc_DimTolTool, XCAFDoc_DocumentTool, XCAFDoc_GraphNode, XCAFDoc_LayerTool, XCAFDoc_Location, XCAFDoc_Material, XCAFDoc_MaterialTool, XCAFDoc_ShapeMapTool, XCAFDoc_ShapeTool, and XCAFDoc_Volume.

Public Member Functions

virtual const Standard_GUIDID () const =0
 Returns the ID of the attribute.


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.

//! ShortCut Methods concerning associated attributes
=================================================

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.

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 carefull 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
mecanisms. Be carefull 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".

The method does nothing:

1) If the attribute transaction number is equal to
the current transaction number (the attribute has
already been backuped).

2) If the attribute is not attached to a label.

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_Attribute BackupCopy () const
 Copies the attribute contents into a new other
attribute. It is used by Backup().

virtual void Restore (const Handle< TDF_Attribute > &anAttribute)=0
 Restores the backuped contents from <anAttribute>
into this one. It is used when aborting a
transaction.

virtual Handle_TDF_DeltaOnAddition DeltaOnAddition () 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_DeltaOnForget DeltaOnForget () const
 Makes an AttributeDelta because <me> has been
forgotten.

virtual Handle_TDF_DeltaOnResume DeltaOnResume () const
 Makes an AttributeDelta because <me> has been
resumed.

virtual
Handle_TDF_DeltaOnModification 
DeltaOnModification (const Handle< TDF_Attribute > &anOldAttribute) const
 Makes a DeltaOnModification between <me> and
<anOldAttribute.

virtual void DeltaOnModification (const Handle< TDF_DeltaOnModification > &aDelta)
 Applies a DeltaOnModification to <me>.

virtual Handle_TDF_DeltaOnRemoval DeltaOnRemoval () const
 Makes a DeltaOnRemoval on <me> because <me> has
disappeared from the DS.

virtual Handle_TDF_Attribute NewEmpty () const =0
 Returns an new empty attribute from the good end
type. It is used by the copy algorithm.

virtual void Paste (const Handle< TDF_Attribute > &intoAttribute, const Handle< TDF_RelocationTable > &aRelocationTable) const =0
 This method is different from the "Copy" one,
because it is used when copying an attribute from
a source structure into a target structure. This
method may paste the contents of <me> into
<intoAttribute>.

The given pasted attribute can be full or empty of
its contents. But don't make a NEW! Just set the
contents!

It is possible to use <aRelocationTable> to
get/set the relocation value of a source
attribute.

virtual void References (const Handle< TDF_DataSet > &aDataSet) const
 Adds the first level referenced attributes and labels
to <aDataSet>.

For this, use the AddLabel or AddAttribute of
DataSet.

If there is none, do not implement the method.

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".

A forgotten attribute is invisible. Set also the
"Valid" status to False. Obvioulsy, DF cannot
empty an attribute (this has a semantic
signification), but can remove it from the
structure. So, a forgotten attribute is NOT an empty
one, but a soon DEAD one.

Should be private.

Protected Member Functions

 TDF_Attribute ()
 Initializes fields.


Detailed Description


Constructor & Destructor Documentation


Member Function Documentation

virtual void TDF_Attribute::AfterAddition ( ) [virtual]
virtual void TDF_Attribute::AfterResume ( ) [virtual]

Reimplemented in TObj_TReference, and TDataStd_Comment.

virtual Handle_TDF_Attribute TDF_Attribute::BackupCopy ( ) const [virtual]

Reimplemented in TObj_TIntSparseArray.

virtual void TDF_Attribute::BeforeForget ( ) [virtual]
virtual void TDF_Attribute::BeforeRemoval ( ) [virtual]
virtual Handle_TDF_DeltaOnAddition TDF_Attribute::DeltaOnAddition ( ) const [virtual]

Reimplemented in TNaming_UsedShapes.

virtual Handle_TDF_DeltaOnForget TDF_Attribute::DeltaOnForget ( ) const [virtual]
virtual Handle_TDF_DeltaOnModification TDF_Attribute::DeltaOnModification ( const Handle< TDF_Attribute > &  anOldAttribute) const [virtual]

Reimplemented in TObj_TIntSparseArray, and TNaming_NamedShape.

virtual Handle_TDF_DeltaOnRemoval TDF_Attribute::DeltaOnRemoval ( ) const [virtual]

Reimplemented in TNaming_NamedShape, and TNaming_UsedShapes.

virtual Handle_TDF_DeltaOnResume TDF_Attribute::DeltaOnResume ( ) const [virtual]
virtual Standard_OStream& TDF_Attribute::Dump ( Standard_OStream anOS) const [virtual]
virtual void TDF_Attribute::ExtendedDump ( Standard_OStream anOS,
const TDF_IDFilter aFilter,
TDF_AttributeIndexedMap aMap 
) const [virtual]

Reimplemented in TNaming_Naming.

virtual const Standard_GUID& TDF_Attribute::ID ( ) const [pure virtual]
virtual Handle_TDF_Attribute TDF_Attribute::NewEmpty ( ) const [pure virtual]
Standard_OStream& TDF_Attribute::operator<< ( Standard_OStream anOS) const [inline]
virtual void TDF_Attribute::Paste ( const Handle< TDF_Attribute > &  intoAttribute,
const Handle< TDF_RelocationTable > &  aRelocationTable 
) const [pure virtual]
virtual void TDF_Attribute::References ( const Handle< TDF_DataSet > &  aDataSet) const [virtual]
virtual void TDF_Attribute::Restore ( const Handle< TDF_Attribute > &  anAttribute) [pure virtual]

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