Inheritance: ITangibleGestureListener, IPinchable, ISelectable
Example #1
0
        private float m_xm, m_ym; // mean point

        #endregion Fields

        #region Constructors

        public DemoObjectLink(Viewer viewer, DemoObject from, DemoObject to, int nFingers)
        {
            m_viewer = viewer;
            m_fromObject = from;
            m_toObject = to;
            m_nFingers = nFingers;
            Update();
            from.Links.Add(this);
            to.Links.Add(this);
        }
Example #2
0
 private DemoObjectLink MakeLink(DemoObject from, DemoObject to, int n)
 {
     if (m_currentTuioObjects.Contains(from) && m_currentTuioObjects.Contains(to))
         return new DemoObjectLink(m_viewer, from, to, n);
     else
         return null;
 }
Example #3
0
        public void OpenLinkRequest(int channel, DemoObject demoObject)
        {
            lock (s_lock)
            {
                if (!m_linkRequests.ContainsKey(channel))
                    m_linkRequests[channel] = new List<DemoObject>();

                // this is asynchronous, so for efficiency the link will be actually added later
                DemoObjectLink link;
                foreach (DemoObject req in m_linkRequests[channel])
                {
                    link = MakeLink(req, demoObject, channel);
                    if (link != null)
                        m_links.Add(link);
                }

                m_linkRequests[channel].Add(demoObject);
            }
        }
Example #4
0
        public void refresh(long timestamp)
        {
            lock (s_lock)
            {
                foreach (TuioObject o in m_tuioObjectAddedList)
                {
                    DemoObject demoObject = new DemoObject(this, m_viewer, (int)o.getSessionID(), (o.getX() + OFFSET_X) * Settings.InputDevResolutionRatio, o.getY(), o.getAngle());
                    m_idDemoObjectTable[o.getSessionID()] = demoObject;
                    m_currentTuioObjects.Add(demoObject);
                    m_currentSelectable.Add(demoObject);
                }
                foreach (TuioObject o in m_tuioObjectUpdatedList)
                {
                    m_idDemoObjectTable[o.getSessionID()].Update((o.getX() + OFFSET_X) * Settings.InputDevResolutionRatio, o.getY(), o.getAngle());
                }
                foreach (TuioObject o in m_tuioObjectRemovedList)
                {
                    DemoObject demoObject = m_idDemoObjectTable[o.getSessionID()];
                    demoObject.Remove((o.getX() + OFFSET_X) * Settings.InputDevResolutionRatio, o.getY(), o.getAngle());
                    m_idDemoObjectTable.Remove(o.getSessionID());
                    m_currentTuioObjects.Remove(demoObject);
                    m_currentSelectable.Remove(demoObject);
                    foreach (DemoObjectLink link in demoObject.Links)
                        m_links.Remove(link);
                }

                foreach (DemoObjectLink link in m_links)
                    link.Update();
            }

            m_tuioObjectAddedList.Clear();
            m_tuioObjectUpdatedList.Clear();
            m_tuioObjectRemovedList.Clear();
        }
Example #5
0
 public void CloseLinkRequest(int channel, DemoObject demoObject)
 {
     lock (s_lock)
     {
         m_linkRequests[channel].Remove(demoObject);
     }
 }