[38ba34]: / Body / AAUHuman / HumanModel.any

Download this file

160 lines (126 with data), 6.5 kB

#ifndef ANYBODY_PATH_BODY_GENERICBODYMODEL
  #path ANYBODY_PATH_BODY_GENERICBODYMODEL "<ANYBODY_PATH_BODY>\BodyModels\GenericBodyModel\"
#endif

AnyFolder HumanModel={
  AnyDoc Config = 
  {
    DocumentationLink = AMMR_PATH_DOC + "/index.html";
    
    #if (ANYBODY_V1 > 7)|(ANYBODY_V1 == 7 & ANYBODY_V2 > 1)
    #include "<ANYBODY_PATH_BODY_GENERICBODYMODEL>\BM_Plugin.any"
    #endif

    #include "<ANYBODY_PATH_BODY_GENERICBODYMODEL>\BodyModel.defaults.preprocess.any"
    #include "<ANYBODY_PATH_BODY_GENERICBODYMODEL>\BodyModel.defaults.any"
    #include "<ANYBODY_PATH_BODY_GENERICBODYMODEL>\BodyModel.BodyPartsSetup.any"
    #include "<ANYBODY_PATH_BODY_GENERICBODYMODEL>\BodyModel.config_info.any"
    
    

  };
 
  
  
  /// This folder holds the Anthropometric data for the
  /// HumanModel (once called the AnyMan file).
  /// It is created automatically with default values 
  /// which can be redefined in your application. 
  /// You can view the values under HumanModel.Anthropometrics
  ///
  /// You can also specify your own file with:
  /// #path BM_SCALING_ANTHRO_FILE "My_Own_AnyMan.any"
  AnyFolder Anthropometrics = 
  {
  #ifdef BM_SCALING_ANTHRO_FILE
     // Include any User overrrides of the anthropometric folder
     #include "<BM_SCALING_ANTHRO_FILE>"
  #else
    // Include a default Anthropometric file 
    // depending on the scaling configuration.
     #if BM_SCALING == _SCALING_XYZ_
       // Include a Anthropomtric file with an option to specify 
       // scaling factors in all directions.
       #include "Scaling/DefaultAnthropometrics_xyz.any"
     #else 
       // Create the default AnyMan folder 
       #include "Scaling/DefaultAnthropometrics.any"
    #endif
  #endif
  };
  
  
  
  #ifndef BM_MANNEQUIN_FILE
    // Include the Mannequin file with all default values.
    #include "BodyModels/GenericBodyModel/MannequinDefault.any"  
  #else
    // The old way of defining mannequin files
    AnyInt WARNING_BM_MANNEQUIN_FILE_Deprecation = warn(0, strformat("\n"+
      "----------------------------------------------------------------------------------------------------------------\n"+
      "    Setting the mannequin file with `#path BM_MANNEQUIN_FILE` is deprecated. \n"+
      "    Instead just overwrite the values you need to set directly in your application files: \n"+
      "     \n"+
      "     Main.HumanModel.Mannequin.Posture = {\n"+
      "       PelvisPosX = 0.1; \n"+
      "       ...\n"+
      "     \n"+
      "-----------------------------------------------------------------------------------------------------------------"));
    #include "<BM_MANNEQUIN_FILE>"
  #endif
  
  
  
#if BM_DRAWSETTINGS_SKIP == OFF

  Main = 
  {
  #ifndef BM_DRAWSETTINGS_FILE
    #include "<ANYBODY_PATH_BODY>/DrawSettings/DrawSettingsDefault.any"
  #else
      // The old way of defining drawsettings files
    AnyInt WARNING_BM_DRAWSETTINGS_FILE_Deprecation = warn(0, strformat("\n"+
      "----------------------------------------------------------------------------------------------------------------\n"+
      "    Setting the DrawSettings with `#include` is deprecated. \n"+
      "    Instead just overwrite the values you need to set directly in your application files: \n"+
      "     \n"+
      "     Main.DrawSettings.Colors = {\n"+
      "       RGB = {0.9, 0.1, 0.1}; \n"+
      "       ...\n"+
      "     \n"+
      "-----------------------------------------------------------------------------------------------------------------"));
    #include "<BM_DRAWSETTINGS_FILE>"
  #endif    
  };
  
#endif
  
  #include  "<ANYBODY_PATH_BODY_GENERICBODYMODEL>\BodyModel.any"
  
  AnyFolder StrengthParameters={
    AnyVar SpecificMuscleTensionSpine= BM_TRUNK_STRENGTH_INDEX*90; //N/cm^2
    AnyVar StrengthIndexLeg= DesignVar(BM_LEG_STRENGTH_INDEX); 
    AnyVar SpecificMuscleTensionShoulderArm= BM_ARM_STRENGTH_INDEX*90; //N/cm^2
  };
  

  
  AnyFolder ScalingLaw = 
  {
     #include "<ANYBODY_PATH_BODY>/BodyModels/GenericBodyModel/BodyModel.StandardParameters.any"
    // Custom scaling is not enabled; include the scaling law in the traditional way.
    // Include the scaling law selected by the user
    #include "<BM_SCALING_FILE>"
    
    #if BM_SCALING == _SCALING_XYZ_
      // When morphing of the pelvis is applied it creates an offset in the anatomical
      // frame shared with the other trunk segments. Since scaling happens per body
      // region, each region has it's own offset. The region origins are input to the
      // scaling function in order to calculate the offsets.
      GeometricalScaling.Lumbar.OriginUnscaled = (.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrame.ScalingOrigins.Lumbar);
      GeometricalScaling.Thorax.OriginUnscaled = (.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrame.ScalingOrigins.Thorax);
      GeometricalScaling.Cervical.OriginUnscaled = (.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrame.ScalingOrigins.Cervical);
    #endif
    
    #if (BM_SCALING == _SCALING_UNIFORM_)| (BM_SCALING == _SCALING_STANDARD_)
      // In scaling uniform the lumbar and thorax is one region therefor we set the
      // thoracic offset to the lumbar - since the thorax region starts there 
      GeometricalScaling.Thorax.OriginUnscaled = (.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrame.ScalingOrigins.Lumbar);
    #endif

    #if (BM_SCALING == _SCALING_LENGTHMASS_) | (BM_SCALING == _SCALING_LENGTHMASSFAT_)
      GeometricalScaling.Lumbar.OriginUnscaled = (.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrame.ScalingOrigins.Lumbar);
      GeometricalScaling.Thorax.OriginUnscaled = (.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrame.ScalingOrigins.Thorax);
    #endif
  };
  
  
  #include "<ANYBODY_PATH_BODY_GENERICBODYMODEL>\CheckDeprecatedCustomScalingEnabled.any"
  
  #if __DEPRECATED_CUSTOM_SCALING == ON
    #include "<ANYBODY_PATH_BODY>\Scaling\ScalingCustom.any"
  #else
    #include "Scaling\ScalingConfig.any"
  #endif
  
  Scaling = 
  {
    AnyDoc Doc = {DocumentationLink = AMMR_PATH_DOC + "/Scaling/intro.html";};
  };
  
  #include "<ANYBODY_PATH_BODY_GENERICBODYMODEL>\BodyModel.MannequinDrivers.any"
 
  AnyFolder BodyModelWithDefaultDrivers = {
    AnyFolder &BodyModel = .BodyModel;
    AnyFolder &Drivers = .DefaultMannequinDrivers;
  }; 
  
};