Пример #1
0
        private void FillCatmullRom(List <Vector3> srcPoints, List <Vector3> dstPoints, int slices, bool loop)
        {
            Assert.IsTrue(srcPoints.Count >= 4, "Not enough source points");
            Assert.IsTrue(slices > 0, "Not enough slices");

            var sliceTime = 1f / slices;

            for (int i = 1; i < srcPoints.Count - 2; i++)
            {
                for (int j = 0; j <= slices; j++)
                {
                    var t = sliceTime * j;
                    var p = VectorHelper.CatmullRom(t, srcPoints[i - 1], srcPoints[i], srcPoints[i + 1], srcPoints[i + 2]);
                    dstPoints.Add(p);
                }
            }
        }