public static SpatialPosition interpolate_linear(SpatialPosition A, SpatialPosition B, float t) { SpatialPosition r = new SpatialPosition(); r.p = A.p * (1 - t) + B.p * t; r.r = Quaternion.Slerp(A.r, B.r, t); return(r); }
public CameraInterpolator(Camera c) { this.Camera = c; TargetFOV = c.fieldOfView; TargetOrthographicHeight = c.orthographicSize; TargetSpatialPosition = new SpatialPosition(c.transform); SoftInterpolation = 1f; }
public void update(float aDeltaTime) { SpatialPosition nsp = SpatialPosition.interpolate_linear(new SpatialPosition(Camera.transform), TargetSpatialPosition, SoftInterpolation); Camera.transform.position = nsp.p; Camera.transform.rotation = nsp.r; Camera.orthographicSize = Camera.orthographicSize * (1 - SoftInterpolation) + TargetOrthographicHeight * SoftInterpolation; Camera.fieldOfView = Camera.fieldOfView * (1 - SoftInterpolation) + TargetFOV * SoftInterpolation; }
public static SpatialPosition FromBaseObject(BaseObject baseObj) { if (baseObj == null || baseObj.NativeObject == IntPtr.Zero) { return(null); } SpatialPosition obj = baseObj as SpatialPosition; if (object.Equals(obj, null)) { obj = new SpatialPosition(CreatedWhenConstruct.CWC_NotToCreate); obj.BindNativeObject(baseObj.NativeObject, "CSpatialPosition"); obj.IncreaseCast(); } return(obj); }
public BaseObject Create() { SpatialPosition emptyInstance = new SpatialPosition(CreatedWhenConstruct.CWC_NotToCreate); return(emptyInstance); }