MeshLib Java Docs
Loading...
Searching...
No Matches
meshlib.InSphereTester_float Class Reference
Inheritance diagram for meshlib.InSphereTester_float:

Public Member Functions

 InSphereTester_float (java.lang.foreign.MemorySegment ptr, boolean owned, java.lang.Object owner)
 InSphereTester_float ()
 InSphereTester_float (meshlib.InSphereTester_float _other)
meshlib.InSphereTester_float assignFromAnother (meshlib.InSphereTester_float _other)
boolean reset (meshlib.Vector3f va, meshlib.Vector3f vb, meshlib.Vector3f vc, float sqRadius)
void flip ()
meshlib.InSphereResult call (meshlib.Vector3f d)
Public Member Functions inherited from meshlib.CppObject
final java.lang.foreign.MemorySegment rawPointer ()
final boolean isOwned ()
final void close ()
final java.lang.foreign.MemorySegment release ()

Additional Inherited Members

Protected Member Functions inherited from meshlib.CppObject
 CppObject (java.lang.foreign.MemorySegment ptr, java.util.function.Consumer< java.lang.foreign.MemorySegment > destroy, java.lang.Object owner)

Detailed Description

accelerates testing of many query points against one sphere given by the same three points and radius, pre-computing all the point-independent quantities once; the primary template works for floating-point T with the same case analysis as the precise specialization for int below, so the answers for the query points near the sphere's surface are subject to rounding errors, and OnSphere is returned only on the exact equality in the comparisons; the products inside have degree 16 in coordinates, so to avoid overflows any difference of two given points' coordinates as well as sqrt(rSq) must be below ~100 for T=float and ~1e18 for T=double; the one-call inSphere functions are implemented via this class Generated from class MR::InSphereTester<float>.

Instances created here own their C++ objects, see CppObject.

Constructor & Destructor Documentation

◆ InSphereTester_float() [1/3]

meshlib.InSphereTester_float.InSphereTester_float ( java.lang.foreign.MemorySegment ptr,
boolean owned,
java.lang.Object owner )

Wraps a pointer from the C bindings. If owned, the object is destroyed when the wrapper dies. owner is kept alive as long as this wrapper is. Not for normal use.

◆ InSphereTester_float() [2/3]

meshlib.InSphereTester_float.InSphereTester_float ( )

Constructs an empty (default-constructed) instance.

Calls MR_InSphereTester_float_DefaultConstruct().

◆ InSphereTester_float() [3/3]

meshlib.InSphereTester_float.InSphereTester_float ( meshlib.InSphereTester_float _other)

Generated from constructor MR::InSphereTester<float>::InSphereTester. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object.

Calls MR_InSphereTester_float_ConstructFromAnother().

Member Function Documentation

◆ assignFromAnother()

meshlib.InSphereTester_float meshlib.InSphereTester_float.assignFromAnother ( meshlib.InSphereTester_float _other)

Generated from method MR::InSphereTester<float>::operator=. The reference to things referred to by the parameter _other (if any) might be preserved in this object.

Calls MR_InSphereTester_float_AssignFromAnother().

◆ call()

meshlib.InSphereResult meshlib.InSphereTester_float.call ( meshlib.Vector3f d)

returns the position of the point d relative to the sphere (never NoSphere); shall be called only after reset() returned true Generated from method MR::InSphereTester<float>::operator().

Calls MR_InSphereTester_float_call().

◆ flip()

void meshlib.InSphereTester_float.flip ( )

swaps the points b and c, which selects the mirror sphere with the center on the other side of plane abc, and gives exactly the state of reset( a, c, b, rSq ) without recomputing anything: only the normal w changes there, and W, M, E are symmetric in b and c; shall be called only after reset() returned true Generated from method MR::InSphereTester<float>::flip.

Calls MR_InSphereTester_float_flip().

◆ reset()

boolean meshlib.InSphereTester_float.reset ( meshlib.Vector3f va,
meshlib.Vector3f vb,
meshlib.Vector3f vc,
float sqRadius )

prepares the tester for the sphere of radius sqrt(rSq) passing via points a, b, c, with the center located on the positive side of plane abc (in the half-space pointed at by cross( b - a, c - a ) from the plane); returns false if no such sphere exists: the points are collinear or coincident, or rSq is less than the squared circumradius of triangle abc Generated from method MR::InSphereTester<float>::reset.

Calls MR_InSphereTester_float_reset().


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