--- a +++ b/Tools/AnyMocap/ModelSetup.any @@ -0,0 +1,151 @@ +ModelSetup = { + + AnyFolder TrialSpecificData = { + #include "TrialSpecificData_Defaults.any" + #include "<MOCAP_TRIAL_SPECIFIC_DATA>" + }; + + AnyFolder SubjectSpecificData = { + #include "SubjectSpecificData_Defaults.any" + #include "<MOCAP_SUBJECT_SPECIFIC_DATA>" + }; + + AnyFolder LabSpecificData= { + #include "LabSpecificData_Defaults.any" + #include "<MOCAP_LAB_SPECIFIC_DATA>" + }; + + // This file checks if all the defines statements + // are made correctly. + #include "CheckAnyMoCapConfiguration.any" + + + Main = { + #include "<BODY_MODEL_CONFIG_FILE>" + }; + + #if MOCAP_INPUT_DATA_TYPE == "C3D" + AnyInputC3D C3DFileData = { + AnyComponentDefinition obj = {}; + }; + #include "<MOCAP_C3DSETTINGS>" + #endif + + #if MOCAP_INPUT_DATA_TYPE == "BVH" + + /// Redirects to BVHFileData, so models expecting C3D emulation still work. + AnyFolder C3DFileData = {AnyFolder& Header = .BVHFileData.Header;}; + + AnyInputBVH BVHFileData = { + AnyComponentDefinition obj = { + SubGroupRegexSearch = ".*\.([_[:alnum:]]+?)\.([_[:alnum:]]+?)"; + SubGroupRegexReplace = "$1"; + }; + }; + #include "<MOCAP_BVHSETTINGS>" + #endif + + + AnyFolder MocapExtraDrivers = { + AnyComponentDefinition obj = {}; + #include "<MOCAP_EXTRA_DRIVERS_FILE>" + }; + + AnyFolder MocapDrivers = { + AnyComponentDefinition obj = { + // regex pattern starts at the component level + SubGroupRegexSearch = "([_[:alnum:]]+)\.([_[:alnum:]]+?)"; + SubGroupRegexReplace = "$1"; + }; + #include "<MOCAP_MARKER_PROTOCOL_FILE>" + }; + + AnyFolder ParameterIdentification = { }; + + #if MOCAP_FILTER_JOINT_ANGLES == ON + /// Filter for Joint Angles (Output of the marker tracking step). + AnyFolder JointAngleFilter = + { + AnyInt N ??= 1; + AnyVar Fs ??= (Main.Studies.MarkerTracking.nStep-1) + /(Main.Studies.MarkerTracking.tEnd-Main.Studies.MarkerTracking.tStart); + AnyVar Fc ??= 10; + AnySwitchVar FilterForwardBackwardOnOff ??= On; + + AnyFunButterworthFilter FilterFun = + { + AutomaticInitialConditionOnOff = On; + FilterForwardBackwardOnOff = .FilterForwardBackwardOnOff; + N = .N; + Fs = .Fs; + Fc = {.Fc}; + Type = LowPass; + }; + }; + + #endif + + // Study for saving a loading the parameters from calibration trials + //(dynamic or standing refereces) + #include "SaveLoadParameters.any" + + #include "ModelViews.any" + + + //markers adds macros automatically into this folder + AnyFolder Macros = + { + + AnyOperationMacro SaveOutputToHDF = + { + OPERATION_DISPLAY_PRIORITY(PriorityLow); + MacroStr = { + "classoperation Main.Studies.MarkerTracking.Output" + strquote("Save data") + + "--type= " + strquote("Deep") + + "--file= " + strquote(ANYBODY_PATH_OUTPUT + "/" + MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX + + Main.ModelSetup.TrialSpecificData.TrialFileName + "_MarkerTracking.anydata.h5"), + + "classoperation Main.Studies.InverseDynamicStudy.Output" + strquote("Save data") + + "--type= " + strquote("Deep") + + "--file= " + strquote(ANYBODY_PATH_OUTPUT + "/" + MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX + + Main.ModelSetup.TrialSpecificData.TrialFileName + "_InverseDynamicStudy.anydata.h5") + }; + }; + AnyOperationMacro LoadOutputFromHDF = + { + OPERATION_DISPLAY_PRIORITY(PriorityLow); + MacroStr = { + "classoperation Main.Studies.MarkerTracking.Output" + strquote("Load data") + + "--file= " + strquote(ANYBODY_PATH_OUTPUT + "/" + MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX + + Main.ModelSetup.TrialSpecificData.TrialFileName + "_MarkerTracking.anydata.h5"), + + "classoperation Main.Studies.InverseDynamicStudy.Output" + strquote("Load data") + + "--file= " + strquote(ANYBODY_PATH_OUTPUT + "/" + MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX + + Main.ModelSetup.TrialSpecificData.TrialFileName + "_InverseDynamicStudy.anydata.h5") + }; + }; + }; // Macros + + +}; + + +AnyFolder ModelSetup = {}; + +ModelSetup = +{ + //DocumentationLink = AMMR_PATH_DOC + "/anymocap.html"; + AnyFolder Views = {}; +}; + + +#ifdef BM_DRAWSETTINGS_FILE +// Ensure that HumanModel does not +// include DrawSettings as well. +#define BM_DRAWSETTINGS_SKIP ON +#include "<BM_DRAWSETTINGS_FILE>" +#endif + + +#include "CheckAnyMoCapPostConfiguration.any" +