]> git.jsancho.org Git - lugaru.git/blob - Source/Animation/Joint.hpp
114ca0703c5717c2113f5b7fb666dd8936148432
[lugaru.git] / Source / Animation / Joint.hpp
1 /*
2 Copyright (C) 2003, 2010 - Wolfire Games
3 Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
4
5 This file is part of Lugaru.
6
7 Lugaru is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 Lugaru is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #ifndef _JOINT_HPP_
22 #define _JOINT_HPP_
23
24 #include "Math/XYZ.hpp"
25
26 #include <vector>
27
28 enum bodypart {
29     head, neck,
30     leftshoulder,  leftelbow,  leftwrist,  lefthand,
31     rightshoulder, rightelbow, rightwrist, righthand,
32     abdomen, lefthip, righthip, groin,
33     leftknee,  leftankle,  leftfoot,
34     rightknee, rightankle, rightfoot
35 };
36
37 class Joint
38 {
39 public:
40     XYZ position;
41     XYZ oldposition;
42     XYZ realoldposition;
43     XYZ velocity;
44     XYZ oldvelocity;
45     XYZ startpos;
46     float blurred;
47     float length;
48     float mass;
49     bool lower;
50     bool hasparent;
51     bool locked;
52     int modelnum;
53     bool visible;
54     Joint* parent;
55     bool sametwist;
56     bodypart label;
57     int hasgun;
58     float delay;
59     XYZ velchange;
60
61     Joint();
62     void load(FILE* tfile, std::vector<Joint>& joints);
63 };
64
65 #endif