GMOperatorsInterfaces CATICGMTopSimplify
Usage: you must use this class as is. You should never derive it.
public class CATICGMTopSimplify
Class representing the operator that "simplifies" a body or a part of a body.
The simplification operation consists in removing the cells which are not needed
for a consistent body topology.
This operation applies to 3D, 2D and 1D bodies:
- In a solid made up of several cells of CATVolume type, volumes can be merged. The faces between the volumes
to be simplified are then removed while some faces and edges are merged.
- In a skin made up of several cells of CATFace type, faces can be merged. The edges between the faces
to be simplified are then removed while some edges are merged.
- In a wire made up of several cells of CATEdge type, edges can be merged.
The vertices between the edges to be simplified are then removed.
The simplification is achieved as far as the geometric modeler rules are satisfied, for example, the C2 continuity
criteria must be fulfilled all over the faces to be simplified on a skin.
The CATICGMTopSimplify operator follows the global frame of the topological operators
and satisfies the smart mechanism: the
input bodies are not modified. A new resulting body is created,
possibly sharing data with the input bodies.
- A CATICGMTopSimplify operator is created with the CATCGMCreateTopSimplify global function.
It must be directly released with the Release method after use.
It is not streamable.
- The computation is done by the Run function.
- The result is accessed with the GetResult method. If you do not want
to keep the resulting body, use the method to remove it from the geometric container, after the operator deletion.
- Volumes , faces or edges can be simplified.
- During the simplification, new cells are created to replace several adjacent cells
linked to the same or equivalent geometry. For example, if a skin made up of two faces
relying on the same surface is simplified, a new face replacing the two initial faces is created
- The simplification can only be done between adjacent cells of the same domain
- The simplification of edges bordering faces can only be achieved from a 3D or 2D body whose
volumes or faces have already been simplified. This case is unlikely to happen as
the simplication process operates for the cells of all dimensions in a body.
- To specify which part of the body is to be simplified, you can use either SetCellsToRemove or
SetCellsToSimplify. However these methods are mutually exclusive. For example, to simplify
a solid, you must define either the faces to be removed or the volumes to be simplified.
- To enhance performance, it is strongly recommended to use the SetCellsToSimplify
method, if you want to simplify only some cells and not the whole body.
Constructor and Destructor Index
- o
CATICGMTopSimplify()
- Constructor
Method Index
- o
EnableTolerantSimplification(double)
- Turns on tolerant simplification.
- o
GetResult()
- Returns a pointer to the resulting body.
- o
Run()
- Runs this operator.
- o
SetCellsToRemove(CATLISTP(CATCell)&)
- Defines the cells to remove during simplification.
- o
SetCellsToSimplify(CATLISTP(CATCell)&)
- Defines the cells to simplify.
- o
SetFreezeMode(short)
- Defines the state of the resulting body.
Constructor and Destructor
o CATICGMTopSimplify
public CATICGMTopSimplify( | ) |
-
Constructor
Methods
o EnableTolerantSimplification
public virtual EnableTolerantSimplification( | | iRelativeTolerance) |
-
Turns on tolerant simplification.
The tolerance is specified as a multplier of the model resolution and is used solely
to compare the closeness of two surfaces. Edge gaps may exceed this tolerance, but may
not be larger than 100 * model resolution.
Currently only simplification of basic canonical surfaces (Planes, Cylinders, Cones,
Spheres and Tori) are supported.
- Parameters:
-
- iRelativeTolerance
- The value by which to multiply the model resolution. The permissible values range from 1e-9 to 100.
o GetResult
public virtual GetResult( | ) |
-
Returns a pointer to the resulting body.
Must be called after the Run method only once. A second call returns a NULL
pointer.
- Returns:
- The pointer to the resulting body. Use
if you do not want to keep it.
o Run
-
Runs this operator.
o SetCellsToRemove
public virtual SetCellsToRemove( | | iCellsToRemove) |
-
Defines the cells to remove during simplification.
- Parameters:
-
- iCellsToRemove
- The list of cells to remove. This restricts the simplification to the cells bounded
to these cells only.
This method can not be called together with the SetCellsToSimplify method.
o SetCellsToSimplify
public virtual SetCellsToSimplify( | | iCellsToSimplify) |
-
Defines the cells to simplify.
- Parameters:
-
- iCellsToSimplify
- The list of cells to simplify. This restricts the simplification to these cells only.
This method can not be called together with the SetCellsToRemove method.
o SetFreezeMode
public virtual SetFreezeMode( | | iMode | = 1) |
-
Defines the state of the resulting body.
- Parameters:
-
- iMode
- The state of the resulting body.
Legal values:
- 0
- The resulting CATBody is not frozen: it can be modified afterwards.
- 1
- The resulting CATBody is frozen: it cannot be modified afterwards.
This object is included in the file: CATICGMTopSimplify.h
If needed, your Imakefile.mk should include the module: CATGMOperatorsInterfaces
Copyright © 1999-2015, Dassault Systèmes. All rights reserved.