vtf-logo

set.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00008 #if !defined(__geom_mesh_iss_set_h__)
00009 #define __geom_mesh_iss_set_h__
00010 
00011 #include "IndSimpSetIncAdj.h"
00012 #include "ISS_SimplexQuery.h"
00013 
00014 #include <set>
00015 #include <stack>
00016 
00017 BEGIN_NAMESPACE_GEOM
00018 
00019 //-----------------------------------------------------------------------------
00024 
00026 
00036 template<int N, int M, bool A, typename T, typename V, typename IS,
00037          class LSF, typename IntOutIter>
00038 void
00039 determineVerticesInside(const IndSimpSet<N,M,A,T,V,IS>& mesh, 
00040                         const LSF& f, IntOutIter indexIterator);
00041 
00042 
00044 
00055 template<int N, int M, bool A, typename T, typename V, typename IS,
00056          class LSF, typename IntOutIter>
00057 void
00058 determineSimplicesInside(const IndSimpSet<N,M,A,T,V,IS>& mesh, 
00059                          const LSF& f, IntOutIter indexIterator);
00060 
00061 
00063 
00070 template<int N, int M, bool A, typename T, typename V, typename IS,
00071           class UnaryFunction, typename IntOutIter>
00072 void
00073 determineSimplicesThatSatisfyCondition(const IndSimpSet<N,M,A,T,V,IS>& mesh, 
00074                                        const UnaryFunction& f, 
00075                                        IntOutIter indexIterator);
00076 
00077 
00079 
00088 template<int N, int M, bool A, typename T, typename V, typename IS,
00089          typename IntOutIter>
00090 void
00091 determineOverlappingSimplices(const IndSimpSet<N,M,A,T,V,IS>& mesh, 
00092                               const BBox<N,T>& domain, 
00093                               IntOutIter indexIterator);
00094 
00095 
00097 
00105 template<int N, int M, bool A, typename T, typename V, typename IS,
00106          typename IntOutIter>
00107 void
00108 determineSimplicesWithRequiredAdjacencies
00109 (const IndSimpSetIncAdj<N,M,A,T,V,IS>& mesh, 
00110  int minRequiredAdjacencies, IntOutIter indexIterator);
00111 
00112 
00114 
00115 template<int N, int M, bool A, typename T, typename V, typename IS,
00116          typename IntOutIter>
00117 void
00118 determineInteriorVertices(const IndSimpSetIncAdj<N,M,A,T,V,IS>& mesh, 
00119                           IntOutIter indexIterator);
00120 
00121 
00123 
00124 template<int N, int M, bool A, typename T, typename V, typename IS,
00125          typename IntOutIter>
00126 void
00127 determineBoundaryVertices(const IndSimpSetIncAdj<N,M,A,T,V,IS>& mesh, 
00128                           IntOutIter indexIterator);
00129 
00130 
00132 
00133 template<int N, int M, bool A, typename T, typename V, typename IS,
00134          typename IntInIter, typename IntOutIter>
00135 void
00136 determineIncidentVertices(const IndSimpSet<N,M,A,T,V,IS>& mesh, 
00137                           IntInIter simplexIndicesBeginning, 
00138                           IntInIter simplexIndicesEnd,
00139                           IntOutIter vertexIndicesIterator);
00140 
00141 
00143 
00144 template<int N, int M, bool A, typename T, typename V, typename IS,
00145          typename IntInIter, typename IntOutIter>
00146 void
00147 determineIncidentSimplices(const IndSimpSetIncAdj<N,M,A,T,V,IS>& mesh, 
00148                            IntInIter vertexIndicesBeginning, 
00149                            IntInIter vertexIndicesEnd,
00150                            IntOutIter simplexIndicesIterator);
00151 
00152 
00154 
00157 template<typename IntForIter, typename IntOutIter>
00158 void
00159 determineComplementSetOfIndices(const int upperBound,
00160                                 IntForIter beginning, IntForIter end,
00161                                 IntOutIter indexIterator);
00162 
00163 
00165 
00166 template<int N, int M, bool A, typename T, typename V, typename IS,
00167          typename IntOutIter>
00168 void
00169 determineSimplicesInComponent(const IndSimpSetIncAdj<N,M,A,T,V,IS>& mesh,
00170                               int index, IntOutIter indexIterator);
00171 
00172 
00174 
00183 template<int N, int M, bool A, typename T, typename V, typename IS,
00184          typename IntOutputIterator>
00185 void
00186 separateComponents(IndSimpSetIncAdj<N,M,A,T,V,IS>* mesh,
00187                    IntOutputIterator delimiterIterator);
00188 
00189 
00191 
00202 template<int N, int M, bool A, typename T, typename V, typename IS,
00203          typename IntOutputIterator1, typename IntOutputIterator2>
00204 void
00205 separateComponents(IndSimpSetIncAdj<N,M,A,T,V,IS>* mesh,
00206                    IntOutputIterator1 delimiterIterator,
00207                    IntOutputIterator2 permutationIterator);
00208 
00210 
00211 END_NAMESPACE_GEOM
00212 
00213 #define __geom_mesh_iss_set_ipp__
00214 #include "set.ipp"
00215 #undef __geom_mesh_iss_set_ipp__
00216 
00217 #endif

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