Go to the source code of this file.
Typedefs | |
| typedef struct MR_std_array_MR_PreciseVertCoords_4 | MR_std_array_MR_PreciseVertCoords_4 |
| typedef enum MR_InSphereResult | MR_InSphereResult |
| the result of inSphere predicates | |
| typedef struct MR_InSphereTester_float | MR_InSphereTester_float |
| typedef struct MR_InSphereTester_double | MR_InSphereTester_double |
| typedef struct MR_InSphereTester_int | MR_InSphereTester_int |
| typedef struct MR_InSphereTesterSoS | MR_InSphereTesterSoS |
| typedef struct MR_FastInSphereTesterSoS | MR_FastInSphereTesterSoS |
Enumerations | |
| enum | MR_InSphereResult { MR_InSphereResult_NoSphere = 0 , MR_InSphereResult_Outside = 1 , MR_InSphereResult_OnSphere = 2 , MR_InSphereResult_Inside = 3 } |
| the result of inSphere predicates More... | |
| typedef struct MR_FastInSphereTesterSoS MR_FastInSphereTesterSoS |
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> Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).
| typedef enum MR_InSphereResult MR_InSphereResult |
the result of inSphere predicates
| typedef struct MR_InSphereTester_double MR_InSphereTester_double |
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<double>. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).
| typedef struct MR_InSphereTester_float MR_InSphereTester_float |
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>. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).
| typedef struct MR_InSphereTester_int MR_InSphereTester_int |
the specialization implementing the precise integer predicate, exact for any input; rSq must be given in the same integer grid units as the point coordinates Generated from class MR::InSphereTester<int>. Derived classes: Direct: (non-virtual) MR::InSphereTesterSoS Indirect: (non-virtual) MR::FastInSphereTesterSoS Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).
| typedef struct MR_InSphereTesterSoS MR_InSphereTesterSoS |
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 Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).
A fixed-size array of MR::PreciseVertCoords of size 4. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).
| enum MR_InSphereResult |
the result of inSphere predicates
| MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_AssignFromAnother | ( | MR_FastInSphereTesterSoS * | _this, |
| const MR_FastInSphereTesterSoS * | _other ) |
Generated from method MR::FastInSphereTesterSoS::operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it held previously.
| MRC_API MR_InSphereResult MR_FastInSphereTesterSoS_call | ( | const MR_FastInSphereTesterSoS * | _this, |
| const MR_PreciseVertCoords * | d ) |
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(). Parameter _this can not be null. It is a single object. Parameter d can not be null. It is a single object.
| MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_ConstructFromAnother | ( | const MR_FastInSphereTesterSoS * | _other | ) |
Generated from constructor MR::FastInSphereTesterSoS::FastInSphereTesterSoS. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_FastInSphereTesterSoS_Destroy() to free it when you're done using it.
| MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_DefaultConstruct | ( | void | ) |
Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_FastInSphereTesterSoS_Destroy() to free it when you're done using it.
| MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_DefaultConstructArray | ( | size_t | num_elems | ) |
Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_FastInSphereTesterSoS_DestroyArray(). Use MR_FastInSphereTesterSoS_OffsetMutablePtr() and MR_FastInSphereTesterSoS_OffsetPtr() to access the array elements.
| MRC_API bool MR_FastInSphereTesterSoS_degenerateTriangle | ( | const MR_FastInSphereTesterSoS * | _this | ) |
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. Parameter _this can not be null. It is a single object.
| MRC_API void MR_FastInSphereTesterSoS_Destroy | ( | const MR_FastInSphereTesterSoS * | _this | ) |
Destroys a heap-allocated instance of MR_FastInSphereTesterSoS. Does nothing if the pointer is null.
| MRC_API void MR_FastInSphereTesterSoS_DestroyArray | ( | const MR_FastInSphereTesterSoS * | _this | ) |
Destroys a heap-allocated array of MR_FastInSphereTesterSoS. Does nothing if the pointer is null.
| MRC_API void MR_FastInSphereTesterSoS_flip | ( | MR_FastInSphereTesterSoS * | _this | ) |
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. Parameter _this can not be null. It is a single object.
| MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_MutableStaticDowncastFrom_MR_InSphereTester_int | ( | MR_InSphereTester_int * | object | ) |
Downcasts an instance of MR::InSphereTester<int> to a derived class MR::FastInSphereTesterSoS. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise. The reference to the parameter object might be preserved in the return value.
| MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_MutableStaticDowncastFrom_MR_InSphereTesterSoS | ( | MR_InSphereTesterSoS * | object | ) |
Downcasts an instance of MR::InSphereTesterSoS to a derived class MR::FastInSphereTesterSoS. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise. The reference to the parameter object might be preserved in the return value.
| MRC_API MR_InSphereTester_int * MR_FastInSphereTesterSoS_MutableUpcastTo_MR_InSphereTester_int | ( | MR_FastInSphereTesterSoS * | object | ) |
Upcasts an instance of MR::FastInSphereTesterSoS to its base class MR::InSphereTester<int>. The reference to the parameter object might be preserved in the return value.
| MRC_API MR_InSphereTesterSoS * MR_FastInSphereTesterSoS_MutableUpcastTo_MR_InSphereTesterSoS | ( | MR_FastInSphereTesterSoS * | object | ) |
Upcasts an instance of MR::FastInSphereTesterSoS to its base class MR::InSphereTesterSoS. The reference to the parameter object might be preserved in the return value.
| MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_OffsetMutablePtr | ( | MR_FastInSphereTesterSoS * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API const MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_OffsetPtr | ( | const MR_FastInSphereTesterSoS * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API bool MR_FastInSphereTesterSoS_outsideBothSpheres | ( | const MR_FastInSphereTesterSoS * | _this, |
| const MR_Vector3i * | d ) |
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. Parameter _this can not be null. It is a single object. Parameter d can not be null. It is a single object.
| MRC_API bool MR_FastInSphereTesterSoS_reset | ( | MR_FastInSphereTesterSoS * | _this, |
| const MR_PreciseVertCoords * | a, | ||
| const MR_PreciseVertCoords * | b, | ||
| const MR_PreciseVertCoords * | c, | ||
| int64_t | rSq ) |
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. Parameter _this can not be null. It is a single object. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object. Parameter c can not be null. It is a single object.
| MRC_API const MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_StaticDowncastFrom_MR_InSphereTester_int | ( | const MR_InSphereTester_int * | object | ) |
Downcasts an instance of MR::InSphereTester<int> to a derived class MR::FastInSphereTesterSoS. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise. This version is acting on mutable pointers. The reference to the parameter object might be preserved in the return value.
| MRC_API const MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_StaticDowncastFrom_MR_InSphereTesterSoS | ( | const MR_InSphereTesterSoS * | object | ) |
Downcasts an instance of MR::InSphereTesterSoS to a derived class MR::FastInSphereTesterSoS. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise. This version is acting on mutable pointers. The reference to the parameter object might be preserved in the return value.
| MRC_API const MR_InSphereTester_int * MR_FastInSphereTesterSoS_UpcastTo_MR_InSphereTester_int | ( | const MR_FastInSphereTesterSoS * | object | ) |
Upcasts an instance of MR::FastInSphereTesterSoS to its base class MR::InSphereTester<int>. This version is acting on mutable pointers. The reference to the parameter object might be preserved in the return value.
| MRC_API const MR_InSphereTesterSoS * MR_FastInSphereTesterSoS_UpcastTo_MR_InSphereTesterSoS | ( | const MR_FastInSphereTesterSoS * | object | ) |
Upcasts an instance of MR::FastInSphereTesterSoS to its base class MR::InSphereTesterSoS. This version is acting on mutable pointers. The reference to the parameter object might be preserved in the return value.
| MRC_API MR_InSphereResult MR_inSphere_2 | ( | const MR_std_array_MR_PreciseVertCoords_4 * | vs, |
| int64_t | rSq ) |
checks whether the point vs[3] is strictly inside the sphere of radius sqrt(rSq) passing via points vs[0], vs[1], vs[2], with the center located on the positive side of plane vs[0]vs[1]vs[2] (same convention as in the overload above); full simulation-of-simplicity semantics: the answer equals the answer of the plain predicate on the symbolically perturbed points, where the point with rank r among the four (by ascending ids) receives +eps^(9*L^r) to x, +eps^(3*L^r) to y, +eps^(L^r) to z with L = 128, eps -> +0 (z gets the largest perturbation as in getPointDegrees, but the ladder between the ranks is 128: it exceeds the maximal degree-weight of one point in the predicate polynomials, which makes the resolution independent of whether the ranks are computed among 3 or among all 4 points); consequently:
| MRC_API MR_InSphereResult MR_inSphere_5 | ( | const MR_Vector3i * | a, |
| const MR_Vector3i * | b, | ||
| const MR_Vector3i * | c, | ||
| const MR_Vector3i * | d, | ||
| int64_t | rSq ) |
checks whether the point D is strictly inside the sphere of radius sqrt(rSq) passing via points A, B, C, whose center is located on the positive side of plane ABC (in the half-space pointed at by cross( b - a, c - a ) from the plane); returns OnSphere when D is exactly on the sphere; cyclic permutations of (A, B, C) do not change the result, a swap of two of them selects the mirror sphere; rSq must be given in the same integer grid units as the point coordinates Generated from function MR::inSphere. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object. Parameter c can not be null. It is a single object. Parameter d can not be null. It is a single object.
| MRC_API MR_InSphereResult MR_inSphere_double | ( | const MR_Vector3d * | a, |
| const MR_Vector3d * | b, | ||
| const MR_Vector3d * | c, | ||
| const MR_Vector3d * | d, | ||
| double | rSq ) |
checks whether the point d is strictly inside the sphere of radius sqrt(rSq) passing via points a, b, c, whose center is located on the positive side of plane abc, in floating-point; see the comment on InSphereTester above for the limitations Generated from function MR::inSphere<double>. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object. Parameter c can not be null. It is a single object. Parameter d can not be null. It is a single object.
| MRC_API MR_InSphereResult MR_inSphere_float | ( | const MR_Vector3f * | a, |
| const MR_Vector3f * | b, | ||
| const MR_Vector3f * | c, | ||
| const MR_Vector3f * | d, | ||
| float | rSq ) |
checks whether the point d is strictly inside the sphere of radius sqrt(rSq) passing via points a, b, c, whose center is located on the positive side of plane abc, in floating-point; see the comment on InSphereTester above for the limitations Generated from function MR::inSphere<float>. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object. Parameter c can not be null. It is a single object. Parameter d can not be null. It is a single object.
| MRC_API MR_InSphereTester_double * MR_InSphereTester_double_AssignFromAnother | ( | MR_InSphereTester_double * | _this, |
| const MR_InSphereTester_double * | _other ) |
Generated from method MR::InSphereTester<double>::operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it held previously.
| MRC_API MR_InSphereResult MR_InSphereTester_double_call | ( | const MR_InSphereTester_double * | _this, |
| const MR_Vector3d * | 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<double>::operator(). Parameter _this can not be null. It is a single object. Parameter d can not be null. It is a single object.
| MRC_API MR_InSphereTester_double * MR_InSphereTester_double_ConstructFromAnother | ( | const MR_InSphereTester_double * | _other | ) |
Generated from constructor MR::InSphereTester<double>::InSphereTester. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_InSphereTester_double_Destroy() to free it when you're done using it.
| MRC_API MR_InSphereTester_double * MR_InSphereTester_double_DefaultConstruct | ( | void | ) |
Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_InSphereTester_double_Destroy() to free it when you're done using it.
| MRC_API MR_InSphereTester_double * MR_InSphereTester_double_DefaultConstructArray | ( | size_t | num_elems | ) |
Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_InSphereTester_double_DestroyArray(). Use MR_InSphereTester_double_OffsetMutablePtr() and MR_InSphereTester_double_OffsetPtr() to access the array elements.
| MRC_API void MR_InSphereTester_double_Destroy | ( | const MR_InSphereTester_double * | _this | ) |
Destroys a heap-allocated instance of MR_InSphereTester_double. Does nothing if the pointer is null.
| MRC_API void MR_InSphereTester_double_DestroyArray | ( | const MR_InSphereTester_double * | _this | ) |
Destroys a heap-allocated array of MR_InSphereTester_double. Does nothing if the pointer is null.
| MRC_API void MR_InSphereTester_double_flip | ( | MR_InSphereTester_double * | _this | ) |
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<double>::flip. Parameter _this can not be null. It is a single object.
| MRC_API MR_InSphereTester_double * MR_InSphereTester_double_OffsetMutablePtr | ( | MR_InSphereTester_double * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API const MR_InSphereTester_double * MR_InSphereTester_double_OffsetPtr | ( | const MR_InSphereTester_double * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API bool MR_InSphereTester_double_reset | ( | MR_InSphereTester_double * | _this, |
| const MR_Vector3d * | va, | ||
| const MR_Vector3d * | vb, | ||
| const MR_Vector3d * | vc, | ||
| double | 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<double>::reset. Parameter _this can not be null. It is a single object. Parameter va can not be null. It is a single object. Parameter vb can not be null. It is a single object. Parameter vc can not be null. It is a single object.
| MRC_API MR_InSphereTester_float * MR_InSphereTester_float_AssignFromAnother | ( | MR_InSphereTester_float * | _this, |
| const MR_InSphereTester_float * | _other ) |
Generated from method MR::InSphereTester<float>::operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it held previously.
| MRC_API MR_InSphereResult MR_InSphereTester_float_call | ( | const MR_InSphereTester_float * | _this, |
| const 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(). Parameter _this can not be null. It is a single object. Parameter d can not be null. It is a single object.
| MRC_API MR_InSphereTester_float * MR_InSphereTester_float_ConstructFromAnother | ( | const MR_InSphereTester_float * | _other | ) |
Generated from constructor MR::InSphereTester<float>::InSphereTester. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_InSphereTester_float_Destroy() to free it when you're done using it.
| MRC_API MR_InSphereTester_float * MR_InSphereTester_float_DefaultConstruct | ( | void | ) |
Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_InSphereTester_float_Destroy() to free it when you're done using it.
| MRC_API MR_InSphereTester_float * MR_InSphereTester_float_DefaultConstructArray | ( | size_t | num_elems | ) |
Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_InSphereTester_float_DestroyArray(). Use MR_InSphereTester_float_OffsetMutablePtr() and MR_InSphereTester_float_OffsetPtr() to access the array elements.
| MRC_API void MR_InSphereTester_float_Destroy | ( | const MR_InSphereTester_float * | _this | ) |
Destroys a heap-allocated instance of MR_InSphereTester_float. Does nothing if the pointer is null.
| MRC_API void MR_InSphereTester_float_DestroyArray | ( | const MR_InSphereTester_float * | _this | ) |
Destroys a heap-allocated array of MR_InSphereTester_float. Does nothing if the pointer is null.
| MRC_API void MR_InSphereTester_float_flip | ( | MR_InSphereTester_float * | _this | ) |
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. Parameter _this can not be null. It is a single object.
| MRC_API MR_InSphereTester_float * MR_InSphereTester_float_OffsetMutablePtr | ( | MR_InSphereTester_float * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API const MR_InSphereTester_float * MR_InSphereTester_float_OffsetPtr | ( | const MR_InSphereTester_float * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API bool MR_InSphereTester_float_reset | ( | MR_InSphereTester_float * | _this, |
| const MR_Vector3f * | va, | ||
| const MR_Vector3f * | vb, | ||
| const 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. Parameter _this can not be null. It is a single object. Parameter va can not be null. It is a single object. Parameter vb can not be null. It is a single object. Parameter vc can not be null. It is a single object.
| MRC_API MR_InSphereTester_int * MR_InSphereTester_int_AssignFromAnother | ( | MR_InSphereTester_int * | _this, |
| const MR_InSphereTester_int * | _other ) |
Generated from method MR::InSphereTester<int>::operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it held previously.
| MRC_API MR_InSphereResult MR_InSphereTester_int_call | ( | const MR_InSphereTester_int * | _this, |
| const MR_Vector3i * | 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<int>::operator(). Parameter _this can not be null. It is a single object. Parameter d can not be null. It is a single object.
| MRC_API MR_InSphereTester_int * MR_InSphereTester_int_ConstructFromAnother | ( | const MR_InSphereTester_int * | _other | ) |
Generated from constructor MR::InSphereTester<int>::InSphereTester. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_InSphereTester_int_Destroy() to free it when you're done using it.
| MRC_API MR_InSphereTester_int * MR_InSphereTester_int_DefaultConstruct | ( | void | ) |
Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_InSphereTester_int_Destroy() to free it when you're done using it.
| MRC_API MR_InSphereTester_int * MR_InSphereTester_int_DefaultConstructArray | ( | size_t | num_elems | ) |
Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_InSphereTester_int_DestroyArray(). Use MR_InSphereTester_int_OffsetMutablePtr() and MR_InSphereTester_int_OffsetPtr() to access the array elements.
| MRC_API void MR_InSphereTester_int_Destroy | ( | const MR_InSphereTester_int * | _this | ) |
Destroys a heap-allocated instance of MR_InSphereTester_int. Does nothing if the pointer is null.
| MRC_API void MR_InSphereTester_int_DestroyArray | ( | const MR_InSphereTester_int * | _this | ) |
Destroys a heap-allocated array of MR_InSphereTester_int. Does nothing if the pointer is null.
| MRC_API void MR_InSphereTester_int_flip | ( | MR_InSphereTester_int * | _this | ) |
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<int>::flip. Parameter _this can not be null. It is a single object.
| MRC_API MR_InSphereTester_int * MR_InSphereTester_int_OffsetMutablePtr | ( | MR_InSphereTester_int * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API const MR_InSphereTester_int * MR_InSphereTester_int_OffsetPtr | ( | const MR_InSphereTester_int * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API bool MR_InSphereTester_int_reset | ( | MR_InSphereTester_int * | _this, |
| const MR_Vector3i * | a, | ||
| const MR_Vector3i * | b, | ||
| const MR_Vector3i * | c, | ||
| int64_t | rSq ) |
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<int>::reset. Parameter _this can not be null. It is a single object. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object. Parameter c can not be null. It is a single object.
| MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_AssignFromAnother | ( | MR_InSphereTesterSoS * | _this, |
| const MR_InSphereTesterSoS * | _other ) |
Generated from method MR::InSphereTesterSoS::operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it held previously.
| MRC_API MR_InSphereResult MR_InSphereTesterSoS_call | ( | const MR_InSphereTesterSoS * | _this, |
| const MR_PreciseVertCoords * | d ) |
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(). Parameter _this can not be null. It is a single object. Parameter d can not be null. It is a single object.
| MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_ConstructFromAnother | ( | const MR_InSphereTesterSoS * | _other | ) |
Generated from constructor MR::InSphereTesterSoS::InSphereTesterSoS. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_InSphereTesterSoS_Destroy() to free it when you're done using it.
| MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_DefaultConstruct | ( | void | ) |
Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_InSphereTesterSoS_Destroy() to free it when you're done using it.
| MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_DefaultConstructArray | ( | size_t | num_elems | ) |
Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_InSphereTesterSoS_DestroyArray(). Use MR_InSphereTesterSoS_OffsetMutablePtr() and MR_InSphereTesterSoS_OffsetPtr() to access the array elements.
| MRC_API bool MR_InSphereTesterSoS_degenerateTriangle | ( | const MR_InSphereTesterSoS * | _this | ) |
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. Parameter _this can not be null. It is a single object.
| MRC_API void MR_InSphereTesterSoS_Destroy | ( | const MR_InSphereTesterSoS * | _this | ) |
Destroys a heap-allocated instance of MR_InSphereTesterSoS. Does nothing if the pointer is null.
| MRC_API void MR_InSphereTesterSoS_DestroyArray | ( | const MR_InSphereTesterSoS * | _this | ) |
Destroys a heap-allocated array of MR_InSphereTesterSoS. Does nothing if the pointer is null.
| MRC_API void MR_InSphereTesterSoS_flip | ( | MR_InSphereTesterSoS * | _this | ) |
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. Parameter _this can not be null. It is a single object.
| MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_MutableStaticDowncastFrom_MR_InSphereTester_int | ( | MR_InSphereTester_int * | object | ) |
Downcasts an instance of MR::InSphereTester<int> to a derived class MR::InSphereTesterSoS. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise. The reference to the parameter object might be preserved in the return value.
| MRC_API MR_InSphereTester_int * MR_InSphereTesterSoS_MutableUpcastTo_MR_InSphereTester_int | ( | MR_InSphereTesterSoS * | object | ) |
Upcasts an instance of MR::InSphereTesterSoS to its base class MR::InSphereTester<int>. The reference to the parameter object might be preserved in the return value.
| MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_OffsetMutablePtr | ( | MR_InSphereTesterSoS * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API const MR_InSphereTesterSoS * MR_InSphereTesterSoS_OffsetPtr | ( | const MR_InSphereTesterSoS * | ptr, |
| ptrdiff_t | i ) |
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.
| MRC_API bool MR_InSphereTesterSoS_reset | ( | MR_InSphereTesterSoS * | _this, |
| const MR_PreciseVertCoords * | a, | ||
| const MR_PreciseVertCoords * | b, | ||
| const MR_PreciseVertCoords * | c, | ||
| int64_t | rSq ) |
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. Parameter _this can not be null. It is a single object. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object. Parameter c can not be null. It is a single object.
| MRC_API const MR_InSphereTesterSoS * MR_InSphereTesterSoS_StaticDowncastFrom_MR_InSphereTester_int | ( | const MR_InSphereTester_int * | object | ) |
Downcasts an instance of MR::InSphereTester<int> to a derived class MR::InSphereTesterSoS. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise. This version is acting on mutable pointers. The reference to the parameter object might be preserved in the return value.
| MRC_API const MR_InSphereTester_int * MR_InSphereTesterSoS_UpcastTo_MR_InSphereTester_int | ( | const MR_InSphereTesterSoS * | object | ) |
Upcasts an instance of MR::InSphereTesterSoS to its base class MR::InSphereTester<int>. This version is acting on mutable pointers. The reference to the parameter object might be preserved in the return value.