Coupure prévue mardi 3 Août au matin pour maintenance du serveur. Nous faisons au mieux pour que celle-ci soit la plus brève possible.

Commit 6b34f7fb authored by Pierre Kraemer's avatar Pierre Kraemer
Browse files

Merge cgogn:~untereiner/CGoGN

parents 95ea0467 ce1186a4
...@@ -67,89 +67,15 @@ int main(int argc, char **argv) ...@@ -67,89 +67,15 @@ int main(int argc, char **argv)
VertexAttribute<PFP::VEC3> position = myMap.getAttribute<PFP::VEC3, VERTEX>(attrNames[0]); VertexAttribute<PFP::VEC3> position = myMap.getAttribute<PFP::VEC3, VERTEX>(attrNames[0]);
// FaceAttribute<PFP::VEC3> positionF = myMap.getAttribute<PFP::VEC3, FACE>("position") ;
// Dual if(!positionF.isValid())
// positionF = myMap.addAttribute<PFP::VEC3, FACE>("position") ;
// FaceAttribute<PFP::VEC3> positionF = myMap.getAttribute<PFP::VEC3, FACE>("position") ;
// if(!positionF.isValid()) Algo::Surface::Geometry::computeCentroidFaces<PFP>(myMap, position, positionF) ;
// positionF = myMap.addAttribute<PFP::VEC3, FACE>("position") ;
// myMap.computeDual();
// Algo::Surface::Geometry::computeCentroidFaces<PFP>(myMap, position, positionF) ; position = positionF ;
// myMap.computeDual();
// position = positionF ;
// AttributeHandler<PFP::VEC3, PFP::MAP::EDGE_OF_PARENT> positionE = myMap.getAttribute<PFP::VEC3, PFP::MAP::EDGE_OF_PARENT>("position") ;
// if(!positionE.isValid())
// positionE = myMap.addAttribute<PFP::VEC3, PFP::MAP::EDGE_OF_PARENT>("position") ;
//
// SelectorDartBoundary<PFP::MAP> sdb(myMap);
// TraversorE<PFP::MAP> te(myMap, sdb);
// for(Dart dit = te.begin() ; dit != te.end() ; dit = te.next())
// {
// positionE[dit] = (position[dit] + position[myMap.phi1(dit)]) * PFP::REAL(0.5);
// }
//
// std::cout << "boundary edges centroids : ok" << std::endl;
//
// //triangule old boundary faces
// std::vector<Dart> oldb;
//
// std::cout << "nb darts : " << myMap.getNbDarts() << std::endl;
//
// CellMarker<FACE> cmf(myMap);
// for(Dart d = myMap.begin(); d != myMap.end(); myMap.next(d))
// {
// if(!cmf.isMarked(d) && myMap.isBoundaryMarked2(d))
// {
// oldb.push_back(d);
// cmf.mark(d);
// std::cout << "d = " << d << std::endl;
// }
// }
//
// for(std::vector<Dart>::iterator it = oldb.begin() ; it != oldb.end() ; ++it)
// {
// Dart db = *it;
// Dart d1 = myMap.phi1(db);
// myMap.splitFace(db, d1) ;
// myMap.cutEdge(myMap.phi_1(db)) ;
// Dart x = myMap.phi2(myMap.phi_1(db)) ;
// Dart dd = myMap.phi1(myMap.phi1(myMap.phi1(x)));
// while(dd != x)
// {
// Dart next = myMap.phi1(dd) ;
// myMap.splitFace(dd, myMap.phi1(x)) ;
// dd = next ;
// }
//
// }
//
// std::cout << "boundary face triangulation : ok" << std::endl;
//
// myMap.swapEmbeddingContainers(FACE, PFP::MAP::EDGE_OF_PARENT) ;
//
// std::cout << "swap containers : ok" << std::endl;
//
// FaceAttribute<PFP::VEC3> positionF;
// positionF = positionE;
//
// Algo::Surface::Geometry::computeCentroidFaces<PFP>(myMap, position, positionF) ;
//
// for(std::vector<Dart>::iterator it = oldb.begin() ; it != oldb.end() ; ++it)
// {
// myMap.fillHole(*it);
// }
//
// std::cout << "fillHole : ok" << std::endl;
//
// myMap.computeDual();
//
// //myMap.closeMap();
//
// position = positionF ;
//
// myMap.check();
Algo::Surface::Export::exportOFF<PFP>(myMap, position, "result.off"); Algo::Surface::Export::exportOFF<PFP>(myMap, position, "result.off");
std::cout << "Exported" << std::endl; std::cout << "Exported" << std::endl;
......
...@@ -379,14 +379,14 @@ public: ...@@ -379,14 +379,14 @@ public:
if(!normal.isValid()) if(!normal.isValid())
{ {
normal = m.template addAttribute<VEC3, VERTEX>("normal") ; normal = m.template addAttribute<VEC3, VERTEX>("normal") ;
Algo::Geometry::computeNormalVertices<PFP>(m, pos, normal) ; Algo::Surface::Geometry::computeNormalVertices<PFP>(m, pos, normal) ;
} }
edgeangle = m.template getAttribute<REAL, EDGE>("edgeangle") ; edgeangle = m.template getAttribute<REAL, EDGE>("edgeangle") ;
if(!edgeangle.isValid()) if(!edgeangle.isValid())
{ {
edgeangle = m.template addAttribute<REAL, EDGE>("edgeangle") ; edgeangle = m.template addAttribute<REAL, EDGE>("edgeangle") ;
Algo::Geometry::computeAnglesBetweenNormalsOnEdges<PFP>(m, pos, edgeangle) ; Algo::Surface::Geometry::computeAnglesBetweenNormalsOnEdges<PFP>(m, pos, edgeangle) ;
} }
kmax = m.template getAttribute<REAL, VERTEX>("kmax") ; kmax = m.template getAttribute<REAL, VERTEX>("kmax") ;
...@@ -403,7 +403,7 @@ public: ...@@ -403,7 +403,7 @@ public:
Kmax = m.template addAttribute<VEC3, VERTEX>("Kmax") ; Kmax = m.template addAttribute<VEC3, VERTEX>("Kmax") ;
Kmin = m.template addAttribute<VEC3, VERTEX>("Kmin") ; Kmin = m.template addAttribute<VEC3, VERTEX>("Kmin") ;
Knormal = m.template addAttribute<VEC3, VERTEX>("Knormal") ; Knormal = m.template addAttribute<VEC3, VERTEX>("Knormal") ;
Algo::Geometry::computeCurvatureVertices_NormalCycles<PFP>(m, radius, pos, normal, edgeangle, kmax, kmin, Kmax, Kmin, Knormal) ; Algo::Surface::Geometry::computeCurvatureVertices_NormalCycles<PFP>(m, radius, pos, normal, edgeangle, kmax, kmin, Kmax, Kmin, Knormal) ;
} }
edgeInfo = m.template addAttribute<EdgeInfo, EDGE>("edgeInfo") ; edgeInfo = m.template addAttribute<EdgeInfo, EDGE>("edgeInfo") ;
...@@ -467,7 +467,7 @@ public: ...@@ -467,7 +467,7 @@ public:
if(!edgeangle.isValid()) if(!edgeangle.isValid())
{ {
edgeangle = m.template addAttribute<REAL, EDGE>("edgeangle") ; edgeangle = m.template addAttribute<REAL, EDGE>("edgeangle") ;
Algo::Geometry::computeAnglesBetweenNormalsOnEdges<PFP>(m, pos, edgeangle) ; Algo::Surface::Geometry::computeAnglesBetweenNormalsOnEdges<PFP>(m, pos, edgeangle) ;
} }
edgeInfo = m.template addAttribute<EdgeInfo, EDGE>("edgeInfo") ; edgeInfo = m.template addAttribute<EdgeInfo, EDGE>("edgeInfo") ;
......
...@@ -300,7 +300,7 @@ void EdgeSelector_Length<PFP>::updateEdgeInfo(Dart d, bool recompute) ...@@ -300,7 +300,7 @@ void EdgeSelector_Length<PFP>::updateEdgeInfo(Dart d, bool recompute)
template <typename PFP> template <typename PFP>
void EdgeSelector_Length<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo) void EdgeSelector_Length<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo)
{ {
VEC3 vec = Algo::Geometry::vectorOutOfDart<PFP>(this->m_map, d, this->m_position) ; VEC3 vec = Algo::Surface::Geometry::vectorOutOfDart<PFP>(this->m_map, d, this->m_position) ;
einfo.it = edges.insert(std::make_pair(vec.norm2(), d)) ; einfo.it = edges.insert(std::make_pair(vec.norm2(), d)) ;
einfo.valid = true ; einfo.valid = true ;
} }
...@@ -989,7 +989,7 @@ void EdgeSelector_NormalArea<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo) ...@@ -989,7 +989,7 @@ void EdgeSelector_NormalArea<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo)
template <typename PFP> template <typename PFP>
void EdgeSelector_NormalArea<PFP>::computeEdgeMatrix(Dart d) void EdgeSelector_NormalArea<PFP>::computeEdgeMatrix(Dart d)
{ {
const typename PFP::VEC3 e = Algo::Geometry::vectorOutOfDart<PFP>(this->m_map, d, this->m_position) ; const typename PFP::VEC3 e = Algo::Surface::Geometry::vectorOutOfDart<PFP>(this->m_map, d, this->m_position) ;
edgeMatrix[d].identity(); edgeMatrix[d].identity();
edgeMatrix[d] *= e.norm2(); edgeMatrix[d] *= e.norm2();
edgeMatrix[d] -= Geom::transposed_vectors_mult(e,e) ; edgeMatrix[d] -= Geom::transposed_vectors_mult(e,e) ;
...@@ -1086,15 +1086,15 @@ void EdgeSelector_Curvature<PFP>::updateAfterCollapse(Dart d2, Dart dd2) ...@@ -1086,15 +1086,15 @@ void EdgeSelector_Curvature<PFP>::updateAfterCollapse(Dart d2, Dart dd2)
{ {
typename PFP::MAP& m = this->m_map ; typename PFP::MAP& m = this->m_map ;
normal[d2] = Algo::Geometry::vertexNormal<PFP>(m, d2, this->m_position) ; normal[d2] = Algo::Surface::Geometry::vertexNormal<PFP>(m, d2, this->m_position) ;
Algo::Geometry::computeCurvatureVertex_NormalCycles<PFP>(m, d2, radius, this->m_position, normal, edgeangle, kmax, kmin, Kmax, Kmin, Knormal) ; Algo::Surface::Geometry::computeCurvatureVertex_NormalCycles<PFP>(m, d2, radius, this->m_position, normal, edgeangle, kmax, kmin, Kmax, Kmin, Knormal) ;
Dart vit = d2 ; Dart vit = d2 ;
do do
{ {
Dart nVert = m.phi1(vit) ; Dart nVert = m.phi1(vit) ;
normal[nVert] = Algo::Geometry::vertexNormal<PFP>(m, nVert, this->m_position) ; normal[nVert] = Algo::Surface::Geometry::vertexNormal<PFP>(m, nVert, this->m_position) ;
Algo::Geometry::computeCurvatureVertex_NormalCycles<PFP>(m, nVert, radius, this->m_position, normal, edgeangle, kmax, kmin, Kmax, Kmin, Knormal) ; Algo::Surface::Geometry::computeCurvatureVertex_NormalCycles<PFP>(m, nVert, radius, this->m_position, normal, edgeangle, kmax, kmin, Kmax, Kmin, Knormal) ;
updateEdgeInfo(m.phi1(vit), false) ; // must recompute some edge infos in the updateEdgeInfo(m.phi1(vit), false) ; // must recompute some edge infos in the
if(vit == d2 || vit == dd2) // neighborhood of the collapsed edge if(vit == d2 || vit == dd2) // neighborhood of the collapsed edge
...@@ -1193,8 +1193,8 @@ void EdgeSelector_Curvature<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo) ...@@ -1193,8 +1193,8 @@ void EdgeSelector_Curvature<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo)
this->m_position[newV] = m_positionApproximator->getApprox(d) ; this->m_position[newV] = m_positionApproximator->getApprox(d) ;
// compute things on the coarse version of the mesh // compute things on the coarse version of the mesh
normal[newV] = Algo::Geometry::vertexNormal<PFP>(m, d2, this->m_position) ; normal[newV] = Algo::Surface::Geometry::vertexNormal<PFP>(m, d2, this->m_position) ;
Algo::Geometry::computeCurvatureVertex_NormalCycles<PFP>(m, d2, radius, this->m_position, normal, edgeangle, kmax, kmin, Kmax, Kmin, Knormal) ; Algo::Surface::Geometry::computeCurvatureVertex_NormalCycles<PFP>(m, d2, radius, this->m_position, normal, edgeangle, kmax, kmin, Kmax, Kmin, Knormal) ;
// VEC3 norm = normal[newV] ; // VEC3 norm = normal[newV] ;
REAL mCurv = (kmax[newV] + kmin[newV]) / REAL(2) ; REAL mCurv = (kmax[newV] + kmin[newV]) / REAL(2) ;
...@@ -1335,7 +1335,7 @@ void EdgeSelector_CurvatureTensor<PFP>::updateAfterCollapse(Dart d2, Dart dd2) ...@@ -1335,7 +1335,7 @@ void EdgeSelector_CurvatureTensor<PFP>::updateAfterCollapse(Dart d2, Dart dd2)
{ {
if (!eMark.isMarked(dit2)) if (!eMark.isMarked(dit2))
{ {
edgeangle[dit2] = Algo::Geometry::computeAngleBetweenNormalsOnEdge<PFP>(m, dit2, this->m_position) ; edgeangle[dit2] = Algo::Surface::Geometry::computeAngleBetweenNormalsOnEdge<PFP>(m, dit2, this->m_position) ;
eMark.mark(dit2); eMark.mark(dit2);
} }
} }
...@@ -1408,11 +1408,11 @@ void EdgeSelector_CurvatureTensor<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo) ...@@ -1408,11 +1408,11 @@ void EdgeSelector_CurvatureTensor<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo)
// compute tensor before collapse // compute tensor before collapse
MATRIX tens1; MATRIX tens1;
Algo::Selection::Collector_OneRing_AroundEdge<PFP> col1 (m); Algo::Surface::Selection::Collector_OneRing_AroundEdge<PFP> col1 (m);
col1.collectAll(d); col1.collectAll(d);
col1.computeNormalCyclesTensor(this->m_position,edgeangle,tens1); // edgeangle is up to date here col1.computeNormalCyclesTensor(this->m_position,edgeangle,tens1); // edgeangle is up to date here
tens1 *= col1.computeArea(this->m_position); // mean tensor * area = integral of the tensor tens1 *= col1.computeArea(this->m_position); // mean tensor * area = integral of the tensor
Algo::Geometry::normalCycles_SortTensor<PFP>(tens1); Algo::Surface::Geometry::normalCycles_SortTensor<PFP>(tens1);
// temporary edge collapse // temporary edge collapse
Dart d2 = m.phi2(m.phi_1(d)) ; Dart d2 = m.phi2(m.phi_1(d)) ;
...@@ -1423,11 +1423,11 @@ void EdgeSelector_CurvatureTensor<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo) ...@@ -1423,11 +1423,11 @@ void EdgeSelector_CurvatureTensor<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo)
// compute tensor after collapse // compute tensor after collapse
MATRIX tens2; MATRIX tens2;
Algo::Selection::Collector_OneRing<PFP> col2 (m); Algo::Surface::Selection::Collector_OneRing<PFP> col2 (m);
col2.collectAll(d); col2.collectAll(d);
col2.computeNormalCyclesTensor(this->m_position,tens2); // edgeangle is not up to date here col2.computeNormalCyclesTensor(this->m_position,tens2); // edgeangle is not up to date here
tens2 *= col2.computeArea(this->m_position); // mean tensor * area = integral of the tensor tens2 *= col2.computeArea(this->m_position); // mean tensor * area = integral of the tensor
Algo::Geometry::normalCycles_SortTensor<PFP>(tens2); Algo::Surface::Geometry::normalCycles_SortTensor<PFP>(tens2);
// vertex split to reset the initial connectivity and embeddings // vertex split to reset the initial connectivity and embeddings
m.insertTrianglePair(d, d2, dd2) ; m.insertTrianglePair(d, d2, dd2) ;
......
...@@ -181,7 +181,7 @@ void computeCurvatureVertex_NormalCycles_Projected( ...@@ -181,7 +181,7 @@ void computeCurvatureVertex_NormalCycles_Projected(
template <typename PFP> template <typename PFP>
void computeCurvatureVertices_NormalCycles( void computeCurvatureVertices_NormalCycles(
typename PFP::MAP& map, typename PFP::MAP& map,
Algo::Selection::Collector<PFP> & neigh, Algo::Surface::Selection::Collector<PFP> & neigh,
const VertexAttribute<typename PFP::VEC3>& position, const VertexAttribute<typename PFP::VEC3>& position,
const VertexAttribute<typename PFP::VEC3>& normal, const VertexAttribute<typename PFP::VEC3>& normal,
const EdgeAttribute<typename PFP::REAL>& edgeangle, const EdgeAttribute<typename PFP::REAL>& edgeangle,
...@@ -196,7 +196,7 @@ template <typename PFP> ...@@ -196,7 +196,7 @@ template <typename PFP>
void computeCurvatureVertex_NormalCycles( void computeCurvatureVertex_NormalCycles(
typename PFP::MAP& map, typename PFP::MAP& map,
Dart dart, Dart dart,
Algo::Selection::Collector<PFP> & neigh, Algo::Surface::Selection::Collector<PFP> & neigh,
const VertexAttribute<typename PFP::VEC3>& position, const VertexAttribute<typename PFP::VEC3>& position,
const VertexAttribute<typename PFP::VEC3>& normal, const VertexAttribute<typename PFP::VEC3>& normal,
const EdgeAttribute<typename PFP::REAL>& edgeangle, const EdgeAttribute<typename PFP::REAL>& edgeangle,
...@@ -209,7 +209,7 @@ void computeCurvatureVertex_NormalCycles( ...@@ -209,7 +209,7 @@ void computeCurvatureVertex_NormalCycles(
template <typename PFP> template <typename PFP>
void computeCurvatureVertices_NormalCycles_Projected( void computeCurvatureVertices_NormalCycles_Projected(
typename PFP::MAP& map, typename PFP::MAP& map,
Algo::Selection::Collector<PFP> & neigh, Algo::Surface::Selection::Collector<PFP> & neigh,
const VertexAttribute<typename PFP::VEC3>& position, const VertexAttribute<typename PFP::VEC3>& position,
const VertexAttribute<typename PFP::VEC3>& normal, const VertexAttribute<typename PFP::VEC3>& normal,
const EdgeAttribute<typename PFP::REAL>& edgeangle, const EdgeAttribute<typename PFP::REAL>& edgeangle,
...@@ -224,7 +224,7 @@ template <typename PFP> ...@@ -224,7 +224,7 @@ template <typename PFP>
void computeCurvatureVertex_NormalCycles_Projected( void computeCurvatureVertex_NormalCycles_Projected(
typename PFP::MAP& map, typename PFP::MAP& map,
Dart dart, Dart dart,
Algo::Selection::Collector<PFP> & neigh, Algo::Surface::Selection::Collector<PFP> & neigh,
const VertexAttribute<typename PFP::VEC3>& position, const VertexAttribute<typename PFP::VEC3>& position,
const VertexAttribute<typename PFP::VEC3>& normal, const VertexAttribute<typename PFP::VEC3>& normal,
const EdgeAttribute<typename PFP::REAL>& edgeangle, const EdgeAttribute<typename PFP::REAL>& edgeangle,
......
...@@ -80,7 +80,7 @@ void computeCurvatureVertex_QuadraticFitting( ...@@ -80,7 +80,7 @@ void computeCurvatureVertex_QuadraticFitting(
VEC3 n = normal[dart] ; VEC3 n = normal[dart] ;
MATRIX33 localFrame = Geometry::vertexLocalFrame<PFP>(map, dart, position, n) ; MATRIX33 localFrame = Algo::Geometry::vertexLocalFrame<PFP>(map, dart, position, n) ;
MATRIX33 invLocalFrame ; MATRIX33 invLocalFrame ;
localFrame.invert(invLocalFrame) ; localFrame.invert(invLocalFrame) ;
......
...@@ -44,8 +44,8 @@ namespace Geometry ...@@ -44,8 +44,8 @@ namespace Geometry
template <typename PFP> template <typename PFP>
void vertexLocalFrame(typename PFP::MAP& map, Dart d, const VertexAttribute<typename PFP::VEC3>& position, typename PFP::VEC3& X, typename PFP::VEC3& Y, typename PFP::VEC3& Z) void vertexLocalFrame(typename PFP::MAP& map, Dart d, const VertexAttribute<typename PFP::VEC3>& position, typename PFP::VEC3& X, typename PFP::VEC3& Y, typename PFP::VEC3& Z)
{ {
Z = vertexNormal<PFP>(map, d, position) ; Z = Algo::Surface::Geometry::vertexNormal<PFP>(map, d, position) ;
X = vectorOutOfDart<PFP>(map, d, position) ; X = Algo::Surface::Geometry::vectorOutOfDart<PFP>(map, d, position) ;
Y = Z ^ X ; Y = Z ^ X ;
Y.normalize() ; Y.normalize() ;
X = Y ^ Z ; X = Y ^ Z ;
...@@ -70,7 +70,7 @@ template <typename PFP> ...@@ -70,7 +70,7 @@ template <typename PFP>
void vertexLocalFrame(typename PFP::MAP& map, Dart d, const VertexAttribute<typename PFP::VEC3>& position, typename PFP::VEC3& normal, typename PFP::VEC3& X, typename PFP::VEC3& Y, typename PFP::VEC3& Z) void vertexLocalFrame(typename PFP::MAP& map, Dart d, const VertexAttribute<typename PFP::VEC3>& position, typename PFP::VEC3& normal, typename PFP::VEC3& X, typename PFP::VEC3& Y, typename PFP::VEC3& Z)
{ {
Z = normal ; Z = normal ;
X = vectorOutOfDart<PFP>(map, d, position) ; X = Algo::Surface::Geometry::vectorOutOfDart<PFP>(map, d, position) ;
Y = Z ^ X ; Y = Z ^ X ;
Y.normalize() ; Y.normalize() ;
X = Y ^ Z ; X = Y ^ Z ;
......
...@@ -59,7 +59,7 @@ namespace Filters ...@@ -59,7 +59,7 @@ namespace Filters
//w-lift(a) //w-lift(a)
template <typename PFP> template <typename PFP>
class Ber02OddSynthesisFilter : public Filter class Ber02OddSynthesisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -154,7 +154,7 @@ public: ...@@ -154,7 +154,7 @@ public:
// s-lift(a) // s-lift(a)
template <typename PFP> template <typename PFP>
class Ber02EvenSynthesisFilter : public Filter class Ber02EvenSynthesisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -371,7 +371,7 @@ public: ...@@ -371,7 +371,7 @@ public:
// s-scale(a) // s-scale(a)
template <typename PFP> template <typename PFP>
class Ber02ScaleSynthesisFilter : public Filter class Ber02ScaleSynthesisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -426,7 +426,7 @@ public: ...@@ -426,7 +426,7 @@ public:
//w-lift(a) //w-lift(a)
template <typename PFP> template <typename PFP>
class Ber02OddAnalysisFilter : public Filter class Ber02OddAnalysisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -521,7 +521,7 @@ public: ...@@ -521,7 +521,7 @@ public:
// s-lift(a) // s-lift(a)
template <typename PFP> template <typename PFP>
class Ber02EvenAnalysisFilter : public Filter class Ber02EvenAnalysisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -738,7 +738,7 @@ public: ...@@ -738,7 +738,7 @@ public:
// s-scale(a) // s-scale(a)
template <typename PFP> template <typename PFP>
class Ber02ScaleAnalysisFilter : public Filter class Ber02ScaleAnalysisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
......
...@@ -58,7 +58,7 @@ namespace Filters ...@@ -58,7 +58,7 @@ namespace Filters
template <typename PFP> template <typename PFP>
class LerpQuadOddSynthesisFilter : public Filter class LerpQuadOddSynthesisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -73,7 +73,7 @@ public: ...@@ -73,7 +73,7 @@ public:
TraversorW<typename PFP::MAP> travW(m_map) ; TraversorW<typename PFP::MAP> travW(m_map) ;
for (Dart d = travW.begin(); d != travW.end(); d = travW.next()) for (Dart d = travW.begin(); d != travW.end(); d = travW.next())
{ {
typename PFP::VEC3 vc = Algo::Geometry::volumeCentroid<PFP>(m_map, d, m_position); typename PFP::VEC3 vc = Algo::Surface::Geometry::volumeCentroid<PFP>(m_map, d, m_position);
unsigned int count = 0; unsigned int count = 0;
typename PFP::VEC3 ec(0.0); typename PFP::VEC3 ec(0.0);
...@@ -169,7 +169,7 @@ public: ...@@ -169,7 +169,7 @@ public:
template <typename PFP> template <typename PFP>
class LerpQuadOddAnalysisFilter : public Filter class LerpQuadOddAnalysisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -222,7 +222,7 @@ public: ...@@ -222,7 +222,7 @@ public:
TraversorW<typename PFP::MAP> travW(m_map) ; TraversorW<typename PFP::MAP> travW(m_map) ;
for (Dart d = travW.begin(); d != travW.end(); d = travW.next()) for (Dart d = travW.begin(); d != travW.end(); d = travW.next())
{ {
typename PFP::VEC3 vc = Algo::Geometry::volumeCentroid<PFP>(m_map, d, m_position); typename PFP::VEC3 vc = Algo::Surface::Geometry::volumeCentroid<PFP>(m_map, d, m_position);
unsigned int count = 0; unsigned int count = 0;
typename PFP::VEC3 ec(0.0); typename PFP::VEC3 ec(0.0);
...@@ -275,7 +275,7 @@ public: ...@@ -275,7 +275,7 @@ public:
template <typename PFP> template <typename PFP>
class LerpEdgeSynthesisFilter : public Filter class LerpEdgeSynthesisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -303,7 +303,7 @@ public: ...@@ -303,7 +303,7 @@ public:
} ; } ;
template <typename PFP> template <typename PFP>
class LerpFaceSynthesisFilter : public Filter class LerpFaceSynthesisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -332,7 +332,7 @@ public: ...@@ -332,7 +332,7 @@ public:
} ; } ;
template <typename PFP> template <typename PFP>
class LerpTriQuadFaceSynthesisFilter : public Filter class LerpTriQuadFaceSynthesisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -349,7 +349,7 @@ public: ...@@ -349,7 +349,7 @@ public:
{ {
if(m_map.faceDegree(d) > 3) if(m_map.faceDegree(d) > 3)
{ {
typename PFP::VEC3 p = Algo::Geometry::faceCentroid<PFP>(m_map, d, m_position); typename PFP::VEC3 p = Algo::Surface::Geometry::faceCentroid<PFP>(m_map, d, m_position);
m_map.incCurrentLevel() ; m_map.incCurrentLevel() ;
...@@ -364,7 +364,7 @@ public: ...@@ -364,7 +364,7 @@ public:
template <typename PFP> template <typename PFP>
class LerpVolumeSynthesisFilter : public Filter class LerpVolumeSynthesisFilter : public Algo::MR::Filter
{ {
protected: protected:
typename PFP::MAP& m_map ; typename PFP::MAP& m_map ;
...@@ -379,9 +379,11 @@ public: ...@@ -379,9 +379,11 @@ public:
TraversorW<typename PFP::MAP> trav(m_map) ; TraversorW<typename PFP::MAP> trav(m_map) ;
for (Dart d = trav.begin(); d != trav.end(); d = trav.next()) for (Dart d = trav.begin(); d != trav.end(); d = trav.next())
{ {
if(!Algo::Modelisation::Tetrahedralization::isTetrahedron<PFP>(m_map,d) && !Algo::Modelisation::isPrism<PFP>(m_map,d) && !Algo::Modelisation::isPyra<PFP>(m_map,d)) if(!Algo::Volume::Modelisation::Tetrahedralization::isTetrahedron<PFP>(m_map,d)
&& !Algo::Surface::Modelisation::isPrism<PFP>(m_map,d)
&& !Algo::Surface::Modelisation::isPyra<PFP>(m_map,d))
{ {