]> git.jsancho.org Git - lugaru.git/blob - Source/Animation/Joint.h
c4c8e3b4318809c79fc3b05110dcbf2e59107ca5
[lugaru.git] / Source / Animation / Joint.h
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_H_
22 #define _JOINT_H_
23
24 #include "Quaternions.h"
25 #include <vector>
26
27 enum bodypart {
28     head, neck,
29     leftshoulder,  leftelbow,  leftwrist,  lefthand,
30     rightshoulder, rightelbow, rightwrist, righthand,
31     abdomen, lefthip, righthip, groin,
32     leftknee,  leftankle,  leftfoot,
33     rightknee, rightankle, rightfoot
34 };
35
36 class Joint
37 {
38 public:
39     XYZ position;
40     XYZ oldposition;
41     XYZ realoldposition;
42     XYZ velocity;
43     XYZ oldvelocity;
44     XYZ startpos;
45     float blurred;
46     float length;
47     float mass;
48     bool lower;
49     bool hasparent;
50     bool locked;
51     int modelnum;
52     bool visible;
53     Joint* parent;
54     bool sametwist;
55     bodypart label;
56     int hasgun;
57     float delay;
58     XYZ velchange;
59
60     Joint();
61     void load(FILE* tfile, std::vector<Joint>& joints);
62 };
63
64 #endif