Beispiel #1
0
 public static bool Cam_HasHit(BtEngineClosestConvexResultCallback cb, Transform cameraFrom, Transform cameraTo)
 {
     var cameraSphere = new SphereShape(COLLISION_CAMERA_SPHERE_RADIUS)
     {
         Margin = COLLISION_MARGIN_DEFAULT
     };
     cb.ClosestHitFraction = 1.0f;
     cb.HitCollisionObject = null;
     BtEngineDynamicsWorld.ConvexSweepTest(cameraSphere, ((Matrix4)cameraFrom).ToBullet(), ((Matrix4)cameraTo).ToBullet(), cb);
     return cb.HasHit;
 }
        public Character(uint id)
            : base(id)
        {
            Sphere.Margin = COLLISION_MARGIN_DEFAULT;

            ClimbSensor = new SphereShape(ClimbR);
            ClimbSensor.Margin = COLLISION_MARGIN_DEFAULT;

            RayCb = new BtEngineClosestRayResultCallback(Self, true);
            RayCb.CollisionFilterMask = (short) (CollisionFilterGroups.StaticFilter | CollisionFilterGroups.KinematicFilter);
            HeightInfo.Cb = RayCb;

            ConvexCb = new BtEngineClosestConvexResultCallback(Self, true);
            ConvexCb.CollisionFilterMask = (short) (CollisionFilterGroups.StaticFilter | CollisionFilterGroups.KinematicFilter);
            HeightInfo.Ccb = ConvexCb;

            DirFlag = ENT_MOVE.Stay;
        }
Beispiel #3
0
 public virtual BtEngineClosestConvexResultCallback CallbackForCamera()
 {
     var cb = new BtEngineClosestConvexResultCallback(Self);
     cb.CollisionFilterMask = (short) (CollisionFilterGroups.StaticFilter | CollisionFilterGroups.KinematicFilter);
     return cb;
 }