Ejemplo n.º 1
0
        public void Notify()
        {
            CollisionObservers pNode = pHead;

            while (pNode != null)
            {
                pNode.Notify();
                pNode = (CollisionObservers)pNode.pNext;
            }
        }
Ejemplo n.º 2
0
        static public void RemoveAll()
        {
            DelayRemoveManager pMan  = DelayRemoveManager.PrivGetInstance();
            CollisionObservers pNode = pMan.head;
            CollisionObservers pTmp  = null;

            while (pNode != null)
            {
                pTmp  = pNode;
                pNode = (CollisionObservers)pNode.pNext;
                pMan.PrivDetach(pTmp, ref pMan.head);
            }
        }
Ejemplo n.º 3
0
        private void PrivDetach(CollisionObservers node, ref CollisionObservers head)
        {
            Debug.Assert(node != null);

            if (node.pPrev != null)
            {
                node.pPrev.pNext = node.pNext;
            }
            else
            {
                head = (CollisionObservers)node.pNext;
            }

            if (node.pNext != null)
            {
                node.pNext.pPrev = node.pPrev;
            }
        }
Ejemplo n.º 4
0
        static public void Attach(CollisionObservers pObs)
        {
            Debug.Assert(pObs != null);

            DelayRemoveManager pMan = DelayRemoveManager.PrivGetInstance();

            if (pMan.head == null)
            {
                pMan.head  = pObs;
                pObs.pNext = null;
                pObs.pPrev = null;
            }
            else
            {
                pObs.pNext      = pMan.head;
                pObs.pPrev      = null;
                pMan.head.pPrev = pObs;
                pMan.head       = pObs;
            }
        }
Ejemplo n.º 5
0
        public void AttachObserver(CollisionObservers observer)
        {
            Debug.Assert(observer != null);

            observer.pSubject = this;

            // Attach Observer to the front in Collision Pair
            if (this.pHead == null)
            {
                observer.pNext = null;
                observer.pPrev = null;
                this.pHead     = observer;
            }
            else
            {
                observer.pNext   = this.pHead;
                observer.pPrev   = null;
                this.pHead.pPrev = observer;
                this.pHead       = observer;
            }
        }
Ejemplo n.º 6
0
 public void AttachObserver(CollisionObservers observer)
 {
     Debug.Assert(observer != null);
     Debug.Assert(this.poColSubject != null);
     this.poColSubject.AttachObserver(observer);
 }