[38ba34]: / Body / AAUHuman / Scaling / ScalingConfig.any

Download this file

781 lines (706 with data), 32.6 kB

/*

This file redirects all scaling functions to the functions defined i the scaling law provided by the user. 
This file also enables custom scaling by allowing the functions to be overridden.



*/

#ifndef SILENCE_CUSTOM_SCALING_MESSAGES
#define SILENCE_CUSTOM_SCALING_MESSAGES 0
#endif

AnyFolder Scaling = {
  
  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  = {
        
        #if BM_LEG_MODEL & (BM_FOOT_MODEL != _FOOT_MODEL_NONE_) & BM_LEG_RIGHT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Foot.Scale.T0;
        #endif
        
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Foot.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Foot' segment is enabled!";
          };
          #endif
        };
      };
      
      AnyFolder Talus = {
        #if BM_LEG_MODEL & (BM_FOOT_MODEL != _FOOT_MODEL_NONE_) & BM_LEG_RIGHT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Talus.Scale.T0;
        #endif
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Talus.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Talus' segment is enabled!";
          };
          #endif
        };
      };
      
      AnyFolder Patella = {
        #if BM_LEG_MODEL & BM_LEG_RIGHT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Patella.Scale.T0;
        #endif
        
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Patella.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Patella' segment is enabled!";
          };
          #endif
        };
      };
      
      AnyFolder Shank = {
        #if BM_LEG_MODEL & BM_LEG_RIGHT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Shank.Scale.T0;
        #endif
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Shank.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Shank' segment is enabled!";
          };
          #endif
        };
      };    
      
      AnyFolder Thigh = {
        #if BM_LEG_MODEL & BM_LEG_RIGHT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Right.Leg.Seg.Thigh.Scale.T0;
        #endif
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Thigh.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Thigh' segment is enabled!";
          };
          #endif
        };
      };
      
      AnyFolder Clavicula = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Clavicula.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Clavicula' segment is enabled!";
          };
          #endif
        };
      };
      
      AnyFolder Scapula = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Scapula.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Scapula' segment is enabled!";
          };
          #endif
        };
      };
      
      AnyFolder Humerus = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Humerus.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Humerus' segment is enabled!";
          };
          #endif
        };
      };
      
      AnyFolder Ulna = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Ulna.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Ulna' segment is enabled!";
          };
          #endif
        };
      };
      
      AnyFolder Radius = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Radius.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Radius' segment is enabled!";
          };
          #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
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Right.Hand.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Right.Hand' segment is enabled!";
          };
          #endif
        };        
      };
      
    };//Right
    
    AnyFolder Left = {
      AnyFolder Foot  = {
        #if BM_LEG_MODEL & (BM_FOOT_MODEL != _FOOT_MODEL_NONE_) & BM_LEG_LEFT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Foot.Scale.T0;
        #endif
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Foot.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Foot' segment is enabled!";
          };
          #endif
        };        
      };
      AnyFolder Talus  = {
        #if BM_LEG_MODEL & (BM_FOOT_MODEL != _FOOT_MODEL_NONE_) & BM_LEG_LEFT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Talus.Scale.T0;
        #endif
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Talus.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Talus' segment is enabled!";
          };
          #endif
        }; 
      };
      AnyFolder Patella = {
        #if BM_LEG_MODEL & BM_LEG_LEFT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Patella.Scale.T0;
        #endif
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Patella.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Patella' segment is enabled!";
          };
          #endif
        }; 
      };
      
      AnyFolder Shank = {
        #if BM_LEG_MODEL & BM_LEG_LEFT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Shank.Scale.T0;
        #endif
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Shank.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Shank' segment is enabled!";
          };
          #endif
        }; 
      };        
      AnyFolder Thigh = {
        #if BM_LEG_MODEL & BM_LEG_LEFT & (BM_LEG_MODEL != _LEG_MODEL_LEG_)
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3D &TSeg2ScaleFrame = ....BodyModel.Left.Leg.Seg.Thigh.Scale.T0;
        #endif
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Thigh.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Thigh' segment is enabled!";
          };
          #endif
        }; 
      };
      
      
      AnyFolder Clavicula = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Clavicula.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Clavicula' segment is enabled!";
          };
          #endif
        }; 
      };
      
      AnyFolder Scapula = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Scapula.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Scapula' segment is enabled!";
          };
          #endif
        }; 
      };
      
      AnyFolder Humerus = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Humerus.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Humerus' segment is enabled!";
          };
          #endif
        }; 
      };
      
      AnyFolder Ulna = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Ulna.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Ulna' segment is enabled!";
          };
          #endif
        }; 
      };
      
      AnyFolder Radius = {
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Radius.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Radius' segment is enabled!";
          };
          #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
        
        /// The rigid body transform from segmental to scaling reference frame
        AnyFunTransform3DIdentity TSeg2ScaleFrame = {};
        AnyFunTransform3D ScaleFunction = {
          AnyObjectPtr Default = &.....ScalingLaw.GeometricalScaling.Left.Hand.ScaleFunction;
          AnyObjectPtr Custom ??= Default;
          PreTransforms = {Custom};
          #if !SILENCE_CUSTOM_SCALING_MESSAGES
          AnyMessage custom_scaling_notice = {
            TriggerConst = neqfun(.Default, .PreTransforms[0]);
            Message = "Custom scaling for 'Left.Hand' segment is enabled!";
          };
          #endif
        }; 
      };
      
    };//Left
    
    
    
    // Common law for the upper body
    // *****************************
    
    AnyFolder PelvisSeg = {
      #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
        };
      };
      #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
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &....ScalingLaw.GeometricalScaling.Pelvis.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'Pelvis' segment is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder Thorax = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &....ScalingLaw.GeometricalScaling.Thorax.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'Thorax' group is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder Head = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &....ScalingLaw.GeometricalScaling.Head.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'Head' group is enabled!";
        };
        #endif
      }; 
    };
    
    
    AnyFolder SkullSeg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Head.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'SkullSeg' segment is enabled!";
        };
        #endif
      }; 
    };

    AnyFolder ThoraxSeg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Thorax.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'ThoraxSeg' segment is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder C1Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Cervical.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'C1Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder C2Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Cervical.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'C2Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder C3Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Cervical.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'C3Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder C4Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Cervical.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'C4Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder C5Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Cervical.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'C5Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    AnyFolder C6Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Cervical.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'C6Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    AnyFolder C7Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Cervical.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'C7Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    AnyFolder Cervical = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &...Scaling.GeometricalScaling.Cervical.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'Cervical' group is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder L1Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Lumbar.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'L1Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder L2Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Lumbar.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'L2Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder L3Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Lumbar.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'L3Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    AnyFolder L4Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Lumbar.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'L4Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    AnyFolder L5Seg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Default = &..Lumbar.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'L5Seg' segment is enabled!";
        };
        #endif
      }; 
    };
    AnyFolder SacrumSeg = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyObjectPtr Custom ??= Default;
        AnyObjectPtr Default = &..PelvisSeg.ScaleFunction;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'SacrumSeg' segment is enabled!";
        };
        #endif
      }; 
    };
    
    AnyFolder Lumbar = {
      /// The rigid body transform from segmental to scaling reference frame
      AnyFunTransform3DIdentity& TSeg2ScaleFrame = .PelvisSeg.TSeg2ScaleFrame;
      AnyFunTransform3D ScaleFunction = {
        AnyMat33 ScaleMat = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction.ScaleMat; ///< This is needed because the old buckle implementation expects this
        AnyObjectPtr Default = &...Scaling.GeometricalScaling.Lumbar.ScaleFunction;
        AnyObjectPtr Custom ??= Default;
        PreTransforms = {Custom};
        #if !SILENCE_CUSTOM_SCALING_MESSAGES
        AnyMessage custom_scaling_notice = {
           TriggerConst = neqfun(.Default, .PreTransforms[0]);
           Message = "Custom scaling for 'Lumbar' group is enabled!";
        };
        #endif
      }; 
      
    };
    
  };
  
};