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_