added function FollowLineDirection

This commit is contained in:
Nico Pietroni 2012-12-09 16:08:35 +00:00
parent d29c7489ec
commit bf3837e4d2
1 changed files with 16 additions and 0 deletions

View File

@ -58,6 +58,22 @@ namespace vcg {
return ret; return ret;
} }
static int FollowLineDirection(const FaceType &f0,
const FaceType &f1,
int dir)
{
///first it rotate dir to match with f1
CoordType dir0=CrossVector(f0,dir);
CoordType dir0R=vcg::tri::CrossField<MeshType>::Rotate(f0,f1,dir0);
///then get the closest upf to K*PI/2 rotations
CoordType dir1_test=CrossVector(f1,dir);
CoordType dir2_test=-dir1_test;
if ((dir1_test*dir0R)>(dir2_test*dir0R))
return dir;
return ((dir+2)%4);
}
static void SetVertCrossFromCurvature(MeshType &mesh) static void SetVertCrossFromCurvature(MeshType &mesh)
{ {
vcg::tri::UpdateTopology<MeshType>::FaceFace(mesh); vcg::tri::UpdateTopology<MeshType>::FaceFace(mesh);