private void BuildCamera()
        {
            var curvePoints = new CurveControlPoint[controlPoints.Length];
            for (var i = 0; i < controlPoints.Length; i++)
                curvePoints[i] = new CurveControlPoint(controlPoints[i].distanceToLookTarget, controlPoints[i].cameraAngle);
            var curve = new LerpCurve(curvePoints);

            cam = new AngledLookAtSurfaceCamera(transform, surface.GetSurface(), curve);
            cam.InitializeCamera();
        }
        public void SetUp()
        {
            surfaceOrigin = Vector3.zero;
            surfaceNormal = Vector3.up;
            surfaceUp = Vector3.forward;
            surface = new PlaneSurface(surfaceOrigin, surfaceNormal, surfaceUp);

            curvePoints = new CurveControlPoint[2];
            curvePoints[0] = new CurveControlPoint(1f, 10f);
            curvePoints[1] = new CurveControlPoint(10f, 90f);
            curve = new LerpCurve(curvePoints);

            var testGO = new GameObject();
            testTransform = testGO.transform;
            testObj = new AngledLookAtSurfaceCamera(testTransform, surface, curve);
        }