This behavior seemed normal to me, since KE = M * V ^ 2.
If I increase the heavier object's mass to 3000000 units, the sphere is still able to cause the same movement of the much heavier object, with very little difference from when mass is set to 3000.
I would expect that a large mass would eventually result in the heavier object remaining nearly stationary. Can you please explain if this behavior is correct?
This is how I apply mass to a body:
- Code: Select all
auto collision = NewtonBodyGetCollision(newtonbody);
dFloat origin[3] = { 0.0,0.0,0.0 };
if (collision != NULL)
{
dFloat inertia[3];
NewtonConvexCollisionCalculateInertialMatrix(collision, inertia, origin);
if (inertia[0] != dFloat(0) or inertia[1] != dFloat(0) or inertia[2] != dFloat(0) )
{
NewtonBodySetMassMatrix(newtonbody, mass, inertia[0] * mass, inertia[1] * mass, inertia[2] * mass);
}
else
{
NewtonBodySetMassMatrix(newtonbody, mass, 0.001 * mass, 0.001 * mass, 0.001 * mass);
}
NewtonBodySetCentreOfMass(newtonbody, origin);
}
else
{
NewtonBodySetMassMatrix(newtonbody, mass, 0.001 * mass, 0.001 * mass, 0.001 * mass);
NewtonBodySetCentreOfMass(newtonbody, origin);
}
Video:
https://www.youtube.com/watch?v=HUajH3xiPbc