sometimes the question comes up how to do phent_addforceglobal()/phent_addforcelocal() with newton.

here is a short (untested) code snippet:
Code:
newton_bodyaddforceglobal(NewtonBody *body, VECTOR *force, VECTOR *point) // add force at point in global coordinate system
{
ENTITY *entity = (ENTITY*)NewtonBodyGetUserData(body);
VECTOR r, torque;
vec_diff(r, point, entity->x);
vec_cross(torque, r, force);
NewtonBodyAddForce(body, force);
NewtonBodyAddTorque(body, torque);
}

newton_bodyaddforcelocal(NewtonBody *body, VECTOR *force, VECTOR *point) // add force at point in entity coordinate system
{
ENTITY *entity = (ENTITY*)NewtonBodyGetUserData(body);
VECTOR globalforce, globalpoint;
vec_set(globalforce, force);
vec_set(globalpoint, point);
vec_rotate(globalforce, entity->pan);
vec_rotate(globalpoint, entity->pan);
vec_add(globalpoint, entity->x);
newton_bodyaddforceglobal(globalforce, globalpoint);
}



i think lite-c still doesn't come with a vec_cross() function so you have to do one yourself.

(...and i guess you also should apply QUANTTOMETER in those functions.)