File size: 1,271 Bytes
352b049
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from abc import ABC
from dataclasses import dataclass


LANDMARKS = [
    "pelvis",
    "left_hip",
    "right_hip",
    "spine1",
    "left_knee",
    "right_knee",
    "spine2",
    "left_ankle",
    "right_ankle",
    "spine3",
    "left_foot",
    "right_foot",
    "neck",
    "left_collar",
    "right_collar",
    "head",
    "left_shoulder",
    "right_shoulder",
    "left_elbow",
    "right_elbow",
    "left_wrist",
    "right_wrist",
]

SKELETON_NAMES = [
    ["pelvis", "right_hip", "right_knee", "right_ankle", "right_foot"],
    ["pelvis", "left_hip", "left_knee", "left_ankle", "left_foot"],
    ["pelvis", "spine1", "spine2", "spine3", "neck", "head"],
    ["spine3", "right_collar", "right_shoulder", "right_elbow", "right_wrist"],
    ["spine3", "left_collar", "left_shoulder", "left_elbow", "left_wrist"],
]

SKELETON = [[LANDMARKS.index(name) for name in names] for names in SKELETON_NAMES]

ROOT_INDEX = LANDMARKS.index("pelvis")


@dataclass
class SkeletonBaseClass(ABC):
    LANDMARKS: list
    SKELETON_NAMES: list
    SKELETON: list
    ROOT_INDEX: int
    MIRRORED_LANDMARKS: dict
    MIRRORED_INDICES: list
    TO_HUMANML_NAMES: list
    LIMBSEQ: list
    LIMB_POSITIONS: list
    PARENTS: list
    PARENTS_COLOR_LIST: list
    FPS: int