]> git.jsancho.org Git - lugaru.git/blob - Source/Animation/Joint.hpp
clang-format: Apply to all headers
[lugaru.git] / Source / Animation / Joint.hpp
1 /*
2 Copyright (C) 2003, 2010 - Wolfire Games
3 Copyright (C) 2010-2017 - 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 {
30     head,
31     neck,
32     leftshoulder,
33     leftelbow,
34     leftwrist,
35     lefthand,
36     rightshoulder,
37     rightelbow,
38     rightwrist,
39     righthand,
40     abdomen,
41     lefthip,
42     righthip,
43     groin,
44     leftknee,
45     leftankle,
46     leftfoot,
47     rightknee,
48     rightankle,
49     rightfoot
50 };
51
52 class Joint
53 {
54 public:
55     XYZ position;
56     XYZ oldposition;
57     XYZ realoldposition;
58     XYZ velocity;
59     XYZ oldvelocity;
60     XYZ startpos;
61     float blurred;
62     float length;
63     float mass;
64     bool lower;
65     bool hasparent;
66     bool locked;
67     int modelnum;
68     bool visible;
69     Joint* parent;
70     bool sametwist;
71     bodypart label;
72     int hasgun;
73     float delay;
74     XYZ velchange;
75
76     Joint();
77     void load(FILE* tfile, std::vector<Joint>& joints);
78 };
79
80 #endif