Panda3D
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
PhysxUtilLib Class Reference

Public Member Functions

bool box_box_intersect (const LVector3f &extents0, const LPoint3f &center0, const LMatrix3f &rotation0, const LVector3f &extents1, const LPoint3f &center1, const LMatrix3f &rotation1, bool full_test)
 Boolean intersection test between two OBBs.
 
bool box_contains_point (const PhysxBox &box, const LPoint3f &p)
 Test if an oriented box contains a point.
 
PhysxBox compute_box_around_capsule (const PhysxCapsule &capsule)
 Compute a box which encloses a capsule.
 
float compute_box_density (const LVector3f &extents, float mass)
 Computes density of a homogeneous box according to box mass.
 
LVector3f compute_box_inertia_tensor (float mass, float xlength, float ylength, float zlength)
 Computes diagonalized inertia tensor for a box.
 
float compute_box_mass (const LVector3f &extents, float density)
 Computes mass of a homogeneous box according to box density.
 
LVector3f compute_box_world_edge_normal (const PhysxBox &box, unsigned int edge_index)
 Compute and edge normals for an oriented box.
 
PhysxCapsule compute_capsule_around_box (const PhysxBox &box)
 Compute a capsule which encloses a box.
 
float compute_cone_density (float radius, float length, float mass)
 Computes density of a homogeneous cone according to cone mass.
 
float compute_cone_mass (float radius, float length, float density)
 Computes mass of a homogeneous cone according to cone density.
 
float compute_cylinder_density (float radius, float length, float mass)
 Computes density of a homogeneous cylinder according to cylinder mass.
 
float compute_cylinder_mass (float radius, float length, float density)
 Computes mass of a homogeneous cylinder according to cylinder density.
 
float compute_distance_squared (const PhysxRay &ray, const LPoint3f &point)
 Compute the distance squared from a point to a ray.
 
float compute_ellipsoid_density (const LVector3f &extents, float mass)
 Computes density of a homogeneous ellipsoid according to ellipsoid mass.
 
float compute_ellipsoid_mass (const LVector3f &extents, float density)
 Computes mass of a homogeneous ellipsoid according to ellipsoid density.
 
float compute_sphere_density (float radius, float mass)
 Computes density of a homogeneous sphere according to sphere mass.
 
LVector3f compute_sphere_inertia_tensor (float mass, float radius, bool hollow)
 Computes diagonalized inertia tensor for a sphere.
 
float compute_sphere_mass (float radius, float density)
 Computes mass of a homogeneous sphere according to sphere density.
 
float compute_square_distance (const PhysxSegment &seg, const LPoint3f &point)
 Compute the distance squared from a point to a line segment.
 
PhysxBox create_box (const PhysxBounds3 &aabb, const LMatrix4f &mat)
 Create an oriented box from an axis aligned box and a transformation.
 
LMatrix3f find_rotation_matrix (const LVector3f &x, const LVector3f &b)
 Computes a rotation matrix M so that: M * x = b (x and b are unit vectors).
 
int int_ceil (const float &f)
 Convert a floating point number to an integer.
 
int int_chop (const float &f)
 Convert a floating point number to an integer.
 
int int_floor (const float &f)
 Convert a floating point number to an integer.
 
bool is_box_a_inside_box_b (const PhysxBox &a, const PhysxBox &b)
 Test if box A is inside another box B.
 
PhysxSphere merge_spheres (const PhysxSphere &sphere0, const PhysxSphere &sphere1)
 Compute an overall bounding sphere for a pair of spheres.
 
void normal_to_tangents (const LVector3f &n, LVector3f &t1, LVector3f &t2)
 Get the tangent vectors associated with a normal.
 
float point_obb_sqr_dist (const LPoint3f &point, const LPoint3f &center, const LVector3f &extents, const LMatrix3f &rot, LPoint3f &params)
 Point-vs-OBB distance computation.
 
