All Frameworks  Class Hierarchy  This Framework  Indexes   

NewTopologicalObjects Class 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( iFactory,
const 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 AddInitialBody( 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 AddLogFilter( iTypeToFilter)
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 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 GetDuplicatedBody()
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 GetDuplicatedCell( iBeforeDuplication)
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 GetDuplicatedDomain( iBeforeDuplication)
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 GetFullDuplication()
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 GetInitialBodies( ioResult)
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 GetJournal()
Returns the pointer to the journal of this iterator.
Returns:
The pointer to the journal.
o ResetLogFilter
public virtual ResetLogFilter()
Resets the filter on the cells for the journal.
By default, all cells and domains are logged.
o SetDuplicateLyingOn
public SetDuplicateLyingOn( 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 SetFullDuplication( 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.