corrected error in -error (see localoptimization)
This commit is contained in:
parent
26980b3502
commit
215aaa2e84
|
@ -125,7 +125,13 @@ public:
|
||||||
// puntatori ai vertici che sono stati messi non-w per preservare il boundary
|
// puntatori ai vertici che sono stati messi non-w per preservare il boundary
|
||||||
static std::vector<typename TriMeshType::VertexPointer> & WV(){static std::vector<typename TriMeshType::VertexPointer> _WV; return _WV;};
|
static std::vector<typename TriMeshType::VertexPointer> & WV(){static std::vector<typename TriMeshType::VertexPointer> _WV; return _WV;};
|
||||||
|
|
||||||
TriEdgeCollapseQuadric(PosType p, int i):TEC(p,i){}
|
TriEdgeCollapseQuadric(PosType p, int i)
|
||||||
|
//:TEC(p,i){}
|
||||||
|
{
|
||||||
|
_Imark() = i;
|
||||||
|
pos=p;
|
||||||
|
_priority = ComputePriority();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool IsFeasible(){
|
bool IsFeasible(){
|
||||||
|
@ -241,8 +247,8 @@ public:
|
||||||
static void SetDefaultParams(){
|
static void SetDefaultParams(){
|
||||||
Params().UseArea=true;
|
Params().UseArea=true;
|
||||||
Params().UseVertexWeight=false;
|
Params().UseVertexWeight=false;
|
||||||
Params().NormalCheck=false;
|
Params().NormalCheck=true;
|
||||||
Params().NormalThr=M_PI/2;
|
Params().CosineThr=M_PI/2;
|
||||||
Params().QualityCheck=true;
|
Params().QualityCheck=true;
|
||||||
Params().QualityThr=.1;
|
Params().QualityThr=.1;
|
||||||
Params().BoundaryWeight=.5;
|
Params().BoundaryWeight=.5;
|
||||||
|
@ -263,7 +269,6 @@ public:
|
||||||
ScalarType error;
|
ScalarType error;
|
||||||
typename vcg::face::VFIterator<FaceType> x;
|
typename vcg::face::VFIterator<FaceType> x;
|
||||||
std::vector<CoordType> on; // original normals
|
std::vector<CoordType> on; // original normals
|
||||||
|
|
||||||
typename TriMeshType::VertexType * v[2];
|
typename TriMeshType::VertexType * v[2];
|
||||||
v[0] = pos.V();
|
v[0] = pos.V();
|
||||||
v[1] = pos.V(1);
|
v[1] = pos.V(1);
|
||||||
|
@ -344,13 +349,10 @@ public:
|
||||||
if(!Params().QualityCheck && Params().NormalCheck) error = QuadErr / MinCos;
|
if(!Params().QualityCheck && Params().NormalCheck) error = QuadErr / MinCos;
|
||||||
if( Params().QualityCheck && Params().NormalCheck) error = QuadErr / (MinQual*MinCos);
|
if( Params().QualityCheck && Params().NormalCheck) error = QuadErr / (MinQual*MinCos);
|
||||||
|
|
||||||
|
|
||||||
error=QuadErr;
|
|
||||||
|
|
||||||
//Rrestore old position of v0 and v1
|
//Rrestore old position of v0 and v1
|
||||||
v[0]->P()=OldPos0;
|
v[0]->P()=OldPos0;
|
||||||
v[1]->P()=OldPos1;
|
v[1]->P()=OldPos1;
|
||||||
_priority = error;
|
_priority = -error;
|
||||||
return _priority;
|
return _priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -380,7 +382,7 @@ static void InitQuadric(TriMeshType &m)
|
||||||
// Se normalizzo non dipende dall'area
|
// Se normalizzo non dipende dall'area
|
||||||
|
|
||||||
if(!Params().UseArea)
|
if(!Params().UseArea)
|
||||||
{ p.SetDirection(p.Direction()); p.Normalize();}
|
p.Normalize();
|
||||||
|
|
||||||
p.SetOffset( p.Direction() * (*pf).V(0)->cP());
|
p.SetOffset( p.Direction() * (*pf).V(0)->cP());
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue