本文整理汇总了C#中BulletXNA.BulletCollision.CollisionObject.GetUserPointer方法的典型用法代码示例。如果您正苦于以下问题:C# CollisionObject.GetUserPointer方法的具体用法?C# CollisionObject.GetUserPointer怎么用?C# CollisionObject.GetUserPointer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BulletXNA.BulletCollision.CollisionObject
的用法示例。
在下文中一共展示了CollisionObject.GetUserPointer方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ClosestNotMeRayResultCallback
public ClosestNotMeRayResultCallback() { } // for pool
public ClosestNotMeRayResultCallback(IndexedVector3 rayFromWorld, IndexedVector3 rayToWorld,
CollisionObject NotMeShape)
{
m_rayFromWorld = rayFromWorld;
m_rayToWorld = rayToWorld;
ObjectToAvoid = (uint) NotMeShape.GetUserPointer();
}
示例2: RecordCollision
private static void RecordCollision(BSAPIXNA world, CollisionObject objA, CollisionObject objB, IndexedVector3 contact, IndexedVector3 norm, float penetration)
{
IndexedVector3 contactNormal = norm;
if ((objA.GetCollisionFlags() & BulletXNA.BulletCollision.CollisionFlags.BS_WANTS_COLLISIONS) == 0 &&
(objB.GetCollisionFlags() & BulletXNA.BulletCollision.CollisionFlags.BS_WANTS_COLLISIONS) == 0)
{
return;
}
uint idA = (uint)objA.GetUserPointer();
uint idB = (uint)objB.GetUserPointer();
if (idA > idB)
{
uint temp = idA;
idA = idB;
idB = temp;
contactNormal = -contactNormal;
}
//ulong collisionID = ((ulong) idA << 32) | idB;
CollisionDesc cDesc = new CollisionDesc()
{
aID = idA,
bID = idB,
point = new Vector3(contact.X,contact.Y,contact.Z),
normal = new Vector3(contactNormal.X,contactNormal.Y,contactNormal.Z),
penetration = penetration
};
if (world.LastCollisionDesc < world.UpdatedCollisions.Length)
world.UpdatedCollisions[world.LastCollisionDesc++] = (cDesc);
m_collisionsThisFrame++;
}
示例3: RecordCollision
private static void RecordCollision(CollisionWorld world, CollisionObject objA, CollisionObject objB, IndexedVector3 contact, IndexedVector3 norm)
{
IndexedVector3 contactNormal = norm;
if ((objA.GetCollisionFlags() & BulletXNA.BulletCollision.CollisionFlags.BS_WANTS_COLLISIONS) == 0 &&
(objB.GetCollisionFlags() & BulletXNA.BulletCollision.CollisionFlags.BS_WANTS_COLLISIONS) == 0)
{
return;
}
uint idA = (uint)objA.GetUserPointer();
uint idB = (uint)objB.GetUserPointer();
if (idA > idB)
{
uint temp = idA;
idA = idB;
idB = temp;
contactNormal = -contactNormal;
}
ulong collisionID = ((ulong) idA << 32) | idB;
BulletXNA.CollisionDesc cDesc = new BulletXNA.CollisionDesc()
{
aID = idA,
bID = idB,
point = contact,
normal = contactNormal
};
world.UpdatedCollisions.Add(cDesc);
m_collisionsThisFrame++;
}