GMModelInterfaces Interface CATICGMSmartBodyDuplicator

Usage: an implementation of this interface is supplied and you must use it as is. You should not reimplement it.


interface CATICGMSmartBodyDuplicator

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 CATTopology 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= CATGeoCreateBody(GeoFactory);
	CATICGMSmartBodyDuplicator * SmartDupl=NewBody->CreateISmartDuplicator(FrozenBody);
	SmartDupl->Run();
 // Retrieves the mapping between the touched edge and its copy:
 CATEdge * DuplicatedEdge = (CATEdge *)	(SmartDupl->GetDuplicatedCell(anEdge));
 // clean the memory
	SmartDupl->Release();

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). .


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.

Methods


o AddInitialBody
public virtual 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 virtual 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 virtual 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 virtual 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 virtual 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 virtual 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 virtual 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 virtual 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: CATICGMSmartBodyDuplicator.h
If needed, your Imakefile.mk should include the module: CATGMModelInterfaces

Copyright © 1999-2015, Dassault Systèmes. All rights reserved.