public void Redo()
        {
            if (NewControlPoints == null)
            {
                SketchWorld.ActiveSketchWorld.DeleteObject(OriginalStrokeSketchObject);
            }
            else
            {
                OriginalStrokeSketchObject.SetControlPointsLocalSpace(NewControlPoints);
            }

            foreach (StrokeSketchObject line in NewLines)
            {
                SketchWorld.ActiveSketchWorld.RestoreObject(line);
            }
        }
    private void SetAddComparison()
    {
        List <Vector3> controlPoints = new List <Vector3>();

        strokeSketchObject.SetControlPointsLocalSpace(new List <Vector3>());
        foreach (Transform controlPoint in controlPointParent.transform)
        {
            strokeSketchObject.AddControlPoint(controlPoint.position);
            controlPoints.Add(controlPoint.position);
        }

        strokeSketchObject2.SetControlPointsLocalSpace(controlPoints);
    }
        public IEnumerator Framerate_StrokeSketchObjects([Values(5, 10, 20)] int steps, [Values(100, 500, 1000, 2000, 4000, 6000, 8000, 10000)] int count)
        {
            List <Vector3> controlPoints = GenerateControlPointsYDirection(3);

            this.StrokeSketchObject.SetInterpolationSteps(steps);
            this.StrokeSketchObject.SetControlPointsLocalSpace(controlPoints);
            for (int i = 1; i < count; i++)
            {
                StrokeSketchObject currentStroke = GameObject.Instantiate(this.StrokeSketchObject).GetComponent <StrokeSketchObject>();
                currentStroke.SetInterpolationSteps(steps);
                currentStroke.SetControlPointsLocalSpace(controlPoints);
                currentStroke.transform.position = new Vector3(i % 50, 0, i / 50);
            }
            yield return(Measure.Frames().Run());
        }