GMap3d::CGMapGeneric Class Reference

#include <g-map-generic.hh>

Inherits GMap3d::CGMap.

Inherited by GMap3d::CGMapVertex.

Collaboration diagram for GMap3d::CGMapGeneric:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 CGMapGeneric ()
virtual ~CGMapGeneric ()
CDartalpha01 (CDart *ADart) const
CDartalpha010 (CDart *ADart) const
CDartalpha0101 (CDart *ADart) const
CDartalpha0101210 (CDart *ADart) const
CDartalpha01010 (CDart *ADart) const
CDartalpha01021 (CDart *ADart) const
CDartalpha0102101 (CDart *ADart) const
CDartalpha010212 (CDart *ADart) const
CDartalpha012 (CDart *ADart) const
CDartalpha0121 (CDart *ADart) const
CDartalpha0123 (CDart *ADart) const
CDartalpha012321 (CDart *ADart) const
CDartalpha02 (CDart *ADart) const
CDartalpha020 (CDart *ADart) const
CDartalpha021 (CDart *ADart) const
CDartalpha0210 (CDart *ADart) const
CDartalpha02101 (CDart *ADart) const
CDartalpha02121 (CDart *ADart) const
CDartalpha023 (CDart *ADart) const
CDartalpha03 (CDart *ADart) const
CDartalpha030 (CDart *ADart) const
CDartalpha10 (CDart *ADart) const
CDartalpha101 (CDart *ADart) const
CDartalpha1010 (CDart *ADart) const
CDartalpha10101 (CDart *ADart) const
CDartalpha1010101 (CDart *ADart) const
CDartalpha1012 (CDart *ADart) const
CDartalpha10121 (CDart *ADart) const
CDartalpha101201 (CDart *ADart) const
CDartalpha1012101 (CDart *ADart) const
CDartalpha101232 (CDart *ADart) const
CDartalpha102 (CDart *ADart) const
CDartalpha1021 (CDart *ADart) const
CDartalpha12 (CDart *ADart) const
CDartalpha121 (CDart *ADart) const
CDartalpha1210 (CDart *ADart) const
CDartalpha12101 (CDart *ADart) const
CDartalpha1212 (CDart *ADart) const
CDartalpha123 (CDart *ADart) const
CDartalpha1232 (CDart *ADart) const
CDartalpha12321 (CDart *ADart) const
CDartalpha123210 (CDart *ADart) const
CDartalpha13 (CDart *ADart) const
CDartalpha20 (CDart *ADart) const
CDartalpha201 (CDart *ADart) const
CDartalpha21 (CDart *ADart) const
CDartalpha210 (CDart *ADart) const
CDartalpha2101 (CDart *ADart) const
CDartalpha21012 (CDart *ADart) const
CDartalpha210123 (CDart *ADart) const
CDartalpha212 (CDart *ADart) const
CDartalpha2121 (CDart *ADart) const
CDartalpha23 (CDart *ADart) const
CDartalpha231 (CDart *ADart) const
CDartalpha2310 (CDart *ADart) const
CDartalpha232 (CDart *ADart) const
CDartalpha2321 (CDart *ADart) const
CDartalpha232101 (CDart *ADart) const
CDartalpha30 (CDart *ADart) const
CDartalpha3012 (CDart *ADart) const
CDartalpha30120 (CDart *ADart) const
CDartalpha302 (CDart *ADart) const
CDartalpha31 (CDart *ADart) const
CDartalpha32 (CDart *ADart) const
CDartalpha3201 (CDart *ADart) const
CDartalpha321 (CDart *ADart) const
CDartalpha321012 (CDart *ADart) const
CDartalpha323 (CDart *ADart) const
CDartgetDirectInfoAsDart (CDart *ADart, int ADirectInfoIndex)
Méthodes permettant d'allouer et de libérer de la mémoire aux
champs directInfo des brins, ainsi que d'effectuer la sauvegarde de coutures.

void allocMemoryToDirectInfo (int AMarkNumber, int ADirectInfoIndex, int ABytes, TOrbit AOrbitUsed=ORBIT_NONE)
void allocMemoryToDirectInfo (CDart *ADart, TOrbit AOrbit, int ADirectInfoIndex, int ABytes, TOrbit AOrbitUsed=ORBIT_NONE)
void freeMemoryFromDirectInfo (int AMarkNumber, int ADirectInfoIndex, TOrbit AOrbitUsed=ORBIT_NONE)
void freeMemoryFromDirectInfo (CDart *ADart, TOrbit AOrbit, int ADirectInfoIndex, TOrbit AOrbitUsed=ORBIT_NONE)
void saveAlphaInDirectInfo (int AAlphaIndex, int ADirectInfoIndex)
CDartcreateTopoTriangle ()
CDartcreateTopoSquare ()
CDartcreateTopoPolygon (int An)
CDartcreateTopoOpenedPole (int An)
CDartcreateTopoPole (int An)
void createTopoTube (int AMeridians, int AParallels, CDart **ABorder1, CDart **ABorder2)
CDartcreateTopoTube (int AMeridians, int AParallels)
void createTopoSphere (int AMeridians, int AParallels, CDart **ASouthPole, CDart **ANorthPole)
CDartcreateTopoSphere (int AMeridians, int AParallels)
void createTopoCylinder (int AMeridians, int AParallels, CDart **ABorder1, CDart **ABorder2, bool AClose1=true, bool AClose2=true)
CDartcreateTopoCylinder (int AMeridians, int AParallels, bool AClose1=true, bool AClose2=true)
void createTopoPyramid (int AMeridians, int AParallels, CDart **ABaseDart, CDart **APoleDart, bool ACloseBase=true)
CDartcreateTopoPyramid (int AMeridians, int AParallels, bool ACloseBase=true)
void createTopoTorus (int AMeridians, int AParallels, CDart **AEquator)
CDartcreateTopoTorus (int AMeridians, int AParallels)
void createTopoSquareIMeshed (int ASx, int ASy, int AMeshDimension, CDart *ASquareCorners[2][2])
void createTopoCubeIMeshed (int ASx, int ASy, int ASz, int AMeshDimension, bool ACreatedFaces[3][2], CDart *AFacesCorners[3][2][2][2])
void createTopoMesh1 (int ASx, CDart *AMesh1Corners[2], CDart *AModel=NULL)
CDartcreateTopoMesh1 (int ASx, CDart *AModel=NULL)
void createTopoMesh2 (int ASx, int ASy, CDart *AMesh2Corners[2][2], bool A3Sewed=false)
CDartcreateTopoMesh2 (int ASx, int ASy, bool A3Sewed=false)
void createTopoMesh3 (int ASx, int ASy, int ASz, CDart *AMesh3Corners[2][2][2])
CDartcreateTopoMesh3 (int ASx, int ASy, int ASz)
bool isIsolatedPolyline (CDart *ADart)
bool isClosedPolyline (CDart *ADart)
int getNbPolylineVertices (CDart *ADart)
int getNbPolylineEdges (CDart *ADart, bool AConsider0FreeDartsAsEdges=true)
CDartprolongPolyline (CDart *ADart)
CDartshortenPolyline (CDart *ADart)
CDartclosePolyline (CDart *ADart)
bool belongToSameOrientedOrbit (CDart *ADart1, CDart *ADart2, TOrbit AOrbit)
bool isOrientable (CDart *ADart, TOrbit AOrbit)
void countBorders (int AMarkNumber, int *ANb0, int *ANb1, int *ANb2, int *ANb3)
void countBorders (CDart *ADart, TOrbit AOrbit, int *ANb0, int *ANb1, int *ANb2, int *ANb3)
void countCells (int AMarkNumber, int *ANb0, int *ANb1, int *ANb2, int *ANb3, int *ANb4, int *ANbDarts=NULL)
void countCells (CDart *ADart, TOrbit AOrbit, int *ANb0, int *ANb1, int *ANb2, int *ANb3, int *ANb4, int *ANbDarts=NULL)
void getGlobalCharacteristics (int *ANbDarts, int *ANbVertices, int *ANbEdges, int *ANbFaces, int *ANbVolumes, int *ANbCC, int *ANb0Borders, int *ANb1Borders, int *ANb2Borders, int *ANb3Borders)
void getSurfaceCharacteristics (CDart *ADart, int *ANbDarts, int *ANbVertices, int *ANbEdges, int *ANbFaces, int *ANb0Borders, int *ANb1Borders, int *ANb2Borders, int *ANb2BordersWhenClosed, int *AEuler, int *AOrient, int *AGenus)
std::string getSurfaceName (int AB2, int AQ, int AG)
bool isConnex ()
bool checkTopology ()
bool checkEmbeddings (TOrbit AOrbit, int AAttributeIdentity, bool AEmbeddingMustExist=true)
bool isIClosedOrbit (CDart *ADart, int ADimension, TOrbit AOrbit)
bool isIFreeOrbit (CDart *ADart, int ADimension, TOrbit AOrbit)
int getMapDimension ()
int degree (CDart *ADart, int ACellDim, int ABoundingCellDim=4)
bool isLocalDegreeTwoSup (CDart *ADart, int ACellDim)
bool isLocalDegreeTwoInf (CDart *ADart, int ACellDim)
int getSewDimension (CDart *ADart1, CDart *ADart2)
bool intuitiveSew (CDart *ADart1, CDart *ADart2)
int multiSew (CDart *ADart1, int AMarkNumber1, CDart *ADart2, int ADimension)
int unsewMarkedCells (int AMarkNumber, int ADim)
int intuitiveUnsewMarkedCells (int AMarkNumber)
int getBorderDimension (CDart *ADart)
bool markBorders (int AMarkNumber, int ADim)
bool markBorders (int AMarkNumber)
bool canSewBorders (CDart *ADart1, CDart *ADart2, int ADim, int An=0)
void borderTopoSew (CDart *ADart1, CDart *ADart2, int ADim, int An=0)
void borderSew (CDart *ADart1, CDart *ADart2, int ADim, int An=0)
bool intuitiveBorderSew (CDart *ADart1, CDart *ADart2, int An=0)
void border2TopoSew (CDart *ADart1, CDart *ADart2, int An=0)
void border2Sew (CDart *ADart1, CDart *ADart2, int An=0)
virtual void stopUp (CDart *ADart, int ADim)
int stopUpMarkedBorders (int AMarkNumber, int ADim)
int intuitiveStopUpMarkedBorders (int AMarkNumber)
virtual CDarttriangulateEdge (CDart *ADart)
virtual CDarttriangulateFace (CDart *ADart)
virtual CDarttriangulateVolume (CDart *ADart)
CDarttriangulate (CDart *ADart, int ADim)
int triangulateMarkedCells (int AMarkNumber, int ADim)
bool canQuadrangulateFace (CDart *ADart, bool AInsertVertices=true)
virtual CDartquadrangulateFace (CDart *ADart, bool AInsertVertices=true)
int quadrangulateMarkedFaces (int AMarkNumber, bool AInsertVertices=true)
virtual void shiftOneFictiveEdge (CDart *ADart, CDart *ADart2)
unsigned int shiftAllEdgesIncidentToVertex (CDart *ADart)
void shiftAllAdjacentFictiveEdges (CDart *ADart, int AMark)
void shiftAllFictiveEdges (CDart *ADart, int AMark)
void shiftAllFictiveEdgesAroundEdge (CDart *ADart, int AMark)
bool existFictiveEdgeIncidentTo (CDart *ADart, int AMark)
int findVertexType (CDart *ADart, CDart **AResDart, int AMark)
CDartfindIncidentEdgeNonLoop (CDart *ADart)
int markRealFace (CDart *ADart, int AMark, int AMark2)
int unmarkRealFace (CDart *ADart, int AMark, int AMark2)
virtual void shiftOneFictiveFace (CDart *ADart, int AFictiveFaceMark, int ADeleteMark)
virtual void shiftOneFictiveFaceAlongDanglingEdge (CDart *ADart, int AFictiveFaceMark, int ADeleteMark)
void shiftAllFictiveFaces (CDart *ADart, int AFictiveFaceMark, int ADeleteMark)
bool canShiftOneFictiveFace (CDart *ADart, int AFictiveFaceMark)
bool canShiftAllFictiveFaces (CDart *ADart, int AFictiveFaceMark)
int findEdgeType (CDart *ADart, CDart **AResDart, int AFictiveFaceMark)
enum  TMovement { Forward, Backward, Left, Right }
void markOrbit (CDart *ADart, TOrbit AOrbit, int AMarkNumber)
void halfMarkOrbit (CDart *ADart, TOrbit AOrbit, int AMarkNumber)
void halfUnmarkOrbit (CDart *ADart, TOrbit AOrbit, int AMarkNumber)
void unmarkOrbit (CDart *ADart, TOrbit AOrbit, int AMarkNumber)
void unmarkAll (int AMarkNumber)
int markIncidentCells (TOrbit AOrbit, int AMarkNumberSrce, int AMarkNumberDest)
int markIncidentCells (TOrbit AOrbit, int AMarkNumber)
void halfMarkIncidentCells (TOrbit AOrbit, int AMarkNumberSrce, int AMarkNumberDest)
void halfMarkIncidentCells (TOrbit AOrbit, int AMarkNumber)
void markInterior (CDart *ADart, int ADimension, int AMarkBorder, int AMarkInterior=-1)
void markIntersection (int AMarkNumber1, int AMarkNumber2, TOrbit AOrbit1, TOrbit AOrbit2, int AMarkResult, bool AInitialMarkIncidentCells=false)
void markCopy (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit)
void markCopy (int AMarkNumberFrom, int AMarkNumberTo)
void markAdd (int AMarkNumberFrom, int AMarkNumberTo)
void markAdd (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit)
void markAnd (int AMarkNumberFrom, int AMarkNumberTo)
void markAnd (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit)
void markSub (int AMarkNumberFrom, int AMarkNumberTo)
void markSub (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit)
void markMove (int AMarkNumberFrom, int AMarkNumberTo)
void markMove (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit)
bool isWholeCellMarked (CDart *ADart, TOrbit AOrbit, int AMarkNumber)
int getMarkedCells (TOrbit AOrbit, int AMarkNumber, CDart *ALastMarked=NULL, CDart **ADart1=NULL, CDart **ADart2=NULL, CDart **ADart3=NULL)
CDartgo (TMovement ADirection, CDart *ALastDart, TOrbit AOrbit, int AMarkNumber, bool ASelect=true)
CDartgoAsFarAsPossible (TMovement ADirection, CDart *ALastDart, TOrbit AOrbit, int AMarkNumber, bool ASelect=true)
int duplicateMarkedDarts (int AMarkNumber, int ADirectInfoIndex=-1, bool ADuplicateEmbeddings=true, bool A0Sew=true, bool A1Sew=true, bool A2Sew=true, bool A3Sew=true)
CDartduplicateDarts (CDart *ADart, TOrbit AOrbit, int ADirectInfoIndex=-1, bool ADuplicateEmbeddings=true)
int deleteMarkedDarts (int AMarkNumber)
void sewDuplicatedDarts (CCoverage *ACoverage, int AMarkNumber, int ADirectInfoIndex, bool A0Sew=true, bool A1Sew=true, bool A2Sew=true, bool A3Sew=true)
void duplicateEmbeddingsOfDuplicatedDarts (CCoverage *ACoverage, int AMarkInitial, int AMarkDuplicated, int ADirectInfoIndex)
virtual CDartinsertVertex (CDart *ADart)
int insertVertexOnMarkedEdges (int AMarkNumber)
virtual CDartinsertEdge (CDart *ADart1, CDart *ADart2)
int insertEdgeOnMarkedFaces (int AMarkNumber, bool ANoCrossedFace=false, bool ANoTwoEdgesFace=false)
bool canInsertFace (CDart *ADart, int AMarkNumber, bool ANoCrossedVolume=false, bool ANoTwoEdgesFace=false, bool ANoTwoFacesVolume=false)
virtual CDartinsertFace (CDart *ADart, int AMarkNumber, bool ANoCrossedVolume=false)
int insertFaceOnMarkedVolumes (int AMarkNumber, bool ANoCrossedVolume=false, bool ANoTwoEdgesFace=false, bool ANoTwoFacesVolume=false)
bool turnAroundVertex (CDart *ADart, bool ANoCrossedVolume, int AMarkNumber, CDart *&ANext, bool &ACrossed)
int getMergeDimension (CDart *ADart)
bool canMerge (CDart *ADart1, CDart *ADart2, int ADim)
void merge (CDart *ADart1, CDart *ADart2, int ADim, bool ADeleteDarts=false)
int isolateMarkedCells (int AMarkNumber, int ADim, bool ADeleteDarts=false)
int intuitiveIsolateMarkedCells (int AMarkNumber, bool ADeleteDarts=false)
int mergeMarkedCells (int AMarkNumber, int ADim, bool ADeleteDarts=false)
int intuitiveMergeMarkedCells (int AMarkNumber, bool ADeleteDarts=false)
bool canRemove (CDart *ADart, int ADim)
void remove (CDart *ADart, int ADim, bool ADeleteDarts=false)
int removeMarkedCells (int AMarkNumber, int ADim, bool ADeleteDarts=false)
int removeMarkedVerticesWithFictiveEdgeShifting (int AMarkNumber)
int removeMarkedEdgesWithoutDisconnectionForSurface (int AMarkNumber)
int removeMarkedEdgesWithoutDisconnection (int AMarkNumber)
int removeMarkedFacesButKeepBalls (int AMarkNumber)
bool canContract (CDart *ADart, int ADim)
void contract (CDart *ADart, int ADim, bool ADeleteDarts=false)
int contractMarkedCells (int AMarkNumber, int ADim, bool ADeleteDarts=false)
virtual int contractAndRemoveMarkedCells (int AMarkNumberC1, int AMarkNumberC2, int AMarkNumberC3, int AMarkNumberS0, int AMarkNumberS1, int AMarkNumberS2, bool ADeleteDarts=false)
int deleteFlatFaces ()
int deleteMarkedFlatFaces (int AMarkNumber)
int deleteFlatVolumes ()
int deleteMarkedFlatVolumes (int AMarkNumber)
int removeDanglingEdges ()
int removeMarkedDanglingEdges (int AMarkNumber)
int isolateMarkedCells (int AMarkNumber, int ADim, bool ADeleteDarts, bool AVerif, int AMarkTreated=-1)
void markCellsToBeIsolated (int AMarkSource, int ADim, int AMarkDestination, int AMarkTreated=-1)
bool canExtrudeHalfCell (CDart *ADart, int ADim, int AMarkToExtrude=-1)
bool canExtrudeCell (CDart *ADart, int ADim)
int getExtrusionDimension (CDart *ADart)
CDarttopoExtrude (CDart *ADart, int ADim, bool AExtrusionWithAdjacentSews, int AMarkExtruded=-1, int ADirectInfoIndex=-1)
virtual CDartextrudeByNormal (CDart *ADart, int ADim, bool AExtrusionWithAdjacentSews, TCoordinate AExtrusionCoef, int AMarkToExtrude=-1, int AMarkExtruded=-1)
int extrudeByNormalMarkedCells (int AMarkNumber, int ADim, bool AExtrusionWithAdjacentSews, TCoordinate AExtrusionCoef)
int intuitiveExtrudeByNormalMarkedCells (int AMarkNumber, bool AExtrusionWithAdjacentSews, TCoordinate AExtrusionCoef)
bool canExtrudeByPath (CDart *ADart, int ADim, CDart *APath)
virtual CDartextrudeByPath (CDart *ADart, int ADim, CDart *APath, bool AExtrusionWithAdjacentSews, int AMarkExtruded=-1, int ADirectInfoIndex=-1)
virtual int extrudeByPathMarkedCells (int AMarkNumber, int ADim, CDart *APath, bool AExtrusionWithAdjacentSews)
bool canExtrudeByRevolution (CDart *ADart, int ADim, bool AClosed)
virtual CDartcreateRevolutionPath (bool AClosed, int ANbEdges)
void destroyRevolutionPath (CDart *ADart)
virtual CDartextrudeByRevolution (CDart *ADart, int ADim, bool AClosed, int ANbEdges, bool AExtrusionWithAdjacentSews, int AMarkExtruded=-1, int ADirectInfoIndex=-1)
virtual int extrudeByRevolutionMarkedCells (int AMarkNumber, int ADim, bool AClosed, int ANbEdges, bool AExtrusionWithAdjacentSews)
virtual int thickenMarkedDarts (int AMarkNumber, int ADirectInfoIndex1, int ADirectInfoIndex2)
virtual void markCellsToBeExtrudedByNormal (int ADim, int AMarkNumberSrce, int AMarkNumberDest)
int extrudeByNormalMarkedCells (int AMarkNumber, int ADim, int AMarkTreated, bool AExtrusionWithAdjacentSews, TCoordinate AExtrusionCoef)


