Switch to side-by-side view

--- a
+++ b/Tests/AnyMocap/Test_ForcePlateAutoDetection.any
@@ -0,0 +1,204 @@
+//define = (
+// [
+//  {'FP_TYPE':'"1"'}, 
+//  {'FP_TYPE':'"2"'}, 
+//  {'FP_TYPE':'"2a"'}, 
+//  {'FP_TYPE':'"2b"'}, 
+//  {'FP_TYPE':'"3"'}, 
+//  {'FP_TYPE':'"4"'}
+// ],
+// [
+//  {'PLATE_LIMB_DISTANCE':0.01},
+//  {'PLATE_LIMB_DISTANCE': 0.5}
+// ],
+//)
+
+
+
+
+#include "../libdef.any"
+
+#include "<ANYMOCAP_PATH>\ForcePlates\ForcePlateAutoDetection.any"
+
+
+#ifndef FP_TYPE
+#define FP_TYPE "all"
+#endif
+
+
+#ifndef PLATE_LIMB_DISTANCE  
+#define PLATE_LIMB_DISTANCE  1.05
+#endif
+
+
+
+// Prevent the no reaction bug
+Main = {
+  AnyFixedRefFrame fixref = {}; AnyReacForce reac = {AnyKinLinear lin = {AnyRefFrame& ref = ..fixref;};};
+};
+
+
+
+
+#define CREATE_DUMMY_LIMB(NAME, DIST)  AnyFixedRefFrame NAME= {\
+  Origin = .Plate.Corners.PlateCenter.sRel+ {0,0, DIST}*Axes';\
+  Axes = .Plate.Corners.PlateCenter.ARel;\
+  AnyRefNode HeelContactNodeLow = {}; AnyRefNode ToeLateralContactNode = {};  }
+#define CREATE_C3D(FNAME) AnyInputC3D C3D = {\
+  FileName = #FNAME;\
+  PointsScaleFactor = 0.001; ConstructChartOnOff = Off; ConstructModelOnOff = Off; }
+
+
+
+Main = 
+{  
+  
+  
+  AnyFolder ForcePlates =  {
+    
+    #if FP_TYPE == "1" | FP_TYPE == "all"
+    AnyFolder  Type1 = {
+      CREATE_C3D(c3d_data/type1.c3d);
+      CREATE_DUMMY_LIMB(foot1, PLATE_LIMB_DISTANCE);
+      CREATE_DUMMY_LIMB(foot2, 5);
+      
+      ForcePlateAutoDetection Plate(
+        PLATE_NO=1,
+        HeightTolerance = 0.07,
+        VelThreshold = 2.2,
+        C3D_OBJECT = Main.ForcePlates.Type1.C3D,
+        FORCEPLATE_TYPE = 1,
+        LIMB1 =.foot1,
+        LIMB2 = .foot2
+      )
+      ={ };  
+      
+    };
+    #endif
+    
+    
+    
+    #if FP_TYPE == "2" | FP_TYPE == "all"
+    AnyFolder Type2 = {
+      CREATE_C3D(c3d_data/type2.c3d);
+      CREATE_DUMMY_LIMB(foot1, PLATE_LIMB_DISTANCE);
+      CREATE_DUMMY_LIMB(foot2, 5);
+      
+      ForcePlateAutoDetection Plate(
+      PLATE_NO=1,
+      HeightTolerance = 0.07,
+      VelThreshold = 2.2,
+      C3D_OBJECT = Main.ForcePlates.Type2.C3D,
+      FORCEPLATE_TYPE = 2,
+      LIMB1 =.foot1,
+      LIMB2 = .foot2
+      )
+      ={ };  
+    };
+    #endif
+       
+    #if FP_TYPE == "2a" | FP_TYPE == "all"
+    AnyFolder Type2a = {
+      CREATE_C3D(c3d_data/type2a.c3d);
+      CREATE_DUMMY_LIMB(foot1, PLATE_LIMB_DISTANCE);
+      CREATE_DUMMY_LIMB(foot2, 5);
+      
+      ForcePlateAutoDetection Plate(
+      PLATE_NO=1,
+      HeightTolerance = 0.07,
+      VelThreshold = 2.2,
+      C3D_OBJECT = Main.ForcePlates.Type2a.C3D,
+      FORCEPLATE_TYPE = 2,
+      LIMB1 =.foot1,
+      LIMB2 = .foot2
+      )
+      ={ };  
+    };
+    #endif
+       
+    #if FP_TYPE == "2b" | FP_TYPE == "all"
+    AnyFolder Type2b = {
+      CREATE_C3D(c3d_data/type2b.c3d);
+      CREATE_DUMMY_LIMB(foot1, PLATE_LIMB_DISTANCE);
+      CREATE_DUMMY_LIMB(foot2, 5);
+      
+      ForcePlateAutoDetection Plate(
+      PLATE_NO=1,
+      HeightTolerance = 0.07,
+      VelThreshold = 2.2,
+      C3D_OBJECT = Main.ForcePlates.Type2b.C3D,
+      FORCEPLATE_TYPE = 2,
+      LIMB1 =.foot1,
+      LIMB2 = .foot2
+      )
+      ={ };  
+    };
+    #endif
+           
+    
+    #if FP_TYPE == "3" | FP_TYPE == "all"
+    AnyFolder Type3 = {
+      CREATE_C3D(c3d_data/type3.c3d);
+      CREATE_DUMMY_LIMB(foot1, PLATE_LIMB_DISTANCE);
+      CREATE_DUMMY_LIMB(foot2, 5);
+      
+      ForcePlateAutoDetection Plate(
+      PLATE_NO=1,
+      HeightTolerance = 0.07,
+      VelThreshold = 2.2,
+      C3D_OBJECT = Main.ForcePlates.Type3.C3D ,
+      FORCEPLATE_TYPE = 3,
+      LIMB1 =.foot1,
+      LIMB2 = .foot2
+      )
+      ={ };  
+    };
+    #endif  
+    
+    #if FP_TYPE == "4" | FP_TYPE == "all"
+    AnyFolder Type4 = {
+      CREATE_C3D(c3d_data/type4.c3d);
+      CREATE_DUMMY_LIMB(foot1, PLATE_LIMB_DISTANCE);
+      CREATE_DUMMY_LIMB(foot2, 5);
+      
+      
+      ForcePlateAutoDetection Plate(
+      PLATE_NO=1,
+      HeightTolerance = 0.07,
+      VelThreshold = 2.2,
+      C3D_OBJECT = Main.ForcePlates.Type4.C3D,
+      FORCEPLATE_TYPE = 4,
+      LIMB1 =.foot1,
+      LIMB2 = .foot2
+      )
+      ={ };
+    };
+    #endif
+  };
+  
+  
+  AnyOperation& RunTest = Study.InverseDynamics;
+  
+  AnyBodyStudy Study = {
+    Gravity= {0,0,0};
+    tStart = 0.8;
+    tEnd = 2;
+    nStep = 10;
+    AnyFolder& ForcePlates = Main.ForcePlates;
+    Kinematics.SolverType = KinSolDeterminate;
+    InverseDynamics.Criterion.Type = MR_Linear;
+    
+    AnySeg Dummy = 
+    {
+       Mass = 0.0;
+       Jii = {0,0,0};   
+    };
+    AnyKinDriver dummy_fix = 
+    {
+      AnyKinLinear lin = { AnyRefFrame& ref = ..Dummy;  };
+      AnyKinRotational rot = {Type = RotAxesAngles; AnyRefFrame& ref = ..Dummy;};
+    }; 
+    
+  };
+  
+};