diff --git a/Body/AAUHuman/Arm/ArmData1.1/ArmModelParameters.any b/Body/AAUHuman/Arm/ArmData1.1/ArmModelParameters.any index 8b6f86864..0abb9b943 100644 --- a/Body/AAUHuman/Arm/ArmData1.1/ArmModelParameters.any +++ b/Body/AAUHuman/Arm/ArmData1.1/ArmModelParameters.any @@ -102,6 +102,8 @@ AnyFolder Humerus = { AnyFloat art_tub_majus_pos = {0.021, 0.009 , -0.02}+OffSet; AnyFloat sulcus_intertubercularis_pos = {0.017500, -0.023000, -0.0175000}+OffSet; // 0.5*(.art_tub_majus.sRel+.art_tub_minus.sRel)+.Scale({.....Sign*0.003,0.0,0.0}); // midpoint AnyFloat sulcus_intertubercularisTop_pos = {0.017, 0.023000, -0.02650}+OffSet; //.sulcus_intertubercularis.sRel+.Scale({.....Sign*-0.005,0.015,0.003}); + AnyFloat Deltoid_hum = {0.0006969078, -0.145082, 0.007705414}; + AnyFloat Deltoid_hum_p3 = {0.012821, -0.13903, 0.01491}; #if BM_ARM_DELTOID_WRAPPING == _DELTOID_WRAPPING_RAKE_ AnyFloat I_deltoideus_scapular_part_1_pos = {0.009442, -0.095031 , -0.005209}+{0,0,0.005}+ds1; @@ -460,9 +462,20 @@ AnyFolder Ulna = { AnyFolder Scapula = { AnyFloat sCoM_pos = {-0.06,-0.04,0.02}; - AnyFloat deltoid_cyl_P2_pos = {0.027588, -0.047361, -0.015292}; - AnyFloat deltoid_cyl_P3_pos = {-0.128825, -0.129236, 0.024150}; - + AnyFloat deltoid_cyl_P1_pos = {-0.1307360, -0.1302360, 0.006280000}+{0,0.02,0}; + AnyFloat deltoid_cyl_P2_pos = {0.027588, -0.047361, -0.015292}+{0,0.02,0}; + AnyFloat deltoid_cyl_P3_pos = {-0.128825, -0.129236, 0.024150}+{0,0.02,0}; +// AnyFloat Deltoid_Cyl_P1_pos = {-0.1307360, -0.1302360, 0.006280000};//+{0,0.02,0}; +// AnyFloat Deltoid_Cyl_P2_pos = {0.027588, -0.047361, -0.015292};//+{0,0.02,0}; +// AnyFloat Deltoid_Cyl_P3_pos = {-0.001,-0.048,-0.030};//{-0.128825, -0.129236, 0.024150};//+{0,0.02,0}; +// AnyFloat Deltoid_Anterior_Cyl1_pos = {0.02339800, -0.05086300, -0.03438100}+{-0.1,0.06,-0.1}; +// AnyFloat Deltoid_Anterior_Cyl2_pos = {0.02339800, -0.05086300, -0.03438100}+{-0.1,0.06,-0.08}+{0,-0.03,-0.01}; +// AnyFloat Deltoid_Anterior_Cyl_pos = {0.02339800, -0.05086300, -0.03438100}+{-0.1,0.06,-0.06}; +// AnyFloat Deltoid_Anterior_CylStop1_pos = {0.02339800, -0.05086300, -0.03438100}+{0.05,0.04,0.0}; +// AnyFloat Deltoid_Anterior_CylStop2_pos = {0.02339800, -0.05086300, -0.03438100}+{0.05,0.04,-0.01}; +// AnyFloat Deltoid_Anterior_CylStop3_pos = {0.02339800, -0.05086300, -0.03438100}+{0.05,0.04,-0.03}; +// AnyFloat Deltoid_Anterior_CylStop4_pos = {0.02339800, -0.05086300, -0.03438100}+{0.05,0.04,-0.05}; + AnyFloat margo_medialis_P2_pos= {-0.1114460, 0.0300000, -0.003720}; AnyFloat margo_medialis_P3_pos= {-0.1157360, -0.1402360, 0.01628000}; AnyFloat margo_medialis_pos = {-0.1157360, -0.1402360, 0.006280000}; diff --git a/Body/AAUHuman/Arm/CalEllipsMembers_3nodes.any b/Body/AAUHuman/Arm/CalEllipsMembers_3nodes.any new file mode 100644 index 000000000..fdcdc68d5 --- /dev/null +++ b/Body/AAUHuman/Arm/CalEllipsMembers_3nodes.any @@ -0,0 +1,19 @@ +// Define ellipsoid's raduis, sRel, and ARel based on origin and insertion nodes +AnyFloat pos_node1 = .HumerusRef.r0 + (.HumerusRef.Axes0 * Node1.sRel')'-.r0; +AnyFloat pos_node2 ??= .ScapulaRef.r0 + (.ScapulaRef.Axes0 * Node2.sRel')'-.r0; +AnyFloat axes_node2 ??= .ScapulaRef.Axes0 * Node2.ARel; +AnyFloat pos_node3 ??= .ScapulaRef.r0 + (.ScapulaRef.Axes0 * Node3.sRel')'-.r0; +AnyFloat pos_gh = .ScapulaRef.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh.sRel')'-.r0; + +AnyFloat Rxy ??= ...DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius;//.....Segments.Scapula.Deltoid_Scapula_Cyl.cyl.Radius;//vnorm( (pos_node2 - pos_node1) )/5; +AnyFloat Rz = Rxy*5; +//AnyFloat DistanceRatio ??= 1.45; +//AnyFloat AdjustorDirection ??= {1,.....Sign*0.3,0}; +AnyFloat AdjustorXRotation ??= pi/2; +Radius = {Rxy, Rxy, Rz}; +AnyFloat Sizes = Radius; +AnyMatrix RotMatrix ??= RotMat(pos_node1, pos_node2, pos_node3) * RotMat(AdjustorXRotation,x); +sRel ??= pos_gh;//(pos_node2 + pos_node1)/2;// + Rxy*DistanceRatio * (RotMatrix*(AdjustorDirection/vnorm(AdjustorDirection))')'; +ARel ??= RotMatrix * RotMat(pi/2 - .....Sign * pi/2,x); + +// viewSurface = {Visible = On; Opacity = 0.1; RGB = {0.5, 0.1, 0.1}; Transparency = 0.7; }; diff --git a/Body/AAUHuman/Arm/Calibration/ShoulderCal.any b/Body/AAUHuman/Arm/Calibration/ShoulderCal.any index 550529992..44dce7fad 100644 --- a/Body/AAUHuman/Arm/Calibration/ShoulderCal.any +++ b/Body/AAUHuman/Arm/Calibration/ShoulderCal.any @@ -332,7 +332,7 @@ AnyBodyCalibrationStudy ArmCalibrationStudyShoulder = { AnyFolder &ref=.ShoulderCal; nStep = SizesOf(ref.GHPosData)[1]*6; FiberAndTendonLengthAdjustment.CalibrateTendonAtMaxForceOnOff = On; - Kinematics.SmallStepAssumptionOnOff = On; + Kinematics.SmallStepAssumptionOnOff = Off; Kinematics.PosAnalysisOnlyOnOff = On; InitialConditions.PosAnalysisOnlyOnOff = On; diff --git a/Body/AAUHuman/Arm/Calibration/SpineDependentCal.any b/Body/AAUHuman/Arm/Calibration/SpineDependentCal.any index 467aec2c4..6a961e1f3 100644 --- a/Body/AAUHuman/Arm/Calibration/SpineDependentCal.any +++ b/Body/AAUHuman/Arm/Calibration/SpineDependentCal.any @@ -292,7 +292,7 @@ AnyBodyCalibrationStudy ArmCalibrationStudySpineDependent = { AnyFolder &ref=.SpineDependentCal; nStep = 8; - Kinematics.SmallStepAssumptionOnOff = On; + Kinematics.SmallStepAssumptionOnOff = Off; Kinematics.PosAnalysisOnlyOnOff = On; InitialConditions.PosAnalysisOnlyOnOff = On; diff --git a/Body/AAUHuman/Arm/DeltoidWrap.any b/Body/AAUHuman/Arm/DeltoidWrap.any index 1040e5936..ba1bcc566 100644 --- a/Body/AAUHuman/Arm/DeltoidWrap.any +++ b/Body/AAUHuman/Arm/DeltoidWrap.any @@ -1,76 +1,311 @@ -MultiWrapSurfs DeltoidWrappingPosterior ( -BASE_FRAME = WrappingSegment.RotNode, -TYPE = BM_ARM_DELTOID_WRAPPING, -NUMBER_OF_CYLINDERS= 4, -DEBUG=0 -) = -{ - Radius = vnorm(...Segments.Scapula.aa.sRel - ...Segments.Scapula.gh.sRel)*0.71418; - RadiusX = 1.68891* vnorm(...Segments.Scapula.GHReactionCenterNode.sRel - ...Segments.Scapula.gh.sRel); - RadiusHeight = 0.8626287 * vnorm(...Segments.Scapula.GHReactionCenterNode.sRel - ...Segments.Scapula.acj.sRel); - - WrapSurfLength = 1.7 * vnorm(...Segments.Humerus.I_DeltoideusLateral1.sRel - ...Segments.Humerus.gh.sRel); - Angles = DesignVar(...Sign*({21, 24, 33, 47})); - - Visibility = repmat(NumberOfCylinders, Off); - +AnyFolder DeltoidWrappingPosterior = { + + WrappingSegment.ScapulaRef={ + AnyRefNode gh_rotated1={ + sRel=.gh.sRel; + ARel={{......Sign*1,0,0},{0,1,0},{0,0,......Sign*1}}; + }; + }; + + WrappingSegment.HumerusRef={ + AnyRefNode gh_rotated1={ + sRel=.gh.sRel; + ARel={{1,0,0},{0,......Sign*1,0},{0,0,......Sign*1}}; + }; + }; + AnySeg WrappingSegment ={ - //^ Segment on which the wrapping cylinders are placed. - //^ The ssegment follows scapula kinematically, but is dynamically - //^ attached to both scapula and humerus to ensure that forces on - //^ the wrapping cylinders are distributed correctly between humerus - //^ scapula - + //^ Segment on which the wrapping ellipsoids are placed. + //^ The segment follows scapula and humerus kinematically (using an + //^ Averaging measure), but is dynamically attached to both scapula + //^ and humerus to ensure that forces on the wrapping ellipsoids are + //^ distributed correctly between humerus and scapula + Mass=1e-5; Jii={0.0,0.0,0.0}; + + r0= ScapulaRef.r0 ; +// Axes0= ScapulaRef.Axes0 ; + + AnySeg &ScapulaRef = ....Segments.Scapula; + AnySeg &HumerusRef = ....Segments.Humerus; + AnySeg &ClaviculaRef = ....Segments.Clavicula; + +// AnySurfEllipsoid Ellipsoid_DeltoidWrappingPosterior1 = +// { +// AnyRefNode &Node1 = .HumerusRef.I_DeltoideusPosterior1; +// AnyRefNode &Node2 = .ScapulaRef.O_DeltoideusPosterior1; +// AnyRefNode &Node3 = .ScapulaRef.I_LevatorScapulae1; +// AdjustorDirection = {1,.....Sign*0.3,0};//{1,.....Sign*1,0}; +// AdjustorXRotation = 3*pi/2; +// DistanceRatio = 1.2;//1.5; +// //ARel = RotMatrix * RotMat(pi/2 - .....Sign * pi/2,x) * RotMat(25*pi/180,x); +// #include "CalEllipsMembers_3nodes.any" +// }; +// +// AnySurfEllipsoid Ellipsoid_DeltoidWrappingPosterior2 = +// { +// AnyRefNode &Node1 = .HumerusRef.I_DeltoideusPosterior2; +// AnyRefNode &Node2 = .ScapulaRef.O_DeltoideusPosterior2; +// AnyRefNode &Node3 = .ScapulaRef.I_LevatorScapulae1; +// //AdjustorDirection = {1,.....Sign*0.8,0}; +// AdjustorXRotation = 3*pi/2; +// DistanceRatio = 1.2;//1.5; +// //ARel = RotMatrix * RotMat(pi/2 - .....Sign * pi/2,x) * RotMat(20*pi/180,x); +// #include "CalEllipsMembers_3nodes.any" +// }; +// AnySurfEllipsoid Ellipsoid_DeltoidWrappingPosterior3 = +// { +// AnyRefNode &Node1 = .HumerusRef.I_DeltoideusPosterior3; +// AnyRefNode &Node2 = .ScapulaRef.O_DeltoideusPosterior3; +// AnyRefNode &Node3 = .ScapulaRef.O_DeltoideusLateral1; +// AdjustorDirection = {1,.....Sign*0.6,0}; +// DistanceRatio = 1.2;//1.5; +// //ARel = RotMatrix * RotMat(pi/2 - .....Sign * pi/2,x) * RotMat(10*pi/180,x); +// #include "CalEllipsMembers_3nodes.any" +// }; +// AnySurfEllipsoid Ellipsoid_DeltoidWrappingPosterior4 = +// { +// AnyRefNode &Node1 = .HumerusRef.I_DeltoideusPosterior4; +// AnyRefNode &Node2 = .ScapulaRef.O_DeltoideusPosterior4; +// AnyRefNode &Node3 = .ScapulaRef.O_DeltoideusLateral1; +// AdjustorDirection = {0.9,.....Sign*0.5,0}; +// DistanceRatio = 1.1; +//// ARel = RotMatrix * RotMat(pi/2 - .....Sign * pi/2,x) * RotMat(20*pi/180,x); +// #include "CalEllipsMembers_3nodes.any" +// }; + + +// // Definition of cylinder used for wrapping of Deltoid scapula muscles +// // the cylinder starts in gh and points towards ts. +// AnyRefNode deltoid_cyl={ +// +// AnyVec3 P1 = (.ScapulaRef.Axes0*(.ScapulaRef.Scale(.ScapulaRef.Data.deltoid_cyl_P1_pos*.ScapulaRef.Mirror))')'; +// AnyVec3 P2 = (.ScapulaRef.Axes0*(.ScapulaRef.Scale(.ScapulaRef.Data.deltoid_cyl_P2_pos*.ScapulaRef.Mirror))')'; +// AnyVec3 P3 = (.ScapulaRef.Axes0*(.ScapulaRef.Scale(.ScapulaRef.Data.deltoid_cyl_P3_pos*.ScapulaRef.Mirror))')'; +// +// sRel= P1; +// ARel= RotMat(sRel,P3,P2)*RotMat(-pi/2,x)*RotMat(-pi/2,z); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.sRel-.P3); +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1.0; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// +// }; - r0= ....Segments.Scapula.gh.sRel*....Segments.Scapula.Axes0'+....Segments.Scapula.r0; - Axes0=....Segments.Scapula.Axes0 - #if _LEFT_RIGHT_ == "Left" - * RotMat(pi,y) - #endif; +// AnyRefNode p1 = {sRel = .Deltoid_Cyl.P1;}; +// AnyRefNode p2 = {sRel = .Deltoid_Cyl.P2;}; +// AnyRefNode p3 = {sRel = .Deltoid_Cyl.P3;}; + // Definition of cylinder used for wrapping of Deltoid scapula muscles + // the cylinder starts in gh and points towards ts. +// AnyRefNode Deltoid_Cyl={ +// +// AnyVec3 P1 = (.ScapulaRef.Axes0*(.ScapulaRef.Scale(.ScapulaRef.Data.Deltoid_Cyl_P1_pos*.ScapulaRef.Mirror))')'; +// AnyVec3 P2 = .gh_joint.sRel;//(.ScapulaRef.Axes0*(.ScapulaRef.Scale(.ScapulaRef.Data.Deltoid_Cyl_P2_pos*.ScapulaRef.Mirror))')'; +// AnyVec3 P3 = (.ScapulaRef.Axes0*(.ScapulaRef.Scale(.ScapulaRef.Data.Deltoid_Cyl_P3_pos*.ScapulaRef.Mirror))')'; +// +// sRel= P1; +// ARel= RotMat(sRel,P3,P2)*RotMat(-pi/2,x)*RotMat(-pi/2,z); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.sRel-.P3); +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1.0; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// +// }; +AnyRefNode AlignmentRefNode = { + ARel = .ScapulaRef.Axes0; - AnyRefNode RotNode = - { - AnyVar PosteriorTilt = 7; - //AnyDrawRefFrame drwf ={ScaleXYZ=0.1*{1,1,1};RGB={0,1,1};}; - #if _LEFT_RIGHT_ == "Left" - ARel = RotMat(-0.1,y)*RotMat(pi,x)*RotMat(PosteriorTilt*pi/180,x); - #else - ARel = RotMat(-0.1,y)*RotMat(PosteriorTilt*pi/180,x); - #endif - }; - }; - - AnySphericalJoint WrapSegmentHumerusJnt ={ - AnyRefNode &ref1=....Segments.Humerus.gh ; - AnySeg &ref2=.WrappingSegment; - }; - - AnyKinMotion WrappingSegmentDriver={ - AnyKinMeasureLinComb LinComb = { - AnyKinRotational HumerusScapulaRot={ - AnyRefNode &ref2=......Segments.Scapula.gh_rotated1; - AnyRefNode &ref1=......Segments.Humerus.gh_rotated1; - Type = RotVector; - }; - AnyKinRotational HumerusWrapSegmentRot={ - AnyRefFrame &ref1=......Segments.Scapula.gh_rotated1; - AnyRefFrame &ref2=...WrappingSegment; - Type =RotVector; - }; - OutDim = 3; - Coef={ - {0.35,0,0,-1,0,0}, - { 0,0.05,0,0,-1,0}, //this one controls the rotaion around the long axis og humerus - {0,0,0.45,0,0,-1} - }; - }; // Measure + AnyRefNode Deltoid_Scapula_Cyl={ + + AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.deltoid_cyl_P1_pos*..ScapulaRef.Mirror); + AnyVec3 P2 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel; + + sRel= P1; + ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); + + AnySurfCylinder cyl = { + Radius= vnorm(.P2-.P3)*1.3; + Length= vnorm(.sRel-.P2)*2; + CapRatio=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; + CenterOrigin = On; + }; }; - AnyReacForce MomentsToScapula = - { + AnyRefNode Represent_Infraspinatus_Cyl={ + + AnyVec3 P1 = ..ScapulaRef.O_Infraspinatus1.sRel; + AnyVec3 P2 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel; + + sRel= P1; + ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); + + AnySurfCylinder cyl = { + Radius= vnorm(.P2-.P3)*1.3; + Length= vnorm(.sRel-.P2)*2; + CapRatio=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; + CenterOrigin = On; + }; + }; + + AnyRefNode FillGap_ScapulaHumerusHead_Cyl={ + + AnyVec3 P1 = ..ScapulaRef.O_Infraspinatus1.sRel; + AnyVec3 P2 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel; + + sRel= P1; + ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); + + AnySurfCylinder cyl = { + Radius= vnorm(.P2-.P3)*1.3; + Length= vnorm(.sRel-.P2)*2; + CapRatio=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; + CenterOrigin = On; + }; + }; + + AnyRefNode DeltoidLateral_Posterior_Cyl={ + + AnyVec3 P1 = ..ScapulaRef.gh.sRel; + AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral4.sRel; + AnyVec3 P3 = ..ScapulaRef.O_DeltoideusLateral1.sRel; + AnyVec3 P4 = ..ScapulaRef.GHReactionCenterNode.sRel; + + sRel= P1; + ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y); + + AnySurfCylinder cyl = { + Radius= vnorm(.P1-.P4)*1.3; + Length= Radius; + CapRatio=3; + CapRatio2=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; + }; + }; + + AnyRefNode Deltoid_Scapula_Cyl_Extra={ + + AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.deltoid_cyl_P1_pos*..ScapulaRef.Mirror); + AnyVec3 P1_1 = ..ScapulaRef.Scale((..ScapulaRef.Data.deltoid_cyl_P1_pos+{-0.04,0.04,0})*..ScapulaRef.Mirror); + AnyVec3 P2 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel; + + sRel= P1_1; + ARel=RotMat(P1,P2,P3)*RotMat(pi/2,y); + + AnySurfCylinder cyl = { + Radius= vnorm(.P2-.P3)*1.3; + Length= vnorm(.sRel-.P2)*2; + CapRatio=1; + CenterOrigin = On; + }; + + }; + +}; + AnyRefNode LocalReferenceFrame_ConstraintNode = {sRel= {0,0,0}; ARel= .ScapulaRef.Axes0;}; + AnyRefNode O_DeltoideusPosterior1 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusPosterior1.sRel')';}; + AnyRefNode O_DeltoideusPosterior3 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusPosterior3.sRel')';}; + AnyRefNode O_DeltoideusPosterior4 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusPosterior4.sRel')';}; + AnyRefNode gh_joint = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';}; + AnyRefNode HumerusLateral = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.TeresMinorhumurus_wrap.sRel')';}; + AnyRefNode HumerusAnterior = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_Subscapularis3.sRel')';}; + AnyRefNode HumerusMedial = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.GHReactionCenterNodeRotated.sRel')'+ + (.ScapulaRef.Axes0 *.ScapulaRef.GHReactionCenterNodeRotated.ARel* .ScapulaRef.GHReactionCenterNodeRotated.CavityEdgeNode8.sRel')';}; + AnyRefNode I_DeltoideusPosterior3 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusPosterior3.sRel')';}; + AnyRefNode deltoid_cyl_P1 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.deltoid_cyl_P1.sRel')';}; + }; + + AnyKinLinear m_O_DeltoideusPosterior1 = { + AnyRefNode &ref1 = .WrappingSegment.O_DeltoideusPosterior1; + AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusPosterior1; + Ref=0; + }; +// AnyKinLinear m_O_DeltoideusPosterior3 = { +// AnyRefNode &ref1 = .WrappingSegment.O_DeltoideusPosterior3; +// AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusPosterior3; +// Ref=0; +// }; + AnyKinLinear m_O_DeltoideusPosterior4 = { + AnyRefNode &ref1 = .WrappingSegment.O_DeltoideusPosterior4; + AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusPosterior4; + Ref=0; + }; + AnyKinLinear m_gh_joint = { + AnyRefNode &ref1 = .WrappingSegment.gh_joint; + AnyRefNode &ref2= ....Segments.Humerus.gh; + Ref=0; + }; +// AnyKinLinear HumerusLateral = { +// AnyRefNode &ref1 = .WrappingSegment.HumerusLateral; +// AnyRefNode &ref2=....Segments.Humerus.TeresMinorhumurus_wrap; +// Ref=0; +// }; +// AnyKinLinear HumerusAnterior = { +// AnyRefNode &ref1 = .WrappingSegment.HumerusAnterior; +// AnyRefNode &ref2=....Segments.Humerus.I_Subscapularis3; +// Ref=0; +// }; +// AnyKinLinear HumerusMedial = { +// AnyRefNode &ref1 = .WrappingSegment.HumerusMedial; +// AnyRefNode &ref2= ....Segments.Scapula.GHReactionCenterNodeRotated.CavityEdgeNode8; +// Ref=0; +// }; +// AnyKinLinear m_I_DeltoideusPosterior3 = { +// AnyRefNode &ref1 = .WrappingSegment.I_DeltoideusPosterior3; +// AnyRefNode &ref2= ....Segments.Humerus.I_DeltoideusPosterior3; +// Ref=0; +// }; + AnyKinLinear m_deltoid_cyl_P1 = { + AnyRefNode &ref1 = .WrappingSegment.deltoid_cyl_P1; + AnyRefNode &ref2= ....Segments.Scapula.deltoid_cyl_P1; + Ref=0; + }; + + + AnyKinEq Constraint = { + RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { + + LocalReferenceFrame = &..WrappingSegment.LocalReferenceFrame_ConstraintNode; + InputMeasures = { + &..m_O_DeltoideusPosterior1, + &..m_O_DeltoideusPosterior4, + &..m_gh_joint, + &..m_deltoid_cyl_P1, +// &..HumerusAnterior, +// &..HumerusMedial, +// &..m_I_DeltoideusPosterior3 + }; +// WeightCoefficients = {4,6,20,1,1,1,0.5}; + WeightCoefficients = {0.5,0.5,20,20}; + }; + Reaction.Type ??= repmat(nDim, Off); + }; + + AnyReacForce ForceToGHJoint = { + AnyKinLinear lin ={ + AnyRefNode &ref1=.....Segments.Humerus.gh ; + AnyRefNode &ref2=..WrappingSegment.gh_joint; + Ref = 0; + }; + }; + + AnyReacForce MomentsToScapula1 = { AnyKinRotational rot ={ AnyRefFrame &ref1=..WrappingSegment; AnyRefFrame &ref2=.....Segments.Scapula; @@ -78,101 +313,313 @@ DEBUG=0 AngVelOnOff=On; }; }; + +}; +AnyFolder DeltoidWrappingLateral = { + + AnySeg WrappingSegment ={ + //^ Segment on which the wrapping ellipsoids are placed. + //^ The segment follows scapula and humerus kinematically (using an + //^ Averaging measure), but is dynamically attached to both scapula + //^ and humerus to ensure that forces on the wrapping ellipsoids are + //^ distributed correctly between humerus and scapula + + Mass=1e-5; + Jii={0.0,0.0,0.0}; + + r0= ScapulaRef.r0; + + AnySeg &ScapulaRef = ....Segments.Scapula; + AnySeg &HumerusRef = ....Segments.Humerus; + AnySeg &ClaviculaRef = ....Segments.Clavicula; + + + AnySurfEllipsoid Ellipsoid_DeltoidWrappingLateral1 = + { + AnyRefNode &Node1 = .HumerusRef.I_DeltoideusLateral1; + AnyRefNode &Node2 = .ScapulaRef.O_DeltoideusLateral1; + AnyRefNode &Node3 = .ScapulaRef.O_DeltoideusLateral2; +// AdjustorDirection = {1,.....Sign*0.3,0}; + #include "CalEllipsMembers_3nodes.any" + }; + AnySurfEllipsoid Ellipsoid_DeltoidWrappingLateral2 = + { + AnyRefNode &Node1 = .HumerusRef.I_DeltoideusLateral2; + AnyRefNode &Node2 = .ScapulaRef.O_DeltoideusLateral2; + AnyRefNode &Node3 = .ScapulaRef.O_DeltoideusLateral3; +// AdjustorDirection = {1,.....Sign*0.3,0}; + #include "CalEllipsMembers_3nodes.any" + }; + AnySurfEllipsoid Ellipsoid_DeltoidWrappingLateral3 = + { + AnyRefNode &Node1 = .HumerusRef.I_DeltoideusLateral3; + AnyRefNode &Node2 = .ScapulaRef.O_DeltoideusLateral3; + AnyRefNode &Node3 = .ScapulaRef.O_DeltoideusLateral4; +// AdjustorDirection = {1,.....Sign*0.25,0}; + #include "CalEllipsMembers_3nodes.any" + }; + AnySurfEllipsoid Ellipsoid_DeltoidWrappingLateral4 = + { + AnyRefNode &Node1 = .HumerusRef.I_DeltoideusLateral4; + AnyRefNode &Node2 = .ScapulaRef.O_DeltoideusLateral4; + AnyRefNode &Node3 = .ScapulaRef.gh_rotated1; +// AdjustorDirection = {1,.....Sign*0.25,0}; +//// AdjustorDirection = {0.8,.....Sign*0.3,0}; + AdjustorXRotation = pi/2 - .....Sign * pi/2; // This ellipsoid is defined by the gh_rotated1 node as its third node. + #include "CalEllipsMembers_3nodes.any" + }; + + +// // Definition of cylinder used for wrapping of Deltoid scapula muscles +// // the cylinder starts in gh and points towards ts. +// AnyRefNode deltoid_cyl={ +// +// AnyVec3 P1 = (.ScapulaRef.Axes0*(.ScapulaRef.Scale(.ScapulaRef.Data.deltoid_cyl_P1_pos*.ScapulaRef.Mirror))')'; +// AnyVec3 P2 = (.ScapulaRef.Axes0*(.ScapulaRef.Scale(.ScapulaRef.Data.deltoid_cyl_P2_pos*.ScapulaRef.Mirror))')'; +// AnyVec3 P3 = (.ScapulaRef.Axes0*(.ScapulaRef.Scale(.ScapulaRef.Data.deltoid_cyl_P3_pos*.ScapulaRef.Mirror))')'; +// +// sRel= P1; +// ARel= RotMat(sRel,P3,P2)*RotMat(-pi/2,x)*RotMat(-pi/2,z); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.sRel-.P3); +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1.0; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// +// }; +Ellipsoid_DeltoidWrappingLateral3 = { + AnySurfCylinder Extra_cyl= { + sRel = {0,......Sign*0.05,0}; + Radius=0.05; + Length=0.2; + CapRatio = 1; + CenterOrigin = On; + }; + }; + Ellipsoid_DeltoidWrappingLateral4 = { + AnySurfCylinder Extra_cyl= { + sRel = {0,......Sign*0.05,0}; + Radius=0.05; + Length=0.2; + CapRatio = 1; + CenterOrigin = On; + }; + }; + +AnyRefNode AlignmentRefNode = { + ARel = .ScapulaRef.Axes0; + AnyRefNode Deltoid_Scapula_Cyl_Stop3_Ant={ -}; + AnyVec3 P1 = ..ScapulaRef.gh.sRel; + AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral3.sRel; + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel; + + sRel= P1; + ARel= RotMat(sRel,P2,P3)*RotMat(pi/2,y); + + AnySurfCylinder cyl = { + Radius= .....DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*0.98*0.7; + Length= vnorm(.sRel-.P2)*5; + CapRatio=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; + // CenterOrigin = On; + }; + + }; + AnyRefNode Deltoid_Scapula_Cyl_Stop3_Ant_new={ + AnyVec3 P1 = ..ScapulaRef.gh.sRel; + AnyVec3 P2 = (..ScapulaRef.O_DeltoideusLateral1.sRel+..ScapulaRef.O_DeltoideusLateral4.sRel)/2; + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel; + + sRel= P1; + ARel= RotMat(sRel,P2,P3)*RotMat(pi/2,y); + + AnySurfCylinder cyl = { + //Radius= .....DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*0.98; + Radius= vnorm((...ScapulaRef.O_DeltoideusLateral1.sRel-...ScapulaRef.O_DeltoideusLateral4.sRel)/2);//.....DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*0.98*0.7; + Length= vnorm(.sRel-.P2)*5; + CapRatio=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; + // CenterOrigin = On; + }; + + }; + + + AnyRefNode Deltoid_Scapula_Cyl_Stop1={ + AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; + AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral1.sRel; //P2=.ai.sRel + VZ*Length; + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; -MultiWrapSurfs DeltoidWrappingLateral ( -BASE_FRAME = WrappingSegment.RotNode, -NUMBER_OF_CYLINDERS= 4, -TYPE=BM_ARM_DELTOID_WRAPPING, -DEBUG=0 -) = -{ - RadiusX = 1.45* vnorm(...Segments.Scapula.GHReactionCenterNode.sRel - ...Segments.Scapula.gh.sRel); - Radius = vnorm(...Segments.Scapula.acj.sRel - ...Segments.Scapula.gh.sRel)*0.8613933; - RadiusHeight = 0.86* vnorm(...Segments.Scapula.GHReactionCenterNode.sRel - ...Segments.Scapula.acj.sRel); + sRel= P1; + ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); - WrapSurfLength = 2 * vnorm(...Segments.Humerus.I_DeltoideusLateral1.sRel - ...Segments.Humerus.gh.sRel); - Angles = ...Sign*{68, 85, 100, 120}; + AnySurfCylinder cyl = { + Radius= .....DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*0.98; + Length= vnorm(.sRel-.P2)*5; + CapRatio=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; + }; - AnySeg WrappingSegment ={ - //^ Segment on which the wrapping cylinders are placed. - //^ The ssegment follows scapula kinematically, but is dynamically - //^ attached to both scapula and humerus to ensure that forces on - //^ the wrapping cylinders are distributed correctly between humerus - //^ scapula + }; + AnyRefNode Deltoid_Scapula_Cyl_Stop2={ - Mass=1e-5; - Jii={0.0,0.0,0.0}; + AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; + AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral2.sRel; //P2=.ai.sRel + VZ*Length; + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; - r0= ....Segments.Scapula.gh.sRel*....Segments.Scapula.Axes0'+....Segments.Scapula.r0; - Axes0=....Segments.Scapula.Axes0 - #if _LEFT_RIGHT_ == "Left" - * RotMat(pi,y) - #endif; + sRel= P1; + ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); - AnyRefNode RotNode = - { - AnyVar PosteriorTilt = 7; - //AnyDrawRefFrame drwf ={ScaleXYZ=0.1*{1,1,1};RGB={0,1,1};}; - #if _LEFT_RIGHT_ == "Left" - ARel = RotMat(-0.1,y)*RotMat(pi,x)*RotMat(PosteriorTilt*pi/180,x); - #else - ARel = RotMat(-0.1,y)*RotMat(PosteriorTilt*pi/180,x); - #endif + AnySurfCylinder cyl = { + Radius= .....DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*0.98; + Length= vnorm(.sRel-.P2)*5; + CapRatio=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; }; - }; - AnySphericalJoint WrapSegmentHumerusJnt ={ - AnyRefNode &ref1=....Segments.Humerus.gh ; - AnySeg &ref2=.WrappingSegment; }; + AnyRefNode Deltoid_Scapula_Cyl_Stop3={ - AnyFolder &ScapulaRef=...Segments.Scapula; + AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; + AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral3.sRel; //P2=.ai.sRel + VZ*Length; + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; - ScapulaRef={ - AnyRefNode gh_rotated1={ - sRel=.gh.sRel; - ARel={{.....Sign*1,0,0},{0,1,0},{0,0,.....Sign*1}}; - }; - }; + sRel= P1; + ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); - AnyFolder &HumerusRef =...Segments.Humerus; - HumerusRef={ - AnyRefNode gh_rotated1={ - sRel=.gh.sRel; - ARel={{1,0,0},{0,.....Sign*1,0},{0,0,.....Sign*1}}; + AnySurfCylinder cyl = { + Radius= .....DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*0.98; + Length= vnorm(.sRel-.P2)*5; + CapRatio=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; }; + }; + AnyRefNode Deltoid_Scapula_Cyl_Stop4={ + AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; + AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral4.sRel; //P2=.ai.sRel + VZ*Length; + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; - AnyKinMotion WrappingSegmentDriver={ - AnyKinMeasureLinComb LinComb = { - AnyKinRotational HumerusScapulaRot={ - AnyRefNode &ref2=...ScapulaRef.gh_rotated1; - AnyRefNode &ref1=...HumerusRef.gh_rotated1; - Type = RotVector; - }; - AnyKinRotational HumerusWrapSegmentRot={ - AnyRefFrame &ref1=...ScapulaRef.gh_rotated1; - AnyRefFrame &ref2=...WrappingSegment; - Type =RotVector; + sRel= P1; + ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); + + AnySurfCylinder cyl = { + Radius= .....DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*0.98; + Length= vnorm(.sRel-.P2)*5; + CapRatio=1; + //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; }; - OutDim = 3; - Coef={ - {0.25,0,0,-1,0,0}, - { 0,0.05,0,0,-1,0}, //this one controls the rotaion around the long axis og humerus - {0,0,0.32,0,0,-1} - }; - }; // Measure + }; +}; + AnyRefNode LocalReferenceFrame_ConstraintNode = {sRel= {0,0,0}; ARel= .ScapulaRef.Axes0;}; + AnyRefNode DeltoideusPosteriorWrappingRotNode = {sRel= {0,0,0}; + ARel = .ScapulaRef.Axes0* .ScapulaRef.gh_rotated1.ARel;}; + AnyRefNode O_DeltoideusPosterior1 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusPosterior1.sRel')';}; + AnyRefNode O_DeltoideusPosterior4 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusPosterior4.sRel')';}; + AnyRefNode gh_joint = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';}; + AnyRefNode HumerusLateral = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.TeresMinorhumurus_wrap.sRel')';}; + AnyRefNode HumerusAnterior = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_Subscapularis3.sRel')';}; + AnyRefNode HumerusMedial = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.GHReactionCenterNodeRotated.sRel')'+ + (.ScapulaRef.Axes0 *.ScapulaRef.GHReactionCenterNodeRotated.ARel* .ScapulaRef.GHReactionCenterNodeRotated.CavityEdgeNode8.sRel')';}; + AnyRefNode O_DeltoideusLateral1 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral1.sRel')';}; + AnyRefNode O_DeltoideusLateral4 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral4.sRel')';}; + AnyRefNode I_DeltoideusPosterior3 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusPosterior3.sRel')';}; + + }; + + AnyKinLinear m_O_DeltoideusPosterior1 = { + AnyRefNode &ref1 = .WrappingSegment.O_DeltoideusPosterior1; + AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusPosterior1; + Ref=0; + }; + AnyKinLinear m_O_DeltoideusPosterior4 = { + AnyRefNode &ref1 = .WrappingSegment.O_DeltoideusPosterior4; + AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusPosterior4; + Ref=0; + }; + + AnyKinLinear m_gh_joint = { + AnyRefNode &ref1 = .WrappingSegment.gh_joint; + AnyRefNode &ref2=....Segments.Humerus.gh; + Ref=0; + }; + + AnyKinLinear HumerusLateral = { + AnyRefNode &ref1 = .WrappingSegment.HumerusLateral; + AnyRefNode &ref2=....Segments.Humerus.TeresMinorhumurus_wrap; + Ref=0; + }; + AnyKinLinear HumerusAnterior = { + AnyRefNode &ref1 = .WrappingSegment.HumerusAnterior; + AnyRefNode &ref2=....Segments.Humerus.I_Subscapularis3; + Ref=0; + }; + AnyKinLinear HumerusMedial = { + AnyRefNode &ref1 = .WrappingSegment.HumerusMedial; + AnyRefNode &ref2= ....Segments.Scapula.GHReactionCenterNodeRotated.CavityEdgeNode8; + Ref=0; + }; + + AnyKinLinear m_O_DeltoideusLateral1 = { + AnyRefNode &ref1 = .WrappingSegment.O_DeltoideusLateral1; + AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral1; + Ref=0; + }; + AnyKinLinear m_O_DeltoideusLateral4 = { + AnyRefNode &ref1 = .WrappingSegment.O_DeltoideusLateral4; + AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral4; + Ref=0; + }; + AnyKinLinear m_I_DeltoideusPosterior3 = { + AnyRefNode &ref1 = .WrappingSegment.I_DeltoideusPosterior3; + AnyRefNode &ref2= ....Segments.Humerus.I_DeltoideusPosterior3; + Ref=0; }; + + AnyKinEq Constraint = { + RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { + + LocalReferenceFrame = &..WrappingSegment.LocalReferenceFrame_ConstraintNode; + InputMeasures = { + &..m_O_DeltoideusPosterior1, + &..m_O_DeltoideusPosterior4, + &..m_O_DeltoideusLateral1, + &..m_O_DeltoideusLateral4, + &..m_gh_joint, + &..HumerusLateral, + &..HumerusAnterior, + &..HumerusMedial, +// &..m_I_DeltoideusPosterior3, + }; + WeightCoefficients = {1,1,8,8,2,2,2,2}; + }; + Reaction.Type ??= repmat(nDim, Off); + }; + + AnyReacForce ForceToGHJoint = { + AnyKinLinear lin ={ + AnyRefNode &ref1=.....Segments.Humerus.gh ; + AnyRefNode &ref2=..WrappingSegment.gh_joint; + Ref = 0; + }; + }; + AnyReacForce MomentsToScapula = { AnyKinRotational rot ={ @@ -182,60 +629,274 @@ DEBUG=0 AngVelOnOff=On; }; }; - + + + }; +AnyFolder DeltoidWrappingAnterior = { + + AnySeg WrappingSegment ={ + //^ Segment on which the wrapping ellipsoids are placed. + //^ The segment follows scapula and humerus kinematically (using an + //^ Averaging measure), but is dynamically attached to both clavicula + //^ and humerus to ensure that forces on the wrapping ellipsoids are + //^ distributed correctly between humerus and clavicula + + Mass=1e-5; + Jii={0.0,0.0,0.0}; + + r0= ScapulaRef.r0; + //Axes0 = ScapulaRef.Axes0; + + AnySeg &ScapulaRef = ....Segments.Scapula; + AnySeg &HumerusRef = ....Segments.Humerus; + AnySeg &ClaviculaRef = ....Segments.Clavicula; + + AnyRefNode LocalReferenceFrame_ConstraintNode = {sRel= {0,0,0}; ARel= .ScapulaRef.Axes0;}; + AnyRefNode gh_joint = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';}; + AnyRefNode clav_AnatomicalFrame = {sRel= .ClaviculaRef.r0 -.r0 + (.ClaviculaRef.Axes0 * .ClaviculaRef.AnatomicalFrame.sRel')';};//.ClaviculaRef.Scale({-0.10452, 0.00285061, -0.139346});}; + AnyRefNode O_DeltoideusAnterior1 = {sRel= .ClaviculaRef.r0 -.r0 + (.ClaviculaRef.Axes0 * .ClaviculaRef.O_DeltoideusAnterior1.sRel')';}; + AnyRefNode O_DeltoideusAnterior4 = {sRel= .ClaviculaRef.r0 -.r0 + (.ClaviculaRef.Axes0 * .ClaviculaRef.O_DeltoideusAnterior4.sRel')';}; + +// AnySurfEllipsoid Ellipsoid_DeltoidWrappingAnterior1 = +// { +// AnyRefNode &Node1 = .HumerusRef.I_DeltoideusAnterior1; +// AnyRefNode &Node2 = .ClaviculaRef.O_DeltoideusAnterior1; +// AnyRefNode &Node3 = .ScapulaRef.O_DeltoideusLateral3; +// pos_node2 = .ClaviculaRef.r0 + (.ClaviculaRef.Axes0 * Node2.sRel')'-.r0; +// axes_node2 = .ClaviculaRef.Axes0 * Node2.ARel; +//// AdjustorDirection = {1,.....Sign*0.2,0}; +// AdjustorXRotation = 3*pi/2; +//// DistanceRatio = 1.25; +// #include "CalEllipsMembers_3nodes.any" +// }; +// AnySurfEllipsoid Ellipsoid_DeltoidWrappingAnterior2 = +// { +// AnyRefNode &Node1 = .HumerusRef.I_DeltoideusAnterior2; +// AnyRefNode &Node2 = .ClaviculaRef.O_DeltoideusAnterior2; +// AnyRefNode &Node3 = .ScapulaRef.O_DeltoideusLateral3; +// pos_node2 = .ClaviculaRef.r0 + (.ClaviculaRef.Axes0 * Node2.sRel')'-.r0; +// axes_node2 = .ClaviculaRef.Axes0 * Node2.ARel; +// AdjustorDirection = {1,.....Sign*0.2,0}; +// AdjustorXRotation = 3*pi/2; +// DistanceRatio = 1.2; +// #include "CalEllipsMembers_3nodes.any" +// }; +// AnySurfEllipsoid Ellipsoid_DeltoidWrappingAnterior3 = +// { +// AnyRefNode &Node1 = .HumerusRef.I_DeltoideusAnterior3; +// AnyRefNode &Node2 = .ClaviculaRef.O_DeltoideusAnterior3; +// AnyRefNode &Node3 = .ScapulaRef.O_DeltoideusLateral3; +// pos_node2 = .ClaviculaRef.r0 + (.ClaviculaRef.Axes0 * Node2.sRel')'-.r0; +// axes_node2 = .ClaviculaRef.Axes0 * Node2.ARel; +// AdjustorDirection = {1,.....Sign*0.2,0}; +// AdjustorXRotation = 3*pi/2; +// DistanceRatio = 1.2; +// #include "CalEllipsMembers_3nodes.any" +// }; +// AnySurfEllipsoid Ellipsoid_DeltoidWrappingAnterior4 = +// { +// AnyRefNode &Node1 = .HumerusRef.I_DeltoideusAnterior4; +// AnyRefNode &Node2 = .ClaviculaRef.O_DeltoideusAnterior4; +// AnyRefNode &Node3 = .ScapulaRef.O_DeltoideusLateral4; +// pos_node2 = .ClaviculaRef.r0 + (.ClaviculaRef.Axes0 * Node2.sRel')'-.r0; +// axes_node2 = .ClaviculaRef.Axes0 * Node2.ARel; +// AdjustorDirection = {1,.....Sign*0.2,0}; +// AdjustorXRotation = 3*pi/2; +// DistanceRatio = 1.2; +// #include "CalEllipsMembers_3nodes.any" +// }; -MultiWrapSurfs DeltoidWrappingAnterior ( -BASE_FRAME = WrappingSegment.RotNode, -NUMBER_OF_CYLINDERS= 4, -TYPE=BM_ARM_DELTOID_WRAPPING, -DEBUG=0 -) = -{ - Radius = 0.601679* vnorm(...Segments.Scapula.GHReactionCenterNode.sRel - ...Segments.Scapula.coronoid.sRel); - RadiusX= 2.705638*vnorm(...Segments.Scapula.GHReactionCenterNode.sRel - ...Segments.Scapula.gh.sRel); - RadiusHeight = 0.8740858* vnorm(...Segments.Scapula.GHReactionCenterNode.sRel - ...Segments.Scapula.acj.sRel); - Angles = ...Sign*({160, 190, 210, 220}-20); +AnyRefNode AlignmentRefNode = { + ARel = .ScapulaRef.Axes0; +AnyRefNode p1 = {sRel=.Deltoid_Clavicula_Cyl.P1;}; +AnyRefNode p2 = {sRel=.Deltoid_Clavicula_Cyl.P2;}; +AnyRefNode p3 = {sRel=.Deltoid_Clavicula_Cyl.P3;}; +//AnyRefNode p11 = {sRel=.Deltoid_Clavicula_Cyl.P11;}; - WrapSurfLength = 2*vnorm(...Segments.Humerus.I_DeltoideusAnterior3.sRel - ...Segments.Humerus.gh.sRel); - Visibility = repmat(NumberOfCylinders, Off); +AnyRefNode Deltoid_Clavicula_Cyl={ +// AnyVec3 P1 = ..ClaviculaRef.Scale(..ScapulaRef.Data.Deltoid_Anterior_Cyl_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; + AnyVec3 P1 = ( + {{0.3980767, 0.3691687, 0.8397913}, + {-0.1614154, 0.9293562, -0.3320272}, + {-0.9030393, -0.003382927, 0.4295446}}*(..ClaviculaRef.r0-..r0)')';//(..ScapulaRef.Axes0*(..ClaviculaRef.r0-..r0)')'; //P2=.ai.sRel + VZ*Length; + AnyVec3 P2 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// AnyVec3 P4 = ..HumerusRef.gh_rotated1.sRel; +// AnyVec3 P5 = ..HumerusRef.Scale(..HumerusRef.Data.Deltoid_hum*..HumerusRef.Mirror); - AnySeg WrappingSegment = - { - //^ Segment on which the wrapping cylinders are placed. - Mass=1e-5; - Jii={0.0,0.0,0.0}; - r0= ..DeltoidWrappingLateral.WrappingSegment.r0; - Axes0=..DeltoidWrappingLateral.WrappingSegment.Axes0; + sRel= P1; + ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); - AnyRefNode RotNode = - { - // TODO: Simply the expressions below. They come from nested reference frames in the old implemention. - #if _LEFT_RIGHT_ == "Left" - ARel = RotMat(-0.1,y)*RotMat(pi,x)*RotMat(20*pi/180.0, y)*RotMat(7*pi/180.0, x); - #else - ARel = RotMat(-0.1,y)*RotMat(-20*pi/180.0, y)*RotMat(7*pi/180.0, x); - #endif + AnySurfCylinder cyl = { + Radius= vnorm(.P2-.P3)*1.3; +//Radius= Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3_Ant_new.cyl.Radius; + Length= vnorm(.sRel-.P2);//vnorm(.P4-.P5);// + CapRatio=1; +// CenterOrigin = On; }; }; - AnySphericalJoint WrapSegmentHumerusJnt ={ - AnyRefNode &ref1=....Segments.Humerus.gh ; - AnySeg &ref2=.WrappingSegment; + AnyRefNode Deltoid_Clavicula_Cyl_ForLateral={ +// AnyVec3 P1 = ..ClaviculaRef.Scale(..ScapulaRef.Data.Deltoid_Anterior_Cyl_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; + AnyVec3 P1 = ( + {{0.3980767, 0.3691687, 0.8397913}, + {-0.1614154, 0.9293562, -0.3320272}, + {-0.9030393, -0.003382927, 0.4295446}}*(..ClaviculaRef.r0-..r0)')';//(..ScapulaRef.Axes0*(..ClaviculaRef.r0-..r0)')'; //P2=.ai.sRel + VZ*Length; + AnyVec3 P2 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; + AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// AnyVec3 P4 = ..HumerusRef.gh_rotated1.sRel; +// AnyVec3 P5 = ..HumerusRef.Scale(..HumerusRef.Data.Deltoid_hum*..HumerusRef.Mirror); + + sRel= P1; + ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); + + AnySurfCylinder cyl = { +// Radius= vnorm(.P2-.P3)*1.3; +Radius= .....DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*0.99; + Length= vnorm(.sRel-.P2);//vnorm(.P4-.P5);// + CapRatio=1; +// CenterOrigin = On; + }; }; - AnyKinMotion WrappingSegmentDriver = - { - AnyKinRotational rot = - { - AnyRefFrame& ref0 = ..WrappingSegment; - AnyRefFrame& ref1 = ...DeltoidWrappingLateral.WrappingSegment; - Type = RotVector; - }; +// AnyRefNode Deltoid_Clavicula_Cyl2={ +// AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.Deltoid_Anterior_Cyl2_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P2-.P3)*1.3; +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// }; +// AnyRefNode Deltoid_Clavicula_Cyl_Stop1={ +// AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral1.sRel; //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Clavicula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*5; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// }; +// AnyRefNode Deltoid_Clavicula_Cyl_Stop2={ +// AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral2.sRel; //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Clavicula_Cyl.cyl.Radius*0.5; +// Length= vnorm(.sRel-.P2)*5; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +//}; + +}; +//if we want to make new segment for humerus cyl +// AnyRefNode Deltoid_hum = { +// sRel = .HumerusRef.Scale(.HumerusRef.Data.Deltoid_hum_TransformedToScapulaRef*.HumerusRef.Mirror); +// ARel = RotMat(sRel,P2,P3)* RotMat (-pi/2, y); +// AnyFloat P2 = .HumerusRef.Scale(.HumerusRef.Data.gh_pos_TransformedToScapulaRef*.HumerusRef.Mirror);//.HumerusRef.gh_rotated1.sRel; +// AnyFloat P3 = .HumerusRef.Scale(.HumerusRef.Data.Deltoid_hum_p3_TransformedToScapulaRef*.HumerusRef.Mirror); +// +// AnySurfCylinder Deltoid_humCyl= { +// Radius=vnorm(.sRel-.P3); +// Length=2*vnorm(.sRel-.P2); +// CapRatio = 1; +//// CenterOrigin = On; +// }; +// }; + + + }; + + + AnyKinLinear m_clav_AnatomicalFrame = { + AnyRefNode &ref1 = .WrappingSegment.clav_AnatomicalFrame; + AnyRefNode &ref2 = ....Segments.Clavicula.AnatomicalFrame; + Ref=0; + }; + + AnyKinLinear m_O_DeltoideusAnterior1 = { + AnyRefNode &ref1 = .WrappingSegment.O_DeltoideusAnterior1; + AnyRefNode &ref2 = ....Segments.Clavicula.O_DeltoideusAnterior1; + Ref=0; + }; + AnyKinLinear m_O_DeltoideusAnterior4 = { + AnyRefNode &ref1 = .WrappingSegment.O_DeltoideusAnterior4; + AnyRefNode &ref2 = ....Segments.Clavicula.O_DeltoideusAnterior4; + Ref=0; }; + + AnyKinLinear m_gh_joint = { + AnyRefNode &ref1 = .WrappingSegment.gh_joint; + AnyRefNode &ref2=....Segments.Humerus.gh; + Ref=0; + }; + + AnyKinEq Constraint = { + RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { + + LocalReferenceFrame = &..WrappingSegment.LocalReferenceFrame_ConstraintNode; + InputMeasures = { + &..m_clav_AnatomicalFrame, + &..m_O_DeltoideusAnterior1, + &..m_O_DeltoideusAnterior4, + &..m_gh_joint, + }; + WeightCoefficients = {10,0.5,0.5,10}; + }; + Reaction.Type ??= repmat(nDim, Off); + }; + + +// AnyKinEq Constraint = { +// AnyKinLinear lin ={ +// AnyRefNode &ref1=...DeltoidWrappingLateral.WrappingSegment.LocalReferenceFrame_ConstraintNode ; +// AnyRefNode &ref2=..WrappingSegment.LocalReferenceFrame_ConstraintNode; +// Ref = 0; +// }; +// AnyKinRotational rot ={ +// AnyRefNode &ref1=...DeltoidWrappingLateral.WrappingSegment.LocalReferenceFrame_ConstraintNode ; +// AnyRefNode &ref2=..WrappingSegment.LocalReferenceFrame_ConstraintNode; +// Type=RotVector; +// }; +// Reaction.Type ??= repmat(nDim, Off); +// }; + + AnyReacForce ForceToGHJoint = { + AnyKinLinear lin ={ + AnyRefNode &ref1=.....Segments.Humerus.gh ; + AnyRefNode &ref2=..WrappingSegment.gh_joint; + Ref = 0; + }; + }; + AnyReacForce MomentsToCalvicula = { AnyKinRotational rot ={ @@ -244,8 +905,1650 @@ DEBUG=0 Type=RotVector; }; }; + + + +// AnySeg WrappingSegment_RepresentLateralStopper ={ +// +// Mass=1e-5; +// Jii={0.0,0.0,0.0}; +// +// r0= ScapulaRef.r0; +// //Axes0 = ScapulaRef.Axes0; +// +// AnySeg &ScapulaRef = ....Segments.Scapula; +// AnySeg &HumerusRef = ....Segments.Humerus; +// AnySeg &ClaviculaRef = ....Segments.Clavicula; +// +// AnyRefNode LocalReferenceFrame_ConstraintNode = {sRel= {0,0,0}; ARel= .ScapulaRef.Axes0;}; +// AnyRefNode gh_joint = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';ARel = .ScapulaRef.Axes0;}; +// AnyRefNode clav_AnatomicalFrame = {sRel= .ClaviculaRef.r0 -.r0 + (.ClaviculaRef.Axes0 * .ClaviculaRef.AnatomicalFrame.sRel')';};//.ClaviculaRef.Scale({-0.10452, 0.00285061, -0.139346});}; +// AnyRefNode O_DeltoideusLateral1 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral1.sRel')';}; +// AnyRefNode O_DeltoideusLateral4 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral4.sRel')';}; +// AnyRefNode I_DeltoideusLateral1 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral1.sRel')';}; +// AnyRefNode I_DeltoideusLateral4 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral4.sRel')';}; +// AnyRefNode O_DeltoideusAnterior1 = {sRel= .ClaviculaRef.r0 -.r0 + (.ClaviculaRef.Axes0 * .ClaviculaRef.O_DeltoideusAnterior1.sRel')';}; +// +//// AnyRefNode AlignmentRefNode = { +//// ARel = .ScapulaRef.Axes0; +//// AnyRefNode p1 = {sRel=.Deltoid_Clavicula_Cyl_Stop1.P1;}; +//// AnyRefNode p2 = {sRel=.Deltoid_Clavicula_Cyl_Stop1.P2;}; +//// AnyRefNode p3 = {sRel=.Deltoid_Clavicula_Cyl_Stop1.P3;}; +//// +//// AnyRefNode Deltoid_Clavicula_Cyl_Stop1={ +//// AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); +////// AnyVec3 P2 = 0.7*..ScapulaRef.O_DeltoideusLateral4.sRel+ +////// 0.3* +////// ({{0.3980767, 0.3691687, 0.8397913}, +////// {-0.1614154, 0.9293562, -0.3320272}, +////// {-0.9030393, -0.003382927, 0.4295446}}*(..HumerusRef.r0-..ScapulaRef.r0+(..HumerusRef.Axes0*(..HumerusRef.I_DeltoideusLateral4.sRel)')')')'; +//// AnyVec3 P2 = +//// ({{0.3980767, 0.3691687, 0.8397913}, +//// {-0.1614154, 0.9293562, -0.3320272}, +//// {-0.9030393, -0.003382927, 0.4295446}}*(..HumerusRef.r0-..ScapulaRef.r0+(..HumerusRef.Axes0*(..HumerusRef.Scale(..HumerusRef.Data.DeltoidStopperP2_pos))')')')'; +//// +//// AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel; +//// AnyFloat P4 = ..HumerusRef.Scale(..HumerusRef.Data.Deltoid_hum*..HumerusRef.Mirror); +//// AnyFloat P5 = ..HumerusRef.Scale(..HumerusRef.Data.Deltoid_hum_p3*..HumerusRef.Mirror); +//// +//// sRel= P1; +//// ARel=RotMat(sRel,P2,P3)*RotMat(pi/3,z);//*RotMat(pi/2,y); +//// +//// AnySurfCylinder cyl = { +//// Radius= vnorm(.P4-.P5)*1.02; +//// Length= vnorm(.sRel-.P2)*2; +//// CapRatio=1; +//// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// // CenterOrigin = On; +//// }; +//// }; +//// +//// }; +// +// AnyRefNode AlignmentRefNode = { +// ARel = .ScapulaRef.Axes0; +// AnyRefNode p1 = {sRel=.Deltoid_Clavicula_Cyl_Stop1.P1;}; +// AnyRefNode p2 = {sRel=.Deltoid_Clavicula_Cyl_Stop1.P2;}; +// AnyRefNode p3 = {sRel=.Deltoid_Clavicula_Cyl_Stop1.P3;}; +// AnyRefNode DeltoidLat4_CylCenter = {sRel= +// 0.7*..ScapulaRef.O_DeltoideusLateral4.sRel + +// +//// (0.7*{{0.3980767, 0.3691687, 0.8397913}, {-0.1614154, 0.9293562, -0.3320272}, {-0.9030393, -0.003382927, 0.4295446}}* +//// (..ClaviculaRef.r0-..ScapulaRef.r0+(..ClaviculaRef.Axes0*(..ClaviculaRef.O_DeltoideusLateral4.sRel)')')')' + +// (0.3*{{0.3980767, 0.3691687, 0.8397913}, {-0.1614154, 0.9293562, -0.3320272}, {-0.9030393, -0.003382927, 0.4295446}}* +// (..HumerusRef.r0-..ScapulaRef.r0+(..HumerusRef.Axes0*(..HumerusRef.I_DeltoideusLateral4.sRel)')')')';}; +// +// AnyRefNode Deltoid_Clavicula_Cyl_Stop1={ +// AnyVec3 P1 = ..ScapulaRef.Scale(..ScapulaRef.Data.gh_pos*..ScapulaRef.Mirror); +//// AnyVec3 P2 = 0.7*..ScapulaRef.O_DeltoideusLateral4.sRel+ +//// 0.3* +//// ({{0.3980767, 0.3691687, 0.8397913}, +//// {-0.1614154, 0.9293562, -0.3320272}, +//// {-0.9030393, -0.003382927, 0.4295446}}*(..HumerusRef.r0-..ScapulaRef.r0+(..HumerusRef.Axes0*(..HumerusRef.I_DeltoideusLateral4.sRel)')')')'; +// AnyVec3 P2 = +// ({{0.3980767, 0.3691687, 0.8397913}, +// {-0.1614154, 0.9293562, -0.3320272}, +// {-0.9030393, -0.003382927, 0.4295446}}*(..HumerusRef.r0-..ScapulaRef.r0+(..HumerusRef.Axes0*(..HumerusRef.Scale(..HumerusRef.Data.DeltoidStopperP2_pos))')')')'; +// +// AnyVec3 P3 = ..ScapulaRef.GHReactionCenterNode.sRel; +// AnyFloat P4 = ..HumerusRef.Scale(..HumerusRef.Data.Deltoid_hum*..HumerusRef.Mirror); +// AnyFloat P5 = ..HumerusRef.Scale(..HumerusRef.Data.Deltoid_hum_p3*..HumerusRef.Mirror); +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/3,z);//*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P4-.P5)*1.02; +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +// }; +// +// }; +// +// }; +// +// AnyKinLinear LatStop_m_O_DeltoideusLateral1 = { +// AnyRefNode &ref1 = .WrappingSegment_RepresentLateralStopper.O_DeltoideusLateral1; +// AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral1; +// Ref=0; +// }; +// AnyKinLinear LatStop_m_O_DeltoideusLateral4 = { +// AnyRefNode &ref1 = .WrappingSegment_RepresentLateralStopper.O_DeltoideusLateral4; +// AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral4; +// Ref=0; +// }; +// AnyKinLinear LatStop_m_I_DeltoideusLateral1 = { +// AnyRefNode &ref1 = .WrappingSegment_RepresentLateralStopper.I_DeltoideusLateral1; +// AnyRefNode &ref2 = ....Segments.Humerus.I_DeltoideusLateral1; +// Ref=0; +// }; +// AnyKinLinear LatStop_m_I_DeltoideusLateral4 = { +// AnyRefNode &ref1 = .WrappingSegment_RepresentLateralStopper.I_DeltoideusLateral4; +// AnyRefNode &ref2 = ....Segments.Humerus.I_DeltoideusLateral4; +// Ref=0; +// }; +// AnyKinLinear LatStop_m_O_DeltoideusAnterior1 = { +// AnyRefNode &ref1 = .WrappingSegment_RepresentLateralStopper.O_DeltoideusAnterior1; +// AnyRefNode &ref2 = ....Segments.Clavicula.O_DeltoideusAnterior1; +// Ref=0; +// }; + +// AnyKinLinear LatStop_m_gh_joint = { +// AnyRefNode &ref1 = .WrappingSegment.gh_joint; +// AnyRefNode &ref2=....Segments.Humerus.gh; +// Ref=0; +// }; + + +// AnyKinEq LatStop_Constraint = { +// RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { +// +// LocalReferenceFrame = &..WrappingSegment_RepresentLateralStopper.LocalReferenceFrame_ConstraintNode; +// InputMeasures = { +// &..LatStop_m_O_DeltoideusLateral1, +// &..LatStop_m_O_DeltoideusLateral4, +//// &..LatStop_m_I_DeltoideusLateral1, +// &..LatStop_m_I_DeltoideusLateral4, +//// &..m_gh_joint, +// }; +// WeightCoefficients = {1,20,20};//{1,20,0.5,1}; +// }; +// MeasureOrganizer = {3,4,5}; +// Reaction.Type ??= repmat(nDim, Off); +// }; + +// AnySphericalJoint LatStopSeg_LinConstraint = { +//// AnyKinLinear lin ={ +// AnyRefNode &ref1=....Segments.Humerus.gh ; +// AnyRefNode &ref2=.WrappingSegment_RepresentLateralStopper.gh_joint; +//// Ref = 0; +//// }; +// }; + +//// AnyKinEq LatStop_RotConstraint = { +//// AnyKinRotational rot = { +////// AnyRefNode &ref1=.....Segments.Scapula.gh_rotated1 ; +//// AnyRefNode &ref1=.....Segments.Humerus.gh; +//// AnyRefNode &ref2=..WrappingSegment_RepresentLateralStopper.gh_joint; +//// Type = RotAxesAngles; +//// }; +////}; + +//AnySphericalJoint LatStopSeg_LinConstraint = { +// // AnyKinLinear lin ={ +// AnyRefNode &ref1=....Segments.Humerus.gh ; +// AnyRefNode &ref2=.WrappingSegment_RepresentLateralStopper.gh_joint; +// // Ref = 0; +// // }; +//}; +//AnyKinEq LatStopSeg_RotConstraint = { +// AnyKinLinear lin ={ +// AnyRefNode &ref1=.....Segments.Humerus.gh ; +// AnyRefNode &ref2=..WrappingSegment_RepresentLateralStopper.gh_joint; +// Ref = 0; +// }; +//}; + +// AnyKinEq LatStop_Constraint = { +// RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { +// +// LocalReferenceFrame = &..WrappingSegment_RepresentLateralStopper.LocalReferenceFrame_ConstraintNode; +// InputMeasures = { +//// &..LatStop_m_O_DeltoideusLateral1, +// &..LatStop_m_O_DeltoideusLateral4, +//// &..LatStop_m_I_DeltoideusLateral1, +// &..LatStop_m_I_DeltoideusLateral4, +// &..m_gh_joint, +// &..LatStop_m_O_DeltoideusAnterior1, +// }; +// WeightCoefficients = {1,1,5,20};//{1,20,0.5,1}; +// }; +//// MeasureOrganizer = {3,4,5}; +// Reaction.Type ??= repmat(nDim, Off); +// }; +// +// +// AnyReacForce LatStopSeg_ForceToGHJoint = { +// AnyKinLinear lin ={ +// AnyRefNode &ref1=.....Segments.Humerus.gh ; +// AnyRefNode &ref2=..WrappingSegment_RepresentLateralStopper.gh_joint; +// Ref = 0; +// }; +// }; +// +// AnyReacForce LatStopSeg_MomentsToCalvicula = +// { +// AnyKinRotational rot ={ +// AnyRefFrame &ref1=..WrappingSegment_RepresentLateralStopper; +// AnyRefFrame &ref2=.....Segments.Clavicula; +// Type=RotVector; +// }; +// }; + +//-------------------------------------------------------New rake seg +AnySeg WrappingSegment_RepresentDeltoidLateral ={ + + Mass=1e-5; + Jii={0.0,0.0,0.0}; + + r0= ScapulaRef.r0; + //Axes0 = ScapulaRef.Axes0; + + AnySeg &ScapulaRef = ....Segments.Scapula; + AnySeg &HumerusRef = ....Segments.Humerus; + AnySeg &ClaviculaRef = ....Segments.Clavicula; + + AnyRefNode LocalReferenceFrame_ConstraintNode = {sRel= {0,0,0}; ARel= .ScapulaRef.Axes0;}; + AnyRefNode gh_joint = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';ARel = .ScapulaRef.Axes0;}; + AnyRefNode O_DeltoideusLateral1 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral1.sRel')';}; + AnyRefNode O_DeltoideusLateral2 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral2.sRel')';}; + AnyRefNode O_DeltoideusLateral3 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral3.sRel')';}; + AnyRefNode O_DeltoideusLateral4 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral4.sRel')';}; + AnyRefNode I_DeltoideusLateral1 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral1.sRel')';}; + AnyRefNode I_DeltoideusLateral2 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral2.sRel')';}; + // AnyRefNode I_DeltoideusLateral4 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral4.sRel')';}; + // AnyRefNode O_DeltoideusAnterior1 = {sRel= .ClaviculaRef.r0 -.r0 + (.ClaviculaRef.Axes0 * .ClaviculaRef.O_DeltoideusAnterior1.sRel')';}; + AnyRefNode O_DeltoideusAnterior1 = {sRel= .ClaviculaRef.r0 -.r0 + (.ClaviculaRef.Axes0 * .ClaviculaRef.O_DeltoideusAnterior1.sRel')';}; + + AnyRefNode MidOriginDeltoidLateral = {sRel= 0.5*(.O_DeltoideusLateral2.sRel+.O_DeltoideusLateral3.sRel); + ARel = RotMat(.O_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.I_DeltoideusLateral2.sRel);}; + AnyRefNode MidOriginDeltoidLateral_Normal = {sRel= 0.5*(.O_DeltoideusLateral2.sRel+.O_DeltoideusLateral3.sRel); + ARel = RotMat(.I_DeltoideusLateral2.sRel,.MidOriginDeltoidLateral.sRel,.gh_joint.sRel);}; + + + AnyRefNode DL3OriginDeltoidLateral_Normal = {sRel= .O_DeltoideusLateral3.sRel; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; + AnyRefNode DL4OriginDeltoidLateral_Normal = {sRel= .O_DeltoideusLateral4.sRel; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + + AnyRefNode O_DeltoideusLateralMid = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * 0.5* (.ScapulaRef.O_DeltoideusLateral2.sRel+.ScapulaRef.O_DeltoideusLateral3.sRel)')';}; + AnyRefNode gh_joint_tilted = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';ARel = .Axes0'*RotMat(-pi/6,x);}; + AnyRefNode O_DeltoideusLateralMid_Aligned = {sRel= .O_DeltoideusLateralMid.sRel; + ARel = RotMat(.O_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; + + // AnyRefNode DL3ViaDeltoidLateral_Normal = {sRel= .ViaNode1_DL3.sRel; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.ViaNode1_DL3.sRel,.gh_joint.sRel);}; + +// Via nodes made in the plane of three nodes : gh, mid lat deltoid origin, insertion on humerus +// AnyRefNode ViaNode1_DL1 = {sRel= .O_DeltoideusLateral1.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereDL1.Radius*0.3; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL2 = {sRel= .O_DeltoideusLateral2.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereDL1.Radius*0.3; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL3 = {sRel= .O_DeltoideusLateral3.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereDL1.Radius*0.3; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= .O_DeltoideusLateral4.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereDL1.Radius*0.3; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + +// AnyRefNode ViaNode1_DL1 = {sRel= .O_DeltoideusLateral1.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel)* {-1,-1,0}')'*.WrappingShpereCylRadius.Radius/1.414; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL2 = {sRel= .O_DeltoideusLateral2.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel)* {-1,-1,0}')'*.WrappingShpereCylRadius.Radius/1.414; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL3 = {sRel= .O_DeltoideusLateral3.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel)* {-1,-1,0}')'*.WrappingShpereCylRadius.Radius/1.414; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= .O_DeltoideusLateral4.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* {-1,-1,0}')'*.WrappingShpereCylRadius.Radius/1.414; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + + +// Via nodes made with O_DeltoideusLateralOut instead of O_DeltoideusLateral2 + AnyRefNode O_DeltoideusLateralMid3_4 = {sRel= (.O_DeltoideusLateral3.sRel+.O_DeltoideusLateral4.sRel)/2;}; + AnyRefNode DL3OriginDeltoidLateral_Normal_mid3_4 = {sRel= .O_DeltoideusLateralMid3_4.sRel; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel);}; + +// AnyRefNode ViaNode1_DL1 = {sRel= .O_DeltoideusLateral1.sRel + (RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereDL1.Radius*0.3; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL2 = {sRel= .O_DeltoideusLateral2.sRel + (RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereDL1.Radius*0.3; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL3 = {sRel= .O_DeltoideusLateral3.sRel + (RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereDL1.Radius*0.3; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= .O_DeltoideusLateral4.sRel + (RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereDL1.Radius*0.3; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + +// AnyRefNode ViaNode1_DL1 = {sRel= .O_DeltoideusLateral1.sRel + (RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel)* {-1,-1,0}')'*.WrappingShpereDL1.Radius/1.6; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL2 = {sRel= .O_DeltoideusLateral2.sRel + (RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel)* {-1,-1,0}')'*.WrappingShpereDL1.Radius/1.6; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL3 = {sRel= .O_DeltoideusLateral3.sRel + (RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel)* {-1,-1,0}')'*.WrappingShpereDL1.Radius/1.6; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= .O_DeltoideusLateral4.sRel + (RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel)* {-1,-1,0}')'*.WrappingShpereDL1.Radius/1.6; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + +// AnyRefNode ViaNode1_DL1 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL2 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL3 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* {0,-1,0}')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + +////-----------------------------------------------------Via nodes ON THE SPHERE using planes of insertion, gh, origin for EACH muscle +//AnyFloat DirectionVia1 = {1,-1,0}/vnorm({1,-1,0}); +//AnyFloat RadiusVia1 = WrappingShpereCylRadius.Radius; +////AnyFloat RadiusVia1 = ScapulaRef.DeltoidLateral_NormaltoScapula.cyl.Radius; +// AnyRefNode ViaNode1_DL1 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel)* .DirectionVia1')'*.RadiusVia1; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL2 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel)* .DirectionVia1')'*.RadiusVia1; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL3 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel)* .DirectionVia1')'*.RadiusVia1; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* .DirectionVia1')'*.RadiusVia1; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + + //AnyFloat DirectionVia1 = {0,-1,0}/vnorm({0,-1,0}); +////AnyFloat DirectionVia2 = {0,-1,0}/vnorm({0,-1,0}); +// AnyRefNode ViaNode1_DL1 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel)* .DirectionVia1')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL2 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel)* .DirectionVia1')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL3 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel)* .DirectionVia1')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* .DirectionVia1')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode2_DL1 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel)* .DirectionVia2')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode2_DL2 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel)* .DirectionVia2')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode2_DL3 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel)* .DirectionVia2')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode2_DL4 = {sRel= .gh_joint.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* .DirectionVia2')'*.WrappingShpereCylRadius.Radius; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + + +////-----------------------------------------------------Via nodes using mid plane for 1,2,3 and insertion, gh, origin for 4 deltoid lateral +//AnyFloat DirectionVia1 = {0,-1,0}/vnorm({0,-1,0}); +////AnyFloat RadiusVia1 = WrappingShpereCylRadius.Radius; +//AnyFloat RadiusVia1 = ScapulaRef.DeltoidLateral_NormaltoScapula.cyl.Radius; +//AnyFloat CoordinateDirectionMid = RotMat(I_DeltoideusLateral2.sRel,DL3OriginDeltoidLateral_Normal_mid3_4.sRel,gh_joint.sRel); +//AnyFloat CoordinateDirection = RotMat(I_DeltoideusLateral2.sRel,DL3OriginDeltoidLateral_Normal.sRel,gh_joint.sRel); +// AnyRefNode ViaNode1_DL1 = {sRel= .O_DeltoideusLateral1.sRel + (.CoordinateDirection* .DirectionVia1')'*.RadiusVia1; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL2 = {sRel= .O_DeltoideusLateral2.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL3 = {sRel= .O_DeltoideusLateral3.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= .O_DeltoideusLateral4.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* .DirectionVia1')'*.RadiusVia1; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + +////-----------------------------------------------------Via nodes using mid plane for 1,2,3 and insertion, gh, origin for 4 deltoid lateral +//AnyFloat DirectionVia1 = {-1,-1,0}/vnorm({-1,-1,0}); +////AnyFloat RadiusVia1 = WrappingShpereCylRadius.Radius; +//AnyFloat RadiusVia1 = ScapulaRef.DeltoidLateral_NormaltoScapula.cyl.Radius; +//AnyFloat CoordinateDirectionMid = RotMat(I_DeltoideusLateral2.sRel,DL3OriginDeltoidLateral_Normal_mid3_4.sRel,gh_joint.sRel); +//AnyFloat CoordinateDirection = RotMat(I_DeltoideusLateral2.sRel,DL3OriginDeltoidLateral_Normal.sRel,gh_joint.sRel); +// AnyRefNode ViaNode1_DL1 = {sRel= .O_DeltoideusLateral1.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1*0.6; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL2 = {sRel= .O_DeltoideusLateral2.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1*0.8; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL3 = {sRel= .O_DeltoideusLateral3.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1*1.0; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= .O_DeltoideusLateral4.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* .DirectionVia1')'*.RadiusVia1*0.8; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + + +//-----------------------------------------------------Via nodes ON THE SPHERE manual vianode placement +AnyFloat DirectionVia1 = {-1.3,-1,0}/vnorm({-1.3,-1,0}); +AnyFloat RadiusVia1 = WrappingShpereCylRadius.Radius; +//AnyFloat RadiusVia1 = ScapulaRef.DeltoidLateral_NormaltoScapula.cyl.Radius; +AnyFloat CoordinateDirectionMid = RotMat(I_DeltoideusLateral2.sRel,DL3OriginDeltoidLateral_Normal_mid3_4.sRel,gh_joint.sRel); +AnyFloat CoordinateDirection = RotMat(I_DeltoideusLateral2.sRel,DL3OriginDeltoidLateral_Normal.sRel,gh_joint.sRel); + AnyRefNode ViaNode1_DL1 = {sRel= .O_DeltoideusLateral1.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1*0.6; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; + AnyRefNode ViaNode1_DL2 = {sRel= .O_DeltoideusLateral2.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1*0.8; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; + AnyRefNode ViaNode1_DL3 = {sRel= .O_DeltoideusLateral3.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; + AnyRefNode ViaNode1_DL4 = {sRel= .O_DeltoideusLateral4.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* .DirectionVia1')'*.RadiusVia1; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + + + + AnySurfPlaneFit MidDeltoidSurface = { + Points = {.MidOriginDeltoidLateral.sRel,.gh_joint.sRel,.I_DeltoideusLateral2.sRel}; + }; + AnySurfPlaneFit DL4DeltoidSurface = { + Points = {.DL4OriginDeltoidLateral_Normal.sRel,.gh_joint.sRel,.I_DeltoideusLateral2.sRel}; + }; + AnySurfPlaneFit DL3_HumI1_DeltoidSurface = { + Points = {.DL3OriginDeltoidLateral_Normal.sRel,.gh_joint.sRel,.I_DeltoideusLateral1.sRel}; + }; + AnySurfPlaneFit DLmid3_4_HumI1_DeltoidSurface = { + Points = {.DL3OriginDeltoidLateral_Normal_mid3_4.sRel,.gh_joint.sRel,.I_DeltoideusLateral1.sRel}; + }; + AnySurfPlaneFit DL4_Via_DeltoidSurface = { + Points = {.ViaNode1_DL4.sRel,.gh_joint.sRel,.I_DeltoideusLateral1.sRel}; + }; + + AnySurfSphere WrappingShpereDL1 = { sRel = .gh_joint.sRel; Radius = vnorm(sRel-.O_DeltoideusLateral1.sRel)*0.95; }; + AnySurfSphere WrappingShpereDL2 = { sRel = .gh_joint.sRel; Radius = vnorm(sRel-.O_DeltoideusLateral2.sRel)*0.95; }; + AnySurfSphere WrappingShpereDL3 = { sRel = .gh_joint.sRel; Radius = vnorm(sRel-.O_DeltoideusLateral3.sRel)*0.95; }; + AnySurfSphere WrappingShpereDL4 = { sRel = .gh_joint.sRel; Radius = vnorm(sRel-.O_DeltoideusLateral4.sRel)*0.95; }; + AnySurfSphere WrappingShpereCylRadius = { sRel = .gh_joint.sRel; Radius = ...DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*1.01; }; + + AnyRefNode WrappingShpere_LatSurfNode = {sRel= .gh_joint.sRel + .WrappingShpereCylRadius.Radius*{0,0,1};}; + AnyRefNode WrappingShpere_InfSurfNode = {sRel= .gh_joint.sRel + .WrappingShpereCylRadius.Radius*{0,-1,0};}; + AnyRefNode FillGap_CenterSphere = {sRel= .gh_joint.sRel+{-0.01,0.006,-0.006};}; + AnySurfSphere FillGap_Sphere = { sRel = .FillGap_CenterSphere.sRel; + Radius = vnorm(.WrappingShpere_InfSurfNode.sRel - .O_DeltoideusLateral3.sRel)/2; }; + + +AnyRefNode FillGap_Cyl={ + AnyVec3 P1 = .FillGap_CenterSphere.sRel; + + sRel= .FillGap_CenterSphere.sRel; + ARel= .ScapulaRef.Axes0*...DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Represent_Infraspinatus_Cyl.ARel*RotMat(pi,x); + + + AnySurfCylinder cyl = { + Radius= vnorm(..WrappingShpere_InfSurfNode.sRel - ..O_DeltoideusLateral3.sRel)/2*0.9; + Length= Radius/10; + CapRatio=3; + CapRatio2=1; + AnyDrawParamSurf drw={RGB={0,0,1};}; + }; +}; + + + + +/////////////////////////////////////// 2nd try +//AnyRefNode Lat4_tilted_posterior_wrapping={ +// AnyVec3 P1 = .ViaNode1_DL4.sRel; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = .O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = .GHReactionCenterNode.sRel; +// +// sRel= P1+(.O_DeltoideusLateral2.sRel-.O_DeltoideusLateral3.sRel)/2; +// ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x); +// +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4); +// Length= Radius*7; +// CapRatio=1; +// AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +//}; +// +////-----------Off-centered to gh with insertion diff +//AnyRefNode Lat4_tilted_anterior_wrapping={ +// AnyVec3 P1 = .gh.sRel; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = .O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = .GHReactionCenterNode.sRel; +// +// sRel= P1+(..O_DeltoideusAnterior1.sRel-..O_DeltoideusLateral4.sRel); +// ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x); +// +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4); +// Length= Radius*7; +// CapRatio=1; +// AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +//}; + +}; + +//-------------------------------------------------------Adding nodes on segments +WrappingSegment_RepresentDeltoidLateral.HumerusRef = { + AnyRefNode I_DeltoideusLateral2_InPlane = {sRel= .I_DeltoideusLateral2.sRel; + ARel = RotMat(.I_DeltoideusLateral2.sRel, + Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.MidOriginDeltoidLateral.sRel, + Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.O_DeltoideusLateral3.sRel);}; + AnyRefNode gh_aligned = {sRel= .gh.sRel; + ARel = ......Segments.Humerus.Axes0' * ......Segments.Scapula.Axes0;}; + + AnyRefNode ViaNode2_DL4 = {sRel= {0.018879, -0.031999, -0.008381-0.01};}; + +}; + +WrappingSegment_RepresentDeltoidLateral.ScapulaRef = { + AnyRefNode MidOriginDeltoidLateral = {sRel= 0.5*(.O_DeltoideusLateral2.sRel+.O_DeltoideusLateral3.sRel);}; +// AnyRefNode DL3ViaDeltoidLateral_Normal = {sRel= Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.ViaNode_DL3.sRel; +// ARel = RotMat(.O_DeltoideusLateral2.sRel, +// Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.MidOriginDeltoidLateral.sRel, +// Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.ViaNode_DL3.sRel);}; + +AnyRefNode DeltoidLateral_NormaltoScapula={ + AnyVec3 P1 = .gh.sRel; + AnyVec3 P2 = .O_DeltoideusLateral4.sRel; + AnyVec3 P3 = .O_DeltoideusLateral1.sRel; + AnyVec3 P4 = .GHReactionCenterNode.sRel; + + sRel= P1; + ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x); + + + AnySurfCylinder cyl = { + Radius= vnorm(.P1-.P4); + Length= Radius*7; + CapRatio=1; + AnyDrawParamSurf drw={RGB={0,0,1};}; + // CenterOrigin = On; + }; +}; + +AnyRefNode DeltoidAnterior_NormaltoScapula_TiltedStop={ + AnyVec3 P1 = .gh.sRel; + AnyVec3 P2 = .O_DeltoideusLateral4.sRel; + AnyVec3 P3 = .O_DeltoideusLateral1.sRel; + AnyVec3 P4 = .GHReactionCenterNode.sRel; + + sRel= P1; + ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x)*RotMat(-pi/10,y); + + + AnySurfCylinder cyl = { + Radius= vnorm(.P1-.P4)*1.3; + Length= Radius*7; + CapRatio=1; + AnyDrawParamSurf drw={RGB={0,0,1};}; + // CenterOrigin = On; + }; +}; + +AnyRefNode DeltoidPosterior_NormaltoScapula={ + AnyVec3 P1 = .gh.sRel; + AnyVec3 P2 = .O_DeltoideusLateral4.sRel; + AnyVec3 P3 = .O_DeltoideusLateral1.sRel; + AnyVec3 P4 = .GHReactionCenterNode.sRel; + + sRel= P1; + ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x)*RotMat(-pi/10,y); + + + AnySurfCylinder cyl = { + Radius= vnorm(.P1-.P4)*1.3; + Length= Radius*7; + CapRatio=1; + AnyDrawParamSurf drw={RGB={0,0,1};}; + // CenterOrigin = On; + }; + AnySurfCylinder cyl_lat1 = { + Radius= vnorm(.P1-.P4); + Length= Radius*7; + CapRatio=1; + AnyDrawParamSurf drw={RGB={0,0,1};}; + // CenterOrigin = On; + }; + +}; + + +//AnyRefNode Lat4_tilted_posterior_wrapping={ +// AnyVec3 P1 = .gh.sRel; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = .O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = .GHReactionCenterNode.sRel; +// +// sRel= P1; +// ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x)*RotMat(-pi/10,x); +// +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4); +// Length= Radius*7; +// CapRatio=1; +// AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +//}; + + +/////////////////////////////////////// 1st try +AnyRefNode Lat4_tilted_posterior_wrapping={ + AnyVec3 P1 = .gh.sRel; + AnyVec3 P2 = .O_DeltoideusLateral4.sRel; + AnyVec3 P3 = .O_DeltoideusLateral1.sRel; + AnyVec3 P4 = .GHReactionCenterNode.sRel; + + sRel= P1+(.O_DeltoideusLateral2.sRel-.O_DeltoideusLateral3.sRel)/2; + ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x)*RotMat(-pi/5,y); + + + AnySurfCylinder cyl = { + Radius= vnorm(.P1-.P4); + Length= Radius*7; + CapRatio=1; + AnyDrawParamSurf drw={RGB={0,0,1};}; + // CenterOrigin = On; + }; +}; + +//-----------Off-centered to gh with insertion diff +AnyRefNode Lat4_tilted_anterior_wrapping={ + AnyVec3 P1 = .gh.sRel; + AnyVec3 P2 = .O_DeltoideusLateral4.sRel; + AnyVec3 P3 = .O_DeltoideusLateral1.sRel; + AnyVec3 P4 = .GHReactionCenterNode.sRel; + + sRel= P1+(..O_DeltoideusAnterior1.sRel-..O_DeltoideusLateral4.sRel); + ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x)*RotMat(pi/5,x); + + + AnySurfCylinder cyl = { + Radius= vnorm(.P1-.P4); + Length= Radius*7; + CapRatio=1; + AnyDrawParamSurf drw={RGB={0,0,1};}; + // CenterOrigin = On; + }; +}; + +/////////////////////////////////////// 2st try +//AnyRefNode Lat4_tilted_posterior_wrapping={ +// AnyVec3 P1 = .gh.sRel; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = .O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = .GHReactionCenterNode.sRel; +// +// sRel= P1+(.O_DeltoideusLateral3.sRel-.O_DeltoideusLateral4.sRel); +// ARel= .Axes0' * ....LateralDeltoid_ViaNodeSegment.ViaNode1_DL4.ARel*RotMat(pi/2,y);//RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x); +// +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4); +// Length= Radius*7; +// CapRatio=1; +// AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +//}; +// +////-----------Off-centered to gh with insertion diff +//AnyRefNode Lat4_tilted_anterior_wrapping={ +// AnyVec3 P1 = .gh.sRel; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = .O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = .GHReactionCenterNode.sRel; +// +// sRel= P1+(..O_DeltoideusAnterior1.sRel-..O_DeltoideusLateral4.sRel); +// ARel=.Lat4_tilted_posterior_wrapping.ARel; //RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x); +// +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4); +// Length= Radius*7; +// CapRatio=1; +// AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +//}; + +//AnyRefNode Lat4_tilted_posterior_wrapping={ +// AnyVec3 P1 = .gh.sRel; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = .O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = .GHReactionCenterNode.sRel; +// +// sRel= P1+(.O_DeltoideusLateral3.sRel-.O_DeltoideusLateral4.sRel)+{0.023,0,-0.008}; +// ARel= .Axes0' * ....LateralDeltoid_ViaNodeSegment.ViaNode1_DL4.ARel*RotMat(pi/2,y);//RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x); +// +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4)*0.7; +// Length= Radius*7; +// CapRatio=1; +// AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +//}; +// +////-----------Off-centered to gh with insertion diff +//AnyRefNode Lat4_tilted_anterior_wrapping={ +// AnyVec3 P1 = .gh.sRel; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = .O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = .GHReactionCenterNode.sRel; +// +// sRel= P1+(..O_DeltoideusAnterior1.sRel-..O_DeltoideusLateral4.sRel)+{0.008,0,-0.008}; +// ARel=.Lat4_tilted_posterior_wrapping.ARel; //RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x); +// +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4)*0.7; +// Length= Radius*7; +// CapRatio=1; +// AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +//}; + + + +//-----------centered to gh and DelAnt2 +//AnyRefNode Lat4_tilted_anterior_wrapping={ +// AnyVec3 P1 = .gh.sRel; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = .O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = .GHReactionCenterNode.sRel; +// +// sRel= P1; +// ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y)*RotMat(pi/2,x)*RotMat(pi/4,y)*RotMat(pi/10,x); +// +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4); +// Length= Radius*7; +// CapRatio=1; +// AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +//}; + +}; +//// ARel = RotMat(.O_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.I_DeltoideusLateral2.sRel);}; +//// ARel = RotMat(.I_DeltoideusLateral2.sRel, +//// Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.MidOriginDeltoidLateral.sRel, +//// Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.O_DeltoideusLateral3.sRel);}; +// +// +////-------------------------------------------------------3 linear +//AnySphericalJoint LatStopSeg_LinConstraint = { +// AnyRefNode &ref1=....Segments.Humerus.gh ; +// AnyRefNode &ref2=.WrappingSegment_RepresentDeltoidLateral.gh_joint; +//}; +// +////-------------------------------------------------------3 rotational +////AnyKinEq HumerusConstraints = { +//// MeasureOrganizer = {1,2}; +//// AnyKinLinear lin ={ +//// AnyRefNode &ref1=.....Segments.Humerus.I_DeltoideusLateral2_InPlane ; +////// AnyRefNode &ref2=..WrappingSegment_RepresentDeltoidLateral.I_DeltoideusLateral2; +//// AnyRefNode &ref2=..WrappingSegment_RepresentDeltoidLateral.DL4OriginDeltoidLateral_Normal; +//// Ref = 1; +//// }; +////}; +// +////AnyKinEq Normal_surface = { +//// MeasureOrganizer = {2}; +//// AnyKinLinear lin ={ +//// // AnyRefNode &ref1=.....Segments.Scapula.MidOriginDeltoidLateral ; +//// // AnyRefNode &ref2=..WrappingSegment_RepresentDeltoidLateral.MidOriginDeltoidLateral_Normal; +//// +//// AnyRefNode &ref1=.....Segments.Scapula.O_DeltoideusLateral4 ; +//// AnyRefNode &ref2=..WrappingSegment_RepresentDeltoidLateral.DL4OriginDeltoidLateral_Normal; +//// Ref = 1; +//// }; +////}; +// +// +////AnyKinEq FixToScapula +// +////-------------------------------------------------------Average +//AnyKinLinear LatStop_m_O_DeltoideusLateral1 = { +// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.O_DeltoideusLateral1; +// AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral1; +// Ref=0; +//}; +//AnyKinLinear LatStop_m_O_DeltoideusLateral4 = { +// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.O_DeltoideusLateral4; +// AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral4; +// Ref=0; +//}; +//AnyKinLinear LatStop_m_I_DeltoideusLateral2 = { +// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.I_DeltoideusLateral2; +// AnyRefNode &ref2 = ....Segments.Humerus.I_DeltoideusLateral2; +// Ref=0; +//}; +//AnyKinLinear LatStop_m_gh_joint = { +// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.gh_joint; +// AnyRefNode &ref2=....Segments.Humerus.gh; +// Ref=0; +//}; +// +// +//AnyKinEq LatStop_Constraint = { +// RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { +// +// LocalReferenceFrame = &..WrappingSegment_RepresentDeltoidLateral.MidOriginDeltoidLateral; +// InputMeasures = { +// &..LatStop_m_O_DeltoideusLateral1, +// &..LatStop_m_O_DeltoideusLateral4, +// &..LatStop_m_I_DeltoideusLateral2, +// &..m_gh_joint, +// }; +// +// WeightCoefficients = {100,100,0.1,0.1}; +// }; +// MeasureOrganizer = {3,4,5}; +// +//// WeightCoefficients = {2,2,1,0.5}; +//// }; +//// MeasureOrganizer = {0,1,2,3,4,5}; +// +// Reaction.Type ??= repmat(nDim, Off); +//}; +// +// +//////-------------------------------------------------------Average +////AnyKinLinear LatStop_m_O_DeltoideusLateral1 = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.O_DeltoideusLateral1; +//// AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral1; +//// Ref=0; +////}; +////AnyKinLinear LatStop_m_O_DeltoideusLateral4 = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.O_DeltoideusLateral4; +//// AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral4; +//// Ref=0; +////}; +////AnyKinLinear LatStop_m_I_DeltoideusLateral2 = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.I_DeltoideusLateral2; +//// AnyRefNode &ref2 = ....Segments.Humerus.I_DeltoideusLateral2; +//// Ref=0; +////}; +////AnyKinLinear LatStop_m_gh_joint = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.gh_joint; +//// AnyRefNode &ref2=....Segments.Humerus.gh; +//// Ref=0; +////}; +//// +////AnyKinRotational rot_gh_hum = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.gh_joint; +//// AnyRefNode &ref2=....Segments.Humerus.gh_aligned; +//// Ref=0; +//// Type=RotAxesAngles; +////}; +////AnyKinRotational rot_gh_scap = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral.gh_joint; +//// AnyRefNode &ref2=....Segments.Scapula.gh; +//// Ref=0; +//// Type=RotAxesAngles; +////}; +// +////AnyKinEq LatStop_Constraint_lin = { +//// RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { +//// +//// LocalReferenceFrame = &..WrappingSegment_RepresentDeltoidLateral.gh_joint; +//// InputMeasures = { +//// &..LatStop_m_O_DeltoideusLateral1, +//// &..LatStop_m_O_DeltoideusLateral4, +//// &..LatStop_m_I_DeltoideusLateral2, +//// &..m_gh_joint, +//// }; +//// WeightCoefficients = {10,10,5,10}; +//// }; +//// MeasureOrganizer = {0,1,2}; +//// Reaction.Type ??= repmat(nDim, Off); +////}; +//// +//////AnyKinEq LatStop_Constraint_rot = { +////// RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { +////// +////// LocalReferenceFrame = &..WrappingSegment_RepresentDeltoidLateral.MidOriginDeltoidLateral; +////// InputMeasures = { +////// }; +////// WeightCoefficients = {1,2}; +////// }; +////// MeasureOrganizer = {3,4,5}; +////// Reaction.Type ??= repmat(nDim, Off); +//////}; +// +////AnyKinMeasureOrg humx = { MeasureOrganizer = {2}; AnyKinMeasure &hum = .rot_gh_hum; }; +////AnyKinMeasureOrg humy = { MeasureOrganizer = {1}; AnyKinMeasure &hum = .rot_gh_hum; }; +////AnyKinMeasureOrg humz = { MeasureOrganizer = {0}; AnyKinMeasure &hum = .rot_gh_hum; }; +////AnyKinMeasureOrg scax = { MeasureOrganizer = {2}; AnyKinMeasure &hum = .rot_gh_scap; }; +////AnyKinMeasureOrg scay = { MeasureOrganizer = {1}; AnyKinMeasure &hum = .rot_gh_scap; }; +////AnyKinMeasureOrg scaz = { MeasureOrganizer = {0}; AnyKinMeasure &hum = .rot_gh_scap; }; +//// +////AnyKinEq Constraint_rot = { +////AnyKinMeasureLinComb m_Constraint_rot = +////{ +//// //viewKinMeasure.Visible = Off; +//// OutDim = 3; +//// Coef = {{1,0,0,2,0,0},{0,1,0,0,2,0},{0,0,1,0,0,2}}/3; +//// AnyKinMeasure &humx = ..humx; +//// AnyKinMeasure &humy = ..humy; +//// AnyKinMeasure &humz = ..humz; +//// AnyKinMeasure &scax = ..scax; +//// AnyKinMeasure &scay = ..scay; +//// AnyKinMeasure &scaz = ..scaz; +////}; +////}; + +AnyRevoluteJoint Revolute_WrappingSegment_RepresentDeltoidLateral = { + Axis = x; + AnyRefFrame &Scapula = .WrappingSegment_RepresentDeltoidLateral.ScapulaRef.O_DeltoideusLateralMid_Aligned; + AnyRefFrame &wrappingSeg = .WrappingSegment_RepresentDeltoidLateral.O_DeltoideusLateralMid_Aligned; +}; + + +////-------------------------------------------------------Fix to Scapula + AnyKinEqSimpleDriver WrappingSegment_RepresentDeltoidLateral_FixToScapula ={ + AnyKinLinear lin = { + Ref=0; + AnyRefFrame &LayerNode = ..WrappingSegment_RepresentDeltoidLateral.ScapulaRef.gh_tilted; + AnyRefNode &ref=..WrappingSegment_RepresentDeltoidLateral.gh_joint_tilted; + }; + MeasureOrganizer ={0}; + DriverPos =repmat(nDim,0); + DriverVel =repmat(nDim,0); + Reaction.Type ??=repmat(nDim,Off); + }; + + + + + + + +//////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////// +//-------------------------------------------------------Seg on the lateral deltoid plane +//AnySeg RepresentDeltoidLateral_Plane ={ +// +// Mass=1e-5; +// Jii={0.0,0.0,0.0}; +// +// r0= ScapulaRef.r0; +// //Axes0 = ScapulaRef.Axes0; +// +// AnySeg &ScapulaRef = ....Segments.Scapula; +// AnySeg &HumerusRef = ....Segments.Humerus; +// AnySeg &ClaviculaRef = ....Segments.Clavicula; +// +// AnyRefNode LocalReferenceFrame_ConstraintNode = {sRel= {0,0,0}; ARel= .ScapulaRef.Axes0;}; +// AnyRefNode gh_joint = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';ARel = .ScapulaRef.Axes0;}; +// AnyRefNode O_DeltoideusLateral1 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral1.sRel')';}; +// AnyRefNode O_DeltoideusLateral2 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral2.sRel')';}; +// AnyRefNode O_DeltoideusLateral3 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral3.sRel')';}; +// AnyRefNode O_DeltoideusLateral4 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral4.sRel')';}; +// AnyRefNode I_DeltoideusLateral1 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral1.sRel')';}; +// AnyRefNode I_DeltoideusLateral2 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral2.sRel')';}; +// +// AnyRefNode DL4OriginDeltoidLateral_Normal = {sRel= .O_DeltoideusLateral4.sRel; +// ARel = RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral4.sRel,.O_DeltoideusLateral1.sRel);}; +// AnyRefNode ghDeltoidLateral_Normal = {sRel= .gh_joint.sRel; +// ARel = RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral4.sRel,.O_DeltoideusLateral1.sRel);}; +// +// +// AnySurfPlaneFit LateralDeltoidPlane = { +// Points = {.O_DeltoideusLateral1.sRel,.O_DeltoideusLateral4.sRel,.I_DeltoideusLateral1.sRel}; +// }; +// +//AnyRefNode AlignmentRefNode = { +// ARel = .ScapulaRef.Axes0; +// AnyRefNode DeltoidLateral_Posterior_Cyl={ +// +// AnyVec3 P1 = ..ScapulaRef.gh.sRel; +// AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = ..ScapulaRef.O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = ..ScapulaRef.GHReactionCenterNode.sRel; +// +// sRel= P1; +// ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4)*1.3; +// Length= Radius*4; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +// }; +//}; +// +// +// AnySurfPlaneFit LateralDeltoidPlane_Prep1 = { +// Points = {.O_DeltoideusLateral1.sRel,.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral1.sRel+(.LateralDeltoidPlane.ARel*{0,0,0.01}')'}; +// }; +// AnySurfPlaneFit LateralDeltoidPlane_Prep2 = { +// Points = {.O_DeltoideusLateral2.sRel,.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral2.sRel+(.LateralDeltoidPlane.ARel*{0,0,0.01}')'}; +// }; +// AnySurfPlaneFit LateralDeltoidPlane_Prep3 = { +// Points = {.O_DeltoideusLateral3.sRel,.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral3.sRel+(.LateralDeltoidPlane.ARel*{0,0,0.01}')'}; +// }; +// AnySurfPlaneFit LateralDeltoidPlane_Prep4 = { +// Points = {.O_DeltoideusLateral4.sRel,.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral4.sRel+(.LateralDeltoidPlane.ARel*{0,0,0.01}')'}; +// }; +// +////AlignmentRefNode = { +// AnyRefNode DeltoidLateral_Posterior_Cyl1={ +// +// AnyVec3 P1 = (.ScapulaRef.Axes0*.ScapulaRef.gh.sRel')'; +// AnyVec3 P2 = (.ScapulaRef.Axes0*.ScapulaRef.GHReactionCenterNode.sRel')'; +// +// sRel= P1; +// ARel=.LateralDeltoidPlane_Prep1.ARel; +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P2)*1.3; +// Length= Radius*7; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// }; +// AnyRefNode DeltoidLateral_Posterior_Cyl2={ +// +// AnyVec3 P1 = (.ScapulaRef.Axes0*.ScapulaRef.gh.sRel')'; +// AnyVec3 P2 = (.ScapulaRef.Axes0*.ScapulaRef.GHReactionCenterNode.sRel')'; +// +// sRel= P1; +// ARel=.LateralDeltoidPlane_Prep2.ARel; +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P2)*1.3; +// Length= Radius*7; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// }; +// AnyRefNode DeltoidLateral_Posterior_Cyl3={ +// +// AnyVec3 P1 = (.ScapulaRef.Axes0*.ScapulaRef.gh.sRel')'; +// AnyVec3 P2 = (.ScapulaRef.Axes0*.ScapulaRef.GHReactionCenterNode.sRel')'; +// +// sRel= P1; +// ARel=.LateralDeltoidPlane_Prep3.ARel; +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P2)*1.3; +// Length= Radius*7; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// }; +// AnyRefNode DeltoidLateral_Posterior_Cyl4={ +// +// AnyVec3 P1 = (.ScapulaRef.Axes0*.ScapulaRef.gh.sRel')'; +// AnyVec3 P2 = (.ScapulaRef.Axes0*.ScapulaRef.GHReactionCenterNode.sRel')'; +// +// sRel= P1; +// ARel=.LateralDeltoidPlane_Prep4.ARel; +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P2)*1.3; +// Length= Radius*7; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// }; +// +//}; +// +// +/////////////////////////////////////////////Constraints +////-------------------------------------------------------Adding nodes on segments +//RepresentDeltoidLateral_Plane.HumerusRef = { +// AnyRefNode I_DeltoideusLateral1_InPlane = {sRel= .I_DeltoideusLateral1.sRel; +// ARel = RotMat(.I_DeltoideusLateral1.sRel, +// Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.RepresentDeltoidLateral_Plane.O_DeltoideusLateral4.sRel, +// Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.RepresentDeltoidLateral_Plane.O_DeltoideusLateral1.sRel);}; +//}; +//WrappingSegment_RepresentDeltoidLateral.ScapulaRef = { +// AnyRefNode DeltoidLateral_Posterior_Cyl={ +// AnyVec3 P1 = .gh.sRel; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = .O_DeltoideusLateral1.sRel; +// +// sRel= P1; +// ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y); +// }; +// +// AnyRefNode DeltoidLateral_NormaltoScapula_Cyl={ +// AnyVec3 P1 = .gh.sRel; +// AnyVec3 P2 = .GHReactionCenterNode.sRel; +// +// sRel= P1; +// ARel=.DeltoidLateral_Posterior_Cyl.ARel*RotMat(pi/2,x); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P2); +// Length= Radius*7; +// CapRatio=1; +// AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// }; +// +//}; +// +////-------------------------------------------------------3 linear +//AnySphericalJoint DeltoidLateralSeg_Plane_ScapulaConstraint_Spherical = { +// AnyRefNode &ref1=....Segments.Scapula.O_DeltoideusLateral1 ; +// AnyRefNode &ref2=.RepresentDeltoidLateral_Plane.O_DeltoideusLateral1; +//}; +// +////-------------------------------------------------------3 rotational +//AnyKinEq DeltoidLateralSeg_Plane_HumerusConstraint = { +// MeasureOrganizer = {1,2}; +// AnyKinLinear lin ={ +// AnyRefNode &ref1=.....Segments.Humerus.I_DeltoideusLateral1_InPlane ; +//// AnyRefNode &ref2=..WrappingSegment_RepresentDeltoidLateral.I_DeltoideusLateral2; +// AnyRefNode &ref2=..RepresentDeltoidLateral_Plane.DL4OriginDeltoidLateral_Normal; +// Ref = 1; +// }; +//}; +// +//AnyKinEq DeltoidLateralSeg_Plane_ScapulaConstraint = { +// MeasureOrganizer = {2}; +// AnyKinLinear lin ={ +// // AnyRefNode &ref1=.....Segments.Scapula.MidOriginDeltoidLateral ; +// // AnyRefNode &ref2=..WrappingSegment_RepresentDeltoidLateral.MidOriginDeltoidLateral_Normal; +// +// AnyRefNode &ref1=.....Segments.Scapula.O_DeltoideusLateral4 ; +// AnyRefNode &ref2=..RepresentDeltoidLateral_Plane.DL4OriginDeltoidLateral_Normal; +// Ref = 1; +// }; +//}; + + + + +///////////////////////////////////////////// Wrapping Seg with revolute joints +//AnySeg WrappingSegment_RepresentDeltoidLateral_1DOF ={ +// +// Mass=1e-5; +// Jii={0.0,0.0,0.0}; +// +// r0= ScapulaRef.r0; +// //Axes0 = ScapulaRef.Axes0; +// +// AnySeg &ScapulaRef = ....Segments.Scapula; +// AnySeg &HumerusRef = ....Segments.Humerus; +// AnySeg &ClaviculaRef = ....Segments.Clavicula; +// +// AnyRefNode LocalReferenceFrame_ConstraintNode = {sRel= {0,0,0}; ARel= .ScapulaRef.Axes0;}; +// AnyRefNode gh_joint = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';ARel = .ScapulaRef.Axes0;}; +// AnyRefNode O_DeltoideusLateral1 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral1.sRel')';}; +// AnyRefNode O_DeltoideusLateral2 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral2.sRel')';}; +// AnyRefNode O_DeltoideusLateral3 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral3.sRel')';}; +// AnyRefNode O_DeltoideusLateral4 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral4.sRel')';}; +// AnyRefNode I_DeltoideusLateral1 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral1.sRel')';}; +// AnyRefNode I_DeltoideusLateral2 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral2.sRel')';}; +// +// AnySurfPlaneFit LateralDeltoidPlane = { +// Points = {.O_DeltoideusLateral1.sRel,.O_DeltoideusLateral4.sRel,.I_DeltoideusLateral1.sRel}; +// }; +// +// AnyRefNode ghDeltoidLateral_Normal = {sRel= .gh_joint.sRel; +// ARel = RotMat(.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral4.sRel,.O_DeltoideusLateral1.sRel);}; +// +//AnyRefNode AlignmentRefNode = { +// ARel = .ScapulaRef.Axes0; +// AnyRefNode DeltoidLateral_Posterior_Cyl={ +// +// AnyVec3 P1 = ..ScapulaRef.gh.sRel; +// AnyVec3 P2 = ..ScapulaRef.O_DeltoideusLateral4.sRel; +// AnyVec3 P3 = ..ScapulaRef.O_DeltoideusLateral1.sRel; +// AnyVec3 P4 = ..ScapulaRef.GHReactionCenterNode.sRel; +// +// sRel= P1; +// ARel=RotMat(P2,P3,P1)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P1-.P4)*1.3; +// Length= Radius*4; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// // CenterOrigin = On; +// }; +// }; +//}; +// +// +//// AnySurfPlaneFit LateralDeltoidPlane_Prep1 = { +//// Points = {.O_DeltoideusLateral1.sRel,.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral1.sRel+(.LateralDeltoidPlane.ARel*{0,0,0.01}')'}; +//// }; +//// AnySurfPlaneFit LateralDeltoidPlane_Prep2 = { +//// Points = {.O_DeltoideusLateral2.sRel,.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral2.sRel+(.LateralDeltoidPlane.ARel*{0,0,0.01}')'}; +//// }; +//// AnySurfPlaneFit LateralDeltoidPlane_Prep3 = { +//// Points = {.O_DeltoideusLateral3.sRel,.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral3.sRel+(.LateralDeltoidPlane.ARel*{0,0,0.01}')'}; +//// }; +//// AnySurfPlaneFit LateralDeltoidPlane_Prep4 = { +//// Points = {.O_DeltoideusLateral4.sRel,.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral4.sRel+(.LateralDeltoidPlane.ARel*{0,0,0.01}')'}; +//// }; +//// +//// AnyRefNode O_DeltoideusLateralMid = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral3.sRel')';}; +//// +////// AnySurfPlaneFit LateralDeltoidPlane_PrepMid = { +////// Points = {(.O_DeltoideusLateral3.sRel+.O_DeltoideusLateral2.sRel)/2,.I_DeltoideusLateral1.sRel,.O_DeltoideusLateral3.sRel+(.LateralDeltoidPlane.ARel*{0,0,0.01}')'}; +////// }; +//// +//////AlignmentRefNode = { +//// AnyRefNode DeltoidLateral_Posterior_Cyl1={ +//// +//// AnyVec3 P1 = (.ScapulaRef.Axes0*.ScapulaRef.gh.sRel')'; +//// AnyVec3 P2 = (.ScapulaRef.Axes0*.ScapulaRef.GHReactionCenterNode.sRel')'; +//// +//// sRel= P1; +//// ARel=.LateralDeltoidPlane_Prep1.ARel; +//// +//// AnySurfCylinder cyl = { +//// Radius= vnorm(.P1-.P2)*1.3; +//// Length= Radius*7; +//// CapRatio=1; +//// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +//// }; +//// }; +//// AnyRefNode DeltoidLateral_Posterior_Cyl2={ +//// +//// AnyVec3 P1 = (.ScapulaRef.Axes0*.ScapulaRef.gh.sRel')'; +//// AnyVec3 P2 = (.ScapulaRef.Axes0*.ScapulaRef.GHReactionCenterNode.sRel')'; +//// +//// sRel= P1; +//// ARel=.LateralDeltoidPlane_Prep2.ARel; +//// +//// AnySurfCylinder cyl = { +//// Radius= vnorm(.P1-.P2)*1.3; +//// Length= Radius*7; +//// CapRatio=1; +//// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +//// }; +//// }; +//// AnyRefNode DeltoidLateral_Posterior_Cyl3={ +//// +//// AnyVec3 P1 = (.ScapulaRef.Axes0*.ScapulaRef.gh.sRel')'; +//// AnyVec3 P2 = (.ScapulaRef.Axes0*.ScapulaRef.GHReactionCenterNode.sRel')'; +//// +//// sRel= P1; +//// ARel=.LateralDeltoidPlane_Prep3.ARel; +//// +//// AnySurfCylinder cyl = { +//// Radius= vnorm(.P1-.P2)*1.3; +//// Length= Radius*7; +//// CapRatio=1; +//// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +//// }; +//// }; +//// AnyRefNode DeltoidLateral_Posterior_Cyl4={ +//// +//// AnyVec3 P1 = (.ScapulaRef.Axes0*.ScapulaRef.gh.sRel')'; +//// AnyVec3 P2 = (.ScapulaRef.Axes0*.ScapulaRef.GHReactionCenterNode.sRel')'; +//// +//// sRel= P1; +//// ARel=.LateralDeltoidPlane_Prep4.ARel; +//// +//// AnySurfCylinder cyl = { +//// Radius= vnorm(.P1-.P2)*1.3; +//// Length= Radius*7; +//// CapRatio=1; +//// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +//// }; +//// }; +// +////}; +// +//}; +// +//AnyRevoluteJoint Revolute_WrappingSeg_DeltoidLateral = { +// Axis = y; +// AnyRefFrame &Scapula = .WrappingSegment_RepresentDeltoidLateral_1DOF.ScapulaRef.DeltoidLateral_Posterior_Cyl; +// AnyRefFrame &wrappingSeg = .WrappingSegment_RepresentDeltoidLateral_1DOF.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +//}; +// +////-------------------------------------------------------Rotational +//AnyKinEq WrappingSeg_DeltoidLateral_RotaionalConstraint = { +// +// // MeasureOrganizer = {2}; +// //AnyKinRotational measure = { +// //AnyRefFrame &WrappingSeg_DeltoidLateral = ..WrappingSegment_RepresentDeltoidLateral_1DOF.ghDeltoidLateral_Normal; +// //AnyRefFrame &RepresentDeltoidLateral_Plane = ..RepresentDeltoidLateral_Plane.ghDeltoidLateral_Normal; +// //Type = RotAxesAngles; +// //}; +// +// MeasureOrganizer = {1}; +// AnyKinRotational measure = { +// AnyRefFrame &WrappingSeg_DeltoidLateral = ..WrappingSegment_RepresentDeltoidLateral_1DOF.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +// AnyRefFrame &RepresentDeltoidLateral_Plane = ..RepresentDeltoidLateral_Plane.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +// Type = RotAxesAngles; +// }; +// +// // MeasureOrganizer = {1}; +// //AnyKinLinear measure = { +// //AnyRefFrame &WrappingSeg_DeltoidLateral = ..WrappingSegment_RepresentDeltoidLateral_1DOF.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +// //AnyRefFrame &RepresentDeltoidLateral_Plane = ..RepresentDeltoidLateral_Plane.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +// //Type = RotAxesAngles; +// //}; +// +//}; +// +////////////////-------------------------------------------------------3 linear +//////////////AnySphericalJoint DeltoidLateralSeg_Plane_ScapulaConstraint_Spherical_test = { +////////////// AnyRefNode &ref1=....Segments.Scapula.gh ; +////////////// AnyRefNode &ref2=.RepresentDeltoidLateral_Plane.gh_joint; +//////////////}; +////////////// +////////////////-------------------------------------------------------3 rotational +//////////////AnyKinEq DeltoidLateralSeg_Plane_HumerusConstraint_test = { +////////////// MeasureOrganizer = {1,2}; +////////////// AnyKinLinear lin ={ +////////////// AnyRefNode &ref1=.....Segments.Humerus.I_DeltoideusLateral1_InPlane ; +//////////////// AnyRefNode &ref2=..WrappingSegment_RepresentDeltoidLateral.I_DeltoideusLateral2; +////////////// AnyRefNode &ref2=..RepresentDeltoidLateral_Plane.DL4OriginDeltoidLateral_Normal; +////////////// Ref = 1; +////////////// }; +//////////////}; +////////////// +//////////////AnyKinEq DeltoidLateralSeg_Plane_ScapulaConstraint_test = { +////////////// MeasureOrganizer = {2}; +////////////// AnyKinLinear lin ={ +////////////// // AnyRefNode &ref1=.....Segments.Scapula.MidOriginDeltoidLateral ; +////////////// // AnyRefNode &ref2=..WrappingSegment_RepresentDeltoidLateral.MidOriginDeltoidLateral_Normal; +////////////// +////////////// AnyRefNode &ref1=.....Segments.Scapula.O_DeltoideusLateral4 ; +////////////// AnyRefNode &ref2=..RepresentDeltoidLateral_Plane.DL4OriginDeltoidLateral_Normal; +////////////// Ref = 1; +////////////// }; +//////////////}; +// +// +// +//////-------------------------------------------------------Average +////AnyKinLinear WrapSegLat_m_O_DeltoideusLateral1 = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral_1DOF.O_DeltoideusLateral1; +//// AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral1; +//// Ref=0; +////}; +////AnyKinLinear WrapSegLat_m_O_DeltoideusLateral4 = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral_1DOF.O_DeltoideusLateral4; +//// AnyRefNode &ref2 = ....Segments.Scapula.O_DeltoideusLateral4; +//// Ref=0; +////}; +////AnyKinLinear WrapSegLat_m_I_DeltoideusLateral2 = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral_1DOF.I_DeltoideusLateral2; +//// AnyRefNode &ref2 = ....Segments.Humerus.I_DeltoideusLateral2; +//// Ref=0; +////}; +////AnyKinLinear WrapSegLat_m_gh_joint = { +//// AnyRefNode &ref1 = .WrappingSegment_RepresentDeltoidLateral_1DOF.gh_joint; +//// AnyRefNode &ref2=....Segments.Humerus.gh; +//// Ref=0; +////}; +//// +//// +////AnyKinEq WrappingSeg_DeltoidLateral_RotaionalConstraint = { +//// RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { +//// +//// LocalReferenceFrame = &..WrappingSegment_RepresentDeltoidLateral_1DOF.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +//// InputMeasures = { +//// &..WrapSegLat_m_O_DeltoideusLateral1, +//// &..WrapSegLat_m_O_DeltoideusLateral4, +//// &..WrapSegLat_m_I_DeltoideusLateral2, +//// &..WrapSegLat_m_gh_joint, +//// }; +//// +//// WeightCoefficients = {1,1,10,10}; +//// }; +//// MeasureOrganizer = {5}; +//// Reaction.Type ??= repmat(nDim, Off); +////}; + +// Revolute joint +// 1DOF with the plane segment +//////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////// +}; + + +/////////////////////////////////////////// LateralDeltoid_ViaNodeSegment +AnySeg LateralDeltoid_ViaNodeSegment ={ + + Mass=1e-5; + Jii={0.0,0.0,0.0}; + + r0= ScapulaRef.r0; + //Axes0 = ScapulaRef.Axes0; + + AnySeg &ScapulaRef = ...Segments.Scapula; + AnySeg &HumerusRef = ...Segments.Humerus; + AnySeg &ClaviculaRef = ...Segments.Clavicula; + + AnyRefNode LocalReferenceFrame_ConstraintNode = {sRel= {0,0,0}; ARel= .ScapulaRef.Axes0;}; + AnyRefNode gh_joint = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';ARel = .ScapulaRef.Axes0;}; + AnyRefNode O_DeltoideusLateral1 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral1.sRel')';}; + AnyRefNode O_DeltoideusLateral2 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral2.sRel')';}; + AnyRefNode O_DeltoideusLateral3 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral3.sRel')';}; + AnyRefNode O_DeltoideusLateral4 = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.O_DeltoideusLateral4.sRel')';}; + AnyRefNode I_DeltoideusLateral1 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral1.sRel')';}; + AnyRefNode I_DeltoideusLateral2 = {sRel= .HumerusRef.r0 -.r0 + (.HumerusRef.Axes0 * .HumerusRef.I_DeltoideusLateral2.sRel')';}; + AnyRefNode O_DeltoideusLateralMid = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * 0.5* (.ScapulaRef.O_DeltoideusLateral2.sRel+.ScapulaRef.O_DeltoideusLateral3.sRel)')';}; + AnyRefNode gh_joint_tilted = {sRel= .ScapulaRef.r0 -.r0 + (.ScapulaRef.Axes0 * .ScapulaRef.gh_rotated1.sRel')';ARel = .Axes0'*RotMat(-pi/6,x);}; + AnyRefNode O_DeltoideusLateral3_tilted = {sRel= .O_DeltoideusLateral3.sRel; + ARel = RotMat(.O_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.ViaNode1_DL3.sRel)*RotMat(pi/2,x); + }; + + AnyRefNode O_DeltoideusLateralMid_Aligned = {sRel= .O_DeltoideusLateralMid.sRel; + ARel = RotMat(.O_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; + + AnyRefNode MidOriginDeltoidLateral = {sRel= 0.5*(.O_DeltoideusLateral2.sRel+.O_DeltoideusLateral3.sRel); + ARel = RotMat(.O_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.I_DeltoideusLateral2.sRel);}; + AnyRefNode MidOriginDeltoidLateral_Normal = {sRel= 0.5*(.O_DeltoideusLateral2.sRel+.O_DeltoideusLateral3.sRel); + ARel = RotMat(.I_DeltoideusLateral2.sRel,.MidOriginDeltoidLateral.sRel,.gh_joint.sRel);}; + + + AnyRefNode DL3OriginDeltoidLateral_Normal = {sRel= .O_DeltoideusLateral3.sRel; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; + AnyRefNode DL4OriginDeltoidLateral_Normal = {sRel= .O_DeltoideusLateral4.sRel; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + +// Via nodes made with O_DeltoideusLateralOut instead of O_DeltoideusLateral2 + AnyRefNode O_DeltoideusLateralMid3_4 = {sRel= (.O_DeltoideusLateral3.sRel+.O_DeltoideusLateral4.sRel)/2;}; + AnyRefNode DL3OriginDeltoidLateral_Normal_mid3_4 = {sRel= .O_DeltoideusLateralMid3_4.sRel; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateralMid3_4.sRel,.gh_joint.sRel);}; + + AnySurfPlaneFit MidDeltoidSurface = { + Points = {.MidOriginDeltoidLateral.sRel,.gh_joint.sRel,.I_DeltoideusLateral2.sRel}; + }; + AnySurfPlaneFit DL4DeltoidSurface = { + Points = {.DL4OriginDeltoidLateral_Normal.sRel,.gh_joint.sRel,.I_DeltoideusLateral2.sRel}; + }; + AnySurfPlaneFit DL3_HumI1_DeltoidSurface = { + Points = {.DL3OriginDeltoidLateral_Normal.sRel,.gh_joint.sRel,.I_DeltoideusLateral1.sRel}; + }; + AnySurfPlaneFit DLmid3_4_HumI1_DeltoidSurface = { + Points = {.DL3OriginDeltoidLateral_Normal_mid3_4.sRel,.gh_joint.sRel,.I_DeltoideusLateral1.sRel}; + }; + AnySurfPlaneFit DL4_Via_DeltoidSurface = { + Points = {.ViaNode1_DL4.sRel,.gh_joint.sRel,.I_DeltoideusLateral1.sRel}; + }; + + AnySurfSphere WrappingShpereCylRadius = { sRel = .gh_joint.sRel; Radius = ..DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl.Radius*1.01; }; + +//-----------------------------------------------------Via nodes ON THE SPHERE manual vianode placement +AnyFloat DirectionVia1 = {-1.3,-1,0}/vnorm({-1.3,-1,0}); +AnyFloat RadiusVia1 = WrappingShpereCylRadius.Radius; +//AnyFloat RadiusVia1 = ScapulaRef.DeltoidLateral_NormaltoScapula.cyl.Radius; +AnyFloat CoordinateDirectionMid = RotMat(I_DeltoideusLateral2.sRel,DL3OriginDeltoidLateral_Normal_mid3_4.sRel,gh_joint.sRel); +AnyFloat CoordinateDirection = RotMat(I_DeltoideusLateral2.sRel,DL3OriginDeltoidLateral_Normal.sRel,gh_joint.sRel); + AnyRefNode ViaNode1_DL1 = {sRel= .O_DeltoideusLateral1.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1*0.6; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral1.sRel,.gh_joint.sRel);}; + AnyRefNode ViaNode1_DL2 = {sRel= .O_DeltoideusLateral2.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1*0.8; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral2.sRel,.gh_joint.sRel);}; + AnyRefNode ViaNode1_DL3 = {sRel= .O_DeltoideusLateral3.sRel + (.CoordinateDirectionMid* .DirectionVia1')'*.RadiusVia1; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh_joint.sRel);}; + AnyRefNode ViaNode1_DL4 = {sRel= .O_DeltoideusLateral4.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* .DirectionVia1')'*.RadiusVia1; + ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; +// AnyRefNode ViaNode1_DL4 = {sRel= +// (.O_DeltoideusLateral4.sRel + (RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel)* .DirectionVia1')'*.RadiusVia1+ +// .O_DeltoideusLateral4.sRel + (.CoordinateDirectionMid* .DirectionVia1')' *.RadiusVia1)/2; +// ARel = RotMat(.I_DeltoideusLateral2.sRel,.O_DeltoideusLateral4.sRel,.gh_joint.sRel);}; + +}; + +/////////////////// +LateralDeltoid_ViaNodeSegment.ScapulaRef = { + AnyRefNode O_DeltoideusLateralMid_Aligned = {sRel= (.O_DeltoideusLateral2.sRel+.O_DeltoideusLateral3.sRel)/2; + ARel = RotMat(.O_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.gh.sRel);}; + AnyRefNode gh_tilted = {sRel= .gh.sRel; ARel = .Axes0'*RotMat(-pi/6,x);}; +// AnyRefNode O_DeltoideusLateral3_tilted = {sRel= .O_DeltoideusLateral3.sRel; ARel = .Axes0'*RotMat(pi/4,x);}; + +AnyRefNode ViaNode1_DL3 = {sRel= (.Axes0'*.....Muscles.WrappingSurfaces.LateralDeltoid_ViaNodeSegment.ViaNode1_DL3.sRel')';}; + AnyRefNode O_DeltoideusLateral3_tilted = {sRel= .O_DeltoideusLateral3.sRel; + ARel = RotMat(.O_DeltoideusLateral2.sRel,.O_DeltoideusLateral3.sRel,.ViaNode1_DL3.sRel)*RotMat(-pi/2,x); + }; + +}; +LateralDeltoid_ViaNodeSegment.HumerusRef = { + AnyRefNode gh_tilted = {sRel= .gh.sRel; ARel = .Axes0'*RotMat(-pi/6,x);}; +// AnyRefNode O_DeltoideusLateral3_tilted = {sRel= ..O_DeltoideusLateral3.sRel; ARel = .Axes0'*RotMat(-pi/4,x);}; }; +/////////////////// + + + +AnyRevoluteJoint Revolute_LateralDeltoid_ViaNodeSegment = { + Axis = x; + AnyRefFrame &Scapula = .LateralDeltoid_ViaNodeSegment.ScapulaRef.O_DeltoideusLateralMid_Aligned; + AnyRefFrame &wrappingSeg = .LateralDeltoid_ViaNodeSegment.O_DeltoideusLateralMid_Aligned; +}; + +////-------------------------------------------------------Rotational +//AnyKinEq WrappingSeg_DeltoidLateral_RotaionalConstraint = { +// +// // MeasureOrganizer = {2}; +// //AnyKinRotational measure = { +// //AnyRefFrame &WrappingSeg_DeltoidLateral = ..WrappingSegment_RepresentDeltoidLateral_1DOF.ghDeltoidLateral_Normal; +// //AnyRefFrame &RepresentDeltoidLateral_Plane = ..RepresentDeltoidLateral_Plane.ghDeltoidLateral_Normal; +// //Type = RotAxesAngles; +// //}; +// +// MeasureOrganizer = {1}; +// AnyKinRotational measure = { +// AnyRefFrame &WrappingSeg_DeltoidLateral = ..WrappingSegment_RepresentDeltoidLateral_1DOF.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +// AnyRefFrame &RepresentDeltoidLateral_Plane = ..RepresentDeltoidLateral_Plane.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +// Type = RotAxesAngles; +// }; +// +// // MeasureOrganizer = {1}; +// //AnyKinLinear measure = { +// //AnyRefFrame &WrappingSeg_DeltoidLateral = ..WrappingSegment_RepresentDeltoidLateral_1DOF.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +// //AnyRefFrame &RepresentDeltoidLateral_Plane = ..RepresentDeltoidLateral_Plane.AlignmentRefNode.DeltoidLateral_Posterior_Cyl; +// //Type = RotAxesAngles; +// //}; +// +//// AnyKinMeasureNormComb NormMeasure = +//// { +//// //viewKinMeasure.Visible = Off; +//// //Order = 2.0; +//// //Offset = 0.0; +//// //Weight = ; +//// //AnyKinMeasure & = ; +//// //AnyKinMeasure & = ; You can make any number of AnyKinMeasure objects! +//// }; +// +//}; + + +////-------------------------------------------------------Norm measure +AnyKinMeasureOrg StopperOnScapula={ + AnyKinLinear lin = { + Ref=0; + AnyRefFrame &LayerNode = ..LateralDeltoid_ViaNodeSegment.ScapulaRef.O_DeltoideusLateral3_tilted; + AnyRefNode &ref=..LateralDeltoid_ViaNodeSegment.ViaNode1_DL3; + }; + MeasureOrganizer ={1}; +}; + +AnyKinMeasureOrg MovingWithHumerus={ + AnyKinLinear lin = { + Ref=0; + AnyRefNode &ref=..LateralDeltoid_ViaNodeSegment.O_DeltoideusLateral3_tilted; + AnyRefFrame &LayerNode = ..LateralDeltoid_ViaNodeSegment.HumerusRef.I_DeltoideusLateral1; + }; + MeasureOrganizer ={1}; +}; + +AnyKinMeasureExpComb Norm ={ + a ??= -400; + AnyKinMeasureOrg &ref=.StopperOnScapula; + AnyKinMeasure &MeasureLayer = .MovingWithHumerus; +}; + +AnyKinEqSimpleDriver NormDrivers ={ + AnyKinMeasure &norm=.Norm; + DriverPos =repmat(nDim,0); + DriverVel =repmat(nDim,0); + Reaction.Type ??=repmat(nDim,Off); +}; + + +//////-------------------------------------------------------Fix to Scapula +// AnyKinEqSimpleDriver FixToScapula ={ +// AnyKinLinear lin = { +// Ref=0; +// AnyRefFrame &LayerNode = ..LateralDeltoid_ViaNodeSegment.ScapulaRef.gh_tilted; +// AnyRefNode &ref=..LateralDeltoid_ViaNodeSegment.gh_joint_tilted; +// }; +// MeasureOrganizer ={0}; +// DriverPos =repmat(nDim,0); +// DriverVel =repmat(nDim,0); +// Reaction.Type ??=repmat(nDim,Off); +// }; + +////-------------------------------------------------------Average +//AnyKinLinear LateralDeltoid_ViaNodeSegment_m_O_DeltoideusLateral1 = { +// AnyRefNode &ref1 = .LateralDeltoid_ViaNodeSegment.O_DeltoideusLateral1; +// AnyRefNode &ref2 = ...Segments.Scapula.O_DeltoideusLateral1; +// Ref=0; +//}; +//AnyKinLinear LateralDeltoid_ViaNodeSegment_m_O_DeltoideusLateral4 = { +// AnyRefNode &ref1 = .LateralDeltoid_ViaNodeSegment.O_DeltoideusLateral4; +// AnyRefNode &ref2 = ...Segments.Scapula.O_DeltoideusLateral4; +// Ref=0; +//}; +//AnyKinLinear LateralDeltoid_ViaNodeSegment_m_I_DeltoideusLateral2 = { +// AnyRefNode &ref1 = .LateralDeltoid_ViaNodeSegment.I_DeltoideusLateral2; +// AnyRefNode &ref2 = ...Segments.Humerus.I_DeltoideusLateral2; +// Ref=0; +//}; +//AnyKinLinear LateralDeltoid_ViaNodeSegment_m_gh_joint = { +// AnyRefNode &ref1 = .LateralDeltoid_ViaNodeSegment.gh_joint; +// AnyRefNode &ref2=...Segments.Humerus.gh; +// Ref=0; +//}; +// +// +//AnyKinEq LateralDeltoid_ViaNodeSegment_RotaionalConstraint = { +// RigidBodyAverageMeasure CombinationMeasure(ROTATIONAL=On, LINEAR=On,POWER =1) = { +// +// LocalReferenceFrame = &..LateralDeltoid_ViaNodeSegment.O_DeltoideusLateralMid_Aligned; +// InputMeasures = { +// &..LateralDeltoid_ViaNodeSegment_m_O_DeltoideusLateral1, +// &..LateralDeltoid_ViaNodeSegment_m_O_DeltoideusLateral4, +// &..LateralDeltoid_ViaNodeSegment_m_I_DeltoideusLateral2, +// &..LateralDeltoid_ViaNodeSegment_m_gh_joint, +// }; +// +// WeightCoefficients = {100,100,1,1}; +// }; +// MeasureOrganizer = {5}; +// Reaction.Type ??= repmat(nDim, Off); +//}; + +// Revolute joint +// 1DOF with the plane segment +////////////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////////////// + + + + diff --git a/Body/AAUHuman/Arm/GHReactions.any b/Body/AAUHuman/Arm/GHReactions.any index 676e0586f..0b201b829 100644 --- a/Body/AAUHuman/Arm/GHReactions.any +++ b/Body/AAUHuman/Arm/GHReactions.any @@ -30,7 +30,7 @@ AnyFolder GHReactions={ Scapula={ AnyRefNode GHReactionCenterNode = { - sRel=.Scale({ -0.001,-0.048,-0.030}*.Mirror); + sRel=.Scale({ -0.001,-0.048,-0.030}*.Mirror);//move the data //AnyDrawRefFrame drw={ScaleXYZ={0.05,0.05,0.05};}; }; diff --git a/Body/AAUHuman/Arm/HumerusMuscleGeometry.any b/Body/AAUHuman/Arm/HumerusMuscleGeometry.any index 2db0ad0c5..950f97551 100644 --- a/Body/AAUHuman/Arm/HumerusMuscleGeometry.any +++ b/Body/AAUHuman/Arm/HumerusMuscleGeometry.any @@ -186,6 +186,34 @@ Humerus = { Length=vnorm(.sRel-.P2); }; }; + + AnyRefNode Deltoid_hum = { + sRel = .Scale(.Data.Deltoid_hum*.Mirror); + ARel = RotMat (pi/2, x); + AnyFloat P2 = ..Humerus.gh_rotated1.sRel; + AnyFloat P3 = .Scale(.Data.Deltoid_hum_p3*.Mirror); + + AnySurfCylinder Deltoid_humCyl= { + Radius=vnorm(.sRel-.P3); + Length=2*vnorm(.sRel-.P2); + CapRatio = 1; + CenterOrigin = On; + }; + }; + AnyRefNode Deltoid_hum_ext = { + sRel = ..Humerus.gh_rotated1.sRel; + ARel = RotMat (pi/2, x); + AnyFloat P2 = .Scale(.Data.Deltoid_hum*.Mirror); + AnyFloat P3 = .Scale(.Data.Deltoid_hum_p3*.Mirror); + + AnySurfCylinder Deltoid_humCyl= { + Radius=0.98*Main.HumanModel.BodyModel.Right.ShoulderArm.Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl.cyl.Radius;//vnorm(.sRel-.P3); + Length=Radius*2;//2*vnorm(.sRel-.P2); + CapRatio = 1;//3; +// CapRatio2 = 1; +// CenterOrigin = On; + }; + }; #if BM_ARM_DELTOID_WRAPPING == _DELTOID_WRAPPING_RAKE_ AnyRefNode I_deltoideus_scapular_part_1 = {sRel = .Scale(.Data.I_deltoideus_scapular_part_1_pos*.Mirror);}; diff --git a/Body/AAUHuman/Arm/MomentArmSequenceRight.any b/Body/AAUHuman/Arm/MomentArmSequenceRight.any index 01e71a60e..a9b8e435e 100644 --- a/Body/AAUHuman/Arm/MomentArmSequenceRight.any +++ b/Body/AAUHuman/Arm/MomentArmSequenceRight.any @@ -313,8 +313,8 @@ AnyOperation &SCProtractionRight = .Right.Arm.SCProtraction.Run; AnyOperation &SCElevationRight = .Right.Arm.SCElevation.Run; #endif - AnyOperation &GHFlexionRight = .Right.Arm.GHAbduction.Run; - AnyOperation &GHAbductionRight = .Right.Arm.GHFlexion.Run; + AnyOperation &GHFlexionRight = .Right.Arm.GHFlexion.Run; + AnyOperation &GHAbductionRight = .Right.Arm.GHAbduction.Run; AnyOperation &GHExternalRotationRight = .Right.Arm.GHExternalRotation.Run; AnyOperation &ElbowFlexionRight = .Right.Arm.ElbowFlexion.Run; AnyOperation &ElbowPronationRight = .Right.Arm.ElbowPronation.Run; diff --git a/Body/AAUHuman/Arm/Muscle.any b/Body/AAUHuman/Arm/Muscle.any index ec43d66ef..076e83c88 100644 --- a/Body/AAUHuman/Arm/Muscle.any +++ b/Body/AAUHuman/Arm/Muscle.any @@ -371,6 +371,7 @@ MuscleGroup Coracobrachialis = { }; #else +// Deltoid wrapping muscles MuscleGroup DeltoideusAnterior = { AnyMuscleShortestPath DeltoideusAnterior1 = { AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusAnterior1; @@ -378,39 +379,66 @@ MuscleGroup Coracobrachialis = { AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusAnterior1; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; SPLine.StringMesh = 30; - - - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_1.Surf; +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior1; +AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3_Ant.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3_Ant_new.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidLateral_NormaltoScapula.cyl; +AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidAnterior_NormaltoScapula_TiltedStop.cyl; +//AnyParamSurfAnalytical &Surf9 = ...Segments.Humerus.Deltoid_hum_ext.Deltoid_humCyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop3_Ant.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop4.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_Stop1.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_Stop2.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentLateralStopper.AlignmentRefNode.Deltoid_Clavicula_Cyl_Stop1.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Clavicula_Cyl_Stop1.cyl; +// AnyParamSurfAnalytical &Surf7 = ...Segments.Humerus.Deltoid_hum_Extension_Anterior.cyl; +AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; SPLine = { AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_1.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_1.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_1.Center) + transf3D(.Surf6.Radius*{-1,-1,3}, &.Surf6), +// transf3D(.Surf5.Radius*{1,-0.5,0}, &.Surf5), +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior1), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior1), + transf3D({0,-2*.Surf2.Radius,0}, &.Surf2), + transf3D({.Surf2.Radius,-.Surf2.Radius,0}, &.Surf2), }; InitWrapPosVecArr = {&InitWrapPos}; - }; }; - - AnyMuscleShortestPath DeltoideusAnterior2 = { AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusAnterior2; AnyRefNode &Org = ...Segments.Clavicula.O_DeltoideusAnterior2; - AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusAnterior2; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; SPLine.StringMesh = 30; - - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_2.Surf; - +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior2; +AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3_Ant.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3_Ant_new.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidLateral_NormaltoScapula.cyl; +AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidAnterior_NormaltoScapula_TiltedStop.cyl; +//AnyParamSurfAnalytical &Surf9 = ...Segments.Humerus.Deltoid_hum_ext.Deltoid_humCyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop3_Ant.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop4.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_Stop2.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentLateralStopper.AlignmentRefNode.Deltoid_Clavicula_Cyl_Stop1.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Clavicula_Cyl_Stop1.cyl; +// AnyParamSurfAnalytical &Surf7 = ...Segments.Humerus.Deltoid_hum_Extension_Anterior.cyl; + AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; SPLine = { AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_2.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_2.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_2.Center) + transf3D(.Surf6.Radius*{-1,-1,3}, &.Surf6), +// transf3D(.Surf5.Radius*{1,-0.5,0}, &.Surf5), +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior2), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior2), + transf3D({0,-2*.Surf2.Radius,0}, &.Surf2), + transf3D({.Surf2.Radius,-.Surf2.Radius,0}, &.Surf2), }; - InitWrapPosVecArr = {&InitWrapPos}; }; + InitWrapPosVecArr = {&InitWrapPos}; + }; + }; AnyMuscleShortestPath DeltoideusAnterior3 = { @@ -418,38 +446,62 @@ MuscleGroup Coracobrachialis = { AnyRefNode &Org = ...Segments.Clavicula.O_DeltoideusAnterior3; AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusAnterior3; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; - - SPLine.StringMesh = 30; - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_3.Surf; - +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior3; +AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3_Ant.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3_Ant_new.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidLateral_NormaltoScapula.cyl; +AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidAnterior_NormaltoScapula_TiltedStop.cyl; +//AnyParamSurfAnalytical &Surf9 = ...Segments.Humerus.Deltoid_hum_ext.Deltoid_humCyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop3_Ant.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentLateralStopper.AlignmentRefNode.Deltoid_Clavicula_Cyl_Stop1.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_Stop2.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop4.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Clavicula_Cyl_Stop2.cyl; +// AnyParamSurfAnalytical &Surf7 = ...Segments.Humerus.Deltoid_hum_Extension_Anterior.cyl; + AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; SPLine = { AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_3.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_3.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_3.Center) + transf3D(.Surf6.Radius*{-1,-1,3}, &.Surf6), +// transf3D(.Surf5.Radius*{1,-0.5,0}, &.Surf5), +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior3), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior3), + transf3D({0,-2*.Surf2.Radius,0}, &.Surf2), + transf3D({.Surf2.Radius,-.Surf2.Radius,0}, &.Surf2), }; InitWrapPosVecArr = {&InitWrapPos}; }; - }; - //most proximal unit AnyMuscleShortestPath DeltoideusAnterior4 = { AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusAnterior4; AnyRefNode &Org = ...Segments.Clavicula.O_DeltoideusAnterior4; AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusAnterior4; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; - SPLine.StringMesh = 30; - - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_4.Surf; - +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior4; +AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3_Ant.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3_Ant_new.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidLateral_NormaltoScapula.cyl; +AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidAnterior_NormaltoScapula_TiltedStop.cyl; +//AnyParamSurfAnalytical &Surf9 = ...Segments.Humerus.Deltoid_hum_ext.Deltoid_humCyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop3_Ant.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentLateralStopper.AlignmentRefNode.Deltoid_Clavicula_Cyl_Stop1.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_Stop2.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop4.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Clavicula_Cyl_Stop3.cyl; +// AnyParamSurfAnalytical &Surf7 = ...Segments.Humerus.Deltoid_hum_Extension_Anterior.cyl; + AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; SPLine = { AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_4.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_4.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.BASE_FRAME.Wrapping_4.Center) + transf3D(.Surf6.Radius*{-1,-1,3}, &.Surf6), +// transf3D(.Surf5.Radius*{1,-0.5,0}, &.Surf5), +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior4), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.Ellipsoid_DeltoidWrappingAnterior4), + transf3D({0,-2*.Surf2.Radius,0}, &.Surf2), + transf3D({.Surf2.Radius,-.Surf2.Radius,0}, &.Surf2), }; InitWrapPosVecArr = {&InitWrapPos}; }; @@ -460,140 +512,296 @@ MuscleGroup Coracobrachialis = { AnyMuscleShortestPath DeltoideusLateral1 = { AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusLateral1; AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusLateral1; - +// AnyRefNode &Via1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.ViaNode1_DL1; + AnyRefNode &Via1 = ..WrappingSurfaces.LateralDeltoid_ViaNodeSegment.ViaNode1_DL1; AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusLateral1; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; SPLine.StringMesh = 30; - - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_1.Surf; - SPLine = { - AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_1.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_1.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_1.Center) - }; - InitWrapPosVecArr = {&InitWrapPos}; - }; +// AnyParamSurfAnalytical &Surf11 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral_1DOF.DeltoidLateral_Posterior_Cyl1.cyl; +AnyParamSurfAnalytical &Surf10 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Represent_Infraspinatus_Cyl.cyl; +AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_ForLateral.cyl; +AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidPosterior_NormaltoScapula.cyl_lat1; +AnyParamSurfAnalytical &Surf12 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.FillGap_Cyl.cyl; +AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; +// SPLine = { +// AnyMatrix InitWrapPos = { +// transf3D({.Surf10.Radius,-.Surf10.Radius,0}, &.Surf10), +// transf3D({0,-1.4*.Surf10.Radius,0}, &.Surf10), +//// transf3D({-.Surf1.Sizes[0],-.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral1), +//// transf3D({2*.Surf2.Radius,0,0}, &.Surf2), +// transf3D({.Surf2.Radius,.Surf2.Radius,0}, &.Surf2), +// }; +// InitWrapPosVecArr = {&InitWrapPos}; +// }; + +// SPLine = { AnyMatrix InitWrapPos = { +// transf3D({-.Surf11.Radius,.Surf11.Radius,0}, &.Surf11), +// }; InitWrapPosVecArr = {&InitWrapPos};}; + + + // AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.WrappingShpereCylRadius; +////AnyParamSurfAnalytical &Surf4 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl; +////AnyParamSurfAnalytical &Surf10 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Represent_Infraspinatus_Cyl.cyl; +//AnyParamSurfAnalytical &Surf11 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.DeltoidLateral_Posterior_Cyl.cyl; +//AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_ForLateral.cyl; +// SPLine = { AnyMatrix InitWrapPos = { +// transf3D({0,0,.Surf1.Radius}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.WrappingShpereCylRadius), +// transf3D({-.Surf11.Radius,0,.Surf11.Length/2}, &.Surf11), +//// transf3D(.Surf6.Radius*{-1,-1,3}, &.Surf6), +// }; InitWrapPosVecArr = {&InitWrapPos};}; + + +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral1; +// AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; +// SPLine = { +// AnyMatrix InitWrapPos = { +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral1), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral1), +//// transf3D({-.Surf1.Sizes[0],-.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral1), +//// transf3D({2*.Surf2.Radius,0,0}, &.Surf2), +// transf3D({.Surf2.Radius,.Surf2.Radius,0}, &.Surf2), +// }; +// InitWrapPosVecArr = {&InitWrapPos}; +// }; }; - AnyMuscleShortestPath DeltoideusLateral3 = { - AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusLateral3; - AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusLateral3; - AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusLateral3; - viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; - SPLine.StringMesh = 30; - - - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_3.Surf; - - SPLine = { - AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_2.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_2.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_2.Center) - }; - InitWrapPosVecArr = {&InitWrapPos}; - }; - }; - - AnyMuscleShortestPath DeltoideusLateral2 = { AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusLateral2; AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusLateral2; +// AnyRefNode &Via1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.ViaNode1_DL2; + AnyRefNode &Via1 = ..WrappingSurfaces.LateralDeltoid_ViaNodeSegment.ViaNode1_DL2; AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusLateral2; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; SPLine.StringMesh = 30; - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_2.Surf; - - SPLine = { - AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_3.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_3.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_3.Center) - }; - InitWrapPosVecArr = {&InitWrapPos}; - }; - }; +// AnyParamSurfAnalytical &Surf11 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral_1DOF.DeltoidLateral_Posterior_Cyl1.cyl; +AnyParamSurfAnalytical &Surf10 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Represent_Infraspinatus_Cyl.cyl; +AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_ForLateral.cyl; +AnyParamSurfAnalytical &Surf12 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.FillGap_Cyl.cyl; +AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; +// SPLine = { AnyMatrix InitWrapPos = { +// transf3D({-.Surf11.Radius,.Surf11.Radius,0}, &.Surf11), +// }; InitWrapPosVecArr = {&InitWrapPos};}; + +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.WrappingShpereCylRadius; +////AnyParamSurfAnalytical &Surf4 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl; +////AnyParamSurfAnalytical &Surf10 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Represent_Infraspinatus_Cyl.cyl; +//AnyParamSurfAnalytical &Surf11 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.DeltoidLateral_Posterior_Cyl.cyl; +//AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_ForLateral.cyl; +// SPLine = { AnyMatrix InitWrapPos = { +// transf3D({0,0,.Surf1.Radius}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.WrappingShpereCylRadius), +// transf3D({-.Surf11.Radius,0,.Surf11.Length/2}, &.Surf11), +//// transf3D(.Surf6.Radius*{-1,-1,3}, &.Surf6), +// }; InitWrapPosVecArr = {&InitWrapPos};}; + + +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral2; +// AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; +//// AnyParamSurfAnalytical &Surf3 = ..WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral2.Extra_cyl; +// SPLine = { +// AnyMatrix InitWrapPos = { +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral2), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral2), +// transf3D({2*.Surf2.Radius,0,0}, &.Surf2), +// }; +// InitWrapPosVecArr = {&InitWrapPos}; +// }; + }; + + AnyMuscleShortestPath DeltoideusLateral3 = { + AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusLateral3; + AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusLateral3; +// AnyRefNode &Via1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.ViaNode1_DL3; + AnyRefNode &Via1 = ..WrappingSurfaces.LateralDeltoid_ViaNodeSegment.ViaNode1_DL3; + AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusLateral3; + viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; + SPLine.StringMesh = 30; +// AnyParamSurfAnalytical &Surf11 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral_1DOF.DeltoidLateral_Posterior_Cyl1.cyl; +AnyParamSurfAnalytical &Surf10 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Represent_Infraspinatus_Cyl.cyl; +AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_ForLateral.cyl; +AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; +// SPLine = { AnyMatrix InitWrapPos = { +// transf3D({-.Surf11.Radius,.Surf11.Radius,0}, &.Surf11), +// }; InitWrapPosVecArr = {&InitWrapPos};}; + +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.WrappingShpereCylRadius; +////AnyParamSurfAnalytical &Surf4 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl; +////AnyParamSurfAnalytical &Surf10 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Represent_Infraspinatus_Cyl.cyl; +//AnyParamSurfAnalytical &Surf11 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.DeltoidLateral_Posterior_Cyl.cyl; +// AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_ForLateral.cyl; +// SPLine = { AnyMatrix InitWrapPos = { +// transf3D({0,0,.Surf1.Radius}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.WrappingShpereCylRadius), +// transf3D({-.Surf11.Radius,0,.Surf11.Length/2}, &.Surf11), +//// transf3D(.Surf6.Radius*{-1,-1,3}, &.Surf6), +// }; InitWrapPosVecArr = {&InitWrapPos};}; + + + +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral3; +// AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; +// AnyParamSurfAnalytical &Surf3 = ..WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral3.Extra_cyl; +// SPLine = { +// AnyMatrix InitWrapPos = { +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral3), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral3), +//// transf3D({-.Surf1.Sizes[0],-.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral3), +// transf3D({2*.Surf2.Radius,0,0}, &.Surf2), +// }; +// InitWrapPosVecArr = {&InitWrapPos}; +// }; + }; AnyMuscleShortestPath DeltoideusLateral4 = { AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusLateral4; AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusLateral4; +// AnyRefNode &Via1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.ViaNode1_DL4; + AnyRefNode &Via1 = ..WrappingSurfaces.LateralDeltoid_ViaNodeSegment.ViaNode1_DL4; +// AnyRefNode &Via2 = Main.HumanModel.BodyModel.Right.ShoulderArm.Segments.Humerus.ViaNode2_DL4; AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusLateral4; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any" }; SPLine.StringMesh = 30; - - - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_4.Surf; - SPLine = { - AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_4.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_4.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.BASE_FRAME.Wrapping_4.Center) - }; - InitWrapPosVecArr = {&InitWrapPos}; - }; +// AnyParamSurfAnalytical &Surf11 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral_1DOF.DeltoidLateral_Posterior_Cyl1.cyl; +//AnyParamSurfAnalytical &Surf10 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Represent_Infraspinatus_Cyl.cyl; +//AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_ForLateral.cyl; +AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.WrappingShpereCylRadius; +AnyParamSurfAnalytical &Surf12 = ...Segments.Scapula.Lat4_tilted_posterior_wrapping.cyl; +AnyParamSurfAnalytical &Surf13 = ...Segments.Scapula.Lat4_tilted_anterior_wrapping.cyl; +AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; +// SPLine = { AnyMatrix InitWrapPos = { +// transf3D({.Surf1.Radius,.Surf1.Radius,.Surf1.Radius}, &.Surf1), +// transf3D({0*.Surf2.Radius,-2*.Surf2.Radius,0}, &.Surf2), +// }; InitWrapPosVecArr = {&InitWrapPos};}; + + +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.WrappingShpereCylRadius; +////AnyParamSurfAnalytical &Surf4 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl; +////AnyParamSurfAnalytical &Surf10 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Represent_Infraspinatus_Cyl.cyl; +//AnyParamSurfAnalytical &Surf11 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.DeltoidLateral_Posterior_Cyl.cyl; +//AnyParamSurfAnalytical &Surf6 = ...Muscles.WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment.AlignmentRefNode.Deltoid_Clavicula_Cyl_ForLateral.cyl; +// SPLine = { AnyMatrix InitWrapPos = { +// transf3D({0,0,.Surf1.Radius}, &...WrappingSurfaces.DeltoidWrappingAnterior.WrappingSegment_RepresentDeltoidLateral.WrappingShpereCylRadius), +// transf3D({-.Surf11.Radius,0,.Surf11.Length/2}, &.Surf11), +//// transf3D(.Surf6.Radius*{-1,-1,3}, &.Surf6), +// }; InitWrapPosVecArr = {&InitWrapPos};}; + + +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral4; +// AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; +// AnyParamSurfAnalytical &Surf3 = ..WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral4.Extra_cyl; +// SPLine = { +// AnyMatrix InitWrapPos = { +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral4), +// transf3D({0,-1*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral4), +//// transf3D({-.Surf1.Sizes[0],-.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.Ellipsoid_DeltoidWrappingLateral4), +//// transf3D({2*.Surf2.Radius,0,0}, &.Surf2), +// transf3D({0*.Surf2.Radius,-2*.Surf2.Radius,0}, &.Surf2), +// }; +// InitWrapPosVecArr = {&InitWrapPos}; +// }; }; }; MuscleGroup DeltoideusPosterior = { - // start of BM_ARM_DELTOID_WRAPPING AnyMuscleShortestPath DeltoideusPosterior1 = { AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusPosterior1; AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusPosterior1; AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusPosterior1; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; SPLine.StringMesh = 45; - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_1.Surf; - AnyParamSurfAnalytical &Surf2 = ...Segments.Scapula.deltoid_cyl.cyl; +// AnyParamSurfAnalytical &Surf4 = ...Segments.Scapula.Deltoid_Scapula_Cyl.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop1.cyl; +AnyParamSurfAnalytical &Surf4 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop1.cyl; +AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidPosterior_NormaltoScapula.cyl; + + + + +// AnyParamSurfAnalytical &Surf3 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.deltoid_cyl.cyl; +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior1; + AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; SPLine = { AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_1.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_1.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_1.Center) + transf3D({-.Surf4.Radius,0,0}, &.Surf4), + transf3D({0,-.Surf4.Radius,0}, &.Surf4), + +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior1), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior1), +// transf3D({-.Surf1.Sizes[0],-3*.Surf1.Sizes[0],-.Surf1.Sizes[0]}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior1), + transf3D({-.Surf2.Radius,0,0}, &.Surf2), + transf3D({0,2*.Surf2.Radius,0}, &.Surf2), + transf3D({.Surf2.Radius,2*.Surf2.Radius,0}, &.Surf2), }; InitWrapPosVecArr = {&InitWrapPos}; }; }; - AnyMuscleShortestPath DeltoideusPosterior3 = { - AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusPosterior3; - AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusPosterior3; - - AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusPosterior3; + AnyMuscleShortestPath DeltoideusPosterior2 = { + AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusPosterior2; + AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusPosterior2; + AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusPosterior2; + SPLine.StringMesh = 30; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; - SPLine.StringMesh = 40; +// AnyParamSurfAnalytical &Surf4 = ...Segments.Scapula.Deltoid_Scapula_Cyl.cyl; +AnyParamSurfAnalytical &Surf4 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl; +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop2.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop2.cyl; +AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidPosterior_NormaltoScapula.cyl; - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_3.Surf; - AnyParamSurfAnalytical &Surf2 = ...Segments.Scapula.deltoid_cyl.cyl; + + +// AnyParamSurfAnalytical &Surf3 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.deltoid_cyl.cyl; +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior2; + AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; SPLine = { AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_3.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_3.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_3.Center) + transf3D({-.Surf4.Radius,0,0}, &.Surf4), + transf3D({0,-.Surf4.Radius,0}, &.Surf4), +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior2), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior2), +// transf3D({-.Surf1.Sizes[0],-3*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior2), + transf3D({-.Surf2.Radius,0,0}, &.Surf2), + transf3D({0,2*.Surf2.Radius,0}, &.Surf2), + transf3D({.Surf2.Radius,2*.Surf2.Radius,0}, &.Surf2), }; InitWrapPosVecArr = {&InitWrapPos}; }; - }; + + AnyMuscleShortestPath DeltoideusPosterior3 = { + AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusPosterior3; + AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusPosterior3; - // an extra fibers a/b - AnyMuscleShortestPath DeltoideusPosterior2 = { - AnyMuscleModel &MusMdl = ...MuscleModels.DeltoideusPosterior2; - AnyRefNode &Org = ...Segments.Scapula.O_DeltoideusPosterior2; - AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusPosterior2; - SPLine.StringMesh = 30; + AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusPosterior3; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_2.Surf; - AnyParamSurfAnalytical &Surf2 = ...Segments.Scapula.deltoid_cyl.cyl; + SPLine.StringMesh = 40; +// AnyParamSurfAnalytical &Surf4 = ...Segments.Scapula.Deltoid_Scapula_Cyl.cyl; +AnyParamSurfAnalytical &Surf4 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop3.cyl; +AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidPosterior_NormaltoScapula.cyl; + + + + +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop3.cyl; +// AnyParamSurfAnalytical &Surf3 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.deltoid_cyl.cyl; +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior3; + AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; SPLine = { AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_2.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_2.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_2.Center) + transf3D({-.Surf4.Radius,0,0}, &.Surf4), + transf3D({0,-.Surf4.Radius,0}, &.Surf4), +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior3), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior3), +// transf3D({-.Surf1.Sizes[0],-3*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior3), +// transf3D({0,-.Surf2.Radius,0}, &.Surf2), + transf3D({-.Surf2.Radius,0,0}, &.Surf2), + transf3D({0,.Surf2.Radius,0}, &.Surf2), + transf3D({.Surf2.Radius,.Surf2.Radius,0}, &.Surf2), }; InitWrapPosVecArr = {&InitWrapPos}; }; + }; AnyMuscleShortestPath DeltoideusPosterior4 = { @@ -602,14 +810,32 @@ MuscleGroup Coracobrachialis = { AnyRefNode &Ins = ...Segments.Humerus.I_DeltoideusPosterior4; SPLine.StringMesh = 20; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; - AnyParamSurfAnalytical &Surf = ..WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_4.Surf; - AnyParamSurfAnalytical &Surf2 = ...Segments.Scapula.deltoid_cyl.cyl; +// AnyParamSurfAnalytical &Surf4 = ...Segments.Scapula.Deltoid_Scapula_Cyl.cyl; +AnyParamSurfAnalytical &Surf4 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl.cyl; +//AnyParamSurfAnalytical &Surf5 = ...Muscles.WrappingSurfaces.DeltoidWrappingLateral.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Stop4.cyl; +AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.DeltoidPosterior_NormaltoScapula.cyl; + + + +// AnyParamSurfAnalytical &Surf5 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Stop4.cyl; +// AnyParamSurfAnalytical &Surf8 = ...Segments.Scapula.Deltoid_Scapula_Cyl_Extra.cyl; + AnyParamSurfAnalytical &Surf8 = ...Muscles.WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.AlignmentRefNode.Deltoid_Scapula_Cyl_Extra.cyl; +// AnyParamSurfAnalytical &Surf1 = ..WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior4; + AnyParamSurfAnalytical &Surf2 = ...Segments.Humerus.Deltoid_hum.Deltoid_humCyl; SPLine = { AnyMatrix InitWrapPos = { - transf3D({0.8*.Surf.Sizes[0],0.8*.Surf.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_4.Center), - transf3D({1.1*.Surf.Sizes[0],0,0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_4.Center), - transf3D({0.8*.Surf.Sizes[0],-0.8*.Surf.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.BASE_FRAME.Wrapping_4.Center) +// transf3D({-.Surf4.Radius,.Surf4.Radius,0.25*.Surf4.Length}, &.Surf4),//transf3D({-.Surf4.Radius,.Surf4.Radius,0}, &.Surf4), +// transf3D({-.Surf4.Radius,-0.4*.Surf4.Radius,0.25*.Surf4.Length}, &.Surf4), //transf3D({-.Surf4.Radius,-.Surf4.Radius,0}, &.Surf4), + transf3D({-.Surf4.Radius,.Surf4.Radius,0}, &.Surf4),//transf3D({-.Surf4.Radius,.Surf4.Radius,0}, &.Surf4), + transf3D({-.Surf4.Radius,-0.4*.Surf4.Radius,0}, &.Surf4), //transf3D({-.Surf4.Radius,-.Surf4.Radius,0}, &.Surf4), + +// transf3D({0,-2*.Surf4.Radius,0}, &.Surf4), +// transf3D({.Surf1.Sizes[0],-.Surf1.Sizes[0 ],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior4), +// transf3D({0,-1.4*.Surf1.Sizes[0],0}, &...WrappingSurfaces.DeltoidWrappingPosterior.WrappingSegment.Ellipsoid_DeltoidWrappingPosterior4), + transf3D({-.Surf2.Radius,.Surf2.Radius,0}, &.Surf2), + transf3D({0,.Surf2.Radius,0}, &.Surf2), + transf3D({.Surf2.Radius,.Surf2.Radius,0}, &.Surf2), }; InitWrapPosVecArr = {&InitWrapPos}; }; diff --git a/Body/AAUHuman/Arm/ScapulaMuscleGeometry.any b/Body/AAUHuman/Arm/ScapulaMuscleGeometry.any index 96ffc7e20..1a1bf6c2b 100644 --- a/Body/AAUHuman/Arm/ScapulaMuscleGeometry.any +++ b/Body/AAUHuman/Arm/ScapulaMuscleGeometry.any @@ -34,37 +34,330 @@ Scapula = { }; }; - // Definition of cylinder used for wrapping of Deltoid scapula muscles - // the cylinder starts in gh and points towards ts. - AnyRefNode deltoid_cyl={ - - AnyVec3 P2 = .Scale(.Data.deltoid_cyl_P2_pos*.Mirror); //P2=.ai.sRel + VZ*Length; - AnyVec3 P3 = .Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; - - sRel=.ai.sRel; - - - //Calculate rot matrix for cylinder using three points - //p2-p1 used to find x axis - //p3-p1 used to find the y axis - //z axis found as cross product - AnyMat33 Mat = RotMat(sRel,P3,P2); - - //Switch around the on the columns to compensate that the cylinder has - //main axis along the zaxis - ARel={ - {Mat[0][2],Mat[0][0],Mat[0][1]}, - {Mat[1][2],Mat[1][0],Mat[1][1]}, - {Mat[2][2],Mat[2][0],Mat[2][1]}}; - - AnySurfCylinder cyl = { - Radius= vnorm(.sRel-.P3); - Length= vnorm(.sRel-.P2); - CapRatio=1.0; - //AnyDrawParamSurf drw={RGB={0,0,1};}; - }; - - }; + AnyRefNode deltoid_cyl_P1 = {sRel = .Scale(.Data.deltoid_cyl_P1_pos*.Mirror);}; + +// // Definition of cylinder used for wrapping of Deltoid scapula muscles +// // the cylinder starts in gh and points towards ts. +// AnyRefNode deltoid_cyl={ +// +// AnyVec3 P1 = .Scale(.Data.deltoid_cyl_P1_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.deltoid_cyl_P2_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P3,P2)*RotMat(-pi/2,x)*RotMat(-pi/2,z); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.sRel-.P3); +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1.0; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// +// }; + +// // Definition of cylinder used for wrapping of Deltoid scapula muscles +// // the cylinder starts in gh and points towards ts. +// AnyRefNode Deltoid_Scapula_Cyl={ +// +// AnyVec3 P1 = .Scale(.Data.deltoid_cyl_P1_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P2-.P3)*1.3; +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// +// }; +// AnyRefNode Deltoid_Scapula_Cyl_Extra={ +// +// AnyVec3 P1 = .Scale(.Data.deltoid_cyl_P1_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P1_1 = .Scale((.Data.deltoid_cyl_P1_pos+{-0.04,0.04,0})*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1_1; +// ARel=RotMat(P1,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P2-.P3)*1.3; +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// +// }; + +// AnyRefNode Deltoid_Scapula_Cyl_Stop1={ +// +// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .O_DeltoideusLateral1.sRel; //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*5; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// +// }; +// AnyRefNode Deltoid_Scapula_Cyl_Stop2={ +// +// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .O_DeltoideusLateral2.sRel; //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*5; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// +// }; +// AnyRefNode Deltoid_Scapula_Cyl_Stop3={ +// +// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .O_DeltoideusLateral3.sRel; //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*5; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// +// }; +// AnyRefNode Deltoid_Scapula_Cyl_Stop4={ +// +// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .O_DeltoideusLateral4.sRel; //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*5; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// +// }; +//////////////// AnyRefNode Deltoid_Scapula_Cyl_Stop3_Ant={ +//////////////// +//////////////// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +//////////////// AnyVec3 P2 = .O_DeltoideusLateral3.sRel; //P2=.ai.sRel + VZ*Length; +//////////////// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +//////////////// +//////////////// sRel= P1; +//////////////// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +//////////////// +//////////////// AnySurfCylinder cyl = { +//////////////// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98*0.7; +//////////////// Length= vnorm(.sRel-.P2)*5; +//////////////// CapRatio=1; +//////////////// //AnyDrawParamSurf drw={RGB={0,0,1};}; +////////////////// CenterOrigin = On; +//////////////// }; +//////////////// +//////////////// }; + +// AnyRefNode Deltoid_Clavicula_Cyl_Stop1={ +// +// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.Deltoid_Anterior_CylStop1_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*0.3; +// CapRatio=3; +// CapRatio2 = 1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// +// }; +// AnyRefNode Deltoid_Clavicula_Cyl_Stop2={ +// +// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.Deltoid_Anterior_CylStop2_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*0.3; +// CapRatio=3; +// CapRatio2 = 1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// +// }; +// AnyRefNode Deltoid_Clavicula_Cyl_Stop3={ +// +// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.Deltoid_Anterior_CylStop3_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*0.3; +// CapRatio=3; +// CapRatio2 = 1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// +// }; +// AnyRefNode Deltoid_Clavicula_Cyl_Stop4={ +// +// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.Deltoid_Anterior_CylStop4_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// +// }; + +// AnyRefNode Deltoid_Anterior_CylNode = {sRel = .Scale(.Data.Deltoid_Anterior_Cyl_pos*.Mirror);}; + +// AnyRefNode Deltoid_Clavicula_Cyl1={ +// +// AnyVec3 P1 = .Scale(.Data.Deltoid_Anterior_Cyl1_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P2-.P3)*1.3; +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// }; +// +// AnyRefNode Deltoid_Clavicula_Cyl2={ +// +// AnyVec3 P1 = .Scale(.Data.Deltoid_Anterior_Cyl2_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P2-.P3)*1.3; +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// }; +// +// AnyRefNode Deltoid_Clavicula_Cyl={ +// +// AnyVec3 P1 = .Scale(.Data.Deltoid_Anterior_Cyl_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= vnorm(.P2-.P3)*1.3; +// Length= vnorm(.sRel-.P2)*2; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +// CenterOrigin = On; +// }; +// }; + +// AnyRefNode Deltoid_Cyl_Anterior_Stopper1={ +// +// AnyVec3 P1 = .Scale(.Data.gh_pos*.Mirror); //P2=.ai.sRel + VZ*Length; +// AnyVec3 P2 = ..Clavicula.O_DeltoideusAnterior1.sRel; //P2=.ai.sRel + VZ*Length; +// AnyVec3 P3 = .GHReactionCenterNode.sRel;//.Scale(.Data.deltoid_cyl_P3_pos*.Mirror); //P3=.ai.sRel - VX*Radius; +// +// sRel= P1; +// ARel=RotMat(sRel,P2,P3)*RotMat(pi/2,y); +// +// AnySurfCylinder cyl = { +// Radius= ..Deltoid_Scapula_Cyl.cyl.Radius*0.98; +// Length= vnorm(.sRel-.P2)*5; +// CapRatio=1; +// //AnyDrawParamSurf drw={RGB={0,0,1};}; +//// CenterOrigin = On; +// }; +// }; + +// AnyRefNode deltoid_torus = { +// AnyVar minor_radius = 0.96*abs(.gh.sRel-.I_Infraspinatus5.sRel)[0]; +// AnyVar major_radius = minor_radius*1.9; +// +// AnyVec3 minor_center = {0, .I_Infraspinatus5.sRel[1],0}; +// AnyMat33 orientation = RotMat(0.0*....Sign,y); +// +// AnyVec3 major_center = minor_center+major_radius*....Sign*orientation'[0]; +// +// sRel=major_center; +// ARel = orientation; +// //viewRefFrame.Visible = Off; +// +// AnySurfTorus torus = { +// MajorRadius = ..Deltoid_Scapula_Cyl.cyl.Radius; +// MinorRadius = ..Deltoid_Scapula_Cyl.cyl.Radius; +// //viewSurface.Visible=On; +// }; +// +// }; AnyRefNode TricepsBrachiiLongumellipsoid = { diff --git a/pixi.lock b/pixi.lock index dd7830eab..83878a53b 100644 --- a/pixi.lock +++ b/pixi.lock @@ -11,22 +11,22 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/anypytools-1.17.1-py313hd190ac3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/anypytools-1.17.1-py313hd190ac3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py313h7033f15_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hfab6e84_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hf01b4d8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.16-py313h5d5ffb9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.16-py313h5d5ffb9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.14.0-nompi_py313hfaf8fd4_100.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.14.0-nompi_py313h253c126_101.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda @@ -37,35 +37,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1423503_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.4-h3f801dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-34_h59b9bed_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-34_he106b2a_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-35_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-35_h0358290_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.14.1-h332b0f4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.1-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-34_h7ac8fdf_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-35_h47877c9_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.4-h0c1763c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.1-he9a06e4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py313h8060acc_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.2-py313hf6604e3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.3-py313hf6604e3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.2-h26f9b46_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda @@ -73,14 +73,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments_anyscript-1.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.5-hec9711d_102_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.7-h2b335a9_100_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.1.0-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.1-py313h11c21cd_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.2-py313h11c21cd_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.3.0-pyhd8ed1ab_0.conda @@ -95,67 +95,109 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py313h07c4f96_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.24.0-py313h736c1ce_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda win-64: - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - - conda: https://prefix.dev/anybody-beta/win-64/anybodycon-8.1.4beta3-20331.70740_12784.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/anypytools-1.17.1-py313he24d9e4_0.conda + - conda: https://prefix.dev/anybody-beta/win-64/anybodycon-8.2.0beta5-20342.45240_13554.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/anypytools-1.17.1-py313he24d9e4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aom-3.9.1-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py313hfe59770_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-h4c7d964_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313ha7868ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313h5ea7bf4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.16-py313h927ade5_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/dav1d-1.2.1-hcfcfb64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.16-py313h927ade5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ffmpeg-8.0.0-gpl_h70aa942_905.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.14.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fribidi-1.0.16-hfd05255_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/gdk-pixbuf-2.44.1-h1f5b9c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/glslang-15.4.0-h5b34520_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.14-hac47afa_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.14.0-nompi_py313h74a315e_100.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.14.0-nompi_py313hf7f959b_101.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-11.5.0-h5f2951f_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_he30205f_103.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lame-3.100-hcfcfb64_1003.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.4-h20038f6_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-34_h6be65bb_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-34_h2a8eebe_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-35_h6be65bb_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-35_h2a8eebe_openblas.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.14.1-h88aaa65_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.24-h76ddb4d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.1-hac47afa_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-34_hd232482_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.14.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.14.0-hdbac1cb_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.0-h5f26cbf_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-35_hd232482_openblas.conda - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libopenblas-0.3.30-pthreads_ha4fe6b2_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libopus-1.5.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.50-h7351971_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/librsvg-2.58.4-h5ce5fed_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.50.4-hf5d6505_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h550210a_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libusb-1.0.29-h1839187_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h5112557_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.8-h741aa76_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py313hb4c8b1a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py313hce7ae62_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.3-py313hce7ae62_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openh264-2.6.0-hb17fa0b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.2-h725018a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pango-1.56.4-h03d888a_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.46-h3402e2f_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pydoe-0.3.8-py_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments_anyscript-1.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.5-h7de537c_102_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.7-hdf00ec1_100_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-311-py313h40c08fc_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.1.0-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.1-py313h62a08ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.2-py313h62a08ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sdl2-2.32.56-h5112557_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sdl3-3.2.22-h5112557_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/shaderc-2025.3-haa9a63f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda @@ -165,6 +207,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-video-0.4.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/spirv-tools-2025.1-hc790b64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/svt-av1-3.1.2-hac47afa_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda @@ -173,8 +217,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_31.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_31.conda - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py313h5ea7bf4_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/x264-1!164.3095-h8ffe710_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/x265-3.5-h2d74725_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.24.0-py313hcdcf24b_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-hbeecb71_2.conda default: channels: - url: https://conda.anaconda.org/conda-forge/ @@ -188,13 +236,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py313h7033f15_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hfab6e84_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hf01b4d8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.16-py313h5d5ffb9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.16-py313h5d5ffb9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -205,14 +253,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1423503_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.1-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.4-h0c1763c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.1-he9a06e4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py313h8060acc_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda @@ -221,7 +268,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.5-hec9711d_102_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.7-h2b335a9_100_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda @@ -239,18 +286,19 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py313h07c4f96_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.24.0-py313h736c1ce_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda win-64: - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py313hfe59770_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-h4c7d964_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313ha7868ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313h5ea7bf4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.16-py313h927ade5_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.16-py313h927ade5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -270,7 +318,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.5-h7de537c_102_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.7-hdf00ec1_100_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda @@ -292,7 +340,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py313h5ea7bf4_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.24.0-py313hcdcf24b_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-hbeecb71_2.conda docs: channels: - url: https://conda.anaconda.org/conda-forge/ @@ -311,17 +360,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py313h7033f15_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hfab6e84_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hf01b4d8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py313h7037e92_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.59.2-py313h3dea7bd_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.13.3-ha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.0-ha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda @@ -334,60 +383,60 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1423503_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-34_h59b9bed_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-35_h4a7cf45_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb03c661_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-34_he106b2a_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-35_h0358290_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.24-h86f0d12_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.1-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.13.3-ha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.13.3-h48d6fc4_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.14.0-ha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.0-h73754d4_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.0-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-34_h7ac8fdf_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-35_h47877c9_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.50-h421ea60_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.4-h0c1763c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-h8261f1e_6.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.1-he9a06e4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py313h8060acc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.5-py313h683a580_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.6-py313h683a580_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.2-py313hf6604e3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.3-py313hf6604e3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h55fea9a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.2-h26f9b46_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py313h8db990d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py313hf46931b_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybtex-0.25.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pybtex-docutils-1.0.3-py313h78bf25f_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.7-pyh3cfb1c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.9-pyh3cfb1c2_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py313h4b2b08d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments_anyscript-1.5.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.5-hec9711d_102_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.7-h2b335a9_100_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-frontmatter-1.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -429,7 +478,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py313h07c4f96_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.24.0-py313h736c1ce_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda win-64: - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda @@ -441,17 +490,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py313hfe59770_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-h4c7d964_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313ha7868ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313h5ea7bf4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py313hf069bd2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.59.2-py313hd650c13_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.13.3-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.14.0-h57928b3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda @@ -463,22 +512,22 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/latexcodec-2.0.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-34_h5709861_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-35_h5709861_mkl.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hfd05255_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-34_h2a3cdd5_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-35_h2a3cdd5_mkl.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.24-h76ddb4d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.1-hac47afa_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.13.3-h57928b3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.13.3-h0b5ce68_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h88281d1_1000.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.14.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.14.0-hdbac1cb_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h64bd3f2_1002.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.0-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-34_hf9ab0e9_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-35_hf9ab0e9_mkl.conda - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.50-h7351971_1.conda @@ -487,34 +536,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_9.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.8-h741aa76_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-16-2.14.6-h692994f_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.14.6-h5d26750_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-20.1.8-hfa2b4ca_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py313hb4c8b1a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.5-py313he1ded55_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.6-py313he1ded55_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h57928b3_16.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py313hce7ae62_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.3-py313hce7ae62_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h24db6dd_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.2-h725018a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.3.0-py313h641beac_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.3.0-py313h641beac_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybtex-0.25.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pybtex-docutils-1.0.3-py313hfa70ccb_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.7-pyh3cfb1c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.9-pyh3cfb1c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.33.2-py313ha8a9a3c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments_anyscript-1.5.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.5-h7de537c_102_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.7-hdf00ec1_100_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-frontmatter-1.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -561,7 +611,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h6a83c73_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py313h5ea7bf4_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.24.0-py313hcdcf24b_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-hbeecb71_2.conda test: channels: @@ -574,27 +624,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/anypytools-1.17.1-py313hd190ac3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.35.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/anypytools-1.17.1-py313hd190ac3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.35.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/azure-storage-blob-12.26.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py313h7033f15_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hfab6e84_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hf01b4d8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-45.0.6-py313hafb0bba_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.16-py313h5d5ffb9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-45.0.7-py313hafb0bba_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.16-py313h5d5ffb9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.14.0-nompi_py313hfaf8fd4_100.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.14.0-nompi_py313h253c126_101.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda @@ -609,34 +659,34 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1423503_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.4-h3f801dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-34_h59b9bed_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-34_he106b2a_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-35_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-35_h0358290_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.14.1-h332b0f4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.24-h86f0d12_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.1-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.13.3-ha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.13.3-h48d6fc4_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.14.0-ha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.0-h73754d4_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.0-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-34_h7ac8fdf_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-35_h47877c9_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.50-h421ea60_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.4-h0c1763c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-h8261f1e_6.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.1-he9a06e4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda @@ -645,11 +695,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.2-py313hf6604e3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.3-py313hf6604e3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h55fea9a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.2-h26f9b46_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py313h8db990d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py313hf46931b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda @@ -657,17 +707,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments_anyscript-1.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-split-0.10.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.5-hec9711d_102_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.7-h2b335a9_100_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.1.0-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.1-py313h11c21cd_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.2-py313h11c21cd_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda @@ -686,76 +736,108 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py313h07c4f96_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.24.0-py313h736c1ce_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda win-64: - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - - conda: https://prefix.dev/anybody-beta/win-64/anybodycon-8.1.4beta3-20331.70740_12784.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/anypytools-1.17.1-py313he24d9e4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.35.0-pyhd8ed1ab_0.conda + - conda: https://prefix.dev/anybody-beta/win-64/anybodycon-8.2.0beta5-20342.45240_13554.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/anypytools-1.17.1-py313he24d9e4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aom-3.9.1-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.35.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/azure-storage-blob-12.26.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py313hfe59770_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-h4c7d964_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313ha7868ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313h5ea7bf4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-45.0.6-py313h392ebe0_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.16-py313h927ade5_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-45.0.7-py313h392ebe0_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/dav1d-1.2.1-hcfcfb64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.16-py313h927ade5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ffmpeg-8.0.0-gpl_h70aa942_905.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.14.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fribidi-1.0.16-hfd05255_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/gdk-pixbuf-2.44.1-h1f5b9c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/glslang-15.4.0-h5b34520_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.14-hac47afa_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.14.0-nompi_py313h74a315e_100.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.14.0-nompi_py313hf7f959b_101.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-11.5.0-h5f2951f_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_he30205f_103.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/isodate-0.7.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lame-3.100-hcfcfb64_1003.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.4-h20038f6_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-34_h6be65bb_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-34_h2a8eebe_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-35_h6be65bb_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-35_h2a8eebe_openblas.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.14.1-h88aaa65_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.24-h76ddb4d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.1-hac47afa_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.13.3-h57928b3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.13.3-h0b5ce68_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.14.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.14.0-hdbac1cb_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.0-h5f26cbf_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.0-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-34_hd232482_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-35_hd232482_openblas.conda - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libopenblas-0.3.30-pthreads_ha4fe6b2_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libopus-1.5.2-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.50-h7351971_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/librsvg-2.58.4-h5ce5fed_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.50.4-hf5d6505_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h550210a_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libusb-1.0.29-h1839187_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h5112557_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_9.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.8-h741aa76_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py313hb4c8b1a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py313hce7ae62_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.3-py313hce7ae62_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openh264-2.6.0-hb17fa0b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h24db6dd_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.2-h725018a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.3.0-py313h641beac_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pango-1.56.4-h03d888a_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.46-h3402e2f_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.3.0-py313h641beac_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda @@ -763,18 +845,21 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments_anyscript-1.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-split-0.10.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.5-h7de537c_102_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.7-hdf00ec1_100_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-311-py313h40c08fc_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.1.0-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.1-py313h62a08ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.2-py313h62a08ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sdl2-2.32.56-h5112557_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sdl3-3.2.22-h5112557_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/shaderc-2025.3-haa9a63f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.3.0-pyhd8ed1ab_0.conda @@ -785,6 +870,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-video-0.4.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/spirv-tools-2025.1-hc790b64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/svt-av1-3.1.2-hac47afa_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhe01879c_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda @@ -794,10 +881,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_31.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_31.conda - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/x264-1!164.3095-h8ffe710_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/x265-3.5-h2d74725_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.12-h0e40799_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py313h5ea7bf4_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.24.0-py313hcdcf24b_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-hbeecb71_2.conda packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 @@ -862,19 +952,20 @@ packages: license_family: MIT size: 18074 timestamp: 1733247158254 -- conda: https://prefix.dev/anybody-beta/win-64/anybodycon-8.1.4beta3-20331.70740_12784.conda +- conda: https://prefix.dev/anybody-beta/win-64/anybodycon-8.2.0beta5-20342.45240_13554.conda build_number: 0 - sha256: 545bf5ea905a08842f0d563fb66f99539d20067eaac534863e8b02b0c16896d4 + sha256: f21f11d6fefecead342b36f1570627946850cff49cd9d995bfb9316a2daffa0b depends: - vc14_runtime - nomkl + - ffmpeg constrains: - anypytools >=1.13.0 - size: 137561478 - timestamp: 1756669433027 -- conda: https://conda.anaconda.org/conda-forge/linux-64/anypytools-1.17.1-py313hd190ac3_0.conda - sha256: 39c3073f32fcd1581e9f7535383d1727161957b023460b8cffdd9e67a42dd904 - md5: 6f8e70f96bfc231482e6fbd7d1571660 + size: 134541374 + timestamp: 1757594388348 +- conda: https://conda.anaconda.org/conda-forge/linux-64/anypytools-1.17.1-py313hd190ac3_1.conda + sha256: b8a3bd5a05a0078fdabfb25bf185ed40a29027c2b7c9c698fd05ff15344c74d7 + md5: a2800a4523a810658e521c0e95431d6f depends: - python - h5py >=2.5 @@ -886,11 +977,11 @@ packages: - python_abi 3.13.* *_cp313 license: MIT license_family: MIT - size: 112676 - timestamp: 1750665979177 -- conda: https://conda.anaconda.org/conda-forge/win-64/anypytools-1.17.1-py313he24d9e4_0.conda - sha256: 13cfa7989c4f86f71d735ec358518ef26ca7a9ee36e6f59d7586d14cacfd7b93 - md5: fa48066e790f0314a733eb9fd6ff09a0 + size: 112666 + timestamp: 1757044658889 +- conda: https://conda.anaconda.org/conda-forge/win-64/anypytools-1.17.1-py313he24d9e4_1.conda + sha256: 5125e49c080af0f3f28d7ae69cf033a00fe8189b402d40c9fea5fc6dc385104b + md5: 994425c3b398290b59039ce013025ca5 depends: - python - h5py >=2.5 @@ -903,20 +994,30 @@ packages: - python_abi 3.13.* *_cp313 license: MIT license_family: MIT - size: 111707 - timestamp: 1750666008446 -- conda: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.35.0-pyhd8ed1ab_0.conda - sha256: f8d5b3d1538a6913c0ed83964758d0ba7dcb38efb891e9db0dc492c534b68d0f - md5: 325b93157ac0c9ef15b56350422156c8 + size: 111840 + timestamp: 1757044646187 +- conda: https://conda.anaconda.org/conda-forge/win-64/aom-3.9.1-he0c23c2_0.conda + sha256: 0524d0c0b61dacd0c22ac7a8067f977b1d52380210933b04141f5099c5b6fec7 + md5: 3d7c14285d3eb3239a76ff79063f27a5 depends: - - python >=3.9 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-2-Clause + license_family: BSD + size: 1958151 + timestamp: 1718551737234 +- conda: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.35.1-pyhd8ed1ab_0.conda + sha256: 50c3b38eb4cde1e0d82dacb50a59ee8efd41d242b7dd6d70334ab06cb1bc4a2b + md5: 084d8439be7cd71a21b291e9f658061b + depends: + - python >=3.10 - requests >=2.21.0 - six >=1.11.0 - typing_extensions >=4.6.0 license: MIT - license_family: MIT - size: 111870 - timestamp: 1751540468780 + size: 112523 + timestamp: 1757645510 - conda: https://conda.anaconda.org/conda-forge/noarch/azure-storage-blob-12.26.0-pyhd8ed1ab_0.conda sha256: d39301efe61a0753bf0962e2870e6ef192289dfa53e1db2132d5144f69b7293d md5: b2b2ff1cc28caa90e65f56ebc1539ff6 @@ -961,6 +1062,7 @@ packages: - libbrotlienc 1.1.0 hb03c661_4 - libgcc >=14 license: MIT + license_family: MIT size: 19883 timestamp: 1756599394934 - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-hfd05255_4.conda @@ -974,6 +1076,7 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: MIT + license_family: MIT size: 20233 timestamp: 1756599828380 - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb03c661_4.conda @@ -985,6 +1088,7 @@ packages: - libbrotlienc 1.1.0 hb03c661_4 - libgcc >=14 license: MIT + license_family: MIT size: 19615 timestamp: 1756599385418 - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-hfd05255_4.conda @@ -997,6 +1101,7 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: MIT + license_family: MIT size: 21425 timestamp: 1756599802301 - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py313h7033f15_4.conda @@ -1011,6 +1116,7 @@ packages: constrains: - libbrotlicommon 1.1.0 hb03c661_4 license: MIT + license_family: MIT size: 353639 timestamp: 1756599425945 - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py313hfe59770_4.conda @@ -1025,29 +1131,30 @@ packages: constrains: - libbrotlicommon 1.1.0 hfd05255_4 license: MIT + license_family: MIT size: 323459 timestamp: 1756600051044 -- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d - md5: 62ee74e96c5ebb0af99386de58cf9553 +- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda + sha256: c30daba32ddebbb7ded490f0e371eae90f51e72db620554089103b4a6934b0d5 + md5: 51a19bba1b8ebfb60df25cde030b7ebc depends: - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 + - libgcc >=14 license: bzip2-1.0.6 license_family: BSD - size: 252783 - timestamp: 1720974456583 -- conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda - sha256: 35a5dad92e88fdd7fc405e864ec239486f4f31eec229e31686e61a140a8e573b - md5: 276e7ffe9ffe39688abc665ef0f45596 + size: 260341 + timestamp: 1757437258798 +- conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda + sha256: d882712855624641f48aa9dc3f5feea2ed6b4e6004585d3616386a18186fe692 + md5: 1077e9333c41ff0be8edd1a5ec0ddace depends: - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: bzip2-1.0.6 license_family: BSD - size: 54927 - timestamp: 1720974860185 + size: 55977 + timestamp: 1757437738856 - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda sha256: f8003bef369f57396593ccd03d08a8e21966157269426f71e943f96e4b579aeb md5: f7f0d6cc2dc986d42ac2689ec88192be @@ -1093,6 +1200,25 @@ packages: license_family: BSD size: 11065 timestamp: 1615209567874 +- conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda + sha256: b9f577bddb033dba4533e851853924bfe7b7c1623d0697df382eef177308a917 + md5: 20e32ced54300292aff690a69c5e7b97 + depends: + - fontconfig >=2.15.0,<3.0a0 + - fonts-conda-ecosystem + - freetype >=2.12.1,<3.0a0 + - icu >=75.1,<76.0a0 + - libexpat >=2.6.4,<3.0a0 + - libglib >=2.82.2,<3.0a0 + - libpng >=1.6.47,<1.7.0a0 + - libzlib >=1.3.1,<2.0a0 + - pixman >=0.44.2,<1.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: LGPL-2.1-only or MPL-1.1 + size: 1524254 + timestamp: 1741555212198 - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda sha256: a1ad5b0a2a242f439608f22a538d2175cac4444b7b3f4e2b8c090ac337aaea40 md5: 11f59985f49df4620890f3e746ed7102 @@ -1101,34 +1227,34 @@ packages: license: ISC size: 158692 timestamp: 1754231530168 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hfab6e84_0.conda - sha256: 73cd6199b143a8a6cbf733ce124ed57defc1b9a7eab9b10fd437448caf8eaa45 - md5: ce6386a5892ef686d6d680c345c40ad1 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hf01b4d8_1.conda + sha256: 2c2d68ef3480c22e0d5837b9314579b4a8484ccfed264b8b7d5da70f695afdd9 + md5: c4a0f01c46bc155d205694bec57bd709 depends: - __glibc >=2.17,<3.0.a0 - - libffi >=3.4,<4.0a0 - - libgcc >=13 + - libffi >=3.4.6,<3.5.0a0 + - libgcc >=14 - pycparser - - python >=3.13.0rc1,<3.14.0a0 + - python >=3.13,<3.14.0a0 - python_abi 3.13.* *_cp313 license: MIT license_family: MIT - size: 295514 - timestamp: 1725560706794 -- conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313ha7868ed_0.conda - sha256: b19f581fe423858f1f477c52e10978be324c55ebf2e418308d30d013f4a476ff - md5: 519a29d7ac273f8c165efc0af099da42 + size: 297231 + timestamp: 1756808418076 +- conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313h5ea7bf4_1.conda + sha256: 8e2cd5b827a717d4a9f14594404a7d3693a5a7b7a9a181409ca1bd24a995d78c + md5: 69a537fed13191160f1a139b6d42f6c1 depends: - pycparser - - python >=3.13.0rc1,<3.14.0a0 + - python >=3.13,<3.14.0a0 - python_abi 3.13.* *_cp313 - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: MIT license_family: MIT - size: 291828 - timestamp: 1725561211547 + size: 290632 + timestamp: 1756808584791 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda sha256: 838d5a011f0e7422be6427becba3de743c78f3874ad2743c341accbba9bb2624 md5: 7e7d5ef1b9ed630e4a1c358d6bc62284 @@ -1158,6 +1284,7 @@ packages: - python >=3.13,<3.14.0a0 - python_abi 3.13.* *_cp313 license: BSD-3-Clause + license_family: BSD size: 296706 timestamp: 1756544800085 - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py313hf069bd2_2.conda @@ -1171,11 +1298,12 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: BSD-3-Clause + license_family: BSD size: 225780 timestamp: 1756544971020 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-45.0.6-py313hafb0bba_0.conda - sha256: 51713a14ac32a7d9ac21ec1fb6e4522178387f63acb0d096bac0ff0f30e64ba4 - md5: 48c1b1c5e42c8df2e8fa0343b41fbb40 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-45.0.7-py313hafb0bba_1.conda + sha256: d22b2798369956e8c8d3de5deaf4312c63fdbfbf5764be57b00db52169d77b67 + md5: 5550fcb08b89b0c7d565d39a5f666225 depends: - __glibc >=2.17,<3.0.a0 - cffi >=1.12 @@ -1187,11 +1315,11 @@ packages: - __glibc >=2.17 license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT license_family: BSD - size: 1659554 - timestamp: 1754472862161 -- conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-45.0.6-py313h392ebe0_0.conda - sha256: 2e874f7ad71604d37954b7a0e418baeee7b22d776f07e237663107b42c5be4ee - md5: 57d9b6268af5a89e46e9de871bab9e3a + size: 1658234 + timestamp: 1756843590 +- conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-45.0.7-py313h392ebe0_1.conda + sha256: 83e4e8ebc0ab67519f9761260a035427dbe717b6f40c5647d775278ac7dbe906 + md5: 9d51af64bb06e38914656d533483f442 depends: - cffi >=1.12 - openssl >=3.5.2,<4.0a0 @@ -1202,8 +1330,8 @@ packages: - vc14_runtime >=14.44.35208 license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT license_family: BSD - size: 1421568 - timestamp: 1754473168932 + size: 1416143 + timestamp: 1756843770371 - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_1.conda sha256: 9827efa891e507a91a8a2acf64e210d2aff394e1cde432ad08e1f8c66b12293c md5: 44600c4667a319d67dbe0681fc0bc833 @@ -1213,22 +1341,34 @@ packages: license_family: BSD size: 13399 timestamp: 1733332563512 -- conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.16-py313h5d5ffb9_0.conda - sha256: 26c56e7f93cde8be5b1b3ec3404f95d2874946f6fe0182f6720e5c3232e006ed - md5: c6286f4df7bec3d3712d617a358149b4 +- conda: https://conda.anaconda.org/conda-forge/win-64/dav1d-1.2.1-hcfcfb64_0.conda + sha256: 2aa2083c9c186da7d6f975ccfbef654ed54fff27f4bc321dbcd12cee932ec2c4 + md5: ed2c27bda330e3f0ab41577cf8b9b585 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-2-Clause + license_family: BSD + size: 618643 + timestamp: 1685696352968 +- conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.16-py313h5d5ffb9_1.conda + sha256: a5cefff8a7ef8a0ede9af01247bcebbc6222bc95a8e7eeeb0495765e22fc3f1c + md5: 17e1e8f60454cf198f17234ccbb2fa8d depends: - python - - __glibc >=2.17,<3.0.a0 - libstdcxx >=14 - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 - python_abi 3.13.* *_cp313 license: MIT license_family: MIT - size: 2868365 - timestamp: 1754523414483 -- conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.16-py313h927ade5_0.conda - sha256: 5829816abc09896825c1f587cbfbf5548b1e0aa39758fbb10a65d53889dfeac8 - md5: 5fe037380ae0b46e412141e4ddea31a0 + size: 2868399 + timestamp: 1756742083538 +- conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.16-py313h927ade5_1.conda + sha256: 89e86812b7163820e7316971e7b4cfcc32db9e043cf4698b7793207c3ef2592a + md5: f8323ed8df3c1a137fd0ef88cdaec20d depends: - python - vc >=14.3,<15 @@ -1240,8 +1380,8 @@ packages: - python_abi 3.13.* *_cp313 license: MIT license_family: MIT - size: 4000318 - timestamp: 1754523432925 + size: 4000266 + timestamp: 1756742028369 - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda sha256: fa5966bb1718bbf6967a85075e30e4547901410cc7cb7b16daf68942e9a94823 md5: 24c1ca34138ee57de72a943237cde4cc @@ -1268,6 +1408,107 @@ packages: license_family: MIT size: 38835 timestamp: 1733231086305 +- conda: https://conda.anaconda.org/conda-forge/win-64/ffmpeg-8.0.0-gpl_h70aa942_905.conda + sha256: c666944f93bbef7e89aaa672c7b6c91fdaf6a88799d9b1daccfda15504a53f4b + md5: 06c3916f8bfb26bfffe62bcf2e4678e4 + depends: + - aom >=3.9.1,<3.10.0a0 + - bzip2 >=1.0.8,<2.0a0 + - dav1d >=1.2.1,<1.2.2.0a0 + - fontconfig >=2.15.0,<3.0a0 + - fonts-conda-ecosystem + - harfbuzz >=11.4.5 + - lame >=3.100,<3.101.0a0 + - libexpat >=2.7.1,<3.0a0 + - libfreetype >=2.13.3 + - libfreetype6 >=2.13.3 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libopus >=1.5.2,<2.0a0 + - librsvg >=2.58.4,<3.0a0 + - libvorbis >=1.3.7,<1.4.0a0 + - libxml2 >=2.13.8,<2.14.0a0 + - libzlib >=1.3.1,<2.0a0 + - openh264 >=2.6.0,<2.6.1.0a0 + - openssl >=3.5.2,<4.0a0 + - sdl2 >=2.32.54,<3.0a0 + - shaderc >=2025.3,<2025.4.0a0 + - svt-av1 >=3.1.2,<3.1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - x264 >=1!164.3095,<1!165 + - x265 >=3.5,<3.6.0a0 + constrains: + - __cuda >=12.8 + license: GPL-2.0-or-later + license_family: GPL + size: 10394755 + timestamp: 1757196056236 +- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b + md5: 0c96522c6bdaed4b1566d11387caaf45 + license: BSD-3-Clause + license_family: BSD + size: 397370 + timestamp: 1566932522327 +- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c + md5: 34893075a5c9e55cdafac56607368fc6 + license: OFL-1.1 + license_family: Other + size: 96530 + timestamp: 1620479909603 +- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139 + md5: 4d59c254e01d9cde7957100457e2d5fb + license: OFL-1.1 + license_family: Other + size: 700814 + timestamp: 1620479612257 +- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + sha256: 2821ec1dc454bd8b9a31d0ed22a7ce22422c0aef163c59f49dfdf915d0f0ca14 + md5: 49023d73832ef61042f6a237cb2687e7 + license: LicenseRef-Ubuntu-Font-Licence-Version-1.0 + license_family: Other + size: 1620504 + timestamp: 1727511233259 +- conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda + sha256: ed122fc858fb95768ca9ca77e73c8d9ddc21d4b2e13aaab5281e27593e840691 + md5: 9bb0026a2131b09404c59c4290c697cd + depends: + - freetype >=2.12.1,<3.0a0 + - libexpat >=2.6.3,<3.0a0 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + size: 192355 + timestamp: 1730284147944 +- conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61 + md5: fee5683a3f04bd15cbd8318b096a27ab + depends: + - fonts-conda-forge + license: BSD-3-Clause + license_family: BSD + size: 3667 + timestamp: 1566974674465 +- conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 + sha256: 53f23a3319466053818540bcdf2091f253cbdbab1e0e9ae7b9e509dcaa2a5e38 + md5: f766549260d6815b0c52253f1fb1bb29 + depends: + - font-ttf-dejavu-sans-mono + - font-ttf-inconsolata + - font-ttf-source-code-pro + - font-ttf-ubuntu + license: BSD-3-Clause + license_family: BSD + size: 4102 + timestamp: 1566932280397 - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.59.2-py313h3dea7bd_0.conda sha256: 1e2cac4460fd14b52324ce569428e0f2610fbc831c7271bdced3de4c92e62ae5 md5: f3968013ee183bd2bce0e0433abd4384 @@ -1297,24 +1538,74 @@ packages: license_family: MIT size: 2490458 timestamp: 1756328983115 -- conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.13.3-ha770c72_1.conda - sha256: 7ef7d477c43c12a5b4cddcf048a83277414512d1116aba62ebadfa7056a7d84f - md5: 9ccd736d31e0c6e41f54e704e5312811 +- conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.0-ha770c72_1.conda + sha256: 57cc2f8ec88529c41afd494f853c1e439abb3a658387c92fc65aab85d2fa821e + md5: 01d8409cffb4cb37b5007f5c46ffa55b depends: - - libfreetype 2.13.3 ha770c72_1 - - libfreetype6 2.13.3 h48d6fc4_1 + - libfreetype 2.14.0 ha770c72_1 + - libfreetype6 2.14.0 h73754d4_1 license: GPL-2.0-only OR FTL - size: 172450 - timestamp: 1745369996765 -- conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.13.3-h57928b3_1.conda - sha256: 0bcc9c868d769247c12324f957c97c4dbee7e4095485db90d9c295bcb3b1bb43 - md5: 633504fe3f96031192e40e3e6c18ef06 - depends: - - libfreetype 2.13.3 h57928b3_1 - - libfreetype6 2.13.3 h0b5ce68_1 + size: 173443 + timestamp: 1757461581149 +- conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.14.0-h57928b3_1.conda + sha256: 51f15d020ab0d6cae05f9403a30a6b04d1fa23993b595765eb98f993fb7bbe2e + md5: 73dff2f5c34b42abf41fc9ba084d0019 + depends: + - libfreetype 2.14.0 h57928b3_1 + - libfreetype6 2.14.0 hdbac1cb_1 license: GPL-2.0-only OR FTL - size: 184162 - timestamp: 1745370242683 + size: 184608 + timestamp: 1757518017222 +- conda: https://conda.anaconda.org/conda-forge/win-64/fribidi-1.0.16-hfd05255_0.conda + sha256: 15011071ee56c216ffe276c8d734427f1f893f275ef733f728d13f610ed89e6e + md5: c27bd87e70f970010c1c6db104b88b18 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: LGPL-2.1-or-later + size: 64394 + timestamp: 1757438741305 +- conda: https://conda.anaconda.org/conda-forge/win-64/gdk-pixbuf-2.44.1-h1f5b9c4_0.conda + sha256: ec7020b4d3c4eb5f351a3cb3d658a11511ba4e478333b91fc47bb4b80d50069f + md5: 43f0baeaa0487a5efce141008651330e + depends: + - libglib >=2.86.0,<3.0a0 + - libintl >=0.22.5,<1.0a0 + - libjpeg-turbo >=3.1.0,<4.0a0 + - liblzma >=5.8.1,<6.0a0 + - libpng >=1.6.50,<1.7.0a0 + - libtiff >=4.7.0,<4.8.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: LGPL-2.1-or-later + license_family: LGPL + size: 573616 + timestamp: 1757867805250 +- conda: https://conda.anaconda.org/conda-forge/win-64/glslang-15.4.0-h5b34520_0.conda + sha256: 30b9d2afb020c3bd3e019d57e46963f0e594456d3000c4eb919ca5cb3137d605 + md5: a06fd50d7baf9a8cbc5c8bba79e1721e + depends: + - spirv-tools >=2025,<2026.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: BSD-3-Clause + license_family: BSD + size: 5010650 + timestamp: 1751107584590 +- conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.14-hac47afa_2.conda + sha256: 5f1714b07252f885a62521b625898326ade6ca25fbc20727cfe9a88f68a54bfd + md5: b785694dd3ec77a011ccf0c24725382b + depends: + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: LGPL-2.0-or-later + license_family: LGPL + size: 96336 + timestamp: 1755102441729 - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda sha256: 84c64443368f84b600bfecc529a1194a3b14c3656ee2e832d15a20e0329b6da3 md5: 164fc43f0b53b6e3a7bc7dce5e4f1dc9 @@ -1327,37 +1618,55 @@ packages: license_family: MIT size: 95967 timestamp: 1756364871835 -- conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.14.0-nompi_py313hfaf8fd4_100.conda - sha256: 4627a4c06367ffffe0ee15ba60d9a73834aa785d2a6bcb7d5fef44981cd5c2c4 - md5: 7f4197594732cc668bb79bfa21c6d3ab +- conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.14.0-nompi_py313h253c126_101.conda + sha256: bd17ac3a6d377dee0a5d38badb8794979e8dd164b169d9b376543905795ab90b + md5: b50dbba4c535b8fbd8ac7bedf00c029b depends: - __glibc >=2.17,<3.0.a0 - cached-property - hdf5 >=1.14.6,<1.14.7.0a0 - - libgcc >=13 - - numpy >=1.21,<3 + - libgcc >=14 + - numpy >=1.23,<3 - python >=3.13,<3.14.0a0 - python_abi 3.13.* *_cp313 license: BSD-3-Clause license_family: BSD - size: 1317191 - timestamp: 1749298469522 -- conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.14.0-nompi_py313h74a315e_100.conda - sha256: bf4c957871a0b860e2d80ac5765801207eff451be1670f9927217d0bafd94d22 - md5: 5aa0d701f6c6c0236d68e637fd2c78f6 + size: 1323142 + timestamp: 1756767170664 +- conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.14.0-nompi_py313hf7f959b_101.conda + sha256: 4a9c30aa778b895464c62702af91b78d15e8314274c8a2aab923c6f2ae064ad3 + md5: fbf61198e51ffef0e910a456ca472595 depends: - cached-property - hdf5 >=1.14.6,<1.14.7.0a0 - - numpy >=1.21,<3 + - numpy >=1.23,<3 - python >=3.13,<3.14.0a0 - python_abi 3.13.* *_cp313 - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: BSD-3-Clause license_family: BSD - size: 1039284 - timestamp: 1749299869184 + size: 1053245 + timestamp: 1756767827911 +- conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-11.5.0-h5f2951f_0.conda + sha256: cef9a0fce6a25097c9b1fe71f28f4bbc3d8b9a3d146bd843786d5d69d76ec1ed + md5: b8a03acd6ea98e55700e5e8b33a43c66 + depends: + - cairo >=1.18.4,<2.0a0 + - graphite2 >=1.3.14,<2.0a0 + - icu >=75.1,<76.0a0 + - libexpat >=2.7.1,<3.0a0 + - libfreetype >=2.14.0 + - libfreetype6 >=2.14.0 + - libglib >=2.86.0,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + size: 1135070 + timestamp: 1757867878437 - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda sha256: 4f173af9e2299de7eee1af3d79e851bca28ee71e7426b377e841648b51d48614 md5: c74d83614aec66227ae5199d98852aaf @@ -1408,6 +1717,17 @@ packages: license_family: MIT size: 17397 timestamp: 1737618427549 +- conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda + sha256: 1d04369a1860a1e9e371b9fc82dd0092b616adcf057d6c88371856669280e920 + md5: 8579b6bb8d18be7c0b27fb08adeeeb40 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + size: 14544252 + timestamp: 1720853966338 - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda sha256: d7a472c9fd479e2e8dcb83fb8d433fce971ea369d704ece380e876f9c3494e87 md5: 39a4f67be3286c86d696df570b1201b7 @@ -1529,6 +1849,17 @@ packages: license_family: MIT size: 712034 timestamp: 1719463874284 +- conda: https://conda.anaconda.org/conda-forge/win-64/lame-3.100-hcfcfb64_1003.tar.bz2 + sha256: 824988a396b97bb9138823a1b3aabd8326e06da5834b3011253d72bb45fd3a88 + md5: d92e64077c44c9e32c72d4b5799d47e4 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 + license: LGPL-2.0-only + license_family: LGPL + size: 570583 + timestamp: 1664996824680 - conda: https://conda.anaconda.org/conda-forge/noarch/latexcodec-2.0.1-pyh9f0ad1d_0.tar.bz2 sha256: 5210d31c8f2402dd1ad1b3edcf7a53292b9da5de20cd14d9c243dbf9278b1c4f md5: 8d67904973263afd2985ba56aa2d6bb4 @@ -1619,57 +1950,57 @@ packages: license_family: BSD size: 33847 timestamp: 1749993666162 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-34_h59b9bed_openblas.conda - build_number: 34 - sha256: 08a394ba934f68f102298259b150eb5c17a97c30c6da618e1baab4247366eab3 - md5: 064c22bac20fecf2a99838f9b979374c +- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-35_h4a7cf45_openblas.conda + build_number: 35 + sha256: 6cae2184069dd6527a405bc4a3de1290729f6f1c7a475fa4c937a6c02e05f058 + md5: 6da7e852c812a84096b68158574398d0 depends: - libopenblas >=0.3.30,<0.3.31.0a0 - libopenblas >=0.3.30,<1.0a0 constrains: + - blas 2.135 openblas + - liblapacke 3.9.0 35*_openblas - mkl <2025 - - blas 2.134 openblas - - liblapacke 3.9.0 34*_openblas - - libcblas 3.9.0 34*_openblas - - liblapack 3.9.0 34*_openblas + - liblapack 3.9.0 35*_openblas + - libcblas 3.9.0 35*_openblas license: BSD-3-Clause license_family: BSD - size: 19306 - timestamp: 1754678416811 -- conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-34_h5709861_mkl.conda - build_number: 34 - sha256: d7865fcc7d29b22e4111ababec49083851a84bb3025748eed65184be765b6e7d - md5: a64dcde5f27b8e0e413ddfc56151664c + size: 17153 + timestamp: 1757446766752 +- conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-35_h5709861_mkl.conda + build_number: 35 + sha256: 4180e7ab27ed03ddf01d7e599002fcba1b32dcb68214ee25da823bac371ed362 + md5: 45d98af023f8b4a7640b1f713ce6b602 depends: - mkl >=2024.2.2,<2025.0a0 constrains: - - libcblas 3.9.0 34*_mkl - - liblapacke 3.9.0 34*_mkl - - blas 2.134 mkl - - liblapack 3.9.0 34*_mkl + - blas 2.135 mkl + - liblapack 3.9.0 35*_mkl + - libcblas 3.9.0 35*_mkl + - liblapacke 3.9.0 35*_mkl license: BSD-3-Clause license_family: BSD - size: 70548 - timestamp: 1754682440057 -- conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-34_h6be65bb_openblas.conda - build_number: 34 - sha256: 3348baaef73da767c8bbe7d76087fd1eb2a5f16a1ecafb5804007ffa4a9b71a1 - md5: 77a4ad36f2945323984dd22298b6af9a + size: 66044 + timestamp: 1757003486248 +- conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-35_h6be65bb_openblas.conda + build_number: 35 + sha256: c4967e788f61922ed0b195935b88e2292c25c9afc6b1d9226194e781ff38b777 + md5: 2ed4d9b155eece341a521f24c71b6c7b depends: - libopenblas >=0.3.30,<0.3.31.0a0 - libopenblas >=0.3.30,<1.0a0 constrains: - - libcblas 3.9.0 34*_openblas - - liblapack 3.9.0 34*_openblas - - liblapacke 3.9.0 34*_openblas - - blas 2.134 openblas - mkl <2025 + - libcblas 3.9.0 35*_openblas + - liblapack 3.9.0 35*_openblas + - blas 2.135 openblas + - liblapacke 3.9.0 35*_openblas track_features: - blas_openblas license: BSD-3-Clause license_family: BSD - size: 69200 - timestamp: 1754679023264 + size: 66222 + timestamp: 1757003210854 - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb03c661_4.conda sha256: 2338a92d1de71f10c8cf70f7bb9775b0144a306d75c4812276749f54925612b6 md5: 1d29d2e33fe59954af82ef54a8af3fe1 @@ -1677,6 +2008,7 @@ packages: - __glibc >=2.17,<3.0.a0 - libgcc >=14 license: MIT + license_family: MIT size: 69333 timestamp: 1756599354727 - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hfd05255_4.conda @@ -1687,6 +2019,7 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: MIT + license_family: MIT size: 71243 timestamp: 1756599708777 - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb03c661_4.conda @@ -1697,6 +2030,7 @@ packages: - libbrotlicommon 1.1.0 hb03c661_4 - libgcc >=14 license: MIT + license_family: MIT size: 33406 timestamp: 1756599364386 - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hfd05255_4.conda @@ -1708,6 +2042,7 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: MIT + license_family: MIT size: 33430 timestamp: 1756599740173 - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb03c661_4.conda @@ -1718,6 +2053,7 @@ packages: - libbrotlicommon 1.1.0 hb03c661_4 - libgcc >=14 license: MIT + license_family: MIT size: 289680 timestamp: 1756599375485 - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hfd05255_4.conda @@ -1729,52 +2065,53 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: MIT + license_family: MIT size: 245418 timestamp: 1756599770744 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-34_he106b2a_openblas.conda - build_number: 34 - sha256: edde454897c7889c0323216516abb570a593de728c585b14ef41eda2b08ddf3a - md5: 148b531b5457ad666ed76ceb4c766505 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-35_h0358290_openblas.conda + build_number: 35 + sha256: fb77db75b0bd50856a1d53edcfd70c3314cde7e7c7d87479ee9d6b7fdbe824f1 + md5: 8aa3389d36791ecd31602a247b1f3641 depends: - - libblas 3.9.0 34_h59b9bed_openblas + - libblas 3.9.0 35_h4a7cf45_openblas constrains: - - liblapacke 3.9.0 34*_openblas - - blas 2.134 openblas - - liblapack 3.9.0 34*_openblas + - liblapacke 3.9.0 35*_openblas + - blas 2.135 openblas + - liblapack 3.9.0 35*_openblas license: BSD-3-Clause license_family: BSD - size: 19313 - timestamp: 1754678426220 -- conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-34_h2a3cdd5_mkl.conda - build_number: 34 - sha256: e9f31d44e668822f6420bfaeda4aa74cd6c60d3671cf0b00262867f36ad5a8c1 - md5: 25a019872ff471af70fd76d9aaaf1313 - depends: - - libblas 3.9.0 34_h5709861_mkl + size: 17149 + timestamp: 1757446780072 +- conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-35_h2a3cdd5_mkl.conda + build_number: 35 + sha256: 88939f6c1b5da75bd26ce663aa437e1224b26ee0dab5e60cecc77600975f397e + md5: 9639091d266e92438582d0cc4cfc8350 + depends: + - libblas 3.9.0 35_h5709861_mkl constrains: - - liblapacke 3.9.0 34*_mkl - - blas 2.134 mkl - - liblapack 3.9.0 34*_mkl + - blas 2.135 mkl + - liblapack 3.9.0 35*_mkl + - liblapacke 3.9.0 35*_mkl license: BSD-3-Clause license_family: BSD - size: 70700 - timestamp: 1754682490395 -- conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-34_h2a8eebe_openblas.conda - build_number: 34 - sha256: b2c5c039dde39f61dd381d44140d1ae14ae0567f1207a39ccb639250f365ae3c - md5: 29520a232d72bf76dd18250fc8a85ff2 - depends: - - libblas 3.9.0 34_h6be65bb_openblas + size: 66398 + timestamp: 1757003514529 +- conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-35_h2a8eebe_openblas.conda + build_number: 35 + sha256: a951586eab6fae9621f9a46ef2272906bb73dcd55417cc06919ad811900f707b + md5: b319a1bffa6c2c8ba7f6c8f12a40d898 + depends: + - libblas 3.9.0 35_h6be65bb_openblas constrains: - - liblapack 3.9.0 34*_openblas - - liblapacke 3.9.0 34*_openblas - - blas 2.134 openblas + - liblapack 3.9.0 35*_openblas + - blas 2.135 openblas + - liblapacke 3.9.0 35*_openblas track_features: - blas_openblas license: BSD-3-Clause license_family: BSD - size: 69708 - timestamp: 1754679051373 + size: 66577 + timestamp: 1757003231736 - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.14.1-h332b0f4_0.conda sha256: b6c5cf340a4f80d70d64b3a29a7d9885a5918d16a5cb952022820e6d3e79dc8b md5: 45f6713cb00f124af300342512219182 @@ -1893,99 +2230,99 @@ packages: license_family: MIT size: 44978 timestamp: 1743435053850 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.13.3-ha770c72_1.conda - sha256: 7be9b3dac469fe3c6146ff24398b685804dfc7a1de37607b84abd076f57cc115 - md5: 51f5be229d83ecd401fb369ab96ae669 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.14.0-ha770c72_1.conda + sha256: 66c4349ed5a8d4aefab57db275d417192c0e982db5d0631d08cdda1b4db7b5fb + md5: 9a8133acc0913a6f5d83cb8a1bad4f2d depends: - - libfreetype6 >=2.13.3 + - libfreetype6 >=2.14.0 license: GPL-2.0-only OR FTL - size: 7693 - timestamp: 1745369988361 -- conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.13.3-h57928b3_1.conda - sha256: e5bc7d0a8d11b7b234da4fcd9d78f297f7dec3fec8bd06108fd3ac7b2722e32e - md5: 410ba2c8e7bdb278dfbb5d40220e39d2 + size: 7689 + timestamp: 1757461576463 +- conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.14.0-h57928b3_1.conda + sha256: 78caa501efa6a1b8a7f0ef795ab77a410dc643385fb4c1c06cabc49c3410f064 + md5: d4fb1747ece30e131769299072e239d8 depends: - - libfreetype6 >=2.13.3 + - libfreetype6 >=2.14.0 license: GPL-2.0-only OR FTL - size: 8159 - timestamp: 1745370227235 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.13.3-h48d6fc4_1.conda - sha256: 7759bd5c31efe5fbc36a7a1f8ca5244c2eabdbeb8fc1bee4b99cf989f35c7d81 - md5: 3c255be50a506c50765a93a6644f32fe + size: 8128 + timestamp: 1757517996460 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.0-h73754d4_1.conda + sha256: 93b5aa0ae9398d87694cc491b280f0dbb1e4253bc65317559b8e1a1e8d0d1d02 + md5: df6bf113081fdea5b363eb5a7a5ceb69 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libpng >=1.6.47,<1.7.0a0 + - libgcc >=14 + - libpng >=1.6.50,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 constrains: - - freetype >=2.13.3 + - freetype >=2.14.0 license: GPL-2.0-only OR FTL - size: 380134 - timestamp: 1745369987697 -- conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.13.3-h0b5ce68_1.conda - sha256: 61308653e7758ff36f80a60d598054168a1389ddfbac46d7864c415fafe18e69 - md5: a84b7d1a13060a9372bea961a8131dbc + size: 386783 + timestamp: 1757461576073 +- conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.14.0-hdbac1cb_1.conda + sha256: 377e94973b5b816822424eb75080283b87ae057c157194124c9284a016db8b05 + md5: 10dd24f0c2a81775f09952badfb52019 depends: - - libpng >=1.6.47,<1.7.0a0 + - libpng >=1.6.50,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 constrains: - - freetype >=2.13.3 + - freetype >=2.14.0 license: GPL-2.0-only OR FTL - size: 337007 - timestamp: 1745370226578 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_4.conda - sha256: 144e35c1c2840f2dc202f6915fc41879c19eddbb8fa524e3ca4aa0d14018b26f - md5: f406dcbb2e7bef90d793e50e79a2882b + size: 340416 + timestamp: 1757517995741 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_5.conda + sha256: 0caed73aac3966bfbf5710e06c728a24c6c138605121a3dacb2e03440e8baa6a + md5: 264fbfba7fb20acf3b29cde153e345ce depends: - __glibc >=2.17,<3.0.a0 - _openmp_mutex >=4.5 constrains: - - libgcc-ng ==15.1.0=*_4 - - libgomp 15.1.0 h767d61c_4 + - libgomp 15.1.0 h767d61c_5 + - libgcc-ng ==15.1.0=*_5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 824153 - timestamp: 1753903866511 -- conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_4.conda - sha256: c169606e148f8df3375fdc9fe76ee3f44b8ffc2515e8131ede8f2d75cf7d6f0c - md5: 59fe76f0ff39b512ff889459b9fc3054 + size: 824191 + timestamp: 1757042543820 +- conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_5.conda + sha256: 9b997baa85ba495c04e1b30f097b80420c02dcaca6441c4bf2c6bb4b2c5d2114 + md5: c84381a01ede0e28d632fdbeea2debb2 depends: - _openmp_mutex >=4.5 - libwinpthread >=12.0.0.r4.gg4f2fc60ca constrains: + - libgomp 15.1.0 h1383e82_5 - msys2-conda-epoch <0.0a0 - - libgcc-ng ==15.1.0=*_4 - - libgomp 15.1.0 h1383e82_4 + - libgcc-ng ==15.1.0=*_5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 668220 - timestamp: 1753904114303 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_4.conda - sha256: 76ceac93ed98f208363d6e9c75011b0ff7b97b20f003f06461a619557e726637 - md5: 28771437ffcd9f3417c66012dc49a3be + size: 668284 + timestamp: 1757042801517 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_5.conda + sha256: f54bb9c3be12b24be327f4c1afccc2969712e0b091cdfbd1d763fb3e61cda03f + md5: 069afdf8ea72504e48d23ae1171d951c depends: - - libgcc 15.1.0 h767d61c_4 + - libgcc 15.1.0 h767d61c_5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 29249 - timestamp: 1753903872571 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_4.conda - sha256: 2fe41683928eb3c57066a60ec441e605a69ce703fc933d6d5167debfeba8a144 - md5: 53e876bc2d2648319e94c33c57b9ec74 + size: 29187 + timestamp: 1757042549554 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_5.conda + sha256: 4c1a526198d0d62441549fdfd668cc8e18e77609da1e545bdcc771dd8dc6a990 + md5: 0c91408b3dec0b97e8a3c694845bd63b depends: - - libgfortran5 15.1.0 hcea5267_4 + - libgfortran5 15.1.0 hcea5267_5 constrains: - - libgfortran-ng ==15.1.0=*_4 + - libgfortran-ng ==15.1.0=*_5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 29246 - timestamp: 1753903898593 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_4.conda - sha256: 3070e5e2681f7f2fb7af0a81b92213f9ab430838900da8b4f9b8cf998ddbdd84 - md5: 8a4ab7ff06e4db0be22485332666da0f + size: 29169 + timestamp: 1757042575979 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_5.conda + sha256: 9d06adc6d8e8187ddc1cad87525c690bc8202d8cb06c13b76ab2fc80a35ed565 + md5: fbd4008644add05032b6764807ee2cba depends: - __glibc >=2.17,<3.0.a0 - libgcc >=15.1.0 @@ -1993,41 +2330,58 @@ packages: - libgfortran 15.1.0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 1564595 - timestamp: 1753903882088 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_4.conda - sha256: e0487a8fec78802ac04da0ac1139c3510992bc58a58cde66619dde3b363c2933 - md5: 3baf8976c96134738bba224e9ef6b1e5 + size: 1564589 + timestamp: 1757042559498 +- conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.0-h5f26cbf_0.conda + sha256: 02c2dcf1818d2614ad4472b196a2a7bb06490cd32fd0f43a30997097afca3a12 + md5: 30a7c2c9d7ba29bb1354cd68fcca9cda + depends: + - libffi >=3.4.6,<3.5.0a0 + - libiconv >=1.18,<2.0a0 + - libintl >=0.22.5,<1.0a0 + - libzlib >=1.3.1,<2.0a0 + - pcre2 >=10.46,<10.47.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + constrains: + - glib 2.86.0 *_0 + license: LGPL-2.1-or-later + size: 3794081 + timestamp: 1757403780432 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_5.conda + sha256: 125051d51a8c04694d0830f6343af78b556dd88cc249dfec5a97703ebfb1832d + md5: dcd5ff1940cd38f6df777cac86819d60 depends: - __glibc >=2.17,<3.0.a0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 447289 - timestamp: 1753903801049 -- conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_4.conda - sha256: e4ce8693bc3250b98cbc41cc53116fb27ad63eaf851560758e8ccaf0e9b137aa - md5: 78582ad1a764f4a0dca2f3027a46cc5a + size: 447215 + timestamp: 1757042483384 +- conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_5.conda + sha256: 65fd558d8f3296e364b8ae694932a64642fdd26d8eb4cf7adf08941e449be926 + md5: eae9a32a85152da8e6928a703a514d35 depends: - libwinpthread >=12.0.0.r4.gg4f2fc60ca constrains: - msys2-conda-epoch <0.0a0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 535125 - timestamp: 1753904060607 -- conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h88281d1_1000.conda - sha256: 2fb437b82912c74b4869b66c601d52c77bb3ee8cb4812eab346d379f1c823225 - md5: e6298294e7612eccf57376a0683ddc80 + size: 535560 + timestamp: 1757042749206 +- conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h64bd3f2_1002.conda + sha256: 266dfe151066c34695dbdc824ba1246b99f016115ef79339cbcf005ac50527c1 + md5: b0cac6e5b06ca5eeb14b4f7cf908619f depends: - libwinpthread >=12.0.0.r4.gg4f2fc60ca - - libxml2 >=2.13.8,<2.14.0a0 + - libxml2 + - libxml2-16 >=2.14.6 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: BSD-3-Clause - license_family: BSD - size: 2412139 - timestamp: 1752762145331 + size: 2414731 + timestamp: 1757624335056 - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda sha256: 0dcdb1a5f01863ac4e8ba006a8b0dc1a02d2221ec3319b5915a1863254d7efa7 md5: 64571d1dd6cdcfa25d0664a5950fdaa2 @@ -2038,6 +2392,14 @@ packages: license: LGPL-2.1-only size: 696926 timestamp: 1754909290005 +- conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda + sha256: c7e4600f28bcada8ea81456a6530c2329312519efcf0c886030ada38976b0511 + md5: 2cf0cf76cc15d360dfa2f17fd6cf9772 + depends: + - libiconv >=1.17,<2.0a0 + license: LGPL-2.1-or-later + size: 95568 + timestamp: 1723629479451 - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.0-hb9d3cd8_0.conda sha256: 98b399287e27768bf79d48faba8a99a2289748c65cd342ca21033fab1860d4a4 md5: 9fa334557db9f63da6c9285fd2a48638 @@ -2061,50 +2423,50 @@ packages: license: IJG AND BSD-3-Clause AND Zlib size: 838154 timestamp: 1745268437136 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-34_h7ac8fdf_openblas.conda - build_number: 34 - sha256: 9c941d5da239f614b53065bc5f8a705899326c60c9f349d9fbd7bd78298f13ab - md5: f05a31377b4d9a8d8740f47d1e70b70e +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-35_h47877c9_openblas.conda + build_number: 35 + sha256: 5aceb67704af9185084ccdc8d841845df498a9af52783b858ceacd3e5b9e7dd8 + md5: aa0b36b71d44f74686f13b9bfabec891 depends: - - libblas 3.9.0 34_h59b9bed_openblas + - libblas 3.9.0 35_h4a7cf45_openblas constrains: - - liblapacke 3.9.0 34*_openblas - - libcblas 3.9.0 34*_openblas - - blas 2.134 openblas + - liblapacke 3.9.0 35*_openblas + - blas 2.135 openblas + - libcblas 3.9.0 35*_openblas license: BSD-3-Clause license_family: BSD - size: 19324 - timestamp: 1754678435277 -- conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-34_hd232482_openblas.conda - build_number: 34 - sha256: 30ed2af4e0d7fe8abd92b239d6de7a7d51c168718e85ca3730bd40ca9f1ab2dc - md5: 744a78ee1a48f2a07a4e948c108ea2f3 - depends: - - libblas 3.9.0 34_h6be65bb_openblas + size: 17180 + timestamp: 1757446792311 +- conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-35_hd232482_openblas.conda + build_number: 35 + sha256: 4a9f68e3edd556564ad3d6c2966c96feea6c980db80804d3650f14d76856ba08 + md5: e446e419a887c9e0a04fee684f9b0551 + depends: + - libblas 3.9.0 35_h6be65bb_openblas constrains: - - libcblas 3.9.0 34*_openblas - - liblapacke 3.9.0 34*_openblas - - blas 2.134 openblas + - libcblas 3.9.0 35*_openblas + - blas 2.135 openblas + - liblapacke 3.9.0 35*_openblas track_features: - blas_openblas license: BSD-3-Clause license_family: BSD - size: 80966 - timestamp: 1754679078511 -- conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-34_hf9ab0e9_mkl.conda - build_number: 34 - sha256: c65298d584551cba1b7a42537f8e0093ec9fd0e871fc80ddf9cf6ffa0efa25ae - md5: ba80d9feadfbafceafb0bf46d35f5886 - depends: - - libblas 3.9.0 34_h5709861_mkl + size: 77865 + timestamp: 1757003252314 +- conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-35_hf9ab0e9_mkl.conda + build_number: 35 + sha256: 56e0992fb58eed8f0d5fa165b8621fa150b84aa9af1467ea0a7a9bb7e2fced4f + md5: 0c6ed9d722cecda18f50f17fb3c30002 + depends: + - libblas 3.9.0 35_h5709861_mkl constrains: - - libcblas 3.9.0 34*_mkl - - liblapacke 3.9.0 34*_mkl - - blas 2.134 mkl + - blas 2.135 mkl + - libcblas 3.9.0 35*_mkl + - liblapacke 3.9.0 35*_mkl license: BSD-3-Clause license_family: BSD - size: 82224 - timestamp: 1754682540087 + size: 78485 + timestamp: 1757003541803 - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda sha256: f2591c0069447bbe28d4d696b7fcb0c5bd0b4ac582769b89addbcf26fb3430d8 md5: 1a580f7796c7bf6393fddb8bbbde58dc @@ -2149,22 +2511,36 @@ packages: license_family: BSD size: 88657 timestamp: 1723861474602 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda - sha256: b0f2b3695b13a989f75d8fd7f4778e1c7aabe3b36db83f0fe80b2cd812c0e975 - md5: 19e57602824042dfd0446292ef90488b +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda + sha256: a4a7dab8db4dc81c736e9a9b42bdfd97b087816e029e221380511960ac46c690 + md5: b499ce4b026493a13774bcf0f4c33849 depends: - __glibc >=2.17,<3.0.a0 - - c-ares >=1.32.3,<2.0a0 + - c-ares >=1.34.5,<2.0a0 - libev >=4.33,<4.34.0a0 - libev >=4.33,<5.0a0 - - libgcc >=13 - - libstdcxx >=13 + - libgcc >=14 + - libstdcxx >=14 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.5.2,<4.0a0 license: MIT license_family: MIT - size: 647599 - timestamp: 1729571887612 + size: 666600 + timestamp: 1756834976695 +- conda: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_1.conda + sha256: c63e5fb169dbd192aacdcee6e37235407f106b8ca9c9036942a25e0366cbc73c + md5: b67ed8c9ca072695ff482e50d888a523 + depends: + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - ucrt >=10.0.20348.0 + license: BSD-3-Clause + license_family: BSD + size: 35040 + timestamp: 1745826086628 - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_2.conda sha256: 1b51d1f96e751dc945cc06f79caa91833b0c3326efe24e9b506bd64ef49fc9b0 md5: dfc5aae7b043d9f56ba99514d5e60625 @@ -2192,6 +2568,20 @@ packages: license_family: BSD size: 3951501 timestamp: 1755474642184 +- conda: https://conda.anaconda.org/conda-forge/win-64/libopus-1.5.2-h2466b09_0.conda + sha256: 4c5e04de758450f9427a75095a54957de521b57234711374fac1cdc89fc7a9ca + md5: 67c18f2110921f6307a608050cd153f8 + depends: + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - ucrt >=10.0.20348.0 + license: BSD-3-Clause + license_family: BSD + size: 289268 + timestamp: 1744330990400 - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.50-h421ea60_1.conda sha256: e75a2723000ce3a4b9fd9b9b9ce77553556c93e475a4657db6ed01abc02ea347 md5: 7af8e91b0deb5f8e25d1a595dea79614 @@ -2216,6 +2606,21 @@ packages: license: zlib-acknowledgement size: 382709 timestamp: 1753879944850 +- conda: https://conda.anaconda.org/conda-forge/win-64/librsvg-2.58.4-h5ce5fed_3.conda + sha256: 8910bc40a52f2b979ced95137f09b8faf0113e14c430ca8fa7dd94dc88dafb83 + md5: 34fefcb3aed33ea39f1b040f5b9849e3 + depends: + - cairo >=1.18.4,<2.0a0 + - gdk-pixbuf >=2.42.12,<3.0a0 + - libglib >=2.84.0,<3.0a0 + - libxml2 >=2.13.7,<2.14.0a0 + - pango >=1.56.3,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.42.34438 + license: LGPL-2.1-or-later + size: 3919170 + timestamp: 1743369262131 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.4-h0c1763c_0.conda sha256: 6d9c32fc369af5a84875725f7ddfbfc2ace795c28f246dc70055a79f9b2003da md5: 0b367fad34931cb79e0d6b7e5c06bb1c @@ -2261,25 +2666,25 @@ packages: license_family: BSD size: 292785 timestamp: 1745608759342 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_4.conda - sha256: b5b239e5fca53ff90669af1686c86282c970dd8204ebf477cf679872eb6d48ac - md5: 3c376af8888c386b9d3d1c2701e2f3ab +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_5.conda + sha256: 0f5f61cab229b6043541c13538d75ce11bd96fb2db76f94ecf81997b1fde6408 + md5: 4e02a49aaa9d5190cb630fa43528fbe6 depends: - __glibc >=2.17,<3.0.a0 - - libgcc 15.1.0 h767d61c_4 + - libgcc 15.1.0 h767d61c_5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 3903453 - timestamp: 1753903894186 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_4.conda - sha256: 81c841c1cf4c0d06414aaa38a249f9fdd390554943065c3a0b18a9fb7e8cc495 - md5: 2d34729cbc1da0ec988e57b13b712067 + size: 3896432 + timestamp: 1757042571458 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_5.conda + sha256: 7b8cabbf0ab4fe3581ca28fe8ca319f964078578a51dd2ca3f703c1d21ba23ff + md5: 8bba50c7f4679f08c861b597ad2bda6b depends: - - libstdcxx 15.1.0 h8f9b012_4 + - libstdcxx 15.1.0 h8f9b012_5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 29317 - timestamp: 1753903924491 + size: 29233 + timestamp: 1757042603319 - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-h8261f1e_6.conda sha256: c62694cd117548d810d2803da6d9063f78b1ffbf7367432c5388ce89474e9ebe md5: b6093922931b535a7ba566b6f384fbe6 @@ -2313,15 +2718,45 @@ packages: license: HPND size: 983988 timestamp: 1755012056987 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 - md5: 40b61aab5c7ba9ff276c41cfffe6b80b +- conda: https://conda.anaconda.org/conda-forge/win-64/libusb-1.0.29-h1839187_0.conda + sha256: 9837f8e8de20b6c9c033561cd33b4554cd551b217e3b8d2862b353ed2c23d8b8 + md5: a656b2c367405cd24988cf67ff2675aa depends: - - libgcc-ng >=12 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - ucrt >=10.0.20348.0 + license: LGPL-2.1-or-later + size: 118204 + timestamp: 1748856290542 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.1-he9a06e4_0.conda + sha256: 776e28735cee84b97e4d05dd5d67b95221a3e2c09b8b13e3d6dbe6494337d527 + md5: af930c65e9a79a3423d6d36e265cef65 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 license: BSD-3-Clause license_family: BSD - size: 33601 - timestamp: 1680112270483 + size: 37087 + timestamp: 1757334557450 +- conda: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h5112557_2.conda + sha256: 429124709c73b2e8fae5570bdc6b42f5418a7551ba72e591bb960b752e87b365 + md5: 42a8a56c60882da5d451aa95b8455111 + depends: + - libogg + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - libogg >=1.3.5,<1.4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 243401 + timestamp: 1753879416570 - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda sha256: 3aed21ab28eddffdaf7f804f49be7a7d701e8f0e46c856d801270b470820a37b md5: aea31d2e5b1091feca96fcfe945c3cf9 @@ -2398,6 +2833,40 @@ packages: license_family: MIT size: 1519401 timestamp: 1754315497781 +- conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.14.6-h5d26750_2.conda + sha256: d98ca7faddae3760787249ef1b8ac01009e60285e7df2cf28ff6513bb9333346 + md5: 173ab10aab4349b1ad7f9873ba2addbf + depends: + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libxml2-16 2.14.6 h692994f_2 + - libzlib >=1.3.1,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + constrains: + - icu <0.0a0 + license: MIT + license_family: MIT + size: 44880 + timestamp: 1757690989631 +- conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-16-2.14.6-h692994f_2.conda + sha256: 87aab44edf9d2d7d72ba2c13b2a76cca697310decd52d0f0e43e473bf7ecf370 + md5: 02a6141be7f20d3529fa4ff1ce8bfcd9 + depends: + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libzlib >=1.3.1,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + constrains: + - icu <0.0a0 + - libxml2 2.14.6 + license: MIT + license_family: MIT + size: 525426 + timestamp: 1757690953585 - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 md5: edb0dca6bc32e4f4789199455a1dbeb8 @@ -2486,9 +2955,9 @@ packages: license_family: BSD size: 27930 timestamp: 1733220059655 -- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.5-py313h683a580_0.conda - sha256: 48c12e4682fdb92e2dfa4c4f885e252d0b14168dd4a672a6da376fea551b2e69 - md5: 9edc5badd11b451eb00eb8c492545fe2 +- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.6-py313h683a580_1.conda + sha256: c85c8135865a2608c52423d28c8bac064cfd95af69f3ff5c0d84e821695d868b + md5: 0483ab1c5b6956442195742a5df64196 depends: - __glibc >=2.17,<3.0.a0 - contourpy >=1.0.1 @@ -2512,11 +2981,11 @@ packages: - tk >=8.6.13,<8.7.0a0 license: PSF-2.0 license_family: PSF - size: 8341150 - timestamp: 1754006124310 -- conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.5-py313he1ded55_0.conda - sha256: cdf826574270d01869250021b0d58bc39330cb885e523f6eb897d1c7dda7c192 - md5: d2d0d64e2fd39aca9dfb689b1c100414 + size: 8446545 + timestamp: 1756869894657 +- conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.6-py313he1ded55_1.conda + sha256: 39567bba0b2339f6660d9cfeee639db24b43fd949717ebc15c2e53d4341fac0d + md5: bf57fe7c3f3440e23615272bdf8db28c depends: - contourpy >=1.0.1 - cycler >=0.10 @@ -2539,8 +3008,8 @@ packages: - vc14_runtime >=14.44.35208 license: PSF-2.0 license_family: PSF - size: 8198421 - timestamp: 1754006042640 + size: 8034791 + timestamp: 1756870042140 - conda: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.5.0-pyhd8ed1ab_0.conda sha256: 123cc004e2946879708cdb6a9eff24acbbb054990d6131bb94bca7a374ebebfc md5: 1997a083ef0b4c9331f9191564be275e @@ -2612,28 +3081,27 @@ packages: license_family: BSD size: 3843 timestamp: 1582593857545 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.2-py313hf6604e3_2.conda - sha256: dc99944cc1ab9b1939fc94ca0ad3e7629ff4b8fd371a5c94a153e6a66af5aa0d - md5: 67d27f74a90f5f0336035203f91a0abc +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.3-py313hf6604e3_0.conda + sha256: 88d45c6dbedabbc8ebb19555bb3d04b5e2846ae8a7dfc2c0204b54f5f6efaef7 + md5: 3122d20dc438287e125fb5acff1df170 depends: - python - libgcc >=14 - libstdcxx >=14 - libgcc >=14 - __glibc >=2.17,<3.0.a0 - - libcblas >=3.9.0,<4.0a0 - - libblas >=3.9.0,<4.0a0 - liblapack >=3.9.0,<4.0a0 + - libblas >=3.9.0,<4.0a0 - python_abi 3.13.* *_cp313 + - libcblas >=3.9.0,<4.0a0 constrains: - numpy-base <0a0 license: BSD-3-Clause - license_family: BSD - size: 8890327 - timestamp: 1756343073222 -- conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py313hce7ae62_2.conda - sha256: 6c10cd2ef2ced4c9c4e2582648505248bb14d8dfa509d1610845fafa877cfa23 - md5: fd183febc421360098ad1052f2239c6b + size: 8888776 + timestamp: 1757505485589 +- conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.3-py313hce7ae62_0.conda + sha256: 183d004ade7c46d0b9003a747741dc0320773a226323483ba0592faafeabd681 + md5: e23d89fa7007fa6a9bfe7a2a1cb58d61 depends: - python - vc >=14.3,<15 @@ -2649,9 +3117,19 @@ packages: constrains: - numpy-base <0a0 license: BSD-3-Clause + size: 7463065 + timestamp: 1757504921589 +- conda: https://conda.anaconda.org/conda-forge/win-64/openh264-2.6.0-hb17fa0b_0.conda + sha256: 914702d9a64325ff3afb072c8bc0f8cbea3f19955a8395a8c190e45604f83c76 + md5: ad4cac6ceb9e4c8e01802e3f15e87bb2 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-2-Clause license_family: BSD - size: 7460843 - timestamp: 1756343087901 + size: 411269 + timestamp: 1739401120354 - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h55fea9a_1.conda sha256: 0b7396dacf988f0b859798711b26b6bc9c6161dca21bacfd778473da58730afa md5: 01243c4aaf71bde0297966125aea4706 @@ -2713,18 +3191,52 @@ packages: license_family: APACHE size: 62477 timestamp: 1745345660407 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py313h8db990d_0.conda - sha256: 73067c9a1ea4857ce9fb6788d404cd7d931ba323ad26eddf083c5b12dc8d73c0 - md5: 114a74a6e184101112fdffd3a1cb5b8f +- conda: https://conda.anaconda.org/conda-forge/win-64/pango-1.56.4-h03d888a_0.conda + sha256: dcda7e9bedc1c87f51ceef7632a5901e26081a1f74a89799a3e50dbdc801c0bd + md5: 452d6d3b409edead3bd90fc6317cd6d4 + depends: + - cairo >=1.18.4,<2.0a0 + - fontconfig >=2.15.0,<3.0a0 + - fonts-conda-ecosystem + - fribidi >=1.0.10,<2.0a0 + - harfbuzz >=11.0.1 + - libexpat >=2.7.0,<3.0a0 + - libfreetype >=2.13.3 + - libfreetype6 >=2.13.3 + - libglib >=2.84.2,<3.0a0 + - libpng >=1.6.49,<1.7.0a0 + - libzlib >=1.3.1,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: LGPL-2.1-or-later + size: 454854 + timestamp: 1751292618315 +- conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.46-h3402e2f_0.conda + sha256: 29c2ed44a8534d27faad96bdce16efe29c2788f556f4c5409d4ae8ae074681ec + md5: 889053e920d15353c2665fa6310d7a7a + depends: + - bzip2 >=1.0.8,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: BSD-3-Clause + license_family: BSD + size: 1034703 + timestamp: 1756743085974 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py313hf46931b_1.conda + sha256: 2c4f35a360144e84b6c99d113ec22a85278c5819ff4a08d5a7dc271b7d77460f + md5: 8c2259ea124159da6660cbc3e68e30a2 depends: - __glibc >=2.17,<3.0.a0 - lcms2 >=2.17,<3.0a0 - libfreetype >=2.13.3 - libfreetype6 >=2.13.3 - - libgcc >=13 + - libgcc >=14 - libjpeg-turbo >=3.1.0,<4.0a0 - libtiff >=4.7.0,<4.8.0a0 - - libwebp-base >=1.5.0,<2.0a0 + - libwebp-base >=1.6.0,<2.0a0 - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.3,<3.0a0 @@ -2732,18 +3244,18 @@ packages: - python_abi 3.13.* *_cp313 - tk >=8.6.13,<8.7.0a0 license: HPND - size: 42651243 - timestamp: 1751482117433 -- conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.3.0-py313h641beac_0.conda - sha256: 7443ad7db99ec4432c9dc09961a92405b899889aafea5b55dc193d2eb5416ba8 - md5: 04595138d9590cd65691218b20f0f4b6 + size: 42589876 + timestamp: 1756853503865 +- conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.3.0-py313h641beac_1.conda + sha256: d24b702fd50f4201706987a79fbbaa47dcd6cb1ff1f6b756f83fd13913b057d3 + md5: bb22455b098465d8ae9a2d6632bc7e16 depends: - lcms2 >=2.17,<3.0a0 - libfreetype >=2.13.3 - libfreetype6 >=2.13.3 - libjpeg-turbo >=3.1.0,<4.0a0 - libtiff >=4.7.0,<4.8.0a0 - - libwebp-base >=1.5.0,<2.0a0 + - libwebp-base >=1.6.0,<2.0a0 - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.3,<3.0a0 @@ -2754,8 +3266,22 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: HPND - size: 42177350 - timestamp: 1751482641943 + size: 42847849 + timestamp: 1756854371938 +- conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda + sha256: 246fce4706b3f8b247a7d6142ba8d732c95263d3c96e212b9d63d6a4ab4aff35 + md5: 08c8fa3b419df480d985e304f7884d35 + depends: + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + license: MIT + license_family: MIT + size: 542795 + timestamp: 1754665193489 - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda sha256: a8eb555eef5063bbb7ba06a379fa7ea714f57d9741fe0efdb9442dbbc2cccbcc md5: 7da7ccd349dbf6487a7778579d2bb971 @@ -2835,20 +3361,20 @@ packages: license_family: BSD size: 110100 timestamp: 1733195786147 -- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.7-pyh3cfb1c2_0.conda - sha256: ee7823e8bc227f804307169870905ce062531d36c1dcf3d431acd65c6e0bd674 - md5: 1b337e3d378cde62889bb735c024b7a2 +- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.9-pyh3cfb1c2_0.conda + sha256: c3ec0c2202d109cdd5cac008bf7a42b67d4aa3c4cc14b4ee3e00a00541eabd88 + md5: a6db60d33fe1ad50314a46749267fdfc depends: - annotated-types >=0.6.0 - pydantic-core 2.33.2 - - python >=3.9 + - python >=3.10 - typing-extensions >=4.6.1 - typing-inspection >=0.4.0 - typing_extensions >=4.12.2 license: MIT license_family: MIT - size: 307333 - timestamp: 1749927245525 + size: 307176 + timestamp: 1757881787287 - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py313h4b2b08d_0.conda sha256: 754e3739e4b2a8856573e75829a1cccc0d16ee59dbee6ad594a70728a90e2854 md5: 04b21004fe9316e29c92aa3accd528e5 @@ -2927,16 +3453,15 @@ packages: license_family: MIT size: 17808 timestamp: 1747917911455 -- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda - sha256: afe32182b1090911b64ac0f29eb47e03a015d142833d8a917defd65d91c99b74 - md5: aa0028616c0750c773698fdc254b2b8d +- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.4-pyhcf101f3_0.conda + sha256: c3260cf948da6345770d75ae559d716e557580eddcd19623676931d172346969 + md5: bf1f1292fc78307956289707e85cb1bf depends: - - python >=3.9 + - python >=3.10 - python license: MIT - license_family: MIT - size: 102292 - timestamp: 1753873557076 + size: 104029 + timestamp: 1757767060575 - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda sha256: d016e04b0e12063fbee4a2d5fbb9b39a8d191b5a0042f0b8459188aedeabb0ca md5: e2fd202833c4a981ce8a65974fe4abd1 @@ -2958,9 +3483,9 @@ packages: license_family: BSD size: 21085 timestamp: 1733217331982 -- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.1-pyhd8ed1ab_0.conda - sha256: 93e267e4ec35353e81df707938a6527d5eb55c97bf54c3b87229b69523afb59d - md5: a49c2283f24696a7b30367b7346a0144 +- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.2-pyhd8ed1ab_0.conda + sha256: 41053d9893e379a3133bb9b557b98a3d2142fca474fb6b964ba5d97515f78e2d + md5: 1f987505580cb972cf28dc5f74a0f81b depends: - colorama >=0.4 - exceptiongroup >=1 @@ -2968,14 +3493,14 @@ packages: - packaging >=20 - pluggy >=1.5,<2 - pygments >=2.7.2 - - python >=3.9 + - python >=3.10 - tomli >=1 constrains: - pytest-faulthandler >=2 license: MIT license_family: MIT - size: 276562 - timestamp: 1750239526127 + size: 276734 + timestamp: 1757011891753 - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-split-0.10.0-pyhff2d567_0.conda sha256: 2de536333c132df88358d3373a0cebc0280b958c59d4f54a1d56740f3aadae09 md5: 3bd32c44526b455aa146d8fdb27a65b3 @@ -2999,54 +3524,54 @@ packages: license_family: MIT size: 39300 timestamp: 1751452761594 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.5-hec9711d_102_cp313.conda - build_number: 102 - sha256: c2cdcc98ea3cbf78240624e4077e164dc9d5588eefb044b4097c3df54d24d504 - md5: 89e07d92cf50743886f41638d58c4328 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.7-h2b335a9_100_cp313.conda + build_number: 100 + sha256: 16cc30a5854f31ca6c3688337d34e37a79cdc518a06375fe3482ea8e2d6b34c8 + md5: 724dcf9960e933838247971da07fe5cf depends: - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.7.0,<3.0a0 + - libexpat >=2.7.1,<3.0a0 - libffi >=3.4.6,<3.5.0a0 - - libgcc >=13 + - libgcc >=14 - liblzma >=5.8.1,<6.0a0 - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.50.1,<4.0a0 + - libsqlite >=3.50.4,<4.0a0 - libuuid >=2.38.1,<3.0a0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.5.0,<4.0a0 + - openssl >=3.5.2,<4.0a0 - python_abi 3.13.* *_cp313 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata license: Python-2.0 - size: 33273132 - timestamp: 1750064035176 + size: 33583088 + timestamp: 1756911465277 python_site_packages_path: lib/python3.13/site-packages -- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.5-h7de537c_102_cp313.conda - build_number: 102 - sha256: 3de2b9f89b220cb779f6947cf87b328f73d54eed4f7e75a3f9337caeb4443910 - md5: a9a4658f751155c819d6cd4c47f0a4d2 +- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.7-hdf00ec1_100_cp313.conda + build_number: 100 + sha256: b86b5b3a960de2fff0bb7e0932b50846b22b75659576a257b1872177aab444cd + md5: 7cd6ebd1a32d4a5d99f8f8300c2029d5 depends: - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.7.0,<3.0a0 + - libexpat >=2.7.1,<3.0a0 - libffi >=3.4.6,<3.5.0a0 - liblzma >=5.8.1,<6.0a0 - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.50.1,<4.0a0 + - libsqlite >=3.50.4,<4.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.0,<4.0a0 + - openssl >=3.5.2,<4.0a0 - python_abi 3.13.* *_cp313 - tk >=8.6.13,<8.7.0a0 - tzdata - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: Python-2.0 - size: 16825621 - timestamp: 1750062318985 + size: 16386672 + timestamp: 1756909324921 python_site_packages_path: Lib/site-packages - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664 @@ -3197,9 +3722,9 @@ packages: license: 0BSD OR CC0-1.0 size: 13348 timestamp: 1740240332327 -- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.1-py313h11c21cd_1.conda - sha256: 75c751b8594b810d9c3735641aed6d6c13706e97e5c2ae0cdb49fa7d2da915dd - md5: 270039a4640693aab11ee3c05385f149 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.2-py313h11c21cd_0.conda + sha256: 3c26c268a4db6ff62103f6b245f650d3cd7478240335405c07e05bae85af4d36 + md5: 85a80978a04be9c290b8fe6d9bccff1c depends: - __glibc >=2.17,<3.0.a0 - libblas >=3.9.0,<4.0a0 @@ -3215,11 +3740,11 @@ packages: - python >=3.13,<3.14.0a0 - python_abi 3.13.* *_cp313 license: BSD-3-Clause - size: 17210234 - timestamp: 1756530199043 -- conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.1-py313h62a08ca_1.conda - sha256: 03b1828ca3d9eec8459ee113a1bc306aa4cab0e85a3444f1673c70c007010468 - md5: 9842dfddafe8372a82dfbfd0460a5396 + size: 17034458 + timestamp: 1757682259363 +- conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.2-py313h62a08ca_0.conda + sha256: 92f44733f9990281aa5ed4d70a298f47a1060858060a4f1206e1272f78c545ea + md5: 2a39dfd494e37983e6ec424cd9d72ff6 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 @@ -3233,8 +3758,36 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: BSD-3-Clause - size: 15282796 - timestamp: 1756530913317 + size: 15347364 + timestamp: 1757683339239 +- conda: https://conda.anaconda.org/conda-forge/win-64/sdl2-2.32.56-h5112557_0.conda + sha256: d17da21386bdbf32bce5daba5142916feb95eed63ef92b285808c765705bbfd2 + md5: 4cffbfebb6614a1bff3fc666527c25c7 + depends: + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - sdl3 >=3.2.22,<4.0a0 + license: Zlib + size: 572101 + timestamp: 1757842925694 +- conda: https://conda.anaconda.org/conda-forge/win-64/sdl3-3.2.22-h5112557_0.conda + sha256: 01d040f2ebe976a0b9cafc13e8b6fd2cf297afbcdec462a5e254cc8c261f70c5 + md5: ce2d3317d46b92ea361dd9178bc7df91 + depends: + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - libusb >=1.0.29,<2.0a0 + license: Zlib + size: 1521753 + timestamp: 1756780243694 - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda sha256: 972560fcf9657058e3e1f97186cc94389144b46dbdf58c807ce62e83f977e863 md5: 4de79c071274a53dcaf2a8c749d1499e @@ -3244,6 +3797,19 @@ packages: license_family: MIT size: 748788 timestamp: 1748804951958 +- conda: https://conda.anaconda.org/conda-forge/win-64/shaderc-2025.3-haa9a63f_1.conda + sha256: 14bd55e67e306de56ff9eedc2e2d9cbea8c59b54dbc9ce4cd500ac93e0ea9164 + md5: a87f984be6cfe4cca0ead7a90dd8e392 + depends: + - glslang >=15,<16.0a0 + - spirv-tools >=2025,<2026.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: Apache-2.0 + license_family: Apache + size: 1462080 + timestamp: 1756649776248 - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d md5: 3339e3b65d58accf4ca4fb8748ab16b3 @@ -3470,6 +4036,30 @@ packages: license_family: BSD size: 878866 timestamp: 1734775014750 +- conda: https://conda.anaconda.org/conda-forge/win-64/spirv-tools-2025.1-hc790b64_0.conda + sha256: d3c132a5f8444b0373a3cd7c7df77589ef68393dfc02b4ea6967db62be7c027b + md5: 4bb51092771f282e67fe18db07b4fe05 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - spirv-headers >=1.4.309.0,<1.4.309.1.0a0 + license: Apache-2.0 + license_family: APACHE + size: 13375641 + timestamp: 1745359850677 +- conda: https://conda.anaconda.org/conda-forge/win-64/svt-av1-3.1.2-hac47afa_0.conda + sha256: 444c94a9c1fcb2cdf78b260472451990257733bcf89ed80c73db36b5047d3134 + md5: 91866412570c922f55178855deb0f952 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: BSD-2-Clause + license_family: BSD + size: 1862756 + timestamp: 1756086862067 - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h18a62a1_3.conda sha256: 30e82640a1ad9d9b5bee006da7e847566086f8fdb63d15b918794a7ef2df862c md5: 72226638648e494aaafde8155d50dab2 @@ -3614,6 +4204,15 @@ packages: license_family: Proprietary size: 113963 timestamp: 1753739198723 +- conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_31.conda + sha256: 8b20152d00e1153ccb1ed377a160110482f286a6d85a82b57ffcd60517d523a7 + md5: d75abcfbc522ccd98082a8c603fce34c + depends: + - vc14_runtime >=14.44.35208 + license: BSD-3-Clause + license_family: BSD + size: 18249 + timestamp: 1753739241918 - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda sha256: 93807369ab91f230cf9e6e2a237eaa812492fe00face5b38068735858fba954f md5: 46e441ba871f524e2b067929da3051c2 @@ -3623,6 +4222,26 @@ packages: license: LicenseRef-Public-Domain size: 9555 timestamp: 1733130678956 +- conda: https://conda.anaconda.org/conda-forge/win-64/x264-1!164.3095-h8ffe710_2.tar.bz2 + sha256: 97166b318f8c68ffe4d50b2f4bd36e415219eeaef233e7d41c54244dc6108249 + md5: 19e39905184459760ccb8cf5c75f148b + depends: + - vc >=14.1,<15 + - vs2015_runtime >=14.16.27033 + license: GPL-2.0-or-later + license_family: GPL + size: 1041889 + timestamp: 1660323726084 +- conda: https://conda.anaconda.org/conda-forge/win-64/x265-3.5-h2d74725_3.tar.bz2 + sha256: 02b9874049112f2b7335c9a3e880ac05d99a08d9a98160c5a98898b2b3ac42b2 + md5: ca7129a334198f08347fb19ac98a2de9 + depends: + - vc >=14.1,<15 + - vs2015_runtime >=14.16.27033 + license: GPL-2.0-or-later + license_family: GPL + size: 5517425 + timestamp: 1646611941216 - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda sha256: ed10c9283974d311855ae08a16dfd7e56241fac632aec3b92e3cfe73cff31038 md5: f6ebe2cb3f82ba6c057dde5d9debe4f7 @@ -3698,22 +4317,24 @@ packages: license_family: MIT size: 22963 timestamp: 1749421737203 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py313h07c4f96_3.conda - sha256: a2e3a0f646bc2f33fd87de332f73b88b7c3efb7b693e06a920f6aaa0d2f49231 - md5: 0720da5e63f3c93647350cc217fdf2bc +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.24.0-py313h736c1ce_1.conda + sha256: 5a148ac6fc01e41e635e1e5ac4a0fb834e29599a737cd5dddec98ae393bf9efc + md5: 2ca7715c89929da3d648144f8b34cf99 depends: - __glibc >=2.17,<3.0.a0 - cffi >=1.11 - libgcc >=14 - python >=3.13,<3.14.0a0 - python_abi 3.13.* *_cp313 + - zstd >=1.5.7,<1.5.8.0a0 + - zstd >=1.5.7,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 492832 - timestamp: 1756075709448 -- conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py313h5ea7bf4_3.conda - sha256: fd446ae9142ddcaf123de7997dbded7aee88c333ab4dfd7bf3cfca4c2041aca1 - md5: 884170f85de370eb45d5c4edab147861 + size: 428554 + timestamp: 1756841112889 +- conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.24.0-py313hcdcf24b_1.conda + sha256: 4a2f488f8df9b19c14f7b66b55431146d18f8070bd722f1760713e28a0c3e9ec + md5: b35c9d56c92c2d3846908b87e4d40ede depends: - cffi >=1.11 - python >=3.13,<3.14.0a0 @@ -3721,10 +4342,12 @@ packages: - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 + - zstd >=1.5.7,<1.5.8.0a0 + - zstd >=1.5.7,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 347160 - timestamp: 1756075776191 + size: 351525 + timestamp: 1756841550515 - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda sha256: a4166e3d8ff4e35932510aaff7aa90772f84b4d07e9f6f83c614cba7ceefe0eb md5: 6432cb5d4ac0046c3ac0a8a0f95842f9 diff --git a/pixi.toml b/pixi.toml index 600ccc13d..938f58e94 100644 --- a/pixi.toml +++ b/pixi.toml @@ -17,7 +17,7 @@ anypytools=">=1.17.0" nomkl = "*" [feature.anybodycon.target.win-64.dependencies] -anybodycon = "==8.1.4beta3" +anybodycon = "==8.2.0beta5" [feature.anybodycon.tasks]