Paolo Cignoni
8a631d48c1
Changed the basic reflection mechanism: Instead of having a function templates over all the four containers now we template over Trimesh and we rely on a second function templated on face/vert that wants a vector<face> ; this second function only is eventually overloaded by another function that needs a vector_ocf of faces. That is Before we had: - in complex.h template < class CType0, class CType1, class CType2 , class CType3> bool HasPerFaceVFAdjacency (const TriMesh < CType0, CType1, CType2, CType3> & /*m*/) {return TriMesh < CType0 , CType1, CType2, CType3>::FaceContainer::value_type::HasVFAdjacency();} - in the component_ocf.h template < class VertContainerType, class FaceType, class Container1, class Container2 > bool HasPerFaceVFAdjacency (const TriMesh < VertContainerType , face::vector_ocf< FaceType >, Container1, Container2 > & m) { if(FaceType::HasVFAdjacencyOcf()) return m.face.IsVFAdjacencyEnabled(); else return FaceType::FaceType::HasVFAdjacency(); } While now we have: - in complex.h template < class FaceType > bool FaceVectorHasPerFaceVFAdjacency (const std::vector<FaceType > &) { return FaceType::HasVFAdjacency(); } template < class TriMeshType> bool HasPerFaceVFAdjacency (const TriMeshType &m) { return tri::FaceVectorHasPerFaceVFAdjacency (m.vert); } - and in component_ocf.h template < class FaceType > bool FaceVectorHasPerFaceVFAdjacency(const face::vector_ocf<FaceType> &fv) { if(FaceType::HasVFAdjacencyOcf()) return fv.IsVFAdjacencyEnabled(); else return FaceType::HasVFAdjacency(); } |
||
---|---|---|
.. | ||
base.h | ||
base_old.h | ||
component.h | ||
component_occ.h | ||
component_ocf.h | ||
component_sph.h | ||
distance.h | ||
vertex_old.h |