Oriented_side Exact_adaptive_kernel::oriented_circle( Point2 const& pa, Point2 const& pb, Point2 const& pc, Point2 const& test ) { double r = incircle( pa.data(), pb.data(), pc.data(), test.data() ); if ( r > 0.0 ) { return ON_POSITIVE_SIDE; } if ( r < 0.0 ) { return ON_NEGATIVE_SIDE; } return ON_ORIENTED_BOUNDARY; }
double Exact_adaptive_kernel::signed_area( Point2 const& pa, Point2 const& pb, Point2 const& pc ) { return 0.5 * orient2d( pa.data(), pb.data(), pc.data() ); }