[bfdf16]: / Body / AAUHuman / Trunk / SegmentsCervicalSpine.any

Download this file

567 lines (426 with data), 29.8 kB

/// Definition of the cervical spine
AnyFolder SegmentsCervicalSpine = {

  #include "SkullSeg.any"  
  
  AnySeg C1Seg = {

	AnyFolder &StdPar = ..ModelParameters.C1;    

    r0= .C2Seg.C2C1JntNode.sRel*.C2Seg.Axes0'+.C2Seg.r0-C2C1JntNode.sRel*Axes0';

    AnyVar MassS = ..Scaling.MassScaling.Cervical.MassScale;    
    AnyVar MassStandard = ..StandardParameters.CervicalSpine.Mass*0.135;
    
    Mass = MassS*MassStandard;           
    Jii = StdPar.Jii;

    // This file includes the trunk specifc scaling function
    // and anatomical reference system
    AnyFunTransform3D &GeomScale = ..Scaling.GeometricalScaling.C1Seg.ScaleFunction;
    #include "TrunkScalingAndAnatomicalFrame.any"

    sCoM = Scale(StdPar.sCoM_pos);
    JaboutCoMOnOff = On;
    
    AnyRefNode MoCapMarkerFrameAMMR24 = {}; ///< For backwards Compatibility with AMMR 2.4 MoCap Marker protocols
	
    AnyRefNode C2C1JntNode = {sRel = .Scale(.StdPar.C2C1JntNode_pos);};        
    AnyRefNode C1C0JntNode = {
      sRel = .Scale(.StdPar.C1C0JntNode_pos);
      AnyDrawNodes DrwNode = {Visible ??=..DrwSTL.Visible; ScaleXYZ = 0.003*{1,1,1};RGB = {1, 0, 0};};
      // Rotated node with x axis aligned with the superior articular facet
      AnyRefNode RotNode = {
        ARel = RotMat(0.25*(..SuperiorArticularFacetAnteriorNodeR.sRel + ..SuperiorArticularFacetPosteriorNodeR.sRel + ..SuperiorArticularFacetAnteriorNodeL.sRel + ..SuperiorArticularFacetPosteriorNodeL.sRel),
                      0.5*(..SuperiorArticularFacetAnteriorNodeR.sRel + ..SuperiorArticularFacetAnteriorNodeL.sRel),
                      0.25*(..SuperiorArticularFacetAnteriorNodeR.sRel + ..SuperiorArticularFacetPosteriorNodeR.sRel + ..SuperiorArticularFacetAnteriorNodeL.sRel + ..SuperiorArticularFacetPosteriorNodeL.sRel)
                      + (..SuperiorArticularFacetAnteriorNodeL.sRel - ..SuperiorArticularFacetAnteriorNodeR.sRel))*RotMat(pi/2,x);
      };
    };        
    
    // Nodes at the superior articular facet
    AnyRefNode SuperiorArticularFacetAnteriorNodeR = {sRel = .Scale(.StdPar.Right.SuperiorArticularFacetAnteriorNode_pos);};
    AnyRefNode SuperiorArticularFacetPosteriorNodeR = {sRel = .Scale(.StdPar.Right.SuperiorArticularFacetPosteriorNode_pos);};
    AnyRefNode SuperiorArticularFacetAnteriorNodeL = {sRel = .Scale(.StdPar.Left.SuperiorArticularFacetAnteriorNode_pos);};
    AnyRefNode SuperiorArticularFacetPosteriorNodeL = {sRel = .Scale(.StdPar.Left.SuperiorArticularFacetPosteriorNode_pos);};

    //Longus colli nodes
    AnyRefNode LongusColliT1C1NodeR = {sRel = .Scale(.StdPar.Right.LongusColliT1C1Node_pos);};
    AnyRefNode LongusColliT1C1NodeL = {sRel = .Scale(.StdPar.Left.LongusColliT1C1Node_pos);};
    
    //Splenius cervicis nodes
    AnyRefNode SpleniusCervicisT3C1NodeR = {sRel = .Scale(.StdPar.Right.SpleniusCervicisT3C1Node_pos);};
    AnyRefNode SpleniusCervicisT3C1NodeL = {sRel = .Scale(.StdPar.Left.SpleniusCervicisT3C1Node_pos);};
    
    AnyDrawSurf DrwSTL = {
      FileName = ...STL.FilenameC1Seg;
      RGB = ...ColorRef.Segments;
      Opacity = Main.DrawSettings.BonesOpacity.C1;
      AnyFunTransform3D &Scale =.Scale;
    };
    AnyRefNode Right ={};
    AnyRefNode Left ={};
    
  };
  
  AnySeg C2Seg = {
    
    AnyFolder &StdPar = ..ModelParameters.C2;    
	
    r0= .C3Seg.C3C2JntNode.sRel*.C3Seg.Axes0'+.C3Seg.r0-C3C2JntNode.sRel*Axes0';

    // This file includes the trunk specifc scaling function
    // and anatomical reference system
    AnyFunTransform3D &GeomScale = ..Scaling.GeometricalScaling.C2Seg.ScaleFunction;
    #include "TrunkScalingAndAnatomicalFrame.any"
    
    AnyVar MassS = ..Scaling.MassScaling.Cervical.MassScale;
    
    AnyVar MassStandard = ..StandardParameters.CervicalSpine.Mass*0.153;
    
    Mass = MassS*MassStandard;           
	
    Jii = StdPar.Jii;    
    sCoM = Scale(StdPar.sCoM_pos);
	
    JaboutCoMOnOff = On;
    
    AnyRefNode MoCapMarkerFrameAMMR24 = {}; ///< For backwards Compatibility with AMMR 2.4 MoCap Marker protocols
    
    AnyRefNode C3C2JntNode = {sRel = .Scale(.StdPar.C3C2JntNode_pos);};        
    AnyRefNode C2C1JntNode = {
      sRel = .Scale(.StdPar.C2C1JntNode_pos);
      AnyDrawNodes DrwNode = {Visible ??=..DrwSTL.Visible; ScaleXYZ = 0.003*{1,1,1};RGB = {1, 0, 0};};
      // Rotated node with x axis aligned with the superior articular facet
      AnyRefNode RotNode = {
        ARel = RotMat(0.25*(..SuperiorArticularFacetAnteriorNodeR.sRel + ..SuperiorArticularFacetPosteriorNodeR.sRel + ..SuperiorArticularFacetAnteriorNodeL.sRel + ..SuperiorArticularFacetPosteriorNodeL.sRel),
                      0.5*(..SuperiorArticularFacetAnteriorNodeR.sRel + ..SuperiorArticularFacetAnteriorNodeL.sRel),
                      0.25*(..SuperiorArticularFacetAnteriorNodeR.sRel + ..SuperiorArticularFacetPosteriorNodeR.sRel + ..SuperiorArticularFacetAnteriorNodeL.sRel + ..SuperiorArticularFacetPosteriorNodeL.sRel)
                      + (..SuperiorArticularFacetAnteriorNodeL.sRel - ..SuperiorArticularFacetAnteriorNodeR.sRel))*RotMat(pi/2,x);
      };
    };        
	    
    // Nodes at the superior articular facet
    AnyRefNode SuperiorArticularFacetAnteriorNodeR = {sRel = .Scale(.StdPar.Right.SuperiorArticularFacetAnteriorNode_pos);};
    AnyRefNode SuperiorArticularFacetPosteriorNodeR = {sRel = .Scale(.StdPar.Right.SuperiorArticularFacetPosteriorNode_pos);};
    AnyRefNode SuperiorArticularFacetAnteriorNodeL = {sRel = .Scale(.StdPar.Left.SuperiorArticularFacetAnteriorNode_pos);};
    AnyRefNode SuperiorArticularFacetPosteriorNodeL = {sRel = .Scale(.StdPar.Left.SuperiorArticularFacetPosteriorNode_pos);};

    //Longus colli nodes
    AnyRefNode LongusColliT1C2NodeR = {sRel = .Scale(.StdPar.Right.LongusColliT1C2Node_pos);};
    AnyRefNode LongusColliT1C2NodeL = {sRel = .Scale(.StdPar.Left.LongusColliT1C2Node_pos);};
    
    //Splenius cervicis nodes
    AnyRefNode SpleniusCervicisT3C2NodeR = {sRel = .Scale(.StdPar.Right.SpleniusCervicisT3C2Node_pos);};
    AnyRefNode SpleniusCervicisT3C2NodeL = {sRel = .Scale(.StdPar.Left.SpleniusCervicisT3C2Node_pos);};
    
    //Semispinalis cervicis nodes
    AnyRefNode SemispinalisCervicisT1C2NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCervicisT1C2Node_pos);};
    AnyRefNode SemispinalisCervicisT1C2NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCervicisT1C2Node_pos);};
    
    //Longissimus cervicis nodes
    AnyRefNode LongissimusCervicisT2C2NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCervicisT2C2Node_pos);};
    AnyRefNode LongissimusCervicisT2C2NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCervicisT2C2Node_pos);};
    
    //Multifidus cervicis nodes
    AnyRefNode MultifidusCervicisC2NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC2Node_pos);};
    AnyRefNode MultifidusCervicisC2NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC2Node_pos);};
    
    AnyDrawSurf DrwSTL = {
      FileName = ...STL.FilenameC2Seg;
      RGB = ...ColorRef.Segments;
      Opacity = Main.DrawSettings.BonesOpacity.C2;
      AnyFunTransform3D &Scale =.Scale;
    };
    AnyRefNode Right ={};
    AnyRefNode Left ={};
  };    

  
  AnySeg C3Seg = {

	AnyFolder &StdPar = ..ModelParameters.C3;    
    
    r0= .C4Seg.C4C3JntNode.sRel*.C4Seg.Axes0'+.C4Seg.r0-C4C3JntNode.sRel*Axes0';

    AnyVar MassS = ..Scaling.MassScaling.Cervical.MassScale;    
    AnyVar MassStandard = ..StandardParameters.CervicalSpine.Mass*0.147;
    
	  // This file includes the trunk specifc scaling function
    // and anatomical reference system
    AnyFunTransform3D &GeomScale = ..Scaling.GeometricalScaling.C3Seg.ScaleFunction;
    #include "TrunkScalingAndAnatomicalFrame.any"
    
    Mass = MassS*MassStandard;           

    Jii = StdPar.Jii;    
    sCoM = Scale(StdPar.sCoM_pos);
    
    JaboutCoMOnOff = On;
	
    AnyRefNode MoCapMarkerFrameAMMR24 = {}; ///< For backwards Compatibility with AMMR 2.4 MoCap Marker protocols
    
    AnyRefNode C4C3JntNode = {sRel = .Scale(.StdPar.C4C3JntNode_pos);};        
    AnyRefNode C3C2JntNode = {
      sRel = .Scale(.StdPar.C3C2JntNode_pos);
      AnyDrawNodes DrwNode = {Visible ??=..DrwSTL.Visible; ScaleXYZ = 0.003*{1,1,1};RGB = {1, 0, 0};};
      // Rotated node with x axis parallel to the superior endplate surface
      AnyRefNode RotNode = {
        ARel = RotMat(0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel),
                      ..SuperiorEndplateAnteriorNode.sRel,
                      0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel) + (..UncinateProcessNodeL.sRel - ..UncinateProcessNodeR.sRel))*RotMat(pi/2,x);
      };      
    };        
    
    // Nodes at the anterior and posterior points on the superior endplate
    AnyRefNode SuperiorEndplateAnteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplateAnteriorNode_pos);};
    AnyRefNode SuperiorEndplatePosteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplatePosteriorNode_pos);};
    
    // Nodes at the right and left points on the superior endplate
    AnyRefNode UncinateProcessNodeR = {sRel = .Scale(.StdPar.Right.UncinateProcessNode_pos);};
    AnyRefNode UncinateProcessNodeL = {sRel = .Scale(.StdPar.Left.UncinateProcessNode_pos);};

    //Longus colli nodes
    AnyRefNode LongusColliT1C3NodeR = {sRel = .Scale(.StdPar.Right.LongusColliT1C3Node_pos);};
    AnyRefNode LongusColliT1C3NodeL = {sRel = .Scale(.StdPar.Left.LongusColliT1C3Node_pos);};
    
    //Longus cappitis nodes
    AnyRefNode LongusCapitisC3C0NodeR = {sRel = .Scale(.StdPar.Right.LongusCapitisC3C0Node_pos);};
    AnyRefNode LongusCapitisC3C0NodeL = {sRel = .Scale(.StdPar.Left.LongusCapitisC3C0Node_pos);};
    
    //Scalenus medius nodes
    AnyRefNode ScalenusMediusT1C3NodeR = {sRel = .Scale(.StdPar.Right.ScalenusMediusT1C3Node_pos);};
    AnyRefNode ScalenusMediusT1C3NodeL = {sRel = .Scale(.StdPar.Left.ScalenusMediusT1C3Node_pos);};
    
    //Splenius cervicis nodes
    AnyRefNode SpleniusCervicisT3C3NodeR = {sRel = .Scale(.StdPar.Right.SpleniusCervicisT3C3Node_pos);};
    AnyRefNode SpleniusCervicisT3C3NodeL = {sRel = .Scale(.StdPar.Left.SpleniusCervicisT3C3Node_pos);};
    
    //Semispinalis cervicis nodes
    AnyRefNode SemispinalisCervicisT2C3NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCervicisT2C3Node_pos);};
    AnyRefNode SemispinalisCervicisT2C3NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCervicisT2C3Node_pos);};
    
    //Longissimus capitis nodes
    AnyRefNode LongissimusCapitisC3C0NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCapitisC3C0Node_pos);};
    AnyRefNode LongissimusCapitisC3C0NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCapitisC3C0Node_pos);};
    
    //Longissimus cervicis nodes
    AnyRefNode LongissimusCervicisT2C3NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCervicisT2C3Node_pos);};
    AnyRefNode LongissimusCervicisT2C3NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCervicisT2C3Node_pos);};
    
    //Multifidus cervicis nodes
    AnyRefNode MultifidusCervicisC3NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC3Node_pos);};
    AnyRefNode MultifidusCervicisC3NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC3Node_pos);};
    
    AnyDrawSurf DrwSTL = {
      FileName = ...STL.FilenameC3Seg;
      RGB = ...ColorRef.Segments;
      Opacity = Main.DrawSettings.BonesOpacity.C3;
      AnyFunTransform3D &Scale =.Scale;
    };
    AnyRefNode Right ={};
    AnyRefNode Left ={};
  };
  
  AnySeg C4Seg = {
  
    AnyFolder &StdPar = ..ModelParameters.C4;    

    r0= .C5Seg.C5C4JntNode.sRel*.C5Seg.Axes0'+.C5Seg.r0-C5C4JntNode.sRel*Axes0';    
    
    AnyVar MassS = ..Scaling.MassScaling.Cervical.MassScale;    
    AnyVar MassStandard = ..StandardParameters.CervicalSpine.Mass*0.141;
    
    Mass = MassS*MassStandard;           
	
    // This file includes the trunk specifc scaling function
    // and anatomical reference system
    AnyFunTransform3D &GeomScale = ..Scaling.GeometricalScaling.C4Seg.ScaleFunction;
    #include "TrunkScalingAndAnatomicalFrame.any"
    
    Jii = StdPar.Jii;    
    sCoM = Scale(StdPar.sCoM_pos);
    
    JaboutCoMOnOff = On;
	
    AnyRefNode MoCapMarkerFrameAMMR24 = {}; ///< For backwards Compatibility with AMMR 2.4 MoCap Marker protocols
    
    AnyRefNode C5C4JntNode = {sRel = .Scale(.StdPar.C5C4JntNode_pos);};        
    AnyRefNode C4C3JntNode = {
      sRel = .Scale(.StdPar.C4C3JntNode_pos);
      AnyDrawNodes DrwNode = {Visible ??=..DrwSTL.Visible; ScaleXYZ = 0.003*{1,1,1};RGB = {1, 0, 0};};
      // Rotated node with x axis parallel to the superior endplate surface
      AnyRefNode RotNode = {
        ARel = RotMat(0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel),
                      ..SuperiorEndplateAnteriorNode.sRel,
                      0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel) + (..UncinateProcessNodeL.sRel - ..UncinateProcessNodeR.sRel))*RotMat(pi/2,x);
      };
    };        
    
    // Nodes at the anterior and posterior points on the superior endplate
    AnyRefNode SuperiorEndplateAnteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplateAnteriorNode_pos);};
    AnyRefNode SuperiorEndplatePosteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplatePosteriorNode_pos);};
    
    // Nodes at the right and left points on the superior endplate
    AnyRefNode UncinateProcessNodeR = {sRel = .Scale(.StdPar.Right.UncinateProcessNode_pos);};
    AnyRefNode UncinateProcessNodeL = {sRel = .Scale(.StdPar.Left.UncinateProcessNode_pos);};

    //Longus colli nodes
    AnyRefNode LongusColliT1C4NodeR = {sRel = .Scale(.StdPar.Right.LongusColliT1C4Node_pos);};
    AnyRefNode LongusColliT1C4NodeL = {sRel = .Scale(.StdPar.Left.LongusColliT1C4Node_pos);};
    
    //Longus cappitis nodes
    AnyRefNode LongusCapitisC4C0NodeR = {sRel = .Scale(.StdPar.Right.LongusCapitisC4C0Node_pos);};
    AnyRefNode LongusCapitisC4C0NodeL = {sRel = .Scale(.StdPar.Left.LongusCapitisC4C0Node_pos);};
    
    //Scalenus anterior nodes
    AnyRefNode ScalenusAnteriorT1C4NodeR = {sRel = .Scale(.StdPar.Right.ScalenusAnteriorT1C4Node_pos);};
    AnyRefNode ScalenusAnteriorT1C4NodeL = {sRel = .Scale(.StdPar.Left.ScalenusAnteriorT1C4Node_pos);};
    
    //Semispinalis capitis nodes
    AnyRefNode SemispinalisCapitisC4C0NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCapitisC4C0Node_pos);};
    AnyRefNode SemispinalisCapitisC4C0NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCapitisC4C0Node_pos);};
    
    //Semispinalis cervicis nodes
    AnyRefNode SemispinalisCervicisT3C4NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCervicisT3C4Node_pos);};
    AnyRefNode SemispinalisCervicisT3C4NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCervicisT3C4Node_pos);};
    
    //Longissimus capitis nodes
    AnyRefNode LongissimusCapitisC4C0NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCapitisC4C0Node_pos);};
    AnyRefNode LongissimusCapitisC4C0NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCapitisC4C0Node_pos);};
    
    //Longissimus cervicis nodes
    AnyRefNode LongissimusCervicisT2C4NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCervicisT2C4Node_pos);};
    AnyRefNode LongissimusCervicisT2C4NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCervicisT2C4Node_pos);};
    
    //Multifidus cervicis nodes
    AnyRefNode MultifidusCervicisC4NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC4Node_pos);};
    AnyRefNode MultifidusCervicisC4NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC4Node_pos);};
    
    AnyDrawSurf DrwSTL = {
      FileName = ...STL.FilenameC4Seg;
      RGB = ...ColorRef.Segments;
      Opacity = Main.DrawSettings.BonesOpacity.C4;
      AnyFunTransform3D &Scale =.Scale;
    };
    AnyRefNode Right ={};
	AnyRefNode Left ={};
  };
  
  AnySeg C5Seg = {

    AnyFolder &StdPar = ..ModelParameters.C5;    
    
    r0= .C6Seg.C6C5JntNode.sRel*.C6Seg.Axes0'+.C6Seg.r0-C6C5JntNode.sRel*Axes0';

    AnyVar MassS = ..Scaling.MassScaling.Cervical.MassScale;    
    AnyVar MassStandard = ..StandardParameters.CervicalSpine.Mass*0.141;
    
    Mass = MassS*MassStandard;           
	
    // This file includes the trunk specifc scaling function
    // and anatomical reference system
    AnyFunTransform3D &GeomScale = ..Scaling.GeometricalScaling.C5Seg.ScaleFunction;
    #include "TrunkScalingAndAnatomicalFrame.any"
    
    Jii = StdPar.Jii;    
    sCoM = Scale(StdPar.sCoM_pos);
    
    JaboutCoMOnOff = On;
    
    AnyRefNode MoCapMarkerFrameAMMR24 = {}; ///< For backwards Compatibility with AMMR 2.4 MoCap Marker protocols
	
    AnyRefNode C6C5JntNode = {sRel = .Scale(.StdPar.C6C5JntNode_pos);};        
    AnyRefNode C5C4JntNode = {
      sRel = .Scale(.StdPar.C5C4JntNode_pos);
      AnyDrawNodes DrwNode = {Visible ??=..DrwSTL.Visible; ScaleXYZ = 0.003*{1,1,1};RGB = {1, 0, 0};};
      // Rotated node with x axis parallel to the superior endplate surface
      AnyRefNode RotNode = {
        ARel = RotMat(0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel),
                      ..SuperiorEndplateAnteriorNode.sRel,
                      0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel) + (..UncinateProcessNodeL.sRel - ..UncinateProcessNodeR.sRel))*RotMat(pi/2,x);
      };
    };        
    
    // Nodes at the anterior and posterior points on the superior endplate
    AnyRefNode SuperiorEndplateAnteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplateAnteriorNode_pos);};
    AnyRefNode SuperiorEndplatePosteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplatePosteriorNode_pos);};
    
    // Nodes at the right and left points on the superior endplate
    AnyRefNode UncinateProcessNodeR = {sRel = .Scale(.StdPar.Right.UncinateProcessNode_pos);};
    AnyRefNode UncinateProcessNodeL = {sRel = .Scale(.StdPar.Left.UncinateProcessNode_pos);};

    //Longus colli nodes
    AnyRefNode LongusColliT1C5NodeR = {sRel = .Scale(.StdPar.Right.LongusColliT1C5Node_pos);};
    AnyRefNode LongusColliT1C5NodeL = {sRel = .Scale(.StdPar.Left.LongusColliT1C5Node_pos);};
    
    //Longus cappitis nodes
    AnyRefNode LongusCapitisC5C0NodeR = {sRel = .Scale(.StdPar.Right.LongusCapitisC5C0Node_pos);};
    AnyRefNode LongusCapitisC5C0NodeL = {sRel = .Scale(.StdPar.Left.LongusCapitisC5C0Node_pos);};
    
    //Scalenus Posterior nodes
    AnyRefNode ScalenusPosteriorT1C5NodeR = {sRel = .Scale(.StdPar.Right.ScalenusPosteriorT1C5Node_pos);};
    AnyRefNode ScalenusPosteriorT1C5NodeL = {sRel = .Scale(.StdPar.Left.ScalenusPosteriorT1C5Node_pos);};
    
    //Semispinalis capitis nodes
    AnyRefNode SemispinalisCapitisC5C0NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCapitisC5C0Node_pos);};
    AnyRefNode SemispinalisCapitisC5C0NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCapitisC5C0Node_pos);};
    
    //Semispinalis cervicis nodes
    AnyRefNode SemispinalisCervicisT4C5NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCervicisT4C5Node_pos);};
    AnyRefNode SemispinalisCervicisT4C5NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCervicisT4C5Node_pos);};
    
    //Longissimus capitis nodes
    AnyRefNode LongissimusCapitisC5C0NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCapitisC5C0Node_pos);};
    AnyRefNode LongissimusCapitisC5C0NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCapitisC5C0Node_pos);};
    
    //Longissimus cervicis nodes
    AnyRefNode LongissimusCervicisT2C5NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCervicisT2C5Node_pos);};
    AnyRefNode LongissimusCervicisT2C5NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCervicisT2C5Node_pos);};
    
    //Multifidus cervicis nodes
    AnyRefNode MultifidusCervicisC5C2NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC5C2Node_pos);};
    AnyRefNode MultifidusCervicisC5C2NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC5C2Node_pos);};
    
    AnyRefNode MultifidusCervicisC5NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC5Node_pos);};
    AnyRefNode MultifidusCervicisC5NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC5Node_pos);};
    
    AnyDrawSurf DrwSTL = {
      FileName = ...STL.FilenameC5Seg;
      RGB = ...ColorRef.Segments;
      Opacity = Main.DrawSettings.BonesOpacity.C5;
      AnyFunTransform3D &Scale =.Scale;
    };
    AnyRefNode Right ={};
    AnyRefNode Left ={};
  };
  
  AnySeg C6Seg = {

	AnyFolder &StdPar = ..ModelParameters.C6;    

    r0= .C7Seg.C7C6JntNode.sRel*.C7Seg.Axes0'+.C7Seg.r0-C7C6JntNode.sRel*Axes0';

    AnyVar MassS = ..Scaling.MassScaling.Cervical.MassScale;    
    AnyVar MassStandard = ..StandardParameters.CervicalSpine.Mass*0.147;
    
    Mass = MassS*MassStandard;           

    // This file includes the trunk specifc scaling function
    // and anatomical reference system
    AnyFunTransform3D &GeomScale = ..Scaling.GeometricalScaling.C6Seg.ScaleFunction;
    #include "TrunkScalingAndAnatomicalFrame.any"
    	
    Jii = StdPar.Jii;    
    sCoM = Scale(StdPar.sCoM_pos);
    
    JaboutCoMOnOff = On;
	
    AnyRefNode MoCapMarkerFrameAMMR24 = {}; ///< For backwards Compatibility with AMMR 2.4 MoCap Marker protocols
    
    AnyRefNode C7C6JntNode = {sRel = .Scale(.StdPar.C7C6JntNode_pos);};        
    AnyRefNode C6C5JntNode = {
      sRel = .Scale(.StdPar.C6C5JntNode_pos);
      AnyDrawNodes DrwNode = {Visible ??=..DrwSTL.Visible; ScaleXYZ = 0.003*{1,1,1};RGB = {1, 0, 0};};
      // Rotated node with x axis parallel to the superior endplate surface
      AnyRefNode RotNode = {
        ARel = RotMat(0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel),
                      ..SuperiorEndplateAnteriorNode.sRel,
                      0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel) + (..UncinateProcessNodeL.sRel - ..UncinateProcessNodeR.sRel))*RotMat(pi/2,x);
      };
    };        
    
    // Nodes at the anterior and posterior points on the superior endplate
    AnyRefNode SuperiorEndplateAnteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplateAnteriorNode_pos);};
    AnyRefNode SuperiorEndplatePosteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplatePosteriorNode_pos);};
    
    // Nodes at the right and left points on the superior endplate
    AnyRefNode UncinateProcessNodeR = {sRel = .Scale(.StdPar.Right.UncinateProcessNode_pos);};
    AnyRefNode UncinateProcessNodeL = {sRel = .Scale(.StdPar.Left.UncinateProcessNode_pos);};

    //Longus colli nodes
    AnyRefNode LongusColliT1C6NodeR = {sRel = .Scale(.StdPar.Right.LongusColliT1C6Node_pos);};
    AnyRefNode LongusColliT1C6NodeL = {sRel = .Scale(.StdPar.Left.LongusColliT1C6Node_pos);};
    
    //Longus cappitis nodes
    AnyRefNode LongusCapitisC6C0NodeR = {sRel = .Scale(.StdPar.Right.LongusCapitisC6C0Node_pos);};
    AnyRefNode LongusCapitisC6C0NodeL = {sRel = .Scale(.StdPar.Left.LongusCapitisC6C0Node_pos);};
    
    //Semispinalis capitis nodes
    AnyRefNode SemispinalisCapitisC6C0NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCapitisC6C0Node_pos);};
    AnyRefNode SemispinalisCapitisC6C0NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCapitisC6C0Node_pos);};
    
    //Semispinalis cervicis nodes
    AnyRefNode SemispinalisCervicisT5C6NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCervicisT5C6Node_pos);};
    AnyRefNode SemispinalisCervicisT5C6NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCervicisT5C6Node_pos);};
    
    //Longissimus capitis nodes
    AnyRefNode LongissimusCapitisC6C0NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCapitisC6C0Node_pos);};
    AnyRefNode LongissimusCapitisC6C0NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCapitisC6C0Node_pos);};
    
    //Longissimus cervicis nodes
    AnyRefNode LongissimusCervicisT2C6NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCervicisT2C6Node_pos);};
    AnyRefNode LongissimusCervicisT2C6NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCervicisT2C6Node_pos);};
    
    //Multifidus cervicis nodes
    AnyRefNode MultifidusCervicisC6C2NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC6C2Node_pos);};
    AnyRefNode MultifidusCervicisC6C2NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC6C2Node_pos);};
    
    AnyRefNode MultifidusCervicisC6C3NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC6C3Node_pos);};
    AnyRefNode MultifidusCervicisC6C3NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC6C3Node_pos);};
    
    AnyRefNode MultifidusCervicisC6NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC6Node_pos);};
    AnyRefNode MultifidusCervicisC6NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC6Node_pos);};
    
    AnyDrawSurf DrwSTL = {
      FileName = ...STL.FilenameC6Seg;
      RGB = ...ColorRef.Segments;
      Opacity = Main.DrawSettings.BonesOpacity.C6;
      AnyFunTransform3D &Scale =.Scale;
    };
	AnyRefNode Right ={};
	AnyRefNode Left ={};
  };
  
  AnySeg C7Seg = {

    AnyFolder &StdPar = ..ModelParameters.C7;    
   
    r0= ..SegmentsThorax.T1Seg.T1C7JntNode.sRel*..SegmentsThorax.T1Seg.Axes0'+..SegmentsThorax.T1Seg.r0-T1C7JntNode.sRel*Axes0';
    
    AnyVar MassS = ..Scaling.MassScaling.Cervical.MassScale;    
    AnyVar MassStandard = ..StandardParameters.CervicalSpine.Mass*0.135;
    
    Mass = MassS*MassStandard;           
	
    // This file includes the trunk specifc scaling function
    // and anatomical reference system
    AnyFunTransform3D &GeomScale = ..Scaling.GeometricalScaling.C7Seg.ScaleFunction;
    #include "TrunkScalingAndAnatomicalFrame.any"
    
    Jii = StdPar.Jii;    
    sCoM = Scale(StdPar.sCoM_pos);
    
    JaboutCoMOnOff = On;
	
    AnyRefNode MoCapMarkerFrameAMMR24 = {}; ///< For backwards Compatibility with AMMR 2.4 MoCap Marker protocols
    
    AnyRefNode T1C7JntNode = {sRel = .Scale(.StdPar.T1C7JntNode_pos);};        
    AnyRefNode C7C6JntNode = {
      sRel = .Scale(.StdPar.C7C6JntNode_pos);
      AnyDrawNodes DrwNode = {Visible ??=..DrwSTL.Visible; ScaleXYZ = 0.003*{1,1,1};RGB = {1, 0, 0};};
      // Rotated node with x axis parallel to the superior endplate surface
      AnyRefNode RotNode = {
        ARel = RotMat(0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel),
                      ..SuperiorEndplateAnteriorNode.sRel,
                      0.5*(..SuperiorEndplateAnteriorNode.sRel + ..SuperiorEndplatePosteriorNode.sRel) + (..SuperiorEndplateNodeL.sRel - ..SuperiorEndplateNodeR.sRel))*RotMat(pi/2,x);
      };
    };        

    // Nodes at the anterior and posterior points on the superior endplate
    AnyRefNode SuperiorEndplateAnteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplateAnteriorNode_pos);};
    AnyRefNode SuperiorEndplatePosteriorNode = {sRel = .Scale(.StdPar.SuperiorEndplatePosteriorNode_pos);};
    
    // Nodes at the right and left points on the superior endplate
    AnyRefNode SuperiorEndplateNodeR = {sRel = .Scale(.StdPar.Right.SuperiorEndplateNode_pos);};
    AnyRefNode SuperiorEndplateNodeL = {sRel = .Scale(.StdPar.Left.SuperiorEndplateNode_pos);};

    //Splenius capitis nodes
    AnyRefNode SpleniusCapitisC7C0NodeR = {sRel = .Scale(.StdPar.Right.SpleniusCapitisC7C0Node_pos);};
    AnyRefNode SpleniusCapitisC7C0NodeL = {sRel = .Scale(.StdPar.Left.SpleniusCapitisC7C0Node_pos);};
    
    //Semispinalis capitis nodes
    AnyRefNode SemispinalisCapitisC7C0NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCapitisC7C0Node_pos);};
    AnyRefNode SemispinalisCapitisC7C0NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCapitisC7C0Node_pos);};
    
    //Semispinalis cervicis nodes
    AnyRefNode SemispinalisCervicisT6C7NodeR = {sRel = .Scale(.StdPar.Right.SemispinalisCervicisT6C7Node_pos);};
    AnyRefNode SemispinalisCervicisT6C7NodeL = {sRel = .Scale(.StdPar.Left.SemispinalisCervicisT6C7Node_pos);};
    
    //Longissimus capitis nodes
    AnyRefNode LongissimusCapitisC7C0NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCapitisC7C0Node_pos);};
    AnyRefNode LongissimusCapitisC7C0NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCapitisC7C0Node_pos);};
    
    //Longissimus cervicis nodes
    AnyRefNode LongissimusCervicisT2C7NodeR = {sRel = .Scale(.StdPar.Right.LongissimusCervicisT2C7Node_pos);};
    AnyRefNode LongissimusCervicisT2C7NodeL = {sRel = .Scale(.StdPar.Left.LongissimusCervicisT2C7Node_pos);};
    
    //Multifidus cervicis nodes
    AnyRefNode MultifidusCervicisC7C3NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC7C3Node_pos);};
    AnyRefNode MultifidusCervicisC7C3NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC7C3Node_pos);};
                                                                  
    AnyRefNode MultifidusCervicisC7C4NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC7C4Node_pos);};
    AnyRefNode MultifidusCervicisC7C4NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC7C4Node_pos);};
    
    AnyRefNode MultifidusCervicisC7NodeR = {sRel = .Scale(.StdPar.Right.MultifidusCervicisC7Node_pos);};
    AnyRefNode MultifidusCervicisC7NodeL = {sRel = .Scale(.StdPar.Left.MultifidusCervicisC7Node_pos);};
    
    AnyDrawSurf DrwSTL = {
      FileName = ...STL.FilenameC7Seg;
      RGB = ...ColorRef.Segments;
      Opacity = Main.DrawSettings.BonesOpacity.C7;
      AnyFunTransform3D &Scale =.Scale;
    };
	AnyRefNode Right ={};
	AnyRefNode Left ={};
  };
};