All Frameworks Class Hierarchy This Framework Previous Next Indexes
NewTopologicalObjects Class CATSmartBodyDuplicator
Mathematics.CATCGMVirtual
|
+---GeometricObjects.CATCGMOperator
|
+---NewTopologicalObjects.CATTopOperator
|
+---CATSmartBodyDuplicator
Usage: you must use this class as is. You should never derive it.
public class CATSmartBodyDuplicator
Class defining an operator that duplicates the touched cells (and the cells depending on these
touched cells) of a body.
This is used in the context of the "smart mechanism".
After its creation a CATToplogy is modifiable.
It becomes non-modifiable when a body containing it is frozen.
The smart duplicator only duplicates the touched cells and
the domains impacted by the touched cells.
As any operator, the duplicator is created, run, read,and deleted.
Sample:
// anEdge is a cell belonging to FrozenBody.
anEdge->Touch(FrozenBody);
// Create an empty body to input the duplicated cells
CATBody * NewBody=GeoFactory->CreateBody();
CATSmartBodyDuplicator * SmartDupl=NewBody->CreateSmartDuplicator(FrozenBody);
SmartDupl->Run();
// Retrieves the mapping between the touched edge and its copy:
CATEdge * DuplicatedEdge = (CATEdge *) (SmartDupl->GetDuplicatedCell(anEdge));
// clean the memory
delete SmartDupl;
NOTE:
Throughout this header documentation,
the term "lying on link" refers to a piece of information which is contained in
the cell to be duplicated. This piece of information gives a clue as to whether
the duplicated cell is lying on the cell the original cell was lying on (the link).
.
Constructor and Destructor Index
- o
CATSmartBodyDuplicator(CATGeoFactory*,CATTopData&)
- Constructs a body duplicator.
- o
~CATSmartBodyDuplicator()
-
Method Index
- o
AddInitialBody(CATBody*)
- Adds another body to compute the impacts of a touched CATTopology.
- o
AddLogFilter(CATGeometricType)
- Adds a new type to be logged inside the journal of this duplicator.
- o
GetDuplicateLyingOn()
- Returns the lying on link of a duplicated cell.
- o
GetDuplicatedBody()
- Returns the pointer to the body inside which the duplicated cells are created.
- o
GetDuplicatedCell(CATCell*)
- Returns the mapping between a touched cell and its copy.
- o
GetDuplicatedDomain(CATDomain*)
- Returns the mapping between a touched domain and its copy.
- o
GetFullDuplication()
- Returns a value indicating how the edges and vertices are duplicated by this.
- o
GetInitialBodies(CATLISTP(CATBody)&)
- Retrieves the list of the bodies that are taken into account by this duplicator.
- o
GetJournal()
- Returns the pointer to the journal of this iterator.
- o
ResetLogFilter()
- Resets the filter on the cells for the journal.
- o
SetDuplicateLyingOn(CATCGMDuplicateLyingOn)
- Specifies the lying on link of a duplicated cell.
- o
SetFullDuplication(short)
- Specifies how the edges and vertices are to be duplicated by this.
Constructor and Destructor
o CATSmartBodyDuplicator
-
Constructs a body duplicator.
- Parameters:
-
- iFactory
- The factory where objects are created.
- iTopData
- The object defining the CATSoftwareConfiguration and the CATCGMJournalList.
o ~CATSmartBodyDuplicator
public virtual ~CATSmartBodyDuplicator( | ) |
-
Methods
o AddInitialBody
public void AddInitialBody( | CATBody* | NewInitialBody) |
-
Adds another body to compute the impacts of a touched CATTopology.
- Parameters:
-
- iNewInitialBody
- The pointer to another body to take into account.
o AddLogFilter
-
Adds a new type to be logged inside the journal of this duplicator.
- Parameters:
-
- iTypeToFilter
- The type of geometry to add to the log.
Sample: After ResetLogFilter + AddLogFilter(CATEdgeType) , only edges are logged.
After ResetLogFilter + AddLogFilter(CATEdgeType) + AddLogFilter(CATShellType),
edges and shells are logged.
o GetDuplicateLyingOn
-
Returns the lying on link of a duplicated cell.
- Returns:
- The mode of duplication.
Legal values:
- CatCGMLyingOnNoCopy
- A duplicated cell contains no lying on link.
- CatCGMLyingOnDuplicated
- Lying on links are duplicated on a duplicated cell.
- CatCGMLyingOnTransfered
- Lying on links are transfered from an original cell to the duplicated cell.
o GetDuplicatedBody
public CATBody* GetDuplicatedBody( | )const |
-
Returns the pointer to the body inside which the duplicated cells are created.
- Returns:
- The pointer to the body, tha must be not frozen.
o GetDuplicatedCell
public virtual CATCell* GetDuplicatedCell( | CATCell* | iBeforeDuplication) const = 0 |
-
Returns the mapping between a touched cell and its copy.
- Parameters:
-
- iBeforeDuplication
- The pointer to the touched cell.
- Returns:
- The pointer to the corresponding duplicated cell.
o GetDuplicatedDomain
-
Returns the mapping between a touched domain and its copy.
- Parameters:
-
- iBeforeDuplication
- The pointer to the touched domain.
- Returns:
- The pointer to the corresponding duplicated domain.
o GetFullDuplication
public short GetFullDuplication( | )const |
-
Returns a value indicating how the edges and vertices are duplicated by this.
- Returns:
- The duplication mode.
Legal values:
- 0
- Default mode: the touched edges and vertices are not duplicated when they bound faces.
- 1
- Full duplication: all the touched cells and their impacts are duplicated.
o GetInitialBodies
-
Retrieves the list of the bodies that are taken into account by this duplicator.
- Parameters:
-
- ioResult
- The list of the bodies. As part of the class, this list must not be directly deleted.
o GetJournal
-
Returns the pointer to the journal of this iterator.
- Returns:
- The pointer to the journal.
o ResetLogFilter
public virtual void ResetLogFilter( | )= 0 |
-
Resets the filter on the cells for the journal.
By default, all cells and domains are logged.
o SetDuplicateLyingOn
-
Specifies the lying on link of a duplicated cell.
- Parameters:
-
- iMode
- The mode of lying on links duplication.
Legal values:
- CatCGMLyingOnNoCopy
- A duplicated cell contains no lying on link.
- CatCGMLyingOnDuplicated
- Lying on links are duplicated on a duplicated cell.
- CatCGMLyingOnTransfered
- Lying on links are transfered from an original cell to the duplicated cell.
o SetFullDuplication
public void SetFullDuplication( | short | iMode) |
-
Specifies how the edges and vertices are to be duplicated by this.
- Parameters:
-
- iMode
- The mode of duplication.
Legal values:
- 0
- Default mode: the touched edges and vertices are not duplicated when they bound faces.
- 1
- Full duplication: all the touched cells and their impacts are duplicated.
This object is included in the file: CATSmartBodyDuplicator.h
If needed, your Imakefile.mk should include the module: CATTopologicalObjects