Exemple #1
0
        public void PointGeneration2()
        {
            MeaninglessTestWrapper2.TestBezierSpline2D2DSimpleJob spline =
                (MeaninglessTestWrapper2.TestBezierSpline2D2DSimpleJob)CreateSpline();

            float2 a = new float2(0f, 0f);
            float2 b = new float2(100f, 100f);

            spline.AddControlPoint(a);
            spline.AddControlPoint(b);
            spline.UpdateControlPointLocal(0, new float2(1f, 1f), SplinePoint.Post);
            spline.UpdateControlPointLocal(1, new float2(99f, 99f), SplinePoint.Pre);
            Assert.AreEqual(2, spline.ControlPointCount);

            spline.ArkLength           = math.length(new float2(1f, 1f));
            spline.ArkParameterization = true;
            Assert.NotNull(spline.SplineEntityData2D);
            Spline2DData splineData = spline.SplineEntityData2D.Value;

            Assert.AreEqual(101, splineData.Points.Length);
            for (int i = 0; i <= 100; i++)
            {
                float2 point = splineData.Points[i];
                TestHelpers.CheckFloat2(new float2(i, i), point, 0.0003f);
            }
        }
Exemple #2
0
        public void PointGeneration()
        {
            MeaninglessTestWrapper2.TestBezierSpline2D2DSimpleJob spline =
                (MeaninglessTestWrapper2.TestBezierSpline2D2DSimpleJob)CreateSpline();

            float2 a = new float2(0f, 60f);
            float2 b = new float2(100f, 60f);

            spline.AddControlPoint(a);
            spline.AddControlPoint(b);
            Assert.AreEqual(2, spline.ControlPointCount);

            spline.ArkLength           = 1;
            spline.ArkParameterization = true;

            Assert.AreEqual(spline.Length, spline.SplineEntityData2D.Value.Length, "unexpected length!");
            Assert.NotNull(spline.SplineEntityData2D);
            Spline2DData splineData = spline.SplineEntityData2D.Value;

            Assert.AreEqual(101, splineData.Points.Length);
            for (int i = 0; i <= 100; i++)
            {
                float2 point = splineData.Points[i];
                TestHelpers.CheckFloat2(new float2(i, 60f), point, 0.001f);
            }
        }
Exemple #3
0
        public void Point()
        {
            ISimpleTestSpline2D bezierSpline2D = CreateSpline();

            float2 a = float2.zero;

            bezierSpline2D.AddControlPoint(a);
            float2 b = new float2(1f, 0f);

            bezierSpline2D.AddControlPoint(b);

            Spline2DData data = bezierSpline2D.SplineEntityData2D.Value;

            Assert.AreEqual(1f, bezierSpline2D.Length());
            Assert.AreEqual(1f, data.Length);

            Assert.AreEqual(1, bezierSpline2D.Times.Count);
            Assert.AreEqual(1, data.Time.Length);
            Assert.AreEqual(1f, bezierSpline2D.Times[0]);
            Assert.AreEqual(1f, data.Time[0]);

            BezierSpline2DPointJob job = new BezierSpline2DPointJob(bezierSpline2D, -0.5f, Allocator.Temp);

            try
            {
                CheckFloatJob(a, job, -0.5f);
                CheckFloatJob(a, job, 0f);
                CheckFloatJob(new float2(0.5f, 0f), job, 0.5f);
                CheckFloatJob(b, job, 5f);
            }
            finally
            {
                job.Dispose();
            }
        }
Exemple #4
0
        public void DataEquality()
        {
            ISimpleTestSpline2D bezierSpline2D = CreateSpline();

            Spline2DData data = bezierSpline2D.SplineEntityData2D.Value;

            Assert.AreEqual(bezierSpline2D.Length(), data.Length);
            Assert.AreEqual(bezierSpline2D.Times.Count, data.Time.Length);
            Assert.AreEqual(bezierSpline2D.ControlPoints.Count, data.Points.Length);
            bezierSpline2D.ClearData();

            {
                float2 a = float2.zero;
                bezierSpline2D.AddControlPoint(a);

                data = bezierSpline2D.SplineEntityData2D.Value;
                Assert.AreEqual(bezierSpline2D.Length(), data.Length);
                Assert.AreEqual(bezierSpline2D.Times.Count, data.Time.Length);
                for (int i = 0; i < bezierSpline2D.Times.Count; i++)
                {
                    Assert.AreEqual(bezierSpline2D.Times[i], data.Time[i]);
                }
                Assert.AreEqual(bezierSpline2D.ControlPoints.Count, data.Points.Length);
                for (int i = 0; i < bezierSpline2D.ControlPoints.Count; i++)
                {
                    Assert.AreEqual(bezierSpline2D.ControlPoints[i], data.Points[i]);
                }
                bezierSpline2D.ClearData();
            }
            {
                float2 b = new float2(2.5f, 0f);
                bezierSpline2D.AddControlPoint(b);

                data = bezierSpline2D.SplineEntityData2D.Value;
                Assert.AreEqual(bezierSpline2D.Length(), data.Length);
                Assert.AreEqual(bezierSpline2D.Times.Count, data.Time.Length);
                for (int i = 0; i < bezierSpline2D.Times.Count; i++)
                {
                    Assert.AreEqual(bezierSpline2D.Times[i], data.Time[i]);
                }
                Assert.AreEqual(bezierSpline2D.ControlPoints.Count, data.Points.Length);
                for (int i = 0; i < bezierSpline2D.ControlPoints.Count; i++)
                {
                    Assert.AreEqual(bezierSpline2D.ControlPoints[i], data.Points[i]);
                }
                bezierSpline2D.ClearData();
            }
            {
                float2 c = new float2(7.5f, 0f);
                bezierSpline2D.AddControlPoint(c);

                data = bezierSpline2D.SplineEntityData2D.Value;
                Assert.AreEqual(bezierSpline2D.Length(), data.Length);
                Assert.AreEqual(bezierSpline2D.Times.Count, data.Time.Length);
                for (int i = 0; i < bezierSpline2D.Times.Count; i++)
                {
                    Assert.AreEqual(bezierSpline2D.Times[i], data.Time[i]);
                }
                Assert.AreEqual(bezierSpline2D.ControlPoints.Count, data.Points.Length);
                for (int i = 0; i < bezierSpline2D.ControlPoints.Count; i++)
                {
                    Assert.AreEqual(bezierSpline2D.ControlPoints[i], data.Points[i]);
                }
                bezierSpline2D.ClearData();
            }
            {
                float2 d = new float2(10f, 0f);
                bezierSpline2D.AddControlPoint(d);

                data = bezierSpline2D.SplineEntityData2D.Value;
                Assert.AreEqual(bezierSpline2D.Length(), data.Length);
                Assert.AreEqual(bezierSpline2D.Times.Count, data.Time.Length);
                for (int i = 0; i < bezierSpline2D.Times.Count; i++)
                {
                    Assert.AreEqual(bezierSpline2D.Times[i], data.Time[i]);
                }
                Assert.AreEqual(bezierSpline2D.ControlPoints.Count, data.Points.Length);
                for (int i = 0; i < bezierSpline2D.ControlPoints.Count; i++)
                {
                    Assert.AreEqual(bezierSpline2D.ControlPoints[i], data.Points[i]);
                }
                bezierSpline2D.ClearData();
            }
        }