aboutsummaryrefslogtreecommitdiff
path: root/src/arap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/arap.h')
-rw-r--r--src/arap.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/arap.h b/src/arap.h
index afa7d63..10a2904 100644
--- a/src/arap.h
+++ b/src/arap.h
@@ -3,6 +3,12 @@
#include "graphics/shape.h"
#include "Eigen/StdList"
#include "Eigen/StdVector"
+#include <Eigen/Core>
+#include <Eigen/Dense>
+#include <Eigen/Sparse>
+#include <Eigen/SVD>
+#include <QList>
+#include <QtConcurrent>
class Shader;
@@ -43,4 +49,20 @@ public:
{
return m_shape.getAnchorPos(lastSelected, pos, ray, start);
}
+
+ // for determinig when to recompute
+ int num_anchors;
+
+ typedef Eigen::Matrix<float, 3, Eigen::Dynamic> PM; // position matrix
+ typedef Eigen::Matrix<float, 3, 3> RM; // rotation matrix
+ typedef Eigen::SparseMatrix<float, Eigen::RowMajor> Sparse;
+
+ std::vector<RM> m_rotations;
+ Sparse m_edge_weights;
+ PM m_b, m_b_fixed;
+ std::vector<Eigen::Index> m_vtx_to_free_vtx;
+ Eigen::SimplicialLDLT<Eigen::SparseMatrix<float>> m_solver;
+
+ int m_num_iterations;
+ const char * m_mesh_path;
};