81 assert( (
size_t) origKey_[0] < vtx.size() );
82 std::vector<double>& p0 = vtx[origKey_[0]];
83 assert( (
size_t) origKey_[1] < vtx.size() );
84 std::vector<double>& p1 = vtx[origKey_[1]];
85 assert( (
size_t) origKey_[2] < vtx.size() );
86 std::vector<double>& p2 = vtx[origKey_[2]];
87 assert( (
size_t) base < vtx.size() );
88 std::vector<double>& q = vtx[base];
90 n[0] = (p1[1]-p0[1])*(p2[2]-p0[2])-(p2[1]-p0[1])*(p1[2]-p0[2]);
91 n[1] = (p1[2]-p0[2])*(p2[0]-p0[0])-(p2[2]-p0[2])*(p1[0]-p0[0]);
92 n[2] = (p1[0]-p0[0])*(p2[1]-p0[1])-(p2[0]-p0[0])*(p1[1]-p0[1]);
93 double test = n[0]*(q[0]-p0[0])+n[1]*(q[1]-p0[1])+n[2]*(q[2]-p0[2]);
94 bool reorient = (test>0);
97 origKey_[1]=origKey_[2];