bool ray_aabb_intersect (const LPoint3f &min, const LPoint3f &max, const LPoint3f &origin, const LVector3f &dir, LPoint3f &coord)
 Ray-AABB intersection test.
 
unsigned int ray_capsule_intersect (const LPoint3f &origin, const LVector3f &dir, const PhysxCapsule &capsule)
 Ray-capsule intersection test.
 
bool ray_obb_intersect (const PhysxRay &ray, const LPoint3f &center, const LVector3f &extents, const LMatrix3f &rot)
 Boolean ray-OBB intersection test.
 
bool ray_plane_intersect (const PhysxRay &ray, const PhysxPlane &plane, LPoint3f &point_on_plane)
 Ray-plane intersection test.
 
bool ray_sphere_intersect (const LPoint3f &origin, const LVector3f &dir, float length, const LPoint3f &center, float radius, LPoint3f &hit_pos)
 Ray-sphere intersection test.
 
bool ray_tri_intersect (const LPoint3f &orig, const LVector3f &dir, const LPoint3f &vert0, const LPoint3f &vert1, const LPoint3f &vert2, LVector3f &hit, bool cull)
 Ray-triangle intersection test.
 
bool segment_aabb_intersect (const LPoint3f &p0, const LPoint3f &p1, const LPoint3f &min, const LPoint3f &max)
 Boolean segment-AABB intersection test.
 
bool segment_box_intersect (const LPoint3f &p1, const LPoint3f &p2, const LPoint3f &bbox_min, const LPoint3f &bbox_max, LPoint3f &intercept)
 Segment-AABB intersection test.
 
bool segment_obb_intersect (const LPoint3f &p0, const LPoint3f &p1, const LPoint3f &center, const LVector3f &extents, const LMatrix3f &rot)
 Boolean segment-OBB intersection test.
 
void set_fpu_exceptions (bool b)
 Set FPU precision.
 
void set_fpu_precision24 ()
 Set FPU precision.
 
void set_fpu_precision53 ()
 Set FPU precision.
 
void set_fpu_precision64 ()
 Set FPU precision.
 
void set_fpu_rounding_chop ()
 Set FPU precision.
 
void set_fpu_rounding_down ()
 Set FPU rounding mode.
 
void set_fpu_rounding_near ()
 Set FPU rounding mode.
 
void set_fpu_rounding_up ()
 Set FPU rounding mode.
 
bool sweep_box_box (const PhysxBox &box0, const PhysxBox &box1, const LVector3f &dir, float length, LPoint3f &ip, LVector3f &normal)
 Box-vs-box sweep test.
 
bool sweep_box_capsule (const PhysxBox &box, const PhysxCapsule &lss, const LVector3f &dir, float length, LVector3f &normal)
 Box-vs-capsule sweep test.
 
bool sweep_box_sphere (const PhysxBox &box, const PhysxSphere &sphere, const LVector3f &dir, float length, LVector3f &normal)
 Box-vs-sphere sweep test.
 
bool sweep_capsule_capsule (const PhysxCapsule &lss0, const PhysxCapsule &lss1, const LVector3f &dir, float length, LPoint3f &ip, LVector3f &normal)
 Capsule-vs-capsule sweep test.
 
bool sweep_sphere_capsule (const PhysxSphere &sphere, const PhysxCapsule &lss, const LVector3f &dir, float length, LPoint3f &ip, LVector3f &normal)
 Sphere-vs-capsule sweep test.
 
bool swept_spheres_intersect (const PhysxSphere &sphere0, const LVector3f &velocity0, const PhysxSphere &sphere1, const LVector3f &velocity1)
 Sphere-sphere sweep test.
 
bool tri_box_intersect (const LPoint3f &vertex0, const LPoint3f &vertex1, const LPoint3f &vertex2, const LPoint3f &center, const LVector3f &extents)
 Boolean intersection test between a triangle and a box.
 

