Esempio n. 1
0
        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}");
        }
Esempio n. 2
0
 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;
        }
Esempio n. 4
0
 public override void OnPerform(GCamera camera)
 {
     base.OnPerform(camera);
     camera.Fov = MathHelper.FloatLerp(mOriginFov, TargetFov, mElapseTime / Duration);
 }
Esempio n. 5
0
 public override void OnStartExecution(GCamera camera)
 {
     base.OnStartExecution(camera);
     mOriginFov = camera.Fov;
     Status     = ModifierStatus.Running;
 }
Esempio n. 6
0
 public virtual void OnStopExecution(GCamera camera)
 {
 }
Esempio n. 7
0
 public void StopExecution(GCamera camera)
 {
     OnStopExecution(camera);
 }
Esempio n. 8
0
 public virtual void OnPerform(GCamera camera)
 {
 }
Esempio n. 9
0
 public void Perform(GCamera camera)
 {
     OnPerform(camera);
 }
Esempio n. 10
0
 public virtual void StartExecution(GCamera camera)
 {
     OnStartExecution(camera);
 }
Esempio n. 11
0
 public override void OnPerform(GCamera camera)
 {
     camera.Position = HostCameraComponent.Placement.WorldLocation;
     camera.Rotation = HostCameraComponent.Placement.WorldRotation;
 }
Esempio n. 12
0
 public override void StopExecution(GCamera camera)
 {
     base.StopExecution(camera);
 }
Esempio n. 13
0
 public override void OnStartExecution(GCamera camera)
 {
     base.OnStartExecution(camera);
 }