1 package net.sf.josceleton.core.api.entity.joint;
2
3 import net.sf.josceleton.core.api.entity.Coordinate;
4
5 /**
6 * @since 0.4
7 */
8 public interface Skeleton {
9
10 /**
11 * <font style="font-weight:bold;color:red;">ATTENTION:</font> This method might return <code>null</code>!
12 *
13 * @param joint of which to get the most recent coordinate
14 * @return recent position of given <code>joint</code>, or </code>null</code> if none yet available
15 * @since 0.4
16 */
17 Coordinate get(Joint joint);
18
19 /**
20 * Safely get a coordinate, ensuring the return value is not null but throwing an exception instead.
21 *
22 * @param joint of which to get the most recent coordinate
23 * @return recent position of given <code>joint</code>
24 * @throws SkeletonCoordinateUnavailableException if no joint data was yet received for this joint
25 * @since 0.4
26 * @see #get(Joint)
27 */
28 Coordinate getNullSafe(Joint joint);
29
30 /**
31 *
32 * @param joint
33 * @return
34 * @since 0.4
35 */
36 boolean isCoordinateAvailable(Joint joint);
37
38 }