public override void OnPerform(GCamera camera) { base.OnPerform(camera); var rotOscillationValue = GetRotationValue(mElapseTime); if (rotOscillationValue != Vector3.Zero) { var euler = camera.Rotation.ToEuler() + rotOscillationValue; camera.Rotation = Quaternion.FromEuler(euler); } var posOscillationValue = GetLocationValue(mElapseTime); if (posOscillationValue != Vector3.Zero) { var euler = camera.Rotation.ToEuler() * MathHelper.Rad2Deg; var quat = Quaternion.GetQuaternion(-Vector3.UnitZ, camera.Direction).ToEuler() * MathHelper.Rad2Deg; var value = Vector3.TransformCoordinate(posOscillationValue, Matrix.RotationQuaternion(camera.Rotation)); //var CTWmat = Matrix.Transformation(Vector3.UnitXYZ, camera.Rotation, camera.Position); camera.Position += value; } var fovOscillationValue = FovOscillation.GetDeltaValue(mElapseTime); if (fovOscillationValue != 0) { camera.Fov += fovOscillationValue; } //Console.WriteLine($"value : {value} , delta :{delta.X} ,OldRotationX{oldEuler.X}, RotationX : {euler.X}"); }
public ModifierStatus Perform(GCamera camera) { mElapseTime += CEngine.Instance.EngineElapseTimeSecond; if (mElapseTime > Duration) { mElapseTime = Duration; Status = ModifierStatus.Success; } else { Status = ModifierStatus.Running; } OnPerform(camera); return(Status); }
public override void OnPerform(GCamera camera) { var currentDir = camera.Direction; var position = LookAtObject.Placement.Location; var rotation = HostCameraComponent.Placement.Rotation; var euler = rotation.ToEuler(); euler.X = 0; euler.Z = 0; var onlyYRotation = Quaternion.FromEuler(euler); var nextLookAt = Vector3.TransformCoordinate(LookAtOffset, Matrix.RotationQuaternion(onlyYRotation)) + position; var nextDir = rotation * (-Vector3.UnitZ); camera.Position = nextLookAt + nextDir * -HostCameraComponent.Placement.Location.Length(); camera.Rotation = rotation; }
public override void OnPerform(GCamera camera) { base.OnPerform(camera); camera.Fov = MathHelper.FloatLerp(mOriginFov, TargetFov, mElapseTime / Duration); }
public override void OnStartExecution(GCamera camera) { base.OnStartExecution(camera); mOriginFov = camera.Fov; Status = ModifierStatus.Running; }
public virtual void OnStopExecution(GCamera camera) { }
public void StopExecution(GCamera camera) { OnStopExecution(camera); }
public virtual void OnPerform(GCamera camera) { }
public void Perform(GCamera camera) { OnPerform(camera); }
public virtual void StartExecution(GCamera camera) { OnStartExecution(camera); }
public override void OnPerform(GCamera camera) { camera.Position = HostCameraComponent.Placement.WorldLocation; camera.Rotation = HostCameraComponent.Placement.WorldRotation; }
public override void StopExecution(GCamera camera) { base.StopExecution(camera); }
public override void OnStartExecution(GCamera camera) { base.OnStartExecution(camera); }