int IsDelaunay(Simplex* simplex, Vertex* point) { double orientation = orient3dfast(simplex->m_SimplexPoints[0]->m_Point, simplex->m_SimplexPoints[1]->m_Point, simplex->m_SimplexPoints[2]->m_Point, simplex->m_SimplexPoints[3]->m_Point); if (orientation <= 0) { printf("orientation error: %p, %lf\n",simplex,orientation); } double inSph = inspherefast( simplex->m_SimplexPoints[0]->m_Point, simplex->m_SimplexPoints[1]->m_Point, simplex->m_SimplexPoints[2]->m_Point, simplex->m_SimplexPoints[3]->m_Point, point->m_Point); if (inSph == 0) return -1; return inSph < 0; }
Side PredWrapper::doInsphereFast( Tet tet, int v ) const { if ( v == _infIdx || tet.has( _infIdx ) ) return SideZero; const RealType* p[] = { getPoint( tet._v[0] )._p, getPoint( tet._v[1] )._p, getPoint( tet._v[2] )._p, getPoint( tet._v[3] )._p, getPoint( v )._p }; const RealType det = inspherefast( p[0], p[1], p[2], p[3], p[4] ); const Side s = sphToSide( det ); return s; }