#include <MRCMesh/MRId.h>
#include <MRCMisc/common.h>
#include <MRCMisc/exports.h>
#include <stdbool.h>
#include <stddef.h>
Go to the source code of this file.
|
| MRC_API const MR_MeshTopology * | MR_EdgeLengthMesh_Get_topology (const MR_EdgeLengthMesh *_this) |
| |
| MRC_API void | MR_EdgeLengthMesh_Set_topology (MR_EdgeLengthMesh *_this, MR_PassBy value_pass_by, MR_MeshTopology *value) |
| |
| MRC_API MR_MeshTopology * | MR_EdgeLengthMesh_GetMutable_topology (MR_EdgeLengthMesh *_this) |
| |
| MRC_API const MR_UndirectedEdgeScalars * | MR_EdgeLengthMesh_Get_edgeLengths (const MR_EdgeLengthMesh *_this) |
| |
| MRC_API void | MR_EdgeLengthMesh_Set_edgeLengths (MR_EdgeLengthMesh *_this, MR_PassBy value_pass_by, MR_UndirectedEdgeScalars *value) |
| |
| MRC_API MR_UndirectedEdgeScalars * | MR_EdgeLengthMesh_GetMutable_edgeLengths (MR_EdgeLengthMesh *_this) |
| |
| MRC_API MR_EdgeLengthMesh * | MR_EdgeLengthMesh_DefaultConstruct (void) |
| |
| MRC_API MR_EdgeLengthMesh * | MR_EdgeLengthMesh_DefaultConstructArray (size_t num_elems) |
| |
| MRC_API MR_EdgeLengthMesh * | MR_EdgeLengthMesh_ConstructFrom (MR_PassBy topology_pass_by, MR_MeshTopology *topology, MR_PassBy edgeLengths_pass_by, MR_UndirectedEdgeScalars *edgeLengths) |
| |
| MRC_API const MR_EdgeLengthMesh * | MR_EdgeLengthMesh_OffsetPtr (const MR_EdgeLengthMesh *ptr, ptrdiff_t i) |
| |
| MRC_API MR_EdgeLengthMesh * | MR_EdgeLengthMesh_OffsetMutablePtr (MR_EdgeLengthMesh *ptr, ptrdiff_t i) |
| |
| MRC_API MR_EdgeLengthMesh * | MR_EdgeLengthMesh_ConstructFromAnother (MR_PassBy _other_pass_by, MR_EdgeLengthMesh *_other) |
| |
| MRC_API void | MR_EdgeLengthMesh_Destroy (const MR_EdgeLengthMesh *_this) |
| | Destroys a heap-allocated instance of MR_EdgeLengthMesh. Does nothing if the pointer is null.
|
| |
| MRC_API void | MR_EdgeLengthMesh_DestroyArray (const MR_EdgeLengthMesh *_this) |
| | Destroys a heap-allocated array of MR_EdgeLengthMesh. Does nothing if the pointer is null.
|
| |
| MRC_API MR_EdgeLengthMesh * | MR_EdgeLengthMesh_AssignFromAnother (MR_EdgeLengthMesh *_this, MR_PassBy _other_pass_by, MR_EdgeLengthMesh *_other) |
| |
| MRC_API MR_EdgeLengthMesh * | MR_EdgeLengthMesh_fromMesh (const MR_Mesh *mesh) |
| |
| MRC_API float | MR_EdgeLengthMesh_leftCotan (const MR_EdgeLengthMesh *_this, MR_EdgeId e) |
| |
| MRC_API float | MR_EdgeLengthMesh_cotan (const MR_EdgeLengthMesh *_this, MR_UndirectedEdgeId ue) |
| |
| MRC_API bool | MR_EdgeLengthMesh_isDelone (const MR_EdgeLengthMesh *_this, MR_UndirectedEdgeId ue, const float *threshold) |
| |
| MRC_API MR_std_optional_float * | MR_EdgeLengthMesh_edgeLengthAfterFlip (const MR_EdgeLengthMesh *_this, MR_EdgeId e) |
| |
| MRC_API bool | MR_EdgeLengthMesh_flipEdge (MR_EdgeLengthMesh *_this, MR_EdgeId e) |
| |
◆ MR_EdgeLengthMesh
Unlike the classic mesh that stores coordinates of its vertices, this class stores the lengths of all edges. It can be used for construction of intrinsic Intrinsic Delaunay Triangulations. Generated from class MR::EdgeLengthMesh. 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).
◆ MR_Mesh
◆ MR_MeshTopology
◆ MR_std_optional_float
◆ MR_UndirectedEdgeScalars
◆ MR_EdgeLengthMesh_AssignFromAnother()
Generated from method MR::EdgeLengthMesh::operator=. Parameter _this 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 had previously.
◆ MR_EdgeLengthMesh_ConstructFrom()
Constructs MR::EdgeLengthMesh elementwise. The reference to the parameter topology might be preserved in the constructed object. The reference to the parameter edgeLengths might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_EdgeLengthMesh_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.
◆ MR_EdgeLengthMesh_ConstructFromAnother()
Generated from constructor MR::EdgeLengthMesh::EdgeLengthMesh. 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_EdgeLengthMesh_Destroy() to free it when you're done using it.
◆ MR_EdgeLengthMesh_cotan()
computes sum of cotangents of the angle in the left and right triangles opposite to given edge, consider cotangents zero for not existing triangles Generated from method MR::EdgeLengthMesh::cotan. Parameter _this can not be null. It is a single object.
◆ MR_EdgeLengthMesh_DefaultConstruct()
Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_EdgeLengthMesh_Destroy() to free it when you're done using it.
◆ MR_EdgeLengthMesh_DefaultConstructArray()
◆ MR_EdgeLengthMesh_Destroy()
Destroys a heap-allocated instance of MR_EdgeLengthMesh. Does nothing if the pointer is null.
◆ MR_EdgeLengthMesh_DestroyArray()
Destroys a heap-allocated array of MR_EdgeLengthMesh. Does nothing if the pointer is null.
◆ MR_EdgeLengthMesh_edgeLengthAfterFlip()
given the edge with left and right triangular faces, which form together a quadrangle, returns the length of geodesic line on original mesh between the vertices of the quadrangle opposite to given edge; returns std::nullopt if the geodesic line does not go fully inside the quadrangle Generated from method MR::EdgeLengthMesh::edgeLengthAfterFlip. Parameter _this can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_optional_float_Destroy() to free it when you're done using it.
◆ MR_EdgeLengthMesh_flipEdge()
given the edge with left and right triangular faces, which form together a quadrangle, rotates the edge counter-clockwise inside the quadrangle; the length of e becomes equal to the length of geodesic line between its new ends on original mesh; does not flip and returns false if the geodesic line does not go fully inside the quadrangle Generated from method MR::EdgeLengthMesh::flipEdge. Parameter _this can not be null. It is a single object.
◆ MR_EdgeLengthMesh_fromMesh()
construct EdgeLengthMesh from an ordinary mesh Generated from method MR::EdgeLengthMesh::fromMesh. Parameter mesh can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_EdgeLengthMesh_Destroy() to free it when you're done using it.
◆ MR_EdgeLengthMesh_Get_edgeLengths()
Returns a pointer to a member variable of class MR::EdgeLengthMesh named edgeLengths. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_EdgeLengthMesh_Get_topology()
Returns a pointer to a member variable of class MR::EdgeLengthMesh named topology. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_EdgeLengthMesh_GetMutable_edgeLengths()
Returns a mutable pointer to a member variable of class MR::EdgeLengthMesh named edgeLengths. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_EdgeLengthMesh_GetMutable_topology()
Returns a mutable pointer to a member variable of class MR::EdgeLengthMesh named topology. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_EdgeLengthMesh_isDelone()
returns true if given edge satisfies Delaunay conditions, returns false if the edge needs to be flipped to satisfy Delaunay conditions, passing negative threshold makes more edges satisfy Delaunay conditions Generated from method MR::EdgeLengthMesh::isDelone. Parameter _this can not be null. It is a single object. Parameter threshold has a default argument: 0, pass a null pointer to use it.
◆ MR_EdgeLengthMesh_leftCotan()
computes cotangent of the angle in the left( e ) triangle opposite to e, and returns 0 if left face does not exist Generated from method MR::EdgeLengthMesh::leftCotan. Parameter _this can not be null. It is a single object.
◆ MR_EdgeLengthMesh_OffsetMutablePtr()
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.
◆ MR_EdgeLengthMesh_OffsetPtr()
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.
◆ MR_EdgeLengthMesh_Set_edgeLengths()
Modifies a member variable of class MR::EdgeLengthMesh named edgeLengths. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element edgeLengths. When this function is called, this object will drop object references it had previously in edgeLengths.
◆ MR_EdgeLengthMesh_Set_topology()
Modifies a member variable of class MR::EdgeLengthMesh named topology. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element topology. When this function is called, this object will drop object references it had previously in topology.