GMModelInterfaces Interface CATBody

Usage: an implementation of this interface is supplied and you must use it as is. You should not reimplement it.


interface CATBody

Interface representing a topological body.

A body is a set of cells with the following conditions:

This interface is dedicated to represent all kind of cell-complexes including non-manifold, non connected complexes, mixing dimensions of topological cells. The boundaries of a body are grouped into domains (CATDomain), connected sets of cells (CATCell) of same dimension. This definition is unique. Note that a vertex can not be immersed inside an egde, because it would cut the edge in two pieces. As the same manner, an edge (/face) or a set of edges (/faces) may be immersed inside a face (/volume) only if it does not go right through it. A CATCell is composed of CATDomains of lower dimension. The CATBody interface is the factory of all domains and cells that it owns. A CATBody is created with the method and deleted with the method.


Method Index


o AddDomain(CATDomain*,CATLocation)
Adds a CATDomain to this CATBody.
o CreateCell(short)
Creates a topological cell of a given dimension.
o CreateDomain(short,short,CATLocation)
Creates a topological domain.
o CreateEdge()
Creates an edge.
o CreateFace()
Creates a face.
o CreateISmartDuplicator(CATBody*,CATTopData&)
Creates a smart duplicator.
o CreateLoop(CATLocation)
Creates a topological domain (called loop) representing a set of connected egdes bounding a face .
o CreateLump()
Creates a topological domain (called lump) which contained cells are CATVolumes.
o CreateShell(CATLocation)
Creates a topological domain (called shell) which contained connected cells are CATFaces.
o CreateVertex()
Creates a vertex.
o CreateVertexInFace()
Creates a topological domain representing a vertex immersed inside a face.
o CreateVertexInVolume()
Creates a topological domain representing a vertex immersed inside a volume.
o CreateVolume()
Creates a volume.
o CreateWire()
Creates a topological domain representing a set of connected edges (called wire) of a body or a volume.
o Freeze()
o GetCellsHighestDimension(CATLONG32&,CATBoolean&,CATBoolean*,ListPOfCATCell*)
Gets information on the dimensions in this body.
o GroupCells(CATLISTP(CATCell)*,CATListOfLong&)
Retrieves the number of manifold domains inside a list of cells.
o IsLyingOn(CATBody*)
Tests whether this CATBody is lying on another one.

Methods


