private void EvaluateReleasePanel(IPneumaticLinkViewModel pneumaticLinkViewModel)
 {
     Messenger.Send(new GetPanelMessage()
     {
         SetPanel = (pvm) =>
         {
             pvm.HookingHandle.Unhook(this);
             _isGripping = false;
         }
     });
 }
Ejemplo n.º 2
0
        private static Matrix3D GetPenumaticLinkTransformation(IPneumaticLinkViewModel link)
        {
            switch (link.Type)
            {
            case LinkType.Linear:
                return(GetLinearTransformation(link.Direction, link.Value));

            case LinkType.Rotary:
                return(GetRataryTransformation(link.Direction, link.Value));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        private void EvaluateReleasePanel(IPneumaticLinkViewModel pneumaticLinkViewModel)
        {
            if (_parallelLink != null)
            {
                _parallelLink.ValueChanged -= ParallelLinkValueChanged;
            }

            foreach (var item in _orthogonalLinks)
            {
                item.ValueChanged -= OrthogonalLinkValueChanged;
            }

            _orthogonalLinks.Clear();
        }
        private void EvaluatePanelCollision(IPneumaticLinkViewModel link)
        {
            Messenger.Send(new GetPanelMessage()
            {
                SetPanel = (pvm) =>
                {
                    var th = GetInstance <IColliderHelperFactory>();
                    var ch = th.GetColliderHelper(this, pvm);

                    if (ch.Intersect(out double d) && IsGripping(link, d))
                    {
                        link.DynOnPos = d;
                        pvm.HookingHandle.Hook(this);
                        _isGripping = true;
                    }
                }
            });
        private void EvaluatePanelCollision(IPneumaticLinkViewModel link)
        {
            Messenger.Send(new GetPanelMessage()
            {
                SetPanel = (pvm) =>
                {
                    var th = GetInstance <IColliderHelperFactory>();
                    var ch = th.GetColliderHelper(this, pvm);

                    if (ch.Intersect(out double d))
                    {
                        _intersectionDistance = d;
                        ApplyPression(link, d);
                        _initialized = true;
                    }

                    _presserLink = link;
                    InitializeParallelChange();
                    InitializeOrthogonalChange(pvm);
                }
            });