public void SplineBuilderKnotInsertionTest() { var builder = new SplineBuilder( 3, Enumerable.Repeat(Point.Origin, 8), new[] { 0.0, 0.0, 0.0, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.0, 1.0, 1.0 }); builder.InsertKnot(0.5); Assert.Equal(9, builder.ControlPoints.Count()); Assert.Equal(13, builder.KnotValues.Count()); Assert.Equal(new[] { 0.0, 0.0, 0.0, 0.0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0, 1.0, 1.0, 1.0 }, builder.KnotValues); }
void Update() { Vector3[] allPoints = new Vector3[] {}; allPoints = getControlPoints().ToArray(); SplineBuilder crs = new SplineBuilder(allPoints); for (int p = 0; p < lineRes; p++) { Vector3 temp = crs.Interp((float)p / lineRes); line.SetPosition(p, temp); } }
private void OnDataLoaded(DriveData driveData) { if (driveData.PositionFrames == null) { return; } _frames = driveData.PositionFrames; Vector3[] positions = new Vector3[driveData.PositionFrames.Frames.Length]; for (int i = 0; i < positions.Length; i++) { positions[i] = driveData.PositionFrames.Frames[i].Point.ToVector(); } splineBuilder = new SplineBuilder(positions); EventBus.Instance.OnSplineBuilderInitialized.Invoke(splineBuilder); EventBus.Instance.OnWaypointsUpdate.Invoke(splineBuilder.GetSplinePoints(splineStep)); EventBus.Instance.OnCurrentWaypointChange.Invoke(positions[0]); }
private void OnSplineBuilderInitialized(SplineBuilder splineBuilder) { this.splineBuilder = splineBuilder; }
public void FlyByPath(Vector3[] path) { splineBuilder = new SplineBuilder(path); gameObject.SetActive(true); flightStartTime = Time.time; }