vtf-logo

geometry.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00008 #if !defined(__geom_mesh_iss_geometry_h__)
00009 #define __geom_mesh_iss_geometry_h__
00010 
00011 #include "IndSimpSetIncAdj.h"
00012 
00013 #include "../simplex/geometry.h"
00014 
00015 BEGIN_NAMESPACE_GEOM
00016 
00017 //-----------------------------------------------------------------------------
00020 
00021 //
00022 // Normal
00023 //
00024 
00026 template<bool A, typename T, typename V, typename IS>
00027 typename IndSimpSetIncAdj<2,1,A,T,V,IS>::Vertex
00028 computeVertexNormal(const IndSimpSetIncAdj<2,1,A,T,V,IS>& mesh, int n);
00029 
00030 
00032 template<bool A, typename T, typename V, typename IS>
00033 void
00034 computeVertexNormal(const IndSimpSetIncAdj<2,1,A,T,V,IS>& mesh, int n,
00035                     typename IndSimpSetIncAdj<2,1,A,T,V,IS>::Vertex* normal);
00036 
00037 
00039 template<bool A, typename T, typename V, typename IS>
00040 typename IndSimpSetIncAdj<2,2,A,T,V,IS>::Vertex
00041 computeVertexNormal(const IndSimpSetIncAdj<2,2,A,T,V,IS>& mesh, int n);
00042 
00043 
00045 template<bool A, typename T, typename V, typename IS>
00046 void
00047 computeVertexNormal(const IndSimpSetIncAdj<2,2,A,T,V,IS>& mesh, int n,
00048                     typename IndSimpSetIncAdj<2,2,A,T,V,IS>::Vertex* normal);
00049 
00050 
00052 template<bool A, typename T, typename V, typename IS>
00053 typename IndSimpSetIncAdj<3,2,A,T,V,IS>::Vertex
00054 computeVertexNormal(const IndSimpSetIncAdj<3,2,A,T,V,IS>& mesh, int n);
00055 
00056 
00058 template<bool A, typename T, typename V, typename IS>
00059 void
00060 computeVertexNormal(const IndSimpSetIncAdj<3,2,A,T,V,IS>& mesh, int n,
00061                     typename IndSimpSetIncAdj<3,2,A,T,V,IS>::Vertex* normal);
00062 
00063 
00065 template<bool A, typename T, typename V, typename IS>
00066 typename IndSimpSetIncAdj<3,3,A,T,V,IS>::Vertex
00067 computeVertexNormal(const IndSimpSetIncAdj<3,3,A,T,V,IS>& mesh, int n);
00068 
00069 
00071 template<bool A, typename T, typename V, typename IS>
00072 void
00073 computeVertexNormal(const IndSimpSetIncAdj<3,3,A,T,V,IS>& mesh, int n,
00074                     typename IndSimpSetIncAdj<3,3,A,T,V,IS>::Vertex* normal);
00075 
00076 
00077 
00079 template<bool A, typename T, typename V, typename IS>
00080 void
00081 computeSimplexNormal(const IndSimpSetIncAdj<3,2,A,T,V,IS>& mesh, 
00082                      int simplexIndex, V* simplexNormal);
00083 
00084 
00086 template<bool A, typename T, typename V, typename IS, bool AA>
00087 void
00088 computeSimplexNormals(const IndSimpSetIncAdj<3,2,A,T,V,IS>& mesh, 
00089                       ads::Array<1,V,AA>* simplexNormals);
00090 
00091 
00093 template<bool A, typename T, typename V, typename IS, bool AA>
00094 void
00095 computeSimplexNormals(const IndSimpSetIncAdj<2,1,A,T,V,IS>& mesh, 
00096                       ads::Array<1,V,AA>* simplexNormals);
00097 
00098 
00100 template<bool A, typename T, typename V, typename IS, bool AA>
00101 void
00102 computeVertexNormals(const IndSimpSetIncAdj<3,2,A,T,V,IS>& mesh, 
00103                      const ads::Array<1,V,AA>& simplexNormals,
00104                      ads::Array<1,V,AA>* vertexNormals);
00105 
00106 
00108 template<bool A, typename T, typename V, typename IS, bool A1, bool A2>
00109 void
00110 computeSimplexAndVertexNormals(const IndSimpSetIncAdj<3,2,A,T,V,IS>& mesh,
00111                                ads::Array<1,V,A1>* simplexNormals,
00112                                ads::Array<1,V,A2>* vertexNormals);
00113 
00114 
00115 
00117 
00120 template<int N, bool A, typename T, typename V, typename IS>
00121 T
00122 computeCosineAngle(const IndSimpSetIncAdj<N,1,A,T,V,IS>& mesh, 
00123                    int vertexIndex);
00124 
00125 
00127 
00130 template<bool A, typename T, typename V, typename IS>
00131 T
00132 computeCosineAngle(const IndSimpSetIncAdj<3,2,A,T,V,IS>& mesh, 
00133                    const typename IndSimpSetIncAdj<3,2,A,T,V,IS>::Face& face);
00134 
00135 
00137 
00142 template<bool A, typename T, typename V, typename IS>
00143 T
00144 computeCosineBoundaryAngle(const IndSimpSetIncAdj<3,2,A,T,V,IS>& mesh, 
00145                            int vertexIndex);
00146 
00147 
00149 template<bool A, typename T, typename V, typename IS>
00150 T
00151 computeAngle(const IndSimpSetIncAdj<3,2,A,T,V,IS>& mesh, int n);
00152 
00153 
00155 template<bool A, typename T, typename V, typename IS, typename OutputIterator>
00156 void
00157 projectAndGetSimplices(const IndSimpSet<2,1,A,T,V,IS>& mesh, 
00158                        OutputIterator simplices);
00159 
00160 
00162 template<bool A, typename T, typename V, typename IS, typename OutputIterator>
00163 void
00164 projectAndGetSimplices(const IndSimpSet<3,2,A,T,V,IS>& mesh, 
00165                        OutputIterator simplices);
00166 
00168 
00169 END_NAMESPACE_GEOM
00170 
00171 #define __geom_mesh_iss_geometry_ipp__
00172 #include "geometry.ipp"
00173 #undef __geom_mesh_iss_geometry_ipp__
00174 
00175 #endif

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