1 package net.sf.josceleton.core.api.entity.joint;
2
3
4
5
6
7
8
9
10
11 public final class JointParts {
12
13 private JointParts() {
14
15 }
16
17
18
19
20
21 public interface Head extends Joint {
22
23
24 public interface Neck extends Joint {
25
26
27 public interface Torso extends Joint {
28
29
30
31
32
33 public interface Shoulder extends Joint {
34
35
36 public interface LeftShoulder extends LeftJoint<Shoulder>, Shoulder {
37
38
39 public interface RightShoulder extends RightJoint<Shoulder>, Shoulder {
40
41
42 public interface Shoulders extends SymetricJoint<Shoulder, LeftShoulder, RightShoulder> {
43
44
45
46
47
48 public interface Elbow extends Joint {
49
50
51 public interface LeftElbow extends LeftJoint<Elbow>, Elbow {
52
53
54 public interface RightElbow extends RightJoint<Elbow>, Elbow {
55
56
57 public interface Elbows extends SymetricJoint<Elbow, LeftElbow, RightElbow> {
58
59
60
61
62
63 public interface Hand extends Joint {
64
65
66 public interface LeftHand extends LeftJoint<Hand>, Hand {
67
68
69 public interface RightHand extends RightJoint<Hand>, Hand {
70
71
72 public interface Hands extends SymetricJoint<Hand, LeftHand, RightHand> {
73
74
75
76
77
78 public interface Hip extends Joint {
79
80
81 public interface LeftHip extends LeftJoint<Hip>, Hip {
82
83
84 public interface RightHip extends RightJoint<Hip>, Hip {
85
86
87 public interface Hips extends SymetricJoint<Hip, LeftHip, RightHip> {
88
89
90
91
92
93 public interface Knee extends Joint {
94
95
96 public interface LeftKnee extends LeftJoint<Knee>, Knee {
97
98
99 public interface RightKnee extends RightJoint<Knee>, Knee {
100
101
102 public interface Knees extends SymetricJoint<Knee, LeftKnee, RightKnee> {
103
104
105
106
107
108 public interface Ankle extends Joint {
109
110
111 public interface LeftAnkle extends LeftJoint<Ankle>, Ankle {
112
113
114
115 public interface RightAnkle extends RightJoint<Ankle>, Ankle {
116
117
118 public interface Ankles extends SymetricJoint<Ankle, LeftAnkle, RightAnkle> {
119
120
121
122
123
124 public interface Foot extends Joint {
125
126
127 public interface LeftFoot extends LeftJoint<Foot>, Foot {
128
129
130 public interface RightFoot extends RightJoint<Foot>, Foot {
131
132
133 public interface Feet extends SymetricJoint<Foot, LeftFoot, RightFoot> {
134
135
136 interface LeftJoint<J> {
137
138 }
139 interface RightJoint<J> {
140
141 }
142
143 interface SymetricJoint<J, LJ extends LeftJoint<J>, RJ extends RightJoint<J>> {
144
145
146 LJ LEFT();
147
148
149 RJ RIGHT();
150
151 }
152
153 }