65 lines
2.1 KiB
C
Executable File
65 lines
2.1 KiB
C
Executable File
#ifndef __PHYSICS_H__
|
|
#define __PHYSICS_H__
|
|
|
|
// x = pounds to convert to newtons
|
|
#define CALC_CONV_LB2NEWTON(x) ((x)*4.44822162)
|
|
// x = ounces to convert to newtons
|
|
#define CALC_CONV_OZ2NEWTON(x) (((x)*4.44822162)/16)
|
|
// x = kilograms to convert to newtons
|
|
#define CALC_CONV_KG2NEWTON(x) ((x)*9.81)
|
|
// x = milligrams to convert to newtons
|
|
#define CALC_CONV_MG2NEWTON(x) (((x)*9.81)/1000
|
|
|
|
// W = weight in newtons, g = constant acceleration of gravity
|
|
#define CALC_MASSFROMWEIGHT(W, g) ((W)/(g))
|
|
// F = Force applied to object, a = acceleration of object
|
|
#define CALC_MASSFROMFORCE(F, a) ((F)/(a))
|
|
// v = linear velocity of object, r = radius of circular path
|
|
#define CALC_ACCEL_CENTRIPETAL(v, r) (((v)*(v))/(r))
|
|
// v1 = starting velocity, v2 = ending velocity, t = time elapsed between v1 and v2
|
|
#define CALC_ACCEL_VELOCITYDELTA(v1, v2, t) (((v2)-(v1)) / (t))
|
|
// F = force applied to object, m = mass of object
|
|
#define CALC_ACCEL_FORCE(F, m) ((F)/(m))
|
|
// d = distance object has traveled, t = time object has spent in motion
|
|
#define CALC_VELOCITY_AVG(d, t) ((d)/(t))
|
|
// W = Weight of object, H = Height of object above the ground plane
|
|
#define CALC_ENERGY_POTENTIAL(W, H) ((W)*(H))
|
|
// m = mass of object, v = velocity of object
|
|
#define CALC_ENERGY_KINETIC(m, v) (((m)*(v))/2)
|
|
|
|
|
|
#define PHYSICS_NOPHYSICS 0000000000000000b
|
|
#define PHYSICS_FRICTIONLESS 0000000000000001b
|
|
#define PHYSICS_NOGRAVITY 0000000000000010b
|
|
#define PHYSICS_MATERIAL_LIQUID 0000000000000100b
|
|
#define PHYSICS_MATERIAL_GAS 0000000000001000b
|
|
#define PHYSICS_MATERIAL_SOLID 0000000000010000b
|
|
|
|
struct WorldPhysics
|
|
{
|
|
float gravity;
|
|
float airfriction;
|
|
}
|
|
|
|
struct StaticPhysics
|
|
{
|
|
float friction;
|
|
float bouyancy;
|
|
int flags;
|
|
}
|
|
|
|
struct ObjectPhysics : public StaticPhysics
|
|
{
|
|
float mass;
|
|
float weight;
|
|
float p1; // position 1, used for calculating velocity
|
|
float p2; // position 2, "" " " "
|
|
float v1; // velocity 1, used for calculation acceleration
|
|
float v2; // velocity 2, " " " "
|
|
float pe; // potential energy of an object at rest
|
|
float ke; // kinetic energy of a moving object
|
|
}
|
|
|
|
#endif
|
|
|