MeshLib Rust Docs
Loading...
Searching...
No Matches
meshlib::FastInSphereTesterSoS Struct Reference
Inheritance diagram for meshlib::FastInSphereTesterSoS:

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

Detailed Description

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>.

Member Function Documentation

◆ assign_from_another()

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.

◆ call()

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().

◆ construct_from_another()

auto meshlib::FastInSphereTesterSoS::construct_from_another ( _other:&meshlib::FastInSphereTesterSoS ) -> meshlib::Owned< meshlib::FastInSphereTesterSoS >
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.

◆ degenerate_triangle()

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().

◆ flip()

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().

◆ new()

auto meshlib::FastInSphereTesterSoS::new ( ) -> meshlib::Owned< meshlib::FastInSphereTesterSoS >
static

Constructs an empty (default-constructed) instance.

Calls MR_FastInSphereTesterSoS_DefaultConstruct().

◆ outside_both_spheres()

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().

◆ reset()

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().

◆ sphere_exists()

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_downcast_from_in_sphere_tester_int()

auto meshlib::FastInSphereTesterSoS::static_downcast_from_in_sphere_tester_int ( object:&meshlib::InSphereTester_int ) -> &Self
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.

Note
This function is unsafe.

◆ static_downcast_from_in_sphere_tester_int_mut()

auto meshlib::FastInSphereTesterSoS::static_downcast_from_in_sphere_tester_int_mut ( object:&mut meshlib::InSphereTester_int ) -> &mut Self
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.

Note
This function is unsafe.

◆ static_downcast_from_in_sphere_tester_so_s()

auto meshlib::FastInSphereTesterSoS::static_downcast_from_in_sphere_tester_so_s ( object:&meshlib::InSphereTesterSoS ) -> &Self
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.

Note
This function is unsafe.

◆ static_downcast_from_in_sphere_tester_so_s_mut()

auto meshlib::FastInSphereTesterSoS::static_downcast_from_in_sphere_tester_so_s_mut ( object:&mut meshlib::InSphereTesterSoS ) -> &mut Self
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.

Note
This function is unsafe.

◆ upcast_to_in_sphere_tester_int()

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().

◆ upcast_to_in_sphere_tester_int_mut()

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().

◆ upcast_to_in_sphere_tester_so_s()

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().

◆ upcast_to_in_sphere_tester_so_s_mut()

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().


The documentation for this struct was generated from the following file: