Exemple #1
0
 public override void Release()
 {
     msgTimer.Stop();
     msgTimer.Enabled = false;
     vStatus          = MessageStatus.Processed;
     base.Release();
 }
Exemple #2
0
        protected void ProceedOffset(Dictionary <string, object> parlist)
        {
            ParamTimer             tmr          = (ParamTimer)parlist["timer"];
            Point3D?               lookAt       = (parlist["lookat"] == null ? null : (Point3D?)parlist["lookat"]);
            CameraTransformHandler stepCallback = (CameraTransformHandler)parlist["stepcallback"];
            double   remains = (double)parlist["timeremains"];
            Vector3D step    = (Vector3D)parlist["step"];
            Matrix3D m       = new Matrix3D();

            //cmr.Transform.

            cmr.Position += step;             //new Point3D(cmr.Position.X + step.X, cmr.Position.Y + step.Y, cmr.Position.Z + step.Z);
            if (lookAt != null)
            {
                PointAt((Point3D)lookAt);
            }
            parlist["timeremains"] = remains - tmr.Interval;
            if (remains - tmr.Interval <= 0)
            {
                tmr.Enabled = false;
                tmr.Stop();
                CameraTransformHandler callback = (CameraTransformHandler)parlist["callback"];
                if (callback != null)
                {
                    callback(this);
                    //callback.BeginInvoke(this, null, null);
                }
            }
            if (stepCallback != null)
            {
                stepCallback(this);
                //stepCallback.BeginInvoke(this, null, null);
            }
        }
Exemple #3
0
        public void Invoke(object sender, System.Timers.ElapsedEventArgs notUsed)
        {
            ParamTimer tmr = sender as ParamTimer;

            tmr.Stop();
            Model3DParams mp     = tmr.DictParams as Model3DParams;
            Delegate      method = mp.Processor;

            Dispatcher.BeginInvoke(method, new object[] { tmr, mp });
        }
Exemple #4
0
        protected void ProceedRotate(Dictionary <string, object> parlist)
        {
            ParamTimer             tmr          = (ParamTimer)parlist["timer"];
            double                 interval     = 0;
            double                 stepX        = (double)parlist["stepz"];
            double                 stepY        = (double)parlist["stepy"];
            CameraTransformHandler stepCallback = (CameraTransformHandler)parlist["stepcallback"];
            CameraTransformHandler callback     = (CameraTransformHandler)parlist["callback"];
            double                 remains      = 0;

            if (tmr != null)
            {
                interval = tmr.Interval;
                remains  = (double)parlist["timeremains"];
            }
            //Quaternion delta = new Quaternion(Vector3D.CrossProduct(cmr.UpDirection, cmr.LookDirection), stepZ); //new Quaternion(cmr.UpDirection, stepY);
            //delta *= new Quaternion(cmr.UpDirection, stepY);
            try
            {
                Matrix3D m = MatrixHelper.CalcRotationMatrix(-stepX, stepY, 0, cmr.Position, new Vector3D(0, 1, 0), cmr.LookDirection, cmr.Transform, MatrixHelper.RotationType.LockAxisY);
                parlist["timeremains"] = remains - interval;
                //m.RotateAt(delta, cmr.Position);
                //m.RotateAtPrepend(delta, cmr.Position);
                MatrixTransform3D o = (MatrixTransform3D)cmr.Transform;
                cmr.Transform = new MatrixTransform3D(Matrix3D.Multiply(o.Matrix, m));
                if (tmr != null && remains - interval <= 0)
                {
                    tmr.Stop();
                    if (callback != null)
                    {
                        callback(this);
                    }
                    return;
                }
                if (stepCallback != null)
                {
                    stepCallback(this);
                }
                if (OnCameraStatusChange != null)
                {
                    OnCameraStatusChange(this);
                }
            }
            catch (Exception err)
            {
                Exceptions.LogOnly(err);
            }
        }
Exemple #5
0
        protected void tmr_Elapsed(object sender, ElapsedEventArgs e)
        {
            ParamTimer tmr = (ParamTimer)sender;

            ThreadViewport3D.VoidDictInvokes proceed = (ThreadViewport3D.VoidDictInvokes)tmr.DictParams["$proceed"];
            try
            {
                tmr.Stop();
                host.Invoke(proceed, tmr.DictParams);
                tmr.Start();
            }
            catch (Exception err)
            {
                Exceptions.LogOnly(err);
            }
        }
Exemple #6
0
        void tmrRun_Elapsed(object sender, ElapsedEventArgs e)
        {
            ParamTimer tmr = (ParamTimer)sender;

            tmr.Stop();
            int sleft = (int)tmr.DictParams["stepsleft"];

            Console.WriteLine("Running - " + sleft);
            tmr.DictParams["stepsleft"] = sleft - 1;
            if (sleft - 1 > 0)
            {
                tmr.Start();
            }
            else
            {
                Message msg = tmr.Param as Message;
                msg.Release();
            }
        }