Bug fixing in the PickFace function
Bug fixing in the projection of the vertices near to the plane of the projection point
This commit is contained in:
parent
8efebae360
commit
a34532abac
|
|
@ -28,6 +28,7 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include "gl_type_name.h"
|
#include "gl_type_name.h"
|
||||||
|
|
||||||
|
|
||||||
namespace vcg{
|
namespace vcg{
|
||||||
|
|
||||||
template <class MESH_TYPE>
|
template <class MESH_TYPE>
|
||||||
|
|
@ -183,6 +184,7 @@ public:
|
||||||
reg.Add(CoordType(x - width / ScalarType(2.0), y - height / ScalarType(2.0), ScalarType(-1.0)));
|
reg.Add(CoordType(x - width / ScalarType(2.0), y - height / ScalarType(2.0), ScalarType(-1.0)));
|
||||||
reg.Add(CoordType(x + width / ScalarType(2.0), y + height / ScalarType(2.0), ScalarType(1.0)));
|
reg.Add(CoordType(x + width / ScalarType(2.0), y + height / ScalarType(2.0), ScalarType(1.0)));
|
||||||
|
|
||||||
|
|
||||||
if ((M != lastM) || (&m != lastm) || (pVec.size() != m.VN()))
|
if ((M != lastM) || (&m != lastm) || (pVec.size() != m.VN()))
|
||||||
{
|
{
|
||||||
FillProjectedVector(m, pVec, M, viewportF);
|
FillProjectedVector(m, pVec, M, viewportF);
|
||||||
|
|
@ -197,7 +199,7 @@ public:
|
||||||
const CoordType &p0 = pVec[tri::Index(m, m.face[i].V(0))];
|
const CoordType &p0 = pVec[tri::Index(m, m.face[i].V(0))];
|
||||||
const CoordType &p1 = pVec[tri::Index(m, m.face[i].V(1))];
|
const CoordType &p1 = pVec[tri::Index(m, m.face[i].V(1))];
|
||||||
const CoordType &p2 = pVec[tri::Index(m, m.face[i].V(2))];
|
const CoordType &p2 = pVec[tri::Index(m, m.face[i].V(2))];
|
||||||
if ((p0[2] > -1.0f) && (p1[2] > -1.0f) && (p2[2] > -1.0f) && IntersectionTriangleBox(reg, p0, p1, p2))
|
|
||||||
result.push_back(&m.face[i]);
|
result.push_back(&m.face[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue