altEngine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
rigidbody.h
Go to the documentation of this file.
1 #include "include.h"
2 
3 #ifndef RIGIDBODY_H
4 #define RIGIDBODY_H
5 
6 #define MAX_VELOCITY 800.0f
7 
8 
9 typedef struct
10 {
11  bool escort;
12  float speed;
13  int wait;
15 } train_t;
16 
17 class RigidBody : public Model
18 {
19 public:
21  void recalc();
22  virtual void integrate(float time);
23  bool collision_detect(vec3 &v);
24  bool collision_detect(Plane &p);
26  bool collision_detect(RigidBody &body);
27  bool collision_distance(RigidBody &body);
28  void impulse(Plane &plane, vec3 &vertex);
29  void impulse(RigidBody &rigid, vec3 &point);
30  void impulse(RigidBody &rigid, vec3 &point, Plane &plane);
31  void frame2ent(Frame *camera_frame, input_t &input);
32  void frame2ent_yaw(Frame *camera_frame, input_t &input);
33  void save_config(cfg_t &config);
34  void load_config(cfg_t &config);
35  void get_frame(Frame &frame);
36 
37  //AI
38  void seek(const vec3 &position);
39  void flee(const vec3 &position);
40  void arrive(const vec3 &position);
41  void pursue();
42  void evade();
43  void wander(float radius, float distance, float jitter);
44  void set_target(Entity &target);
45 
46 
47  bool move(input_t &input, float speed_scale);
48  void move_forward(float speed_scale);
49  void move_backward(float speed_scale);
50  void move_left(float speed_scale);
51  void move_right(float speed_scale);
52  void move_up(float speed_scale); // jump
53  void move_down(float speed_scale);
54  void lookat(vec3 &target);
55  void lookat_yaw(vec3 &target);
56  void pid_follow_path(vec3 *path_list, int num_path, float max_velocity, float distance, int wait);
57  int train_follow_path(vec3 *target, float max_velocity, float distance, int wait);
58 
59  float get_volume();
60  float get_height();
61  float *get_matrix(float *matrix);
62 
63 
64  unsigned int impact_index;
65 
66  bool on_ground;
70  bool step_flag;
74  unsigned int bounce;
75 
76 
77  float restitution;
78  bool sleep;
79  int y_offset;
80  bool gravity;
81  bool noclip;
82  bool flight;
83  bool water;
84  bool last_water;
85  bool lava;
86  bool slime;
87  int step_type;
95  float water_depth;
96  //Physical
97  float mass;
106 
108 
109 
111 
114 };
115 
116 #endif