Detailed Description

Définit la classe CGMapGeneric qui représente une 3-G-carte. Les opérations implémentées dans cette classe sont toutes topologiques. Celles qui modifient la carte ne mettent pas à jour les plongements (exemple: triangulation, qui ne duplique pas les plongements 'face' lors de la triangulation d'une face). La mise à jour des plongements doit donc être faite dans les méthodes des classes qui dérivent de CGMapGeneric.

Author:
MOKA TEAM

Definition at line 46 of file g-map-generic.hh.


Member Enumeration Documentation

Les différents mouvements que supporte la méthode 'go'.

Enumerator:
Forward 
Backward 
Left 
Right 

Definition at line 616 of file g-map-generic.hh.


Constructor & Destructor Documentation

CGMapGeneric::CGMapGeneric (  ) 

Constructeur par défaut Construction d'une nouvelle instance de la classe. La g-carte créée est vide.

Returns:
Une nouvelle instance de la classe

Definition at line 28 of file gmg-instance.cc.

CGMapGeneric::~CGMapGeneric (  )  [virtual]

Destructeur Tous les brins de la carte ainsi que leurs plongements sont détruits.

Definition at line 33 of file gmg-instance.cc.


Member Function Documentation

void CGMapGeneric::allocMemoryToDirectInfo ( CDart ADart,
TOrbit  AOrbit,
int  ADirectInfoIndex,
int  ABytes,
TOrbit  AOrbitUsed = ORBIT_NONE 
)

Alloue ABytes octets au champ directInfo[ADirectInfoIndex] des brins correspondant à l'orbite donnée par le couple (ADart, AOrbit).

Si AOrbitUsed est différent de ORBIT_NONE, l'allocation n'est faite que pour le brin porteur du plongement AOrbitUsed de chaque cellule d'orbite AOrbitUsed dont un brin au moins est sur l'orbite (ADart, AOrbit).

Parameters:
ADart Un brin quelconque de la carte
AOrbit Une orbite
ADirectInfoIndex L'indice du champ directInfo à utiliser
ABytes Le nombre d'octets à allouer
AOrbitUsed Une orbite quelconque

Definition at line 67 of file gmg-direct-info.cc.

void CGMapGeneric::allocMemoryToDirectInfo ( int  AMarkNumber,
int  ADirectInfoIndex,
int  ABytes,
TOrbit  AOrbitUsed = ORBIT_NONE 
)

Alloue ABytes octets au champ directInfo[ADirectInfoIndex] des brins marqués avec la marque AMarkNumber.

Si AOrbitUsed est différent de ORBIT_NONE, l'allocation n'est faite que pour le brin porteur du plongement AOrbitUsed de chaque cellule d'orbite AOrbitUsed dont un brin au moins est marqué.

Parameters:
AMarkNumber Un numéro de marque
ADirectInfoIndex L'indice du champ directInfo à utiliser
ABytes Le nombre d'octets à allouer
AOrbitUsed Une orbite quelconque

Definition at line 29 of file gmg-direct-info.cc.

INLINE CDart * GMap3d::CGMapGeneric::alpha01 ( CDart ADart  )  const

Ces méthodes permettent de composer les involutions pour accéder facilement aux brins de la carte. Les indices sont donnés selon l'ordre dans lequel ils sont appliqués. Exemple: alpha123(d) signifie alpha3(alpha2(alpha1(d))).

Parameters:
ADart Un pointeur sur un brin quelconque
Returns:
Un pointeur sur un brin

Definition at line 35 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha010 ( CDart ADart  )  const

Definition at line 41 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha0101 ( CDart ADart  )  const

Definition at line 47 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha01010 ( CDart ADart  )  const

Definition at line 59 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha0101210 ( CDart ADart  )  const

Definition at line 53 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha01021 ( CDart ADart  )  const

Definition at line 65 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha0102101 ( CDart ADart  )  const

Definition at line 71 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha010212 ( CDart ADart  )  const

Definition at line 77 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha012 ( CDart ADart  )  const

Definition at line 83 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha0121 ( CDart ADart  )  const

Definition at line 95 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha0123 ( CDart ADart  )  const

Definition at line 89 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha012321 ( CDart ADart  )  const

Definition at line 101 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha02 ( CDart ADart  )  const

Definition at line 107 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha020 ( CDart ADart  )  const

Definition at line 113 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha021 ( CDart ADart  )  const

Definition at line 119 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha0210 ( CDart ADart  )  const

Definition at line 125 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha02101 ( CDart ADart  )  const

Definition at line 131 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha02121 ( CDart ADart  )  const

Definition at line 137 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha023 ( CDart ADart  )  const

Definition at line 143 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha03 ( CDart ADart  )  const

Definition at line 149 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha030 ( CDart ADart  )  const

Definition at line 155 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha10 ( CDart ADart  )  const

Definition at line 161 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha101 ( CDart ADart  )  const

Definition at line 167 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha1010 ( CDart ADart  )  const

Definition at line 173 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha10101 ( CDart ADart  )  const

Definition at line 179 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha1010101 ( CDart ADart  )  const

Definition at line 185 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha1012 ( CDart ADart  )  const

Definition at line 191 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha101201 ( CDart ADart  )  const

Definition at line 209 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha10121 ( CDart ADart  )  const

Definition at line 203 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha1012101 ( CDart ADart  )  const

Definition at line 197 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha101232 ( CDart ADart  )  const

Definition at line 215 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha102 ( CDart ADart  )  const

Definition at line 221 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha1021 ( CDart ADart  )  const

Definition at line 227 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha12 ( CDart ADart  )  const

Definition at line 233 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha121 ( CDart ADart  )  const

Definition at line 239 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha1210 ( CDart ADart  )  const

Definition at line 245 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha12101 ( CDart ADart  )  const

Definition at line 251 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha1212 ( CDart ADart  )  const

Definition at line 257 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha123 ( CDart ADart  )  const

Definition at line 263 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha1232 ( CDart ADart  )  const

Definition at line 269 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha12321 ( CDart ADart  )  const

Definition at line 275 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha123210 ( CDart ADart  )  const

Definition at line 281 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha13 ( CDart ADart  )  const

Definition at line 287 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha20 ( CDart ADart  )  const

Definition at line 293 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha201 ( CDart ADart  )  const

Definition at line 299 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha21 ( CDart ADart  )  const

Definition at line 305 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha210 ( CDart ADart  )  const

Definition at line 311 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha2101 ( CDart ADart  )  const

Definition at line 317 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha21012 ( CDart ADart  )  const

Definition at line 323 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha210123 ( CDart ADart  )  const

Definition at line 329 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha212 ( CDart ADart  )  const

Definition at line 335 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha2121 ( CDart ADart  )  const

Definition at line 341 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha23 ( CDart ADart  )  const

Definition at line 347 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha231 ( CDart ADart  )  const

Definition at line 353 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha2310 ( CDart ADart  )  const

Definition at line 359 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha232 ( CDart ADart  )  const

Definition at line 365 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha2321 ( CDart ADart  )  const

Definition at line 371 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha232101 ( CDart ADart  )  const

Definition at line 377 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha30 ( CDart ADart  )  const

Definition at line 383 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha3012 ( CDart ADart  )  const

Definition at line 389 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha30120 ( CDart ADart  )  const

Definition at line 395 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha302 ( CDart ADart  )  const

Definition at line 401 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha31 ( CDart ADart  )  const

Definition at line 407 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha32 ( CDart ADart  )  const

Definition at line 413 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha3201 ( CDart ADart  )  const

Definition at line 419 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha321 ( CDart ADart  )  const

Definition at line 425 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha321012 ( CDart ADart  )  const

Definition at line 437 of file gmg-inline.icc.

INLINE CDart * GMap3d::CGMapGeneric::alpha323 ( CDart ADart  )  const

Definition at line 431 of file gmg-inline.icc.

bool CGMapGeneric::belongToSameOrientedOrbit ( CDart ADart1,
CDart ADart2,
TOrbit  AOrbit 
)

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
AOrbit Une orbite quelconque
Returns:
true si ADart1 et ADart2 appartiennent à la même orbite orientée.

Definition at line 32 of file gmg-topology.cc.

void CGMapGeneric::border2Sew ( CDart ADart1,
CDart ADart2,
int  An = 0 
)

Coud les deux 2-bords désignés par les brins ADart1 et ADart2. Si An est strictement positif, sa valeur indique le nombre d'ARÊTES à coudre.

Parameters:
ADart1 Un pointeur sur un premier brin
ADart2 Un pointeur sur un deuxième brin
An Le nombre d'arêtes à coudre
canSewBorders(ADart1, ADart2, 2, 2*An)

Definition at line 193 of file gmg-border.cc.

void CGMapGeneric::border2TopoSew ( CDart ADart1,
CDart ADart2,
int  An = 0 
)

Coud les deux 2-bords désignés par les brins ADart1 et ADart2. Si An est strictement positif, sa valeur indique le nombre d'ARÊTES à coudre.

Parameters:
ADart1 Un pointeur sur un premier brin
ADart2 Un pointeur sur un deuxième brin
An Le nombre d'arêtes à coudre
canSewBorders(ADart1, ADart2, 2, 2*An)

Definition at line 188 of file gmg-border.cc.

void CGMapGeneric::borderSew ( CDart ADart1,
CDart ADart2,
int  ADim,
int  An = 0 
)

Coud les deux bords de dimension ADim désignés par les brins ADart1 et ADart2. Si An est strictement positif, sa valeur indique le nombre de coutures à effectuer (nombre d'itérations à effectuer sur l'itérateur de bord).

Parameters:
ADart1 Un pointeur sur un premier brin
ADart2 Un pointeur sur un deuxième brin
ADim Une dimension
An Le nombre d'itérations à effectuer
canSewBorders(ADart1, ADart2, ADim, An)

Definition at line 160 of file gmg-border.cc.

void CGMapGeneric::borderTopoSew ( CDart ADart1,
CDart ADart2,
int  ADim,
int  An = 0 
)

Coud les deux bords de dimension ADim désignés par les brins ADart1 et ADart2. Si An est strictement positif, sa valeur indique le nombre de coutures à effectuer (nombre d'itérations à effectuer sur l'itérateur de bord).

Parameters:
ADart1 Un pointeur sur un premier brin
ADart2 Un pointeur sur un deuxième brin
ADim Une dimension
An Le nombre d'itérations à effectuer
canSewBorders(ADart1, ADart2, ADim, An)

Definition at line 144 of file gmg-border.cc.

bool CGMapGeneric::canContract ( CDart ADart,
int  ADim 
)

Parameters:
ADart Un pointeur sur un brin
ADim Une dimension
Returns:
Un booléen indiquant si la cellule peut être contractée.

Definition at line 40 of file gmg-contraction.cc.

bool CGMapGeneric::canExtrudeByPath ( CDart ADart,
int  ADim,
CDart APath 
)

Teste si l'extrusion de la cellule de dimension ADim incidente à ADart selon le chemin donné par APath est possible.

Parameters:
ADart Un brin de la carte incident à la cellule à extruder
ADim Une dimension (1 ou 2)
APath Un brin de la carte incident au chemin d'extrusion
Returns:
Un booléen indiquant si l'extrusion est possible

Definition at line 424 of file gmg-extrusion.cc.

bool CGMapGeneric::canExtrudeByRevolution ( CDart ADart,
int  ADim,
bool  AClosed 
)

Teste si l'extrusion de la cellule de dimension ADim incidente à ADart autour d'un axe est possible.

Parameters:
ADart Un brin de la carte incident à la cellule à extruder
ADim Une dimension (1 ou 2)
AClosed Un booléen indiquant si la révolution est complète (angle de 360°)
Returns:
Un booléen indiquant si l'extrusion est possible

Definition at line 549 of file gmg-extrusion.cc.

bool CGMapGeneric::canExtrudeCell ( CDart ADart,
int  ADim 
)

Teste si la cellule de dimension ADim incidente à ADart (ORBIT_CELL[ADim]) peut être extrudée. C'est le cas si tous les brins qui la constituent sont ADim+1-libres ou si tous les brins qui la constituent sont ADim-libres.

Si l'extrusion est possible et si au moins un brin de la cellule est ADim-cousu, cela signifie que la cellule va être dupliquée avant l'extrusion. Par exemple pour extruder une face d'un volume, les brins de la face étant 2-cousus il faut créer de nouveaux brins et les 3-coudre à la face avant d'appliquer l'extrusion sur la demi-face nouvellement créée.

Parameters:
ADart Un brin de la carte
ADim Une dimension (0, 1 ou 2)
Returns:
Un booléen indiquant si l'extrusion est possible

Definition at line 63 of file gmg-extrusion.cc.

bool CGMapGeneric::canExtrudeHalfCell ( CDart ADart,
int  ADim,
int  AMarkToExtrude = -1 
)

Teste si la demi-cellule de dimension ADim incidente à ADart (ORBIT_INF[ADim]) peut être extrudée. C'est le cas si tous les brins qui la constituent sont ADim-libres.

Si AMarkToExtrude est positif ou nul, il indique les cellules qui doivent être extrudées en parallèle. Ce paramètre est utilisé par la méthode 'canExtrudeByPath'.

Parameters:
ADart Un brin de la carte
ADim Une dimension (0, 1 ou 2)
AMarkToExtrude Un numéro de marque
Returns:
Un booléen indiquant si l'extrusion est possible

Definition at line 28 of file gmg-extrusion.cc.

bool CGMapGeneric::canInsertFace ( CDart ADart,
int  AMarkNumber,
bool  ANoCrossedVolume = false,
bool  ANoTwoEdgesFace = false,
bool  ANoTwoFacesVolume = false 
)

Teste s'il est possible d'insérer une face topologique dans un volume. Si ANoCrossedVolume est vrai, au moins un brin de chaque demi-arête du volume (orbite 0) correspondant à la face à créer doit être sélectionné. Si ANoCrossedVolume est faux, au moins un brin de chaque arête du volume (orbite 02) correspondant à la face à créer doit être sélectionné.

Parameters:
ADart Un brin marqué du volume dans lequel insérer la face
AMarkNumber Un numéro de marque
ANoCrossedVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer un volume 'croisé', c'est-à-dire un volume en forme de 8, avec deux faces 3-cousues qui se croisent
ANoTwoEdgesFace Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de face fermée composée de seulement deux arêtes
ANoTwoFacesVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de volume fermé composé de seulement deux faces
Returns:
Un booléen

Definition at line 280 of file gmg-insertion.cc.

bool CGMapGeneric::canMerge ( CDart ADart1,
CDart ADart2,
int  ADim 
)

Teste si les deux cellules de dimension ADim désignées par les brins ADart1 et ADart2 peuvent être fusionnées.

Parameters:
ADart1 Un pointeur sur un premier brin
ADart2 Un pointeur sur un deuxième brin
ADim Une dimension
Returns:
Un booléen indiquant si les deux cellules peuvent être fusionnées.

Definition at line 47 of file gmg-merge.cc.

bool CGMapGeneric::canQuadrangulateFace ( CDart ADart,
bool  AInsertVertices = true 
)

Teste s'il est possible de quadranguler la face incidente à ADart. C'est toujours le cas si AInsertVertices vaut 'vrai'. Si AInsertVertices vaut 'faux', il faut que le nombre d'arêtes de la face soit pair.

Parameters:
ADart Un brin de la carte
AInsertVertices Un booléen indiquant s'il faut insérer des sommets sur les arêtes de la face avant d'effectuer la quadrangulation
Returns:
Un booléen indiquant s'il est possible de quadranguler la face

Definition at line 28 of file gmg-quadrangulation.cc.

bool CGMapGeneric::canRemove ( CDart ADart,
int  ADim 
)

Parameters:
ADart Un pointeur sur un brin
ADim Une dimension
Returns:
Un booléen indiquant si la cellule peut être supprimée.

Definition at line 41 of file gmg-removal.cc.

bool CGMapGeneric::canSewBorders ( CDart ADart1,
CDart ADart2,
int  ADim,
int  An = 0 
)

Teste si les deux bords de dimension ADim désignés par les brins ADart1 et ADart2 peuvent être cousus. Si An est strictement positif, on teste si la couture est possible sur les An premiers brins parcourus sur chaque bord seulement.

Parameters:
ADart1 Un pointeur sur un premier brin
ADart2 Un pointeur sur un deuxième brin
ADim Une dimension
An Le nombre d'itérations à effectuer
Returns:
Un booléen indiquant si les deux bords peuvent être cousus.

Definition at line 122 of file gmg-border.cc.

bool CGMapGeneric::canShiftAllFictiveFaces ( CDart ADart,
int  AFictiveFaceMark 
)

Retourne vrai ssi les faces fictives incidente à l'arête désignée par ADart peuvent être décallées sans entraîner la création de non-variétés AFictiveFaceMark la marque pour les faces fictives,

Definition at line 218 of file gmg-fictive-face.cc.

bool CGMapGeneric::canShiftOneFictiveFace ( CDart ADart,
int  AFictiveFaceMark 
)

Retourne vrai ssi la face fictive incidente au brin ADart peut être décallée sans entraîner la création de non-variété AFictiveFaceMark la marque pour les faces fictives,

Definition at line 158 of file gmg-fictive-face.cc.

bool CGMapGeneric::checkEmbeddings ( TOrbit  AOrbit,
int  AAttributeIdentity,
bool  AEmbeddingMustExist = true 
)

Vérifie si pour chaque cellule d'orbite AOrbit de la carte il existe un seul brin de la cellule qui possède le plongement identifié par AAttributeIdentity. Si AEmbeddingMustExist vaut 'vrai', une cellule non plongée est considérée comme un problème d'intégrité de la carte.

Parameters:
AOrbit l'orbite plongée à tester
AAttributeIdentity L'identificateur de l'attribut à vérifier
AEmbeddingMustExist Un booléen indiquant si la détection d'une orbite non plongée doit provoquer une erreur
Returns:
Un booléen indiquant si les plongements sont cohérents
isOrbitUsed(AOrbit);

Definition at line 588 of file gmg-topology.cc.

bool CGMapGeneric::checkTopology (  ) 

Vérifie l'intégrité de la carte. La carte est cohérente si les orbites 0, 1, 2 et 3 sont des permutations et si les orbites 02, 03 et 13 sont des involutions.

Returns:
Un booléen indiquant si la topologie de la carte est cohérente

Definition at line 526 of file gmg-topology.cc.

CDart * CGMapGeneric::closePolyline ( CDart ADart  ) 

Ferme une polyligne pour former une face.

Parameters:
ADart Un brin quelconque d'une polyligne existante
Returns:
Un brin de l'arête créée pour fermer la polyligne
isIsolatedPolyline(CDart)

Definition at line 161 of file gmg-polyline.cc.

void CGMapGeneric::contract ( CDart ADart,
int  ADim,
bool  ADeleteDarts = false 
)

Contracte la cellule de dimension ADim désignées par le brin ADart.

Parameters:
ADart Un pointeur sur brin
ADim Une dimension
ADeleteDarts Un booléen indiquant s'il faut supprimer les brins correspondant à la cellule contractée.
canContract(ADart, ADim)

Definition at line 48 of file gmg-contraction.cc.

int CGMapGeneric::contractAndRemoveMarkedCells ( int  AMarkNumberC1,
int  AMarkNumberC2,
int  AMarkNumberC3,
int  AMarkNumberS0,
int  AMarkNumberS1,
int  AMarkNumberS2,
bool  ADeleteDarts = false 
) [virtual]

Contracte et Supprime simultanément, lorsque cela est possible, les cellules dont un brin au moins est marqué. Si un brin est marqué pour deux i-opérations, on démarque les orbites concernées auquelles il appartient

Parameters:
AMarkNumberC1 Un numéro de marque indiquant une 1-contraction (et vaut -1 s'il n'y a pas de 1-contractions)
AMarkNumberC2 Un numéro de marque indiquant une 2-contraction (idem)
AMarkNumberC3 Un numéro de marque indiquant une 3-contraction (idem)
AMarkNumberS0 Un numéro de marque indiquant une 0-suppression (idem)
AMarkNumberS1 Un numéro de marque indiquant une 1-suppression (idem)
AMarkNumberS2 Un numéro de marque indiquant une 2-suppression (idem)
ADeleteDarts Un booléen indiquant si la contraction doit se faire en supprimant des brins
Returns:
Le nombre de contractions et suppressions effectuées

Definition at line 45 of file gmg-contract-and-remove.cc.

int CGMapGeneric::contractMarkedCells ( int  AMarkNumber,
int  ADim,
bool  ADeleteDarts = false 
)

Contracte lorsque cela est possible les cellules dont un brin au moins est marqué.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (1, 2 ou 3)
ADeleteDarts Un booléen indiquant si la contraction doit se faire en supprimant des brins
Returns:
Le nombre de contractions effectuées

Definition at line 92 of file gmg-contraction.cc.

void CGMapGeneric::countBorders ( CDart ADart,
TOrbit  AOrbit,
int *  ANb0,
int *  ANb1,
int *  ANb2,
int *  ANb3 
)

Compte le nombre de bords incidents à l'orbite (ADart, AOrbit). Pour ne compter que certains bords, mettre à NULL les paramètres ANb- correspondant à une dimension non voulue.

Parameters:
ADart Un brin de la carte
AOrbit Une orbite quelconque
ANbi Le nombre de i-bords

Definition at line 131 of file gmg-topology.cc.

void CGMapGeneric::countBorders ( int  AMarkNumber,
int *  ANb0,
int *  ANb1,
int *  ANb2,
int *  ANb3 
)

Compte le nombre de bords incidents aux brins marqués avec la marque AMarkNumber. Pour ne compter que certains bords, mettre à NULL les paramêtres ANbi correspondant à une dimension non voulue.

Parameters:
AMarkNumber Un numéro de marque
ANbi Le nombre de i-bords
ANb0Coupled Le nombre de faces ayant deux 0-bords

Definition at line 89 of file gmg-topology.cc.

void CGMapGeneric::countCells ( CDart ADart,
TOrbit  AOrbit,
int *  ANb0,
int *  ANb1,
int *  ANb2,
int *  ANb3,
int *  ANb4,
int *  ANbDarts = NULL 
)

Compte le nombre de cellules incidentes ou incluses dans l'orbite (ADart, AOrbit). Pour ne compter que certains types de cellules, mettre à NULL les paramètres ANb- correspondant à une dimension non voulue.

Parameters:
ADart Un brin de la carte
AOrbit Une orbite quelconque
ANbi Les nombres de i-cellules

Definition at line 223 of file gmg-topology.cc.

void CGMapGeneric::countCells ( int  AMarkNumber,
int *  ANb0,
int *  ANb1,
int *  ANb2,
int *  ANb3,
int *  ANb4,
int *  ANbDarts = NULL 
)

Compte le nombre de cellules incidentes à un brin marqué avec la marque AMarkNumber. Pour ne compter que certains types de cellules, mettre à NULL les paramètres ANb- correspondant à une dimension non voulue.

Parameters:
AMarkNumber Un numéro de marque
ANbi Les nombres de i-cellules

Definition at line 177 of file gmg-topology.cc.

CDart * CGMapGeneric::createRevolutionPath ( bool  AClosed,
int  ANbEdges 
) [virtual]

Crée un chemin d'extrusion composé de ANbEdges arêtes, ouvert ou fermé selon la valeur de AClosed. Ce chemin est utilisé pour simuler l'extrusion par révolution autour d'un axe.

Parameters:
AClosed Un booléen indiquant si la révolution est complète (angle de 360°)
ANbEdges Le nombre d'arêtes du chemin
Returns:
Un brin extrémité du chemin

Definition at line 562 of file gmg-extrusion.cc.

void CGMapGeneric::createTopoCubeIMeshed ( int  ASx,
int  ASy,
int  ASz,
int  AMeshDimension,
bool  ACreatedFaces[3][2],
CDart AFacesCorners[3][2][2][2] 
)

Crée un cube, éventuellement maillé. Le paramètre AFacesCorners permet de récupérer des brins stratégiques du cube, comme indiqué sur la figure.

ACreatedFaces[0][0] correspond à la face X0. ACreatedFaces[0][1] correspond à la face X1. ACreatedFaces[1][0] correspond à la face Y0. ACreatedFaces[1][1] correspond à la face Y1. ACreatedFaces[2][0] correspond à la face Z0. ACreatedFaces[2][1] correspond à la face Z1.

AFacesCorners[0][0] correspond aux coins de la face X0. AFacesCorners[0][1] correspond aux coins de la face X1. AFacesCorners[1][0] correspond aux coins de la face Y0. AFacesCorners[1][1] correspond aux coins de la face Y1. AFacesCorners[2][0] correspond aux coins de la face Z0. AFacesCorners[2][1] correspond aux coins de la face Z1.

Les éléments des tableaux AFacesCorners[dim][i] sont des pointeurs qui sont positionnés sur certains brins du cube. Ces brins sont numérotés sur le schéma.

Les six booléens donnés par ACreatedFaces indiquent quelles faces du cube doivent être créées.

+---- ----+ +01-- --11+ + 10 11 / / + 11| | | / / 11| / | ARRIÈRE HAUT / | | (Y1) | / (Z1) / / | 00 01 / / / | 01 | +---- ----+ +00-- --10+ 01 | + G. + + D. + |(X0)10 +01-- --11+ +---- ----+ |(X1)10 | / / / 10 11 | / / / | | | / BAS AVANT | / |00 / (Z0) / | (Y0) | |00 + / / 00 01 + +00-- --10+ +---- ----+

AMeshDimension indique dans quelle dimension le cube créé doit être maillé. Pour créer un cube 3-maillé, utilisez la méthode createTopoMesh3.

Si AMeshDimension==0, les valeurs de ASx, ASy et ASz ne sont pas prises en compte.

Parameters:
ASx Le nombre de subdivisions selon la première dimension
ASy Le nombre de subdivisions selon la deuxième dimension
ASz Le nombre de subdivisions selon la troisième dimension
AMeshDimension La dimension du maillage (0, 1 ou 2)
ACreatedFaces Un tableau de dimension 3*2 de booléens
AFacesCorners Un tableau de dimension 3*2*2*2 de pointeurs sur brin

Definition at line 326 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoCylinder ( int  AMeridians,
int  AParallels,
bool  AClose1 = true,
bool  AClose2 = true 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoCylinder' ci-dessus et retourne le brin correspondant à ABorder1.

Parameters:
AMeridians Le nombre (non nul) de méridiens du cylindre
AParallels Le nombre (non nul) de parallèles du cylindre
ABorder1 L'adresse d'un pointeur sur brin
ABorder2 L'adresse d'un pointeur sur brin
AClose1 Un booléen indiquant s'il faut fermer le bord incident à ABorder1 (voir méthode 'createTopoCylinder' ci-dessus)
AClose2 Un booléen indiquant s'il faut fermer le bord incident à ABorder2 (voir méthode 'createTopoCylinder' ci-dessus)
Returns:
Un brin du cylindre

Definition at line 208 of file gmg-primitive.cc.

void CGMapGeneric::createTopoCylinder ( int  AMeridians,
int  AParallels,
CDart **  ABorder1,
CDart **  ABorder2,
bool  AClose1 = true,
bool  AClose2 = true 
)

Crée un tube de dimension AMeridians*AParallels en s'appuyant sur la méthode 'createTopoTube', et 2-coud une face de AMeridians sommets à chaque bout du tube de manière à obtenir un cylindre (selon les valeurs de AClose1 et AClose2, les bords sont fermés ou non).

Remarque : Les paramètres ABorder- passés peuvent être égaux au pointeur NULL.

Parameters:
AMeridians Le nombre (non nul) de méridiens du cylindre
AParallels Le nombre (non nul) de parallèles du cylindre
ABorder1 L'adresse d'un pointeur sur brin
ABorder2 L'adresse d'un pointeur sur brin
AClose1 Un booléen indiquant s'il faut fermer le bord incident à ABorder1
AClose2 Un booléen indiquant s'il faut fermer le bord incident à ABorder2

Definition at line 186 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoMesh1 ( int  ASx,
CDart AModel = NULL 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoMesh1' ci-dessus et retourne le brin correspondant à AMesh1Corners[0].

Parameters:
ASx Le nombre d'arêtes de la polyligne
AModel Un brin de la carte
Returns:
Un brin 1-libre de la polyligne

Definition at line 164 of file gmg-primitive-mesh.cc.

void CGMapGeneric::createTopoMesh1 ( int  ASx,
CDart AMesh1Corners[2],
CDart AModel = NULL 
)

Crée un maillage 1d composé de ASx arêtes. Si ASx est nul, un seul sommet est créé.

AMesh1Corners[0] est positionné sur le brin 1-libre situé à la première extrémité de la polyligne créée. AMesh1Corners[1] est positionné sur le brin 1-libre situé à la deuxième extrémité de la polyligne créée.

Si AModel est NULL, le maillage créé est une polyligne, sinon c'est un faisceau calqué sur l'orbite 23 de AModel.

Parameters:
ASx Le nombre d'arêtes de la polyligne
AMesh1Corners Un tableau de 2 pointeurs sur brin
AModel Un brin de la carte

Definition at line 28 of file gmg-primitive-mesh.cc.

CDart * CGMapGeneric::createTopoMesh2 ( int  ASx,
int  ASy,
bool  A3Sewed = false 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoMesh2' ci-dessus et retourne le brin correspondant à AFaceCorners[0][0].

Parameters:
ASx Le nombre (non nul) de subdivisions de la grille selon la première dimension
ASy Le nombre (non nul) de subdivisions de la grille selon la deuxième dimension
A3Sewed Un booléen indiquant si le maillage est doublé
Returns:
Un brin de la grille

Definition at line 276 of file gmg-primitive-mesh.cc.

void CGMapGeneric::createTopoMesh2 ( int  ASx,
int  ASy,
CDart AMesh2Corners[2][2],
bool  A3Sewed = false 
)

Crée une grille de dimension ASx*ASy. Les éléments de AFaceCorner sont positionnés sur des brins stratégiques de la grille, comme indiqué sur le schéma.

ASx=3, ASy=2

AMesh2Corners[0][1] AMesh2Corners[1][1] +== --+-- --+-- ==+ | | | | | | | | +-- --+-- --+-- --+ | | | | | | | | +== --+-- --+-- ==+ AMesh2Corners[0][0] AMesh2Corners[1][0]

Si A3Sewed est vrai, le maillage est doublé, c'est-à-dire que 2 grilles identiques sont créées et chaque brin qui constitue la première est 3-cousu à son homologue sur la deuxième.

Parameters:
ASx Le nombre (non nul) de subdivisions de la grille selon la première dimension
ASy Le nombre (non nul) de subdivisions de la grille selon la deuxième dimension
AMesh2Corners Un tableau de taille 2*2 de pointeurs sur brin correspondant aux coins du maillage 2d
A3Sewed Un booléen indiquant si le maillage est doublé

Definition at line 175 of file gmg-primitive-mesh.cc.

CDart * CGMapGeneric::createTopoMesh3 ( int  ASx,
int  ASy,
int  ASz 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoMesh3' ci-dessus et retourne le brin correspondant à AMesh3Corners[0][0][0].

Parameters:
ASx Le nombre (non nul) de subdivisions du maillage 3d selon la première dimension
ASy Le nombre (non nul) de subdivisions du maillage 3d selon la deuxième dimension
ASz Le nombre (non nul) de subdivisions du maillage 3d selon la troisième dimension
Returns:
Un brin du maillage 3d

Definition at line 446 of file gmg-primitive-mesh.cc.

void CGMapGeneric::createTopoMesh3 ( int  ASx,
int  ASy,
int  ASz,
CDart AMesh3Corners[2][2][2] 
)

Crée un maillage 3d de dimension ASx*ASy*ASz. Les éléments de AMesh3Corners sont positionnés sur des brins stratégiques du maillage, comme indiqué sur le schéma.

ASx=3, ASy=2, ASz=1

AMesh3Corners[0][1][1] AMesh3Corners[1][1][1] +== --+-- --+-- ==+ / / / /+ / / / //| +-- --+-- --+-- --+/ | / / / /+ + / / / //| /+ AMesh3Corners[1][1][0] AMesh3Corners[0][0][1] +== --+-- --+-- ==+/ AMesh3Corners[1][0][1] +-- --+-- --+-- --+ +/ | | | | /+ | | | |// +-- --+-- --+-- --+/ +== --+-- --+-- ==+ AMesh3Corners[0][0][0] AMesh3Corners[1][0][0]

Remarque: AMesh3Corners[0][1][0] n'est pas visible.

Parameters:
ASx Le nombre (non nul) de subdivisions du maillage 3d selon la première dimension
ASy Le nombre (non nul) de subdivisions du maillage 3d selon la deuxième dimension
ASz Le nombre (non nul) de subdivisions du maillage 3d selon la troisième dimension
AMesh3Corners Un tableau de taille 2*2*2 de pointeurs sur brin correspondant aux coins du maillage 3d

Definition at line 288 of file gmg-primitive-mesh.cc.

CDart * CGMapGeneric::createTopoOpenedPole ( int  An  ) 

Crée un pôle ouvert composé de An triangles 2-cousus entre eux et avec un sommet central. Le pôle est ouvert, c'est-à-dire que 2 des arêtes incidentes au sommet central ne sont pas 2-cousues.

Parameters:
An Le nombre de triangles qui composent le pôle
Returns:
Un brin 2-libre du sommet central du pôle

Definition at line 81 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoPole ( int  An  ) 

Crée un pôle composé de An triangles 2-cousus entre eux et avec un sommet central.

Parameters:
An Le nombre de triangles qui composent le pôle
Returns:
Un brin du sommet central du pôle

Definition at line 102 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoPolygon ( int  An  ) 

Crée un polygone à An côtés.

Parameters:
An Le nombre d'arêtes du polygone
Returns:
Un brin du polygone

Definition at line 57 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoPyramid ( int  AMeridians,
int  AParallels,
bool  ACloseBase = true 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoPyramid' ci-dessus et retourne le brin correspondant à ABaseDart.

Parameters:
AMeridians Le nombre (non nul) de méridiens de la pyramide
AParallels Le nombre (non nul) de parallèles de la pyramide
ACloseBase Un booléen indiquant si la base de la pyramide doit être fermée

Definition at line 248 of file gmg-primitive.cc.

void CGMapGeneric::createTopoPyramid ( int  AMeridians,
int  AParallels,
CDart **  ABaseDart,
CDart **  APoleDart,
bool  ACloseBase = true 
)

Crée une pyramide à AMeridians méridiens et AParallels parallèles.

ABaseDart, s'il n'est pas NULL est positionné sur un brin 2-libre de la base (ou 2-cousu à un brin de la base si cette base est créée). APoleDart, s'il n'est pas NULL est positionné sur un brin situé sur la pointe de la pyramide.

ABaseDart et APoleDart sont situés sur le même méridien.

Remarque : Les paramètres ABaseDart et APoleDart passés peuvent être égaux au pointeur NULL.

Parameters:
AMeridians Le nombre (non nul) de méridiens de la pyramide
AParallels Le nombre (non nul) de parallèles de la pyramide
ABaseDart L'adresse d'un pointeur sur brin
APoleDart L'adresse d'un pointeur sur brin
ACloseBase Un booléen indiquant si la base de la pyramide doit être fermée

Definition at line 221 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoSphere ( int  AMeridians,
int  AParallels 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoSphere' ci-dessus et retourne le brin correspondant à ASouthPole.

Parameters:
AMeridians Le nombre (non nul) de méridiens de la sphère
AParallels Le nombre (non nul) de parallèles de la sphère
Returns:
Un brin de la sphère

Definition at line 174 of file gmg-primitive.cc.

void CGMapGeneric::createTopoSphere ( int  AMeridians,
int  AParallels,
CDart **  ASouthPole,
CDart **  ANorthPole 
)

Crée un tube de dimension AMeridians*AParallels en s'appuyant sur la méthode 'createTopoTube', et 2-coud un pôle de chaque côté de ce tube afin de fermer ses bords.

Si ASouthPole n'est pas NULL, il est positionné sur un brin du sommet situé au pôle sud de la sphère créée. Si ASouthPole n'est pas NULL, il est positionné sur un brin du sommet situé au pôle nord de la sphère créée.

Remarque : Les adresses des pointeurs sur brins passés en paramètre peuvent être égales à NULL.

Parameters:
AMeridians Le nombre (non nul) de méridiens de la sphère
AParallels Le nombre (non nul) de parallèles de la sphère
ASouthPole L'adresse d'un pointeur sur brin
ANorthPole L'adresse d'un pointeur sur brin

Definition at line 149 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoSquare (  ) 

Crée un quadrilatère topologique (8 brins 0 et 1-cousus).

Returns:
Un brin du quadrilatère

Definition at line 42 of file gmg-primitive.cc.

void CGMapGeneric::createTopoSquareIMeshed ( int  ASx,
int  ASy,
int  AMeshDimension,
CDart ASquareCorners[2][2] 
)

Crée un carré, éventuellement maillé. Le paramètre ASquareCorners permet de récupérer des brins stratégiques du carré, comme indiqué sur la figure.

ASx=3, ASy=2

ASquareCorners[0][1] ASquareCorners[1][1] +== --+-- --+-- ==+ | | | | + + | | | | +== --+-- --+-- ==+ ASquareCorners[0][0] ASquareCorners[1][0]

Si AMeshDimension==0, les valeurs de ASx et ASy ne sont pas prises en compte.

Parameters:
ASx Le nombre de subdivisions selon la première dimension
ASy Le nombre de subdivisions selon la deuxième dimension
AMeshDimension La dimension du maillage (0 ou 2)
ASquareCorners Un tableau de dimension 2*2 de pointeurs sur brin

Definition at line 291 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoTorus ( int  AMeridians,
int  AParallels 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoTorus' ci-dessus et retourne le brin correspondant à AEquator.

Parameters:
AMeridians Le nombre (non nul) de méridiens du tore
AParallels Le nombre (non nul) de parallèles du tore
Returns:
Un brin du tore

Definition at line 279 of file gmg-primitive.cc.

void CGMapGeneric::createTopoTorus ( int  AMeridians,
int  AParallels,
CDart **  AEquator 
)

Crée un tube de dimension AMeridians*AParallels en s'appuyant sur la méthode 'createTopoTube', et 2-coud les deux 2-bords de ce tube de manière à obtenir un tore.

AEquator, s'il n'est pas NULL est positionné sur un brin situé sur l'équateur du tore.

Remarque : Le paramètre AEquator passé peut être égal au pointeur NULL.

Parameters:
AMeridians Le nombre (non nul) de méridiens du tore
AParallels Le nombre (non nul) de parallèles du tore
AEquator L'adresse d'un pointeur sur brin

Definition at line 261 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoTriangle (  ) 

Crée un triangle topologique (6 brins 0 et 1-cousus).

Returns:
Un brin du triangle

Definition at line 28 of file gmg-primitive.cc.

CDart * CGMapGeneric::createTopoTube ( int  AMeridians,
int  AParallels 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoTube' ci-dessus et retourne le brin correspondant à ABorder1.

Parameters:
AMeridians Le nombre (non nul) de méridiens du tube
AParallels Le nombre (non nul) de parallèles du tube
Returns:
Un brin du tube

Definition at line 137 of file gmg-primitive.cc.

void CGMapGeneric::createTopoTube ( int  AMeridians,
int  AParallels,
CDart **  ABorder1,
CDart **  ABorder2 
)

Crée une grille de dimension AMeridians*AParallels en s'appuyant sur la méthode 'createTopoMesh2', et 2-coud deux côtés de cette grille pour obtenir un tube. Les deux 2-bords du tube obtenu sont composés de AMeridians arêtes chacun.

ABorder1 s'il n'est pas NULL est positionné sur un brin 2-libre du premier bord du tube. ABorder2 s'il n'est pas NULL est positionné sur un brin 2-libre du second bord du tube. ABorder1 et ABorder2 sont situés en face l'un de l'autre.

Remarque : Les paramètres ABorder- passés peuvent être égaux au pointeur NULL.

Parameters:
AMeridians Le nombre (non nul) de méridiens du tube
AParallels Le nombre (non nul) de parallèles du tube
ABorder1 L'adresse d'un pointeur sur brin
ABorder2 L'adresse d'un pointeur sur brin

Definition at line 122 of file gmg-primitive.cc.

int CGMapGeneric::degree ( CDart ADart,
int  ACellDim,
int  ABoundingCellDim = 4 
)

Calcule le degré d'une cellule de dimension ACellDim, c'est-à-dire le nombre de cellules de dimension ACellDim+1 qui lui sont incidentes. Cette méthode est utile pour tester si une fusion est possible (méthode 'canMerge').

La valeur de ABoundingCellDim indique la dimension de la cellule englobante. Par exemple, si ACellDim==0 et ABoundingCellDim==3, la méthode calcule le nombre d'arêtes incidentes au sommet désigné par ADart dont un brin au moins appartient au volume incident à ADart.

Parameters:
ADart Un brin de la carte
ACellDim Une dimension
ABoundingCellDim La dimension de la cellule englobante
Returns:
La dimension de la cellule de dimension ACellDim incidente à ADart.
0 <= ACellDim < 3 ACellDim < ABoundingCell <= 4

Definition at line 28 of file gmg-degree.cc.

int CGMapGeneric::deleteFlatFaces (  ) 

Supprime toute les faces plates (cad composée seulement de 2 arêtes) de la carte.

Returns:
Le nombre de faces plates détruites.

Definition at line 30 of file gmg-simplification.cc.

int CGMapGeneric::deleteFlatVolumes (  ) 

Supprime tous les volumes plats (cad composée seulement de 2 faces) de la carte.

Returns:
Le nombre de volumes plats détruits.

Definition at line 45 of file gmg-simplification.cc.

int CGMapGeneric::deleteMarkedDarts ( int  AMarkNumber  ) 

Supprime les brins marqués et découd les brins qui restent lorsque cela est nécessaire pour respecter les contraintes sur les g-cartes.

Parameters:
AMarkNumber Un numéro de marque
Returns:
Le nombre de brins supprimés

Definition at line 54 of file gmg-deletion.cc.

int CGMapGeneric::deleteMarkedFlatFaces ( int  AMarkNumber  ) 

Supprime les faces plates dont un brin au moins est marqué.

Returns:
Le nombre de faces plates détruites.

Definition at line 40 of file gmg-simplification.cc.

int CGMapGeneric::deleteMarkedFlatVolumes ( int  AMarkNumber  ) 

Supprime les volumes plats dont un brin au moins est marqué.

Returns:
Le nombre de volumes plats détruits.

Definition at line 55 of file gmg-simplification.cc.

void CGMapGeneric::destroyRevolutionPath ( CDart ADart  ) 

Détruit un chemin de révolution créé avec la méthode 'createRevolutionPath'.

Parameters:
ADart Un brin du chemin de révolution
isIsolatedPolyline(ADart)

Definition at line 574 of file gmg-extrusion.cc.

CDart * CGMapGeneric::duplicateDarts ( CDart ADart,
TOrbit  AOrbit,
int  ADirectInfoIndex = -1,
bool  ADuplicateEmbeddings = true 
)

Duplique les brins correspondant à l'orbite donnée en dupliquant les plongements et préservant les coutures qui peuvent l'être.

Si ADirectInfoIndex est positif ou nul, chaque brin dupliqué est pointé par le brin à partir duquel il alpha été créé (par le biais du champ directInfo correspondant).

Parameters:
ADart Un brin de la carte
AOrbit Une orbite quelconque
ADirectInfoIndex Un indice de champ directInfo
ADuplicateEmbeddings Un booléen indiquant s'il faut ou non dupliquer les plongements des brins
Returns:
Le brin dupliqué correspondant à ADart

Definition at line 75 of file gmg-duplication.cc.

void CGMapGeneric::duplicateEmbeddingsOfDuplicatedDarts ( CCoverage ACoverage,
int  AMarkInitial,
int  AMarkDuplicated,
int  ADirectInfoIndex 
) [protected]

Duplique les plongements des brins dupliqués.

Parameters:
ACoverage Un itérateur quelconque
AMarkInitial Un numéro de marque
AMarkDuplicated Un numéro de marque
ADirectInfoIndex Un indice de champ directInfo

Definition at line 178 of file gmg-duplication.cc.

int CGMapGeneric::duplicateMarkedDarts ( int  AMarkNumber,
int  ADirectInfoIndex = -1,
bool  ADuplicateEmbeddings = true,
bool  A0Sew = true,
bool  A1Sew = true,
bool  A2Sew = true,
bool  A3Sew = true 
)

Duplique les brins marqués et respecte dans la mesure du possible les coutures. Si ADirectInfoIndex est positif ou nul, chaque brin dupliqué est pointé par le brin à partir duquel il alpha été créé (par le biais du champ directInfo correspondant).

Lorsqu'un champ A-Sew vaut 'faux', aucune couture de dimension A-Sew n'est effectuée entre les brins créés.

Parameters:
AMarkNumber Un numéro de marque
ADirectInfoIndex Un indice de champ directInfo
ADuplicateEmbeddings Un booléen indiquant s'il faut ou non dupliquer les plongements des brins
A-Sew Des booléens indiquant quelles coutures doivent être préservées
Returns:
Le nombre de brins dupliqués

Definition at line 28 of file gmg-duplication.cc.

bool CGMapGeneric::existFictiveEdgeIncidentTo ( CDart ADart,
int  AMark 
)

Definition at line 115 of file gmg-fictive-edge.cc.

CDart * CGMapGeneric::extrudeByNormal ( CDart ADart,
int  ADim,
bool  AExtrusionWithAdjacentSews,
TCoordinate  AExtrusionCoef,
int  AMarkToExtrude = -1,
int  AMarkExtruded = -1 
) [virtual]

Extrude la cellule de dimension ADim incidente à ADart en s'appuyant sur la méthode 'topoExtrude'.

Le paramètre AMarkToExtrude est un numéro de marque indiquant quelles cellules doivent être extrudées. Ce paramètre est utile lors du calcul des plongements.

Pour la signification des paramètre AExtrusionWithAdjacentSews et AMarkExtruded, se reporter à la méthode 'topoExtrude'.

Parameters:
ADart Un brin de la carte
ADim Une dimension (0, 1 ou 2)
AExtrusionWithAdjacentSews Un booléen
AExtrusionCoef Un TCoordinate fixant le coefficient d'extrusion.
AMarkToExtrude Un numéro de marque
AMarkExtruded Un numéro de marque
Returns:
Un brin de la cellule créée, situé à l'opposé de ADart
canExtrudeCell(ADart, ADim)

Reimplemented in GMap3d::CGMapVertex.

Definition at line 297 of file gmg-extrusion.cc.

int CGMapGeneric::extrudeByNormalMarkedCells ( int  AMarkNumber,
int  ADim,
int  AMarkTreated,
bool  AExtrusionWithAdjacentSews,
TCoordinate  AExtrusionCoef 
) [protected]

Extrude lorsque c'est possible les cellules de dimension ADim qui sont marquées avec la marque AMarkNumber.

Le résultat obtenu dépend de la valeur que donne la méthode 'getExtrusionWithAdjacentSews'.

Si AMarkTreated est positif ou nul, les cellules extrudées sont marquées comme telles avec la marque AMarkTreated. Ceci permet de ne pas extruder plusieurs fois la même cellule dans des dimensions différentes (voir méthode 'intuitiveExtrudeMarkedCells').

Remarque: Comme CGMapGeneric ne traite pas les plongements, aucune vérification sur les brins sélectionnés n'est effectuée. Par exemple, en dimension 2 si un brin d'une face est sélectionné et si sont alpha0 l'est aussi, on ne peut pas effectuer le calcul des plongements car il y alpha ambiguïté sur le sens de la normale de la face à extruder. Cependant, topologiquement il n'y alpha aucun problème. Cette méthode devra donc être surchargée dans les classes dérivant de CGMapGeneric.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (0, 1 ou 2)
AMarkTreated Un numéro de marque
AExtrusionWithAdjacentSews Un booléen
AExtrusionCoef Un TCoordinate fixant le coefficient d'extrusion.
Returns:
Le nombre de cellules extrudées

Definition at line 363 of file gmg-extrusion.cc.

int CGMapGeneric::extrudeByNormalMarkedCells ( int  AMarkNumber,
int  ADim,
bool  AExtrusionWithAdjacentSews,
TCoordinate  AExtrusionCoef 
)

Extrude lorsque c'est possible les cellules de dimension ADim qui sont marquées avec la marque AMarkNumber.

Cette méthode s'appuie sur la méthode protégée 'extrudeByNormalMarkedCells(int, int, int, bool)'.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (0, 1 ou 2)
AExtrusionWithAdjacentSews Un booléen
AExtrusionCoef Un TCoordinate fixant le coefficient d'extrusion.
Returns:
Le nombre de cellules extrudées

Definition at line 305 of file gmg-extrusion.cc.

CDart * CGMapGeneric::extrudeByPath ( CDart ADart,
int  ADim,
CDart APath,
bool  AExtrusionWithAdjacentSews,
int  AMarkExtruded = -1,
int  ADirectInfoIndex = -1 
) [virtual]

Extrude la cellule de dimension ADim incidente à ADart selon le chemin donné par APath (orbite O1) en s'appuyant sur la méthode 'topoExtrude' appelée plusieurs fois.

Le paramètre ADirectInfoIndex est un indice de champ directInfo dans lequel sont mémorisées les ADim-coutures des brins avant extrusion. Ce paramètre est utile pour la couture des cellules extrudées adjacentes si le chemin est fermé ou si le brin initial est au milieu du chemin. En effet, dans ce cas là la cellule extrudée se retrouve isolée et lorsque ses ex-voisines sont à leur tour extrudées, on ne peut pas déterminer à quelle cellules les cellules issues de l'extrusion doivent être cousues.

Pour la signification des paramètre AExtrusionWithAdjacentSews et AMarkExtruded, se reporter à la méthode 'topoExtrude'.

Parameters:
ADart Un brin de la carte incident à la cellule à extruder
ADim Une dimension (1 ou 2)
APath Un brin de la carte incident au chemin d'extrusion
AExtrusionWithAdjacentSews Un booléen
AMarkExtruded Un numéro de marque
ADirectInfoIndex Un indice de champ directInfo
Returns:
Un brin de la dernière cellule créée, situé à l'opposé de ADart
canExtrudeByPath(ADart, ADim, APath)

Definition at line 440 of file gmg-extrusion.cc.

int CGMapGeneric::extrudeByPathMarkedCells ( int  AMarkNumber,
int  ADim,
CDart APath,
bool  AExtrusionWithAdjacentSews 
) [virtual]

Extrude lorsque c'est possible selon le chemin donné les cellules de dimension ADim qui sont marquées avec la marque AMarkNumber.

Le résultat dépend obtenu de la valeur que donne la méthode 'getExtrusionWithAdjacentSews'.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (1 ou 2)
APath Un brin de la carte incident au chemin d'extrusion
AMarkExtruded Un numéro de marque
Returns:
Le nombre de cellules extrudées selon le chemin donné

Definition at line 501 of file gmg-extrusion.cc.

CDart * CGMapGeneric::extrudeByRevolution ( CDart ADart,
int  ADim,
bool  AClosed,
int  ANbEdges,
bool  AExtrusionWithAdjacentSews,
int  AMarkExtruded = -1,
int  ADirectInfoIndex = -1 
) [virtual]

Extrude la cellule de dimension ADim incidente à ADart selon autour d'un axe. La méthode crée un chemin constitué de ANbEdges arêtes qui est fermé ou ouvert selon la valeur de AClosed puis appelle la méthode 'extrudeByPath'.

Pour la signification des paramètres AMarkExtruded et ADirectInfoIndex, se reporter à la méthode 'extrudeByPath'.

Parameters:
ADart Un brin de la carte incident à la cellule à extruder
ADim Une dimension (1 ou 2)
AClosed Un booléen indiquant si la révolution est complète (angle de 360°)
ANbEdges Le nombre de sections à créer
AExtrusionWithAdjacentSews Un booléen
AMarkExtruded Un numéro de marque
ADirectInfoIndex Un indice de champ directInfo
Returns:
Un brin de la dernière cellule créée, situé à l'opposé de ADart
canExtrudeByRevolution(ADart, ADim, AClosed) ANbEdges >= 3

Definition at line 583 of file gmg-extrusion.cc.

int CGMapGeneric::extrudeByRevolutionMarkedCells ( int  AMarkNumber,
int  ADim,
bool  AClosed,
int  ANbEdges,
bool  AExtrusionWithAdjacentSews 
) [virtual]

Extrude par révolution lorsque c'est possible les cellules de dimension ADim qui sont marquées avec la marque AMarkNumber.

Le résultat dépend obtenu de la valeur que donne la méthode 'getExtrusionWithAdjacentSews'.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (1 ou 2)
AClosed Un booléen indiquant si la révolution est complète (angle de 360°)
ANbEdges Le nombre de sections à créer
AMarkExtruded Un numéro de marque
Returns:
Le nombre de cellules extrudées

Definition at line 606 of file gmg-extrusion.cc.

int CGMapGeneric::findEdgeType ( CDart ADart,
CDart **  AResDart,
int  AFictiveFaceMark 
)

Parameters:
ADart Un brin de la carte
AResDart l'adresse d'un brin : paramètre retour
AFictiveFaceMark la marque pour les faces fictives
Returns:
0 ssi l'arête est incidente qu'a des faces fictives (cas de degré réel 0) ; 1 ssi une seule face réelle est incidente à l'arête et si l'arête de cette face réelle est pendante. Dans ce cas, *AResDart contiendra un brin de la face réelle. 2 ssi l'arête est de degrée réel 2 (cad incidente à 2 faces réelles distinctes). Dans ce cas, *AResDart un brin de ces faces réelles incidentes à l'arête ; 3 ssi le degré réel est > 2 ou de degré réel 1 et l'arête n'est pas pendante.

Definition at line 234 of file gmg-fictive-face.cc.

CDart * CGMapGeneric::findIncidentEdgeNonLoop ( CDart ADart  ) 

Parameters:
ADart Un brin de la carte
Returns:
Un brin d'une arête non-boucle incidente au sommet désigné par ADArt s'il en existe une NULL Sinon

Definition at line 194 of file gmg-fictive-edge.cc.

int CGMapGeneric::findVertexType ( CDart ADart,
CDart **  AResDart,
int  AMark 
)

Parameters:
ADart Un brin de la carte
AResDart l'adresse d'un brin : paramètre retour
AMark la marque pour les arêtes fictives
Returns:
0 ssi le sommet est fictif (cas de degré réel 0) ; 1 ssi la seule arête réelle incidente au sommet est une boucle ; 2 ssi le sommet est de degré réel 2 et que les 2 arêtes réelles ne sont pas des boucles. Dans ce cas uniquement, *AResDart contiendra un des brin de ces arêtes incident au sommet ; 3 ssi soit il y a deux arêtes réelles incidente au sommet, et au moins une est une boucle, soit le degré réel est > 2.

Definition at line 126 of file gmg-fictive-edge.cc.

void CGMapGeneric::freeMemoryFromDirectInfo ( CDart ADart,
TOrbit  AOrbit,
int  ADirectInfoIndex,
TOrbit  AOrbitUsed = ORBIT_NONE 
)

Libère l'espace mémoire affecté au champ directInfo[ADirectInfoIndex] des brins marqués avec la marque AMarkNumber.

Si AOrbitUsed est différent de ORBIT_NONE, la libération n'est faite que pour le brin porteur du plongement AOrbitUsed de chaque cellule d'orbite AOrbitUsed dont un brin au moins est marqué.

Parameters:
ADart Un brin quelconque de la carte
AOrbit Une orbite
ADirectInfoIndex L'indice du champ directInfo à utiliser
AOrbitUsed Une orbite quelconque

Definition at line 118 of file gmg-direct-info.cc.

void CGMapGeneric::freeMemoryFromDirectInfo ( int  AMarkNumber,
int  ADirectInfoIndex,
TOrbit  AOrbitUsed = ORBIT_NONE 
)

Libère l'espace mémoire affecté au champ directInfo[ADirectInfoIndex] des brins marqués avec la marque AMarkNumber.

Si AOrbitUsed est différent de ORBIT_NONE, l'allocation n'est faite que pour le brin porteur du plongement AOrbitUsed de chaque cellule d'orbite AOrbitUsed dont un brin au moins est marqué.

Parameters:
AMarkNumber Un numéro de marque
ADirectInfoIndex L'indice du champ directInfo à utiliser
AOrbitUsed Une orbite quelconque

Definition at line 82 of file gmg-direct-info.cc.

int CGMapGeneric::getBorderDimension ( CDart ADart  ) 

Calcule la dimension du bord incident au brin ADart.

Parameters:
ADart Un brin quelconque
Returns:
La dimension du bord de plus petite dimension incident au brin
La valeur retournée vaut 0, 1, 2, 3 ou 4.

Definition at line 28 of file gmg-border.cc.

INLINE CDart * GMap3d::CGMapGeneric::getDirectInfoAsDart ( CDart ADart,
int  ADirectInfoIndex 
)

Retourne le champ directInfo demandé du brin ADart après l'avoir retypé en pointeur sur un brin.

Parameters:
ADart Un brin de la carte
ADirectInfoIndex Un indice de champ directInfo
Returns:
Un brin de la carte

Definition at line 443 of file gmg-inline.icc.

int CGMapGeneric::getExtrusionDimension ( CDart ADart  ) 

Donne la plus petite dimension D telle que la cellule dimension D incidente à ADart puisse être extrudée. Si l'extrusion est impossible, la méthode retourne la valeur 3.

Parameters:
ADart Un brin de la carte
Returns:
Une dimension d'extrusion (0, 1, 2 ou 3)

Definition at line 71 of file gmg-extrusion.cc.

void CGMapGeneric::getGlobalCharacteristics ( int *  ANbDarts,
int *  ANbVertices,
int *  ANbEdges,
int *  ANbFaces,
int *  ANbVolumes,
int *  ANbCC,
int *  ANb0Borders,
int *  ANb1Borders,
int *  ANb2Borders,
int *  ANb3Borders 
)

Calcule les caractéristiques globales de la carte (nombre de brins, de cellules, de bords). Pour ne pas calculer certaines caractéristiques, mettre à NULL les paramètres correspondants.

Parameters:
ANbDarts Le nombre de brins de la carte
ANb{Vertices,...,CC} Le nombre de cellules de la carte
ANbiBorders Le nombre de i-bords de la carte

Definition at line 274 of file gmg-topology.cc.

int CGMapGeneric::getMapDimension (  ) 

Returns:
la dimension de la carte, c'est à dire le plus grand i tel qu'il existe un brin non i-libre. Retourne -1 si tout les brins sont libre pour tout les i.

Definition at line 674 of file gmg-topology.cc.

int CGMapGeneric::getMarkedCells ( TOrbit  AOrbit,
int  AMarkNumber,
CDart ALastMarked = NULL,
CDart **  ADart1 = NULL,
CDart **  ADart2 = NULL,
CDart **  ADart3 = NULL 
)

Cherche dans la carte les cellules correspondant à AOrbit dont au moins un brin est marqué pour le numéro de marque AMarkNumber donné. Pour chacune d'entre elles, un brin marqué est choisi et l'un des paramètres ADart- est positionné sur ce brin. Si plus de 3 cellules sont marquées, seules les trois premières trouvées sont mémorisées et la valeur retournée est supérieure à trois. Si moins de 3 cellules sont marquées, les paramètres non utilisés sont positionnés à NULL. Si ALastMarked ne vaut pas NULL, il désigne un brin prioritaire sur les autres. Si ce brin est marqué, il est placé en première position (ADart1 pointe sur lui).

Parameters:
AOrbit Une orbite quelconque
AMarkNumber Un numéro de marque
ALastMarked Un pointeur sur le dernier brin marqué
ADart1 Une référence sur un pointeur sur un brin
ADart2 Une référence sur un pointeur sur un brin
ADart3 Une référence sur un pointeur sur un brin
Returns:
Le nombre d'orbites marquées

Definition at line 395 of file gmg-selection.cc.

int CGMapGeneric::getMergeDimension ( CDart ADart  ) 

Calcule la plus grande dimension pour laquelle ADart est cousu avec un autre brin. Si le brin n'est cousu ni par alpha0, ni par alpha1, ni par alpha2, ni par alpha3, la valeur retournée est -1.

Remarque: Cette méthode n'est plus utilisée par les méthodes intuitiveIsolateMarkedCells et intuitiveMergeMarkedCells.

Parameters:
ADart Un brin de la carte
Returns:
La plus grande dimension pour laquelle le brin n'est pas libre
La valeur retournée vaut 3, 2, 1, 0 ou -1.

Definition at line 35 of file gmg-merge.cc.

int CGMapGeneric::getNbPolylineEdges ( CDart ADart,
bool  AConsider0FreeDartsAsEdges = true 
)

Calcule le nombre d'arêtes qui composent la face incidente à ADart.

Si AConsider0FreeDartsAsEdges vaut 'vrai' et si ADart est incident à une face ouverte, les éventuels brins 0-libres situés au bout de cette face sont comptabilisés comme des arêtes.

Si AConsider0FreeDartsAsEdges vaut 'faux', les éventuels brins 0-libres situés au bout d'une face ouverte ne sont pas considérés dans le décompte du nombre d'arêtes.

Parameters:
ADart Un brin de la carte
AConsider0FreeDartsAsEdges Un booléen indiquant comment considérer les brins 0-libres
Returns:
Un nombre d'arêtes

Definition at line 73 of file gmg-polyline.cc.

int CGMapGeneric::getNbPolylineVertices ( CDart ADart  ) 

Calcule le nombre de sommets qui composent la face incidente à ADart.

Parameters:
ADart Un brin de la carte
Returns:
Un nombre de sommets

Definition at line 50 of file gmg-polyline.cc.

int CGMapGeneric::getSewDimension ( CDart ADart1,
CDart ADart2 
)

Retourne la plus petite dimension dans laquelle ADart1 et ADart2 peuvent être cousus.

Parameters:
ADart1 Un brin quelconque
ADart2 Un brin quelconque
Returns:
La plus petite dimension dans laquelle ADart1 et ADart2 peuvent être cousus
La valeur retournée vaut 0, 1, 2, 3 ou 4.

Definition at line 28 of file gmg-sew.cc.

void CGMapGeneric::getSurfaceCharacteristics ( CDart ADart,
int *  ANbDarts,
int *  ANbVertices,
int *  ANbEdges,
int *  ANbFaces,
int *  ANb0Borders,
int *  ANb1Borders,
int *  ANb2Borders,
int *  ANb2BordersWhenClosed,
int *  AEuler,
int *  AOrient,
int *  AGenus 
)

Calcule les caractéristiques d'une surface dont un brin est donné (nombre de brins, de cellules, de bords, caractéristique d'Euler, orientabilité, genre). Pour ne pas calculer certaines caractéristiques, mettre à NULL les paramètres correspondants.

Parameters:
ADart Un brin du volume
ANbDarts Le nombre de brins du volume
ANb{Vertices,...,CC} Le nombre de cellules du volume
ANbiBorders Le nombre de i-bords du volume
ANb2BordersWhenClosed Le nombre total de 2-bords qu'on aurait si le volume incident à ADart était 0-fermé puis 1-fermé.
AEuler La caractéristique d'Euler-Poincaré du volume
AOrient Le coefficient d'orientabilité du volume
AGenus Le genre du volume

Definition at line 296 of file gmg-topology.cc.

string CGMapGeneric::getSurfaceName ( int  AB2,
int  AQ,
int  AG 
)

Détermine à partir des caractéristiques topologiques d'une surface son nom usuel.

Parameters:
AB2 Le nombre de 2-bords de la surface
AQ Le coefficient d'orientabilité de la surface
AG Le genre de la surface
Returns:
Le nom de la surface (par exemple, "tore à 2 trous", "bouteille de Klein", etc)

Definition at line 428 of file gmg-topology.cc.

CDart * CGMapGeneric::go ( TMovement  ADirection,
CDart ALastDart,
TOrbit  AOrbit,
int  AMarkNumber,
bool  ASelect = true 
)

*** MÉTHODE À REVOIR ***

Cette méthode permet de marquer ou démarquer facilement une cellule adjacente à celle donnée par le couple (ALastDart, AOrbit). Appelée plusieurs fois (voir la méthode 'goAsFarAsPossible'), elle permet de sélectionner des brins le long d'un chemin.

Par exemple, pour couper une sphère en deux le long d'un de ses parallèles, il faut préalablement sélectionner les arêtes qui correspondent à ce parallèle. Il s'agît donc de sélectionner certaines arêtes d'un volume. Ces arêtes correspondent à une orbite 02 (deuxième ligne du tableau). Le tableau indique comment se font les déplacements. Dans ce cas précis, pour avancer on recherche alpha1210(ALastDart). Si on désire tourner à droite, c'est alpha120(ALastDart) qui est recherché, etc... Après avoir tourné à gauche ou à droite, on voit donc que pour continuer son trajet il faut repartir dans le sens contraire de celui dans lequel on est arrivé (si avant de tourner on a fait un go(Forward), il faut continuer le trajet en faisant un go(Backward) et inversement).

Si ASelect vaut 'vrai' et si un brin de l'orbite n'est pas marqué, alors tous les brins de l'orbite sont marqués avec la marque AMarkNumber et aucun déplacement n'est effectué (quelle que soit la direction donnée). Si ASelect vaut 'vrai' et si tous les brins de l'orbite sont marqués, alors un déplacement est effectué et tous les brins de l'orbite donnée correspondant au brin atteint sont marqués. Si ASelect vaut 'faux', tous les brins de l'orbite donnée sont démarqués puis un déplacement est effectué. Le brin atteint est alors marqué.

S'il n'y a pas de brin atteignable, la méthode retourne ALastDart. Sinon, qu'il y ait déplacement ou pas, la méthode retourne le brin atteint (s'il n'y a pas de déplacement ce brin est donc ALastDart).

Tableau récapitulatif: DIRECTION ORBITE Forward Backward Left Right | | | | | | 0--3 (arête /face ) | 1 0 | 0 1 | 010 | 010 | 0-2- (arête /volume) | 1[2 1]0 | 0[1 2]1 | [2]010 | 010[2] | 0-23 (arête /cc ) | 1[2[32]1]0 | 0[1[23]2]1 | [2]0 | 010[2] | 01-- (face /volume) | 2 1 01 | 10 1 2 | 01 | 10 | 01-3 (face /cc ) | 2 [32]1 01 | 10 1[23] 2 | 01 | 10 | 012- (volume/cc ) | 3 2 1 012 | 210 1 2 3 | 012 | 210

Les autres orbites ne sont pas supportées (appeler la méthode avec une d'entre elles provoque un résultat imprévisible). Les crochets [] indiquent les orbites qui peuvent être ignorées. Par exemple, dans le cas de sélection de faces dans une composante connexe (orbite 013), si on effectue un go(Forward) alors que alpha2(ALastDart) est 3-libre, c'est alpha2101(ALastDart) qui sera atteint. Par contre, si ALastDart est 2-libre, ou si alpha2(ALastDart) est 1-libre, ou alpha21(ALastDart) est 0-libre, ou etc... la méthode retourne ALastDart.

Parameters:
ADirection La direction dans laquelle se fait le déplacement
ALastDart Le brin de départ
AOrbit L'orbite indiquant quel type de déplacement effectuer
AMarkNumber Un numéro de marque
ASelect Indique s'il faut sélectionner ou désélectionner les brins
Returns:
Le brin d'arrivée
L'orbite donnée est mentionnée dans le tableau récapitulatif

Definition at line 29 of file gmg-exploration.cc.

CDart * CGMapGeneric::goAsFarAsPossible ( TMovement  ADirection,
CDart ALastDart,
TOrbit  AOrbit,
int  AMarkNumber,
bool  ASelect = true 
)

Cette méthode permet de sélectionner facilement plusieurs cellules adjacentes de la carte. Elle appelle la méthode 'go' autant de fois que possible, c'est-à-dire jusqu'à atteindre un brin déjà rencontré ou un brin à partir duquel il est impossible d'avancer.

Parameters:
ADirection La direction dans laquelle se fait le déplacement
ALastDart Le brin de départ
AOrbit L'orbite indiquant quel type de déplacement effectuer
AMarkNumber Un numéro de marque
ASelect Indique s'il faut sélectionner ou désélectionner les brins
Returns:
Le brin d'arrivée
L'orbite donnée est mentionnée dans le tableau récapitulatif de la méthode 'go'

Definition at line 153 of file gmg-exploration.cc.

void CGMapGeneric::halfMarkIncidentCells ( TOrbit  AOrbit,
int  AMarkNumber 
)

Marque un brin sur deux des cellules correspondant à l'orbite AOrbit dont un brin au moins est marqué. Lorsqu'une cellule non orientable est marquée, elle est totalement sélectionnée. Voir la méthode 'halfMarkOrbit' pour plus d'informations.

Parameters:
AOrbit Une orbite qui n'est pas une orbite de bord
AMarkNumber Un numéro de marque
AOrbit>=ORBIT_SELF && AOrbit<=Orbit_CC

Definition at line 204 of file gmg-selection.cc.

void CGMapGeneric::halfMarkIncidentCells ( TOrbit  AOrbit,
int  AMarkNumberSrce,
int  AMarkNumberDest 
)

Marque avec la marque AMarkNumberDest un brin sur deux des cellules correspondant à l'orbite AOrbit dont un brin au moins est marqué avec la marque AMarkNumberSrce. Lorsqu'une cellule non orientable est marquée, elle est totalement sélectionnée. Voir la méthode 'halfMarkOrbit' pour plus d'informations.

Parameters:
AOrbit Une orbite qui n'est pas une orbite de bord
AMarkNumberSrce Un numéro de marque
AMarkNumberDest Un numéro de marque
AOrbit>=ORBIT_SELF && AOrbit<=Orbit_CC AMarkNumberSrce!=AMarkNumberDest

Definition at line 145 of file gmg-selection.cc.

void CGMapGeneric::halfMarkOrbit ( CDart ADart,
TOrbit  AOrbit,
int  AMarkNumber 
)

Marque un brin sur deux de l'orbite AOrbit incidente à ADart en utilisant la marque numéro AMarkNumber. Attention: Cette méthode ne fonctionne pas si l'orbite est une orbite de bord !

Parameters:
ADart Un brin quelconque
AOrbit Une orbite
AMarkNumber Un numéro de marque
AOrbit n'est pas une orbite de bord isOrientable(ADart, AOrbit) isMarked(ADart, AMarkNumber) Soient b un brin de l'orbite (ADart,AOrbit) et i une dimension (0, 1, 2 ou 3) tels que alpha(b,i) soit lui aussi sur l'orbite (ADart, AOrbit). On a : isMarked( b , AMarkNumber) != isMarked(alpha(b,i), AMarkNumber)

Definition at line 41 of file gmg-selection.cc.

void CGMapGeneric::halfUnmarkOrbit ( CDart ADart,
TOrbit  AOrbit,
int  AMarkNumber 
)

Démarque un brin sur deux de l'orbite AOrbit incidente à ADart en utilisant la marque numéro AMarkNumber. Attention: Cette méthode ne fonctionne pas si l'orbite est une orbite de bord !

Parameters:
ADart Un brin quelconque
AOrbit Une orbite
AMarkNumber Un numéro de marque
AOrbit n'est pas une orbite de bord isOrientable(ADart, AOrbit) !isMarked(ADart, AMarkNumber) Soient b un brin de l'orbite (ADart,AOrbit) et i une dimension (0, 1, 2 ou 3) tels que alpha(b,i) soit lui aussi sur l'orbite (ADart, AOrbit). On a : isMarked( b , AMarkNumber) != isMarked(alpha(b,i), AMarkNumber)

Definition at line 74 of file gmg-selection.cc.

CDart * CGMapGeneric::insertEdge ( CDart ADart1,
CDart ADart2 
) [virtual]

Insère une arête topologique entre les sommets incidents aux brins ADart1 et ADart2.

Parameters:
ADart1 Un pointeur sur un brin
ADart2 Un pointeur sur un brin
Returns:
Un brin de l'arête topologique insérée
canInsertEdge(ADart1, ADart2)

Definition at line 95 of file gmg-insertion.cc.

int CGMapGeneric::insertEdgeOnMarkedFaces ( int  AMarkNumber,
bool  ANoCrossedFace = false,
bool  ANoTwoEdgesFace = false 
)

Insère une arête sur chaque face dont deux sommets sont sélectionnés, lorsque cela est possible. Si ANoCrossedFace est faux, une arête n'est insérée sur une face que si exactement 2 brins de cette face sont marqués. Si ANoCrossedFace est vrai, une arête n'est insérée sur une face que si 2 sommets de cette face sont marqués (2, 3 ou 4 brins marqués).

Parameters:
AMarkNumber Un numéro de marque
ANoCrossedFace Un booléen indiquant s'il faut vérifier qu'on ne va pas créer une face 'croisée', c'est-à-dire une face en forme de 8, avec deux arêtes 2-cousues qui se croisent
ANoTwoEdgesFace Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de face fermée composée de seulement deux arêtes
Returns:
Le nombre d'arêtes insérées

Definition at line 151 of file gmg-insertion.cc.

CDart * CGMapGeneric::insertFace ( CDart ADart,
int  AMarkNumber,
bool  ANoCrossedVolume = false 
) [virtual]

Insère une face le long des arêtes sélectionnées du volume donné.

Parameters:
ADart Un brin marqué du volume dans lequel insérer la face
AMarkNumber Un numéro de marque
ANoCrossedVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer un volume 'croisé', c'est-à-dire un volume en forme de 8, avec deux faces 3-cousues qui se croisent
Returns:
Un brin de la face créée
canInsertFace(ADart, AMarkNumber)

Definition at line 351 of file gmg-insertion.cc.

int CGMapGeneric::insertFaceOnMarkedVolumes ( int  AMarkNumber,
bool  ANoCrossedVolume = false,
bool  ANoTwoEdgesFace = false,
bool  ANoTwoFacesVolume = false 
)

Insère une face sur chaque volume dont plusieurs arêtes sont sélectionnées, lorsque cela est possible.

Parameters:
AMarkNumber Un numéro de marque
ANoCrossedVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer un volume 'croisé', c'est-à-dire un volume en forme de 8, avec deux faces 3-cousues qui se croisent
ANoTwoEdgesFace Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de face fermée composée de seulement deux arêtes
ANoTwoFacesVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de volume fermé composé de seulement deux faces
Returns:
Le nombre de faces insérées

Definition at line 461 of file gmg-insertion.cc.

CDart * CGMapGeneric::insertVertex ( CDart ADart  )  [virtual]

Insère un sommet topologique sur l'arête incidente au brin ADart.

Parameters:
ADart Un pointeur sur un brin
Returns:
Un brin du sommet topologique inséré
canInsertVertex(ADart)

Reimplemented in GMap3d::CGMapVertex.

Definition at line 29 of file gmg-insertion.cc.

int CGMapGeneric::insertVertexOnMarkedEdges ( int  AMarkNumber  ) 

Insère un sommet sur chaque arête dont un brin au moins est marqué, lorsque cela est possible.

Parameters:
AMarkNumber Un numéro de marque
Returns:
Le nombre d'insertions effectuées

Definition at line 68 of file gmg-insertion.cc.

bool CGMapGeneric::intuitiveBorderSew ( CDart ADart1,
CDart ADart2,
int  An = 0 
)

Coud les deux bords désignés par les brins ADart1 et ADart2. La dimension des bords est déterminée par la méthode 'getBorderDimension' appliquée sur ADart1.

Si An est strictement positif, sa valeur indique le nombre de coutures à effectuer (nombre d'itérations à effectuer sur l'itérateur de bord).

Parameters:
ADart1 Un pointeur sur un premier brin
ADart2 Un pointeur sur un deuxième brin
An Le nombre d'itérations à effectuer
Returns:
Un booléen indiquant si la couture alpha été possible

Definition at line 175 of file gmg-border.cc.

int CGMapGeneric::intuitiveExtrudeByNormalMarkedCells ( int  AMarkNumber,
bool  AExtrusionWithAdjacentSews,
TCoordinate  AExtrusionCoef 
)

Extrude lorsque c'est possible les cellules marquées avec la marque AMarkNumber. La méthode essaie d'abord d'extruder les sommets marqués, puis les arêtes et en enfin les faces.

Parameters:
AMarkNumber Un numéro de marque
AExtrusionWithAdjacentSews Un booléen
Returns:
Le nombre de cellules extrudées

Definition at line 324 of file gmg-extrusion.cc.

int CGMapGeneric::intuitiveIsolateMarkedCells ( int  AMarkNumber,
bool  ADeleteDarts = false 
)

Isole lorsque cela est possible les cellules dont un brin au moins est marqué. La méthode procède en 3 passes, avec priorité aux cellules de dimension élevée (faces).

Parameters:
AMarkNumber Un numéro de marque
ADeleteDarts Un booléen indiquant si les cellules isolées doivent être détruites
Returns:
Le nombre de cellules isolées

Definition at line 213 of file gmg-merge.cc.

int CGMapGeneric::intuitiveMergeMarkedCells ( int  AMarkNumber,
bool  ADeleteDarts = false 
)

Fusionne lorsque cela est possible (avec leurs cellule incidente) les cellules dont un brin au moins est marqué. Les fusions sont faites en 3 passes, avec priorité aux fusions de cellules de dimension élevée (volumes). Lors de chaque passe, les cellules qui doivent être isolées sont déterminées par la méthode protégée 'markCellsToBeIsolated'.

Parameters:
AMarkNumber Un numéro de marque
ADeleteDarts Un booléen indiquant si la fusion doit se faire en supprimant des brins
Returns:
Le nombre de fusions effectuées

Definition at line 367 of file gmg-merge.cc.

bool CGMapGeneric::intuitiveSew ( CDart ADart1,
CDart ADart2 
)

Essaie de coudre ADart1 et ADart2 en déterminant la dimension de la couture à l'aide de la méthode 'getSewDimension'.

Parameters:
ADart1 Un brin quelconque
ADart2 Un brin quelconque
Returns:
Un booléen indiquant si la couture alpha pu se faire

Definition at line 40 of file gmg-sew.cc.

int CGMapGeneric::intuitiveStopUpMarkedBorders ( int  AMarkNumber  ) 

Bouche les bords incidents aux brins sélectionnés, en déterminant de manière automatique la dimension des bords.

Parameters:
AMarkNumber Un numéro de marque
Returns:
Le nombre de bords qui ont été bouchés

Definition at line 84 of file gmg-stop-up.cc.

int CGMapGeneric::intuitiveUnsewMarkedCells ( int  AMarkNumber  ) 

Découd tous les brins de la carte marqués, en déterminant de manière automatique la dimension de chacune des décousures.

Parameters:
AMarkNumber Un numéro de marque
Returns:
Le nombre de décousures effectuées

Definition at line 43 of file gmg-unsew.cc.

bool CGMapGeneric::isClosedPolyline ( CDart ADart  ) 

Teste si le brin ADart appartient à une polyligne dont tous les brins sont 0 et 1-cousus. Remarque: Certains brins de la polyligne peuvent être 2 ou 3-cousus.

Parameters:
ADart Un brin de la carte
Returns:
'vrai' si ADart appartient à une face fermée

Definition at line 39 of file gmg-polyline.cc.

bool CGMapGeneric::isConnex (  ) 

Teste si la carte ne contient qu'une seule composante connexe. Si c'est le cas, la valeur 'vrai' est retournée.

Returns:
'vrai' si la carte est connexe

Definition at line 503 of file gmg-topology.cc.

bool CGMapGeneric::isIClosedOrbit ( CDart ADart,
int  ADimension,
TOrbit  AOrbit 
)

Teste si tous les brins de l'orbite (ADart, AOrbit) sont cousus par alpha ADimension. Si c'est le cas, la méthode retourne vrai.

Parameters:
ADart Un brin de la carte
ADimension Une dimension quelconque (0, 1, 2 ou 3)
AOrbit Une orbite quelconque
Returns:
Un booléen

Definition at line 640 of file gmg-topology.cc.

bool CGMapGeneric::isIFreeOrbit ( CDart ADart,
int  ADimension,
TOrbit  AOrbit 
)

Teste si tous les brins de l'orbite (ADart, AOrbit) sont non cousus par alpha ADimension. Si c'est le cas, la méthode retourne vrai.

Parameters:
ADart Un brin de la carte
ADimension Une dimension quelconque (0, 1, 2 ou 3)
AOrbit Une orbite quelconque
Returns:
Un booléen

Definition at line 657 of file gmg-topology.cc.

bool CGMapGeneric::isIsolatedPolyline ( CDart ADart  ) 

Teste si le brin ADart appartient à une polyligne isolée, c'est-à-dire si tous les brins de la face incidente à ADart sont 2 et 3-libres.

Parameters:
ADart Un brin de la carte
Returns:
'vrai' si ADart appartient à une polyligne

Definition at line 28 of file gmg-polyline.cc.

bool CGMapGeneric::isLocalDegreeTwoInf ( CDart ADart,
int  ACellDim 
)

Vérifie si la condition alpha_i-1 o alpha_i-2 est une involution pour chaque brin de la cellule.

Parameters:
ADart Un brin de la carte
ACellDim Une dimension
Returns:
vrai ssi la cellule de dimension ACellDim incidente à ADart est de "degré local inférieur" égal à 2.
0 <= ACellDim < 3 ADart!=NULL

Definition at line 90 of file gmg-degree.cc.

bool CGMapGeneric::isLocalDegreeTwoSup ( CDart ADart,
int  ACellDim 
)

Vérifie si la condition alpha_i+1 o alpha_i+2 est une involution pour chaque brin de la cellule.

Parameters:
ADart Un brin de la carte
ACellDim Une dimension
Returns:
vrai ssi la cellule de dimension ACellDim incidente à ADart est de "degré local supérieur" égal à 2.
0 <= ACellDim < 3 ADart!=NULL

Definition at line 63 of file gmg-degree.cc.

int CGMapGeneric::isolateMarkedCells ( int  AMarkNumber,
int  ADim,
bool  ADeleteDarts,
bool  AVerif,
int  AMarkTreated = -1 
) [protected]

Cette méthode auxiliaire isole (uniquement lorsque cela est possible si AVerif=='vrai') les cellules de dimension ADim dont un brin au moins est sélectionné, c'est-à-dire qu'elle fusionne les cellules de dimension ADim+1 incidentes aux cellules de dimension ADim marquées. Lorsqu'une cellule est isolée, elle est marquée comme traitée avec la marque AMarkTreated (si AMarkTreated>=0).

Si AVerif=='faux', les cellules marquées doivent impérativement pouvoir être isolées.

La méthode est utilisée par: isolateMarkedCells(int, int, bool), intuitiveIsolateMarkedCells(int, bool), mergeMarkedCells(int, int, bool) et intuitiveMergeMarkedCells(int, bool).

Parameters:
AMarkNumber Un numéro de marque indiquant les brins sélectionnés
ADim La dimension des cellules qui doivent être isolées
ADeleteDarts Un booléen indiquant si les cellules doivent être supprimées une fois isolées
AVerif Un booléen indiquant si pour chaque cellule marquée il faut vérifier si l'opération d'isolement est possible
AMarkTreated Un numéro de marque indiquant (si positif ou nul) les brins déjà traités et dont il ne faut donc pas se préoccuper
Returns:
Le nombre de cellules isolées
AMarkTreated!=AMarkNumber AVerif=='faux' ou toutes les cellules marquées peuvent être isolées

Definition at line 127 of file gmg-merge.cc.

int CGMapGeneric::isolateMarkedCells ( int  AMarkNumber,
int  ADim,
bool  ADeleteDarts = false 
)

Isole lorsque cela est possible les cellules de dimension ADim en fusionnant entre elles les cellules de dimension ADim+1 qui leurs sont incidentes.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (0, 1 ou 2)
ADeleteDarts Un booléen indiquant si les cellules isolées doivent être détruites
Returns:
Le nombre de cellules isolées

Definition at line 206 of file gmg-merge.cc.

bool CGMapGeneric::isOrientable ( CDart ADart,
TOrbit  AOrbit 
)

Teste si l'objet déterminé par ADart et AOrbit est orientable. Remarque: L'objet peut ne pas être orientable uniquement pour les orbites ORBIT_VERTEX, ORBIT_VOLUME et ORBIT_CC.

Parameters:
ADart Un brin de la carte
AOrbit Une orbite (ORBIT_VOLUME ou ORBIT_CC)
Returns:
'vrai' si l'objet est orientable
AOrbit n'est pas une orbite de bord

Definition at line 46 of file gmg-topology.cc.

bool CGMapGeneric::isWholeCellMarked ( CDart ADart,
TOrbit  AOrbit,
int  AMarkNumber 
)

Teste si tous les brins de la cellule déterminée par le brin ADart et l'orbite AOrbit sont marqués avec la marque AMarkNumber.

Parameters:
ADart Un brin quelconque de la carte
AOrbit Une orbite quelconque
AMarkNumber Un numéro de marque
Returns:
Un booléen

Definition at line 378 of file gmg-selection.cc.

void CGMapGeneric::markAdd ( int  AMarkNumberFrom,
int  AMarkNumberTo,
CDart ADart,
TOrbit  AOrbit 
)

Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo à vrai si la marque AMarkNumberFrom est positionnée à vrai.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
ADart Un brin de la carte
AOrbit Une orbite quelconque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 279 of file gmg-selection.cc.

void CGMapGeneric::markAdd ( int  AMarkNumberFrom,
int  AMarkNumberTo 
)

Pour chacun des brins de la carte, positionne la marque AMarkNumberTo à vrai si la marque AMarkNumberFrom est positionnée à vrai.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 268 of file gmg-selection.cc.

void CGMapGeneric::markAnd ( int  AMarkNumberFrom,
int  AMarkNumberTo,
CDart ADart,
TOrbit  AOrbit 
)

Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo à faux si la marque AMarkNumberFrom est positionnée à faux.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
ADart Un brin de la carte
AOrbit Une orbite quelconque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 305 of file gmg-selection.cc.

void CGMapGeneric::markAnd ( int  AMarkNumberFrom,
int  AMarkNumberTo 
)

Pour chacun des brins de la carte, positionne la marque AMarkNumberTo à faux si la marque AMarkNumberFrom est positionnée à faux.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 294 of file gmg-selection.cc.

bool CGMapGeneric::markBorders ( int  AMarkNumber  ) 

Marque les bords incidents aux brins sélectionnés. La dimension des bord est automatiquement déterminée avec la méthode 'getBorderDimension'.

Parameters:
AMarkNumber Un numéro de marque
Returns:
Un booléen indiquant si des bords ont été sélectionnés

Definition at line 78 of file gmg-border.cc.

bool CGMapGeneric::markBorders ( int  AMarkNumber,
int  ADim 
)

Marque les bords de dimension ADim incidents aux brins sélectionnés.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (0, 1, 2 ou 3)
Returns:
Un booléen indiquant si des bords ont été sélectionnés

Definition at line 39 of file gmg-border.cc.

void CGMapGeneric::markCellsToBeExtrudedByNormal ( int  ADim,
int  AMarkNumberSrce,
int  AMarkNumberDest 
) [protected, virtual]

Marque entièrement les cellules de dimension ADim qui doivent être extrudées. Cette méthode ne fait rien d'autre qu'appeler 'markIncidentCells', mais elle peut être surchargée par les classes qui dérivent de CGMapGeneric pour ne marquer que la moitié des cellules à extruder, ceci afin de résoudre les problèmes d'orientation de l'extrusion dans le cadre de l'extrusion selon un vecteur normal.

Parameters:
ADim Une dimension (0, 1 ou 2)
AMarkNumberSrce Un numéro de marque source
AMarkNumberDest Un numéro de marque destination

Reimplemented in GMap3d::CGMapVertex.

Definition at line 355 of file gmg-extrusion.cc.

void CGMapGeneric::markCellsToBeIsolated ( int  AMarkSource,
int  ADim,
int  AMarkDestination,
int  AMarkTreated = -1 
) [protected]

Marque avec la marque AMarkDestination tous les brins de chaque cellule de dimension ADim qui peut être isolée (c'est-à-dire qui est ADim-cousue et de degré inférieur ou égal à 2) et qui est incidente à des cellules de dimension ADim+1 dont un brin au moins est marqué avec la marque AMarkSource. Voir le corps de la méthode pour plus de détail.

La méthode est utilisée par: mergeMarkedCells(int, int, bool) et intuitiveMergeMarkedCells(int, bool).

Parameters:
AMarkSource Un numéro de marque
ADim Une dimension (celle des cellules à isoler)
AMarkDestination Un numéro de marque
AMarkTreated Un numéro de marque indiquant (si positif ou nul) les brins déjà traités, et dont il ne faut donc pas se préoccuper
Aucun brin n'est marqué avec la marque AMarkDestination 0 <= ADim <= 2

Definition at line 230 of file gmg-merge.cc.

void CGMapGeneric::markCopy ( int  AMarkNumberFrom,
int  AMarkNumberTo 
)

Pour chacun des brins de la carte, positionne la marque AMarkNumberTo sur le même état que la marque AMarkNumberFrom.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 246 of file gmg-selection.cc.

void CGMapGeneric::markCopy ( int  AMarkNumberFrom,
int  AMarkNumberTo,
CDart ADart,
TOrbit  AOrbit 
)

Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo sur le même état que la marque AMarkNumberFrom.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
ADart Un brin de la carte
AOrbit Une orbite quelconque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 254 of file gmg-selection.cc.

int CGMapGeneric::markIncidentCells ( TOrbit  AOrbit,
int  AMarkNumber 
)

Marque entièrement les cellules correspondant à l'orbite AOrbit dont un brin au moins est marqué.

Parameters:
AOrbit Une orbite quelconque
AMarkNumber Un numéro de marque
Returns:
Le nombre de cellules marquées

Definition at line 132 of file gmg-selection.cc.

int CGMapGeneric::markIncidentCells ( TOrbit  AOrbit,
int  AMarkNumberSrce,
int  AMarkNumberDest 
)

Marque avec la marque AMarkNumberDest toutes les cellules correspondant à l'orbite AOrbit dont un brin au moins est marqué avec la marque AMarkNumberSrce.

Parameters:
AOrbit Une orbite quelconque
AMarkNumberSrce Un numéro de marque
AMarkNumberDest Un numéro de marque
Returns:
Le nombre de cellules marquées
AMarkNumberSrce!=AMarkNumberDest

Definition at line 103 of file gmg-selection.cc.

void CGMapGeneric::markInterior ( CDart ADart,
int  ADimension,
int  AMarkBorder,
int  AMarkInterior = -1 
)

Marque tous les brins de la carte qui sont à l'intérieur d'une région dont le bord est donné par les brins marqués avec la marque AMarkBorder. ADart est un brin situé à l'intérieur de la région. Les brins sont marqués avec la marque AMarkInterior. Les brins du bord ne sont pas marqués.

Parameters:
ADart Un brin de la carte
ADimension Une dimension (2 ou 3)
AMarkBorder Un numéro de marque
AMarkInterior Un numéro de marque

Definition at line 179 of file gmg-selection.cc.

void CGMapGeneric::markIntersection ( int  AMarkNumber1,
int  AMarkNumber2,
TOrbit  AOrbit1,
TOrbit  AOrbit2,
int  AMarkResult,
bool  AInitialMarkIncidentCells = false 
)

Cette méthode permet de sélectionner une partie du bord d'une cellule en calculant l'intersection entre cette cellule et une autre qui lui est adjacente.

Parameters:
AMarkNumber1 un numéro de marque
AMarkNumber2 un numéro de marque différent de AMarkNumber1
AOrbit1 une orbite quelconque (orbite de sélection)
AOrbit2 une orbite quelconque (orbite du résultat)
AMarkResult la marque où est stocké le résultat
AInitialMarkIncidentCells un booléen indiquant s'il faut initialiser les marquages

Definition at line 215 of file gmg-selection.cc.

void CGMapGeneric::markMove ( int  AMarkNumberFrom,
int  AMarkNumberTo,
CDart ADart,
TOrbit  AOrbit 
)

Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo à vrai si la marque AMarkNumberFrom est positionnée à vrai, puis positionne la marque AMarkNumberFrom à faux.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
ADart Un brin de la carte
AOrbit Une orbite quelconque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 360 of file gmg-selection.cc.

void CGMapGeneric::markMove ( int  AMarkNumberFrom,
int  AMarkNumberTo 
)

Pour chacun des brins de la carte, positionne la marque AMarkNumberTo à vrai si la marque AMarkNumberFrom est positionnée à vrai, puis positionne la marque AMarkNumberFrom à faux.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 346 of file gmg-selection.cc.

void CGMapGeneric::markOrbit ( CDart ADart,
TOrbit  AOrbit,
int  AMarkNumber 
)

Marque tous les brins de l'orbite AOrbit incidente à ADart en utilisant la marque numéro AMarkNumber.

Parameters:
ADart Un brin quelconque
AOrbit Une orbite
AMarkNumber Un numéro de marque

Definition at line 28 of file gmg-selection.cc.

int CGMapGeneric::markRealFace ( CDart ADart,
int  AMark,
int  AMark2 
)

Parameters:
ADart Un brin de la carte qui doit appartenir à une arête non fictive
AMark la marque pour les arêtes fictives
AMark2 la marque dont on veut marquer les faces réelles
Returns:
le nombre de brins marqués
Marque avec AMark2 la face réelle incidente à ADart (cad la face obtenue en sautant les arêtes fictives)

Definition at line 225 of file gmg-fictive-edge.cc.

void CGMapGeneric::markSub ( int  AMarkNumberFrom,
int  AMarkNumberTo,
CDart ADart,
TOrbit  AOrbit 
)

Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo à faux si la marque AMarkNumberFrom est positionnée à vrai.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
ADart Un brin de la carte
AOrbit Une orbite quelconque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 331 of file gmg-selection.cc.

void CGMapGeneric::markSub ( int  AMarkNumberFrom,
int  AMarkNumberTo 
)

Pour chacun des brins de la carte, positionne la marque AMarkNumberTo à faux si la marque AMarkNumberFrom est positionnée à vrai.

Parameters:
AMarkNumberFrom Un numéro de marque
AMarkNumberTo Un numéro de marque
AMarkNumberFrom!=AMarkNumberTo

Definition at line 320 of file gmg-selection.cc.

void CGMapGeneric::merge ( CDart ADart1,
CDart ADart2,
int  ADim,
bool  ADeleteDarts = false 
)

Fusionne les deux cellules de dimension ADim désignées par les brins ADart1 et ADart2.

Parameters:
ADart1 Un pointeur sur un premier brin
ADart2 Un pointeur sur un deuxième brin
ADim Une dimension
ADeleteDarts Un booléen indiquant s'il faut supprimer les brins correspondant à la cellule de dimension ADim-1 située entre les cellules de dimension ADim incidentes à ADart1 et ADart2
canMerge(ADart1, ADart2, ADim)

Definition at line 89 of file gmg-merge.cc.

int CGMapGeneric::mergeMarkedCells ( int  AMarkNumber,
int  ADim,
bool  ADeleteDarts = false 
)

Fusionne lorsque cela est possible (avec leur cellule incidente) les cellules dont un brin au moins est marqué. Les cellules de dimension ADim-1 qui doivent être isolées sont déterminées par la méthode protégée 'markCellsToBeIsolated'.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (1, 2 ou 3)
ADeleteDarts Un booléen indiquant si la fusion doit se faire en supprimant des brins
Returns:
Le nombre de fusions effectuées

Definition at line 348 of file gmg-merge.cc.

int CGMapGeneric::multiSew ( CDart ADart1,
int  AMarkNumber1,
CDart ADart2,
int  ADimension 
)

Essaie de coudre par alpha-ADimension des cellules de dimension ADimension, à partir des brins ADart1 et ADart2. Le bord de dimension ADimension incident à chaque brin de départ est parcouru en parallèle en se limitant du premier côté à la région délimitée par la marque.

Parameters:
ADart1 Un brin de la carte
AMarkNumber1 Un numéro de marque
ADart2 Un brin de la carte
ADimension Une dimension de couture (2 ou 3)
Returns:
Le nombre de coutures qui ont été effectuées

Definition at line 52 of file gmg-sew.cc.

CDart * CGMapGeneric::prolongPolyline ( CDart ADart  ) 

Prolonge une polyligne (en rajoutant une arête à son bout). Si ADart vaut NULL, crée un premier brin d'une nouvelle polyligne.

Parameters:
ADart Un brin constituant le bout d'une polyligne existante
Returns:
Le nouveau bout de la polyligne
isIsolatedPolyline(CDart)

Definition at line 99 of file gmg-polyline.cc.

CDart * CGMapGeneric::quadrangulateFace ( CDart ADart,
bool  AInsertVertices = true 
) [virtual]

Quadrangule la face incidente à ADart.

Si AInsertVertices vaut 'vrai', un sommet est inséré sur chaque arête de la face avant d'effectuer la quadrangulation.

Si AInsertVertices vaut 'faux', la quadrangulation est directement effectuée. Dans ce cas, il faut que le nombre d'arêtes qui composent la face soit pair. Un sommet sur deux de la face est modifié. Celui incident à ADart ne l'est pas. Si la face est ouverte, selon la position de ADart sur celle-ci, les arêtes qui sont au bout de la polyligne seront ou non sur une face ouverte.

Parameters:
ADart Un brin de la carte
AInsertVertices Un booléen indiquant s'il faut insérer des sommets sur les arêtes de la face avant d'effectuer la quadrangulation
Returns:
Un brin du sommet topologique créé

Reimplemented in GMap3d::CGMapVertex.

Definition at line 35 of file gmg-quadrangulation.cc.

int CGMapGeneric::quadrangulateMarkedFaces ( int  AMarkNumber,
bool  AInsertVertices = true 
)

Quadrangule les faces dont un brin au moins est marqué. Pour plus d'informations sur le paramètre AInsertVertices, se reporter à la méthode 'quadrangulateFace'.

Parameters:
AMarkNumber Un numéro de marque
AInsertVertices Un booléen indiquant s'il faut insérer des sommets sur les arêtes des faces avant d'effectuer la quadrangulation
Returns:
Le nombre de quadrangulations effectuées

Definition at line 131 of file gmg-quadrangulation.cc.

void CGMapGeneric::remove ( CDart ADart,
int  ADim,
bool  ADeleteDarts = false 
)

Supprime la cellule de dimension ADim désignées par le brin ADart.

Parameters:
ADart Un pointeur sur brin
ADim Une dimension
ADeleteDarts Un booléen indiquant s'il faut supprimer les brins correspondant à la cellule supprimée.
canRemove(ADart, ADim)

Definition at line 49 of file gmg-removal.cc.

int CGMapGeneric::removeDanglingEdges (  ) 

Supprime toutes les arêtes pendantes de la carte.

Returns:
Le nombre d'arêtes pendantes détruites.

Definition at line 120 of file gmg-simplification.cc.

int CGMapGeneric::removeMarkedCells ( int  AMarkNumber,
int  ADim,
bool  ADeleteDarts = false 
)

Supprime lorsque cela est possible les cellules dont un brin au moins est marqué.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (0, 1 ou 2)
ADeleteDarts Un booléen indiquant si la suppression doit se faire en supprimant des brins
Returns:
Le nombre de suppressions effectuées

Definition at line 99 of file gmg-removal.cc.

int CGMapGeneric::removeMarkedDanglingEdges ( int  AMarkNumber  ) 

Supprime toutes les arêtes pendantes dont un brin au moins est marqué.

Returns:
Le nombre d'arêtes pendantes détruites.

Definition at line 60 of file gmg-simplification.cc.

int CGMapGeneric::removeMarkedEdgesWithoutDisconnection ( int  AMarkNumber  ) 

Supprime lorsque cela est possible les arêtes dont un brin au moins est marqué, tout en évitant les déconnexions. Marche pour une surface avec des faces fictives ATTENTION : Pour le moment, version en O(n²) avec n nombre d'arêtes... TODO : Améliorer la complexité (par exemple avec des arbre union-find, mais aussi en décallant les arêtes fictives ?)

Parameters:
AMarkNumber Un numéro de marque
Returns:
Le nombre de suppressions effectuées

Definition at line 327 of file gmg-removal.cc.

int CGMapGeneric::removeMarkedEdgesWithoutDisconnectionForSurface ( int  AMarkNumber  ) 

Supprime lorsque cela est possible les arêtes dont un brin au moins est marqué, tout en évitant les déconnexions. Marche uniquement pour une surface (tout les brins 3-libres)

Definition at line 232 of file gmg-removal.cc.

int CGMapGeneric::removeMarkedFacesButKeepBalls ( int  AMarkNumber  ) 

Supprime lorsque cela est possible les faces dont un brin au moins est marqué, tout en évitant de créer des volumes non homéomorphes à des boules. A la fin, démarque tout, sauf les arêtes de degré supérieur à 2. ATTENTION : Pour le moment, version en O(n²) avec n nombre de faces... TODO : Améliorer la complexité (par exemple avec des arbre union-find, mais aussi en décallant les faces fictives ?)

Parameters:
AMarkNumber Un numéro de marque
Returns:
Le nombre de suppressions effectuées

Definition at line 489 of file gmg-removal.cc.

int CGMapGeneric::removeMarkedVerticesWithFictiveEdgeShifting ( int  AMarkNumber  ) 

Supprime lorsque cela est possible les sommets dont un brin au moins est marqué, tout en décallant les arêtes fictives.

Parameters:
AMarkNumber Un numéro de marque
Returns:
Le nombre de suppressions effectuées

Definition at line 158 of file gmg-removal.cc.

void CGMapGeneric::saveAlphaInDirectInfo ( int  AAlphaIndex,
int  ADirectInfoIndex 
)

Pour chaque brin b de la carte, copie la valeur de l'image par alpha AAlphaIndex de b dans son champ direcInfo d'indice ADirectInfoIndex.

Remarque: La méthode 'getDirectInfoAsDart' permet de récupérer aisément les valeurs sauvées.

Parameters:
AAlphaIndex Une dimension (0, 1, 2 ou 3)
ADirectInfoIndex Un indice de champ directInfo

Definition at line 133 of file gmg-direct-info.cc.

void CGMapGeneric::sewDuplicatedDarts ( CCoverage ACoverage,
int  AMarkNumber,
int  ADirectInfoIndex,
bool  A0Sew = true,
bool  A1Sew = true,
bool  A2Sew = true,
bool  A3Sew = true 
) [protected]

Coud les brins dupliqués entre eux. Les brins traités sont ceux parcourus qui sont marqués avec la marque AMarkNumber.

Parameters:
ACoverage Un itérateur quelconque
AMarkNumber Un numéro de marque
ADirectInfoIndex Un indice de champ directInfo
A-Sew Des booléens indiquant quelles coutures doivent être traitées

Definition at line 130 of file gmg-duplication.cc.

void CGMapGeneric::shiftAllAdjacentFictiveEdges ( CDart ADart,
int  AMark 
)

Definition at line 70 of file gmg-fictive-edge.cc.

unsigned int CGMapGeneric::shiftAllEdgesIncidentToVertex ( CDart ADart  ) 

Definition at line 53 of file gmg-fictive-edge.cc.

void CGMapGeneric::shiftAllFictiveEdges ( CDart ADart,
int  AMark 
)

Definition at line 84 of file gmg-fictive-edge.cc.

void CGMapGeneric::shiftAllFictiveEdgesAroundEdge ( CDart ADart,
int  AMark 
)

Definition at line 91 of file gmg-fictive-edge.cc.

void CGMapGeneric::shiftAllFictiveFaces ( CDart ADart,
int  AFictiveFaceMark,
int  ADeleteMark 
)

Definition at line 206 of file gmg-fictive-face.cc.

void CGMapGeneric::shiftOneFictiveEdge ( CDart ADart,
CDart ADart2 
) [virtual]

Definition at line 29 of file gmg-fictive-edge.cc.

void CGMapGeneric::shiftOneFictiveFace ( CDart ADart,
int  AFictiveFaceMark,
int  ADeleteMark 
) [virtual]

Definition at line 73 of file gmg-fictive-face.cc.

void CGMapGeneric::shiftOneFictiveFaceAlongDanglingEdge ( CDart ADart,
int  AFictiveFaceMark,
int  ADeleteMark 
) [virtual]

Definition at line 29 of file gmg-fictive-face.cc.

CDart * CGMapGeneric::shortenPolyline ( CDart ADart  ) 

Détruit la dernière arête (dont le brin 0-libre est donné par ADart) d'une polyligne.

Parameters:
ADart Le bout d'une polyligne
Returns:
Le nouveau bout de la polyligne
isIsolatedPolyline(ADart)

Definition at line 126 of file gmg-polyline.cc.

void CGMapGeneric::stopUp ( CDart ADart,
int  ADim 
) [virtual]

Bouche le bord de dimension ADim incident au brin ADart avec une cellule de dimension ADart. La fonction est virtuelle afin de pouvoir être surchargée pour gérer les problèmes de plongement. Par exemple, dans le cas de sommets plongés le bouchage d'un 0-bord entraîne la création d'un nouveau sommet topologique.

Parameters:
ADart Un brin quelconque d'un bord de dimension ADim
ADim Une dimension

Reimplemented in GMap3d::CGMapVertex.

Definition at line 28 of file gmg-stop-up.cc.

int CGMapGeneric::stopUpMarkedBorders ( int  AMarkNumber,
int  ADim 
)

Bouche les bords de dimension ADim incident aux brins sélectionnés.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension
Returns:
Le nombre de bords qui ont été bouchés

Definition at line 68 of file gmg-stop-up.cc.

int CGMapGeneric::thickenMarkedDarts ( int  AMarkNumber,
int  ADirectInfoIndex1,
int  ADirectInfoIndex2 
) [virtual]

Épaissit les brins marqués avec la marque AMarkNumber. Chaque brin marqué est dupliqué deux fois et ses champs directInfo[ADirectInfoIndex1] et directInfo[ADirectInfoIndex2] pointent vers les brins dupliqués (ceci afin que les classes descendant de CGMapGeneric puissent effectuer la mise à jour des plongements).

Remarque: À l'issue de la méthode, pour chaque brin B marqué avec la marque AMarkNumber on alpha aussi:

B->getDirectInfo(ADirectInfoIndex1) ->getDirectInfo(ADirectInfoIndex1) = B

B->getDirectInfo(ADirectInfoIndex1) ->getDirectInfo(ADirectInfoIndex2) = NULL

B->getDirectInfo(ADirectInfoIndex2) ->getDirectInfo(ADirectInfoIndex1) = NULL

B->getDirectInfo(ADirectInfoIndex2) ->getDirectInfo(ADirectInfoIndex2) = B

Parameters:
AMarkNumber Un numéro de marque
ADirectInfoIndex1 Un premier indice de champ directInfo à utiliser
ADirectInfoIndex2 Un second indice de champ directInfo à utiliser
Returns:
Le nombre de brins épaissis
Si i est une dimension (0, 1, 2 ou 3), si b est un brin i-cousu et si b et alpha(b,i) sont marqués, on alpha: alpha(b->getDirectInfo(ADirectInfoIndex1), i) = alpha(b, i)->getDirectInfo(ADirectInfoIndex2)

Definition at line 31 of file gmg-thickening.cc.

CDart * CGMapGeneric::topoExtrude ( CDart ADart,
int  ADim,
bool  AExtrusionWithAdjacentSews,
int  AMarkExtruded = -1,
int  ADirectInfoIndex = -1 
)

Extrude la cellule de dimension ADim incidente à ADart.

Si AMarkExtruded est positif ou nul et si la méthode 'getExtrusionWithAdacentSews' renvoie la valeur 'vrai', la cellule extrudée est cousue aux cellules adjacentes déjà extrudées. Si ADirectInfoIndex est positif ou nul, les cellules adjacentes sont déterminées à partir du champ directInfo correspondant (ce champ mémorise simplement l'image par alpha-ADim de chaque brin). Ceci est particulièrement utile pour la méthode 'extrudeByPath' lorsque le chemin est fermé ou lorsque le brin initial est au milieu du chemin. En effet, dans ce cas là les cellules sont isolées avant extrusion d'où l'impossibilité de retrouver les cellules adjacentes qui ont déjà été extrudées (voir la méthode 'extrudeByPath' pour plus d'informations).

Ces cellules de dimension ADim+1 peuvent facilement être repérées car les cellules de dimension ADim à partir desquelles on les alpha obtenues sont marquées avec la marque AMarkExtruded.

Parameters:
ADart Un brin de la carte
ADim Une dimension (0, 1 ou 2)
AExtrusionWithAdjacentSews Un booléen pour indiquer comment doit s'effectuer l'extrusion. Si vrai', les cellules adjacentes extrudées en parallèle sont cousues entre elles, sinon elles ne sont pas cousues entre elles
AMarkExtruded Un numéro de marque
ADirectInfoIndex Un indice de champ directInfo
Returns:
Un brin de la cellule créée, situé à l'opposé de ADart
canExtrudeCell(ADart, ADim)

Definition at line 85 of file gmg-extrusion.cc.

CDart * CGMapGeneric::triangulate ( CDart ADart,
int  ADim 
)

Triangule la cellule de dimension ADim incidente à ADart.

Parameters:
ADart Un brin de la carte
Returns:
Un brin du sommet topologique créé
ADim>1 et ADim<=3

Definition at line 132 of file gmg-triangulation.cc.

CDart * CGMapGeneric::triangulateEdge ( CDart ADart  )  [virtual]

Triangule l'arête incidente à ADart (la "coupe" en deux).

Parameters:
ADart Un brin de la carte
Returns:
Un brin du sommet topologique créé

Reimplemented in GMap3d::CGMapVertex.

Definition at line 28 of file gmg-triangulation.cc.

CDart * CGMapGeneric::triangulateFace ( CDart ADart  )  [virtual]

Triangule la face incidente à ADart.

Parameters:
ADart Un brin de la carte
Returns:
Un brin du sommet topologique créé

Reimplemented in GMap3d::CGMapVertex.

Definition at line 35 of file gmg-triangulation.cc.

int CGMapGeneric::triangulateMarkedCells ( int  AMarkNumber,
int  ADim 
)

Triangule les cellules de dimension ADim dont un brin au moins est marqué.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (1, 2 ou 3)
Returns:
Le nombre de triangulations effectuées

Definition at line 147 of file gmg-triangulation.cc.

CDart * CGMapGeneric::triangulateVolume ( CDart ADart  )  [virtual]

Triangule le volume incident à ADart.

Parameters:
ADart Un brin de la carte
Returns:
Un brin du sommet topologique créé

Reimplemented in GMap3d::CGMapVertex.

Definition at line 85 of file gmg-triangulation.cc.

bool CGMapGeneric::turnAroundVertex ( CDart ADart,
bool  ANoCrossedVolume,
int  AMarkNumber,
CDart *&  ANext,
bool &  ACrossed 
) [protected]

Cette méthode est utilisée par les méthodes 'canInsertFace' et 'insertFace'. Elle permet de se déplacer le long des arêtes marquées d'une volume. Partant d'un brin donné elle tourne autour d'un sommet (orbite 12) jusqu'à trouver s'il existe un brin marqué d'une autre arête que celle sur laquelle se trouve ADart. Les deux derniers paramètres sont des paramètres en sortie.

Parameters:
ADart Un brin de la carte, par lequel on est arrivé sur ce sommet
ANoCrossedVolume Un booléen indiquant si l'insertion de face doit ne pas entraîner l'apparition d'un volume croisé (voir la méthode 'insertFace')
AMarkNumber Un numéro de marque permettant de repérer les brins sélectionnés
ANext Un pointeur sur un brin (paramètre en sortie uniquement)
ACrossed Un booléen indiquant si le brin ANext est tel que la face à insérer est croisée (paramètre en sortie uniquement)
Returns:
Un booléen indiquant si le sommet est valide, c'est-à-dire si au plus de 2 des arêtes qui lui sont incidentes sont sélectionnées

Definition at line 236 of file gmg-insertion.cc.

void CGMapGeneric::unmarkAll ( int  AMarkNumber  ) 

Démarque tous les brins de la carte pour la marque numéro AMarkNumber.

Parameters:
AMarkNumber Un numéro de marque

Definition at line 95 of file gmg-selection.cc.

void CGMapGeneric::unmarkOrbit ( CDart ADart,
TOrbit  AOrbit,
int  AMarkNumber 
)

Démarque tous les brins de l'orbite AOrbit incidente à ADart pour la marque numéro AMarkNumber.

Parameters:
ADart Un brin quelconque
AOrbit Une orbite
AMarkNumber Un numéro de marque

Definition at line 82 of file gmg-selection.cc.

int CGMapGeneric::unmarkRealFace ( CDart ADart,
int  AMark,
int  AMark2 
)

Parameters:
ADart Un brin de la carte qui doit appartenir à une arête non fictive
AMark la marque pour les arêtes fictives
AMark2 la marque dont on veut démarquer les faces réelles
Returns:
le nombre de brins démarqués
Démarque avec AMark2 la face réelle incidente à ADart (cad la face obtenue en sautant les arêtes fictives)

Definition at line 241 of file gmg-fictive-edge.cc.

int CGMapGeneric::unsewMarkedCells ( int  AMarkNumber,
int  ADim 
)

Découd selon la dimension ADim tous les brins de la cartes marqués avec la marque numéro AMarkNumber.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension
Returns:
Le nombre de décousures effectuées

Definition at line 28 of file gmg-unsew.cc.


The documentation for this class was generated from the following files:

Generated on Tue Jul 7 15:20:29 2009 for Moka gmapkernel by  doxygen 1.5.8