All Frameworks Class Hierarchy This Framework Previous Next Indexes
NewTopologicalObjects Interface CATCell
System.IUnknown
|
+---System.IDispatch
|
+---System.CATBaseUnknown
|
+---GeometricObjects.CATICGMUnknown
|
+---GeometricObjects.CATICGMObject
|
+---GeometricObjects.CATGeometry
|
+---NewTopologicalObjects.CATTopology
|
+---NewTopologicalObjects.CATTopObject
|
+---CATCell
Usage: an implementation of this interface is supplied and you must use it as is. You should not reimplement it.
interface CATCell
Interface representing a topological cell.
A cell represents a geometry of a given dimension
bounded by cells of lower dimension. A cell is oriented with regards to an
underlying geometry:
- CATOrientationNegative
- the cell orientation is reversed
with regards to the standard orientation.
- CATOrientationPositive
- the cell orientation is the
standard orientation.
- CATOrientationUnknown
- the cell orientation is not
defined.
The cell CATSide defines the matter side on a bounding cell of a cell:
| CATFace | CATEdge | CATVertex |
CATVolume |
CATSideLeft: the face normal points inside the volume
CATSideRight: the face normal points outside the volume
CATSideFull: the face is immersed into the volume |
CATSideFull: the edge is immersed into the volume |
CATSideFull: the vertex is immersed into the volume |
CATFace |
|
CATSideleft: when the observation direction is opposite
to the face normal and the edge is run with its own orientation, the matter
is on the edge left
CATSideRight: when the observation direction is opposite
to the face normal and the edge is run with its own orientation, the matter
is on the edge right
CATSideFull: the edge is immersed into the face |
CATSideFull: the vertex is immersed into the face |
CATEdge |
| |
CATSideLeft: the vertex is at the edge beginning
CATSideRight: the vertex is at the edge end
CATSideFull: impossible |
If the cell bounds the domain twice, it is set to CATSideUnknown.
A CATCell is created with the CATBody.CreateCell method, and deleted with the
CATICGMContainer.Remove method. By default, this deletion is not recursive at the topological level: the domains of the cells are
not deleted. However, the geometry of the cell, if not used by another object, is also deleted.
Method Index
- o
AddBoundingCell(CATCell*,CATSide,CATDomain*,CATGeometry*)
- Adds a CATCell to the boundary of this CATCell.
- o
AddDomain(CATDomain*,CATLocation)
- Adds a CATDomain to this CATCell.
- o
CreateBoundaryIterator()
- Creates an iterator on the boundary of this CATCell.
- o
CreateBoundedCellsIterator(CATBody*)
- Creates an iterator on the CATCells bounded by this CATCell.
- o
EstimateCenter(CATMathPoint&)
- Retrieves a point belonging to this CATCell.
- o
GetCommonBorderCells(CATCell*,short,CATLISTP(CATCell)&,short)
- Retrieves the cells of a given dimension bounding this and an another cell.
- o
GetDimension()
- Returns the dimension of this CATCell.
- o
GetGeometry(CATOrientation*)
- Returns the geometry of this CATCell.
- o
GetGeometryOnCell(CATCell*,CATSide,CATOrientation*)
- Returns the geometry of this CATCell with respect to a bounded cell.
- o
GetGeometryOrientation()
- Returns the orientation of this CATCell with regards to its geometry.
- o
GetInfinite()
- Returns the infinite property of this CATCell.
- o
GetLyingGeometryOn(CATCell*)
- Returns the geometry of this as a geometry lying on the geometry of another cell.
- o
GetLyingOn(CATLISTP(CATCell)&,CATBody*)
- Retrieves the CATCells on which this is directly lying on.
- o
GetMatterSide(CATCell*)
- Returns the matter side of this CATCell with regards to a bounding cell of
upper dimension.
- o
GetNbBoundedCells(CATBody*,CATBoolean)
- Returns the number of cells bounded by this cell.
- o
GetNbInternalDomains()
- Returns the number of internal CATDomains of this CATCell.
- o
GetNeighborCell(CATCell*,CATBody*,short*)
- Retrieves the adjacent cell of this on the other side of a border cell.
- o
IsLyingOn(CATTopology*,CATLISTP(CATCell)*,CATLISTP(CATGeometry)*)
- Tests whether this CATCell is lying (directly or indirectly) on another topological object.
- o
IsOnBorder(CATCell*,CATSide*)
- Tests whether this CATCell bounds a given cell of upper dimension.
- o
RemoveBoundingCell(CATCell*)
- Removes a CATCell from the boundary of this CATCell.
- o
SetGeometry(CATGeometry*,CATOrientation)
- Defines the geometry of this CATCell.
- o
SetGeometryOnCell(CATCell*,CATSide,CATGeometry*)
- Sets the geometry of this CATCell with respect to a bounded cell.
- o
SetGeometryOrientation(CATOrientation)
- Modifies the orientation of this CATCell with regards to its geometry.
- o
SetInfinite(CATBoolean)
- Defines this CATCell as infinite.
Methods
o AddBoundingCell
-
Adds a CATCell to the boundary of this CATCell.
The cells dimensions must match the domain low and high dimensions.
- Parameters:
-
- iBoundingCell
- The pointer to the cell to add to the boundary of this.
- iSideOrientation
- The side of the matter when walking along the natural orientation of iBoundingCell.
- iDomain
- The pointer to the domain that will contain the added cell.
If not NULL, the bounding cell is also added to the domain.
- iWithGeometry
- The pointer to the underlying geometry ( a CATPCurve for an
Edge-Bounding-Face, a CATPointOnEdgeCurve for a Vertex-Bounding-Edge, ..)
If not NULL at the method call, the geometry is associated with
iBoundingCell.
o AddDomain
-
Adds a CATDomain to this CATCell.
For volumes and faces only.
- Parameters:
-
- iDomain
- The pointer to the domain to add.
- iLocation
- The location of the domain to bound this.
o CreateBoundaryIterator
-
Creates an iterator on the boundary of this CATCell.
- Returns:
- The pointer to the created iterator. You must delete this operator after use.
o CreateBoundedCellsIterator
-
Creates an iterator on the CATCells bounded by this CATCell.
- Parameters:
-
- iInBody
- The pointer to the body in which the bounded cells are searched. Recall
that a same CATCell can be used by several bodies.
- Returns:
- The pointer to the created iterator. If not NULL, you must delete this operator after use.
- If this CATCell is inside iInBody, iterator is created.
- If this CATCell does not belongs to iInBody, NULL is output.
o EstimateCenter
public virtual void EstimateCenter( | CATMathPoint& | ioResult) const = 0 |
-
Retrieves a point belonging to this CATCell.
- Parameters:
-
- ioResult
- The estimated center of this CATCell.
o GetCommonBorderCells
public virtual void GetCommonBorderCells( | CATCell* | iCell, |
| short | iMaxDepthSearch, |
| CATLISTP(CATCell)& | ioResultCells, |
| short | iResultCellsDimension | = -1) = 0 |
-
Retrieves the cells of a given dimension bounding this and an another cell.
- Parameters:
-
- iCell
- The pointer to the other cell, of same dimension as this.
- iMaxDepthSearch
- The range of dimensions between the this and iCell. For example,
if this and iCell are faces, specifying 1 returns the common edges, specifying 2
returns the common edges plus the common vertices.
Current limitation: this and iCell must have the same dimension.
- ioResultCells
- The list of pointers to the found cells.
- iResultCellsDimension
- The dimension (0,1,2,3) of the searched cells, -1 for all the dimensions.
o GetDimension
public virtual short GetDimension( | )=0 |
-
Returns the dimension of this CATCell.
- Returns:
- The dimension.
Legal values:
- 0
- for a vertex.
- 1
- for an edge.
- 2
- for a face.
- 3
- for a volume.
o GetGeometry
-
Returns the geometry of this CATCell.
- Parameters:
-
- ioOrientation
- The relative orientation between this and its geometry.
If NULL, the orientation is not filled out.
- Returns:
- The pointer to the geometry of this.
o GetGeometryOnCell
-
Returns the geometry of this CATCell with respect to a bounded cell.
- Parameters:
-
- iBoundedCell
- The pointer to the cell bounded by this.
- iSide
- The matter side attribute of this, as bounding iBoundedCell.
- ioOrientation
- A pointer to the cell orientation with regards to the geometry.
If NULL, the orientation is not filled out.
- Returns:
- The pointer to the geometry of this.
- If this is a CATEdge, iBoundedCell is a CATFace,
and iGeomOnSupport is a CATPCurve.
- If this is a CATVertex, iBoundedCell is a CATEdge,
and iGeomOnSupport is a CATPointOnEdgeCurve.
o GetGeometryOrientation
-
Returns the orientation of this CATCell with regards to its geometry.
- Returns:
- The relative orientation between this and its geometry.
o GetInfinite
-
Returns the infinite property of this CATCell.
- Returns:
- The infinity mode of this.
Legal values:
TRUE, if this must be considered as infinite,
FALSE if it is finite (default mode).
o GetLyingGeometryOn
-
Returns the geometry of this as a geometry lying on the geometry of another cell.
- Parameters:
-
- iSupport
- The pointer to the supporting cell.
- Returns:
- The pointer to the geometry of this lying on iSupport.
o GetLyingOn
-
Retrieves the CATCells on which this is directly lying on.
- Parameters:
-
- ioSupports
- The list of the pointers to the supporting cells.
- iInBody
- The pointer to the body in which the cells are searched. Recall
that a same CATCell can be used by several bodies.
If NULL, the search is done among all the bodies.
o GetMatterSide
-
Returns the matter side of this CATCell with regards to a bounding cell of
upper dimension.
- Parameters:
-
- iUpperDimCell
- The pointer to the cell of higher dimension.
- Returns:
- The side attribute.
- Throws:
- If the difference of dimensions is greater than 1,
or if this does not bound iUpperDimCell.
o GetNbBoundedCells
-
Returns the number of cells bounded by this cell.
- Parameters:
-
- iInBody
- The pointer to the body in which the bounded cells are searched. Recall
that a same CATCell can be used by several bodies.
- iDifferentiateMatterSide
- Defines whether a cell that is many times bounded by the same cell with different matter sides
must be counted once or twice. Notice that this configuration remains unsual.
Legal values:
- FALSE
- if each cell only occurs once in the result (default mode)
- TRUE
- each distinct matter side for the same bounding cell occurs in the result
- Returns:
- The number of bounded cells.
o GetNbInternalDomains
public virtual CATLONG32 GetNbInternalDomains( | )=0 |
-
Returns the number of internal CATDomains of this CATCell.
This method performs a recursive scan.
- Returns:
- The number of internal domains.
o GetNeighborCell
-
Retrieves the adjacent cell of this on the other side of a border cell.
- Parameters:
-
- iBorderCell
- The pointer to the bounding cell.
- iInBody
- The pointer to the body in which the bounded cells are searched. Recall
that a same CATCell can be used by several bodies.
- ioRelativeOrientation
- The relative orientation of the found cell with regards to this. If NULL, this argument
is not output.
- Returns:
- The pointer to the other bounded cell, NULL if iBorderCell only bounds this.
- Throws:
- If the result is not unique.
o IsLyingOn
-
Tests whether this CATCell is lying (directly or indirectly) on another topological object.
- Parameters:
-
- iContainerOfSupportingCell
- The pointer to another topological object.
- ioSupports
- The pointer to the list of supporting cells.
- ioGeomSupports
- The pointer to the list of the geometry of supporting cells.
- Returns:
- The result of the test.
o IsOnBorder
-
Tests whether this CATCell bounds a given cell of upper dimension.
- Parameters:
-
- iUpperDimCell
- The pointer to the cell of upper dimension.
- ioSide
- A pointer to the matter side of the bouding cell.
If NULL, the side is not filled out.
Warning: ioSide=CATSideUnknown:
- either if the difference of dimensions is greater than 1
- or if this bounds UpperDimCell twice (Left and Right)
- Returns:
- The result of the test.
Legal values:
- 0
- if this does not bound
iUpperDimCell
- 1
- if this bounds iUpperDimCell
o RemoveBoundingCell
public virtual void RemoveBoundingCell( | CATCell* | iCellToRemove)=0 |
-
Removes a CATCell from the boundary of this CATCell.
- Parameters:
-
- iCellToRemove
- The pointer to the cell to remove.
The cell is detached from the boundary, but still exists in the CATGeoFactory.
o SetGeometry
-
Defines the geometry of this CATCell.
- Parameters:
-
- iGeometry
- The pointer to the geometry to associate with this.
- The geometry of a CATFace is a CATSurface.
- The geometry of a CATEdge is a CATEdgeCurve.
- The geometry of a CATVertex is a CATMacroPoint.
- SetGeometry is not used in case of a CATVolume,
as the geometry of a CATVolume always is the 3D space.
- iOrientation
- The relative orientation of the cell with regards to the geometry.
o SetGeometryOnCell
-
Sets the geometry of this CATCell with respect to a bounded cell.
- Parameters:
-
- iBoundedCell
- The pointer to the cell bounded by this.
- iSide
- The matter side attribute of this, as bounding iBoundedCell.
- iGeomOnSupport
- The pointer to the geometry of this.
- If this is a CATEdge, iBoundedCell is a CATFace,
and iGeomOnSupport is a CATPCurve.
- If this is a CATVertex, iBoundedCell is a CATEdge,
and iGeomOnSupport is a CATPointOnEdgeCurve.
o SetGeometryOrientation
public virtual void SetGeometryOrientation( | CATOrientation | iNewOrientation)=0 |
-
Modifies the orientation of this CATCell with regards to its geometry.
For faces and edges.
- Parameters:
-
- iNewOrientation
- The new relative orientation.
o SetInfinite
public virtual void SetInfinite( | CATBoolean | iYesOrNo)=0 |
-
Defines this CATCell as infinite.
All the cells are bordered,
but one can consider a cell as infinite by applying this method.
- Parameters:
-
- iYesOrNo
- The infinity mode of this.
Legal values:
TRUE, if this must be considered as infinite,
FALSE if it is finite (default mode).
This object is included in the file: CATCell.h
If needed, your Imakefile.mk should include the module: CATTopologicalObjects