#include <MRMesh/MRInSphere.h>
Public Member Functions | |
| bool | reset (const PreciseVertCoords &a, const PreciseVertCoords &b, const PreciseVertCoords &c, std::int64_t rSq) |
| void | flip () |
| InSphereResult | operator() (const PreciseVertCoords &d) const |
| bool | degenerateTriangle () const |
| MR_BIND_IGNORE const Vector3i64 & | normal () const |
| doubled normal cross( b - a, c - a ) of the triangle, directed at the sphere's center | |
| MR_BIND_IGNORE const FastInt< 192 > & | normalSq () const |
| squared length of normal() | |
| MR_BIND_IGNORE const FastInt< 384 > & | heightSq () const |
| Public Member Functions inherited from MR::InSphereTester< T > | |
| bool | reset (const Vector3< T > &va, const Vector3< T > &vb, const Vector3< T > &vc, T sqRadius) |
| void | flip () |
| InSphereResult | operator() (const Vector3< T > &d) const |
Protected Attributes | |
| Vector3i64 | pairV_ |
| the fields are ordered by descending alignment to minimize the padding | |
| Vector3i | pairPt_ |
| the position of the coincident pair | |
| VertId | va_ |
| VertId | vb_ |
| VertId | vc_ |
| the ids of the sphere points given in reset() | |
| int | pairSigma_ = 0 |
| the side of the limit sphere's center: +1 along ( -Vy, Vx, 0 ), -1 the opposite | |
| bool | degenerateTriangle_ = false |
| reset() got W == 0 with two coincident points and an existing perturbed sphere | |
the precise tester with simulation-of-simplicity resolution of "exactly on the sphere" ties, which reuses all the geometric machinery of InSphereTester<int> and adds only the vertex ids