Public Member Functions | |
| auto | assign_from_another (_other:&meshlib::FastInSphereTesterSoS) -> &mut meshlib::FastInSphereTesterSoS |
| auto | reset (a:&meshlib::PreciseVertCoords, b:&meshlib::PreciseVertCoords, c:&meshlib::PreciseVertCoords, rSq:i64) -> bool |
| void | flip () |
| auto | call (d:&meshlib::PreciseVertCoords) const -> meshlib::InSphereResult |
| auto | outside_both_spheres (d:&meshlib::Vector3i) const -> bool |
| auto | sphere_exists (a:&meshlib::PreciseVertCoords, b:&meshlib::PreciseVertCoords, c:&meshlib::PreciseVertCoords, rSq:i64) const -> bool |
| auto | degenerate_triangle () const -> bool |
| auto | upcast_to_in_sphere_tester_int () const -> &meshlib::InSphereTester_int |
| auto | upcast_to_in_sphere_tester_int_mut () -> &mut meshlib::InSphereTester_int |
| auto | upcast_to_in_sphere_tester_so_s () const -> &meshlib::InSphereTesterSoS |
| auto | upcast_to_in_sphere_tester_so_s_mut () -> &mut meshlib::InSphereTesterSoS |
Static Public Member Functions | |
| static auto | new () -> meshlib::Owned< meshlib::FastInSphereTesterSoS > |
| static auto | construct_from_another (_other:&meshlib::FastInSphereTesterSoS) -> meshlib::Owned< meshlib::FastInSphereTesterSoS > |
| static auto | static_downcast_from_in_sphere_tester_int (object:&meshlib::InSphereTester_int) -> &Self |
| static auto | static_downcast_from_in_sphere_tester_int_mut (object:&mut meshlib::InSphereTester_int) -> &mut Self |
| static auto | static_downcast_from_in_sphere_tester_so_s (object:&meshlib::InSphereTesterSoS) -> &Self |
| static auto | static_downcast_from_in_sphere_tester_so_s_mut (object:&mut meshlib::InSphereTesterSoS) -> &mut Self |
| Static Public Member Functions inherited from meshlib::CppClass | |
| static void | destroy (ptr:*mut Self) |
| Static Public Member Functions inherited from meshlib::CppCopy | |
| static auto | copy (ptr:*const Self) -> *mut Self |
gives exactly the same answers as InSphereTesterSoS, only faster: the sphere's center is also computed in floating point during reset(), and every query point far enough from the sphere's surface is answered by it alone, leaving the exact predicates for the points close to it Generated from class MR::FastInSphereTesterSoS. Base classes: Direct: (non-virtual) MR::InSphereTesterSoS Indirect: (non-virtual) MR::InSphereTester<int>
Generated from class MR::FastInSphereTesterSoS. Heap-allocated instances are held in Owned<FastInSphereTesterSoS>.
| auto meshlib::FastInSphereTesterSoS::assign_from_another | ( | _other:&meshlib::FastInSphereTesterSoS | ) | -> &mut meshlib::FastInSphereTesterSoS |
Generated from method MR::FastInSphereTesterSoS::operator=.
Calls MR_FastInSphereTesterSoS_AssignFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in this object.
| auto meshlib::FastInSphereTesterSoS::call | ( | d:&meshlib::PreciseVertCoords | ) | const -> meshlib::InSphereResult |
returns the position of the point d.pt relative to the sphere, with the ties resolved by simulation-of-simplicity exactly as InSphereTesterSoS does (never OnSphere or NoSphere); shall be called only after reset() returned true, and all four ids must be distinct Generated from method MR::FastInSphereTesterSoS::operator().
Calls MR_FastInSphereTesterSoS_call().
|
static |
Generated from constructor MR::FastInSphereTesterSoS::FastInSphereTesterSoS.
Calls MR_FastInSphereTesterSoS_ConstructFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object.
| auto meshlib::FastInSphereTesterSoS::degenerate_triangle | ( | ) | const -> bool |
whether the last successful reset() got a degenerate triangle (two coincident points), where only the symbolically perturbed sphere exists; the exact sphere quantities of the base class are not valid then Generated from method MR::FastInSphereTesterSoS::degenerateTriangle.
Calls MR_FastInSphereTesterSoS_degenerateTriangle().
| void meshlib::FastInSphereTesterSoS::flip | ( | ) |
selects the mirror sphere as the base class does, moving the floating-point center as well; this hides the flip of the base class, which would leave the center on the wrong side Generated from method MR::FastInSphereTesterSoS::flip.
Calls MR_FastInSphereTesterSoS_flip().
|
static |
Constructs an empty (default-constructed) instance.
Calls MR_FastInSphereTesterSoS_DefaultConstruct().
| auto meshlib::FastInSphereTesterSoS::outside_both_spheres | ( | d:&meshlib::Vector3i | ) | const -> bool |
whether d is strictly outside both spheres of the given radius passing via the three points of reset(): the selected one and its mirror in the plane of the triangle; the answer is exact, and a point lying on either of them is not strictly outside, so no tie arises and no simulation-of-simplicity is involved; filtered in floating point as the query above, and equally exact; for a degenerate triangle, where only the perturbed spheres exist and the answer would need the id of d, returns false conservatively (never prunes) Generated from method MR::FastInSphereTesterSoS::outsideBothSpheres.
Calls MR_FastInSphereTesterSoS_outsideBothSpheres().
| auto meshlib::FastInSphereTesterSoS::reset | ( | a:&meshlib::PreciseVertCoords | , |
| b:&meshlib::PreciseVertCoords | , | ||
| c:&meshlib::PreciseVertCoords | , | ||
| rSq:i64 | ) -> bool |
prepares the tester as InSphereTesterSoS::reset does, and additionally computes the floating-point center of the sphere and the tolerance of the tests below; this hides the reset of the base class, which would leave the center stale Generated from method MR::FastInSphereTesterSoS::reset.
Calls MR_FastInSphereTesterSoS_reset().
| auto meshlib::FastInSphereTesterSoS::sphere_exists | ( | a:&meshlib::PreciseVertCoords | , |
| b:&meshlib::PreciseVertCoords | , | ||
| c:&meshlib::PreciseVertCoords | , | ||
| rSq:i64 | ) const -> bool |
returns exactly what reset( a, b, c, rSq ) would, without changing the tester: only the squared circumradius of the triangle is compared with rSq, and the sphere itself is not computed, which is much cheaper where just the existence of a sphere is needed Generated from method MR::FastInSphereTesterSoS::sphereExists.
Calls MR_FastInSphereTesterSoS_sphereExists().
|
static |
Static downcast from the base class MR::InSphereTester<int>.
Calls MR_FastInSphereTesterSoS_StaticDowncastFrom_MR_InSphereTester_int(). Undefined behavior if the object isn't actually a FastInSphereTesterSoS.
|
static |
Static downcast from the base class MR::InSphereTester<int>.
Calls MR_FastInSphereTesterSoS_MutableStaticDowncastFrom_MR_InSphereTester_int(). Undefined behavior if the object isn't actually a FastInSphereTesterSoS.
|
static |
Static downcast from the base class MR::InSphereTesterSoS.
Calls MR_FastInSphereTesterSoS_StaticDowncastFrom_MR_InSphereTesterSoS(). Undefined behavior if the object isn't actually a FastInSphereTesterSoS.
|
static |
Static downcast from the base class MR::InSphereTesterSoS.
Calls MR_FastInSphereTesterSoS_MutableStaticDowncastFrom_MR_InSphereTesterSoS(). Undefined behavior if the object isn't actually a FastInSphereTesterSoS.
| auto meshlib::FastInSphereTesterSoS::upcast_to_in_sphere_tester_int | ( | ) | const -> &meshlib::InSphereTester_int |
Upcasts to the base class MR::InSphereTester<int>.
Calls MR_FastInSphereTesterSoS_UpcastTo_MR_InSphereTester_int().
| auto meshlib::FastInSphereTesterSoS::upcast_to_in_sphere_tester_int_mut | ( | ) | -> &mut meshlib::InSphereTester_int |
Upcasts to the base class MR::InSphereTester<int>.
Calls MR_FastInSphereTesterSoS_MutableUpcastTo_MR_InSphereTester_int().
| auto meshlib::FastInSphereTesterSoS::upcast_to_in_sphere_tester_so_s | ( | ) | const -> &meshlib::InSphereTesterSoS |
Upcasts to the base class MR::InSphereTesterSoS.
Calls MR_FastInSphereTesterSoS_UpcastTo_MR_InSphereTesterSoS().
| auto meshlib::FastInSphereTesterSoS::upcast_to_in_sphere_tester_so_s_mut | ( | ) | -> &mut meshlib::InSphereTesterSoS |
Upcasts to the base class MR::InSphereTesterSoS.
Calls MR_FastInSphereTesterSoS_MutableUpcastTo_MR_InSphereTesterSoS().