All Frameworks  Class Hierarchy  This Framework  Next  Indexes

NewTopologicalObjects Interface CATBody

System.IUnknown
  |
  +---System.IDispatch
    |
    +---System.CATBaseUnknown
      |
      +---GeometricObjects.CATICGMUnknown
        |
        +---GeometricObjects.CATICGMObject
          |
          +---GeometricObjects.CATGeometry
            |
            +---NewTopologicalObjects.CATTopology
              |
              +---NewTopologicalObjects.CATTopObject
                |
                +---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 CATGeoFactory.CreateBody method and deleted with the CATICGMContainer.Remove 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 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 CreateSmartDuplicator(CATBody*,CATTopData&)
Creates a smart duplicator.
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 void AddDomain(CATDomain* iDomainToAdd,
CATLocation iLocation=CATLocationIn3DSpace )=0
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 CATCell * CreateCell(short iDimension)=0
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 CATDomain * CreateDomain(short iContainedCellsDimension,
short iContainingCellDimension=3,
CATLocation iLocation=CATLocationIn3DSpace)=0
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 CATEdge * CreateEdge()=0
Creates an edge.
Returns:
The pointer to the created edge (cell of dimension 1)
o CreateFace
public virtual CATFace * CreateFace()=0
Creates a face.
Returns:
The pointer to the created face (cell of dimension 2)
o CreateLoop
public virtual CATLoop * CreateLoop(CATLocation iLocation)=0
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 CATLump * CreateLump()=0
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 CATShell * CreateShell(CATLocation iLocation)=0
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 CreateSmartDuplicator
public virtual CATSmartBodyDuplicator* CreateSmartDuplicator(CATBody* iBodyToRecopy,
CATTopData& iTopData)=0
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:
The pointer to the created duplicator. After use, you have to delete it.
See also:
CATSmartBodyDuplicator
o CreateVertex
public virtual CATVertex * CreateVertex()=0
Creates a vertex.
Returns:
The pointer to the created vertex (cell of dimension 0)
o CreateVertexInFace
public virtual CATVertexInFace * CreateVertexInFace()=0
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 CATVertexInVolume * CreateVertexInVolume()=0
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 CATVolume * CreateVolume()=0
Creates a volume.
Returns:
The pointer to the created volume (cell of dimension 3)
o CreateWire
public virtual CATWire * CreateWire()=0
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 void Freeze()= 0
Deprecated:
V5R14 Completed.
Use now CATICGMObject.Completed 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 void GetCellsHighestDimension(CATLONG32& ioCellsMaxDim,
CATBoolean& ioIsHomogeneous,
CATBoolean* ioIsLocallyManifold= NULL,
ListPOfCATCell* oNonManifoldCells= NULL) = 0
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 CATLISTP(CATCell) GroupCells( const CATLISTP(CATCell)* iCellList,
CATListOfLong& ioNbOfCellsByDomain)= 0
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 CATTopLyingOnDiagnostic IsLyingOn(CATBody* iDomain) = 0
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: CATTopologicalObjects

Copyright © 2003, Dassault Systèmes. All rights reserved.