Public Attributes

NxUtilLib * _ptr
 

Detailed Description

Definition at line 33 of file physxUtilLib.h.

Constructor & Destructor Documentation

◆ PhysxUtilLib()

PhysxUtilLib::PhysxUtilLib ( )
inline

Definition at line 17 of file physxUtilLib.I.

◆ ~PhysxUtilLib()

PhysxUtilLib::~PhysxUtilLib ( )
inline

Definition at line 26 of file physxUtilLib.I.

Member Function Documentation

◆ box_box_intersect()

bool PhysxUtilLib::box_box_intersect ( const LVector3f & extents0,
const LPoint3f & center0,
const LMatrix3f & rotation0,
const LVector3f & extents1,
const LPoint3f & center1,
const LMatrix3f & rotation1,
bool full_test )

Boolean intersection test between two OBBs.

Uses the separating axis theorem. Disabling 'full_test' only performs 6 axis tests out of 15.

Parameters
[in]extents0

param [in] center0

Parameters
[in]rotation0

param [in] extents1

Parameters
[in]center1

param [in] rotation1

Parameters
[in]full_test

Definition at line 421 of file physxUtilLib.cxx.

References PhysxManager::mat3_to_nxMat33(), PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().

◆ box_contains_point()

bool PhysxUtilLib::box_contains_point ( const PhysxBox & box,
const LPoint3f & p )

Test if an oriented box contains a point.

Parameters
[in]box

param [in] p

Definition at line 128 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3().

◆ compute_box_around_capsule()

PhysxBox PhysxUtilLib::compute_box_around_capsule ( const PhysxCapsule & capsule)

Compute a box which encloses a capsule.

Parameters
[in]capsule

Definition at line 195 of file physxUtilLib.cxx.

◆ compute_box_density()

float PhysxUtilLib::compute_box_density ( const LVector3f & extents,
float mass )

Computes density of a homogeneous box according to box mass.

Parameters
[in]radius

param [in] mass

Definition at line 315 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ compute_box_inertia_tensor()

LVector3f PhysxUtilLib::compute_box_inertia_tensor ( float mass,
float xlength,
float ylength,
float zlength )

Computes diagonalized inertia tensor for a box.

Parameters
[in]mass

param [in] xlength

Parameters
[in]ylength

param [in] zlength

Definition at line 393 of file physxUtilLib.cxx.

References PhysxManager::nxVec3_to_vec3().

◆ compute_box_mass()

float PhysxUtilLib::compute_box_mass ( const LVector3f & extents,
float density )

Computes mass of a homogeneous box according to box density.

Parameters
[in]radius

param [in] density

Definition at line 304 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ compute_box_world_edge_normal()

LVector3f PhysxUtilLib::compute_box_world_edge_normal ( const PhysxBox & box,
unsigned int edge_index )

Compute and edge normals for an oriented box.

This is an averaged normal, from the two faces sharing the edge. The edge index should be from 0 to 11 (i.e. a box has 12 edges).

Parameters
[in]box

param [in] edge_index

Definition at line 154 of file physxUtilLib.cxx.

References PhysxManager::nxVec3_to_vec3().

◆ compute_capsule_around_box()

PhysxCapsule PhysxUtilLib::compute_capsule_around_box ( const PhysxBox & box)

Compute a capsule which encloses a box.

Parameters
[in]box

Definition at line 170 of file physxUtilLib.cxx.

◆ compute_cone_density()

float PhysxUtilLib::compute_cone_density ( float radius,
float length,
float mass )

Computes density of a homogeneous cone according to cone mass.

Parameters
[in]radius

param [in] mass

Definition at line 381 of file physxUtilLib.cxx.

◆ compute_cone_mass()

float PhysxUtilLib::compute_cone_mass ( float radius,
float length,
float density )

Computes mass of a homogeneous cone according to cone density.

Parameters
[in]radius

param [in] density

