// Factory method, create and add Collision Pair into actives
        public CollisionPair AddCollisionPair(CollisionPair.Name _name, GameObject _host, GameObject _visitor)
        {
            // get a new object
            CollisionPair ret = (CollisionPair)this.PullFromReserved();

            // set values
            ret.set(_name, _host, _visitor);

            // add to the active list
            this.Add(ret);

            return(ret);
        }
        public static CollisionPair add(CollisionPair.CollisionPairName colPairName, GameObject rootA, GameObject rootB)
        {
            CollisionPairManager collisionManInst = CollisionPairManager.getSingletonInstance();

            Debug.Assert(collisionMInstance != null);
            CollisionPair nodeAdded = (CollisionPair)collisionManInst.genericAdd();

            Debug.Assert(nodeAdded != null);
            //set the attributes of the Image node

            nodeAdded.set(colPairName, rootA, rootB);

            return(nodeAdded);
        }
        public static CollisionPair Add(CollisionPair.Name colPairName, GameObject pTreeRootA, GameObject pTreeRootB)
        {
            // ensure call Create() first
            CollisionPairMan pMan = CollisionPairMan.GetInstance();

            Debug.Assert(pMan != null);

            CollisionPair pColPair = (CollisionPair)pMan.baseAdd();

            Debug.Assert(pColPair != null);

            // initialize collision pair
            pColPair.set(colPairName, pTreeRootA, pTreeRootB);

            return(pColPair);
        }