59 #ifndef MESHSELECTION_HH
60 #define MESHSELECTION_HH
86 template<
typename MeshT >
88 void selectVertices(MeshT* _mesh,
const std::vector< int >& _vertices);
91 template<
typename MeshT >
93 void unselectVertices(MeshT* _mesh,
const std::vector< int >& _vertices);
96 template<
typename MeshT >
98 void selectAllVertices(MeshT* _mesh);
101 template<
typename MeshT >
103 void clearVertexSelection(MeshT* _mesh);
106 template<
typename MeshT >
108 void invertVertexSelection(MeshT* _mesh);
112 template<
typename MeshT >
114 void selectBoundaryVertices(MeshT* _mesh);
118 template<
typename MeshT >
120 void shrinkVertexSelection(MeshT* _mesh) ;
124 template<
typename MeshT >
126 void growVertexSelection(MeshT* _mesh);
130 template<
typename MeshT >
132 std::vector< int > getVertexSelection(MeshT* _mesh);
137 template<
typename MeshT >
139 std::vector< int > getVertexSelection(MeshT* _mesh,
bool& _invert);
149 template<
typename MeshT >
151 void selectBoundaryVertices(MeshT* _mesh,
const typename MeshT::VertexHandle& _vh);
157 template<
typename MeshT >
159 void convertVertexToEdgeSelection(MeshT* _mesh,
const std::vector< int >& _vertices);
164 template<
typename MeshT >
166 void convertVertexToEdgeSelection(MeshT* _mesh);
172 template<
typename MeshT >
174 void convertVertexToHalfedgeSelection(MeshT* _mesh,
const std::vector< int >& _vertices);
179 template<
typename MeshT >
181 void convertVertexToHalfedgeSelection(MeshT* _mesh);
187 template<
typename MeshT >
189 void convertVertexToFaceSelection(MeshT* _mesh,
const std::vector< int >& _vertices);
194 template<
typename MeshT >
196 void convertVertexToFaceSelection(MeshT* _mesh);
201 template<
typename MeshT >
203 void convertVertexSelectionToFeatureVertices(MeshT* _mesh);
208 template<
typename MeshT >
210 void convertFeatureVerticesToVertexSelection(MeshT* _mesh);
215 template<
typename MeshT >
217 void clearFeatureVertices(MeshT* _mesh);
230 template<
typename MeshT >
232 void setArea(MeshT* _mesh,
const std::vector< int >& _vertices ,
unsigned int _type,
bool _state);
237 template<
typename MeshT >
239 void setArea(MeshT* _mesh ,
unsigned int _type,
bool _state);
243 template<
typename MeshT >
245 std::vector< int > getArea(MeshT* _mesh,
unsigned int _type);
250 template<
typename MeshT >
252 std::vector< int > getArea(MeshT* _mesh,
unsigned int _type ,
bool& _invert);
262 template<
typename MeshT >
264 void selectEdges(MeshT* _mesh,
const std::vector< int >& _edges);
267 template<
typename MeshT >
269 void unselectEdges(MeshT* _mesh,
const std::vector< int >& _edges);
272 template<
typename MeshT >
274 void selectAllEdges(MeshT* _mesh);
277 template<
typename MeshT >
279 void clearEdgeSelection(MeshT* _mesh);
282 template<
typename MeshT >
284 void invertEdgeSelection(MeshT* _mesh);
287 template<
typename MeshT >
289 void growEdgeSelection(MeshT* _mesh);
292 template<
typename MeshT >
293 void selectBoundaryEdges(MeshT* _mesh);
297 template<
typename MeshT >
299 std::vector< int > getEdgeSelection(MeshT* _mesh);
304 template<
typename MeshT >
306 std::vector< int > getEdgeSelection(MeshT* _mesh,
bool& _invert);
312 template<
typename MeshT >
314 void convertEdgeToVertexSelection(MeshT* _mesh,
const std::vector< int >& _edges);
319 template<
typename MeshT >
321 void convertEdgeToVertexSelection(MeshT* _mesh);
327 template<
typename MeshT >
329 void convertEdgeToFaceSelection(MeshT* _mesh,
const std::vector< int >& _edges);
334 template<
typename MeshT >
336 void convertEdgeToFaceSelection(MeshT* _mesh);
341 template<
typename MeshT >
343 void convertEdgeToHalfedgeSelection(MeshT* _mesh);
348 template<
typename MeshT >
350 void convertEdgeSelectionToFeatureEdges(MeshT* _mesh);
355 template<
typename MeshT >
357 void convertFeatureEdgesToEdgeSelection(MeshT* _mesh);
362 template<
typename MeshT >
364 void clearFeatureEdges(MeshT* _mesh);
375 template<
typename MeshT >
377 void selectHalfedges(MeshT* _mesh,
const std::vector< int >& _halfedges);
380 template<
typename MeshT >
382 void unselectHalfedges(MeshT* _mesh,
const std::vector< int >& _halfedges);
385 template<
typename MeshT >
387 void selectAllHalfedges(MeshT* _mesh);
390 template<
typename MeshT >
392 void clearHalfedgeSelection(MeshT* _mesh);
395 template<
typename MeshT >
397 void invertHalfedgeSelection(MeshT* _mesh);
400 template<
typename MeshT >
401 void selectBoundaryHalfedges(MeshT* _mesh);
405 template<
typename MeshT >
407 std::vector< int > getHalfedgeSelection(MeshT* _mesh);
412 template<
typename MeshT >
414 void convertHalfedgeToVertexSelection(MeshT* _mesh);
419 template<
typename MeshT >
421 void convertHalfedgeToEdgeSelection(MeshT* _mesh);
426 template<
typename MeshT >
428 void convertHalfedgeToFaceSelection(MeshT* _mesh);
436 template<
typename MeshT >
438 void selectFaces(MeshT* _mesh,
const std::vector< int >& _faces );
441 template<
typename MeshT >
443 void unselectFaces(MeshT* _mesh,
const std::vector< int >& _faces );
446 template<
typename MeshT >
448 void selectAllFaces(MeshT* _mesh);
451 template<
typename MeshT >
453 void clearFaceSelection(MeshT* _mesh);
456 template<
typename MeshT >
458 void invertFaceSelection(MeshT* _mesh);
461 template<
typename MeshT >
462 void selectBoundaryFaces(MeshT* _mesh);
468 template<
typename MeshT >
470 void shrinkFaceSelection(MeshT* _mesh);
476 template<
typename MeshT >
478 void growFaceSelection(MeshT* _mesh);
482 template<
typename MeshT >
484 std::vector< int > getFaceSelection(MeshT* _mesh);
489 template<
typename MeshT >
491 std::vector< int > getFaceSelection(MeshT* _mesh,
bool& _invert);
497 template<
typename MeshT >
499 void convertFaceToVertexSelection(MeshT* _mesh,
const std::vector< int >& _faces);
504 template<
typename MeshT >
506 void convertFaceToVertexSelection(MeshT* _mesh);
511 template<
typename MeshT >
513 void convertFaceToEdgeSelection(MeshT* _mesh);
518 template<
typename MeshT >
520 void convertFaceToHalfedgeSelection(MeshT* _mesh);
525 template<
typename MeshT >
527 void convertFaceSelectionToFeatureFaces(MeshT* _mesh);
532 template<
typename MeshT >
534 void convertFeatureFacesToFaceSelection(MeshT* _mesh);
539 template<
typename MeshT >
541 void clearFeatureFaces(MeshT* _mesh);
548 #if defined(INCLUDE_TEMPLATES) && !defined(MESHSELECTION_C)
549 #define MESHSELECTION_TEMPLATES
550 #include "MeshSelectionT.cc"
553 #endif // MESHSELECTION_HH defined