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

Method compute_derivative

tools/Wires/Parameters/VertexIsotropicOffsetParameter.cpp:39–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37}
38
39MatrixFr VertexIsotropicOffsetParameter::compute_derivative() const {
40 const VectorF center = m_wire_network->center();
41 const VectorF bbox_max = m_wire_network->get_bbox_max();
42 const size_t dim = m_wire_network->get_dim();
43 const size_t num_vertices = m_wire_network->get_num_vertices();
44 const size_t roi_size = m_roi.size();
45 const MatrixFr& vertices = m_wire_network->get_vertices();
46 assert(roi_size == m_transforms.size());
47
48 size_t seed_vertex_index = m_roi.minCoeff();
49 VectorF seed_vertex = vertices.row(seed_vertex_index);
50 VectorF seed_offset = VectorF::Zero(dim);
51 seed_offset = (bbox_max - center).cwiseProduct(m_dof_dir);
52
53 MatrixFr derivative = MatrixFr::Zero(num_vertices, dim);
54 for (size_t i=0; i<roi_size; i++) {
55 size_t v_idx = m_roi[i];
56 assert(v_idx < num_vertices);
57 const MatrixF& trans = m_transforms[i];
58 derivative.row(v_idx) = trans * seed_offset;
59 }
60
61 return derivative;
62}
63
64void VertexIsotropicOffsetParameter::process_roi() {
65 const size_t dim = m_wire_network->get_dim();

Callers

nothing calls this directly

Calls 6

centerMethod · 0.80
get_bbox_maxMethod · 0.80
get_dimMethod · 0.45
get_num_verticesMethod · 0.45
sizeMethod · 0.45
get_verticesMethod · 0.45

Tested by

no test coverage detected