cgogn / CGoGN_2

n-dimensional Meshes with Combinatorial Maps
https://cgogn.github.io
GNU Lesser General Public License v2.1
20 stars 19 forks source link

Boundary management #79

Closed untereiner closed 8 years ago

untereiner commented 8 years ago

Find a way to manage the 2D and 3D boundary

untereiner commented 8 years ago

En dimension 3 c'est intéressant de parcourir le bord de manière efficace et à la manière d'une 2-carte. Est-ce que l'on peut envisager stocker directement les brins du bord dans un container à part entier ? On le traite de toute manière un peu à part déjà.

untereiner commented 8 years ago

oh esprits de l'internet je vous invoque @pierrekraemer et @david-cazier Un avis ?

pierrekraemer commented 8 years ago

On a commencé à y refléchir avec Sylvain hier. On propose de faire une réunion de vive voix à ce sujet. On se planifie ça bientôt ?

untereiner commented 8 years ago

semaine prochaine ? lundi/mardi/mercredi ?

pierrekraemer commented 8 years ago

Mercredi matin ? 9h ?

david-cazier commented 8 years ago

Ca marche

-- David Cazier Professeur à l'université de Strasbourg - Laboratoire ICube Equipe projet INRIA MIMESIS

2016-01-27 12:10 GMT+01:00 Pierre Kraemer notifications@github.com:

Mercredi matin ? 9h ?

— Reply to this email directly or view it on GitHub https://github.com/cgogn/CGoGN_2/issues/79#issuecomment-175564286.

untereiner commented 8 years ago

Je viens penser qu'il faudrait un mécanisme similaire au topo_cache pour tester si une cellule est du bord. Notamment pour accélérer certains algorithmes des 3-cartes. Un boundary_cache, avec les mêmes contraintes que l'autre.

Un truc du style

template <Orbit ORBIT, BoundaryStrategy STRATEGY = BoundaryStrategy::AUTO>
inline bool is_boundary(Cell<ORBIT> c) const
{
   switch (STRATEGY)
  {
        case CACHE:
            return boundary_cache[c]; break;
       case 
          fforeach_dart_of_orbit....... ; break;
  }
}