[38ba34]: / Tools / ModelUtilities / Mocap / CreateMarkerClassFoot.any

Download this file

225 lines (151 with data), 4.8 kB


#class_template CreateMarkerFoot (MarkerName, MarkerPlacement,WeightX,WeightY,WeightZ, OptX, OptY,OptZ,Model1, Model2){
  
  AnyVec3 RGB={1,0,0};  //color of initial markers
  
  
  #var AnyVec3 sRelOpt ;  // Variable with obligatory initialization
  
  #if Model1 == 1
  
  AnyFolder &HumanModel = Main.Studies.KinematicStudyForParameterIdentification.HumanModel;
  
  AnyFolder &InsertionNode1 =Main.Studies.KinematicStudyForParameterIdentification.HumanModel.BodyModel.MarkerPlacement;
  
  InsertionNode1 ={
    

    AnyRefNode MarkerName={
     
         sRel=.Scale(..sRelOpt);

      
     
      #if OptX =="On" 
      
      AnyDrawVector XDir =   {
        Line.RGB={0,1,0};
        Vec = {size,0, 0};
        #include "DrawVector.any"
        Text="X";
      };
      #endif
      
      #if OptY =="On" 
      
      AnyDrawVector YDir =   {
        Line.RGB={0,1,0};
        Vec = {0,size, 0};
        #include "DrawVector.any"
        Text="Y";
      };
      #endif      
      
      #if OptZ =="On" 
      
      AnyDrawVector ZDir =   {
        Line.RGB={0,1,0};
        Vec = {0,0,size};
        #include "DrawVector.any"
        Text="Z";
      };
      #endif
      
      
      #if OptX =="Off" 
      
      AnyDrawVector XDir =   {
        Line.RGB={1,0,0};
        Vec = {size,0, 0};
        Text="X";
        #include "DrawVector.any"
      };
      #endif
      
      #if OptY =="Off" 
      
      AnyDrawVector YDir =   {
        Vec = {0,size, 0};
        Line.RGB={1,0,0};
        #include "DrawVector.any"
        Text="Y";
      };
      #endif      
      
      #if OptZ =="Off" 
      
      AnyDrawVector ZDir =   {
        Line.RGB={1,0,0};
        Vec = {0,0,size};
        #include "DrawVector.any"
        Text="Z";
      };
      #endif      
      
    }; //create the marker 
  };
  
  AnyFolder &DriverFolder =Main.Studies.KinematicStudyForParameterIdentification.ModelEnvironmentConnection.Drivers;
  DriverFolder ={
    AnyFolder MarkerName ={
      
      AnyFunConst WeightFun ={Value = {WeightX,WeightY,WeightZ};};
      
      AnyKinDriverMarker Driver =    {
        Linear.Ref=0;
        AnyRefFrame &ref1 = ...InsertionNode1.MarkerName;
        AnyParamFun &ref2 = Main.ModelSetup.C3DFileData.Points.Markers.MarkerName.PosInterpol;
        WeightFun={&.WeightFun};
     
        AnyDrawKinMeasure Draw =         {
        Visible = On;
        Opacity = 1;
        Label = Off;
        Size = 0.0035;
        Line = Off;
        Text = "";
        TextSize = 30;
      };
      

      };
      
    };
  };
  
  
  AnyFolder &ref=  Main.Studies.ParameterIdentification ;
  
  ref={
    
    
    
    #if OptX =="On" 
    
    AnyDesVar MarkerName##X = {      Val =..sRelOpt[0];    
      Min=-100;
      Max=100;      
    };
    
    #endif
    
    #if OptY =="On"
    AnyDesVar MarkerName##Y = {    Val = ..sRelOpt[1];   
      Min=-100;
      Max=100;      
      
    };
    
    #endif
    
    #if OptZ =="On"
    AnyDesVar MarkerName##Z = {      Val = ..sRelOpt[2];   
      Min=-100;
      Max=100;      
    };
    
    #endif    
  };
  
  #endif 
  
  
  
  
  #if Model2 == 1
  
  AnyFolder &HumanModel = Main.Studies.HumanModel;
  
  AnyFolder &InsertionNode2 =Main.Studies.HumanModel.BodyModel.MarkerPlacement;
  InsertionNode2 ={
    AnyRefNode MarkerName={
      sRel=.Scale(..sRelOpt);
      AnyDrawNode DrawMarker = 
      {
        Visible = On;
        Opacity = 0.5;
        RGB = {1, 0, 0};
        ScaleXYZ = {0.0035, 0.0035, 0.0035}*0.5;
      };
    };//create the marker 
  };
  
  
  Main.Studies.InverseDynamicStudy.EnvironmentModel.DrawC3DMarkers = {
    AnyDrawSphere MarkerName = {
      Visible = On;
      Opacity = 0.5;
      Position = {Main.ModelSetup.C3DFileData.Points.Markers.MarkerName.PosInterpol(Main.Studies.InverseDynamicStudy.t)}[0];
      GlobalCoord = On;
      ScaleXYZ={1,1,1}*0.01;
      RGB={0,0,1};
      AnyRefFrame &Globalref = Main.Studies.InverseDynamicStudy.EnvironmentModel.GlobalRef;
    };
  };
  
  
  AnyFolder &ref2=  Main.Studies.LoadParametersOptimizationResults;
  
  ref2={
    #if OptX =="On" 
    
    AnyDesVar MarkerName##X = {      Val =..sRelOpt[0];    
      Min=-100;
      Max=100;      
    };
    
    #endif
    
    #if OptY =="On"
    AnyDesVar MarkerName##Y = {    Val = ..sRelOpt[1];   
      Min=-100;
      Max=100;      
      
    };
    
    #endif
    
    #if OptZ =="On"
    AnyDesVar MarkerName##Z = {      Val = ..sRelOpt[2];   
      Min=-100;
      Max=100;      
    };
    
    #endif
  
  };
  #endif 
  
}; // End of InsertSegmentClass