Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorover0219 <over0219@umn.edu>2020-06-23 02:45:38 +0300
committerover0219 <over0219@umn.edu>2020-06-23 02:45:38 +0300
commit50e2c479cc22d0efd1d744720df64311d8fefb80 (patch)
treee365a96638e2bf2f347db8a3f85802bedee4ef42 /extern/softbody/src/admmpd_embeddedmesh.h
parentc214acce20b6066dd8b0f70dfa16a597059358a6 (diff)
changed up interface for lattice a bit
Diffstat (limited to 'extern/softbody/src/admmpd_embeddedmesh.h')
-rw-r--r--extern/softbody/src/admmpd_embeddedmesh.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/extern/softbody/src/admmpd_embeddedmesh.h b/extern/softbody/src/admmpd_embeddedmesh.h
new file mode 100644
index 00000000000..a1abe02f904
--- /dev/null
+++ b/extern/softbody/src/admmpd_embeddedmesh.h
@@ -0,0 +1,39 @@
+// Copyright Matt Overby 2020.
+// Distributed under the MIT License.
+
+#ifndef ADMMPD_LATTICE_H_
+#define ADMMPD_LATTICE_H_
+
+#include "admmpd_types.h"
+
+namespace admmpd {
+
+class EmbeddedMesh {
+public:
+ // Returns true on success
+ bool generate(
+ const Eigen::MatrixXd &V, // embedded verts
+ const Eigen::MatrixXi &F, // embedded faces
+ EmbeddedMeshData *emb_mesh, // where embedding is stored
+ Eigen::MatrixXd *x_tets); // lattice vertices, n x 3
+
+ // Returns the vtx mapped from x/v and tets
+ Eigen::Vector3d get_mapped_vertex(
+ const EmbeddedMeshData *emb_mesh,
+ const Eigen::MatrixXd *x_data,
+ int idx);
+
+protected:
+
+ // Returns true on success
+ // Computes the embedding data, like barycoords
+ bool compute_embedding(
+ EmbeddedMeshData *emb_mesh, // where embedding is stored
+ const Eigen::MatrixXd *x_embed, // embedded vertices, p x 3
+ const Eigen::MatrixXd *x_tets); // lattice vertices, n x 3
+
+}; // class Lattice
+
+} // namespace admmpd
+
+#endif // ADMMPD_LATTICE_H_