// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _TNaming_HeaderFile #define _TNaming_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Handle_TNaming_NamedShape_HeaderFile #include #endif #ifndef _Handle_TopTools_HArray1OfShape_HeaderFile #include #endif #ifndef _Standard_OStream_HeaderFile #include #endif #ifndef _TNaming_Evolution_HeaderFile #include #endif #ifndef _TNaming_NameType_HeaderFile #include #endif class TDF_Label; class TopTools_DataMapOfShapeShape; class TopLoc_Location; class gp_Trsf; class TNaming_NamedShape; class TopoDS_Shape; class TopTools_MapOfShape; class TopTools_HArray1OfShape; class TDF_IDList; class TNaming_CopyShape; class TNaming_TranslateTool; class TNaming_Translator; class TNaming_NamedShape; class TNaming_UsedShapes; class TNaming_Builder; class TNaming_Tool; class TNaming_Iterator; class TNaming_NewShapeIterator; class TNaming_OldShapeIterator; class TNaming_SameShapeIterator; class TNaming_NamedShapeHasher; class TNaming_MapOfNamedShape; class TNaming_ListOfNamedShape; class TNaming_Name; class TNaming_Naming; class TNaming_Selector; class TNaming_DeltaOnRemoval; class TNaming_DeltaOnModification; class TNaming_RefShape; class TNaming_DataMapOfShapePtrRefShape; class TNaming_Scope; class TNaming_Identifier; class TNaming_Localizer; class TNaming_ShapesSet; class TNaming_IteratorOnShapesSet; class TNaming_DataMapOfShapeShapesSet; class TNaming_ListOfMapOfShape; class TNaming_ListOfIndexedDataMapOfShapeListOfShape; class TNaming_NamingTool; class TNaming_StdMapNodeOfMapOfNamedShape; class TNaming_MapIteratorOfMapOfNamedShape; class TNaming_ListNodeOfListOfNamedShape; class TNaming_ListIteratorOfListOfNamedShape; class TNaming_DataMapNodeOfDataMapOfShapePtrRefShape; class TNaming_DataMapIteratorOfDataMapOfShapePtrRefShape; class TNaming_DataMapNodeOfDataMapOfShapeShapesSet; class TNaming_DataMapIteratorOfDataMapOfShapeShapesSet; class TNaming_ListNodeOfListOfMapOfShape; class TNaming_ListIteratorOfListOfMapOfShape; class TNaming_ListNodeOfListOfIndexedDataMapOfShapeListOfShape; class TNaming_ListIteratorOfListOfIndexedDataMapOfShapeListOfShape; //! A topological attribute can be seen as a hook
//! into the topological structure. To this hook,
//! data can be attached and references defined.
//! It is used for keeping and access to
//! topological objects and their evolution. All
//! topological objects are stored in the one
//! user-protected TNaming_UsedShapes
//! attribute at the root label of the data
//! framework. This attribute contains map with all
//! topological shapes, used in this document.
//! To all other labels TNaming_NamedShape
//! attribute can be added. This attribute contains
//! references (hooks) to shapes from the
//! TNaming_UsedShapes attribute and evolution
//! of these shapes. TNaming_NamedShape
//! attribute contains a set of pairs of hooks: old
//! shape and new shape (see the figure below).
//! It allows not only get the topological shapes by
//! the labels, but also trace evolution of the
//! shapes and correctly resolve dependent
//! shapes by the changed one.
//! If shape is just-created, then the old shape for
//! accorded named shape is an empty shape. If
//! a shape is deleted, then the new shape in this named shape is empty.
//! Different algorithms may dispose sub-shapes
//! of the result shape at the individual label depending on necessity:
//! - If a sub-shape must have some extra attributes (material of
//! each face or color of each edge). In this case a specific sub-shape is
//! placed to the separate label (usually, sub-label of the result shape label)
//! with all attributes of this sub-shape.
//! - If topological naming is needed, a necessary and sufficient
//! (for selected sub-shapes identification) set of sub-shapes is
//! placed to the child labels of the result
//! shape label. As usual, as far as basic solids and closed shells are
//! concerned, all faces of the shape are disposed. Edges and vertices
//! sub-shapes can be identified as intersection of contiguous faces.
//! Modified/generated shapes may be placed to one named shape and
//! identified as this named shape and source named shape that also can be
//! identified with used algorithms.
//! TNaming_NamedShape may contain a few
//! pairs of hooks with the same evolution. In this
//! case topology shape, which belongs to the
//! named shape, is a compound of new shapes.
//! The data model contains both the topology
//! and the hooks, and functions handle both
//! topological entities and hooks. Consider the
//! case of a box function, which creates a solid
//! with six faces and six hooks. Each hook is
//! attached to a face. If you want, you can also
//! have this function create hooks for edges and
//! vertices as well as for faces. For the sake of
//! simplicity though, let's limit the example.
//! Not all functions can define explicit hooks for
//! all topological entities they create, but all
//! topological entities can be turned into hooks
//! when necessary. This is where topological naming is necessary.
class TNaming { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Subtituter les shapes sur les structures de source
//! vers cible
Standard_EXPORT static void Substitute(const TDF_Label& labelsource,const TDF_Label& labelcible,TopTools_DataMapOfShapeShape& mapOldNew) ; //! Mise a jour des shapes du label et de ses fils en
//! tenant compte des substitutions decrite par
//! mapOldNew.
//!
//! Warning: le remplacement du shape est fait dans tous
//! les attributs qui le contiennent meme si ceux
//! ci ne sont pas associees a des sous-labels de