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
public CATSmartBodyDuplicator(CATGeoFactory* iFactory,
const CATTopData& iData)
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
public virtual void AddLogFilter(CATGeometricType iTypeToFilter) = 0
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
public CATCGMDuplicateLyingOn GetDuplicateLyingOn()const
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
public virtual CATDomain* GetDuplicatedDomain(CATDomain* iBeforeDuplication) const = 0
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
public void GetInitialBodies(CATLISTP(CATBody)& ioResult) const
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
public CATCGMJournalList* 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
public void SetDuplicateLyingOn(CATCGMDuplicateLyingOn iMode)
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

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