MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / init_barycentric_solvers

Method init_barycentric_solvers

tools/MeshUtils/PointLocator.cpp:97–114  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95}
96
97void PointLocator::init_barycentric_solvers() {
98 const size_t dim = m_mesh->get_dim();
99
100 const size_t num_elements = m_elements.size() / m_vertex_per_element;
101 m_barycentric_solvers = MatrixF::Zero(num_elements*dim, dim);
102 m_last_vertices = MatrixF::Zero(num_elements, dim);
103
104 for (size_t i=0; i<num_elements; i++) {
105 VectorI elem = m_elements.segment(i*m_vertex_per_element, m_vertex_per_element);
106 VectorF last_v = m_mesh->get_vertex(elem[dim]);
107 MatrixFr M(dim, dim);
108 for (size_t j=0; j<dim; j++) {
109 M.row(j) = m_mesh->get_vertex(elem[j]) - last_v;
110 }
111 m_barycentric_solvers.block(i*dim, 0, dim, dim) = M.transpose().inverse();
112 m_last_vertices.row(i) = last_v;
113 }
114}
115
116void PointLocator::init_hash_grid() {
117 const size_t dim = m_mesh->get_dim();

Callers

nothing calls this directly

Calls 3

get_dimMethod · 0.45
sizeMethod · 0.45
get_vertexMethod · 0.45

Tested by

no test coverage detected