Base class for motion capture datasets.

class MocapDataset[source]

MocapDataset(fps, skeleton)

Motion capture dataset base class.

Attributes: skeleton -- A skeleton model also known as a kinematic model. fps -- Frames per second. data -- Must be filled by subclass. cameras -- Must be filled by subclass.

class MocapDataset:
    """
    Motion capture dataset base class. 

    Attributes:
    skeleton -- A skeleton model also known as a kinematic model. 
    fps -- Frames per second.
    data -- Must be filled by subclass.
    cameras -- Must be filled by subclass. 
    """

    def __init__(self, fps, skeleton):
        self._skeleton = skeleton
        self._fps = fps
        self._data = None
        self._cameras = None
    
    def remove_joints(self, joints_to_remove):
        """
        Removes specific joints and re-asigns the remaining joints in 
        the dataset.
        """
        kept_joints = self._skeleton.remove_joints(joints_to_remove)
        for subject in self._data.keys():
            for action in self._data[subject].keys():
                data = self._data[subject][action]
                if "positions" in data:
                    data["positions"] = data["positions"][:, kept_joints]

    # Bunch of getters.
    def __getitem__(self, key):
        return self._data[key]
    
    def subjects(self):
        return self._data.keys()
    
    def fps(self):
        return self._fps
    
    def skeleton(self):
        return self._skeleton
    
    def cameras(self):
        return self._cameras