void TransferParticlesToPointCloudBehavior::update(double dt) { auto target = m_target->getVertices(); size_t nodeId = 0; for (auto particle : m_source->getParticleReferences()) { target->setVertexPosition(nodeId, particle.getPosition()); nodeId++; } for (; nodeId < m_source->getMaxParticles(); ++nodeId) { target->setVertexPosition(nodeId, SurgSim::Math::Vector3d::Zero()); } }
void TransferPhysicsToPointCloudBehavior::update(double dt) { auto state = m_source->getFinalState(); auto target = m_target->getVertices(); for (size_t nodeId = 0; nodeId < state->getNumNodes(); ++nodeId) { target->setVertexPosition(nodeId, state->getPosition(nodeId)); } }
void Polygon<Scalar>::setVertexPosition(const Vertex<Scalar> &vertex, const Vector<Scalar,2> &position) { unsigned int vert_idx = vertex.positionIndex(); setVertexPosition(vert_idx,position); }