Commit 244f3699 authored by Pierre Kraemer's avatar Pierre Kraemer

check nb orbits and nb cells in embeddedMaps + Merge cgogn:~vanhoey/CGoGN

Conflicts:
	build/apps_cmake.txt
	include/Algo/Geometry/normal.hpp
parents a932841f 57a50e82
......@@ -25,18 +25,20 @@
#ifndef _CGOGN_TRIANGULATION_H_
#define _CGOGN_TRIANGULATION_H_
#include <math.h>
#include <vector>
#include <list>
#include <set>
#include <utility>
#include "Algo/Geometry/normal.h"
namespace CGoGN
{
namespace Algo
{
namespace Modelisation
{
......@@ -44,7 +46,6 @@ template <typename PFP>
class EarTriangulation
{
protected:
// forward declaration
class VertexPoly;
......@@ -59,11 +60,16 @@ protected:
Dart dart;
float angle;
float length;
VertexPoly() {}
VertexPoly(Dart d, float v, float l): dart(d),angle(v),length(l) {}
VertexPoly()
{}
VertexPoly(Dart d, float v, float l) : dart(d), angle(v), length(l)
{}
bool operator()(const VertexPoly& vp1, const VertexPoly& vp2)
{
if (fabs(vp1.angle - vp2.angle)<0.2f)
if (fabs(vp1.angle - vp2.angle) < 0.2f)
return vp1.length < vp2.length;
return vp1.angle < vp2.angle;
}
......@@ -86,24 +92,24 @@ protected:
public:
EarTriangulation(typename PFP::MAP& map):
m_map(map), m_dartEars(map,VERTEX)
EarTriangulation(typename PFP::MAP& map) : m_map(map), m_dartEars(map, VERTEX)
{
m_position = map.template getAttribute<typename PFP::VEC3>(VERTEX,"position");
}
// void trianguleFace( Dart d, DartMarker& mark);
void trianguleFace( Dart d);
// void trianguleFace(Dart d, DartMarker& mark);
void trianguleFace(Dart d);
void triangule(const FunctorSelect& good = allDarts, unsigned int thread=0);
void triangule(const FunctorSelect& good = allDarts, unsigned int thread = 0);
};
} // namespace Modelisation
} // namespace Algo
}
}
}
} // namespace CGoGN
#include "Algo/Modelisation/triangulation.hpp"
#endif /* _CGOGN_TRIANGULATION_H_ */
#endif
......@@ -36,30 +36,26 @@ ColourConverter<REAL>::ColourConverter(VEC3 col, enum ColourEncoding enc) :
switch(originalEnc) {
case(C_RGB):
assert (-0.001 < col[0] && col[0] < 1.001) ;
assert (-0.001 < col[1] && col[1] < 1.001) ;
assert (-0.001 < col[2] && col[2] < 1.001) ;
if (!(-0.001 < col[0] && col[0] < 1.001 && -0.001 < col[1] && col[1] < 1.001 && -0.001 < col[2] && col[2] < 1.001))
CGoGNerr << "Warning : an unvalid RGB color was entered in ColourConverter constructor" << CGoGNendl ;
RGB = new VEC3(col) ;
break ;
case (C_Luv) :
assert (-0.001 < col[0] && col[0] < 100.001) ;
assert (-83.001 < col[1] && col[1] < 175.001) ;
assert (-134.001 < col[2] && col[2] < 108.001) ;
if (!(-0.001 < col[0] && col[0] < 100.001 && -83.001 < col[1] && col[1] < 175.001 && -134.001 < col[2] && col[2] < 108.001))
CGoGNerr << "Warning : an unvalid Luv color was entered in ColourConverter constructor" << CGoGNendl ;
Luv = new VEC3(col) ;
break ;
case (C_XYZ) :
assert (-0.001 < col[0] && col[0] < 1.001) ;
assert (-0.001 < col[1] && col[1] < 1.001) ;
assert (-0.001 < col[2] && col[2] < 1.001) ;
if (!(-0.001 < col[0] && col[0] < 1.001 && -0.001 < col[1] && col[1] < 1.001 && -0.001 < col[2] && col[2] < 1.001))
CGoGNerr << "Warning : an unvalid XYZ color was entered in ColourConverter constructor" << CGoGNendl ;
XYZ = new VEC3(col) ;
break ;
case (C_Lab) :
assert (-0.001 < col[0] && col[0] < 100.001) ;
assert (-86.001 < col[1] && col[1] < 98.001) ;
assert (-108.001 < col[2] && col[2] < 95.001) ;
if (!(-0.001 < col[0] && col[0] < 100.001 && -86.001 < col[1] && col[1] < 98.001 && -108.001 < col[2] && col[2] < 95.001))
CGoGNerr << "Warning : an unvalid Lab color was entered in ColourConverter constructor" << CGoGNendl ;
Lab = new VEC3(col) ;
break ;
}
......
......@@ -508,7 +508,18 @@ bool EmbeddedGMap2::check()
}
}
}
CGoGNout << "Check: embedding ok" << CGoGNendl ;
std::cout << "nb vertex orbits : " << getNbOrbits(VERTEX) << std::endl ;
std::cout << "nb vertex cells : " << m_attribs[VERTEX].size() << std::endl ;
std::cout << "nb edge orbits : " << getNbOrbits(EDGE) << std::endl ;
std::cout << "nb edge cells : " << m_attribs[EDGE].size() << std::endl ;
std::cout << "nb face orbits : " << getNbOrbits(FACE) << std::endl ;
std::cout << "nb face cells : " << m_attribs[FACE].size() << std::endl ;
return true ;
}
......
......@@ -437,8 +437,20 @@ bool EmbeddedGMap3::check()
}
CGoGNout << "Check: embedding ok" << CGoGNendl ;
std::cout << "nb vertex orbits : " << getNbOrbits(VERTEX) << std::endl ;
std::cout << "nb vertex cells : " << m_attribs[VERTEX].size() << std::endl ;
std::cout << "nb edge orbits : " << getNbOrbits(EDGE) << std::endl ;
std::cout << "nb edge cells : " << m_attribs[EDGE].size() << std::endl ;
std::cout << "nb face orbits : " << getNbOrbits(FACE) << std::endl ;
std::cout << "nb face cells : " << m_attribs[FACE].size() << std::endl ;
std::cout << "nb volume orbits : " << getNbOrbits(VOLUME) << std::endl ;
std::cout << "nb volume cells : " << m_attribs[VOLUME].size() << std::endl ;
return true ;
}
} // namespace CGoGN
......@@ -748,15 +748,6 @@ bool GMap2::check()
CGoGNout << "Check: topology ok" << CGoGNendl;
std::cout << "nb vertex orbits" << getNbOrbits(VERTEX) << std::endl ;
std::cout << "nb vertex cells" << m_attribs[VERTEX].size() << std::endl ;
std::cout << "nb edge orbits" << getNbOrbits(EDGE) << std::endl ;
std::cout << "nb edge cells" << m_attribs[EDGE].size() << std::endl ;
std::cout << "nb face orbits" << getNbOrbits(FACE) << std::endl ;
std::cout << "nb face cells" << m_attribs[FACE].size() << std::endl ;
return true;
}
......
......@@ -716,18 +716,6 @@ bool GMap3::check()
CGoGNout << "Check: topology ok" << CGoGNendl;
std::cout << "nb vertex orbits" << getNbOrbits(VERTEX) << std::endl ;
std::cout << "nb vertex cells" << m_attribs[VERTEX].size() << std::endl ;
std::cout << "nb edge orbits" << getNbOrbits(EDGE) << std::endl ;
std::cout << "nb edge cells" << m_attribs[EDGE].size() << std::endl ;
std::cout << "nb face orbits" << getNbOrbits(FACE) << std::endl ;
std::cout << "nb face cells" << m_attribs[FACE].size() << std::endl ;
std::cout << "nb volume orbits" << getNbOrbits(VOLUME) << std::endl ;
std::cout << "nb volume cells" << m_attribs[VOLUME].size() << std::endl ;
return true;
}
......
......@@ -467,7 +467,18 @@ bool EmbeddedMap2::check()
}
}
}
CGoGNout << "Check: embedding ok" << CGoGNendl ;
std::cout << "nb vertex orbits : " << getNbOrbits(VERTEX) << std::endl ;
std::cout << "nb vertex cells : " << m_attribs[VERTEX].size() << std::endl ;
std::cout << "nb edge orbits : " << getNbOrbits(EDGE) << std::endl ;
std::cout << "nb edge cells : " << m_attribs[EDGE].size() << std::endl ;
std::cout << "nb face orbits : " << getNbOrbits(FACE) << std::endl ;
std::cout << "nb face cells : " << m_attribs[FACE].size() << std::endl ;
return true ;
}
......
......@@ -452,6 +452,19 @@ bool EmbeddedMap3::check()
}
std::cout << "Check: embedding ok" << std::endl ;
std::cout << "nb vertex orbits : " << getNbOrbits(VERTEX) << std::endl ;
std::cout << "nb vertex cells : " << m_attribs[VERTEX].size() << std::endl ;
std::cout << "nb edge orbits : " << getNbOrbits(EDGE) << std::endl ;
std::cout << "nb edge cells : " << m_attribs[EDGE].size() << std::endl ;
std::cout << "nb face orbits : " << getNbOrbits(FACE) << std::endl ;
std::cout << "nb face cells : " << m_attribs[FACE].size() << std::endl ;
std::cout << "nb volume orbits : " << getNbOrbits(VOLUME) << std::endl ;
std::cout << "nb volume cells : " << m_attribs[VOLUME].size() << std::endl ;
return true ;
}
......
......@@ -645,15 +645,6 @@ bool Map2::check()
CGoGNout << "Check: topology ok" << CGoGNendl;
std::cout << "nb vertex orbits" << getNbOrbits(VERTEX) << std::endl ;
std::cout << "nb vertex cells" << m_attribs[VERTEX].size() << std::endl ;
std::cout << "nb edge orbits" << getNbOrbits(EDGE) << std::endl ;
std::cout << "nb edge cells" << m_attribs[EDGE].size() << std::endl ;
std::cout << "nb face orbits" << getNbOrbits(FACE) << std::endl ;
std::cout << "nb face cells" << m_attribs[FACE].size() << std::endl ;
return true;
}
......
......@@ -661,18 +661,6 @@ bool Map3::check()
std::cout << "Check: topology ok" << std::endl;
std::cout << "nb vertex orbits" << getNbOrbits(VERTEX) << std::endl ;
std::cout << "nb vertex cells" << m_attribs[VERTEX].size() << std::endl ;
std::cout << "nb edge orbits" << getNbOrbits(EDGE) << std::endl ;
std::cout << "nb edge cells" << m_attribs[EDGE].size() << std::endl ;
std::cout << "nb face orbits" << getNbOrbits(FACE) << std::endl ;
std::cout << "nb face cells" << m_attribs[FACE].size() << std::endl ;
std::cout << "nb volume orbits" << getNbOrbits(VOLUME) << std::endl ;
std::cout << "nb volume cells" << m_attribs[VOLUME].size() << std::endl ;
return true;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment