Open CASCADE Technology 7.8.2.dev
TNaming Class Reference

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: More...

#include <TNaming.hxx>

Static Public Member Functions

static void Substitute (const TDF_Label &labelsource, const TDF_Label &labelcible, TopTools_DataMapOfShapeShape &mapOldNew)
 Subtituter les shapes sur les structures de source vers cible.
 
static void Update (const TDF_Label &label, TopTools_DataMapOfShapeShape &mapOldNew)
 Mise a jour des shapes du label et de ses fils en tenant compte des substitutions decrite par mapOldNew.
 
static void Displace (const TDF_Label &label, const TopLoc_Location &aLocation, const Standard_Boolean WithOld=Standard_True)
 Application de la Location sur les shapes du label et de ses sous labels.
 
static void ChangeShapes (const TDF_Label &label, TopTools_DataMapOfShapeShape &M)
 Remplace les shapes du label et des sous-labels par des copies.
 
static void Transform (const TDF_Label &label, const gp_Trsf &aTransformation)
 Application de la transformation sur les shapes du label et de ses sous labels. 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 <Label>.
 
static void Replicate (const Handle< TNaming_NamedShape > &NS, const gp_Trsf &T, const TDF_Label &L)
 Replicates the named shape with the transformation <T> on the label <L> (and sub-labels if necessary) (TNaming_GENERATED is set)
 
static void Replicate (const TopoDS_Shape &SH, const gp_Trsf &T, const TDF_Label &L)
 Replicates the shape with the transformation <T> on the label <L> (and sub-labels if necessary) (TNaming_GENERATED is set)
 
static TopoDS_Shape MakeShape (const TopTools_MapOfShape &MS)
 Builds shape from map content.
 
static TopoDS_Shape FindUniqueContext (const TopoDS_Shape &S, const TopoDS_Shape &Context)
 Find unique context of shape
 
static TopoDS_Shape FindUniqueContextSet (const TopoDS_Shape &S, const TopoDS_Shape &Context, Handle< TopTools_HArray1OfShape > &Arr)
 Find unique context of shape ,which is pure concatenation of atomic shapes (Compound). The result is concatenation of single contexts.
 
static Standard_Boolean SubstituteSShape (const TDF_Label &accesslabel, const TopoDS_Shape &From, TopoDS_Shape &To)
 Substitutes shape in source structure.
 
static Standard_Boolean OuterWire (const TopoDS_Face &theFace, TopoDS_Wire &theWire)
 Returns True if outer wire is found and the found wire in <theWire>.
 
static Standard_Boolean OuterShell (const TopoDS_Solid &theSolid, TopoDS_Shell &theShell)
 Returns True if outer Shell is found and the found shell in <theShell>.
 
static void IDList (TDF_IDList &anIDList)
 Appends to <anIDList> the list of the attributes IDs of this package. CAUTION: <anIDList> is NOT cleared before use.
 
static Standard_OStreamPrint (const TNaming_Evolution EVOL, Standard_OStream &S)
 Prints the evolution <EVOL> as a String on the Stream and returns .
 
static Standard_OStreamPrint (const TNaming_NameType NAME, Standard_OStream &S)
 Prints the name of name type <NAME> as a String on the Stream and returns .
 
static Standard_OStreamPrint (const TDF_Label &ACCESS, Standard_OStream &S)
 Prints the content of UsedShapes private attribute as a String Table on the Stream and returns .
 

Detailed Description

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.

Member Function Documentation

◆ ChangeShapes()

static void TNaming::ChangeShapes ( const TDF_Label & label,
TopTools_DataMapOfShapeShape & M )
static

Remplace les shapes du label et des sous-labels par des copies.

◆ Displace()

static void TNaming::Displace ( const TDF_Label & label,
const TopLoc_Location & aLocation,
const Standard_Boolean WithOld = Standard_True )
static

Application de la Location sur les shapes du label et de ses sous labels.

◆ FindUniqueContext()

static TopoDS_Shape TNaming::FindUniqueContext ( const TopoDS_Shape & S,
const TopoDS_Shape & Context )
static

Find unique context of shape

◆ FindUniqueContextSet()

static TopoDS_Shape TNaming::FindUniqueContextSet ( const TopoDS_Shape & S,
const TopoDS_Shape & Context,
Handle< TopTools_HArray1OfShape > & Arr )
static

Find unique context of shape ,which is pure concatenation of atomic shapes (Compound). The result is concatenation of single contexts.

◆ IDList()

static void TNaming::IDList ( TDF_IDList & anIDList)
static

Appends to <anIDList> the list of the attributes IDs of this package. CAUTION: <anIDList> is NOT cleared before use.

◆ MakeShape()

static TopoDS_Shape TNaming::MakeShape ( const TopTools_MapOfShape & MS)
static

Builds shape from map content.

◆ OuterShell()

static Standard_Boolean TNaming::OuterShell ( const TopoDS_Solid & theSolid,
TopoDS_Shell & theShell )
static

Returns True if outer Shell is found and the found shell in <theShell>.

Print of TNaming enumeration

◆ OuterWire()

static Standard_Boolean TNaming::OuterWire ( const TopoDS_Face & theFace,
TopoDS_Wire & theWire )
static

Returns True if outer wire is found and the found wire in <theWire>.

◆ Print() [1/3]

static Standard_OStream & TNaming::Print ( const TDF_Label & ACCESS,
Standard_OStream & S )
static

Prints the content of UsedShapes private attribute as a String Table on the Stream and returns .

◆ Print() [2/3]

static Standard_OStream & TNaming::Print ( const TNaming_Evolution EVOL,
Standard_OStream & S )
static

Prints the evolution <EVOL> as a String on the Stream and returns .

◆ Print() [3/3]

static Standard_OStream & TNaming::Print ( const TNaming_NameType NAME,
Standard_OStream & S )
static

Prints the name of name type <NAME> as a String on the Stream and returns .

◆ Replicate() [1/2]

static void TNaming::Replicate ( const Handle< TNaming_NamedShape > & NS,
const gp_Trsf & T,
const TDF_Label & L )
static

Replicates the named shape with the transformation <T> on the label <L> (and sub-labels if necessary) (TNaming_GENERATED is set)

◆ Replicate() [2/2]

static void TNaming::Replicate ( const TopoDS_Shape & SH,
const gp_Trsf & T,
const TDF_Label & L )
static

Replicates the shape with the transformation <T> on the label <L> (and sub-labels if necessary) (TNaming_GENERATED is set)

◆ Substitute()

static void TNaming::Substitute ( const TDF_Label & labelsource,
const TDF_Label & labelcible,
TopTools_DataMapOfShapeShape & mapOldNew )
static

Subtituter les shapes sur les structures de source vers cible.

◆ SubstituteSShape()

static Standard_Boolean TNaming::SubstituteSShape ( const TDF_Label & accesslabel,
const TopoDS_Shape & From,
TopoDS_Shape & To )
static

Substitutes shape in source structure.

◆ Transform()

static void TNaming::Transform ( const TDF_Label & label,
const gp_Trsf & aTransformation )
static

Application de la transformation sur les shapes du label et de ses sous labels. 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 <Label>.

◆ Update()

static void TNaming::Update ( const TDF_Label & label,
TopTools_DataMapOfShapeShape & mapOldNew )
static

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


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