Пример #1
0
        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);
        }
Пример #2
0
    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);
        }
    }
Пример #3
0
    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;
 }
Пример #5
0
 public void FlyByPath(Vector3[] path)
 {
     splineBuilder = new SplineBuilder(path);
     gameObject.SetActive(true);
     flightStartTime = Time.time;
 }