Spaces:
Runtime error
Runtime error
import numpy as np | |
class Joint: | |
def __init__(self, name, parent=None, children=None): | |
self.name = name | |
self.parent = parent | |
self.children = children | |
class MocapData: | |
def __init__(self): | |
self.skeleton = {} | |
self.values = None | |
self.channel_names = [] | |
self.framerate = 0.0 | |
self.root_name = "" | |
self.take_name = "" | |
def traverse(self, j=None): | |
stack = [self.root_name] | |
while stack: | |
joint = stack.pop() | |
yield joint | |
for c in self.skeleton[joint]["children"]: | |
stack.append(c) | |
def clone(self): | |
import copy | |
new_data = MocapData() | |
new_data.skeleton = copy.deepcopy(self.skeleton) | |
new_data.values = copy.deepcopy(self.values) | |
new_data.channel_names = copy.deepcopy(self.channel_names) | |
new_data.root_name = copy.deepcopy(self.root_name) | |
new_data.framerate = copy.deepcopy(self.framerate) | |
if hasattr(self, "take_name"): | |
new_data.take_name = copy.deepcopy(self.take_name) | |
return new_data | |
def get_all_channels(self): | |
"""Returns all of the channels parsed from the file as a 2D numpy array""" | |
frames = [f[1] for f in self.values] | |
return np.asarray([[channel[2] for channel in frame] for frame in frames]) | |
def get_skeleton_tree(self): | |
tree = [] | |
root_key = [j for j in self.skeleton if self.skeleton[j]["parent"] == None][0] | |
root_joint = Joint(root_key) | |
def get_empty_channels(self): | |
# TODO | |
pass | |
def get_constant_channels(self): | |
# TODO | |
pass | |