MeshLib C Docs
Loading...
Searching...
No Matches
MRLaplacian.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MREnums.h>
4#include <MRCMesh/MRId.h>
5#include <MRCMesh/MRVector3.h>
6#include <MRCMisc/common.h>
7#include <MRCMisc/exports.h>
8
9#include <stdbool.h>
10#include <stddef.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
17typedef struct MR_MeshTopology MR_MeshTopology; // Defined in `#include <MRCMesh/MRMeshTopology.h>`.
18typedef struct MR_MeshTriPoint MR_MeshTriPoint; // Defined in `#include <MRCMesh/MRMeshTriPoint.h>`.
19typedef struct MR_Vector3f MR_Vector3f; // Defined in `#include <MRCMesh/MRVector3.h>`.
20typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
21typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
22typedef struct MR_VertScalars MR_VertScalars; // Defined in `#include <MRCMesh/MRVector.h>`.
23
24
29
41
46
50
54
60
68
71
74
83MRC_API void MR_Laplacian_init(MR_Laplacian *_this, const MR_VertBitSet *freeVerts, MR_EdgeWeights weights, const MR_VertexMass *vmass, const MR_RememberShape *rem);
84
92MRC_API void MR_Laplacian_initFromPoints(MR_Laplacian *_this, const MR_VertCoords *points, const MR_VertBitSet *freeVerts, MR_EdgeWeights weights, const MR_VertexMass *vmass, const MR_RememberShape *rem);
93
99MRC_API void MR_Laplacian_fixVertex_2(MR_Laplacian *_this, MR_VertId v, const bool *smooth);
100
107MRC_API void MR_Laplacian_fixVertex_3(MR_Laplacian *_this, MR_VertId v, const MR_Vector3f *fixedPos, const bool *smooth);
108
113
118
125
131
138
144
150
156
162
168
174
179
185
192
198
204
210
216
226
235
245
249
254
262
266
270
276
279
282
290
291#ifdef __cplusplus
292} // extern "C"
293#endif
struct MR_MeshTopology MR_MeshTopology
Definition MR2DContoursTriangulation.h:15
struct MR_VertCoords MR_VertCoords
std::vector<T>-like container that requires specific indexing type,
Definition MRAABBTreePoints.h:21
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:22
struct MR_VertScalars MR_VertScalars
std::vector<T>-like container that requires specific indexing type,
Definition MRAggregateFlow.h:17
struct MR_MeshTriPoint MR_MeshTriPoint
Definition MRAggregateFlow.h:13
struct MR_Mesh MR_Mesh
Definition MRCtm.h:16
MR_EdgeWeights
determines the weight of each edge in applications like Laplacian
Definition MREnums.h:50
MR_RememberShape
Definition MREnums.h:58
MR_VertexMass
determines the weight or mass of each vertex in applications like Laplacian
Definition MREnums.h:41
MRC_API void MR_Laplacian_updateSolver(MR_Laplacian *_this)
MRC_API void MR_Laplacian_Attractor_Set_weight(MR_Laplacian_Attractor *_this, double value)
MRC_API void MR_Laplacian_init(MR_Laplacian *_this, const MR_VertBitSet *freeVerts, MR_EdgeWeights weights, const MR_VertexMass *vmass, const MR_RememberShape *rem)
MRC_API const MR_Laplacian * MR_Laplacian_OffsetPtr(const MR_Laplacian *ptr, ptrdiff_t i)
MRC_API const MR_Vector3d * MR_Laplacian_Attractor_Get_target(const MR_Laplacian_Attractor *_this)
MRC_API const MR_VertBitSet * MR_Laplacian_firstLayerFixedVerts(const MR_Laplacian *_this)
struct MR_Laplacian_Attractor MR_Laplacian_Attractor
Definition MRLaplacian.h:28
MRC_API void MR_Laplacian_initFromPoints(MR_Laplacian *_this, const MR_VertCoords *points, const MR_VertBitSet *freeVerts, MR_EdgeWeights weights, const MR_VertexMass *vmass, const MR_RememberShape *rem)
MRC_API MR_Laplacian * MR_Laplacian_Construct_2(const MR_MeshTopology *topology, MR_VertCoords *points)
MRC_API const MR_VertBitSet * MR_Laplacian_region(const MR_Laplacian *_this)
MRC_API void MR_Laplacian_Attractor_Set_target(MR_Laplacian_Attractor *_this, MR_Vector3d value)
MRC_API MR_MeshTriPoint * MR_Laplacian_Attractor_GetMutable_p(MR_Laplacian_Attractor *_this)
MRC_API void MR_Laplacian_Attractor_Set_p(MR_Laplacian_Attractor *_this, const MR_MeshTriPoint *value)
MRC_API void MR_Laplacian_removeAllAttractors(MR_Laplacian *_this)
struct MR_Laplacian MR_Laplacian
Definition MRLaplacian.h:40
MRC_API void MR_Laplacian_Attractor_Destroy(const MR_Laplacian_Attractor *_this)
Destroys a heap-allocated instance of MR_Laplacian_Attractor. Does nothing if the pointer is null.
MRC_API void MR_Laplacian_addAttractor(MR_Laplacian *_this, const MR_Laplacian_Attractor *a)
MRC_API void MR_Laplacian_multVertexWeight(MR_Laplacian *_this, MR_VertId v, double factor)
MRC_API MR_Laplacian_Attractor * MR_Laplacian_Attractor_AssignFromAnother(MR_Laplacian_Attractor *_this, const MR_Laplacian_Attractor *_other)
MRC_API MR_Laplacian * MR_Laplacian_OffsetMutablePtr(MR_Laplacian *ptr, ptrdiff_t i)
MRC_API MR_Laplacian * MR_Laplacian_Construct_1(MR_Mesh *mesh)
MRC_API MR_Laplacian_Attractor * MR_Laplacian_Attractor_ConstructFrom(const MR_MeshTriPoint *p, MR_Vector3d target, double weight)
MRC_API const MR_VertBitSet * MR_Laplacian_freeVerts(const MR_Laplacian *_this)
MRC_API void MR_Laplacian_applyToVector(MR_Laplacian *_this, MR_VertCoords *points)
MRC_API void MR_Laplacian_fixVertex_2(MR_Laplacian *_this, MR_VertId v, const bool *smooth)
MRC_API MR_Laplacian_Attractor * MR_Laplacian_Attractor_DefaultConstructArray(size_t num_elems)
MRC_API MR_Laplacian_Attractor * MR_Laplacian_Attractor_ConstructFromAnother(const MR_Laplacian_Attractor *_other)
MRC_API void MR_Laplacian_DestroyArray(const MR_Laplacian *_this)
Destroys a heap-allocated array of MR_Laplacian. Does nothing if the pointer is null.
MRC_API MR_Vector3d * MR_Laplacian_Attractor_GetMutable_target(MR_Laplacian_Attractor *_this)
MRC_API void MR_Laplacian_Destroy(const MR_Laplacian *_this)
Destroys a heap-allocated instance of MR_Laplacian. Does nothing if the pointer is null.
MRC_API void MR_Laplacian_apply(MR_Laplacian *_this)
MRC_API MR_Laplacian_Attractor * MR_Laplacian_Attractor_DefaultConstruct(void)
MRC_API const double * MR_Laplacian_Attractor_Get_weight(const MR_Laplacian_Attractor *_this)
MRC_API MR_Laplacian_Attractor * MR_Laplacian_Attractor_OffsetMutablePtr(MR_Laplacian_Attractor *ptr, ptrdiff_t i)
MRC_API const MR_Laplacian_Attractor * MR_Laplacian_Attractor_OffsetPtr(const MR_Laplacian_Attractor *ptr, ptrdiff_t i)
MRC_API double * MR_Laplacian_Attractor_GetMutable_weight(MR_Laplacian_Attractor *_this)
MRC_API void MR_Laplacian_applyToScalar(MR_Laplacian *_this, MR_VertScalars *scalarField)
MRC_API void MR_Laplacian_Attractor_DestroyArray(const MR_Laplacian_Attractor *_this)
Destroys a heap-allocated array of MR_Laplacian_Attractor. Does nothing if the pointer is null.
MRC_API void MR_Laplacian_fixVertex_3(MR_Laplacian *_this, MR_VertId v, const MR_Vector3f *fixedPos, const bool *smooth)
MRC_API const MR_MeshTopology * MR_Laplacian_topology(const MR_Laplacian *_this)
MRC_API MR_VertCoords * MR_Laplacian_points(const MR_Laplacian *_this)
MRC_API const MR_MeshTriPoint * MR_Laplacian_Attractor_Get_p(const MR_Laplacian_Attractor *_this)
MRC_API MR_Laplacian * MR_Laplacian_ConstructFromAnother(MR_PassBy _other_pass_by, MR_Laplacian *_other)
MR_PassBy
Definition common.h:23
#define MRC_API
Definition include/MRCMisc/exports.h:11
Generated from class MR::Vector3d.
Definition MRVector3.h:55
Generated from class MR::Vector3f.
Definition MRVector3.h:47
Definition MRId.h:42