cloth

annotate src/particle.h @ 0:92983e143a03

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 11 Feb 2013 19:40:36 +0200
parents
children
rev   line source
nuclear@0 1 #ifndef PARTICLE_H_
nuclear@0 2 #define PARTICLE_H_
nuclear@0 3
nuclear@0 4 #include <set>
nuclear@0 5 #include "vmath/vmath.h"
nuclear@0 6
nuclear@0 7 class SimWorld;
nuclear@0 8 struct Collision;
nuclear@0 9
nuclear@0 10 class Particle {
nuclear@0 11 private:
nuclear@0 12 Vector3 forces;
nuclear@0 13 Vector3 pos, velocity;
nuclear@0 14 float rad;
nuclear@0 15 float elast;
nuclear@0 16 float mass;
nuclear@0 17 float friction;
nuclear@0 18
nuclear@0 19 std::set<const Particle*> ignorelist;
nuclear@0 20
nuclear@0 21 public:
nuclear@0 22 Particle();
nuclear@0 23
nuclear@0 24 void add_ignore(const Particle *p);
nuclear@0 25
nuclear@0 26 void set_radius(float rad);
nuclear@0 27 float get_radius() const;
nuclear@0 28
nuclear@0 29 void set_mass(float m);
nuclear@0 30 float get_mass() const;
nuclear@0 31
nuclear@0 32 void set_elasticity(float e);
nuclear@0 33 float get_elasticity() const;
nuclear@0 34
nuclear@0 35 void set_position(const Vector3 &pos);
nuclear@0 36 void set_velocity(const Vector3 &vel);
nuclear@0 37
nuclear@0 38 Vector3 &get_position();
nuclear@0 39 const Vector3 &get_position() const;
nuclear@0 40 Vector3 &get_velocity();
nuclear@0 41 const Vector3 &get_velocity() const;
nuclear@0 42
nuclear@0 43 void set_friction(float frict);
nuclear@0 44 float get_friction() const;
nuclear@0 45
nuclear@0 46 void add_force(const Vector3 &fvec);
nuclear@0 47
nuclear@0 48 void step(SimWorld *world, float dt);
nuclear@0 49
nuclear@0 50 bool collision(const Particle *p2, Collision *col) const;
nuclear@0 51
nuclear@0 52 void draw() const;
nuclear@0 53
nuclear@0 54 friend class SimWorld;
nuclear@0 55 };
nuclear@0 56
nuclear@0 57 #endif // PARTICLE_H_