[1378] | 1 | #ifndef NX_INTERSECTION_RAY_PLANE
|
---|
| 2 | #define NX_INTERSECTION_RAY_PLANE
|
---|
| 3 | /** \addtogroup physics
|
---|
| 4 | @{
|
---|
| 5 | */
|
---|
| 6 |
|
---|
| 7 | #include "Nxp.h"
|
---|
| 8 | #include "PhysXLoader.h"
|
---|
| 9 | class NxRay;
|
---|
| 10 | class NxPlane;
|
---|
| 11 |
|
---|
| 12 | /**
|
---|
| 13 | \brief Segment-plane intersection test.
|
---|
| 14 |
|
---|
| 15 | Returns distance between v1 and impact point, as well as impact point on plane.
|
---|
| 16 |
|
---|
| 17 | \warning #NxCreatePhysicsSDK() must be called before using this function.
|
---|
| 18 |
|
---|
| 19 | \param[in] v1 First vertex of segment. <b>Range:</b> position vector
|
---|
| 20 | \param[in] v2 Second vertex of segment. <b>Range:</b> position vector
|
---|
| 21 | \param[in] plane Plane to test against. <b>Range:</b> See #NxPlane
|
---|
| 22 | \param[out] dist Distance from v1 to impact point (so pointOnPlane=Normalize(v2-v1)*dist).
|
---|
| 23 | \param[out] pointOnPlane Imapct point on plane.
|
---|
| 24 |
|
---|
| 25 | <b>Platform:</b>
|
---|
| 26 | \li PC SW: Yes
|
---|
| 27 | \li PPU : Yes
|
---|
| 28 | \li PS3 : Yes
|
---|
| 29 | \li XB360: Yes
|
---|
| 30 | */
|
---|
| 31 | NX_INLINE void NX_CALL_CONV NxSegmentPlaneIntersect(const NxVec3& v1, const NxVec3& v2,
|
---|
| 32 | const NxPlane& plane, NxReal& dist, NxVec3& pointOnPlane)
|
---|
| 33 | {
|
---|
| 34 | return NxGetUtilLib()->NxSegmentPlaneIntersect(v1,v2,plane,dist,pointOnPlane);
|
---|
| 35 | }
|
---|
| 36 |
|
---|
| 37 | /**
|
---|
| 38 | \brief Ray-plane intersection test.
|
---|
| 39 |
|
---|
| 40 | Returns distance between ray origin and impact point, as well as impact point on plane.
|
---|
| 41 |
|
---|
| 42 | \warning #NxCreatePhysicsSDK() must be called before using this function.
|
---|
| 43 |
|
---|
| 44 | \param[in] ray Ray to test against plane. <b>Range:</b> See #NxRay
|
---|
| 45 | \param[in] plane Plane to test. <b>Range:</b> See #NxPlane
|
---|
| 46 | \param[out] dist Distance along ray to impact point (so pointOnPlane=Normalize(v2-v1)*dist).
|
---|
| 47 | \param[out] pointOnPlane Impact point on the plane.
|
---|
| 48 |
|
---|
| 49 | \return True on intersection.
|
---|
| 50 |
|
---|
| 51 | <b>Platform:</b>
|
---|
| 52 | \li PC SW: Yes
|
---|
| 53 | \li PPU : Yes
|
---|
| 54 | \li PS3 : Yes
|
---|
| 55 | \li XB360: Yes
|
---|
| 56 | */
|
---|
| 57 | NX_INLINE bool NX_CALL_CONV NxRayPlaneIntersect(const NxRay& ray, const NxPlane& plane,
|
---|
| 58 | NxReal& dist, NxVec3& pointOnPlane)
|
---|
| 59 | {
|
---|
| 60 | return NxGetUtilLib()->NxRayPlaneIntersect(ray,plane,dist,pointOnPlane);
|
---|
| 61 | }
|
---|
| 62 |
|
---|
| 63 | /** @} */
|
---|
| 64 | #endif
|
---|
| 65 |
|
---|
| 66 |
|
---|
| 67 | //AGCOPYRIGHTBEGIN
|
---|
| 68 | ///////////////////////////////////////////////////////////////////////////
|
---|
| 69 | // Copyright © 2005 AGEIA Technologies.
|
---|
| 70 | // All rights reserved. www.ageia.com
|
---|
| 71 | ///////////////////////////////////////////////////////////////////////////
|
---|
| 72 | //AGCOPYRIGHTEND
|
---|
| 73 |
|
---|