Moka kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gmg-removal.hh File Reference

Go to the source code of this file.

Functions

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)
 

Function Documentation

bool canRemove ( CDart *  ADart,
int  ADim 
)
Parameters
ADartUn pointeur sur un brin
ADimUne dimension
Returns
Un booléen indiquant si la cellule peut être supprimée.
void remove ( CDart *  ADart,
int  ADim,
bool  ADeleteDarts = false 
)

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

Parameters
ADartUn pointeur sur brin
ADimUne dimension
ADeleteDartsUn booléen indiquant s'il faut supprimer les brins correspondant à la cellule supprimée.

canRemove(ADart, ADim)

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

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

Parameters
AMarkNumberUn numéro de marque
ADimUne dimension (0, 1 ou 2)
ADeleteDartsUn booléen indiquant si la suppression doit se faire en supprimant des brins
Returns
Le nombre de suppressions effectuées
int removeMarkedEdgesWithoutDisconnection ( int  AMarkNumber)

Supprime lorsque cela est possible les arêtes dont un brin au moins est marqué, tout en évitant les déconnexions, sans se préoccuper des faces fictives éventuelles.

Parameters
AMarkNumberUn numéro de marque
Returns
Le nombre de suppressions effectuées
int removeMarkedEdgesWithoutDisconnectionForSurface ( int  AMarkNumber)

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

int removeMarkedEdgesWithoutDisconnectionWithFaceShifting ( int  AMarkNumber)

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

Parameters
AMarkNumberUn numéro de marque
Returns
Le nombre de suppressions effectuées
int removeMarkedFacesButKeepBalls ( int  AMarkNumber)

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

Parameters
AMarkNumberUn numéro de marque
Returns
Le nombre de suppressions effectuées
int removeMarkedVerticesWithFictiveEdgeShifting ( int  AMarkNumber)

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

Parameters
AMarkNumberUn numéro de marque
Returns
Le nombre de suppressions effectuées