public override void DetectCollisions(IPhysicObject po, System.Collections.Generic.List <IPhysicObject> resp)
        {
            BulletPhysicObject BulletPhysicObject = po as BulletPhysicObject;

            contactcallbac.objs = new List <IPhysicObject>();
            world.ContactTest(BulletPhysicObject.Body, contactcallbac);
            resp = contactcallbac.objs;
        }
 public override void RemoveObject(IPhysicObject obj)
 {
     if (obj is BulletPhysicObject && obj.PhysicObjectTypes != PhysicObjectTypes.GHOST)
     {
         BulletPhysicObject BulletPhysicObject = obj as BulletPhysicObject;
         world.RemoveRigidBody(BulletPhysicObject.Body);
         BulletPhysicObject.Body.UserObject = null;
     }
     objs.Remove(obj);
 }
 public override void AddObject(IPhysicObject obj)
 {
     if (obj is BulletPhysicObject && obj.PhysicObjectTypes != PhysicObjectTypes.GHOST)
     {
         BulletPhysicObject BulletPhysicObject = obj as BulletPhysicObject;
         world.AddRigidBody(BulletPhysicObject.Body, BulletPhysicObject.CollisionFilterGroup, BulletPhysicObject.CollisionFilterMask);
         BulletPhysicObject.Body.UserObject = obj;
     }
     objs.Add(obj);
 }
 /// <summary>
 /// Create a simple Sphere object
 /// </summary>
 /// <param name="pos"></param>
 /// <param name="ori"></param>
 /// <returns></returns>
 private IObject SpawnPrimitive(Vector3 pos, Matrix ori)
 {
     ///Load a Model with a custom texture
     SimpleModel sm2 = new SimpleModel(factory,"Model\\ball");
     sm2.SetTexture(factory.CreateTexture2DColor(1,1,Color.White,false), TextureType.DIFFUSE);
     ForwardXNABasicShader nd = new ForwardXNABasicShader();                        
     IMaterial m = new ForwardMaterial(nd);
     BulletPhysicObject BulletPhysicObject = new BulletPhysicObject(new SphereShape(1), pos, Matrix.Identity, Vector3.One , 10);
     IObject o = new IObject(m, sm2, BulletPhysicObject);
     return o;
 }