MeshLib C Docs
Loading...
Searching...
No Matches
MRFastWindingNumber.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRId.h>
4#include <MRCMisc/common.h>
5#include <MRCMisc/exports.h>
6
7#include <stddef.h>
8#include <stdint.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef struct MR_AffineXf3f MR_AffineXf3f; // Defined in `#include <MRCMesh/MRAffineXf.h>`.
15typedef struct MR_DistanceToMeshOptions MR_DistanceToMeshOptions; // Defined in `#include <MRCMesh/MRDistanceToMeshOptions.h>`.
16typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
17typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
18typedef struct MR_Vector3f MR_Vector3f; // Defined in `#include <MRCMesh/MRVector3.h>`.
19typedef struct MR_Vector3i MR_Vector3i; // Defined in `#include <MRCMesh/MRVector3.h>`.
20typedef struct MR_expected_void_std_string MR_expected_void_std_string; // Defined in `#include <MRCMisc/expected_void_std_string.h>`.
21typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
22typedef struct MR_std_function_expected_void_std_string_from_std_vector_float_rvalue_ref_const_MR_Vector3i_ref_int32_t MR_std_function_expected_void_std_string_from_std_vector_float_rvalue_ref_const_MR_Vector3i_ref_int32_t; // Defined in `#include <MRCMisc/std_function_expected_void_std_string_from_std_vector_float_rvalue_ref_const_MR_Vector3i_ref__a9a4.h>`.
23typedef struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f; // Defined in `#include <MRCMisc/std_vector_MR_Vector3f.h>`.
24typedef struct MR_std_vector_float MR_std_vector_float; // Defined in `#include <MRCMisc/std_vector_float.h>`.
25
26
33
42
46
49
52
69
82
99
115
118
121
126
130
135
139
146
152
156
159
162
166
169
176
179
182
183// see methods' descriptions in IFastWindingNumber
191
198
207
213
223
226
229
245
262
265
268
269#ifdef __cplusplus
270} // extern "C"
271#endif
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTreeBase.h:25
struct MR_std_vector_float MR_std_vector_float
Definition MRBestFit.h:27
struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
Definition MRBestFit.h:26
struct MR_expected_void_std_string MR_expected_void_std_string
Definition MRCtm.h:20
struct MR_Mesh MR_Mesh
Definition MRCtm.h:13
struct MR_DistanceToMeshOptions MR_DistanceToMeshOptions
Definition MRDistanceToMeshOptions.h:19
MRC_API MR_expected_void_std_string * MR_FastWindingNumber_calcSelfIntersections(MR_FastWindingNumber *_this, MR_FaceBitSet *res, float beta, const MR_std_function_bool_from_float *cb)
MRC_API MR_FastWindingNumber * MR_IFastWindingNumber_MutableDynamicDowncastTo_MR_FastWindingNumber(MR_IFastWindingNumber *object)
struct MR_IFastWindingNumber MR_IFastWindingNumber
Definition MRFastWindingNumber.h:32
MRC_API const MR_IFastWindingNumber * MR_FastWindingNumber_UpcastTo_MR_IFastWindingNumber(const MR_FastWindingNumber *object)
MRC_API void MR_IFastWindingNumber_DestroyArray(const MR_IFastWindingNumber *_this)
Destroys a heap-allocated array of MR_IFastWindingNumber. Does nothing if the pointer is null.
MRC_API MR_FastWindingNumber * MR_FastWindingNumber_OffsetMutablePtr(MR_FastWindingNumber *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API const MR_IFastWindingNumber * MR_IFastWindingNumber_OffsetPtr(const MR_IFastWindingNumber *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
struct MR_FastWindingNumber MR_FastWindingNumber
Definition MRFastWindingNumber.h:41
MRC_API void MR_IFastWindingNumberByParts_DestroyArray(const MR_IFastWindingNumberByParts *_this)
Destroys a heap-allocated array of MR_IFastWindingNumberByParts. Does nothing if the pointer is null.
MRC_API const MR_FastWindingNumber * MR_FastWindingNumber_OffsetPtr(const MR_FastWindingNumber *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_expected_void_std_string * MR_IFastWindingNumber_calcFromGrid(MR_IFastWindingNumber *_this, MR_std_vector_float *res, const MR_Vector3i *dims, const MR_AffineXf3f *gridToMeshXf, float beta, const MR_std_function_bool_from_float *cb)
calculates winding numbers in each point from a three-dimensional grid
MRC_API void MR_IFastWindingNumber_Destroy(const MR_IFastWindingNumber *_this)
Destroys a heap-allocated instance of MR_IFastWindingNumber. Does nothing if the pointer is null.
MRC_API MR_FastWindingNumber * MR_IFastWindingNumber_MutableDynamicDowncastToOrFail_MR_FastWindingNumber(MR_IFastWindingNumber *object)
MRC_API void MR_FastWindingNumber_Destroy(const MR_FastWindingNumber *_this)
Destroys a heap-allocated instance of MR_FastWindingNumber. Does nothing if the pointer is null.
MRC_API const MR_FastWindingNumber * MR_IFastWindingNumber_StaticDowncastTo_MR_FastWindingNumber(const MR_IFastWindingNumber *object)
struct MR_std_function_expected_void_std_string_from_std_vector_float_rvalue_ref_const_MR_Vector3i_ref_int32_t MR_std_function_expected_void_std_string_from_std_vector_float_rvalue_ref_const_MR_Vector3i_ref_int32_t
Definition MRFastWindingNumber.h:22
MRC_API MR_expected_void_std_string * MR_FastWindingNumber_calcFromVector(MR_FastWindingNumber *_this, MR_std_vector_float *res, const MR_std_vector_MR_Vector3f *points, float beta, MR_FaceId skipFace, const MR_std_function_bool_from_float *cb)
MRC_API MR_FastWindingNumber * MR_FastWindingNumber_Construct(const MR_Mesh *mesh)
MRC_API const MR_FastWindingNumber * MR_IFastWindingNumber_DynamicDowncastToOrFail_MR_FastWindingNumber(const MR_IFastWindingNumber *object)
MRC_API MR_expected_void_std_string * MR_IFastWindingNumber_calcFromVector(MR_IFastWindingNumber *_this, MR_std_vector_float *res, const MR_std_vector_MR_Vector3f *points, float beta, const MR_FaceId *skipFace, const MR_std_function_bool_from_float *cb)
calculates winding numbers in the points from given vector
MRC_API MR_FastWindingNumber * MR_IFastWindingNumber_MutableStaticDowncastTo_MR_FastWindingNumber(MR_IFastWindingNumber *object)
MRC_API const MR_FastWindingNumber * MR_IFastWindingNumber_DynamicDowncastTo_MR_FastWindingNumber(const MR_IFastWindingNumber *object)
MRC_API MR_FastWindingNumber * MR_FastWindingNumber_ConstructFromAnother(MR_PassBy _other_pass_by, MR_FastWindingNumber *_other)
MRC_API MR_expected_void_std_string * MR_IFastWindingNumber_calcSelfIntersections(MR_IFastWindingNumber *_this, MR_FaceBitSet *res, float beta, const MR_std_function_bool_from_float *cb)
calculates winding numbers for all centers of mesh's triangles. if winding number is less than 0 or g...
MRC_API MR_expected_void_std_string * MR_IFastWindingNumber_calcFromGridWithDistances(MR_IFastWindingNumber *_this, MR_std_vector_float *res, const MR_Vector3i *dims, const MR_AffineXf3f *gridToMeshXf, const MR_DistanceToMeshOptions *options, const MR_std_function_bool_from_float *cb)
calculates distances with the sign obtained from generalized winding number in each point from a thre...
MRC_API float MR_FastWindingNumber_calcWithDistances(MR_FastWindingNumber *_this, const MR_Vector3f *p, const MR_DistanceToMeshOptions *options)
MRC_API MR_expected_void_std_string * MR_FastWindingNumber_calcFromGrid(MR_FastWindingNumber *_this, MR_std_vector_float *res, const MR_Vector3i *dims, const MR_AffineXf3f *gridToMeshXf, float beta, const MR_std_function_bool_from_float *cb)
struct MR_IFastWindingNumberByParts MR_IFastWindingNumberByParts
Definition MRFastWindingNumber.h:45
MRC_API void MR_FastWindingNumber_DestroyArray(const MR_FastWindingNumber *_this)
Destroys a heap-allocated array of MR_FastWindingNumber. Does nothing if the pointer is null.
MRC_API MR_expected_void_std_string * MR_IFastWindingNumberByParts_calcFromGridByParts(MR_IFastWindingNumberByParts *_this, MR_PassBy resFunc_pass_by, MR_std_function_expected_void_std_string_from_std_vector_float_rvalue_ref_const_MR_Vector3i_ref_int32_t *resFunc, const MR_Vector3i *dims, const MR_AffineXf3f *gridToMeshXf, float beta, int32_t layerOverlap, const MR_std_function_bool_from_float *cb)
calculates winding numbers in each point from a three-dimensional grid
MRC_API const MR_IFastWindingNumberByParts * MR_IFastWindingNumberByParts_OffsetPtr(const MR_IFastWindingNumberByParts *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_IFastWindingNumberByParts * MR_IFastWindingNumberByParts_OffsetMutablePtr(MR_IFastWindingNumberByParts *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API void MR_IFastWindingNumberByParts_Destroy(const MR_IFastWindingNumberByParts *_this)
Destroys a heap-allocated instance of MR_IFastWindingNumberByParts. Does nothing if the pointer is nu...
MRC_API MR_IFastWindingNumber * MR_FastWindingNumber_MutableUpcastTo_MR_IFastWindingNumber(MR_FastWindingNumber *object)
Upcasts an instance of MR::FastWindingNumber to its base class MR::IFastWindingNumber.
MRC_API MR_expected_void_std_string * MR_IFastWindingNumberByParts_calcFromGridWithDistancesByParts(MR_IFastWindingNumberByParts *_this, MR_PassBy resFunc_pass_by, MR_std_function_expected_void_std_string_from_std_vector_float_rvalue_ref_const_MR_Vector3i_ref_int32_t *resFunc, const MR_Vector3i *dims, const MR_AffineXf3f *gridToMeshXf, const MR_DistanceToMeshOptions *options, int32_t layerOverlap, const MR_std_function_bool_from_float *cb)
calculates distances with the sign obtained from generalized winding number in each point from a thre...
MRC_API MR_expected_void_std_string * MR_FastWindingNumber_calcFromGridWithDistances(MR_FastWindingNumber *_this, MR_std_vector_float *res, const MR_Vector3i *dims, const MR_AffineXf3f *gridToMeshXf, const MR_DistanceToMeshOptions *options, const MR_std_function_bool_from_float *cb)
MRC_API MR_IFastWindingNumber * MR_IFastWindingNumber_OffsetMutablePtr(MR_IFastWindingNumber *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MR_PassBy
Definition common.h:19
#define MRC_API
Definition exports.h:11
const Vector3i & dims() const
Definition MRAffineXf.h:36
Definition MRId.h:46
Definition MRVector3.h:51
Definition MRVector3.h:33