Moka kernel
|
#include <g-map-vertex.hh>
Public Member Functions | |
CGMapVertex () | |
virtual | ~CGMapVertex () |
void | empty () |
virtual CDart * | newDart () |
virtual void | delDart (CDart *ADart) |
CDart * | addMapDart () |
CDartVertex * | addMapDart (const CVertex &AVertex) |
TCoordinate | getBurstCoef (int ADim) const |
void | setBurstCoef (int ADim, TCoordinate ACoef) |
CAttributeVertex * | findVertex (CDart *ADart) |
CAttributeVertex * | getVertex (CDart *ADart) const |
void | setVertex (CDart *ADart, const CVertex &AVertex) |
void | setVertex (CDart *ADart, CAttributeVertex *AVertex) |
void | updateVertex (CDart *ADart, const CVertex &AVertex) |
void | delVertex (CDart *ADart) |
CAttributeVertex * | removeVertex (CDart *ADart) |
CVertex & | getBurstVertex (CDart *ADart) const |
void | setBurstVertex (CDart *ADart, const CVertex &AVertex) |
CVertex | computeBurstExtremity (CDart *ADart) const |
CAttributeVertex * | getDirectInfoAsAttributeVertex (CDart *ADart, int ADirectInfoIndex) const |
CVertex * | getDirectInfoAsVertex (CDart *ADart, int ADirectInfoIndex) const |
TCoordinate * | getDirectInfoAsCoord (CDart *ADart, int ADirectInfoIndex) const |
CDart * | prolongPolyline (CDart *ADart, const CVertex &AVertex) |
bool | isPlanarPolyline (CDart *ADart) |
bool | markNonPlanarPolylines (int AMarkNumber) |
CDart * | createPolyline (const std::vector< CVertex > &AVector) |
CDart * | createPole (int An, const CVertex &AVertex) |
CDart * | createOpenedPole (int An, const CVertex &AVertex) |
CDart * | createRegularPolygon (int An) |
void | createSphere (int AMeridians, int AParallels, CDart **ASouthPole, CDart **ANorthPole) |
CDart * | createSphere (int AMeridians, int AParallels) |
void | createCylinder (int AMeridians, int AParallels, CDart **ABorder1, CDart **ABorder2, bool AClose1=true, bool AClose2=true) |
CDart * | createCylinder (int AMeridians, int AParallels, bool AClose1=true, bool AClose2=true) |
void | createPyramid (int AMeridians, int AParallels, CDart **ABaseDart, CDart **APoleDart, bool ACloseBase=true) |
CDart * | createPyramid (int AMeridians, int AParallels, bool ACloseBase=true) |
void | createTorus (int AMeridians, int AParallels, TCoordinate ARadiusProportion, CDart **AEquator) |
CDart * | createTorus (int AMeridians, int AParallels, TCoordinate ARadiusProportion) |
void | createSquareIMeshed (int ASx, int ASy, int AMeshDimension, CDart *ASquareCorners[2][2]) |
CDart * | createSquareIMeshed (int ASx, int ASy, int AMeshDimension) |
void | createCubeIMeshed (int ASx, int ASy, int ASz, int AMeshDimension, bool ACreatedFaces[3][2], CDart *AFacesCorners[3][2][2][2]) |
void | createCubeIMeshed (int ASx, int ASy, int ASz, int AMeshDimension, bool ACreatedFaces[3][2], CDart **ADart1, CDart **ADart2) |
void | computeRegressionLine (int AMarkNumber, CVertex *ABarycenter, CVertex *ADirection) |
void | computeRegressionPlane (int AMarkNumber, TCoordinate *AA, TCoordinate *AB, TCoordinate *AC, TCoordinate *AD) |
bool | canPlate (CDart *ADart1, CDart *ADart2) |
int | getPlateDimension (CDart *ADart1, CDart *ADart2) |
void | plate (CDart *ADart1, CDart *ADart2, int ADimbool, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true) |
bool | intuitivePlate (CDart *ADart1, CDart *ADart2, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true) |
void | borderPlate (CDart *ADart1, CDart *ADart2, int ADim, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true) |
void | geoSew (CDart *ADart1, CDart *ADart2, int ADim, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true) |
bool | intuitiveGeoSew (CDart *ADart1, CDart *ADart2, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true) |
void | geoBorderSew (CDart *ADart1, CDart *ADart2, int ADim, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true) |
bool | intuitiveGeoBorderSew (CDart *ADart1, CDart *ADart2, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true) |
CDart * | insertVertex (CDart *ADart) |
int | deleteNullLengthEdges () |
int | deleteMarkedNullLengthEdges (int AMarkNumber) |
CDart * | materializeBarycenter (int AMarkNumber) |
CDart * | materializeAxe (CDart *ADart1, CDart *ADart2) |
CDart * | materializePlane (CDart *ADart1, CDart *ADart2, CDart *ADart3) |
CDart * | materializeNormalVector (CDart *ADart) |
CDart * | materializeNormalPlane (CDart *ADart1, CDart *ADart2) |
CDart * | materializeReferential () |
CDart * | importOff2D (std::istream &AStream) |
CDart * | importOff3D (std::istream &AStream) |
CDart * | addEdgeOFF (std::vector< CVertex > &AInitVertices, unsigned long int AV1, unsigned long int AV2, int AIndex, CDart *APrec) |
void | linkFaceAlpha2OFF (std::vector< std::list< CDart * > > &ATestVertices, int AIndex, CDart *ADart) |
int | getOffDimension (const char *AFilename) |
CDart * | importOff (const char *AFilename) |
bool | exportOff2D (std::ostream &AStream) |
bool | exportOff3D (std::ostream &AStream) |
bool | exportOff (const char *AFilename) |
bool | exportOff3D (const char *AFilename) |
int | dualOfMarkedDarts (int ADim, int AMarkNumber) |
void | stopUp (CDart *ADart, int ADim) |
CDart * | triangulateEdge (CDart *ADart) |
CDart * | triangulateFace (CDart *ADart) |
CDart * | triangulateVolume (CDart *ADart) |
bool | shouldSwapEdge (CDart *AEdge, int AVertexDI=-1) |
bool | swapEdge (CDart *AEdge, int AVertexDI=-1) |
void | triangulateGeoFace (CDart *AFace, int ANewEdgesMark=-1, int AVertexDI=-1) |
void | triangulateMarkedFaces (int AMark, int ANewEdgesMark=-1, int AVertexDI=-1) |
bool | isPointInTriangle (const CVertex &APoint, const CVertex &AVertex1, const CVertex &AVertex2, const CVertex &AVertex3, const CVertex &ANormal) |
TCoordinate | getTriangleCoef (const CVertex &AVertex1, const CVertex &AVertex2, const CVertex &AVertex3) |
CDart * | quadrangulateFace (CDart *ADart, bool AInsertVertices=true) |
void | allocCoordToDirectInfo (int AMarkNumber, int ADirectInfoIndex, TOrbit AOrbitUsed=ORBIT_NONE) |
void | allocCoordToDirectInfo (CDart *ADart, TOrbit AOrbit, int ADirectInfoIndex, TOrbit AOrbitUsed=ORBIT_NONE) |
void | duplicateVertexToDirectInfo (int AMarkNumber, int ADirectInfoNumber) |
void | deleteDuplicatedVertex (int ADirectInfoNumber) |
void | updateDirectInfoWithVertex (int ADirectInfoNumber) |
void | pointDirectInfoToAttributeVertex (int ADirectInfoIndex) |
void | pointDirectInfoToAttributeVertex (int ADirectInfoIndex, CDart *ADart) |
void | pointDirectInfoToAttributeVertex (int ADirectInfoIndex, CDart *ADart, TOrbit AOrbit) |
void | applyMatrix (const CTransformationMatrix &AMatrix, CDart *ADart, TOrbit AOrbit, int ADirectInfoVertex=-1) |
void | applyMatrix (const CTransformationMatrix &AMatrix, int AMarkNumber, int ADirectInfoVertex=-1) |
void | computeDistanceToVertex (int AMarkNumber, int ADirectInfoIndex, const CVertex &AVertex) |
void | computeDistanceToLine (int AMarkNumber, int ADirectInfoIndex, const CVertex &ALineVertex, const CVertex &ALineDirection) |
void | computeDistanceToPlane (int AMarkNumber, int ADirectInfoIndex, const CVertex &APlaneVertex, const CVertex &APlaneNormal) |
void | normalizeParameter (int AMarkNumber, int ADirectInfoIndex, TCoordinate AMin, TCoordinate AMax) |
void | applyFunctionOnParameter (int AMarkNumber, int ADirectInfoIndex, TFunctionType AFunctionType) |
void | translate (int AMarkNumber, const CVertex &AVector, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | rotate (int AMarkNumber, const CVertex &AAxeVertex, const CVertex &AAxeDirection, TCoordinate AAngle, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | scale (int AMarkNumber, const CVertex &ACenter, const CVertex &ACoef, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | scale (int AMarkNumber, const CVertex &ACenter, TCoordinate ACoef, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | axialScale (int AMarkNumber, const CVertex &AAxeVertex, const CVertex &AAxeDirection, TCoordinate ACoef, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | planarScale (int AMarkNumber, const CVertex &APlaneVertex, const CVertex &APlaneNormal, TCoordinate ACoef, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | orthoProjectOnPlane (int AMarkNumber, TCoordinate AA, TCoordinate AB, TCoordinate AC, TCoordinate AD) |
int | thickenMarkedDarts (int AMarkNumber, TCoordinate AExtrusionCoef) |
int | mergeMarkedColinearEdges (int AMarkNumber, bool ADeleteDarts) |
int | mergeMarkedCoplanarFaces (int AMarkNumber, bool ADeleteDarts) |
int | mergeMarkedAlignedCells (int ADim, int AMarkNumber, bool ADeleteDarts) |
unsigned int | simplify3DObject (int AMark0, int AMark1, int AMark2=-1) |
unsigned int | simplify2DObject (int AMark0, int AMark1) |
unsigned int | simplify2DObject (unsigned int optosimplify=EDGE_REMOVAL|VERTEX_REMOVAL|EDGE_CONTRACTION|FACE_CONTRACTION) |
unsigned int | simplify2DObjectRemoval (unsigned int optosimplify) |
unsigned int | simplify2DObjectContraction (unsigned int optosimplify) |
unsigned int | simplify3DObject (unsigned int optosimplify=FACE_REMOVAL|EDGE_REMOVAL|VERTEX_REMOVAL|EDGE_CONTRACTION|FACE_CONTRACTION|VOLUME_CONTRACTION) |
unsigned int | simplify3DObjectRemoval (unsigned int optosimplify) |
unsigned int | simplify3DObjectContraction (unsigned int optosimplify) |
bool | exportToPov (std::ofstream &AOutStream) |
int | findMotif (CGMapVertex *AMap, unsigned int *ANbMatched=NULL) |
unsigned int | countNumberOfMotifs (CGMapVertex *AMap, unsigned int *ANbMatched=NULL) |
bool | findMotifFrom (CDart *AFromDart, unsigned int AMarkTreated, unsigned int AIndex, CGMapVertex *AMap, CDart *ADestDart, unsigned int AMarkTreated2, unsigned int *ANbMatched=NULL) |
void | unmarkMotifMark (CDart *ADart, int AMark, int AIndex, CGMapVertex *AMap, CDart *ADart2, int AMark2) |
Public Member Functions inherited from GMap3d::CGMapGeneric | |
CGMapGeneric () | |
virtual | ~CGMapGeneric () |
CDart * | alpha01 (CDart *ADart) const |
CDart * | alpha010 (CDart *ADart) const |
CDart * | alpha0101 (CDart *ADart) const |
CDart * | alpha0101210 (CDart *ADart) const |
CDart * | alpha01010 (CDart *ADart) const |
CDart * | alpha01021 (CDart *ADart) const |
CDart * | alpha0102101 (CDart *ADart) const |
CDart * | alpha010212 (CDart *ADart) const |
CDart * | alpha012 (CDart *ADart) const |
CDart * | alpha0121 (CDart *ADart) const |
CDart * | alpha0123 (CDart *ADart) const |
CDart * | alpha012321 (CDart *ADart) const |
CDart * | alpha02 (CDart *ADart) const |
CDart * | alpha020 (CDart *ADart) const |
CDart * | alpha021 (CDart *ADart) const |
CDart * | alpha0210 (CDart *ADart) const |
CDart * | alpha02101 (CDart *ADart) const |
CDart * | alpha02121 (CDart *ADart) const |
CDart * | alpha023 (CDart *ADart) const |
CDart * | alpha03 (CDart *ADart) const |
CDart * | alpha030 (CDart *ADart) const |
CDart * | alpha10 (CDart *ADart) const |
CDart * | alpha101 (CDart *ADart) const |
CDart * | alpha1010 (CDart *ADart) const |
CDart * | alpha10101 (CDart *ADart) const |
CDart * | alpha1010101 (CDart *ADart) const |
CDart * | alpha1012 (CDart *ADart) const |
CDart * | alpha10121 (CDart *ADart) const |
CDart * | alpha101201 (CDart *ADart) const |
CDart * | alpha1012101 (CDart *ADart) const |
CDart * | alpha101232 (CDart *ADart) const |
CDart * | alpha102 (CDart *ADart) const |
CDart * | alpha1021 (CDart *ADart) const |
CDart * | alpha12 (CDart *ADart) const |
CDart * | alpha121 (CDart *ADart) const |
CDart * | alpha1210 (CDart *ADart) const |
CDart * | alpha12101 (CDart *ADart) const |
CDart * | alpha1212 (CDart *ADart) const |
CDart * | alpha123 (CDart *ADart) const |
CDart * | alpha1232 (CDart *ADart) const |
CDart * | alpha12321 (CDart *ADart) const |
CDart * | alpha123210 (CDart *ADart) const |
CDart * | alpha13 (CDart *ADart) const |
CDart * | alpha20 (CDart *ADart) const |
CDart * | alpha201 (CDart *ADart) const |
CDart * | alpha21 (CDart *ADart) const |
CDart * | alpha210 (CDart *ADart) const |
CDart * | alpha2101 (CDart *ADart) const |
CDart * | alpha21012 (CDart *ADart) const |
CDart * | alpha210123 (CDart *ADart) const |
CDart * | alpha212 (CDart *ADart) const |
CDart * | alpha2121 (CDart *ADart) const |
CDart * | alpha23 (CDart *ADart) const |
CDart * | alpha231 (CDart *ADart) const |
CDart * | alpha2310 (CDart *ADart) const |
CDart * | alpha232 (CDart *ADart) const |
CDart * | alpha2321 (CDart *ADart) const |
CDart * | alpha232101 (CDart *ADart) const |
CDart * | alpha30 (CDart *ADart) const |
CDart * | alpha301 (CDart *ADart) const |
CDart * | alpha3012 (CDart *ADart) const |
CDart * | alpha30120 (CDart *ADart) const |
CDart * | alpha302 (CDart *ADart) const |
CDart * | alpha31 (CDart *ADart) const |
CDart * | alpha312 (CDart *ADart) const |
CDart * | alpha32 (CDart *ADart) const |
CDart * | alpha3201 (CDart *ADart) const |
CDart * | alpha321 (CDart *ADart) const |
CDart * | alpha321012 (CDart *ADart) const |
CDart * | alpha323 (CDart *ADart) const |
CDart * | getDirectInfoAsDart (CDart *ADart, int ADirectInfoIndex) |
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) |
void | initUnionFindTrees (int AIndex, TOrbit AOrbit) |
void | initTwoUnionFindTrees (int AIndex1, TOrbit AOrbit1, int AIndex2, TOrbit AOrbit2) |
void | initUnionFindTreesFaceVolume (int AIndexFace, int AIndexVol) |
void | initUnionFindTreesVerticesEdges (int AIndexVertex, int AIndexEdge) |
CDart * | findUnionFindTrees (CDart *ADart, int AIndex) |
void | mergeUnionFindTrees (CDart *ADart1, CDart *ADart2, int AIndex) |
CDart * | createTopoTriangle () |
CDart * | createTopoSquare () |
CDart * | createTopoPolygon (int An) |
CDart * | createTopoOpenedPole (int An) |
CDart * | createTopoPole (int An) |
void | createTopoTube (int AMeridians, int AParallels, CDart **ABorder1, CDart **ABorder2) |
CDart * | createTopoTube (int AMeridians, int AParallels) |
void | createTopoSphere (int AMeridians, int AParallels, CDart **ASouthPole, CDart **ANorthPole) |
CDart * | createTopoSphere (int AMeridians, int AParallels) |
void | createTopoCylinder (int AMeridians, int AParallels, CDart **ABorder1, CDart **ABorder2, bool AClose1=true, bool AClose2=true) |
CDart * | createTopoCylinder (int AMeridians, int AParallels, bool AClose1=true, bool AClose2=true) |
void | createTopoPyramid (int AMeridians, int AParallels, CDart **ABaseDart, CDart **APoleDart, bool ACloseBase=true) |
CDart * | createTopoPyramid (int AMeridians, int AParallels, bool ACloseBase=true) |
void | createTopoTorus (int AMeridians, int AParallels, CDart **AEquator) |
CDart * | createTopoTorus (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) |
CDart * | createTopoMesh1 (int ASx, CDart *AModel=NULL) |
void | createTopoMesh2 (int ASx, int ASy, CDart *AMesh2Corners[2][2], bool A3Sewed=false) |
CDart * | createTopoMesh2 (int ASx, int ASy, bool A3Sewed=false) |
void | createTopoMesh3 (int ASx, int ASy, int ASz, CDart *AMesh3Corners[2][2][2]) |
CDart * | createTopoMesh3 (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) |
CDart * | prolongPolyline (CDart *ADart) |
CDart * | shortenPolyline (CDart *ADart) |
CDart * | closePolyline (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) |
unsigned int | countNonLocalDegreeTwoEdges () |
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) |
std::ostream & | displayCharacteristics (std::ostream &AOs) |
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 () |
bool | isDanglingFace (CDart *ADart) |
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) |
int | stopUpMarkedBorders (int AMarkNumber, int ADim) |
int | intuitiveStopUpMarkedBorders (int AMarkNumber) |
CDart * | triangulate (CDart *ADart, int ADim) |
int | triangulateMarkedCells (int AMarkNumber, int ADim) |
bool | canQuadrangulateFace (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) |
CDart * | findIncidentEdgeNonLoop (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) |
unsigned int | 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) |
CDart * | go (TMovement ADirection, CDart *ALastDart, TOrbit AOrbit, int AMarkNumber, bool ASelect=true) |
CDart * | goAsFarAsPossible (TMovement ADirection, CDart *ALastDart, TOrbit AOrbit, int AMarkNumber, bool ASelect=true) |
int | duplicateMarkedDarts (int AMarkNumber, CGMapGeneric *AMap=NULL, int ADirectInfoIndex=-1, bool ADuplicateEmbeddings=true, bool A0Sew=true, bool A1Sew=true, bool A2Sew=true, bool A3Sew=true) |
CDart * | duplicateDarts (CDart *ADart, TOrbit AOrbit, CGMapGeneric *AMap=NULL, int ADirectInfoIndex=-1, bool ADuplicateEmbeddings=true) |
int | deleteMarkedDarts (int AMarkNumber) |
int | insertVertexOnMarkedEdges (int AMarkNumber) |
virtual CDart * | insertEdge (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 CDart * | insertFace (CDart *ADart, int AMarkNumber, bool ANoCrossedVolume=false) |
int | insertFaceOnMarkedVolumes (int AMarkNumber, bool ANoCrossedVolume=false, bool ANoTwoEdgesFace=false, bool ANoTwoFacesVolume=false) |
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 | removeMarkedEdgesWithoutDisconnectionWithFaceShifting (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) |
bool | canExtrudeHalfCell (CDart *ADart, int ADim, int AMarkToExtrude=-1) |
bool | canExtrudeCell (CDart *ADart, int ADim) |
int | getExtrusionDimension (CDart *ADart) |
CDart * | topoExtrude (CDart *ADart, int ADim, bool AExtrusionWithAdjacentSews, int AMarkExtruded=-1, int ADirectInfoIndex=-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 CDart * | extrudeByPath (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 CDart * | createRevolutionPath (bool AClosed, int ANbEdges) |
void | destroyRevolutionPath (CDart *ADart) |
virtual CDart * | extrudeByRevolution (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) |
Public Member Functions inherited from GMap3d::CGMap | |
bool | canSew (CDart *ADart1, CDart *ADart2, int ADimension) |
void | sew (CDart *ADart1, CDart *ADart2, int ADimension) |
void | unsew (CDart *ADart, int ADimension) |
CGMap () | |
Constructeur. | |
virtual | ~CGMap () |
Destructeur. | |
bool | canSew0 (CDart *ADart1, CDart *ADart2) |
bool | canSew1 (CDart *ADart1, CDart *ADart2) |
bool | canSew2 (CDart *ADart1, CDart *ADart2) |
bool | canSew3 (CDart *ADart1, CDart *ADart2) |
void | sew0 (CDart *ADart1, CDart *ADart2) |
void | sew1 (CDart *ADart1, CDart *ADart2) |
void | sew2 (CDart *ADart1, CDart *ADart2) |
void | sew3 (CDart *ADart1, CDart *ADart2) |
void | unsew0 (CDart *ADart) |
void | unsew1 (CDart *ADart) |
void | unsew2 (CDart *ADart) |
void | unsew3 (CDart *ADart) |
CCoverage * | getDynamicCoverage (const CDart *ADart, TOrbit AOrbit) |
CCoverage * | getStaticCoverage (const CDart *ADart, TOrbit AOrbit) |
CCoverage * | getMultiDynamicCoverage (const CDart *ADart, TOrbit AOrbit) |
CCoverage * | getBasicDynamicCoverage (const CDart *ADart, TOrbit AOrbit, int AMarkNumber) |
CAttribute * | getAttribute (const CDart *ADart, TOrbit, TAttributeId) |
void | addAttribute (CDart *ADart, TOrbit, CAttribute *) |
CAttribute * | removeAttribute (CDart *ADart, TOrbit, TAttributeId) |
void | deleteAttribute (CDart *ADart, TOrbit, TAttributeId) |
bool | isSameOrbit (CDart *ADart1, CDart *ADart2, TOrbit AOrbit) |
CDart * | getEmbeddingOwner (const CDart *ADart, TOrbit AOrbit) |
void | dartSew0 (CDart *, CDart *ADart2) |
void | dartSew1 (CDart *, CDart *ADart2) |
void | dartSew2 (CDart *, CDart *ADart2) |
void | dartSew3 (CDart *, CDart *ADart2) |
void | dartSew (CDart *, CDart *ADart2, int ADimension) |
void | dartUnsew0 (CDart *ADart) |
void | dartUnsew1 (CDart *ADart) |
void | dartUnsew2 (CDart *ADart) |
void | dartUnsew3 (CDart *ADart) |
void | dartUnsew (CDart *ADart, int ADimension) |
void | topoSew0 (CDart *ADart1, CDart *ADart2) |
void | topoSew1 (CDart *ADart1, CDart *ADart2) |
void | topoSew2 (CDart *ADart1, CDart *ADart2) |
void | topoSew3 (CDart *ADart1, CDart *ADart2) |
void | topoSew (CDart *ADart1, CDart *ADart2, int ADimension) |
void | topoUnsew0 (CDart *ADart) |
void | topoUnsew1 (CDart *ADart) |
void | topoUnsew2 (CDart *ADart) |
void | topoUnsew3 (CDart *ADart) |
void | topoUnsew (CDart *ADart, int ADimension) |
Public Member Functions inherited from GMap3d::CGMapBasic | |
bool | isFree (const CDart *ADart, int ADimension) const |
CDart * | alpha (const CDart *ADart, int ADimension) const |
void | linkAlpha (CDart *ADart1, CDart *ADart2, int ADimension) |
void | unlinkAlpha (CDart *ADart, int ADimension) |
CGMapBasic () | |
Constructeur. | |
virtual | ~CGMapBasic () |
Destructeur. | |
void | randomizeDarts () |
void | removeAllDarts () |
int | getNewDirectInfo () |
void | freeDirectInfo (int ADirectIndex) |
void * | getDirectInfo (CDart *ADart, int ADirectIndex) const |
void | setDirectInfo (CDart *ADart, int ADirectIndex, void *APointer) |
CDart * | getFirstDart () const |
void | setFirstDart (CDart *ADart) |
int | getNewMark () |
bool | getMaskMark (int AMarkNumber) const |
void | freeMark (int AMarkNumber) |
void | negateMaskMark (int AMarkNumber) |
bool | isWholeMapUnmarked (int AMarkNumber) |
int | getNbUsedMarks () const |
bool | isMarked (const CDart *ADart, int AMarkNumber) const |
void | setMarkTo (CDart *ADart, int AMarkNumber, bool AState) |
void | setMark (CDart *ADart, int AMarkNumber) |
void | unsetMark (CDart *ADart, int AMarkNumber) |
void | setMarks (CDart *ADart, const std::bitset< NB_MARKS > &AMarks) const |
std::bitset< NB_MARKS > | getMarks (CDart *ADart) const |
bool | isOrbitUsed (TOrbit AOrbit) const |
void | setOrbitUsed (TOrbit AOrbit) |
void | unsetOrbitUsed (TOrbit AOrbit) |
bool | isOrbitUsed (CDart *ADart, TOrbit AOrbit) const |
CDart * | addMapDart () |
void | delMapDart (CDart *ADart) |
bool | isFree0 (const CDart *ADart) const |
bool | isFree1 (const CDart *ADart) const |
bool | isFree2 (const CDart *ADart) const |
bool | isFree3 (const CDart *ADart) const |
CDart * | alpha0 (const CDart *ADart) const |
CDart * | alpha1 (const CDart *ADart) const |
CDart * | alpha2 (const CDart *ADart) const |
CDart * | alpha3 (const CDart *ADart) const |
void | linkAlpha0 (CDart *ADart1, CDart *ADart2) |
void | linkAlpha1 (CDart *ADart1, CDart *ADart2) |
void | linkAlpha2 (CDart *ADart1, CDart *ADart2) |
void | linkAlpha3 (CDart *ADart1, CDart *ADart2) |
void | unlinkAlpha0 (CDart *ADart) |
void | unlinkAlpha1 (CDart *ADart) |
void | unlinkAlpha2 (CDart *ADart) |
void | unlinkAlpha3 (CDart *ADart) |
enum | TEmbedMethod { GMV_NO = 0, GMV_YES, GMV_CHECK } |
void | diveMesh1 (CDart *AFirstDart, CMesh1Diver &ADiver, TEmbedMethod ADiveBorders=GMV_YES, int AMeshDimension=1) |
void | diveMesh2 (CDart *AFirstDart, CMesh2Diver &ADiver, TEmbedMethod ADiveBorders=GMV_YES, int AMeshDimension=2) |
void | diveMesh3 (CDart *AFirstDart, CMesh3Diver &ADiver, TEmbedMethod ADiveBorders=GMV_YES) |
void | createMesh1 (int ASx, CDart *AMesh1Corners[2], CMesh1Diver &ADiver) |
CDart * | createMesh1 (int ASx, CMesh1Diver &ADiver) |
CDart * | createMesh1 (int ASx) |
void | createMesh2 (int ASx, int ASy, CDart *AFaceCorners[2][2], CMesh2Diver &ADiver) |
CDart * | createMesh2 (int ASx, int ASy, CMesh2Diver &ADiver) |
CDart * | createMesh2 (int ASx, int ASy) |
void | createMesh3 (int ASx, int ASy, int ASz, CDart *AMesh3Corners[2][2][2], CMesh3Diver &ADiver) |
CDart * | createMesh3 (int ASx, int ASy, int ASz, CMesh3Diver &ADiver) |
CDart * | createMesh3 (int ASx, int ASy, int ASz) |
CVertex | basicBarycenter (CDart *ADart, TOrbit AOrbit, int AOrbitMark, int ATreatedMark, int ADirectInfoVertex=-1) |
CVertex | barycenter (CDart *ADart, TOrbit AOrbit, int ADirectInfoVertex=-1) |
CVertex | barycenter (int AMarkNumber) |
CVertex | directInfoBarycenter (int ADirectInfoVertex) |
void | boundingBox (int AMarkNumber, CVertex &AMin, CVertex &AMax) |
CVertex | centerOfBoundingBox (int AMarkNumber) |
void | boundingBox (CDart *ADart, TOrbit AOrbit, CVertex &AMin, CVertex &AMax) |
CVertex | centerOfBoundingBox (CDart *ADart, TOrbit AOrbit) |
TCoordinate | edgeLength (CDart *ADart) |
TCoordinate | facePerimeter (CDart *ADart) |
TCoordinate | border1Length (CDart *ADart) |
TCoordinate | border2Length (CDart *ADart) |
CVertex | edgeVector (CDart *ADart) |
CVertex | edgeNormalVector (CDart *ADart) |
CVertex | faceNormalVector (CDart *ADart) |
CVertex | cellNormalVector (int ADim, CDart *ADart) |
CVertex | border2NormalVector (CDart *ADart) |
CVertex | regionNormalVector (CDart *ADart, int ADim) |
CVertex | regionNormalVector (CDart *ADart, int ADim, int AMarkNumber) |
CVertex | cellDimensionNormalVector (CDart *ADart, int ADim) |
TCoordinate | orbitLength (CDart *ADart, TOrbit AOrbit) |
CVertex | orbitNormalVector (CDart *ADart, TOrbit AOrbit) |
void | giveNumberToDarts (int ADirectInfoIndex) |
bool | save (const char *AFilename, TSaveFormat AFormat=AsciiFormat) |
virtual bool | save (std::ostream &AStream, TSaveFormat AFormat=AsciiFormat) |
CDart * | load (const char *AFilename, TSaveFormat AFormat) |
virtual CDart * | load (std::istream &AStream, TSaveFormat AFormat) |
CDart * | load (const char *AFilename) |
static TSaveFormat | getFileFormat (const char *AFilename) |
static const char * | getFileHeader (TSaveFormat AFormat) |
void | setBurstMethod (TBurstMethod AMethod) |
Sélection de la méthode de calcul des sommets éclatés : | |
TBurstMethod | getBurstMethod () const |
void | updateAllBurstDarts () |
Met à jour le plongement éclaté de tous les brins de la carte. | |
void | updateMarkedBurstDarts (int AMarkNumber, bool AUpdateIncidentVolumes=true) |
void | updateMarkedDartsMethodScale (int AMarkNumber, bool AUpdateIncidentVolumes) |
void | updateMarkedDartsMethodShift (int AMarkNumber, bool AUpdateIncidentVolumes) |
CDart * | extrudeByNormal (CDart *ADart, int ADim, bool AExtrusionWithAdjacentSews, TCoordinate AExtrusionCoef, int AMarkToExtrude=-1, int AMarkExtruded=-1) |
CDart * | extrudeByPath (CDart *ADart, int ADim, CDart *APath, bool AExtrusionWithAdjacentSews, bool ARotateExtrudedCells, bool AScaleExtrudedCells, CDart *APonderationPath=NULL, int AMarkExtruded=-1, int ADirectInfoIndex=-1) |
int | extrudeByPathMarkedCells (int AMarkNumber, int ADim, CDart *APath, bool AExtrusionWithAdjacentSews, int AInitialTranslateExtrudedCells, int AInitialRotateExtrudedCells, bool ARotateExtrudedCells, bool AScaleExtrudedCells, CDart *APonderationPath=NULL) |
CDart * | createRevolutionPath (const CVertex &AAxeVertex, const CVertex &AAxeDirection, const CVertex &AFirstVertex, TCoordinate AAngle, int ANbEdges) |
CDart * | extrudeByRevolution (CDart *ADart, int ADim, const CVertex &AAxeVertex, const CVertex &AAxeDirection, const CVertex &AFirstVertex, TCoordinate AAngle, int ANbEdges, bool AExtrusionWithAdjacentSews, bool ARotateExtrudedCells, bool AScaleExtrudedCells, CDart *APonderationPath=NULL, int AMarkExtruded=-1, int ADirectInfoIndex=-1) |
int | extrudeByRevolutionMarkedCells (int AMarkNumber, int ADim, const CVertex &AAxeVertex, const CVertex &AAxeDirection, TCoordinate AAngle, int ANbEdges, bool AExtrusionWithAdjacentSews, int AInitialTranslateExtrudedCells, int AInitialRotateExtrudedCells, bool ARotateExtrudedCells, bool AScaleExtrudedCells, CDart *APonderationPath=NULL) |
void | markCellsToBeExtrudedByNormal (int ADim, int AMarkNumberSrce, int AMarkNumberDest) |
Additional Inherited Members | |
Public Types inherited from GMap3d::CGMapGeneric | |
enum | TMovement { Forward, Backward, Left, Right } |
Protected Member Functions inherited from GMap3d::CGMapGeneric | |
void | sewDuplicatedDarts (CCoverage *ACoverage, int AMarkNumber, int ADirectInfoIndex, CGMapGeneric *AMap, bool A0Sew=true, bool A1Sew=true, bool A2Sew=true, bool A3Sew=true) |
void | duplicateEmbeddingsOfDuplicatedDarts (CCoverage *ACoverage, int AMarkInitial, int AMarkDuplicated, int ADirectInfoIndex, CGMapGeneric *AMap) |
bool | turnAroundVertex (CDart *ADart, bool ANoCrossedVolume, int AMarkNumber, CDart *&ANext, bool &ACrossed) |
int | isolateMarkedCells (int AMarkNumber, int ADim, bool ADeleteDarts, bool AVerif, int AMarkTreated=-1) |
void | markCellsToBeIsolated (int AMarkSource, int ADim, int AMarkDestination, int AMarkTreated=-1) |
int | extrudeByNormalMarkedCells (int AMarkNumber, int ADim, int AMarkTreated, bool AExtrusionWithAdjacentSews, TCoordinate AExtrusionCoef) |
Protected Member Functions inherited from GMap3d::CGMapBasic | |
void | addDartInList (CDart *ADart) |
void | removeDartInList (CDart *ADart) |
Protected Attributes inherited from GMap3d::CGMapBasic | |
CDart * | FFirstDart |
Premier brin de la liste des brins de la carte. | |
std::bitset< NB_MARKS > | FUsedMarks |
Tableau indiquant quelles sont les marques prises. | |
std::bitset< NB_MARKS > | FMaskMarks |
Masque des marques (modifié par la méthode negateMaskMark()) | |
int | FMarks [NB_MARKS] |
Liste des marques libres. | |
std::bitset< 16 > | FUsedOrbits |
Tableau indiquant quelles sont les orbites utilisées. | |
std::bitset< NB_DIRECT_INFO > | FUsedDirectInfo |
Tableau indiquant quels sont les champs direct-info utilisés. | |
int | FDirectInfos [NB_DIRECT_INFO] |
Liste des champs directInfo libres. | |
Définit la classe CGMapVertex (carte plongée sommets).
Definition at line 63 of file g-map-vertex.hh.
Definition at line 32 of file g-map-vertex.hh.
CGMapVertex::CGMapVertex | ( | ) |
Constructeur par défaut Construction d'une nouvelle instance de la classe. La g-carte créée est vide.
Definition at line 28 of file gmv-instance.cc.
|
virtual |
Destructeur Tous les brins de la carte ainsi que leurs plongements sont détruits.
Definition at line 40 of file gmv-instance.cc.
CDart * CGMapVertex::addEdgeOFF | ( | std::vector< CVertex > & | AInitVertices, |
unsigned long int | AV1, | ||
unsigned long int | AV2, | ||
int | AIndex, | ||
CDart * | APrec | ||
) |
Sous fonction utile pour ajouter une arête entre les sommets numéros AV1 et AV2. AInitVertices contient les sommets de départ AIndex est le numéro du direct info permettant d'étiquetter les brins par leur sommet incident, et APrec est le brin précédent de la face en cours de construction.
Definition at line 251 of file gmv-off.cc.
Crée une nouvelle instance de CDartVertex. Le brin créé n'est pas plongé.
Definition at line 53 of file gmv-inline.icc.
INLINE CDartVertex * GMap3d::CGMapVertex::addMapDart | ( | const CVertex & | AVertex | ) |
Crée une nouvelle instance de CDartVertex, dont le plongement est donné par AVertex.
AVertex | Un sommet |
Definition at line 59 of file gmv-inline.icc.
void CGMapVertex::allocCoordToDirectInfo | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
TOrbit | AOrbitUsed = ORBIT_NONE |
||
) |
Alloue et si nécessaire initialise (dans le cas où la librairie GMP est utilisée) l'espace mémoire nécessaire pour stocker une valeur de type TCoordinate, ceci pour le 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é.
AMarkNumber | Un numéro de marque |
ADirectInfoIndex | L'indice du champ directInfo à utiliser |
AOrbitUsed | Une orbite quelconque |
Definition at line 28 of file gmv-direct-info.cc.
void CGMapVertex::allocCoordToDirectInfo | ( | CDart * | ADart, |
TOrbit | AOrbit, | ||
int | ADirectInfoIndex, | ||
TOrbit | AOrbitUsed = ORBIT_NONE |
||
) |
Alloue et si nécessaire initialise (dans le cas où la librairie GMP est utilisée) l'espace mémoire nécessaire pour stocker une valeur de type TCoordinate, ceci pour le 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).
ADart | Un brin quelconque de la carte |
AOrbit | Une orbite |
ADirectInfoIndex | L'indice du champ directInfo à utiliser |
AOrbitUsed | Une orbite quelconque |
Definition at line 64 of file gmv-direct-info.cc.
void CGMapVertex::applyFunctionOnParameter | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
TFunctionType | AFunctionType | ||
) |
Applique une fonction sur les valeurs (de type TCoordinate) pointées par le champ directInfo[ADirectInfoIndex] des brins porteurs d'un attribut sommet. Les sommets pris en compte sont ceux dont un brin au moins est marqué avec la marque AMarkNumber. Les différents types de fonctions sont répertoriés dans le fichier "math-extension.hh".
AMarkNumber | Un numéro de marque indiquant les sommets sélectionnés |
ADirectInfoIndex | Un indice indiquant où sont stockées les valeurs |
AFunctionType | Le type de fonction à appliquer |
Definition at line 253 of file gmv-deformation.cc.
void CGMapVertex::applyMatrix | ( | const CTransformationMatrix & | AMatrix, |
CDart * | ADart, | ||
TOrbit | AOrbit, | ||
int | ADirectInfoVertex = -1 |
||
) |
Applique la matrice à tous les sommets appartenant à l'orbite AOrbit incidente au brin ADart. Un sommet est modifié si au moins un brin de son orbite sommet appartient à l'orbite AOrbit incidente à ADart. Si ADirectInfoVertex est positif ou nul, la matrice de transformation est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, la matrice de transformation modifie directement l'attribut sommet.
AMatrix | Une matrice de transformation |
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
Definition at line 29 of file gmv-deformation.cc.
void CGMapVertex::applyMatrix | ( | const CTransformationMatrix & | AMatrix, |
int | AMarkNumber, | ||
int | ADirectInfoVertex = -1 |
||
) |
Applique la matrice à tous les sommets marqués avec la marque AMarkNumber. Un sommet est modifié si au moins un brin de son orbite sommet est marqué. Si ADirectInfoVertex est positif ou nul, la matrice de transformation est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, la matrice de transformation modifie directement l'attribut sommet.
AMatrix | Une matrice de transformation |
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer la transformation |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
Definition at line 43 of file gmv-deformation.cc.
void CGMapVertex::axialScale | ( | int | AMarkNumber, |
const CVertex & | AAxeVertex, | ||
const CVertex & | AAxeDirection, | ||
TCoordinate | ACoef, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique une homothétie de coefficient ACoef selon l'axe déterminé par le sommet AAxeVertex et le vecteur AAxeDirection sur tous les sommets marqués avec la marque AMarkNumber.
Si ADirectInfoVertex est positif ou nul, l'homothétie est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, l'étirement est pondéré avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer l'homothétie |
AAxeVertex | Un sommet de l'axe d'homothétie |
AAxeDirection | Un vecteur direction de l'axe d'homothétie |
ACoef | Le coefficient d'homothétie |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
!AAxeDirection.isNull()
Definition at line 455 of file gmv-deformation.cc.
Calcule le barycentre d'un ensemble de sommets déterminé par un brin ADart et une orbite AOrbit.
Si ADirectInfoVertex est positif ou nul, le plongement des sommets n'est pas recherché à l'aide de la méthode 'findVertex' mais est accédé directement à l'aide du champ directInfo[ADirectInfoVertex].
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
ADirectInfoVertex | Un indice correspondant à un champ directInfo |
Definition at line 64 of file gmv-geometry.cc.
CVertex CGMapVertex::barycenter | ( | int | AMarkNumber | ) |
Calcule le barycentre d'un ensemble de sommets marqués avec la marque AMarkNumber.
AMarkNumber | Un numéro de marque |
Definition at line 118 of file gmv-geometry.cc.
CVertex CGMapVertex::basicBarycenter | ( | CDart * | ADart, |
TOrbit | AOrbit, | ||
int | AOrbitMark, | ||
int | ATreatedMark, | ||
int | ADirectInfoVertex = -1 |
||
) |
Calcule le barycentre d'un ensemble de sommets déterminé par un brin ADart et une orbite AOrbit. Les brins marqués ne sont pas démarqués à la fin du parcours.
La méthode utilise un itérateur qui marque les brins avec les marques ATreatedMark et AOrbitMark et qui n'effectue pas de démarquage à la fin.
Si ADirectInfoVertex est positif ou nul, le plongement des sommets n'est pas recherché à l'aide de la méthode 'findVertex' mais est accédé directement à l'aide du champ directInfo[ADirectInfoVertex].
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
AOrbitMark | Le numéro de marque utilisé par l'itérateur pour le marquage des brins atteints |
ATreatedMark | Le numéro de marque utilisé pour le marquage des brins déjà traités |
ADirectInfoVertex | Un indice correspondant à un champ directInfo |
AOrbit==ORBIT012 || AOrbit==ORBIT123 || AOrbit==ORBIT0123
Definition at line 29 of file gmv-geometry.cc.
TCoordinate CGMapVertex::border1Length | ( | CDart * | ADart | ) |
Calcule la longueur d'un 1-bord, c'est-à-dire la longueur de l'arête qui permettrait de boucher ce 1-bord.
ADart | Un brin de la carte |
Definition at line 337 of file gmv-geometry.cc.
TCoordinate CGMapVertex::border2Length | ( | CDart * | ADart | ) |
Calcule la longueur d'une 2-bord, c'est-à-dire la somme de la longueur de toutes les arêtes qui le constituent.
ADart | Un brin de la carte |
Definition at line 343 of file gmv-geometry.cc.
Calcule le vecteur normal d'un 2-bord. Ce vecteur n'est jamais nul. Le 2-bord n'est pas forcément plan. Il peut être ouvert. Il peut comporter moins de 3 sommets (le résultat est alors OZ).
ADart | Un brin de la carte |
Definition at line 503 of file gmv-geometry.cc.
void CGMapVertex::borderPlate | ( | CDart * | ADart1, |
CDart * | ADart2, | ||
int | ADim, | ||
bool | ARotateCells = true , |
||
bool | AScaleCells = true , |
||
bool | ATranslateCells = true |
||
) |
Effectue un placage des bords de dimension ADim incidents aux brins ADart1 et ADart2. Tout comme pour la méthode 'plate', c'est le bord incident à ADart1 qui est déplacé vers le bord incident à ADart2.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ADim | Une dimension |
ARotateCells | Un booléen pour modifier ou non l'orientation |
AScaleCells | Un booléen pour modifier ou non la taille |
ATranslateCells | Un booléen pour modifier ou non la position |
Definition at line 133 of file gmv-plating.cc.
Calcule la boîte englobante d'un ensemble de sommets dont un brin au moins est marqué avec la marque AMarkNumber.
AMarkNumber | Un numéro de marque |
AMin | Le point minimum de la boîte englobante |
AMax | Le point maximum de la boîte englobante |
Definition at line 161 of file gmv-geometry.cc.
Calcule la boîte englobante d'un ensemble de sommets situés sur l'orbite (ADart, AOrbit).
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
AMin | Le point minimum de la boîte englobante |
AMax | Le point maximum de la boîte englobante |
Definition at line 211 of file gmv-geometry.cc.
Teste si les deux cellules incidentes aux brins passés en paramètres peuvent être plaquées (c'est le cas si elles ne sont pas dans la même composante connexe).
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
Un | booléen indiquant si les deux cellules incidentes aux brins donnés peuvent être plaquées |
Definition at line 28 of file gmv-plating.cc.
Calcule la moyenne des vecteurs normaux des faces de la cellule de dimension ADim incidente à ADart. Si la cellule n'est pas orientable, le vecteur retourné est nul.
ADart | Un brin de la carte |
ADim | Une dimension (3 ou 4) |
Definition at line 610 of file gmv-geometry.cc.
Calcule le vecteur normal d'une cellule en s'appuyant sur les méthodes 'edgeNormalVector' et 'faceNormalVector'.
ADim | La dimension de la cellule (0, 1 ou 2) |
ADart | Un brin incident à la cellule |
Definition at line 490 of file gmv-geometry.cc.
CVertex CGMapVertex::centerOfBoundingBox | ( | int | AMarkNumber | ) |
Calcule la boîte englobante d'un ensemble de sommets dont un brin au moins est marqué avec la marque AMarkNumber puis retourne le centre de cette boîte englobante.
AMarkNumber | Un numéro de marque |
Definition at line 202 of file gmv-geometry.cc.
Calcule la boîte englobante d'un ensemble de sommets situés sur l'orbite (ADart, AOrbit) puis retourne le centre de cette boîte englobante.
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
Definition at line 251 of file gmv-geometry.cc.
Retourne le plongement éclaté de la deuxième extrémité du brin ADart donné.
ADart | Un brin de la carte |
Definition at line 166 of file gmv-inline.icc.
void CGMapVertex::computeDistanceToLine | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
const CVertex & | ALineVertex, | ||
const CVertex & | ALineDirection | ||
) |
Pour chaque sommet dont un brin au moins est marqué avec la marque AMarkNumber, calcule la distance euclidienne entre le plongement de ce sommet et la droite donnée par le sommet ALineVertex et le vecteur directeur ALineDirection puis place le résultat dans le champ directInfo[ADirectInfoIndex] du brin possédant le plongement sommet.
Avant d'appeler cette méthode, il convient de réserver de la mémoire pour stocker les résultats. Cette réservation se fait avec la méthode 'CGMapGeneric::allocMemoryToDirectInfo' avec ABytes = sizeof(TCoordinate) et AOrbitUsed = ORBIT_VERTEX.
AMarkNumber | Un numéro de marque |
ADirectInfoIndex | Un indice indiquant quel directInfo utiliser |
ALineVertex | Un sommet quelconque de la droite |
ALineDirection | Un vecteur directeur de la droite |
! ALineDirection.isNull()
Definition at line 110 of file gmv-deformation.cc.
void CGMapVertex::computeDistanceToPlane | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
const CVertex & | APlaneVertex, | ||
const CVertex & | APlaneNormal | ||
) |
Pour chaque sommet dont un brin au moins est marqué avec la marque AMarkNumber, calcule la distance euclidienne entre le plongement de ce sommet et le plan donné par le sommet APlaneVertex et le vecteur normal APlaneNormal puis place le résultat dans le champ directInfo[ADirectInfoIndex] du brin possédant le plongement sommet.
Avant d'appeler cette méthode, il convient de réserver de la mémoire pour stocker les résultats. Cette réservation se fait avec la méthode 'CGMapGeneric::allocMemoryToDirectInfo' avec ABytes = sizeof(TCoordinate) et AOrbitUsed = ORBIT_VERTEX.
AMarkNumber | Un numéro de marque |
ADirectInfoIndex | Un indice indiquant quel directInfo utiliser |
APlaneVertex | Un sommet quelconque du plan |
APlaneNormal | Un vecteur normal du plan |
! APlaneNormal.isNull()
Definition at line 145 of file gmv-deformation.cc.
void CGMapVertex::computeDistanceToVertex | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
const CVertex & | AVertex | ||
) |
Pour chaque sommet dont un brin au moins est marqué avec la marque AMarkNumber, calcule la distance euclidienne entre le plongement de ce sommet et le sommet AVertex puis place le résultat dans le champ directInfo[ADirectInfoIndex] du brin possédant le plongement sommet.
Avant d'appeler cette méthode, il convient de réserver de la mémoire pour stocker les résultats. Cette réservation se fait avec la méthode 'CGMapGeneric::allocMemoryToDirectInfo' avec ABytes = sizeof(TCoordinate) et AOrbitUsed = ORBIT_VERTEX.
AMarkNumber | Un numéro de marque |
ADirectInfoIndex | Un indice indiquant quel directInfo utiliser |
AVertex | Un sommet quelconque de l'espace |
Definition at line 80 of file gmv-deformation.cc.
void CGMapVertex::computeRegressionLine | ( | int | AMarkNumber, |
CVertex * | ABarycenter, | ||
CVertex * | ADirection | ||
) |
Calcule la droite de régression correspondant aux sommets dont un brin au moins est marqué avec la marque AMarkNumber. Cette droite est décrite par un sommet lui appartenant et un vecteur directeur.
AMarkNumber | Un numéro de marque |
ABarycenter | Un sommet de la droite |
ADirection | Un vecteur directeur de la droite |
Definition at line 28 of file gmv-regression.cc.
void CGMapVertex::computeRegressionPlane | ( | int | AMarkNumber, |
TCoordinate * | AA, | ||
TCoordinate * | AB, | ||
TCoordinate * | AC, | ||
TCoordinate * | AD | ||
) |
Calcule le plan de régression correspondant aux sommets dont un brin au moins est marqué avec la marque AMarkNumber. Ce plan alpha pour équation cartésienne alpha*x + b*y + c*z + d = 0. Les paramètres alpha, b, c et d sont placés dans les paramètres A?.
AMarkNumber | Un numéro de marque |
A? | Des pointeurs sur les paramètres de l'équation du plan |
Definition at line 86 of file gmv-regression.cc.
unsigned int CGMapVertex::countNumberOfMotifs | ( | CGMapVertex * | AMap, |
unsigned int * | ANbMatched = NULL |
||
) |
Compte le nombre de fois que la carte *this est motif de la carte AMap.
AMap | la carte dans laquelle on va chercher le motif. |
ANbMatched | un pointeur vers un entier. Si non nul, paramètre retour qui va contenir le nombre de brins maximum matché. |
Definition at line 106 of file gmv-isomorphisme.cc.
void CGMapVertex::createCubeIMeshed | ( | int | ASx, |
int | ASy, | ||
int | ASz, | ||
int | AMeshDimension, | ||
bool | ACreatedFaces[3][2], | ||
CDart * | AFacesCorners[3][2][2][2] | ||
) |
Appelle la méthode 'CGMapGeneric::createCubeIMeshed' puis plonge le cube créé. Le cube obtenu est centré sur l'origine et son côté vaut 1.
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 336 of file gmv-primitive.cc.
void CGMapVertex::createCubeIMeshed | ( | int | ASx, |
int | ASy, | ||
int | ASz, | ||
int | AMeshDimension, | ||
bool | ACreatedFaces[3][2], | ||
CDart ** | ADart1, | ||
CDart ** | ADart2 | ||
) |
Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createCubeIMeshed' ci-dessus et retourne un brin du cube.
ATTENTION: Selon les valeurs de AFace–, l'objet créé peut ne pas être connexe !
Si l'objet créé est connexe, ADart1 est positionné sur un de ses brins et la valeur NULL est affectée à ADart2. Si l'objet créé n'est pas connexe, ADart1 est positionné sur un brin de la première composante et ADart2 sur un brin de la deuxième composante.
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 |
ADart1 | Un brin du cube |
ADart2 | Un brin du cube |
Definition at line 420 of file gmv-primitive.cc.
void CGMapVertex::createCylinder | ( | int | AMeridians, |
int | AParallels, | ||
CDart ** | ABorder1, | ||
CDart ** | ABorder2, | ||
bool | AClose1 = true , |
||
bool | AClose2 = true |
||
) |
Appelle la méthode CGMapGeneric::createTopoCylinder puis plonge le cylindre créé. Le cylindre obtenu est axé sur OX, sa hauteur vaut 1, son rayon 1/2.
La face incidente à ABorder1 est dans le plan Z=-1/2. La face incidente à ABorder2 est dans le plan Z=+1/2.
Les brins AClose1 et AClose2 en sortie sont situés sur le méridien passant par le sommet (+1/2,0,0).
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 129 of file gmv-primitive.cc.
CDart * CGMapVertex::createCylinder | ( | 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 'createCylinder' ci-dessus et retourne le brin correspondant à ABorder1.
AMeridians | Le nombre (non nul) de méridiens du cylindre |
AParallels | Le nombre (non nul) de parallèles du cylindre |
AClose1 | Un booléen indiquant s'il faut fermer le bord incident à ABorder1 (voir méthode 'createCylinder' ci-dessus) |
AClose2 | Un booléen indiquant s'il faut fermer le bord incident à ABorder2 (voir méthode 'createCylinder' ci-dessus) |
Definition at line 170 of file gmv-primitive.cc.
void CGMapVertex::createMesh1 | ( | int | ASx, |
CDart * | AMesh1Corners[2], | ||
CMesh1Diver & | ADiver | ||
) |
Appelle la méthode CGMapGeneric::createMesh1 et plonge la polyligne obtenue en utilisant ADiver.
ASx | Le nombre d'arêtes de la polyligne |
AMesh1Corners | Un tableau de 2 pointeurs sur brin |
AExtremity2 | L'adresse d'un pointeur sur brin |
ADiver | Un calculateur des plongements du maillage 1d |
Definition at line 160 of file gmv-primitive-mesh.cc.
CDart * CGMapVertex::createMesh1 | ( | int | ASx, |
CMesh1Diver & | ADiver | ||
) |
Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createMesh1' ci-dessus et retourne le brin correspondant à AExtremity1.
ASx | Le nombre d'arêtes de la polyligne |
ADiver | Un calculateur des plongements du maillage 1d |
Definition at line 170 of file gmv-primitive-mesh.cc.
CDart * CGMapVertex::createMesh1 | ( | int | ASx | ) |
Cette méthode appelle 'createMesh1' ci dessus. Le plongement est déterminé par le plongeur: CMesh1BasicDiver(-OX/2, OX, ASx).
ASx | Le nombre d'arêtes de la polyligne |
Definition at line 179 of file gmv-primitive-mesh.cc.
void CGMapVertex::createMesh2 | ( | int | ASx, |
int | ASy, | ||
CDart * | AFaceCorners[2][2], | ||
CMesh2Diver & | ADiver | ||
) |
Appelle la méthode CGMapGeneric::createMesh2 et plonge la grille obtenue en utilisant ADiver.
ASx | Le nombre (non nul) de subdivisions de la grille sur l'axe OX |
ASy | Le nombre (non nul) de subdivisions de la grille sur l'axe OY |
AMesh2Corners | Un tableau de taille 2*2 de pointeurs sur brin correspondant aux coins du maillage 2d |
ADiver | Un calculateur des plongements de la grille |
Definition at line 185 of file gmv-primitive-mesh.cc.
CDart * CGMapVertex::createMesh2 | ( | int | ASx, |
int | ASy, | ||
CMesh2Diver & | ADiver | ||
) |
Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createMesh2' ci-dessus et retourne le brin correspondant à ACornerBL.
ASx | Le nombre (non nul) de subdivisions de la grille sur l'axe OX |
ASy | Le nombre (non nul) de subdivisions de la grille sur l'axe OY |
ADiver | Un calculateur des plongements de la grille |
Definition at line 197 of file gmv-primitive-mesh.cc.
CDart * CGMapVertex::createMesh2 | ( | int | ASx, |
int | ASy | ||
) |
Cette méthode appelle 'createMesh2' ci dessus. Le plongement est déterminé par le plongeur: CMesh2BasicDiver(-(OX+OY)/2, OX, ASx, OY, ASy).
ASx | Le nombre (non nul) de subdivisions de la grille sur l'axe OX |
ASy | Le nombre (non nul) de subdivisions de la grille sur l'axe OY |
Definition at line 206 of file gmv-primitive-mesh.cc.
void CGMapVertex::createMesh3 | ( | int | ASx, |
int | ASy, | ||
int | ASz, | ||
CDart * | AMesh3Corners[2][2][2], | ||
CMesh3Diver & | ADiver | ||
) |
Appelle la méthode CGMapGeneric::createMesh3 et plonge le maillage 3d obtenu en utilisant ADiver.
ASx | Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OX |
ASy | Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OY |
ASz | Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OZ |
AMesh3Corners | Un tableau de taille 2*2*2 de pointeurs sur brin correspondant aux coins du maillage 3d |
ADiver | Un calculateur des plongements du maillage 3d |
Definition at line 212 of file gmv-primitive-mesh.cc.
CDart * CGMapVertex::createMesh3 | ( | int | ASx, |
int | ASy, | ||
int | ASz, | ||
CMesh3Diver & | ADiver | ||
) |
Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createMesh3' ci-dessus et retourne le brin correspondant à AMesh3Corners[0][0][0].
ASx | Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OX |
ASy | Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OY |
ASz | Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OZ |
ADiver | Un calculateur des plongements du maillage 3d |
Definition at line 225 of file gmv-primitive-mesh.cc.
CDart * CGMapVertex::createMesh3 | ( | int | ASx, |
int | ASy, | ||
int | ASz | ||
) |
Cette méthode appelle 'createMesh3' ci dessus. Le plongement est déterminé par le plongeur: CMesh3BasicDiver(-(OX+OY+OZ)/2, OX, ASx, OY, ASy, OZ, ASz).
ASx | Le nombre (non nul) de subdivisions de la grille sur l'axe OX |
ASy | Le nombre (non nul) de subdivisions de la grille sur l'axe OY |
ASz | Le nombre (non nul) de subdivisions de la grille sur l'axe OY |
Definition at line 234 of file gmv-primitive-mesh.cc.
Appelle la méthode CGMapGeneric::createTopoOpenedPole puis plonge le sommet central du pôle créé avec l'attribut AVertex.
An | Le nombre de triangles qui composent le pôle |
AVertex | Le plongement du sommet central du pôle |
Definition at line 44 of file gmv-primitive.cc.
Appelle la méthode CGMapGeneric::createTopoPole puis plonge le sommet central du pôle créé avec l'attribut AVertex.
An | Le nombre de triangles qui composent le pôle |
AVertex | Le plongement du sommet central du pôle |
Definition at line 35 of file gmv-primitive.cc.
Utilise la méthode createMesh1 avec un CMesh1VectorDiver.
AVector | Un vecteur contenant les sommets de la polyline |
Definition at line 29 of file gmv-primitive.cc.
void CGMapVertex::createPyramid | ( | int | AMeridians, |
int | AParallels, | ||
CDart ** | ABaseDart, | ||
CDart ** | APoleDart, | ||
bool | ACloseBase = true |
||
) |
Appelle la méthode CGMapGeneric::createTopoPyramid puis plonge la pyramide créée. La pyramide obtenue est axée sur OZ, sa hauteur vaut 1, le rayon de sa base 1/2.
La base (incidente à ABaseDart) est dans le plan Z=-1/2. La pointe (incidente à APoleDart) est aux coordonnées (0,0,+1/2).
Les brins ABaseDart et APoleDart en sortie sont situés sur le méridien passant par le sommet (+1/4,0,0).
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 s'il faut fermer le bord incident à ABaseDart |
Definition at line 183 of file gmv-primitive.cc.
CDart * CGMapVertex::createPyramid | ( | 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 'createPyramid' ci-dessus et retourne le brin correspondant à ABaseDart.
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 s'il faut fermer le bord incident à ABaseDart (voir méthode 'createPyramid' ci-dessus) |
Definition at line 224 of file gmv-primitive.cc.
CDart * CGMapVertex::createRegularPolygon | ( | int | An | ) |
Crée un polygone régulier centré sur l'origine et de vecteur normal OZ. Le premier sommet de la face créée est aux coordonnées (1/2,0,0), c'est-à-dire que le polygone est inscrit dans un cercle de diamètre 1.
Le brin b retourné est celui du premier sommet de la face tel que le plongement de alpha0(b) ait une ordonnée positive.
An | Le nombre d'arêtes du polygone |
An>=3
Definition at line 53 of file gmv-primitive.cc.
CDart * CGMapVertex::createRevolutionPath | ( | const CVertex & | AAxeVertex, |
const CVertex & | AAxeDirection, | ||
const CVertex & | AFirstVertex, | ||
TCoordinate | AAngle, | ||
int | ANbEdges | ||
) |
Crée un chemin d'extrusion composé de ANbEdges arêtes, ouvert ou fermé selon la valeur de AAngle. Ce chemin est utilisé pour simuler l'extrusion par révolution autour d'un axe.
AAxeVertex | Un sommet de l'axe de révolution |
AAxeDirection | Un vecteur directeur de l'axe de révolution |
AFirstVertex | La position du 1er sommet du chemin |
AAngle | L'angle de révolution (compris entre -360 et +360) |
ANbEdges | Le nombre d'arêtes du chemin |
!AAxeDirection.isNull() ANbEdges >= 3
Definition at line 568 of file gmv-extrusion.cc.
void CGMapVertex::createSphere | ( | int | AMeridians, |
int | AParallels, | ||
CDart ** | ASouthPole, | ||
CDart ** | ANorthPole | ||
) |
Appelle la méthode CGMapGeneric::createTopoSphere puis plonge sphère créée. La sphère obtenue est centrée sur l'origine, son diamètre vaut 1.
Le pôle sud est aux coordonnées (0,0,-1/2). Le pôle nord est aux coordonnées (0,0,+1/2).
Les brins ASouthPole et ANorthPole en sortie sont situés sur le méridien passant par le sommet (+1/2,0,0).
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 73 of file gmv-primitive.cc.
CDart * CGMapVertex::createSphere | ( | int | AMeridians, |
int | AParallels | ||
) |
Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createSphere' ci-dessus et retourne le brin correspondant à ASouthPole.
AMeridians | Le nombre (non nul) de méridiens de la sphère |
AParallels | Le nombre (non nul) de parallèles de la sphère |
Definition at line 117 of file gmv-primitive.cc.
void CGMapVertex::createSquareIMeshed | ( | int | ASx, |
int | ASy, | ||
int | AMeshDimension, | ||
CDart * | ASquareCorners[2][2] | ||
) |
Appelle la méthode 'CGMapGeneric::createTopoSquareIMeshed' et plonge le carré maillé créé. Le carré est centré sur l'origine et son vecteur normal est OZ. Les coins de la face créée sont aux coordonnées (+-1/2,+-1/2,0).
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 294 of file gmv-primitive.cc.
CDart * CGMapVertex::createSquareIMeshed | ( | int | ASx, |
int | ASy, | ||
int | AMeshDimension | ||
) |
Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createSquareIMeshed' ci-dessus et retourne le brin correspondant à ASquareCorners[0][0].
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) |
Definition at line 327 of file gmv-primitive.cc.
void CGMapVertex::createTorus | ( | int | AMeridians, |
int | AParallels, | ||
TCoordinate | ARadiusProportion, | ||
CDart ** | AEquator | ||
) |
Appelle la méthode CGMapGeneric::createTopoTorus puis plonge le tore créé. Le tore obtenu est axé sur OZ, c'est-à-dire que l'axe OZ passe dans le trou du tore sans l'intersecter.
Le brin AEquator en sortie est situé sur le sommet de coordonnées (+1/2,0,0).
On alpha donc les relations suivantes:
k = r/R , r+R = 1/2 , r = k/2/(1+k) , R = 1/2/(1+k)
AMeridians | Le nombre (non nul) de méridiens du tore |
AParallels | Le nombre (non nul) de parallèles du tore |
ARadiusProportion | La valeur r/R (petit rayon sur grand grand rayon) |
AEquator | L'adresse d'un pointeur sur brin |
Definition at line 237 of file gmv-primitive.cc.
CDart * CGMapVertex::createTorus | ( | int | AMeridians, |
int | AParallels, | ||
TCoordinate | ARadiusProportion | ||
) |
Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTorus' ci-dessus et retourne le brin correspondant à AEquator.
AMeridians | Le nombre (non nul) de méridiens du tore |
AParallels | Le nombre (non nul) de parallèles du tore |
ARadiusProportion | La valeur r/R (petit rayon sur grand grand rayon) |
Definition at line 281 of file gmv-primitive.cc.
Supprime le brin passé en paramètre (de type CDartVertex)
ADart | Le brin à supprimer |
Reimplemented from GMap3d::CGMapBasic.
Definition at line 45 of file gmv-inline.icc.
void CGMapVertex::deleteDuplicatedVertex | ( | int | ADirectInfoNumber | ) |
Libère l'espace mémoire alloué par la méthode 'duplicateVertexToDirectInfo'. Les champs directInfo libérés ne sont pas positionnés à NULL.
Attention: les brins sélectionnés devraient être les mêmes qu'au moment de l'appel à duplicateVertexToDirectInfo!
ADirectInfoNumber | Un indice indiquant quel directInfo utiliser |
Definition at line 110 of file gmv-direct-info.cc.
int CGMapVertex::deleteMarkedNullLengthEdges | ( | int | AMarkNumber | ) |
Supprime les arêtes de longueur nulle dont un brin au moins est marqué.
Definition at line 38 of file gmv-null-length-edge.cc.
int CGMapVertex::deleteNullLengthEdges | ( | ) |
Supprime toutes les arêtes de longueur nulle de la carte.
Definition at line 28 of file gmv-null-length-edge.cc.
Supprime s'il existe le plongement sommet du brin ADart.
ADart | Un brin de la carte |
Definition at line 134 of file gmv-inline.icc.
CVertex CGMapVertex::directInfoBarycenter | ( | int | ADirectInfoVertex | ) |
Calcule le barycentre d'un ensemble de sommets se trouvant dans le champ directInfo d'indice ADirectInfoVertex. Les champs directinfo doivent être initialisés avec la méthode duplicateVertexToDirectInfo.
ADirectInfoVertex | Un indice correspondant à un champ directInfo |
Definition at line 146 of file gmv-geometry.cc.
void CGMapVertex::diveMesh1 | ( | CDart * | AFirstDart, |
CMesh1Diver & | ADiver, | ||
TEmbedMethod | ADiveBorders = GMV_YES , |
||
int | AMeshDimension = 1 |
||
) |
Plonge les sommets d'un maillage 1d généralement créé avec la méthode 'CGMapGeneric::createTopoMesh1'.
Si AMeshDimension > 1, le plongement est effectué le long du bord d'un maillage 2d ou 3d.
Le passage d'une arête à la suivante se fait de manières différentes en fonction de la valeur de AMeshDimension: Si AMeshDimension == 1 : alpha01 Si AMeshDimension == 2 : alpha0121 Si AMeshDimension == 3 : alpha012321
AFirstDart | Un brin situé à l'origine du maillage 1d |
ADiver | Un calculateur des plongements du maillage 1d |
ADiveBorders | Indique s'il faut plonger le bord du maillage 1d (2 sommets) |
AMeshDimension | Un entier indiquant la dimension du maillage à plonger (1, 2 ou 3) |
Definition at line 31 of file gmv-primitive-mesh.cc.
void CGMapVertex::diveMesh2 | ( | CDart * | AFirstDart, |
CMesh2Diver & | ADiver, | ||
TEmbedMethod | ADiveBorders = GMV_YES , |
||
int | AMeshDimension = 2 |
||
) |
Plonge les sommets d'un maillage 2d généralement créé avec la méthode 'CGMapGeneric::createTopoMesh2'.
Si AMeshDimension == 3, le plongement est effectué le long du bord d'un maillage 3d.
Le passage d'une face à la suivante se fait de manières différentes en fonction de la valeur de AMeshDimension: Si AMeshDimension == 2 : alpha0121 Si AMeshDimension == 3 : alpha012321
AFirstDart | Un brin situé à l'origine du maillage 2d |
ADiver | Un calculateur des plongements du maillage 2d |
ADiveBorders | Indique s'il faut plonger le bord du maillage 2d (4 arêtes) |
AMeshDimension | Un entier indiquant la dimension du maillage à plonger (2 ou 3) |
Definition at line 62 of file gmv-primitive-mesh.cc.
void CGMapVertex::diveMesh3 | ( | CDart * | AFirstDart, |
CMesh3Diver & | ADiver, | ||
TEmbedMethod | ADiveBorders = GMV_YES |
||
) |
Plonge les sommets d'un maillage 3d généralement créé avec la méthode 'CGMapGeneric::createTopoMesh3'.
AFirstDart | Un brin situé à l'origine du maillage 3d |
ADiver | Un calculateur des plongements du maillage 3d |
ADiveBorders | Indique s'il faut plonger le bord du maillage 3d (6 faces) |
Definition at line 107 of file gmv-primitive-mesh.cc.
int CGMapVertex::dualOfMarkedDarts | ( | int | ADim, |
int | AMarkNumber | ||
) |
Calcule le dual en dimension ADim d'un ensemble de brins. À chaque cellule C de dimension ADim de l'objet initial est associé un sommet S placé sur le barycentre de C.
ADim | La dimension dans laquelle le dual est calculé |
AMarkNumber | Un numéro de marque |
(ADim == 2) || (ADim == 3)
Definition at line 30 of file gmv-dual.cc.
void CGMapVertex::duplicateVertexToDirectInfo | ( | int | AMarkNumber, |
int | ADirectInfoNumber | ||
) |
Duplique le plongement sommet des sommets sélectionnés. Le sommet dupliqué est rattaché à un brin de l'orbite sommet, qui est le même que celui qui porte l'attribut original.
Un sommet est sélectionné si au moins un de ses brins est marqué avec la marque AMarkNumber.
L'espace alloué par cette méthode peut être libéré à l'aide de la méthode 'deleteDuplicatedVertex'.
AMarkNumber | Un numéro de marque |
ADirectInfoNumber | Un indice indiquant quel directInfo utiliser |
Definition at line 79 of file gmv-direct-info.cc.
TCoordinate CGMapVertex::edgeLength | ( | CDart * | ADart | ) |
Calcule la longueur d'une arête.
ADart | Un brin de la carte |
Definition at line 321 of file gmv-geometry.cc.
Calcule le vecteur normal d'une arête. Ce vecteur n'est jamais nul. Si l'arête est de longueur nulle, la méthode retourne OX, sinon elle appelle 'CGeometry::getNormalVector'.
ADart | Un brin de la carte |
Definition at line 472 of file gmv-geometry.cc.
Calcule * findVertex(alpha0(ADart)) - * findVertex(ADart).
ADart | Un brin de la carte |
Definition at line 465 of file gmv-geometry.cc.
|
virtual |
Destruction de tous les brins de la carte. Cette méthode appelle la méthode 'empty' de la classe CGMapBasic, puis sélectionne l'orbite ORBIT_VERTEX comme orbite utilisée.
Reimplemented from GMap3d::CGMapBasic.
Definition at line 31 of file gmv-inline.icc.
bool CGMapVertex::exportOff | ( | const char * | AFilename | ) |
Exporte la carte courante au format off2D ou off3D selon la dimension de la carte courante.
AFilename | Le nom du fichier dans lequel écrire le contenu de la carte |
Definition at line 560 of file gmv-off.cc.
bool CGMapVertex::exportOff2D | ( | std::ostream & | AStream | ) |
Exporte la carte courante au format off2D.
AStream | Un flot dans lequel écrire le contenu de la carte |
Definition at line 398 of file gmv-off.cc.
bool CGMapVertex::exportOff3D | ( | std::ostream & | AStream | ) |
Exporte la carte courante au format off3D.
AStream | Un flot dans lequel écrire le contenu de la carte |
Definition at line 463 of file gmv-off.cc.
bool CGMapVertex::exportOff3D | ( | const char * | AFilename | ) |
Exporte la carte courante au format off3D.
AFilename | Le nom du fichier dans lequel écrire le contenu de la carte |
Definition at line 575 of file gmv-off.cc.
bool CGMapVertex::exportToPov | ( | std::ofstream & | AOutStream | ) |
Exporte la carte vers le format PoV (Persistence of Vision). PoV-ray est un lanceur de rayons. (voir www.povray.org).
AOutStream | Le flot dans lequel sera écrit le fichier. |
Definition at line 33 of file gmv-export-pov.cc.
|
virtual |
Extrude la cellule de dimension ADim incidente à ADart. Si AMarkToExtrude est positive ou nulle, cette marque indique les cellules qui doivent être extrudées. Selon que les cellules voisines de la cellule en cours doivent être extrudées ou pas et selon la valeur que renvoie la méthode 'CGMapGeneric::getExtrusionWithAdacentSews', les plongements ne sont pas calculés de la même manière.
La méthode appelle 'CGMapGeneric::extrudeByNormal' puis calcule les plongements des sommets topologiques créés.
Pour la signification du paramètre AMarkToExtrude, se reporter à la méthode 'CGMapGeneric::extrudeByNormal'. Pour la signification des paramètres AMarkExtruded et AExtrusionWithAdjacentSews, se reporter à la méthode 'CGMapGeneric::topoExtrude'.
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. Ce coefficient est utilisé pour pondérer le vecteur d'extrusion. |
AMarkToExtrude | Une marque indiquant les cellules à extruder |
AMarkExtruded | Une marque indiquant les cellules déjà extrudées |
canExtrudeCell(ADart, ADim)
Reimplemented from GMap3d::CGMapGeneric.
Definition at line 29 of file gmv-extrusion.cc.
CDart * CGMapVertex::extrudeByPath | ( | CDart * | ADart, |
int | ADim, | ||
CDart * | APath, | ||
bool | AExtrusionWithAdjacentSews, | ||
bool | ARotateExtrudedCells, | ||
bool | AScaleExtrudedCells, | ||
CDart * | APonderationPath = NULL , |
||
int | AMarkExtruded = -1 , |
||
int | ADirectInfoIndex = -1 |
||
) |
Extrude la cellule de dimension ADim incidente à ADart selon le chemin donné par APath (orbite O1).
La méthode appelle 'CGMapGeneric::extrudeByPath' puis calcule les plongements des sommets topologiques créés.
Pour la signification du paramètre AMarkExtruded, se reporter à la méthode 'CGMapGeneric::topoExtrude'.
Pour la signification du paramètre ADirectInfoIndex, se reporter à la méthode 'CGMapGeneric::extrudeByPath'.
Si APonderationPath est différent de NULL, une homothétie est appliquée sur chaque section de l'objet obtenu après extrusion. Chaque homothétie est centrée sur le sommet du chemin d'extrusion lui correspondant. APonderationDart désigne un chemin dont les sommets (plus précisément la valeur donnée par 'CVertex::getY' appliquée sur ces sommets) donnent les coefficients d'homothétie.
Remarque: Le nombre d'arêtes du chemin peut être différent du nombre d'arêtes de la fonction de pondération. Si c'est le cas, le paramètre de pondération est calculé par interpolation linéaire.
Remarque: Si la fonction de pondération s'annule pour une valeur donnée, tous les sommets de la section correspondante sont confondus. Cette section réduite à un sommet se propage alors jusqu'à la fin de l'extrusion.
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 |
APonderationPath | Un brin de la carte |
AExtrusionWithAdjacentSews | Un booléen |
ARotateExtrudedCells | Un booléen indiquant si les objets extrudés doivent être orientés |
AScaleExtrudedCells | Un booléen indiquant si les objets extrudés doivent être redimensionnés |
AMarkExtruded | Une marque indiquant les cellules déjà extrudées |
ADirectInfoIndex | Un indice de champ directInfo |
canExtrudeByPath(ADart, ADim, APath) APonderationPath==NULL || ! isClosedPolyline(APonderationPath)
Definition at line 109 of file gmv-extrusion.cc.
int CGMapVertex::extrudeByPathMarkedCells | ( | int | AMarkNumber, |
int | ADim, | ||
CDart * | APath, | ||
bool | AExtrusionWithAdjacentSews, | ||
int | AInitialTranslateExtrudedCells, | ||
int | AInitialRotateExtrudedCells, | ||
bool | ARotateExtrudedCells, | ||
bool | AScaleExtrudedCells, | ||
CDart * | APonderationPath = NULL |
||
) |
Surcharge la méthode 'CGMapGeneric::extrudeByPathMarkedCells'. Les cellules sont éventuellement positionnées perpendiculairement au chemin avant d'effectuer l'extrusion (voir méthodes 'setExtrusionInitialPosition' et 'setExtrusionInitialDirection').
Attention: si 'getExtrusionInitialDirection' retourne la valeur 'vrai', le vecteur normal de chaque cellule à extruder est calculé, ce qui implique qu'un brin sur deux au maximum pour chaque cellule doit être sélectionné pour éviter toute ambiguïté.
Pour la signification des paramètres APonderationDart,ARotateExtrudedCells et AScaleExtrudedCells, se reporter à la méthode 'extrudeByPath'.
AMarkNumber | Un numéro de marque |
ADim | Une dimension (1 ou 2) |
APath | Un brin de la carte incident au chemin d'extrusion |
AExtrusionWithAdjacentSews | Un booléen |
AInitialTranslateExtrudedCells | Un entier indiquant si les objets extrudés doivent être translatés sur le premier sommet du chemin. 0 : Aucune translation. 1 : Les objets extrudés sont initialement translatés sur le chemin. 2 : Le chemin est initialement déplacé sur le barycentre des cellules à extruder. |
AInitialRotateExtrudedCells | Un entier indiquant comment les objets à extruder et le chemin doivent être orientés l'un par rapport à l'autre avant l'extrusion. 0 : Aucune rotation. 1 : Les objets extrudés sont initialement orientés perpendiculairement à la première arête du chemin. 2 : Le chemin est initialement orienté de manière à être perpendiculaire aux cellules à extruder. |
ARotateExtrudedCells | Un booléen |
AScaleExtrudedCells | Un booléen |
APonderationPath | Un brin de la carte |
Definition at line 340 of file gmv-extrusion.cc.
CDart * CGMapVertex::extrudeByRevolution | ( | CDart * | ADart, |
int | ADim, | ||
const CVertex & | AAxeVertex, | ||
const CVertex & | AAxeDirection, | ||
const CVertex & | AFirstVertex, | ||
TCoordinate | AAngle, | ||
int | ANbEdges, | ||
bool | AExtrusionWithAdjacentSews, | ||
bool | ARotateExtrudedCells, | ||
bool | AScaleExtrudedCells, | ||
CDart * | APonderationPath = NULL , |
||
int | AMarkExtruded = -1 , |
||
int | ADirectInfoIndex = -1 |
||
) |
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 AAngle puis appelle la méthode 'extrudeByPath'.
Pour la signification des paramètres AMarkExtruded, ADirectInfoIndex, APonderationPath, AExtrusionWithAdjacentSews, ARotateExtrudedCells, AScaleExtrudedCells se reporter à la méthode 'extrudeByPath'.
ADart | Un brin de la carte incident à la cellule à extruder |
ADim | Une dimension (1 ou 2) |
AAxeVertex | Un sommet de l'axe de révolution |
AAxeDirection | Un vecteur directeur de l'axe de révolution |
AFirstVertex | La position du barycentre des cellules à extruder |
AAngle | L'angle de révolution (compris entre -360 et +360) |
ANbEdges | Le nombre de sections à créer |
AExtrusionWithAdjacentSews | Un booléen |
ARotateExtrudedCells | Un booléen |
AScaleExtrudedCells | Un booléen |
APonderationPath | Un brin de la carte |
AMarkExtruded | Un numéro de marque |
ADirectInfoIndex | Un indice de champ directInfo |
canExtrudeByRevolution(ADart, ADim, closed), avec closed = vrai si AAngle/360 est une valeur entière !AAxeDirection.isNull() ANbEdges >= 3
Definition at line 602 of file gmv-extrusion.cc.
int CGMapVertex::extrudeByRevolutionMarkedCells | ( | int | AMarkNumber, |
int | ADim, | ||
const CVertex & | AAxeVertex, | ||
const CVertex & | AAxeDirection, | ||
TCoordinate | AAngle, | ||
int | ANbEdges, | ||
bool | AExtrusionWithAdjacentSews, | ||
int | AInitialTranslateExtrudedCells, | ||
int | AInitialRotateExtrudedCells, | ||
bool | ARotateExtrudedCells, | ||
bool | AScaleExtrudedCells, | ||
CDart * | APonderationPath = NULL |
||
) |
Calcule le chemin correspondant à l'axe donné et appelle la méthode 'extrudeByPathMarkedCells'. Les cellules sont éventuellement positionnées perpendiculairement au chemin avant d'effectuer l'extrusion (voir la méthode 'setExtrusionInitialDirection').
Attention: si 'getExtrusionInitialDirection' retourne la valeur 'vrai', le vecteur normal de chaque cellule à extruder est calculé, ce qui implique qu'un brin sur deux au maximum pour chaque cellule doit être sélectionné pour éviter toute ambiguïté.
Pour la signification du paramètre APonderationDart, AExtrusionWithAdjacentSews, ARotateExtrudedCells et AScaleExtrudedCells se reporter à la méthode 'extrudeByPath'. Pour la signification des paramètres AInitialTranslateExtrudedCells et AInitialRotateExtrudedCells, voir la méthode 'extrudeByPathMarkedCells'.
AMarkNumber | Un numéro de marque |
ADim | Une dimension (1 ou 2) |
AAxeVertex | Un sommet de l'axe de révolution |
AAxeDirection | Un vecteur directeur de l'axe de révolution |
ANbEdges | Le nombre de sections à créer |
AExtrusionWithAdjacentSews | Un booléen |
AInitialTranslateExtrudedCells | Un entier |
AInitialRotateExtrudedCells | Un entier |
APonderationPath | Un brin de la carte |
!AAxeDirection.isNull() ANbEdges >= 3
Definition at line 640 of file gmv-extrusion.cc.
Calcule le vecteur normal d'une face. Ce vecteur n'est jamais nul. La face n'est pas forcément plane. Elle peut être ouverte. Elle peut comporter moins de 3 sommets (le résultat est alors OZ).
ADart | Un brin de la carte |
Definition at line 484 of file gmv-geometry.cc.
TCoordinate CGMapVertex::facePerimeter | ( | CDart * | ADart | ) |
Calcule le périmètre d'une face.
ADart | Un brin de la carte |
Definition at line 331 of file gmv-geometry.cc.
int CGMapVertex::findMotif | ( | CGMapVertex * | AMap, |
unsigned int * | ANbMatched = NULL |
||
) |
Cherche si la carte *this est un motif de la carte AMap.
AMap | la carte dans laquelle on va chercher le motif. |
ANbMatched | un pointeur vers un entier. Si non nul, paramètre retour qui va contenir le nombre de brins maximum matché. |
Definition at line 35 of file gmv-isomorphisme.cc.
bool CGMapVertex::findMotifFrom | ( | CDart * | AFromDart, |
unsigned int | AMarkTreated, | ||
unsigned int | AIndex, | ||
CGMapVertex * | AMap, | ||
CDart * | ADestDart, | ||
unsigned int | AMarkTreated2, | ||
unsigned int * | ANbMatched = NULL |
||
) |
Cherche si la carte *this est un motif de la carte AMap à partir du brin AFromDart dans la carte this et ADestDart dans la carte AMap. AMarkTreated est le numéro de marque utilisé pour marquer les brins déjà traités.
ANbMatched | un pointeur vers un entier. Si non nul, paramètre retour qui va contenir le nombre de brins matché. |
Definition at line 229 of file gmv-isomorphisme.cc.
INLINE CAttributeVertex * GMap3d::CGMapVertex::findVertex | ( | CDart * | ADart | ) |
Renvoie le sommet associé à un brin, en parcourant si nécessaire tous les brins du sommet.
ADart | Un brin de la carte |
Definition at line 84 of file gmv-inline.icc.
void CGMapVertex::geoBorderSew | ( | CDart * | ADart1, |
CDart * | ADart2, | ||
int | ADim, | ||
bool | ARotateCells = true , |
||
bool | AScaleCells = true , |
||
bool | ATranslateCells = true |
||
) |
Plaque le bord dimension ADim incident à ADart1 sur le bord de dimension ADim incident à ADart2 (si cela est possible) avant de les coudre entre eux.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ADim | La dimension dans laquelle doit se faire la couture |
ARotateCells | Un booléen pour modifier ou non l'orientation |
AScaleCells | Un booléen pour modifier ou non la taille |
ATranslateCells | Un booléen pour modifier ou non la position |
0 <= ADim <= 3 canSew(ADart1, ADart2, ADim)
Definition at line 58 of file gmv-geo-sew.cc.
void CGMapVertex::geoSew | ( | CDart * | ADart1, |
CDart * | ADart2, | ||
int | ADim, | ||
bool | ARotateCells = true , |
||
bool | AScaleCells = true , |
||
bool | ATranslateCells = true |
||
) |
Plaque la cellule de dimension ADim incidente à ADart1 sur la cellule de dimension ADim incidente à ADart2 (si cela est possible) avant de les coudre entre elles.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ADim | La dimension dans laquelle doit se faire la couture |
ARotateCells | Un booléen pour modifier ou non l'orientation |
AScaleCells | Un booléen pour modifier ou non la taille |
ATranslateCells | Un booléen pour modifier ou non la position |
0 <= ADim <= 3 canSew(ADart1, ADart2, ADim)
Definition at line 28 of file gmv-geo-sew.cc.
INLINE TCoordinate GMap3d::CGMapVertex::getBurstCoef | ( | int | ADim | ) | const |
Retourne le coefficient d'éclatement de la dimension ADim.
ADim | Une dimension |
Definition at line 67 of file gmv-inline.icc.
TBurstMethod CGMapVertex::getBurstMethod | ( | ) | const |
Definition at line 34 of file gmv-burstview.cc.
Retourne le plongement éclaté de la première extrémité du brin ADart donné.
ADart | Un brin de la carte |
Definition at line 152 of file gmv-inline.icc.
INLINE CAttributeVertex * GMap3d::CGMapVertex::getDirectInfoAsAttributeVertex | ( | CDart * | ADart, |
int | ADirectInfoIndex | ||
) | const |
Retourne le champ directInfo demandé du brin ADart après l'avoir retypé en pointeur sur un attribut sommet.
ADart | Un brin de la carte |
ADirectInfoIndex | Un indice de champ directInfo |
Definition at line 185 of file gmv-inline.icc.
INLINE TCoordinate * GMap3d::CGMapVertex::getDirectInfoAsCoord | ( | CDart * | ADart, |
int | ADirectInfoIndex | ||
) | const |
Retourne le champ directInfo demandé du brin ADart après l'avoir retypé en pointeur sur une coordonnée (TCoordinate).
ADart | Un brin de la carte |
ADirectInfoIndex | Un indice de champ directInfo |
Definition at line 202 of file gmv-inline.icc.
INLINE CVertex * GMap3d::CGMapVertex::getDirectInfoAsVertex | ( | CDart * | ADart, |
int | ADirectInfoIndex | ||
) | const |
Retourne le champ directInfo demandé du brin ADart après l'avoir retypé en pointeur sur un sommet.
ADart | Un brin de la carte |
ADirectInfoIndex | Un indice de champ directInfo |
Definition at line 194 of file gmv-inline.icc.
|
static |
Détermine le format du fichier dont le nom est passé en paramètre.
AFilename | Un nom de fichier |
Definition at line 40 of file gmv-save.cc.
|
static |
Retourne la chaîne de caractère placée en début d'un fichier de sauvegarde et permettant la reconnaissance du format utilisé lors de la sauvegarde.
AFormat | Un type de format |
Definition at line 54 of file gmv-save.cc.
int CGMapVertex::getOffDimension | ( | const char * | AFilename | ) |
Definition at line 370 of file gmv-off.cc.
Calcule la dimension maximum des cellules incidentes aux brins donnés qui peuvent être plaquées, en tenant compte de l'état des coutures de chacun de ces brins (par exemple, pour faire un placage de faces, il faut qu'au moins un des brins soit 3-cousu). Si le placage est impossible, la valeur -1 est retournée, sinon la valeur retournée vaut 0, 1 ou 2.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
Definition at line 34 of file gmv-plating.cc.
TCoordinate CGMapVertex::getTriangleCoef | ( | const CVertex & | AVertex1, |
const CVertex & | AVertex2, | ||
const CVertex & | AVertex3 | ||
) |
Definition at line 274 of file gmv-triangulation.cc.
INLINE CAttributeVertex * GMap3d::CGMapVertex::getVertex | ( | CDart * | ADart | ) | const |
Renvoie le sommet associé à un brin. La méthode renvoie NULL si le plongement sommet n'est pas porté par ADart.
ADart | Un brin de la carte |
Definition at line 93 of file gmv-inline.icc.
void CGMapVertex::giveNumberToDarts | ( | int | ADirectInfoIndex | ) |
Numérote les n brins de la carte de 0 à n-1 en utilisant un champ directInfo.
ADirectInfoIndex | Un indice indiquant où placer les numéros des brins |
Definition at line 32 of file gmv-save.cc.
CDart * CGMapVertex::importOff | ( | const char * | AFilename | ) |
Importe une carte à partir d'un fichier au format ASCII Object File Format. en lisant l'entête pour savoir si c'est un fichier off2D ou off3D. Les brins qui composent la carte avant le chargement ne sont pas détruits.
AFilename | Un nom de fichier |
Definition at line 384 of file gmv-off.cc.
CDart * CGMapVertex::importOff2D | ( | std::istream & | AStream | ) |
Importe une carte 2D à partir d'un flot au format ASCII Object File Format. Les brins qui composent la carte avant le chargement ne sont pas détruits.
AStream | Un flot dans lequel lire le contenu de la carte à charger |
Definition at line 139 of file gmv-off.cc.
CDart * CGMapVertex::importOff3D | ( | std::istream & | AStream | ) |
Importe une carte 3D à partir d'un flot au format ASCII Object File Format. Les brins qui composent la carte avant le chargement ne sont pas détruits.
AStream | Un flot dans lequel lire le contenu de la carte à charger |
Definition at line 280 of file gmv-off.cc.
Insère un sommet sur une arête. Le plongement du sommet créé correspond au milieu de l'arête initiale.
ADart | Un brin de la carte |
Reimplemented from GMap3d::CGMapGeneric.
Definition at line 28 of file gmv-insertion.cc.
bool CGMapVertex::intuitiveGeoBorderSew | ( | CDart * | ADart1, |
CDart * | ADart2, | ||
bool | ARotateCells = true , |
||
bool | AScaleCells = true , |
||
bool | ATranslateCells = true |
||
) |
Appelle la méthode 'geoSewBorders' après avoir déterminé la dimension dans laquelle doit se faire la couture à l'aide de la méthode 'getBorderDimension'.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ARotateCells | Un booléen pour modifier ou non l'orientation |
AScaleCells | Un booléen pour modifier ou non la taille |
ATranslateCells | Un booléen pour modifier ou non la position |
Definition at line 72 of file gmv-geo-sew.cc.
bool CGMapVertex::intuitiveGeoSew | ( | CDart * | ADart1, |
CDart * | ADart2, | ||
bool | ARotateCells = true , |
||
bool | AScaleCells = true , |
||
bool | ATranslateCells = true |
||
) |
Appelle la méthode 'geoSew' après avoir déterminé la dimension dans laquelle doit se faire la couture à l'aide de la méthode 'getSewDimension'.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ARotateCells | Un booléen pour modifier ou non l'orientation |
AScaleCells | Un booléen pour modifier ou non la taille |
ATranslateCells | Un booléen pour modifier ou non la position |
Definition at line 42 of file gmv-geo-sew.cc.
bool CGMapVertex::intuitivePlate | ( | CDart * | ADart1, |
CDart * | ADart2, | ||
bool | ARotateCells = true , |
||
bool | AScaleCells = true , |
||
bool | ATranslateCells = true |
||
) |
Effectue un placage comme la méthode 'plate'. La dimension du placage est déterminée par la méthode 'getPlateDimension'.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ARotateCells | Un booléen pour modifier ou non l'orientation |
AScaleCells | Un booléen pour modifier ou non la taille |
ATranslateCells | Un booléen pour modifier ou non la position |
Definition at line 119 of file gmv-plating.cc.
bool CGMapVertex::isPlanarPolyline | ( | CDart * | ADart | ) |
Teste si une face est plane.
ADart | Un brin quelconque de la carte |
Definition at line 36 of file gmv-polyline.cc.
bool CGMapVertex::isPointInTriangle | ( | const CVertex & | APoint, |
const CVertex & | AVertex1, | ||
const CVertex & | AVertex2, | ||
const CVertex & | AVertex3, | ||
const CVertex & | ANormal | ||
) |
Definition at line 260 of file gmv-triangulation.cc.
void CGMapVertex::linkFaceAlpha2OFF | ( | std::vector< std::list< CDart * > > & | ATestVertices, |
int | AIndex, | ||
CDart * | ADart | ||
) |
La face incidente à ADart vient d'être créé. Cherche à coudre toute ses arêtes par alpha2 en utilisant pour cela les arêtes existantes se trouvant dans ATestVertices et le directInfo AIndex étiquettant les brins avec le numéro du sommets incident.
Definition at line 33 of file gmv-off.cc.
CDart * CGMapVertex::load | ( | const char * | AFilename, |
TSaveFormat | AFormat | ||
) |
Charge la carte à partir d'un fichier. Les brins qui composent la carte avant le chargement ne sont pas détruits.
AFilename | Un nom de fichier |
AFormat | Un type de format de fichier |
Definition at line 80 of file gmv-save.cc.
|
virtual |
Charge la carte à partir d'un flot. Les brins qui composent la carte avant le chargement ne sont pas détruits.
AStream | Un flot dans lequel lire le contenu de la carte à charger |
AFormat | Un type de format de fichier |
CDart * CGMapVertex::load | ( | const char * | AFilename | ) |
Charge la carte à partir d'un fichier en détectant automatiquement le format.. Les brins qui composent la carte avant le chargement ne sont pas détruits.
AFilename | Un nom de fichier |
Definition at line 255 of file gmv-save.cc.
|
protectedvirtual |
Marque un brin sur deux des cellules de dimension ADim qui doivent être extrudées. Voir CGMapGeneric::markCellsToBeExtruded pour plus d'informations.
ADim | Une dimension (0, 1 ou 2) |
AMarkNumberSrce | Un numéro de marque source |
AMarkNumberDest | Un numéro de marque destination |
Reimplemented from GMap3d::CGMapGeneric.
Definition at line 80 of file gmv-extrusion.cc.
bool CGMapVertex::markNonPlanarPolylines | ( | int | AMarkNumber | ) |
Marque toutes les faces non planaires de la carte.
AMarkNumber | Un numéro de marque |
Definition at line 92 of file gmv-polyline.cc.
Matérialise l'axe déterminé par les deux brins donnés (qui ne doivent pas être sur la même orbite sommet) en créant une nouvelle arête. L'arête créée est constituée de deux brins 0-cousus.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
Definition at line 34 of file gmv-materialization.cc.
CDart * CGMapVertex::materializeBarycenter | ( | int | AMarkNumber | ) |
Insère un brin isolé dans la carte dont les coordonnées sont données par le barycentre des sommets incidents au brins de la carte marqués avec la marque AMarkNumber.
AMarkNumber |
Definition at line 29 of file gmv-materialization.cc.
Matérialise le plan normal du vecteur donné.
ADart1 | un brin de la carte |
ADart2 | un brin de la carte |
Definition at line 75 of file gmv-materialization.cc.
Matérialise le vecteur normal de la face incidente au brin donné.
ADart | un brin de la carte |
Definition at line 60 of file gmv-materialization.cc.
Matérialise le plan déterminé par les trois sommets incidentes aux brins donnés. L'objet créé est un triangle.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ADart3 | Un brin de la carte |
Definition at line 45 of file gmv-materialization.cc.
CDart * CGMapVertex::materializeReferential | ( | ) |
Matérialise le référentiel (OX,OY,OZ) avec 3 faces perpendiculaires 2-cousues. Chaque face est ouverte et n'est composée que de deux arêtes.
Definition at line 99 of file gmv-materialization.cc.
int CGMapVertex::mergeMarkedAlignedCells | ( | int | ADim, |
int | AMarkNumber, | ||
bool | ADeleteDarts | ||
) |
Fusionne lorsque cela est possible les arêtes ou les faces alignées.
ADim | La dimension (1 ou 2) des cellules à fusionner |
AMarkNumber | Un numéro de marque |
ADeleteDarts | Un booléen indiquant si la fusion doit se faire en supprimant des brins |
Definition at line 40 of file gmv-merge.cc.
int CGMapVertex::mergeMarkedColinearEdges | ( | int | AMarkNumber, |
bool | ADeleteDarts | ||
) |
Fusionne lorsque cela est possible (avec une arête qui leur est incidente) les arêtes dont un brin au moins est marqué, lorsqu'elles sont alignées.
AMarkNumber | Un numéro de marque |
ADeleteDarts | Un booléen indiquant si la fusion doit se faire en supprimant des brins |
Definition at line 30 of file gmv-merge.cc.
int CGMapVertex::mergeMarkedCoplanarFaces | ( | int | AMarkNumber, |
bool | ADeleteDarts | ||
) |
Fusionne lorsque cela est possible (avec une face qui leur est incidente) les faces dont un brin au moins est marqué, lorsqu'elles sont coplanaires.
AMarkNumber | Un numéro de marque |
ADeleteDarts | Un booléen indiquant si la fusion doit se faire en supprimant des brins |
Definition at line 35 of file gmv-merge.cc.
Crée une nouvelle instance de la classe CDartVertex.
Reimplemented from GMap3d::CGMapBasic.
Definition at line 39 of file gmv-inline.icc.
void CGMapVertex::normalizeParameter | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
TCoordinate | AMin, | ||
TCoordinate | AMax | ||
) |
Répartit sur le segment [AMin,AMax] par changement de repère 1d les valeurs (de type TCoordinate) pointées par le champ directInfo[ADirectInfoIndex] des brins porteurs d'un attribut sommet. Les sommets pris en compte sont ceux dont un brin au moins est marqué avec la marque AMarkNumber. Remarque: AMin peut être supérieur à AMax.
AMarkNumber | Un numéro de marque indiquant les sommets sélectionnés |
ADirectInfoIndex | Un indice indiquant où sont stockées les valeurs |
AMin | La borne inférieure du segment de normalisation |
AMax | La borne supérieure du segment de normalisation |
Definition at line 182 of file gmv-deformation.cc.
|
protected |
Calcule la longueur de la circonférence d'une orbite, c'est-à-dire la somme de la longueur de toutes les arêtes qui la constituent. Ce calcul n'alpha de sens que si AOrbit==ORBIT01 ou si AOrbit==ORBIT_BORDER1 ou si AOrbit==ORBIT_BORDER2.
ADart | Un brin de la carte |
AOrbit | Une orbite |
Definition at line 273 of file gmv-geometry.cc.
Calcule le vecteur normal d'une orbite. Ce calcul n'alpha de sens que si AOrbit==ORBIT01 ou si AOrbit==ORBIT_BORDER1 ou si AOrbit==ORBIT_BORDER2.
ADart | Un brin de la carte |
AOrbit | Une orbite |
Definition at line 363 of file gmv-geometry.cc.
void CGMapVertex::orthoProjectOnPlane | ( | int | AMarkNumber, |
TCoordinate | AA, | ||
TCoordinate | AB, | ||
TCoordinate | AC, | ||
TCoordinate | AD | ||
) |
Projette orthogonalement les sommets dont un brin au moins est marqué sur le plan d'équation AA * x + AB * y + AC * z + AD = 0.
AMarkNumber | Un numéro de marque |
A? | Les paramètres de l'équation cartésienne du plan |
Definition at line 563 of file gmv-deformation.cc.
void CGMapVertex::planarScale | ( | int | AMarkNumber, |
const CVertex & | APlaneVertex, | ||
const CVertex & | APlaneNormal, | ||
TCoordinate | ACoef, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique une homothétie de coefficient ACoef selon le plan déterminé par le sommet APlaneVertex et le vecteur APlaneNormal sur tous les sommets marqués avec la marque AMarkNumber.
Si ADirectInfoVertex est positif ou nul, l'homothétie est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, l'étirement est pondéré avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer l'homothétie |
APlaneVertex | Un sommet du plan d'homothétie |
APlaneNormal | Un vecteur normal du plan d'homothétie |
ACoef | Le coefficient d'homothétie |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
! APlaneNormal.isNull()
Definition at line 509 of file gmv-deformation.cc.
void CGMapVertex::plate | ( | CDart * | ADart1, |
CDart * | ADart2, | ||
int | ADimbool, | ||
bool | ARotateCells = true , |
||
bool | AScaleCells = true , |
||
bool | ATranslateCells = true |
||
) |
Plaque les cellules de dimension ADim incidentes aux brins ADart1 et ADart2. La cellule incidentes à ADart1 voit son plongement modifié pour se plaquer à la cellule incidente à ADart2. Le plongement de la cellule incidente à ADart2 n'est pas modifié. Le placage tient compte de l'état des booléen 'orientation', 'scale' et 'position'.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ADim | Une dimension |
ARotateCells | Un booléen pour modifier ou non l'orientation |
AScaleCells | Un booléen pour modifier ou non la taille |
ATranslateCells | Un booléen pour modifier ou non la position |
Definition at line 48 of file gmv-plating.cc.
void CGMapVertex::pointDirectInfoToAttributeVertex | ( | int | ADirectInfoIndex | ) |
Pour chaque brin b de la carte, fait pointer le champ directInfo numéro ADirectInfoNumber vers le plongement sommet du sommet auquel b appartient.
ADirectInfoIndex | Un indice indiquant quel directInfo utiliser |
Definition at line 125 of file gmv-direct-info.cc.
void CGMapVertex::pointDirectInfoToAttributeVertex | ( | int | ADirectInfoIndex, |
CDart * | ADart | ||
) |
Pour chaque brin b de l'orbite sommet correspondant à ADart, fait pointer le champ directInfo numéro ADirectInfoNumber vers le plongement sommet du sommet auquel b appartient.
ADirectInfoIndex | Un indice indiquant quel directInfo utiliser |
ADart | Un brin de la carte |
Definition at line 146 of file gmv-direct-info.cc.
void CGMapVertex::pointDirectInfoToAttributeVertex | ( | int | ADirectInfoIndex, |
CDart * | ADart, | ||
TOrbit | AOrbit | ||
) |
Pour chaque brin b de l'orbite AOrbit correspondant à ADart, fait pointer le champ directInfo numéro ADirectInfoNumber de tous les brins du sommet vers le plongement de ce sommet.
ADirectInfoIndex | Un indice indiquant quel directInfo utiliser |
ADart | Un brin de la carte |
AOrbit | Une orbite |
Definition at line 159 of file gmv-direct-info.cc.
Prolonge une polyligne (en rajoutant une arête à son bout). Si ADart vaut NULL, crée un premier brin d'une nouvelle polyligne.
ADart | Un brin constituant le bout d'une polyligne |
AVertex | Le plongement du sommet à rajouter au bout de la polyligne |
Definition at line 29 of file gmv-polyline.cc.
Surcharge la méthode 'quadrangulateFace' de la classe CGMapGeneric pour plonger le sommet qu'elle crée.
Remarque: Si AInsertVertices vaut 'vrai', les sommets insérés sur les arêtes de la face sont déjà plongés (car insertVertex est virtuelle).
ADart | Un brin de la carte |
Reimplemented from GMap3d::CGMapGeneric.
Definition at line 28 of file gmv-quadrangulation.cc.
Calcule la moyenne des vecteurs normaux des faces (restreintes au volume auquel appartient ADart) incidentes à la cellule de dimension ADim à laquelle ADart appartient. Les faces 3-cousues ne sont pas prises en compte dans le calcul. Le vecteur calculé peut être nul.
ADart | Un brin de la carte |
ADim | Une dimension (0, 1 ou 2) |
Definition at line 509 of file gmv-geometry.cc.
Calcule la moyenne des vecteurs normaux des faces incidentes à la cellule de dimension ADim à laquelle ADart appartient. Seules les faces dont un brin commun avec l'orbite (ADart, ORBIT_INF[ADart]) est marqué sont prises en compte. Le vecteur calculé peut être nul.
ADart | Un brin de la carte |
ADim | Une dimension (0, 1 ou 2) |
AMarkNumber | Un numéro de marque |
Definition at line 567 of file gmv-geometry.cc.
INLINE CAttributeVertex * GMap3d::CGMapVertex::removeVertex | ( | CDart * | ADart | ) |
Détache le plongement sommet du sommet topologique incident à ADart. Si le sommet n'est pas plongé, la méthode retourne NULL.
ADart | Un brin de la carte |
Definition at line 142 of file gmv-inline.icc.
void CGMapVertex::rotate | ( | int | AMarkNumber, |
const CVertex & | AAxeVertex, | ||
const CVertex & | AAxeDirection, | ||
TCoordinate | AAngle, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique une rotation sur tous les sommets marqués avec la marque AMarkNumber. Un sommet est modifié si au moins un brin de son orbite sommet est marqué.
Si ADirectInfoVertex est positif ou nul, la rotation est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, l'angle de rotation est pondéré avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer la rotation |
AAxeVertex | Un sommet de l'axe de rotation |
AAxeDirection | Un vecteur directeur de l'axe de rotation |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
!ALineDirection.isNull()
Definition at line 344 of file gmv-deformation.cc.
bool CGMapVertex::save | ( | const char * | AFilename, |
TSaveFormat | AFormat = AsciiFormat |
||
) |
Sauvegarde le contenu de la carte dans un fichier.
AFilename | Un nom de fichier |
AFormat | Un type de format de sauvegarde |
Definition at line 67 of file gmv-save.cc.
|
virtual |
Sauvegarde le contenu de la carte dans un flot.
AStream | Un flot dans lequel écrire le contenu de la carte |
AFormat | Un type de format de sauvegarde |
void CGMapVertex::scale | ( | int | AMarkNumber, |
const CVertex & | ACenter, | ||
const CVertex & | ACoef, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique un étirement sur tous les sommets marqués avec la marque AMarkNumber. Un sommet est modifié si au moins un brin de son orbite sommet est marqué.
Si ADirectInfoVertex est positif ou nul, l'étirement est appliqué sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, l'étirement est pondéré avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer l'étirement |
ACenter | Le centre d'étirement |
ACoef | Les coefficients d'étirement |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
Definition at line 397 of file gmv-deformation.cc.
void CGMapVertex::scale | ( | int | AMarkNumber, |
const CVertex & | ACenter, | ||
TCoordinate | ACoef, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique un étirement sur tous les sommets marqués avec la marque AMarkNumber. Pour plus d'informations, voir la méthode 'scale' ci-dessus.
Remarque: La différence avec la méthode précédente réside dans le coefficient d'homothétie. Ici ce coefficient est un nombre réel, ce qui correspond à une homothétie avec des coefficients identiques dans les trois dimensions.
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer l'étirement |
ACenter | Le centre d'étirement |
ACoef | Le coefficient d'étirement |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
Definition at line 446 of file gmv-deformation.cc.
INLINE void GMap3d::CGMapVertex::setBurstCoef | ( | int | ADim, |
TCoordinate | ACoef | ||
) |
Positionne le coefficient d'éclatement de la dimension ADim à la valeur ACoef.
ADim | Une dimension |
ACoef | Une valeur comprise entre 0 et 1. |
Definition at line 75 of file gmv-inline.icc.
void CGMapVertex::setBurstMethod | ( | TBurstMethod | AMethod | ) |
Sélection de la méthode de calcul des sommets éclatés :
Definition at line 28 of file gmv-burstview.cc.
Affecte le plongement éclaté de la première extrémité du brin ADart donné.
ADart | Un brin de la carte |
AVertex | Les nouvelles coordonnées |
Definition at line 159 of file gmv-inline.icc.
Affecte le plongement AVertex au brin ADart.
ADart | Un brin de la carte |
AVertex | Un sommet |
findVertex(ADart)==NULL
Definition at line 102 of file gmv-inline.icc.
INLINE void GMap3d::CGMapVertex::setVertex | ( | CDart * | ADart, |
CAttributeVertex * | AVertex | ||
) |
Definition at line 111 of file gmv-inline.icc.
bool CGMapVertex::shouldSwapEdge | ( | CDart * | AEdge, |
int | AVertexDI = -1 |
||
) |
Definition at line 190 of file gmv-triangulation.cc.
unsigned int CGMapVertex::simplify2DObject | ( | int | AMark0, |
int | AMark1 | ||
) |
Simplify the 2G-map by removing each degree two edge, each dangling edge, and then each degree two vertex. There is no fictive edge shifting. AMarki is a mark used to mark darts deleted by i-removal. If AMarki==-1, corresponding darts are removed from the map. Otherwise, they are not removed but only marked.
Definition at line 1819 of file gmv-merge.cc.
unsigned int CGMapVertex::simplify2DObject | ( | unsigned int | optosimplify = EDGE_REMOVAL | VERTEX_REMOVAL | EDGE_CONTRACTION | FACE_CONTRACTION | ) |
Simplify the 2G-map. optosimplify contains a value giving which cells will be simplified: a or between NONE,EDGE_REMOVAL,VERTEX_REMOVAL, EDGE_CONTRACTION, FACE_CONTRACTION.
Definition at line 3032 of file gmv-merge.cc.
unsigned int CGMapVertex::simplify2DObjectContraction | ( | unsigned int | optosimplify | ) |
Simplify the map using removal operations only.
Definition at line 2335 of file gmv-merge.cc.
unsigned int CGMapVertex::simplify2DObjectRemoval | ( | unsigned int | optosimplify | ) |
Simplify the map using removal operations only.
Definition at line 2033 of file gmv-merge.cc.
unsigned int CGMapVertex::simplify3DObject | ( | int | AMark0, |
int | AMark1, | ||
int | AMark2 = -1 |
||
) |
Simplify the map by removing each degree two face, each dangling face, then each degree two edge, each dangling edge, and then each degree two vertex. There is no fictive face or edge shifting. AMarki is a mark used to mark darts deleted by i-removal. If AMarki==-1, corresponding darts are removed from the map. Otherwise, they are not removed but only marked.
Definition at line 102 of file gmv-merge.cc.
unsigned int CGMapVertex::simplify3DObject | ( | unsigned int | optosimplify = FACE_REMOVAL | EDGE_REMOVAL | VERTEX_REMOVAL | EDGE_CONTRACTION | FACE_CONTRACTION | VOLUME_CONTRACTION | ) |
Simplify the 3G-map. Equivalent to simplify3DObject(-1,-1,-1) but optimized. optosimplify contains a value giving which cells will be simplified: a or between NONE,FACE_REMOVAL,EDGE_REMOVAL,VERTEX_REMOVAL, EDGE_CONTRACTION, FACE_CONTRACTION, VOLUME_CONTRACTION.
Definition at line 1813 of file gmv-merge.cc.
unsigned int CGMapVertex::simplify3DObjectContraction | ( | unsigned int | optosimplify | ) |
Simplify the map using removal operations only.
Definition at line 864 of file gmv-merge.cc.
unsigned int CGMapVertex::simplify3DObjectRemoval | ( | unsigned int | optosimplify | ) |
Simplify the map using removal operations only.
Definition at line 422 of file gmv-merge.cc.
|
virtual |
Surcharge la méthode 'stopUp' de la classe CGMapGeneric, pour plonger les sommets créés dans le cas de bouchage de 0-bord.
ADart | Un brin quelconque d'un bord de dimension ADim |
ADim | Une dimension |
Reimplemented from GMap3d::CGMapGeneric.
Definition at line 28 of file gmv-stop-up.cc.
bool CGMapVertex::swapEdge | ( | CDart * | AEdge, |
int | AVertexDI = -1 |
||
) |
Tourne l'arête incidente à AEdge. Si AVertexDI est != -1, met à jour le directInfo correspondant pour qu'il pointe sur les bons sommets. L'arête est tournée selon le schéma suivant: p[0] /|#\ / || \ / || \ p[1] === === p[3] \ || / \ || / ||/ p[2]
|| arête d'origine == futur arête
Definition at line 224 of file gmv-triangulation.cc.
int CGMapVertex::thickenMarkedDarts | ( | int | AMarkNumber, |
TCoordinate | AExtrusionCoef | ||
) |
Épaissit les brins marqués avec la marque AMarkNumber. La méthode se réserve 2 champs directInfo puis appelle 'CGMapGeneric::thickenMarkedDarts'. Elle calcule ensuite le plongement des sommets créés à l'aide de la méthode 'regionNormalVector' (le vecteur obtenu est pondéré avec le coefficient AExtrusionCoef) puis libère les champs directInfo réservés.
AMarkNumber | Un numéro de marque |
AExtrusionCoef | Un coefficient d'épaississement utilisé pour pondérer le vecteur d'extrusion. |
Definition at line 31 of file gmv-thickening.cc.
void CGMapVertex::translate | ( | int | AMarkNumber, |
const CVertex & | AVector, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique une translation sur tous les sommets marqués avec la marque AMarkNumber. Un sommet est modifié si au moins un brin de son orbite sommet est marqué.
Si ADirectInfoVertex est positif ou nul, la translation est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, la translation est pondérée avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer la translation |
AVector | Le vecteur de translation |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
Definition at line 295 of file gmv-deformation.cc.
Surcharge la méthode 'triangulateEdge' de la classe CGMapGeneric pour plonger le sommet qu'elle crée.
ADart | Un brin de la carte |
Reimplemented from GMap3d::CGMapGeneric.
Definition at line 31 of file gmv-triangulation.cc.
Surcharge la méthode 'triangulateFace' de la classe CGMapGeneric pour plonger le sommet qu'elle crée.
ADart | Un brin de la carte |
Reimplemented from GMap3d::CGMapGeneric.
Definition at line 42 of file gmv-triangulation.cc.
void CGMapVertex::triangulateGeoFace | ( | CDart * | AFace, |
int | ANewEdgesMark = -1 , |
||
int | AVertexDI = -1 |
||
) |
Triangulation "géométrique" de la face incidente à AFace. Si ANewEdgesMark !=-1, les nouvelles arêtes sont marquées avec cette marque. Si AVertexDI, met à jour le directInfo correspondant pour qu'il pointe sur les bons sommets.
Definition at line 67 of file gmv-triangulation.cc.
void CGMapVertex::triangulateMarkedFaces | ( | int | AMark, |
int | ANewEdgesMark = -1 , |
||
int | AVertexDI = -1 |
||
) |
Triangulation "géométrique" de toutes les faces marquées avec AMark. Si ANewEdgesMark !=-1, les nouvelles arêtes sont marquées avec cette marque. Si AVertexDI, met à jour le directInfo correspondant pour qu'il pointe sur les bons sommets.
Definition at line 154 of file gmv-triangulation.cc.
Surcharge la méthode 'triangulateVolume' de la classe CGMapGeneric pour plonger le sommet qu'elle crée.
ADart | Un brin de la carte |
Reimplemented from GMap3d::CGMapGeneric.
Definition at line 53 of file gmv-triangulation.cc.
void CGMapVertex::unmarkMotifMark | ( | CDart * | ADart, |
int | AMark, | ||
int | AIndex, | ||
CGMapVertex * | AMap, | ||
CDart * | ADart2, | ||
int | AMark2 | ||
) |
Met le champ directinfo du motif d'origine ADart à Null. Le parcours du motif utilise la marque AMark. En même temps, la carte AMap est démarqué pour la marque AMark2.
Definition at line 193 of file gmv-isomorphisme.cc.
void CGMapVertex::updateAllBurstDarts | ( | ) |
Met à jour le plongement éclaté de tous les brins de la carte.
Definition at line 37 of file gmv-burstview.cc.
void CGMapVertex::updateDirectInfoWithVertex | ( | int | ADirectInfoNumber | ) |
Copie les attributs sommets vers le champ directInfo spécifié, pour les brins dont ce champ est non NULL.
Attention: ces brins sélectionnés devraient être les mêmes qu'au moment de l'appel à duplicateVertexToDirectInfo!
ADirectInfoNumber | Un indice indiquant quel directInfo utiliser |
Definition at line 116 of file gmv-direct-info.cc.
void CGMapVertex::updateMarkedBurstDarts | ( | int | AMarkNumber, |
bool | AUpdateIncidentVolumes = true |
||
) |
Met à jour le plongement éclaté des brins marqués avec la marque AMarkNumber. Si AUpdateIncidentVolumes vaut 'vrai', c'est le plongement éclaté de tous les brins des volumes incidents à un sommet dont un brin au moins est marqué avec la marque AMarkNumber qui est mis à jour.
AMarkNumber | Un numéro de marque |
AUpdateIncidentVolumes | Un booléen |
Definition at line 46 of file gmv-burstview.cc.
|
protected |
Definition at line 63 of file gmv-burstview.cc.
|
protected |
Il faut debugger cette méthode et la suivante
Definition at line 215 of file gmv-burstview.cc.
Ecrase s'il existe le plongement sommet du brin ADart avec le sommet AVertex. Si le sommet topologique incident à ADart n'est pas plongé, la méthode est équivalente à un appel à 'setVertex'.
ADart | Un brin de la carte |
AVertex | Un sommet |
Definition at line 121 of file gmv-inline.icc.