Definition at line 370 of file physxUtilLib.cxx.

◆ compute_cylinder_density()

float PhysxUtilLib::compute_cylinder_density ( float radius,
float length,
float mass )

Computes density of a homogeneous cylinder according to cylinder mass.

Parameters
[in]radius

param [in] mass

Definition at line 359 of file physxUtilLib.cxx.

◆ compute_cylinder_mass()

float PhysxUtilLib::compute_cylinder_mass ( float radius,
float length,
float density )

Computes mass of a homogeneous cylinder according to cylinder density.

Parameters
[in]radius

param [in] density

Definition at line 348 of file physxUtilLib.cxx.

◆ compute_distance_squared()

float PhysxUtilLib::compute_distance_squared ( const PhysxRay & ray,
const LPoint3f & point )

Compute the distance squared from a point to a ray.

Parameters
[in]ray

param [in] point

Definition at line 208 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3().

◆ compute_ellipsoid_density()

float PhysxUtilLib::compute_ellipsoid_density ( const LVector3f & extents,
float mass )

Computes density of a homogeneous ellipsoid according to ellipsoid mass.

Parameters
[in]radius

param [in] mass

Definition at line 337 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ compute_ellipsoid_mass()

float PhysxUtilLib::compute_ellipsoid_mass ( const LVector3f & extents,
float density )

Computes mass of a homogeneous ellipsoid according to ellipsoid density.

Parameters
[in]radius

param [in] density

Definition at line 326 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ compute_sphere_density()

float PhysxUtilLib::compute_sphere_density ( float radius,
float mass )

Computes density of a homogeneous sphere according to sphere mass.

Parameters
[in]radius

param [in] mass

Definition at line 293 of file physxUtilLib.cxx.

◆ compute_sphere_inertia_tensor()

LVector3f PhysxUtilLib::compute_sphere_inertia_tensor ( float mass,
float radius,
bool hollow )

Computes diagonalized inertia tensor for a sphere.

Parameters
[in]mass

param [in] radius

Parameters
[in]hollow

Definition at line 406 of file physxUtilLib.cxx.

References PhysxManager::nxVec3_to_vec3().

◆ compute_sphere_mass()

float PhysxUtilLib::compute_sphere_mass ( float radius,
float density )

Computes mass of a homogeneous sphere according to sphere density.

Parameters
[in]radius

param [in] density

Definition at line 282 of file physxUtilLib.cxx.

◆ compute_square_distance()

float PhysxUtilLib::compute_square_distance ( const PhysxSegment & seg,
const LPoint3f & point )

Compute the distance squared from a point to a line segment.

Parameters
[in]seg

param [in] point

Definition at line 220 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3().

◆ create_box()

PhysxBox PhysxUtilLib::create_box ( const PhysxBounds3 & aabb,
const LMatrix4f & mat )

Create an oriented box from an axis aligned box and a transformation.

Parameters
[in]aabb

param [in] mat

Definition at line 139 of file physxUtilLib.cxx.

References PhysxManager::mat4_to_nxMat34().

◆ find_rotation_matrix()

LMatrix3f PhysxUtilLib::find_rotation_matrix ( const LVector3f & x,
const LVector3f & b )

Computes a rotation matrix M so that: M * x = b (x and b are unit vectors).

Parameters
[in]x

param [in] b

Definition at line 267 of file physxUtilLib.cxx.

References PhysxManager::nxMat33_to_mat3(), and PhysxManager::vec3_to_nxVec3().

◆ int_ceil()

int PhysxUtilLib::int_ceil ( const float & f)

Convert a floating point number to an integer.

Definition at line 99 of file physxUtilLib.cxx.

◆ int_chop()

int PhysxUtilLib::int_chop ( const float & f)

Convert a floating point number to an integer.

Definition at line 108 of file physxUtilLib.cxx.

◆ int_floor()

int PhysxUtilLib::int_floor ( const float & f)

