| 114 | } |
| 115 | |
| 116 | void PointLocator::init_hash_grid() { |
| 117 | const size_t dim = m_mesh->get_dim(); |
| 118 | const size_t num_elements = m_elements.size() / m_vertex_per_element; |
| 119 | |
| 120 | Float cell_size = compute_cell_size(); |
| 121 | m_grid = HashGrid::create(cell_size, dim); |
| 122 | |
| 123 | MatrixF elem_vtx(m_vertex_per_element, dim); |
| 124 | for (size_t i=0; i<num_elements; i++) { |
| 125 | VectorI elem = m_elements.segment(i*m_vertex_per_element, m_vertex_per_element); |
| 126 | for (size_t j=0; j<m_vertex_per_element; j++) { |
| 127 | elem_vtx.row(j) = m_mesh->get_vertex(elem[j]); |
| 128 | } |
| 129 | m_grid->insert_bbox(i, elem_vtx); |
| 130 | } |
| 131 | } |
| 132 | |
| 133 | Float PointLocator::compute_cell_size() const { |
| 134 | const size_t num_elements = m_elements.size() / m_vertex_per_element; |
nothing calls this directly
no test coverage detected