MeshLib C# Docs
Loading...
Searching...
No Matches
MR.InSphereTester_Float Class Reference

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>. This is the non-const half of the class. More...

Inheritance diagram for MR.InSphereTester_Float:

Public Member Functions

unsafe InSphereTester_Float ()
 Constructs an empty (default-constructed) instance.
unsafe InSphereTester_Float (MR.Const_InSphereTester_Float _other)
 Generated from constructor MR::InSphereTester<float>::InSphereTester.
 InSphereTester_Float (InSphereTester_Float _other)
 Generated from constructor MR::InSphereTester<float>::InSphereTester.
unsafe MR.InSphereTester_Float assign (MR.Const_InSphereTester_Float _other)
 Generated from method MR::InSphereTester<float>::operator=.
unsafe bool reset (in MR.Vector3f va, in MR.Vector3f vb, in MR.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.
Public Member Functions inherited from MR.Const_InSphereTester_Float
virtual void Dispose ()
unsafe Const_InSphereTester_Float ()
 Constructs an empty (default-constructed) instance.
unsafe Const_InSphereTester_Float (MR.Const_InSphereTester_Float _other)
 Generated from constructor MR::InSphereTester<float>::InSphereTester.
 Const_InSphereTester_Float (InSphereTester_Float _other)
 Generated from constructor MR::InSphereTester<float>::InSphereTester.
unsafe MR.InSphereResult call (in MR.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().

Additional Inherited Members

Protected Member Functions inherited from MR.Const_InSphereTester_Float
virtual unsafe void Dispose (bool disposing)

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>. This is the non-const half of the class.

Constructor & Destructor Documentation

◆ InSphereTester_Float() [1/3]

unsafe MR.InSphereTester_Float.InSphereTester_Float ( )
inline

Constructs an empty (default-constructed) instance.

◆ InSphereTester_Float() [2/3]

unsafe MR.InSphereTester_Float.InSphereTester_Float ( MR.Const_InSphereTester_Float _other)
inline

Generated from constructor MR::InSphereTester<float>::InSphereTester.

◆ InSphereTester_Float() [3/3]

MR.InSphereTester_Float.InSphereTester_Float ( InSphereTester_Float _other)
inline

Generated from constructor MR::InSphereTester<float>::InSphereTester.

Member Function Documentation

◆ assign()

unsafe MR.InSphereTester_Float MR.InSphereTester_Float.assign ( MR.Const_InSphereTester_Float _other)
inline

Generated from method MR::InSphereTester<float>::operator=.

◆ reset()

unsafe bool MR.InSphereTester_Float.reset ( in MR.Vector3f va,
in MR.Vector3f vb,
in MR.Vector3f vc,
float sqRadius )
inline

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.


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