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