Convert a floating point number to an integer.

Definition at line 117 of file physxUtilLib.cxx.

◆ is_box_a_inside_box_b()

bool PhysxUtilLib::is_box_a_inside_box_b ( const PhysxBox & a,
const PhysxBox & b )

Test if box A is inside another box B.

Returns TRUE if box A is inside box B.

Parameters
[in]a

param [in] b

Definition at line 184 of file physxUtilLib.cxx.

◆ merge_spheres()

PhysxSphere PhysxUtilLib::merge_spheres ( const PhysxSphere & sphere0,
const PhysxSphere & sphere1 )

Compute an overall bounding sphere for a pair of spheres.

Parameters
[in]sphere0

param [in] sphere1

Definition at line 232 of file physxUtilLib.cxx.

◆ normal_to_tangents()

void PhysxUtilLib::normal_to_tangents ( const LVector3f & n,
LVector3f & t1,
LVector3f & t2 )

Get the tangent vectors associated with a normal.

Parameters
[in]n

param [out] t1

Parameters
[out]t2

Definition at line 245 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ point_obb_sqr_dist()

float PhysxUtilLib::point_obb_sqr_dist ( const LPoint3f & point,
const LPoint3f & center,
const LVector3f & extents,
const LMatrix3f & rot,
LPoint3f & params )

Point-vs-OBB distance computation.

Returns distance between a point and an OBB.

Parameters
[in]pointThe point
[in]centerOBB center
[in]extentsOBB extents
[in]rotOBB rotation
[out]paramsClosest point on the box, in box space

Definition at line 839 of file physxUtilLib.cxx.

References PhysxManager::mat3_to_nxMat33(), PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().

◆ ray_aabb_intersect()

bool PhysxUtilLib::ray_aabb_intersect ( const LPoint3f & min,
const LPoint3f & max,
const LPoint3f & origin,
const LVector3f & dir,
LPoint3f & coord )

Ray-AABB intersection test.

Also computes intersection point.

Parameters
[in]min

param [in] max

Parameters
[in]origin

param [in] dir

Parameters
[out]coord

Definition at line 543 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().

◆ ray_capsule_intersect()

unsigned int PhysxUtilLib::ray_capsule_intersect ( const LPoint3f & origin,
const LVector3f & dir,
const PhysxCapsule & capsule )

Ray-capsule intersection test.

Returns number of intersection points (0,1 or 2) along the ray.

Parameters
[in]origin

param [in] dir

Parameters
[in]capsule

Definition at line 632 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().

◆ ray_obb_intersect()

bool PhysxUtilLib::ray_obb_intersect ( const PhysxRay & ray,
const LPoint3f & center,
const LVector3f & extents,
const LMatrix3f & rot )

Boolean ray-OBB intersection test.

Based on separating axis theorem.

Parameters
[in]ray

param [in] center

Parameters
[in]extents

param [in] rot

Definition at line 612 of file physxUtilLib.cxx.

References PhysxManager::mat3_to_nxMat33(), and PhysxManager::point3_to_nxVec3().

◆ ray_plane_intersect()

bool PhysxUtilLib::ray_plane_intersect ( const PhysxRay & ray,
const PhysxPlane & plane,
LPoint3f & point_on_plane )

Ray-plane intersection test.

Parameters
[in]ray

param [in] plane

Parameters
[out]point_on_plane

Definition at line 468 of file physxUtilLib.cxx.

◆ ray_sphere_intersect()

bool PhysxUtilLib::ray_sphere_intersect ( const LPoint3f & origin,
const LVector3f & dir,
float length,
const LPoint3f & center,
float radius,
LPoint3f & hit_pos )

Ray-sphere intersection test.

Returns true if the ray intersects the sphere, and the impact point if needed.

Parameters
[in]origin

param [in] dir

Parameters
[in]length

param [in] center

Parameters
[in]radius

param [out] hit_pos

