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; }
public virtual BtEngineClosestConvexResultCallback CallbackForCamera() { var cb = new BtEngineClosestConvexResultCallback(Self); cb.CollisionFilterMask = (short) (CollisionFilterGroups.StaticFilter | CollisionFilterGroups.KinematicFilter); return cb; }