/// Nonvirtual member which removes all declared parameters void ParamFunction::clearAllParameters() { clearTies(); clearConstraints(); m_parameters.clear(); m_parameterNames.clear(); m_parameterDescriptions.clear(); m_parameterStatus.clear(); }
void Simulation::setupConstraints() { clearConstraints(); switch(m_mesh->m_mesh_type) { case MESH_TYPE_OBJ_PHIS: { // generate stretch constraints. assign a stretch constraint for each edge. EigenVector3 p1, p2; for(std::vector<Edge>::iterator e = m_mesh->m_edge_list.begin(); e != m_mesh->m_edge_list.end(); ++e) { p1 = m_mesh->m_current_positions.block_vector(e->m_v1); p2 = m_mesh->m_current_positions.block_vector(e->m_v2); SpringConstraint *c = new SpringConstraint(&m_stiffness_stretch, e->m_v1, e->m_v2, (p1-p2).norm()); m_constraints.push_back(c); } } break; case MESH_TYPE_PRIM: { // generate stretch constraints. assign a stretch constraint for each edge. EigenVector3 p1, p2; for (std::vector<Edge>::iterator e = m_mesh->m_edge_list.begin(); e != m_mesh->m_edge_list.end(); ++e) { p1 = m_mesh->m_current_positions.block_vector(e->m_v1); p2 = m_mesh->m_current_positions.block_vector(e->m_v2); SpringConstraint *c = new SpringConstraint(&m_stiffness_stretch, e->m_v1, e->m_v2, (p1 - p2).norm()); m_constraints.push_back(c); } } break; } std::cout << m_constraints.size() << " LDALD " << std::endl; }
Simulation::~Simulation() { clearConstraints(); }