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));
	}
}
Exemplo n.º 3
0
void Polygon<Scalar>::setVertexPosition(const Vertex<Scalar> &vertex, const Vector<Scalar,2> &position)
{
    unsigned int vert_idx = vertex.positionIndex();
    setVertexPosition(vert_idx,position);
}