コード例 #1
0
ファイル: CurveFactory.cs プロジェクト: yakumo-proj/SharpGLTF
        public override Vector3 GetPoint(Single offset)
        {
            var sample = FindSample(offset);

            switch (sample.A.Degree)
            {
            case 0:
                return(sample.A.Point);

            case 1:
                return(Vector3.Lerp(sample.A.Point, sample.B.Point, sample.Amount));

            case 3:
                return(CurveSampler.InterpolateCubic
                       (
                           sample.A.Point, sample.A.OutgoingTangent,
                           sample.B.Point, sample.B.IncomingTangent,
                           sample.Amount
                       ));

            default:
                throw new NotSupportedException();
            }
        }
コード例 #2
0
 public SEGMENT InterpolateCubic(SEGMENT start, SEGMENT outgoingTangent, SEGMENT end, SEGMENT incomingTangent, Single amount)
 {
     return(new SEGMENT(CurveSampler.InterpolateCubic(start, outgoingTangent, end, incomingTangent, amount)));
 }
コード例 #3
0
 public Quaternion InterpolateCubic(Quaternion start, Quaternion outgoingTangent, Quaternion end, Quaternion incomingTangent, Single amount)
 {
     return(CurveSampler.InterpolateCubic(start, outgoingTangent, end, incomingTangent, amount));
 }
コード例 #4
0
 public float[] InterpolateCubic(float[] start, float[] outgoingTangent, float[] end, float[] incomingTangent, float amount)
 {
     return(CurveSampler.InterpolateCubic(start, outgoingTangent, end, incomingTangent, amount));
 }
コード例 #5
0
 public Vector3 InterpolateCubic(Vector3 start, Vector3 outgoingTangent, Vector3 end, Vector3 incomingTangent, Single amount)
 {
     return(CurveSampler.InterpolateCubic(start, outgoingTangent, end, incomingTangent, amount));
 }