Definition at line 487 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().

◆ ray_tri_intersect()

bool PhysxUtilLib::ray_tri_intersect ( const LPoint3f & orig,
const LVector3f & dir,
const LPoint3f & vert0,
const LPoint3f & vert1,
const LPoint3f & vert2,
LVector3f & hit,
bool cull )

Ray-triangle intersection test.

Returns impact distance (t) as well as barycentric coordinates (u,v) of impact point. The test performs back face culling or not according to 'cull'.

Parameters
[in]orig

param [in] dir

Parameters
[in]vert0

param [in] vert1

Parameters
[in]vert2

param [out] hit, with coordinates (t,u,v)

Parameters
[in]cull

Definition at line 674 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().

◆ segment_aabb_intersect()

bool PhysxUtilLib::segment_aabb_intersect ( const LPoint3f & p0,
const LPoint3f & p1,
const LPoint3f & min,
const LPoint3f & max )

Boolean segment-AABB intersection test.

Based on separating axis theorem.

Parameters
[in]p0

param [in] p1

Parameters
[in]min

param [in] max

Definition at line 592 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3().

◆ segment_box_intersect()

bool PhysxUtilLib::segment_box_intersect ( const LPoint3f & p1,
const LPoint3f & p2,
const LPoint3f & bbox_min,
const LPoint3f & bbox_max,
LPoint3f & intercept )

Segment-AABB intersection test.

Also computes intersection point.

Parameters
[in]p1

param [in] p2

Parameters
[in]bbox_min

param [in] bbox_max

Parameters
[out]intercept

Definition at line 516 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3().

◆ segment_obb_intersect()

bool PhysxUtilLib::segment_obb_intersect ( const LPoint3f & p0,
const LPoint3f & p1,
const LPoint3f & center,
const LVector3f & extents,
const LMatrix3f & rot )

Boolean segment-OBB intersection test.

Based on separating axis theorem.

Parameters
[in]p0

param [in] p1

Parameters
[in]center

param [in] extents

Parameters
[in]rot

Definition at line 570 of file physxUtilLib.cxx.

References PhysxManager::mat3_to_nxMat33(), PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().

◆ set_fpu_exceptions()

void PhysxUtilLib::set_fpu_exceptions ( bool b)

Set FPU precision.

Definition at line 27 of file physxUtilLib.cxx.

◆ set_fpu_precision24()

void PhysxUtilLib::set_fpu_precision24 ( )

Set FPU precision.

Definition at line 36 of file physxUtilLib.cxx.

◆ set_fpu_precision53()

void PhysxUtilLib::set_fpu_precision53 ( )

Set FPU precision.

Definition at line 45 of file physxUtilLib.cxx.

◆ set_fpu_precision64()

void PhysxUtilLib::set_fpu_precision64 ( )

Set FPU precision.

Definition at line 54 of file physxUtilLib.cxx.

◆ set_fpu_rounding_chop()

void PhysxUtilLib::set_fpu_rounding_chop ( )

Set FPU precision.

Definition at line 63 of file physxUtilLib.cxx.

◆ set_fpu_rounding_down()

void PhysxUtilLib::set_fpu_rounding_down ( )

Set FPU rounding mode.

Definition at line 72 of file physxUtilLib.cxx.

◆ set_fpu_rounding_near()

void PhysxUtilLib::set_fpu_rounding_near ( )

Set FPU rounding mode.

Definition at line 81 of file physxUtilLib.cxx.

◆ set_fpu_rounding_up()

void PhysxUtilLib::set_fpu_rounding_up ( )

Set FPU rounding mode.

Definition at line 90 of file physxUtilLib.cxx.

◆ sweep_box_box()

bool PhysxUtilLib::sweep_box_box ( const PhysxBox & box0,
const PhysxBox & box1,
const LVector3f & dir,
float length,
LPoint3f & ip,
LVector3f & normal )

