MeshLib C Docs
Loading...
Searching...
No Matches
MRLine.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRVector2.h>
4#include <MRCMesh/MRVector3.h>
5#include <MRCMisc/exports.h>
6
7#include <stddef.h>
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13
16typedef struct MR_Line2f MR_Line2f;
17
20typedef struct MR_Line2d MR_Line2d;
21
24typedef struct MR_Line3f MR_Line3f;
25
28typedef struct MR_Line3d MR_Line3d;
29
34
38
43
48
52
57
61
66
68MRC_API const MR_Line2f *MR_Line2f_OffsetPtr(const MR_Line2f *ptr, ptrdiff_t i);
69
72
77
83
86
89
95
99MRC_API MR_Vector2f MR_Line2f_call(const MR_Line2f *_this, float param);
100
105MRC_API float MR_Line2f_distanceSq(const MR_Line2f *_this, const MR_Vector2f *x);
106
112
118
124
130
135
139
144
149
153
158
162
167
169MRC_API const MR_Line2d *MR_Line2d_OffsetPtr(const MR_Line2d *ptr, ptrdiff_t i);
170
173
178
184
187
190
196
200MRC_API MR_Vector2d MR_Line2d_call(const MR_Line2d *_this, double param);
201
206MRC_API double MR_Line2d_distanceSq(const MR_Line2d *_this, const MR_Vector2d *x);
207
213
219
225
231
236
240
245
250
254
259
263
268
270MRC_API const MR_Line3f *MR_Line3f_OffsetPtr(const MR_Line3f *ptr, ptrdiff_t i);
271
274
279
285
290
293
296
302
306MRC_API MR_Vector3f MR_Line3f_call(const MR_Line3f *_this, float param);
307
312MRC_API float MR_Line3f_distanceSq(const MR_Line3f *_this, const MR_Vector3f *x);
313
319
325
331
337
342
346
351
356
360
365
369
374
376MRC_API const MR_Line3d *MR_Line3d_OffsetPtr(const MR_Line3d *ptr, ptrdiff_t i);
377
380
385
391
394
397
403
407MRC_API MR_Vector3d MR_Line3d_call(const MR_Line3d *_this, double param);
408
413MRC_API double MR_Line3d_distanceSq(const MR_Line3d *_this, const MR_Vector3d *x);
414
420
426
432
438
439#ifdef __cplusplus
440} // extern "C"
441#endif
struct MR_Line3d MR_Line3d
Definition MRBestFit.h:17
struct MR_Line3f MR_Line3f
Definition MRBestFit.h:18
MRC_API MR_Line3d * MR_Line3d_Construct(const MR_Vector3d *p, const MR_Vector3d *d)
MRC_API void MR_Line2d_Set_p(MR_Line2d *_this, MR_Vector2d value)
MRC_API MR_Vector2d MR_Line2d_call(const MR_Line2d *_this, double param)
MRC_API MR_Vector3d * MR_Line3d_GetMutable_d(MR_Line3d *_this)
MRC_API MR_Line2d * MR_Line2d_AssignFromAnother(MR_Line2d *_this, const MR_Line2d *_other)
MRC_API float MR_Line2f_distanceSq(const MR_Line2f *_this, const MR_Vector2f *x)
MRC_API MR_Line2d * MR_Line2d_DefaultConstruct(void)
MRC_API MR_Vector2f MR_Line2f_project(const MR_Line2f *_this, const MR_Vector2f *x)
MRC_API MR_Vector3f * MR_Line3f_GetMutable_p(MR_Line3f *_this)
MRC_API MR_Line2f * MR_Line2f_OffsetMutablePtr(MR_Line2f *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_Line3d * MR_Line3d_normalized(const MR_Line3d *_this)
MRC_API const MR_Vector3f * MR_Line3f_Get_p(const MR_Line3f *_this)
MRC_API MR_Vector2f * MR_Line2f_GetMutable_p(MR_Line2f *_this)
MRC_API void MR_Line2f_DestroyArray(const MR_Line2f *_this)
Destroys a heap-allocated array of MR_Line2f. Does nothing if the pointer is null.
MRC_API const MR_Vector3d * MR_Line3d_Get_d(const MR_Line3d *_this)
MRC_API MR_Vector3d MR_Line3d_call(const MR_Line3d *_this, double param)
MRC_API void MR_Line3f_Set_d(MR_Line3f *_this, MR_Vector3f value)
struct MR_Line2f MR_Line2f
Definition MRLine.h:16
MRC_API MR_Line3f * MR_Line3f_DefaultConstruct(void)
MRC_API void MR_Line3d_DestroyArray(const MR_Line3d *_this)
Destroys a heap-allocated array of MR_Line3d. Does nothing if the pointer is null.
MRC_API double MR_Line2d_distanceSq(const MR_Line2d *_this, const MR_Vector2d *x)
MRC_API void MR_Line2f_Set_d(MR_Line2f *_this, MR_Vector2f value)
MRC_API MR_Line3f * MR_Line3f_DefaultConstructArray(size_t num_elems)
MRC_API void MR_Line2d_DestroyArray(const MR_Line2d *_this)
Destroys a heap-allocated array of MR_Line2d. Does nothing if the pointer is null.
MRC_API MR_Line3d * MR_Line3d_AssignFromAnother(MR_Line3d *_this, const MR_Line3d *_other)
MRC_API void MR_Line2d_Set_d(MR_Line2d *_this, MR_Vector2d value)
MRC_API const MR_Line2d * MR_pos_MR_Line2d(const MR_Line2d *_this)
MRC_API MR_Line3f * MR_Line3f_Construct_MR_Vector3d(const MR_Line3d *l)
MRC_API const MR_Line3f * MR_Line3f_OffsetPtr(const MR_Line3f *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_Line3d_Destroy(const MR_Line3d *_this)
Destroys a heap-allocated instance of MR_Line3d. Does nothing if the pointer is null.
MRC_API MR_Line2f * MR_Line2f_DefaultConstruct(void)
MRC_API float MR_Line3f_distanceSq(const MR_Line3f *_this, const MR_Vector3f *x)
MRC_API MR_Vector3f MR_Line3f_project(const MR_Line3f *_this, const MR_Vector3f *x)
MRC_API MR_Line3d * MR_Line3d_OffsetMutablePtr(MR_Line3d *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_Line3d_Set_d(MR_Line3d *_this, MR_Vector3d value)
MRC_API void MR_Line3f_Set_p(MR_Line3f *_this, MR_Vector3f value)
struct MR_Line2d MR_Line2d
Definition MRLine.h:20
MRC_API const MR_Line3d * MR_pos_MR_Line3d(const MR_Line3d *_this)
MRC_API MR_Vector2d * MR_Line2d_GetMutable_d(MR_Line2d *_this)
MRC_API MR_Line3d * MR_Line3d_DefaultConstruct(void)
MRC_API MR_Line2f * MR_Line2f_AssignFromAnother(MR_Line2f *_this, const MR_Line2f *_other)
MRC_API MR_Line2d * MR_Line2d_OffsetMutablePtr(MR_Line2d *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_Line2f * MR_Line2f_Construct(const MR_Vector2f *p, const MR_Vector2f *d)
MRC_API MR_Line3d * MR_Line3d_ConstructFromAnother(const MR_Line3d *_other)
MRC_API void MR_Line3d_Set_p(MR_Line3d *_this, MR_Vector3d value)
MRC_API const MR_Line2f * MR_Line2f_OffsetPtr(const MR_Line2f *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_Line2f_Destroy(const MR_Line2f *_this)
Destroys a heap-allocated instance of MR_Line2f. Does nothing if the pointer is null.
MRC_API MR_Vector2f * MR_Line2f_GetMutable_d(MR_Line2f *_this)
MRC_API const MR_Vector3d * MR_Line3d_Get_p(const MR_Line3d *_this)
MRC_API double MR_Line3d_distanceSq(const MR_Line3d *_this, const MR_Vector3d *x)
MRC_API const MR_Line2f * MR_pos_MR_Line2f(const MR_Line2f *_this)
MRC_API MR_Line2f * MR_neg_MR_Line2f(const MR_Line2f *_this)
MRC_API const MR_Line3f * MR_pos_MR_Line3f(const MR_Line3f *_this)
MRC_API const MR_Line3d * MR_Line3d_OffsetPtr(const MR_Line3d *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_Line3f * MR_Line3f_Construct(const MR_Vector3f *p, const MR_Vector3f *d)
MRC_API const MR_Vector2d * MR_Line2d_Get_p(const MR_Line2d *_this)
MRC_API MR_Line2f * MR_Line2f_DefaultConstructArray(size_t num_elems)
MRC_API MR_Line2d * MR_Line2d_DefaultConstructArray(size_t num_elems)
MRC_API const MR_Vector2d * MR_Line2d_Get_d(const MR_Line2d *_this)
MRC_API MR_Line3f * MR_Line3f_normalized(const MR_Line3f *_this)
MRC_API const MR_Vector2f * MR_Line2f_Get_d(const MR_Line2f *_this)
MRC_API MR_Line3f * MR_Line3f_ConstructFromAnother(const MR_Line3f *_other)
MRC_API const MR_Vector3f * MR_Line3f_Get_d(const MR_Line3f *_this)
MRC_API MR_Line3f * MR_Line3f_OffsetMutablePtr(MR_Line3f *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_Line2d * MR_Line2d_OffsetPtr(const MR_Line2d *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_Vector3f MR_Line3f_call(const MR_Line3f *_this, float param)
MRC_API MR_Line2d * MR_Line2d_ConstructFromAnother(const MR_Line2d *_other)
MRC_API void MR_Line2f_Set_p(MR_Line2f *_this, MR_Vector2f value)
MRC_API MR_Line3f * MR_neg_MR_Line3f(const MR_Line3f *_this)
MRC_API MR_Line2f * MR_Line2f_ConstructFromAnother(const MR_Line2f *_other)
MRC_API MR_Vector3d MR_Line3d_project(const MR_Line3d *_this, const MR_Vector3d *x)
MRC_API MR_Line2d * MR_Line2d_normalized(const MR_Line2d *_this)
MRC_API MR_Line3d * MR_neg_MR_Line3d(const MR_Line3d *_this)
MRC_API const MR_Vector2f * MR_Line2f_Get_p(const MR_Line2f *_this)
MRC_API MR_Vector3f * MR_Line3f_GetMutable_d(MR_Line3f *_this)
MRC_API MR_Vector2d * MR_Line2d_GetMutable_p(MR_Line2d *_this)
MRC_API MR_Line3d * MR_Line3d_DefaultConstructArray(size_t num_elems)
MRC_API MR_Vector2f MR_Line2f_call(const MR_Line2f *_this, float param)
MRC_API MR_Vector3d * MR_Line3d_GetMutable_p(MR_Line3d *_this)
MRC_API MR_Line2d * MR_Line2d_Construct(const MR_Vector2d *p, const MR_Vector2d *d)
MRC_API void MR_Line3f_Destroy(const MR_Line3f *_this)
Destroys a heap-allocated instance of MR_Line3f. Does nothing if the pointer is null.
MRC_API MR_Line2d * MR_neg_MR_Line2d(const MR_Line2d *_this)
MRC_API MR_Line3f * MR_Line3f_AssignFromAnother(MR_Line3f *_this, const MR_Line3f *_other)
MRC_API void MR_Line2d_Destroy(const MR_Line2d *_this)
Destroys a heap-allocated instance of MR_Line2d. Does nothing if the pointer is null.
MRC_API MR_Line2f * MR_Line2f_normalized(const MR_Line2f *_this)
MRC_API MR_Vector2d MR_Line2d_project(const MR_Line2d *_this, const MR_Vector2d *x)
MRC_API void MR_Line3f_DestroyArray(const MR_Line3f *_this)
Destroys a heap-allocated array of MR_Line3f. Does nothing if the pointer is null.
#define MRC_API
Definition exports.h:11
Definition MRVector2.h:52
Definition MRVector2.h:44
Definition MRVector3.h:60
Definition MRVector3.h:51