/// <summary> /// Stops all current automatic translations /// </summary> private void StopTranslations() { if (this.translationMode != CameraTranslations.None) { this.translationMode = CameraTranslations.None; this.translationInterest = Vector3.Zero; } }
/// <summary> /// Move camera to position /// </summary> /// <param name="newPosition">New position</param> /// <param name="translation">Translation mode</param> public void Goto(Vector3 newPosition, CameraTranslations translation = CameraTranslations.None) { Vector3 diff = newPosition - this.Position; if (translation != CameraTranslations.None) { this.StartTranslations(translation, this.Interest + diff); } else { this.StopTranslations(); this.Position += diff; this.Interest += diff; } }
/// <summary> /// Center camera in new interest /// </summary> /// <param name="newInterest">New interest point</param> /// <param name="translation">Translation mode</param> public void LookTo(Vector3 newInterest, CameraTranslations translation = CameraTranslations.None) { if (translation != CameraTranslations.None) { this.StartTranslations(translation, newInterest); } else { this.StopTranslations(); if (this.mode == CameraModes.FreeIsometric) { Vector3 diff = newInterest - this.Interest; this.Position += diff; this.Interest += diff; } else { this.Interest = newInterest; } } }
/// <summary> /// Center camera in new interest /// </summary> /// <param name="x">X position component</param> /// <param name="y">Y position component</param> /// <param name="z">Z position component</param> /// <param name="translation">Translation mode</param> public void LookTo(float x, float y, float z, CameraTranslations translation = CameraTranslations.None) { this.LookTo(new Vector3(x, y, z), translation); }
/// <summary> /// Starts automatic translations /// </summary> /// <param name="translation">Translation mode</param> /// <param name="newInterest">New interest point</param> private void StartTranslations(CameraTranslations translation, Vector3 newInterest) { this.translationMode = translation; this.translationInterest = newInterest; }