public PivotBone(TrajectoryModule module, int index, string name) { TModule = module; Index = index; Name = name; Transformations = new Matrix4x4[TModule.SampleFrame.Length]; Velocities = new Vector3[TModule.SampleFrame.Length]; HotVectors = new string[TModule.SampleFrame.Length]; FloatHotVectors = new float[TModule.SampleFrame.Length][]; Phases = new float[TModule.SampleFrame.Length]; }
public string[] GenerateLines(MotionData data) { string[] result = new string[data.Frames.Length - 60]; for (int i = 30; i < data.Frames.Length - 30; i++) { if (data.Modules != null) { for (int k = 0; k < data.Modules.Length; k++) { switch (data.Modules[k].GetID()) { case Module.ID.Velocity: { VelocityModule module = (VelocityModule)data.GetModule(Module.ID.Velocity); module.GetTransformations(data.GetFrame(i)); module.GetVelocities(data.GetFrame(i), 1.0f); for (int j = 0; j < data.Root.Bones.Length; j++) { if (module.Selected[j]) { result[i - 30] += data.Frames[i].GetBoneTransformation(j, data.Mirrored).GetPosition().x.ToString() + " "; result[i - 30] += data.Frames[i].GetBoneTransformation(j, data.Mirrored).GetPosition().y.ToString() + " "; result[i - 30] += data.Frames[i].GetBoneTransformation(j, data.Mirrored).GetPosition().z.ToString() + " "; result[i - 30] += data.Frames[i].GetBoneTransformation(j, data.Mirrored).GetForward().x.ToString() + " "; result[i - 30] += data.Frames[i].GetBoneTransformation(j, data.Mirrored).GetForward().y.ToString() + " "; result[i - 30] += data.Frames[i].GetBoneTransformation(j, data.Mirrored).GetForward().z.ToString() + " "; result[i - 30] += data.Frames[i].GetBoneTransformation(j, data.Mirrored).GetUp().x.ToString() + " "; result[i - 30] += data.Frames[i].GetBoneTransformation(j, data.Mirrored).GetUp().y.ToString() + " "; result[i - 30] += data.Frames[i].GetBoneTransformation(j, data.Mirrored).GetUp().z.ToString() + " "; result[i - 30] += module.Velocities[j].x.ToString() + " "; result[i - 30] += module.Velocities[j].y.ToString() + " "; result[i - 30] += module.Velocities[j].z.ToString() + " "; } } break; } case Module.ID.Action: { ActionModule module = (ActionModule)data.GetModule(Module.ID.Action); result[i - 30] += module.GetHotVector(i) + " "; break; } case Module.ID.Phase: { PhaseModule module = (PhaseModule)data.GetModule(Module.ID.Phase); result[i - 30] += module.Phases[1].LocalPhase.Phase[i] + " "; result[i - 30] += module.Phases[2].LocalPhase.Phase[i] + " "; break; } case Module.ID.Trajectory: { TrajectoryModule module = (TrajectoryModule)data.GetModule(Module.ID.Trajectory); for (int j = 0; j < module.Pivots.Length; j++) { for (int p = 0; p < module.Pivots[j].Transformations.Length; p++) { result[i - 30] += module.Pivots[j].Transformations[p].GetPosition().x.ToString() + " "; result[i - 30] += module.Pivots[j].Transformations[p].GetPosition().y.ToString() + " "; result[i - 30] += module.Pivots[j].Transformations[p].GetPosition().z.ToString() + " "; result[i - 30] += module.Pivots[j].Velocities[p].x.ToString() + " "; result[i - 30] += module.Pivots[j].Velocities[p].y.ToString() + " "; result[i - 30] += module.Pivots[j].Velocities[p].z.ToString() + " "; result[i - 30] += module.Pivots[j].HotVectors[p] + " "; result[i - 30] += module.Pivots[j].Phases[p].ToString() + " "; } } break; } } } } } return(result); }
public void ExportLabels(MotionData data) { Lines = new string[0]; if (data.Modules != null) { for (int k = 0; k < data.Modules.Length; k++) { switch (data.Modules[k].GetID()) { case Module.ID.Velocity: { VelocityModule module = (VelocityModule)data.GetModule(Module.ID.Velocity); for (int j = 0; j < data.Root.Bones.Length; j++) { if (module.Selected[j]) { ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "PositionX"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "PositionY"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "PositionZ"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "ForwardX"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "ForwardY"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "ForwardZ"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "UpX"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "UpY"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "UpZ"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "VelocityX"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "VelocityY"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + data.Root.Bones[j].Name + "VelocityZ"); } } break; } case Module.ID.Action: { ActionModule module = (ActionModule)data.GetModule(Module.ID.Action); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Action Neutral"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Action CrossArms"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Action LHOnHip"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Action RHOnHip"); break; } case Module.ID.Phase: { PhaseModule module = (PhaseModule)data.GetModule(Module.ID.Phase); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Phase LeftHand"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Phase RightHand"); break; } case Module.ID.Trajectory: { TrajectoryModule module = (TrajectoryModule)data.GetModule(Module.ID.Trajectory); for (int j = 0; j < module.Pivots.Length; j++) { for (int p = 0; p < module.Pivots[j].Transformations.Length; p++) { ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "PositionX"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "PositionY"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "PositionZ"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "VelocityX"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "VelocityY"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "VelocityZ"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "Action Neutral"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "Action CrossArms"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "Action LHOnHip"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "Action RHOnHip"); ArrayExtensions.Add(ref Lines, "[" + Lines.Length.ToString() + "] " + "Pivot" + j.ToString() + module.Pivots[j].Name + "Trajectory" + p.ToString() + "Phase"); } } break; } } } } string FileName = Destination + "/" + "Labels.txt"; if (!File.Exists(FileName)) { using (FileStream fs = File.Create(FileName)) { } Debug.Log("Create new file: " + FileName); File.AppendAllLines(FileName, Lines); } else { File.WriteAllLines(FileName, Lines); } Debug.Log("Export Labels Successfully!"); }