System info & network
This commit is contained in:
61
code/physics/body.h
Normal file
61
code/physics/body.h
Normal file
@@ -0,0 +1,61 @@
|
||||
#ifndef _PIUMA_PHYSICS_OBJECT_H_
|
||||
#define _PIUMA_PHYSICS_OBJECT_H_
|
||||
|
||||
#include "../lib/math.h"
|
||||
#include "../lib/geometry.h"
|
||||
|
||||
enum phy_shape_type
|
||||
{
|
||||
PHY_SHAPE_SPHERE,
|
||||
PHY_SHAPE_BOX,
|
||||
PHY_SHAPE_MESH,
|
||||
|
||||
PHY_SHAPE_COUNT
|
||||
};
|
||||
|
||||
struct phy_sphere
|
||||
{
|
||||
f32 radius;
|
||||
};
|
||||
|
||||
struct phy_box
|
||||
{
|
||||
v3 dimensions;
|
||||
};
|
||||
|
||||
struct phy_mesh
|
||||
{
|
||||
// TODO
|
||||
};
|
||||
|
||||
|
||||
struct phy_body
|
||||
{
|
||||
v3 position;
|
||||
v3 rotation;
|
||||
|
||||
f32 mass;
|
||||
v3 center_of_mass;
|
||||
f32 gravity_multiplier;
|
||||
f32 friction;
|
||||
f32 bounciness;
|
||||
|
||||
// Dynamics
|
||||
v3 velocity;
|
||||
v3 angular_velocity;
|
||||
|
||||
// Collision
|
||||
phy_shape_type shape;
|
||||
union
|
||||
{
|
||||
phy_sphere sphere;
|
||||
phy_box box;
|
||||
phy_mesh mesh;
|
||||
};
|
||||
Box aabb;
|
||||
};
|
||||
|
||||
|
||||
Box phy_aabb_from_body(phy_body *body);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user