Merge branch 'experiment' of git+ssh://repo.or.cz/srv/git/glgame
[glgame.git] / src / hinge_obj.h
blob65fcd8d552d9e2b78358396bf5fd1ac0cda0928b
1 #ifndef HINGE_OBJ_H
2 #define HINGE_OBJ_H
4 #include "debug.h"
5 #include "math/vector2d.h"
6 #include "phys/obj_body.h"
9 /**
10 @brief Свободнолетающий шарнир
12 @author Феклушкин Денис <edu2005-60@mail.ru>
14 class hinge_obj : public obj_Body
16 // единственный шарнир на этом точечном теле
17 force_point_obj* hinge;
19 /// Отображаемые в OpenGL размеры точки
20 static const Scalar display_size;
22 /// Внутренний инит
23 void Init_defaults();
25 public:
26 bool fixed; ///< Объект прибит гвоздями к миру?
28 hinge_obj(Vector2D coord);
29 hinge_obj(point_t point);
30 hinge_obj(Coord x, Coord y); ///< Конструктор с координатами появления шарнира
31 ~hinge_obj();
33 void display(); ///< Отображение средствами OpenGL
35 void physics_forces_calculate();
37 /// Возвращает ссылку на точку применения сил шарнира
38 force_point_obj* GetHinge(){ assert(inited); return hinge; }
40 // функции тела, которые для точки все равны простым значениям:
41 void getDimensionsBox(Vector2D* v1, Vector2D* v2);
42 Scalar getMomentOfInertia() const { return 1.0; }
43 void SetMass( Scalar m ) { assert(!inited); mass = m; }
44 Vector2D getCenterMass() const { return Vector2D(); }
45 Scalar getMass() const { return mass; }
49 #endif