public void ReadFromRecorder(BinaryReader reader)
        {
            RawSensors = new SensorRawFeatureSet();
            RawKinect = new KinectRawFeatureSet();
            RawManual = new ManualRawFeatureSet();

            RawSensors.ReadFromRecorder(reader);
            RawKinect.ReadFromRecorder(reader);
            RawManual.ReadFromRecorder(reader);

            // Only write and read raw features
            // SensorFeatures = new SensorFeatureSet();
            // KinectFeatures = new KinectFeatureSet();
            // SensorFeatures.ReadFromRecorder(reader);
            // KinectFeatures.ReadFromRecorder(reader);
        }
 public override object Clone()
 {
     // Deep copy all Joints
     var newObj = new KinectRawFeatureSet();
     var newList = new List<Joint>(this.SkeletonJoints.Count());
     foreach (Joint joint in this.SkeletonJoints)
     {
         newList.Add(new Joint()
         {
             ID = joint.ID,
             TrackingState = joint.TrackingState,
             Position = new Vector()
             {
                 W = joint.Position.W,
                 X = joint.Position.X,
                 Y = joint.Position.Y,
                 Z = joint.Position.Z
             }
         });
     }
     newObj.SkeletonJoints = newList;
     return newObj;
 }