/// <summary> /// Perform a physics world swept convex test using a user-supplied collision shape and return the first hit. /// </summary> public void ConvexCast(ref PhysicsRaycastResult result, CollisionShape shape, Urho.Vector3 startPos, Urho.Quaternion startRot, Urho.Vector3 endPos, Urho.Quaternion endRot, uint collisionMask) { Runtime.ValidateRefCounted(this); PhysicsWorld_ConvexCast(handle, ref result, (object)shape == null ? IntPtr.Zero : shape.Handle, ref startPos, ref startRot, ref endPos, ref endRot, collisionMask); }
internal static extern void PhysicsWorld_ConvexCast(IntPtr handle, ref PhysicsRaycastResult result, IntPtr shape, ref Urho.Vector3 startPos, ref Urho.Quaternion startRot, ref Urho.Vector3 endPos, ref Urho.Quaternion endRot, uint collisionMask);
/// <summary> /// Perform a physics world swept sphere test and return the closest hit. /// </summary> public void SphereCast(ref PhysicsRaycastResult result, Urho.Ray ray, float radius, float maxDistance, uint collisionMask) { Runtime.ValidateRefCounted(this); PhysicsWorld_SphereCast(handle, ref result, ref ray, radius, maxDistance, collisionMask); }
internal static extern void PhysicsWorld_SphereCast(IntPtr handle, ref PhysicsRaycastResult result, ref Urho.Ray ray, float radius, float maxDistance, uint collisionMask);
/// <summary> /// Perform a physics world segmented raycast and return the closest hit. Useful for big scenes with many bodies. /// </summary> public void RaycastSingleSegmented(ref PhysicsRaycastResult result, Urho.Ray ray, float maxDistance, float segmentDistance, uint collisionMask) { Runtime.ValidateRefCounted(this); PhysicsWorld_RaycastSingleSegmented(handle, ref result, ref ray, maxDistance, segmentDistance, collisionMask); }
internal static extern void PhysicsWorld_RaycastSingleSegmented(IntPtr handle, ref PhysicsRaycastResult result, ref Urho.Ray ray, float maxDistance, float segmentDistance, uint collisionMask);