Box-vs-box sweep test.

Sweeps a box against a box, returns true if box hit the other box. Also returns contact information.

Parameters
[in]box0

param [in] box1

Parameters
[in]dirUnit-length sweep direction
[in]lengthLength of sweep
[out]ipImpact point
[out]normalNormal at impact point

Definition at line 812 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ sweep_box_capsule()

bool PhysxUtilLib::sweep_box_capsule ( const PhysxBox & box,
const PhysxCapsule & lss,
const LVector3f & dir,
float length,
LVector3f & normal )

Box-vs-capsule sweep test.

Sweeps a box against a capsule, returns true if box hit the capsule. Also returns contact information.

Parameters
[in]boxBox
[in]lssCapsule
[in]dirUnit-length sweep direction
[in]lengthLength of sweep
[out]normalNormal at impact point

Definition at line 708 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ sweep_box_sphere()

bool PhysxUtilLib::sweep_box_sphere ( const PhysxBox & box,
const PhysxSphere & sphere,
const LVector3f & dir,
float length,
LVector3f & normal )

Box-vs-sphere sweep test.

Sweeps a box against a sphere, returns true if box hit the sphere. Also returns contact information.

Parameters
[in]boxBox
[in]sphereSphere
[in]dirUnit-length sweep direction
[in]lengthLength of sweep
[out]normalNormal at impact point

Definition at line 733 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ sweep_capsule_capsule()

bool PhysxUtilLib::sweep_capsule_capsule ( const PhysxCapsule & lss0,
const PhysxCapsule & lss1,
const LVector3f & dir,
float length,
LPoint3f & ip,
LVector3f & normal )

Capsule-vs-capsule sweep test.

Sweeps a capsule against a capsule, returns true if capsule hit the other capsule. Also returns contact information.

Parameters
[in]lss0

param [in] lss1

Parameters
[in]dirUnit-length sweep direction
[in]lengthLength of sweep
[out]ipImpact point
[out]normalNormal at impact point

Definition at line 758 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ sweep_sphere_capsule()

bool PhysxUtilLib::sweep_sphere_capsule ( const PhysxSphere & sphere,
const PhysxCapsule & lss,
const LVector3f & dir,
float length,
LPoint3f & ip,
LVector3f & normal )

Sphere-vs-capsule sweep test.

Sweeps a sphere against a capsule, returns true if sphere hit the capsule. Also returns contact information.

Parameters
[in]sphere

param [in] lss

Parameters
[in]dirUnit-length sweep direction
[in]lengthLength of sweep
[out]ipImpact point
[out]normalNormal at impact point

Definition at line 785 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ swept_spheres_intersect()

bool PhysxUtilLib::swept_spheres_intersect ( const PhysxSphere & sphere0,
const LVector3f & velocity0,
const PhysxSphere & sphere1,
const LVector3f & velocity1 )

Sphere-sphere sweep test.

Returns true if spheres intersect during their linear motion along provided velocity vectors.

Parameters
[in]sphere0

param [in] velocity0

Parameters
[in]sphere1

param [in] velocity1

Definition at line 653 of file physxUtilLib.cxx.

References PhysxManager::vec3_to_nxVec3().

◆ tri_box_intersect()

bool PhysxUtilLib::tri_box_intersect ( const LPoint3f & vertex0,
const LPoint3f & vertex1,
const LPoint3f & vertex2,
const LPoint3f & center,
const LVector3f & extents )

Boolean intersection test between a triangle and a box.

Parameters
[in]vertex0

param [in] vertex1

Parameters
[in]vertex2

param [in] center

Parameters
[in]extents

Definition at line 446 of file physxUtilLib.cxx.

References PhysxManager::point3_to_nxVec3().

Member Data Documentation

◆ _ptr

NxUtilLib* PhysxUtilLib::_ptr

Definition at line 93 of file physxUtilLib.h.


The documentation for this class was generated from the following files: