NetDEM v1.0
Loading...
Searching...
No Matches
cork_wrapper.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "utils_math.hpp"
4
5namespace netdem {
6
12public:
25 static void MeshIntersect(const VecXT<Vec3d> &va, const VecXT<Vec3i> &fa,
26 const VecXT<Vec3d> &vb, const VecXT<Vec3i> &fb,
27 VecXT<Vec3d> *const vab, VecXT<Vec3i> *const fab,
28 VecXT<int> *const jab);
29
42 static void MeshUnion(const VecXT<Vec3d> &va, const VecXT<Vec3i> &fa,
43 const VecXT<Vec3d> &vb, const VecXT<Vec3i> &fb,
44 VecXT<Vec3d> *const vab, VecXT<Vec3i> *const fab,
45 VecXT<int> *const jab);
46
59 static void MeshDifference(const VecXT<Vec3d> &va, const VecXT<Vec3i> &fa,
60 const VecXT<Vec3d> &vb, const VecXT<Vec3i> &fb,
61 VecXT<Vec3d> *const vab, VecXT<Vec3i> *const fab,
62 VecXT<int> *const jab);
63
76 static void MeshXor(const VecXT<Vec3d> &va, const VecXT<Vec3i> &fa,
77 const VecXT<Vec3d> &vb, const VecXT<Vec3i> &fb,
78 VecXT<Vec3d> *const vab, VecXT<Vec3i> *const fab,
79 VecXT<int> *const jab);
80
91 static void MeshIntersect(const VecXT<Vec3d> &va, const VecXT<Vec3i> &fa,
92 const VecXT<Vec3d> &vb, const VecXT<Vec3i> &fb,
93 VecXT<Vec3d> *const vab, VecXT<Vec3i> *const fab);
94
105 static void MeshUnion(const VecXT<Vec3d> &va, const VecXT<Vec3i> &fa,
106 const VecXT<Vec3d> &vb, const VecXT<Vec3i> &fb,
107 VecXT<Vec3d> *const vab, VecXT<Vec3i> *const fab);
108
119 static void MeshDifference(const VecXT<Vec3d> &va, const VecXT<Vec3i> &fa,
120 const VecXT<Vec3d> &vb, const VecXT<Vec3i> &fb,
121 VecXT<Vec3d> *const vab, VecXT<Vec3i> *const fab);
122
133 static void MeshXor(const VecXT<Vec3d> &va, const VecXT<Vec3i> &fa,
134 const VecXT<Vec3d> &vb, const VecXT<Vec3i> &fb,
135 VecXT<Vec3d> *const vab, VecXT<Vec3i> *const fab);
136
150 static void MeshIntersect(const VecXT<Vec3d> &va, const VecXT<Vec3i> &fa,
151 double dist_pc_to_plane, Vec3d const &dir_n,
152 VecXT<Vec3d> *const vab, VecXT<Vec3i> *const fab,
153 VecXT<int> *const jab);
154};
155
156} // namespace netdem
The Cork namespace contains various static methods for performing mesh operations.
Definition cork_wrapper.hpp:11
static void MeshDifference(const VecXT< Vec3d > &va, const VecXT< Vec3i > &fa, const VecXT< Vec3d > &vb, const VecXT< Vec3i > &fb, VecXT< Vec3d > *const vab, VecXT< Vec3i > *const fab)
Compute the difference of two input meshes va and vb.
static void MeshDifference(const VecXT< Vec3d > &va, const VecXT< Vec3i > &fa, const VecXT< Vec3d > &vb, const VecXT< Vec3i > &fb, VecXT< Vec3d > *const vab, VecXT< Vec3i > *const fab, VecXT< int > *const jab)
Compute the difference of two input meshes va and vb.
static void MeshUnion(const VecXT< Vec3d > &va, const VecXT< Vec3i > &fa, const VecXT< Vec3d > &vb, const VecXT< Vec3i > &fb, VecXT< Vec3d > *const vab, VecXT< Vec3i > *const fab)
Compute the union of two input meshes va and vb.
static void MeshXor(const VecXT< Vec3d > &va, const VecXT< Vec3i > &fa, const VecXT< Vec3d > &vb, const VecXT< Vec3i > &fb, VecXT< Vec3d > *const vab, VecXT< Vec3i > *const fab, VecXT< int > *const jab)
Compute the exclusive-or of two input meshes va and vb.
static void MeshIntersect(const VecXT< Vec3d > &va, const VecXT< Vec3i > &fa, const VecXT< Vec3d > &vb, const VecXT< Vec3i > &fb, VecXT< Vec3d > *const vab, VecXT< Vec3i > *const fab)
Compute the intersection between two input meshes va and vb.
static void MeshIntersect(const VecXT< Vec3d > &va, const VecXT< Vec3i > &fa, double dist_pc_to_plane, Vec3d const &dir_n, VecXT< Vec3d > *const vab, VecXT< Vec3i > *const fab, VecXT< int > *const jab)
Compute the intersection between an input mesh va and a plane defined by a distance and normal vector...
static void MeshXor(const VecXT< Vec3d > &va, const VecXT< Vec3i > &fa, const VecXT< Vec3d > &vb, const VecXT< Vec3i > &fb, VecXT< Vec3d > *const vab, VecXT< Vec3i > *const fab)
Compute the exclusive-or of two input meshes va and vb.
static void MeshUnion(const VecXT< Vec3d > &va, const VecXT< Vec3i > &fa, const VecXT< Vec3d > &vb, const VecXT< Vec3i > &fb, VecXT< Vec3d > *const vab, VecXT< Vec3i > *const fab, VecXT< int > *const jab)
Compute the union of two input meshes va and vb.
static void MeshIntersect(const VecXT< Vec3d > &va, const VecXT< Vec3i > &fa, const VecXT< Vec3d > &vb, const VecXT< Vec3i > &fb, VecXT< Vec3d > *const vab, VecXT< Vec3i > *const fab, VecXT< int > *const jab)
Compute the intersection between two input meshes va and vb.
Definition bond_entry.hpp:7
std::vector< T > VecXT
Definition utils_macros.hpp:31
std::array< double, 3 > Vec3d
Definition utils_macros.hpp:18
dir_n
Definition json_serilization.hpp:19