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

Public Member Functions

auto assign_from_another (_other:&meshlib::InSphereTesterSoS) -> &mut meshlib::InSphereTesterSoS
auto reset (a:&meshlib::PreciseVertCoords, b:&meshlib::PreciseVertCoords, c:&meshlib::PreciseVertCoords, rSq:i64) -> bool
auto sphere_exists (a:&meshlib::PreciseVertCoords, b:&meshlib::PreciseVertCoords, c:&meshlib::PreciseVertCoords, rSq:i64) const -> bool
void flip ()
auto call (d:&meshlib::PreciseVertCoords) const -> meshlib::InSphereResult
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

Static Public Member Functions

static auto new () -> meshlib::Owned< meshlib::InSphereTesterSoS >
static auto construct_from_another (_other:&meshlib::InSphereTesterSoS) -> meshlib::Owned< meshlib::InSphereTesterSoS >
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 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

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 Generated from class MR::InSphereTesterSoS. Base classes: Direct: (non-virtual) MR::InSphereTester<int> Derived classes: Direct: (non-virtual) MR::FastInSphereTesterSoS

Generated from class MR::InSphereTesterSoS. Heap-allocated instances are held in Owned<InSphereTesterSoS>.

Member Function Documentation

◆ assign_from_another()

auto meshlib::InSphereTesterSoS::assign_from_another ( _other:&meshlib::InSphereTesterSoS ) -> &mut meshlib::InSphereTesterSoS

Generated from method MR::InSphereTesterSoS::operator=.

Calls MR_InSphereTesterSoS_AssignFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in this object.

◆ call()

auto meshlib::InSphereTesterSoS::call ( d:&meshlib::PreciseVertCoords ) const -> meshlib::InSphereResult

returns the position of the point d.pt relative to the sphere, resolving "exactly on the sphere" ties into Inside or Outside by simulation-of-simplicity as described at the inSphere overload above, using the ids of d and of the points given in reset() (never returns OnSphere or NoSphere); shall be called only after reset() returned true, and all four ids must be distinct Generated from method MR::InSphereTesterSoS::operator().

Calls MR_InSphereTesterSoS_call().

◆ construct_from_another()

auto meshlib::InSphereTesterSoS::construct_from_another ( _other:&meshlib::InSphereTesterSoS ) -> meshlib::Owned< meshlib::InSphereTesterSoS >
static

Generated from constructor MR::InSphereTesterSoS::InSphereTesterSoS.

Calls MR_InSphereTesterSoS_ConstructFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object.

◆ degenerate_triangle()

auto meshlib::InSphereTesterSoS::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::InSphereTesterSoS::degenerateTriangle.

Calls MR_InSphereTesterSoS_degenerateTriangle().

◆ flip()

void meshlib::InSphereTesterSoS::flip ( )

swaps the points b and c together with their ids, which selects the mirror sphere as in the base class, and gives exactly the state of reset( a, c, b, rSq ); this hides the id-less flip of the base class, which would leave stale ids Generated from method MR::InSphereTesterSoS::flip.

Calls MR_InSphereTesterSoS_flip().

◆ new()

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

Constructs an empty (default-constructed) instance.

Calls MR_InSphereTesterSoS_DefaultConstruct().

◆ reset()

auto meshlib::InSphereTesterSoS::reset ( a:&meshlib::PreciseVertCoords ,
b:&meshlib::PreciseVertCoords ,
c:&meshlib::PreciseVertCoords ,
rSq:i64  ) -> bool

prepares the tester for the sphere of radius sqrt(rSq) passing via points a.pt, b.pt, c.pt, with the center located on the positive side of their plane (in the half-space pointed at by cross( b.pt - a.pt, c.pt - a.pt ) from the plane), remembering the ids for the queries; returns false if no such sphere exists for the symbolically perturbed points (see the simulation-of-simplicity inSphere above): in particular, coincident and collinear triangle points are resolved by the perturbation here, and rSq exactly equal to the squared circumradius gives false whenever the perturbation of these ids breaks the existence; this hides the id-less reset of the base class, which would leave stale ids Generated from method MR::InSphereTesterSoS::reset.

Calls MR_InSphereTesterSoS_reset().

◆ sphere_exists()

auto meshlib::InSphereTesterSoS::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::InSphereTesterSoS::sphereExists.

Calls MR_InSphereTesterSoS_sphereExists().

◆ static_downcast_from_in_sphere_tester_int()

auto meshlib::InSphereTesterSoS::static_downcast_from_in_sphere_tester_int ( object:&meshlib::InSphereTester_int ) -> &Self
static

Static downcast from the base class MR::InSphereTester<int>.

Calls MR_InSphereTesterSoS_StaticDowncastFrom_MR_InSphereTester_int(). Undefined behavior if the object isn't actually a InSphereTesterSoS.

Note
This function is unsafe.

◆ static_downcast_from_in_sphere_tester_int_mut()

auto meshlib::InSphereTesterSoS::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_InSphereTesterSoS_MutableStaticDowncastFrom_MR_InSphereTester_int(). Undefined behavior if the object isn't actually a InSphereTesterSoS.

Note
This function is unsafe.

◆ upcast_to_in_sphere_tester_int()

auto meshlib::InSphereTesterSoS::upcast_to_in_sphere_tester_int ( ) const -> &meshlib::InSphereTester_int

Upcasts to the base class MR::InSphereTester<int>.

Calls MR_InSphereTesterSoS_UpcastTo_MR_InSphereTester_int().

◆ upcast_to_in_sphere_tester_int_mut()

auto meshlib::InSphereTesterSoS::upcast_to_in_sphere_tester_int_mut ( ) -> &mut meshlib::InSphereTester_int

Upcasts to the base class MR::InSphereTester<int>.

Calls MR_InSphereTesterSoS_MutableUpcastTo_MR_InSphereTester_int().


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