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:
- If one of the cells belongs to the body, all the bounding cells also
belong to this body.
- If two cells of a same body are intersecting together, their
intersection is a set of cells belonging to this body.
- Cells can be shared between several bodies.
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.
- a vertex can border:
- an egde (the vertex is one of the edge extremities)
- a face ( the vertex is immersed inside the face:
non manifold case -> CATVertexInFace domain )
- a volume or a body ( the vertex is immersed into the volume:
non manifold case -> CATVertexInVolume domain)
- an edge may border:
- a face ( the edge is one of the face borders
-> CATLoop domain)
- a face ( the edge is immersed inside the face:
non manifold case -> CATLoop domain)
- a volume or a body( the edge is immersed inside the volume:
non manifold case -> CATWire domain)
- an face may border (-> CATShell domain ):
- a volume ( the face is one of the volume borders)
- a volume ( the face is immersed into the volume:
non manifold case)
- a CATLump is a domain of dimension 3.
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:
- This is used to duplicate or share cells and domains from iBodyToRecopy into this.
- a cell or domain will be duplicated if it is non-modifiable and touched,
otherwise, it will be shared
- iBodyToRecopy and this can be the same body.
- 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
-
- 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.