vtf-logo

set.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00008 #if !defined(__geom_mesh_simplicial_set_h__)
00009 #define __geom_mesh_simplicial_set_h__
00010 
00011 #include "SimpMeshRed.h"
00012 #include "accessors.h"
00013 
00014 BEGIN_NAMESPACE_GEOM
00015 
00016 
00018 
00025 template<typename NodeInIter, class LSF, typename OutIter>
00026 void
00027 determineNodesOutside(NodeInIter begin, NodeInIter end,
00028                       const LSF& f, OutIter iter);
00029 
00030 
00032 
00043 template<int N, int M, typename T,
00044          template<class> class Node,
00045          template<class> class Cell,
00046          template<class,class> class Cont,
00047          class LSF, typename OutIter>
00048 inline
00049 void
00050 determineNodesOutside(const SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00051                       const LSF& f, OutIter iter) {
00052   determineNodesOutside(mesh.getNodesBeginning(), mesh.getNodesEnd(), f, iter);
00053 }
00054 
00055 
00057 
00068 template<int N, int M, typename T,
00069          template<class> class Node,
00070          template<class> class Cell,
00071          template<class,class> class Cont,
00072          class LSF, typename OutIter>
00073 inline
00074 void
00075 determineNodesOutside(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00076                       const LSF& f, OutIter iter) {
00077   determineNodesOutside(mesh.getNodesBeginning(), mesh.getNodesEnd(), f, iter);
00078 }
00079 
00080 
00081 
00082 
00084 
00094 template<typename CellInIter, class LSF, typename OutIter>
00095 void
00096 determineCellsOutside(CellInIter begin, CellInIter end,
00097                       const LSF& f, OutIter iter);
00098 
00099 
00101 
00112 template<int N, int M, typename T,
00113          template<class> class Node,
00114          template<class> class Cell,
00115          template<class,class> class Cont,
00116          class LSF, typename OutIter>
00117 inline
00118 void
00119 determineCellsOutside(const SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00120                       const LSF& f, OutIter iter) {
00121   determineCellsOutside(mesh.getCellsBeginning(), mesh.getCellsEnd(), f, iter);
00122 }
00123 
00124 
00126 
00137 template<int N, int M, typename T,
00138          template<class> class Node,
00139          template<class> class Cell,
00140          template<class,class> class Cont,
00141          class LSF, typename OutIter>
00142 inline
00143 void
00144 determineCellsOutside(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00145                       const LSF& f, OutIter iter) {
00146   determineCellsOutside(mesh.getCellsBeginning(), mesh.getCellsEnd(), f, iter);
00147 }
00148 
00149 
00150 
00151 
00153 
00158 template<typename NodeInIter, typename OutIter>
00159 void
00160 getNodes(NodeInIter begin, NodeInIter end, OutIter iter);
00161 
00162 
00164 
00173 template<int N, int M, typename T,
00174          template<class> class Node,
00175          template<class> class Cell,
00176          template<class,class> class Cont,
00177          typename OutIter>
00178 inline
00179 void
00180 getNodes(const SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh, OutIter iter) {
00181   getNodes(mesh.getNodesBeginning(), mesh.getNodesEnd(), iter);
00182 }
00183 
00184 
00186 
00195 template<int N, int M, typename T,
00196          template<class> class Node,
00197          template<class> class Cell,
00198          template<class,class> class Cont,
00199          typename OutIter>
00200 inline
00201 void
00202 getNodes(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh, OutIter iter) {
00203   getNodes(mesh.getNodesBeginning(), mesh.getNodesEnd(), iter);
00204 }
00205 
00206 
00207 
00208 
00210 
00215 template<typename NodeInIter, typename OutIter>
00216 void
00217 determineInteriorNodes(NodeInIter begin, NodeInIter end, OutIter iter);
00218 
00219 
00221 
00230 template<int N, int M, typename T,
00231          template<class> class Node,
00232          template<class> class Cell,
00233          template<class,class> class Cont,
00234          typename OutIter>
00235 inline
00236 void
00237 determineInteriorNodes(const SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh, 
00238                        OutIter iter) {
00239   determineInteriorNodes(mesh.getNodesBeginning(), mesh.getNodesEnd(), iter);
00240 }
00241 
00242 
00244 
00253 template<int N, int M, typename T,
00254            template<class> class Node,
00255            template<class> class Cell,
00256            template<class,class> class Cont,
00257            typename OutIter>
00258 inline
00259 void
00260 determineInteriorNodes(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh, 
00261                        OutIter iter) {
00262   determineInteriorNodes(mesh.getNodesBeginning(), mesh.getNodesEnd(), iter);
00263 }
00264 
00265 
00266 
00267 
00269 
00274 template<typename NodeInIter, typename OutIter>
00275 void
00276 determineBoundaryNodes(NodeInIter begin, NodeInIter end, OutIter iter);
00277 
00278 
00280 
00289 template<int N, int M, typename T,
00290          template<class> class Node,
00291          template<class> class Cell,
00292          template<class,class> class Cont,
00293          typename OutIter>
00294 inline
00295 void
00296 determineBoundaryNodes(const SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh, 
00297                        OutIter iter) {
00298   determineBoundaryNodes(mesh.getNodesBeginning(), mesh.getNodesEnd(), iter);
00299 }
00300 
00301 
00303 
00312 template<int N, int M, typename T,
00313            template<class> class Node,
00314            template<class> class Cell,
00315            template<class,class> class Cont,
00316            typename OutIter>
00317 inline
00318 void
00319 determineBoundaryNodes(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh, 
00320                        OutIter iter) {
00321   determineBoundaryNodes(mesh.getNodesBeginning(), mesh.getNodesEnd(), iter);
00322 }
00323 
00324 
00325 
00326 
00328 
00334 template<typename CellInIter, typename OutIter>
00335 void
00336 determineCellsWithRequiredAdjacencies(CellInIter begin, CellInIter end, 
00337                                       int minimumRequiredAdjacencies, 
00338                                       OutIter iter);
00339 
00340 
00342 
00352 template<int N, int M, typename T,
00353          template<class> class Node,
00354          template<class> class Cell,
00355          template<class,class> class Cont,
00356          typename OutIter>
00357 inline
00358 void
00359 determineCellsWithRequiredAdjacencies
00360 (const SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh, 
00361  const int minimumRequiredAdjacencies, OutIter iter) {
00362   determineCellsWithRequiredAdjacencies(mesh.getCellsBeginning(), 
00363                                         mesh.getCellsEnd(), 
00364                                         minimumRequiredAdjacencies, iter);
00365 }
00366 
00367 
00369 
00380 template<int N, int M, typename T,
00381          template<class> class Node,
00382          template<class> class Cell,
00383          template<class,class> class Cont,
00384          typename OutIter>
00385 inline
00386 void
00387 determineCellsWithRequiredAdjacencies(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh, 
00388                                       const int minimumRequiredAdjacencies, 
00389                                       OutIter iter)
00390 {
00391   determineCellsWithRequiredAdjacencies(mesh.getCellsBeginning(), 
00392                                         mesh.getCellsEnd(), 
00393                                         minimumRequiredAdjacencies, iter);
00394 }
00395 
00396 
00397 
00398 
00399 
00401 
00408 template<typename CellInIter, typename OutIter>
00409 void
00410 determineCellsWithLowAdjacencies(CellInIter begin, CellInIter end, 
00411                                  const int minimumRequiredAdjacencies, 
00412                                  OutIter iter);
00413 
00414 
00416 
00426 template<int N, int M, typename T,
00427          template<class> class Node,
00428          template<class> class Cell,
00429          template<class,class> class Cont,
00430          typename OutIter>
00431 inline
00432 void
00433 determineCellsWithLowAdjacencies(const SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00434                                  const int minimumRequiredAdjacencies, 
00435                                  OutIter iter) {
00436   determineCellsWithLowAdjacencies(mesh.getCellsBeginning(), 
00437                                    mesh.getCellsEnd(), 
00438                                    minimumRequiredAdjacencies, iter);
00439 }
00440 
00441 
00443 
00453 template<int N, int M, typename T,
00454          template<class> class Node,
00455          template<class> class Cell,
00456          template<class,class> class Cont,
00457          typename OutIter>
00458 inline
00459 void
00460 determineCellsWithLowAdjacencies(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh, 
00461                                  const int minimumRequiredAdjacencies, 
00462                                  OutIter iter) {
00463   determineCellsWithLowAdjacencies(mesh.getCellsBeginning(), 
00464                                    mesh.getCellsEnd(), 
00465                                    minimumRequiredAdjacencies, iter);
00466 }
00467 
00468 
00469 
00470 
00471 
00473 
00477 template<int N, int M, typename T,
00478            template<class> class Node,
00479            template<class> class Cell,
00480            template<class,class> class Cont>
00481 void
00482 determineNeighbors(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00483                    typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00484                    NodeIterator node,
00485                    typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00486                    NodeIteratorSet* neighbors);
00487 
00488 
00490 
00494 template<int N, int M, typename T,
00495          template<class> class Node,
00496          template<class> class Cell,
00497          template<class,class> class Cont>
00498 void
00499 determineBoundaryNeighbors(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00500                            typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00501                            NodeIterator node,
00502                            typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00503                            NodeIteratorSet* neighbors);
00504 
00505 
00507 
00510 template<int N, int M, typename T,
00511            template<class> class Node,
00512            template<class> class Cell,
00513            template<class,class> class Cont>
00514 void
00515 determineNeighbors(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00516                   typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00517                   NodeIterator node,
00518                   int radius,
00519                   typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00520                   NodeIteratorSet* neighbors);
00521 
00522 
00523 
00525 template<int N, int M, typename T,
00526          template<class> class Node,
00527          template<class> class Cell,
00528          template<class,class> class Cont>
00529 void
00530 determineFacesOfIncidentCells(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00531                               typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00532                               NodeIterator node,
00533                               typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00534                               FaceSet* faces);
00535 
00536 
00537 
00539 
00550 template<int N, int M, typename T,
00551            template<class> class Node,
00552            template<class> class Cell,
00553            template<class,class> class Cont,
00554            typename IntInIter>
00555 void
00556 convertIdentifiersToIterators(SimpMeshRed<N,M,T,Node,Cell,Cont>& mesh,
00557                               IntInIter begin, IntInIter end,
00558                               typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00559                               CellIteratorSet* cells);
00560 
00561 END_NAMESPACE_GEOM
00562 
00563 #define __geom_mesh_simplicial_set_ipp__
00564 #include "set.ipp"
00565 #undef __geom_mesh_simplicial_set_ipp__
00566 
00567 #endif

Generated on Fri Aug 24 12:55:56 2007 for Computational Geometry Package by  doxygen 1.4.7