Panda3D
|
Public Member Functions | |
bool | box_box_intersect (const LVector3f &extents0, const LPoint3f ¢er0, const LMatrix3f &rotation0, const LVector3f &extents1, const LPoint3f ¢er1, 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 ¢er, const LVector3f &extents, const LMatrix3f &rot, LPoint3f ¶ms) |
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 ¢er, 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 ¢er, 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 ¢er, 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 ¢er, const LVector3f &extents) |
Boolean intersection test between a triangle and a box. | |
Public Attributes | |
NxUtilLib * | _ptr |
Definition at line 33 of file physxUtilLib.h.
|
inline |
Definition at line 17 of file physxUtilLib.I.
|
inline |
Definition at line 26 of file physxUtilLib.I.
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.
[in] | extents0 |
param [in] center0
[in] | rotation0 |
param [in] extents1
[in] | center1 |
param [in] rotation1
[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().
bool PhysxUtilLib::box_contains_point | ( | const PhysxBox & | box, |
const LPoint3f & | p ) |
Test if an oriented box contains a point.
[in] | box |
param [in] p
Definition at line 128 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3().
PhysxBox PhysxUtilLib::compute_box_around_capsule | ( | const PhysxCapsule & | capsule | ) |
Compute a box which encloses a capsule.
[in] | capsule |
Definition at line 195 of file physxUtilLib.cxx.
float PhysxUtilLib::compute_box_density | ( | const LVector3f & | extents, |
float | mass ) |
Computes density of a homogeneous box according to box mass.
[in] | radius |
param [in] mass
Definition at line 315 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
LVector3f PhysxUtilLib::compute_box_inertia_tensor | ( | float | mass, |
float | xlength, | ||
float | ylength, | ||
float | zlength ) |
Computes diagonalized inertia tensor for a box.
[in] | mass |
param [in] xlength
[in] | ylength |
param [in] zlength
Definition at line 393 of file physxUtilLib.cxx.
References PhysxManager::nxVec3_to_vec3().
float PhysxUtilLib::compute_box_mass | ( | const LVector3f & | extents, |
float | density ) |
Computes mass of a homogeneous box according to box density.
[in] | radius |
param [in] density
Definition at line 304 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
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).
[in] | box |
param [in] edge_index
Definition at line 154 of file physxUtilLib.cxx.
References PhysxManager::nxVec3_to_vec3().
PhysxCapsule PhysxUtilLib::compute_capsule_around_box | ( | const PhysxBox & | box | ) |
Compute a capsule which encloses a box.
[in] | box |
Definition at line 170 of file physxUtilLib.cxx.
float PhysxUtilLib::compute_cone_density | ( | float | radius, |
float | length, | ||
float | mass ) |
Computes density of a homogeneous cone according to cone mass.
[in] | radius |
param [in] mass
Definition at line 381 of file physxUtilLib.cxx.
float PhysxUtilLib::compute_cone_mass | ( | float | radius, |
float | length, | ||
float | density ) |
Computes mass of a homogeneous cone according to cone density.
[in] | radius |
param [in] density
Definition at line 370 of file physxUtilLib.cxx.
float PhysxUtilLib::compute_cylinder_density | ( | float | radius, |
float | length, | ||
float | mass ) |
Computes density of a homogeneous cylinder according to cylinder mass.
[in] | radius |
param [in] mass
Definition at line 359 of file physxUtilLib.cxx.
float PhysxUtilLib::compute_cylinder_mass | ( | float | radius, |
float | length, | ||
float | density ) |
Computes mass of a homogeneous cylinder according to cylinder density.
[in] | radius |
param [in] density
Definition at line 348 of file physxUtilLib.cxx.
float PhysxUtilLib::compute_distance_squared | ( | const PhysxRay & | ray, |
const LPoint3f & | point ) |
Compute the distance squared from a point to a ray.
[in] | ray |
param [in] point
Definition at line 208 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3().
float PhysxUtilLib::compute_ellipsoid_density | ( | const LVector3f & | extents, |
float | mass ) |
Computes density of a homogeneous ellipsoid according to ellipsoid mass.
[in] | radius |
param [in] mass
Definition at line 337 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
float PhysxUtilLib::compute_ellipsoid_mass | ( | const LVector3f & | extents, |
float | density ) |
Computes mass of a homogeneous ellipsoid according to ellipsoid density.
[in] | radius |
param [in] density
Definition at line 326 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
float PhysxUtilLib::compute_sphere_density | ( | float | radius, |
float | mass ) |
Computes density of a homogeneous sphere according to sphere mass.
[in] | radius |
param [in] mass
Definition at line 293 of file physxUtilLib.cxx.
LVector3f PhysxUtilLib::compute_sphere_inertia_tensor | ( | float | mass, |
float | radius, | ||
bool | hollow ) |
Computes diagonalized inertia tensor for a sphere.
[in] | mass |
param [in] radius
[in] | hollow |
Definition at line 406 of file physxUtilLib.cxx.
References PhysxManager::nxVec3_to_vec3().
float PhysxUtilLib::compute_sphere_mass | ( | float | radius, |
float | density ) |
Computes mass of a homogeneous sphere according to sphere density.
[in] | radius |
param [in] density
Definition at line 282 of file physxUtilLib.cxx.
float PhysxUtilLib::compute_square_distance | ( | const PhysxSegment & | seg, |
const LPoint3f & | point ) |
Compute the distance squared from a point to a line segment.
[in] | seg |
param [in] point
Definition at line 220 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3().
PhysxBox PhysxUtilLib::create_box | ( | const PhysxBounds3 & | aabb, |
const LMatrix4f & | mat ) |
Create an oriented box from an axis aligned box and a transformation.
[in] | aabb |
param [in] mat
Definition at line 139 of file physxUtilLib.cxx.
References PhysxManager::mat4_to_nxMat34().
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).
[in] | x |
param [in] b
Definition at line 267 of file physxUtilLib.cxx.
References PhysxManager::nxMat33_to_mat3(), and PhysxManager::vec3_to_nxVec3().
int PhysxUtilLib::int_ceil | ( | const float & | f | ) |
Convert a floating point number to an integer.
Definition at line 99 of file physxUtilLib.cxx.
int PhysxUtilLib::int_chop | ( | const float & | f | ) |
Convert a floating point number to an integer.
Definition at line 108 of file physxUtilLib.cxx.
int PhysxUtilLib::int_floor | ( | const float & | f | ) |
Convert a floating point number to an integer.
Definition at line 117 of file physxUtilLib.cxx.
Test if box A is inside another box B.
Returns TRUE if box A is inside box B.
[in] | a |
param [in] b
Definition at line 184 of file physxUtilLib.cxx.
PhysxSphere PhysxUtilLib::merge_spheres | ( | const PhysxSphere & | sphere0, |
const PhysxSphere & | sphere1 ) |
Compute an overall bounding sphere for a pair of spheres.
[in] | sphere0 |
param [in] sphere1
Definition at line 232 of file physxUtilLib.cxx.
void PhysxUtilLib::normal_to_tangents | ( | const LVector3f & | n, |
LVector3f & | t1, | ||
LVector3f & | t2 ) |
Get the tangent vectors associated with a normal.
[in] | n |
param [out] t1
[out] | t2 |
Definition at line 245 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
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.
[in] | point | The point |
[in] | center | OBB center |
[in] | extents | OBB extents |
[in] | rot | OBB rotation |
[out] | params | Closest 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().
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.
[in] | min |
param [in] max
[in] | origin |
param [in] dir
[out] | coord |
Definition at line 543 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().
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.
[in] | origin |
param [in] dir
[in] | capsule |
Definition at line 632 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().
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.
[in] | ray |
param [in] center
[in] | extents |
param [in] rot
Definition at line 612 of file physxUtilLib.cxx.
References PhysxManager::mat3_to_nxMat33(), and PhysxManager::point3_to_nxVec3().
bool PhysxUtilLib::ray_plane_intersect | ( | const PhysxRay & | ray, |
const PhysxPlane & | plane, | ||
LPoint3f & | point_on_plane ) |
Ray-plane intersection test.
[in] | ray |
param [in] plane
[out] | point_on_plane |
Definition at line 468 of file physxUtilLib.cxx.
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.
[in] | origin |
param [in] dir
[in] | length |
param [in] center
[in] | radius |
param [out] hit_pos
Definition at line 487 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().
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'.
[in] | orig |
param [in] dir
[in] | vert0 |
param [in] vert1
[in] | vert2 |
param [out] hit, with coordinates (t,u,v)
[in] | cull |
Definition at line 674 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().
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.
[in] | p0 |
param [in] p1
[in] | min |
param [in] max
Definition at line 592 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3().
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.
[in] | p1 |
param [in] p2
[in] | bbox_min |
param [in] bbox_max
[out] | intercept |
Definition at line 516 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3().
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.
[in] | p0 |
param [in] p1
[in] | center |
param [in] extents
[in] | rot |
Definition at line 570 of file physxUtilLib.cxx.
References PhysxManager::mat3_to_nxMat33(), PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().
void PhysxUtilLib::set_fpu_exceptions | ( | bool | b | ) |
Set FPU precision.
Definition at line 27 of file physxUtilLib.cxx.
void PhysxUtilLib::set_fpu_precision24 | ( | ) |
Set FPU precision.
Definition at line 36 of file physxUtilLib.cxx.
void PhysxUtilLib::set_fpu_precision53 | ( | ) |
Set FPU precision.
Definition at line 45 of file physxUtilLib.cxx.
void PhysxUtilLib::set_fpu_precision64 | ( | ) |
Set FPU precision.
Definition at line 54 of file physxUtilLib.cxx.
void PhysxUtilLib::set_fpu_rounding_chop | ( | ) |
Set FPU precision.
Definition at line 63 of file physxUtilLib.cxx.
void PhysxUtilLib::set_fpu_rounding_down | ( | ) |
Set FPU rounding mode.
Definition at line 72 of file physxUtilLib.cxx.
void PhysxUtilLib::set_fpu_rounding_near | ( | ) |
Set FPU rounding mode.
Definition at line 81 of file physxUtilLib.cxx.
void PhysxUtilLib::set_fpu_rounding_up | ( | ) |
Set FPU rounding mode.
Definition at line 90 of file physxUtilLib.cxx.
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.
[in] | box0 |
param [in] box1
[in] | dir | Unit-length sweep direction |
[in] | length | Length of sweep |
[out] | ip | Impact point |
[out] | normal | Normal at impact point |
Definition at line 812 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
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.
[in] | box | Box |
[in] | lss | Capsule |
[in] | dir | Unit-length sweep direction |
[in] | length | Length of sweep |
[out] | normal | Normal at impact point |
Definition at line 708 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
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.
[in] | box | Box |
[in] | sphere | Sphere |
[in] | dir | Unit-length sweep direction |
[in] | length | Length of sweep |
[out] | normal | Normal at impact point |
Definition at line 733 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
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.
[in] | lss0 |
param [in] lss1
[in] | dir | Unit-length sweep direction |
[in] | length | Length of sweep |
[out] | ip | Impact point |
[out] | normal | Normal at impact point |
Definition at line 758 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
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.
[in] | sphere |
param [in] lss
[in] | dir | Unit-length sweep direction |
[in] | length | Length of sweep |
[out] | ip | Impact point |
[out] | normal | Normal at impact point |
Definition at line 785 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
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.
[in] | sphere0 |
param [in] velocity0
[in] | sphere1 |
param [in] velocity1
Definition at line 653 of file physxUtilLib.cxx.
References PhysxManager::vec3_to_nxVec3().
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.
[in] | vertex0 |
param [in] vertex1
[in] | vertex2 |
param [in] center
[in] | extents |
Definition at line 446 of file physxUtilLib.cxx.
References PhysxManager::point3_to_nxVec3().
NxUtilLib* PhysxUtilLib::_ptr |
Definition at line 93 of file physxUtilLib.h.