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;
};
};