o AddDomain
public virtual AddDomain( iDomainToAdd,
iLocation=CATLocationIn3DSpace )
Adds a CATDomain to this CATBody.
Parameters:
iDomainToAdd
The pointer to the domain to add, which location must be set to CATLocationIn3DSpace.
iLocation
The location of the domain to bound this.
o CreateCell
public virtual CreateCell( iDimension)
Creates a topological cell of a given dimension.
Parameters:
iDimension
0
Creates a CATVertex
1
Creates a CATEdge
2
Creates a CATFace
3
Creates a CATVolume
o CreateDomain
public virtual CreateDomain( iContainedCellsDimension,
iContainingCellDimension=3,
iLocation=CATLocationIn3DSpace)
Creates a topological domain.
A CATDomain is composed of connected cells of same dimension. It represents a cell boundary.
Parameters:
iContainedCellsDimension
The dimension of the cells contained into the domain to create.
iContainingCellDimension
The dimension of the unique cell containing the domain to create.
Note that iContainedCellDimension <= iContainingCellDimension. For a CATDomain contained into a CATBody, this dimension is 3.
iLocation
The location of the contained cells relative to the containing cell.
CATLocationInner
For internal boundaries (holes into a faces or cavities into a volumes).
CATLocationOuter
For external boundaries.
CATLocationFull
All cells of the domain to create are immersed into the containing cell (non-manifold topology).
CATLocationIn3DSpace
For creation into a body.
o CreateEdge
public virtual CreateEdge()
Creates an edge.
Returns:
The pointer to the created edge (cell of dimension 1)
o CreateFace
public virtual CreateFace()
Creates a face.
Returns:
The pointer to the created face (cell of dimension 2)
o CreateISmartDuplicator
public virtual CreateISmartDuplicator( iBodyToRecopy,
iTopData)
Creates a smart duplicator.
This is used in the context of the "smart mechanism". When a body is frozen, the cells and domains that it contains cannot be modified anymore. To allow an operator to operate on cells of a frozen body, the smart duplicator only duplicates the touched cells and domains. Hence:
Parameters:
iBodyToRecopy
The frozen body where cells are touched.
iTopData
The object defining the CATSoftwareConfiguration and the CATCGMJournalList.
Returns:
[out, IUnknown#Release] The pointer to the created duplicator. After use, you have to Release it.
See also:
o CreateLoop
public virtual CreateLoop( iLocation)
Creates a topological domain (called loop) representing a set of connected egdes bounding a face .
It corresponds to iContainedCellsDimension = 1, iContainingCellDimension = 2. The loop may be closed or not.
Parameters:
iLocation
The location of the contained cells relative to the containing cell.
CATLocationInner
For internal boundaries (holes into a faces).
CATLocationOuter
For external boundaries.
CATLocationFull
All cells of the domain to create are immersed into the containing cell (non-manifold topology).
Returns:
The pointer to the created loop.
o CreateLump
public virtual CreateLump()
Creates a topological domain (called lump) which contained cells are CATVolumes.
It corresponds to iContainedCellsDimension = 3, iContainingCellDimension = 3.
Returns:
The pointer to the created lump.
o CreateShell
public virtual CreateShell( iLocation)
Creates a topological domain (called shell) which contained connected cells are CATFaces.
It corresponds to iContainedCellsDimension = 2, iContainingCellDimension = 3.
Parameters:
iLocation
The location of the contained cells relative to the containing cell.
CATLocationInner
For internal boundaries ( cavities into volumes).
CATLocationOuter
For external boundaries.
CATLocationFull
All cells of the domain to create are immersed into the containing cell (non-manifold topology).
CATLocationIn3DSpace
For creation into a body.
Returns:
The pointer to the created shell.
o CreateVertex
public virtual CreateVertex()
Creates a vertex.
Returns:
The pointer to the created vertex (cell of dimension 0)
o CreateVertexInFace
public virtual CreateVertexInFace()
Creates a topological domain representing a vertex immersed inside a face.
It corresponds to iContainedCellsDimension = 0, iContainingCellDimension = 2.
Returns:
The pointer to the created VertexInFace domain.
o CreateVertexInVolume
public virtual CreateVertexInVolume()
Creates a topological domain representing a vertex immersed inside a volume.
It corresponds to iContainedCellsDimension = 0, iContainingCellDimension = 3.
Returns:
The pointer to the created VertexInVolume domain.
o CreateVolume
public virtual CreateVolume()
Creates a volume.
Returns:
The pointer to the created volume (cell of dimension 3)
o CreateWire
public virtual CreateWire()
Creates a topological domain representing a set of connected edges (called wire) of a body or a volume.
It corresponds to iContainedCellsDimension = 1, iContainingCellDimension = 3.
Returns:
The pointer to the created wire.
o Freeze
public virtual Freeze()
Deprecated:
V5R14 Completed.
Use now with the TRUE value. Freezes the contents of this body.
Further modifications of this body will imply that all modified elements will be copied first, thus keeping the current body state unmodified.
o GetCellsHighestDimension
public virtual GetCellsHighestDimension( ioCellsMaxDim,
ioIsHomogeneous,
ioIsLocallyManifold= NULL,
oNonManifoldCells= NULL)
Gets information on the dimensions in this body.
Parameters:
ioCellsMaxDim
The maximum dimension of the cells.
ioIsHomogeneous
The homogeneity in dimension.
Legal values:
TRUE
Every domain at the higest level has the same dimension ioCellsMaxDim.
FALSE
otherwise.
IsLocallyManifold
If not NULL, it will be filled by :
TRUE
if ioIsHomogeneous is TRUE and the body is locally ioCellsMaxDim-Manifold
FALSE
otherwise
oNonManifoldCells
The optional pointer to a list containing the cells that lead to a non manifold context.
o GroupCells
public virtual GroupCells( const iCellList,
ioNbOfCellsByDomain)
Retrieves the number of manifold domains inside a list of cells.
Parameters:
iCellList
The pointer to the list of cells to handle.
oNbOfCellsByDomain
The number of manifold groups.
o IsLyingOn
public virtual IsLyingOn( iDomain)
Tests whether this CATBody is lying on another one.
Parameters:
iDomain
The body on which this may lay.
Returns:
The diagnosis of the test.

This object is included in the file: CATBody.h
If needed, your Imakefile.mk should include the module: CATGMModelInterfaces

Copyright © 1999-2015, Dassault Systèmes. All rights reserved.