747 lines (665 with data), 31.4 kB
/* AUTHOR: Pavel Galibarov, peg@anybodytech.com
*/
AnyFolder Scaling = {
AnyMessage DeprecatedCustomScaling =
{
TriggerConst = On;
Type = MSG_Warning;
Message = strformat("\n---------------------------------------------------------------------------------------------------------------\n"
+" Custom scaling using the '#define CUSTOM_SCALING_xxxx' statements are deprecated, - but still works. \n"
+"\n"
+" You can update your code by removing all `#define CUSTOM_SCA...` statements and instead override the \n"
+" the scaling functions directly. E.g.: \n"
+"\n"
+" Main.HumanModel.Scaling.GeometricalScaling = { \n"
+" Right.Thigh.ScalingFunction.Custom= &...Some_custom_scaling_function;\n"
+" };\n"
+"\n"
+" See the AnyBody Tutorials on custom scaling on how to update your code. \n"
+"---------------------------------------------------------------------------------------------------------------");
};
AnyFolder& Scaling = .ScalingLaw;
AnyFolder &StandardParameters = Scaling.StandardParameters;
AnyFolder &MassScaling = Scaling.MassScaling;
AnyFolder &StrengthScaling = Scaling.StrengthScaling;
AnyFolder &FiberLengthScaling = Scaling.FiberLengthScaling;
AnyFolder GeometricalScaling = {
AnyFolder Right = {
AnyFolder Foot = {
#ifndef CUSTOM_SCALING_Right_Foot
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Foot.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Foot.Scale.T0;
AnyMessage scaling_message_Right_Foot =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Right.Foot' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Talus = {
#ifndef CUSTOM_SCALING_Right_Talus
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Talus.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Talus.Scale.T0;
AnyMessage scaling_message_Right_Talus =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Right.Talus' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Patella = {
#ifndef CUSTOM_SCALING_Right_Patella
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Patella.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Patella.Scale.T0;
AnyMessage scaling_message_Right_Patella =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Right.Patella' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Shank = {
#ifndef CUSTOM_SCALING_Right_Shank
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Shank.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Shank.Scale.T0;
AnyMessage scaling_message_Right_Shank =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Right.Shank' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Thigh = {
#ifndef CUSTOM_SCALING_Right_Thigh
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Thigh.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Thigh.Scale.T0;
AnyMessage scaling_message_Right_Thigh =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Right.Thigh' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Clavicula = {
#ifndef CUSTOM_SCALING_Right_Clavicula
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Clavicula.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Right_Clavicula =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Clavicula' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Scapula = {
#ifndef CUSTOM_SCALING_Right_Scapula
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Scapula.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Right_Scapula =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Scapula' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Humerus = {
#ifndef CUSTOM_SCALING_Right_Humerus
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Humerus.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Right_Humerus =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Humerus' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Ulna = {
#ifndef CUSTOM_SCALING_Right_Ulna
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Ulna.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Right_Ulna =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Ulna' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Radius = {
#ifndef CUSTOM_SCALING_Right_Radius
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Radius.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Right_Radius =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Radius' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Hand = {
// required by detailed hand, to be optimized
// Todo: Restructure this part so the hand model directly refer to
// Main.HumanModel.Anthropometrics.SegmentDimensions.Left/Right
#if BM_SCALING == _SCALING_XYZ_
AnyVar LengthScale = ...Scaling.GeometricalScaling.Right.Hand.LengthScale;
AnyVar WidthScale = ...Scaling.GeometricalScaling.Right.Hand.WidthScale;
#else
AnyVar HandLength = ...Scaling.GeometricalScaling.Right.Hand.HandLength;
AnyVar HandBreadth = ...Scaling.GeometricalScaling.Right.Hand.HandBreadth;
#endif
#ifndef CUSTOM_SCALING_Right_Hand
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Right.Hand.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Right_Hand =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Hand' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
};//Right
AnyFolder Left = {
AnyFolder Foot = {
#ifndef CUSTOM_SCALING_Left_Foot
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Foot.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Foot.Scale.T0;
AnyMessage scaling_message_Left_Foot =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Left.Foot' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Talus = {
#ifndef CUSTOM_SCALING_Left_Talus
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Talus.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Talus.Scale.T0;
AnyMessage scaling_message_Left_Talus =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Left.Talus' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Patella = {
#ifndef CUSTOM_SCALING_Left_Patella
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Patella.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Patella.Scale.T0;
AnyMessage scaling_message_Left_Patella =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for Left.Patella' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Shank = {
#ifndef CUSTOM_SCALING_Left_Shank
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Shank.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Shank.Scale.T0;
AnyMessage scaling_message_Left_Shank =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Left.Shank' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Thigh = {
#ifndef CUSTOM_SCALING_Left_Thigh
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Thigh.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Thigh.Scale.T0;
AnyMessage scaling_message_Left_Thigh =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Left.Thigh' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Clavicula = {
#ifndef CUSTOM_SCALING_Left_Clavicula
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Clavicula.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Left_Clavicula =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Clavicula' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Scapula = {
#ifndef CUSTOM_SCALING_Left_Scapula
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Scapula.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Left_Scapula =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Scapula' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Humerus = {
#ifndef CUSTOM_SCALING_Left_Humerus
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Humerus.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Left_Humerus =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Humerus' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Ulna = {
#ifndef CUSTOM_SCALING_Left_Ulna
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Ulna.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Left_Ulna =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Ulna' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Radius = {
#ifndef CUSTOM_SCALING_Left_Radius
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Radius.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Left_Radius =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Radius' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Hand = {
// required by detailed hand, to be optimized
// Todo: Restructure this part so the hand model directly refer to
// Main.HumanModel.Anthropometrics.SegmentDimensions.Left/Right
#if BM_SCALING == _SCALING_XYZ_
AnyVar LengthScale = ...Scaling.GeometricalScaling.Left.Hand.LengthScale;
AnyVar WidthScale = ...Scaling.GeometricalScaling.Left.Hand.WidthScale;
#else
AnyVar HandLength = ...Scaling.GeometricalScaling.Left.Hand.HandLength;
AnyVar HandBreadth = ...Scaling.GeometricalScaling.Left.Hand.HandBreadth;
#endif
#ifndef CUSTOM_SCALING_Left_Hand
AnyFunTransform3D &ScaleFunction = ...Scaling.GeometricalScaling.Left.Hand.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
AnyMessage scaling_message_Left_Hand =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Hand' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
};//Left
// #endif
//#endif
// Common law for the upper body
// *****************************
AnyFolder PelvisSeg = {
#ifndef CUSTOM_SCALING_PelvisSeg
AnyFunTransform3D &ScaleFunction = ..Scaling.GeometricalScaling.Pelvis.ScaleFunction;
#else
#if BM_LEG_TRUNK_INTERFACE == _MORPH_LEG_TO_TRUNK_
AnyFunTransform3DIdentity TSeg2ScaleFrame = {
PreTransforms = {
&....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.InterfaceMorphingDef.IM_Leg_To_Trunk_Unscaled,
&....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrame.Scale_Leg_Pelvis.ScaleAfterInterfaceMorphingDef.Scale.T0
};
};
AnyMessage scaling_message_PelvisSeg_InterfaceMorphing =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Pelvis morphing: the source geometry corresponds to the TLEM1.2, \nto "+
"switch back to TLEM2.2 please use another interface morphing option (_MORPH_NONE_ or _MORPH_TRUNK_TO_LEG_)";
};
#else
//options: BM_LEG_TRUNK_INTERFACE == _MORPH_NONE_ && BM_LEG_TRUNK_INTERFACE == _MORPH_TRUNK_TO_LEG_
AnyFunTransform3DIdentity TSeg2ScaleFrame = {
PreTransforms = {
&....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.InterfaceMorphingDef.IM_Leg_To_Trunk_Unscaled,
&....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrame.Scale_Leg_Pelvis.ScaleAfterInterfaceMorphingDef.Scale.T0
};
};
#endif
AnyMessage scaling_message_PelvisSeg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'PelvisSeg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Thorax = {
#ifndef CUSTOM_SCALING_Thorax
AnyFunTransform3D &ScaleFunction = ..Scaling.GeometricalScaling.Thorax.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_Trunk =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Thorax' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Head = {
#ifndef CUSTOM_SCALING_Head
AnyFunTransform3D &ScaleFunction = ..Scaling.GeometricalScaling.Head.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_Head =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Head' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder SkullSeg = {
#ifndef CUSTOM_SCALING_SkullSeg
AnyFunTransform3D &ScaleFunction = .Head.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_SkullSeg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'SkullSeg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder ThoraxSeg = {
#ifndef CUSTOM_SCALING_ThoraxSeg
AnyFunTransform3D &ScaleFunction = .Thorax.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_ThoraxSeg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'ThoraxSeg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder C1Seg = {
#ifndef CUSTOM_SCALING_C1Seg
AnyFunTransform3D &ScaleFunction = .Cervical.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_C1Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'C1Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder C2Seg = {
#ifndef CUSTOM_SCALING_C2Seg
AnyFunTransform3D &ScaleFunction = .Cervical.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_C2Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'C2Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder C3Seg = {
#ifndef CUSTOM_SCALING_C3Seg
AnyFunTransform3D &ScaleFunction = .Cervical.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_C3Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'C3Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder C4Seg = {
#ifndef CUSTOM_SCALING_C4Seg
AnyFunTransform3D &ScaleFunction = .Cervical.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_C4Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'C4Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder C5Seg = {
#ifndef CUSTOM_SCALING_C5Seg
AnyFunTransform3D &ScaleFunction = .Cervical.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_C5Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'C5Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder C6Seg = {
#ifndef CUSTOM_SCALING_C6Seg
AnyFunTransform3D &ScaleFunction = .Cervical.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_C6Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'C6Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder C7Seg = {
#ifndef CUSTOM_SCALING_C7Seg
AnyFunTransform3D &ScaleFunction = .Cervical.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_C7Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'C7Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Cervical = {
#ifndef CUSTOM_SCALING_Cervical
AnyFunTransform3D &ScaleFunction = ..Scaling.GeometricalScaling.Cervical.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_Cervical =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Cervical' group is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder L1Seg = {
#ifndef CUSTOM_SCALING_L1Seg
AnyFunTransform3D &ScaleFunction = .Lumbar.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_L1Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'L1Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder L2Seg = {
#ifndef CUSTOM_SCALING_L2Seg
AnyFunTransform3D &ScaleFunction = .Lumbar.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_L2Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'L2Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder L3Seg = {
#ifndef CUSTOM_SCALING_L3Seg
AnyFunTransform3D &ScaleFunction = .Lumbar.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_L3Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'L3Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder L4Seg = {
#ifndef CUSTOM_SCALING_L4Seg
AnyFunTransform3D &ScaleFunction = .Lumbar.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_L4Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'L4Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder L5Seg = {
#ifndef CUSTOM_SCALING_L5Seg
AnyFunTransform3D &ScaleFunction = .Lumbar.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_L5Seg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'L5Seg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder SacrumSeg = {
#ifndef CUSTOM_SCALING_SacrumSeg
AnyFunTransform3D &ScaleFunction = .PelvisSeg.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_SacrumSeg =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'SacrumSeg' segment is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
AnyFolder Lumbar = {
#ifndef CUSTOM_SCALING_Lumbar
AnyFunTransform3D &ScaleFunction = ..Scaling.GeometricalScaling.Lumbar.ScaleFunction;
#else
/// The rigid body transform from segmental to scaling reference frame
AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
AnyMessage scaling_message_Lumbar =
{
TriggerPreProcess = On;
Type = MSG_Warning;
Message = "Custom scaling for 'Lumbar' group is used! Please specify a scaling law should an 'Unresolved object' error occur";
};
#endif
};
};
};