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); } }
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); } }
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(); } }
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(); } }