diff --git a/Extras/MayaPlugin/rigidBodyArrayNode.cpp b/Extras/MayaPlugin/rigidBodyArrayNode.cpp index 7f74f771b..9216945f5 100644 --- a/Extras/MayaPlugin/rigidBodyArrayNode.cpp +++ b/Extras/MayaPlugin/rigidBodyArrayNode.cpp @@ -430,12 +430,19 @@ void rigidBodyArrayNode::computeRigidBodies(const MPlug& plug, MDataBlock& data) } m_rigid_bodies.resize(numBodies); - for(size_t i = 0; i < m_rigid_bodies.size(); ++i) { - m_rigid_bodies[i] = solver_t::create_rigid_body(collision_shape); - m_rigid_bodies[i]->set_transform(positions[i], rotations[i]); - solver_t::add_rigid_body(m_rigid_bodies[i]); + for(size_t i = 0; i < m_rigid_bodies.size(); ++i) { + m_rigid_bodies[i] = solver_t::create_rigid_body(collision_shape); + if (i < positions.size()) + { + m_rigid_bodies[i]->set_transform(positions[i], rotations[i]); + } else + { + m_rigid_bodies[i]->set_transform(vec3f(0.f,0.f,0.f),quatf(1.f,0.f,0.f,0.f)); + } + solver_t::add_rigid_body(m_rigid_bodies[i]); } + data.outputValue(ca_rigidBodies).set(true); data.setClean(plug); }