cloth
annotate src/simworld.h @ 3:28a31079dcdf
disc
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 04 Jan 2016 10:52:15 +0200 |
parents | 2eac424f58b2 |
children |
rev | line source |
---|---|
nuclear@0 | 1 #ifndef SIMWORLD_H_ |
nuclear@0 | 2 #define SIMWORLD_H_ |
nuclear@0 | 3 |
nuclear@0 | 4 #include <vector> |
nuclear@0 | 5 #include "particle.h" |
nuclear@0 | 6 #include "vmath/vmath.h" |
nuclear@2 | 7 #include "object.h" |
nuclear@0 | 8 |
nuclear@0 | 9 struct Collision { |
nuclear@2 | 10 float dist; |
nuclear@0 | 11 Vector3 pos; |
nuclear@0 | 12 Vector3 normal; |
nuclear@0 | 13 float elast; |
nuclear@0 | 14 }; |
nuclear@0 | 15 |
nuclear@0 | 16 class SimWorld { |
nuclear@0 | 17 private: |
nuclear@0 | 18 std::vector<Object*> objects; |
nuclear@0 | 19 std::vector<Particle*> part; |
nuclear@0 | 20 Vector3 grav; |
nuclear@0 | 21 float damping; |
nuclear@0 | 22 |
nuclear@0 | 23 public: |
nuclear@0 | 24 SimWorld(); |
nuclear@0 | 25 |
nuclear@0 | 26 void set_gravity(const Vector3 &f); |
nuclear@0 | 27 |
nuclear@3 | 28 void add_object(Object *o); |
nuclear@3 | 29 int get_object_count() const; |
nuclear@3 | 30 Object *get_object(int idx) const; |
nuclear@3 | 31 |
nuclear@0 | 32 void add_particle(Particle *p); |
nuclear@0 | 33 |
nuclear@0 | 34 bool collision(const Ray &ray, float rad, Collision *col) const; |
nuclear@0 | 35 |
nuclear@0 | 36 void step(float dt); |
nuclear@0 | 37 |
nuclear@0 | 38 void draw_particles() const; |
nuclear@0 | 39 |
nuclear@0 | 40 friend class Particle; |
nuclear@0 | 41 }; |
nuclear@0 | 42 |
nuclear@0 | 43 #endif // SIMWORLD_H_ |