diff options
author | over0219 <over0219@umn.edu> | 2020-06-23 02:45:38 +0300 |
---|---|---|
committer | over0219 <over0219@umn.edu> | 2020-06-23 02:45:38 +0300 |
commit | 50e2c479cc22d0efd1d744720df64311d8fefb80 (patch) | |
tree | e365a96638e2bf2f347db8a3f85802bedee4ef42 /extern/softbody/src/admmpd_embeddedmesh.h | |
parent | c214acce20b6066dd8b0f70dfa16a597059358a6 (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.h | 39 |
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_ |