diff options
| author | git perforce import user <a@b> | 2016-10-25 12:29:14 -0600 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees> | 2016-10-25 18:56:37 -0500 |
| commit | 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch) | |
| tree | fa6485c169e50d7415a651bf838f5bcd0fd3bfbd /PhysX_3.4/Documentation/PhysXAPI/files/PxBounds3_8h-source.html | |
| download | physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip | |
Initial commit:
PhysX 3.4.0 Update @ 21294896
APEX 1.4.0 Update @ 21275617
[CL 21300167]
Diffstat (limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxBounds3_8h-source.html')
| -rw-r--r-- | PhysX_3.4/Documentation/PhysXAPI/files/PxBounds3_8h-source.html | 357 |
1 files changed, 357 insertions, 0 deletions
diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxBounds3_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxBounds3_8h-source.html new file mode 100644 index 00000000..2f8ef507 --- /dev/null +++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxBounds3_8h-source.html @@ -0,0 +1,357 @@ +<html> + <head> + <title>NVIDIA(R) PhysX(R) SDK 3.4 API Reference: PxBounds3.h Source File</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <LINK HREF="NVIDIA.css" REL="stylesheet" TYPE="text/css"> + </head> + + <body bgcolor="#FFFFFF"> + <div id="header"> + <hr class="first"> + <img alt="" src="images/PhysXlogo.png" align="middle"> <br> + <center> + <a class="qindex" href="main.html">Main Page</a> + <a class="qindex" href="hierarchy.html">Class Hierarchy</a> + <a class="qindex" href="annotated.html">Compound List</a> + <a class="qindex" href="functions.html">Compound Members</a> + </center> + <hr class="second"> + </div> +<!-- Generated by Doxygen 1.5.8 --> +<h1>PxBounds3.h</h1><a href="PxBounds3_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span> +<a name="l00002"></a>00002 <span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span> +<a name="l00003"></a>00003 <span class="comment">//</span> +<a name="l00004"></a>00004 <span class="comment">// Notice</span> +<a name="l00005"></a>00005 <span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span> +<a name="l00006"></a>00006 <span class="comment">// proprietary rights in and to this software and related documentation and</span> +<a name="l00007"></a>00007 <span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span> +<a name="l00008"></a>00008 <span class="comment">// distribution of this software and related documentation without an express</span> +<a name="l00009"></a>00009 <span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span> +<a name="l00010"></a>00010 <span class="comment">//</span> +<a name="l00011"></a>00011 <span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES</span> +<a name="l00012"></a>00012 <span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span> +<a name="l00013"></a>00013 <span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span> +<a name="l00014"></a>00014 <span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span> +<a name="l00015"></a>00015 <span class="comment">//</span> +<a name="l00016"></a>00016 <span class="comment">// Information and code furnished is believed to be accurate and reliable.</span> +<a name="l00017"></a>00017 <span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span> +<a name="l00018"></a>00018 <span class="comment">// information or for any infringement of patents or other rights of third parties that may</span> +<a name="l00019"></a>00019 <span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span> +<a name="l00020"></a>00020 <span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span> +<a name="l00021"></a>00021 <span class="comment">// This code supersedes and replaces all information previously supplied.</span> +<a name="l00022"></a>00022 <span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span> +<a name="l00023"></a>00023 <span class="comment">// components in life support devices or systems without express written approval of</span> +<a name="l00024"></a>00024 <span class="comment">// NVIDIA Corporation.</span> +<a name="l00025"></a>00025 <span class="comment">//</span> +<a name="l00026"></a>00026 <span class="comment">// Copyright (c) 2008-2016 NVIDIA Corporation. All rights reserved.</span> +<a name="l00027"></a>00027 <span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span> +<a name="l00028"></a>00028 <span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.</span> +<a name="l00029"></a>00029 +<a name="l00030"></a>00030 <span class="preprocessor">#ifndef PXFOUNDATION_PXBOUNDS3_H</span> +<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define PXFOUNDATION_PXBOUNDS3_H</span> +<a name="l00032"></a>00032 <span class="preprocessor"></span> +<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="PxTransform_8h.html">foundation/PxTransform.h</a>"</span> +<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="PxMat33_8h.html">foundation/PxMat33.h</a>"</span> +<a name="l00039"></a>00039 +<a name="l00040"></a>00040 <span class="preprocessor">#if !PX_DOXYGEN</span> +<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="keyword">namespace </span>physx +<a name="l00042"></a>00042 { +<a name="l00043"></a>00043 <span class="preprocessor">#endif</span> +<a name="l00044"></a>00044 <span class="preprocessor"></span> +<a name="l00045"></a>00045 <span class="comment">// maximum extents defined such that floating point exceptions are avoided for standard use cases</span> +<a name="l00046"></a><a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">00046</a> <span class="preprocessor">#define PX_MAX_BOUNDS_EXTENTS (PX_MAX_REAL * 0.25f)</span> +<a name="l00047"></a>00047 <span class="preprocessor"></span> +<a name="l00058"></a><a class="code" href="classPxBounds3.html">00058</a> <span class="keyword">class </span><a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> +<a name="l00059"></a>00059 { +<a name="l00060"></a>00060 <span class="keyword">public</span>: +<a name="l00065"></a><a class="code" href="classPxBounds3.html#127d0cb9a4212d0ab70d086e28f0c3f7">00065</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>() +<a name="l00066"></a>00066 { +<a name="l00067"></a>00067 } +<a name="l00068"></a>00068 +<a name="l00072"></a>00072 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& minimum, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& maximum); +<a name="l00073"></a>00073 +<a name="l00077"></a>00077 <span class="keyword">static</span> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> empty(); +<a name="l00078"></a>00078 +<a name="l00084"></a>00084 <span class="keyword">static</span> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> boundsOfPoints(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& v0, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& v1); +<a name="l00085"></a>00085 +<a name="l00091"></a>00091 <span class="keyword">static</span> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> centerExtents(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& center, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& extent); +<a name="l00092"></a>00092 +<a name="l00096"></a>00096 <span class="keyword">static</span> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> +<a name="l00097"></a>00097 basisExtent(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& center, <span class="keyword">const</span> <a class="code" href="classPxMat33.html" title="3x3 matrix class">PxMat33</a>& basis, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& extent); +<a name="l00098"></a>00098 +<a name="l00102"></a>00102 <span class="keyword">static</span> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> poseExtent(<span class="keyword">const</span> <a class="code" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector">PxTransform</a>& pose, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& extent); +<a name="l00103"></a>00103 +<a name="l00112"></a>00112 <span class="keyword">static</span> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> transformSafe(<span class="keyword">const</span> <a class="code" href="classPxMat33.html" title="3x3 matrix class">PxMat33</a>& matrix, <span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& bounds); +<a name="l00113"></a>00113 +<a name="l00122"></a>00122 <span class="keyword">static</span> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> transformFast(<span class="keyword">const</span> <a class="code" href="classPxMat33.html" title="3x3 matrix class">PxMat33</a>& matrix, <span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& bounds); +<a name="l00123"></a>00123 +<a name="l00132"></a>00132 <span class="keyword">static</span> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> transformSafe(<span class="keyword">const</span> <a class="code" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector">PxTransform</a>& transform, <span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& bounds); +<a name="l00133"></a>00133 +<a name="l00142"></a>00142 <span class="keyword">static</span> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> transformFast(<span class="keyword">const</span> <a class="code" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector">PxTransform</a>& transform, <span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& bounds); +<a name="l00143"></a>00143 +<a name="l00147"></a>00147 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> setEmpty(); +<a name="l00148"></a>00148 +<a name="l00152"></a>00152 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> setMaximal(); +<a name="l00153"></a>00153 +<a name="l00158"></a>00158 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> include(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& v); +<a name="l00159"></a>00159 +<a name="l00164"></a>00164 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> include(<span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& b); +<a name="l00165"></a>00165 +<a name="l00166"></a>00166 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> isEmpty() <span class="keyword">const</span>; +<a name="l00167"></a>00167 +<a name="l00172"></a>00172 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> intersects(<span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& b) <span class="keyword">const</span>; +<a name="l00173"></a>00173 +<a name="l00179"></a>00179 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> intersects1D(<span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& a, uint32_t axis) <span class="keyword">const</span>; +<a name="l00180"></a>00180 +<a name="l00185"></a>00185 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> contains(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& v) <span class="keyword">const</span>; +<a name="l00186"></a>00186 +<a name="l00191"></a>00191 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> isInside(<span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& box) <span class="keyword">const</span>; +<a name="l00192"></a>00192 +<a name="l00196"></a>00196 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> getCenter() <span class="keyword">const</span>; +<a name="l00197"></a>00197 +<a name="l00201"></a>00201 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">float</span> getCenter(uint32_t axis) <span class="keyword">const</span>; +<a name="l00202"></a>00202 +<a name="l00206"></a>00206 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">float</span> getExtents(uint32_t axis) <span class="keyword">const</span>; +<a name="l00207"></a>00207 +<a name="l00211"></a>00211 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> getDimensions() <span class="keyword">const</span>; +<a name="l00212"></a>00212 +<a name="l00216"></a>00216 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> getExtents() <span class="keyword">const</span>; +<a name="l00217"></a>00217 +<a name="l00225"></a>00225 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> scaleSafe(<span class="keywordtype">float</span> scale); +<a name="l00226"></a>00226 +<a name="l00234"></a>00234 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> scaleFast(<span class="keywordtype">float</span> scale); +<a name="l00235"></a>00235 +<a name="l00241"></a>00241 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> fattenSafe(<span class="keywordtype">float</span> distance); +<a name="l00242"></a>00242 +<a name="l00248"></a>00248 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> fattenFast(<span class="keywordtype">float</span> distance); +<a name="l00249"></a>00249 +<a name="l00253"></a>00253 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> isFinite() <span class="keyword">const</span>; +<a name="l00254"></a>00254 +<a name="l00258"></a>00258 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> isValid() <span class="keyword">const</span>; +<a name="l00259"></a>00259 +<a name="l00260"></a><a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">00260</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> minimum, maximum; +<a name="l00261"></a>00261 }; +<a name="l00262"></a>00262 +<a name="l00263"></a><a class="code" href="group__foundation.html#gcd512dc7f334b61b26c6ea08fd64cd8b">00263</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxBounds3.html#127d0cb9a4212d0ab70d086e28f0c3f7" title="Default constructor, not performing any initialization for performance reason.">PxBounds3::PxBounds3</a>(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& minimum_, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& maximum_) +<a name="l00264"></a>00264 : minimum(minimum_), maximum(maximum_) +<a name="l00265"></a>00265 { +<a name="l00266"></a>00266 } +<a name="l00267"></a>00267 +<a name="l00268"></a><a class="code" href="group__foundation.html#g7ffc101412f847b7a5d40d9e0c7a0028">00268</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> <a class="code" href="group__foundation.html#g7ffc101412f847b7a5d40d9e0c7a0028" title="Return empty bounds.">PxBounds3::empty</a>() +<a name="l00269"></a>00269 { +<a name="l00270"></a>00270 <span class="keywordflow">return</span> <a class="code" href="classPxBounds3.html#127d0cb9a4212d0ab70d086e28f0c3f7" title="Default constructor, not performing any initialization for performance reason.">PxBounds3</a>(<a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>(<a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>), <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>(-<a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>)); +<a name="l00271"></a>00271 } +<a name="l00272"></a>00272 +<a name="l00273"></a><a class="code" href="group__foundation.html#gbe53fa98b77ef063eaee029d5cd8b161">00273</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="group__foundation.html#gbe53fa98b77ef063eaee029d5cd8b161">PxBounds3::isFinite</a>()<span class="keyword"> const</span> +<a name="l00274"></a>00274 <span class="keyword"></span>{ +<a name="l00275"></a>00275 <span class="keywordflow">return</span> <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#65b6f42ac7654a7d79590a2f1d00e160" title="returns true if all 3 elems of the vector are finite (not NAN or INF, etc.)">isFinite</a>() && <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#65b6f42ac7654a7d79590a2f1d00e160" title="returns true if all 3 elems of the vector are finite (not NAN or INF, etc.)">isFinite</a>(); +<a name="l00276"></a>00276 } +<a name="l00277"></a>00277 +<a name="l00278"></a><a class="code" href="group__foundation.html#g0d68edb1f62d21d1570dee43f2d4ebaa">00278</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> <a class="code" href="group__foundation.html#g0d68edb1f62d21d1570dee43f2d4ebaa" title="returns the AABB containing v0 and v1.">PxBounds3::boundsOfPoints</a>(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& v0, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& v1) +<a name="l00279"></a>00279 { +<a name="l00280"></a>00280 <span class="keywordflow">return</span> <a class="code" href="classPxBounds3.html#127d0cb9a4212d0ab70d086e28f0c3f7" title="Default constructor, not performing any initialization for performance reason.">PxBounds3</a>(v0.<a class="code" href="classPxVec3.html#0fe31e31784b03510dd5eb94b4322e29" title="element-wise minimum">minimum</a>(v1), v0.<a class="code" href="classPxVec3.html#c0788c2bb97bfaa65106fea23cf55a83" title="element-wise maximum">maximum</a>(v1)); +<a name="l00281"></a>00281 } +<a name="l00282"></a>00282 +<a name="l00283"></a><a class="code" href="group__foundation.html#g2d783f32606b1458efd0fe0ee50c2b03">00283</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> <a class="code" href="group__foundation.html#g2d783f32606b1458efd0fe0ee50c2b03" title="returns the AABB from center and extents vectors.">PxBounds3::centerExtents</a>(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& center, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& extent) +<a name="l00284"></a>00284 { +<a name="l00285"></a>00285 <span class="keywordflow">return</span> <a class="code" href="classPxBounds3.html#127d0cb9a4212d0ab70d086e28f0c3f7" title="Default constructor, not performing any initialization for performance reason.">PxBounds3</a>(center - extent, center + extent); +<a name="l00286"></a>00286 } +<a name="l00287"></a>00287 +<a name="l00288"></a>00288 <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> +<a name="l00289"></a><a class="code" href="group__foundation.html#g3c2a546bd10918cd8cf26d27200081f1">00289</a> <a class="code" href="group__foundation.html#g3c2a546bd10918cd8cf26d27200081f1" title="Construct from center, extent, and (not necessarily orthogonal) basis.">PxBounds3::basisExtent</a>(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& center, <span class="keyword">const</span> <a class="code" href="classPxMat33.html" title="3x3 matrix class">PxMat33</a>& basis, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& extent) +<a name="l00290"></a>00290 { +<a name="l00291"></a>00291 <span class="comment">// extended basis vectors</span> +<a name="l00292"></a>00292 <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> c0 = basis.<a class="code" href="classPxMat33.html#89d12d4e50ffc5ef8e480bdd3dadb78a">column0</a> * extent.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a>; +<a name="l00293"></a>00293 <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> c1 = basis.<a class="code" href="classPxMat33.html#62f190479e12e7b9ec5cf831b23c95e9">column1</a> * extent.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a>; +<a name="l00294"></a>00294 <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> c2 = basis.<a class="code" href="classPxMat33.html#9af2a3d4f9cca979c3e46a6406de6957">column2</a> * extent.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a>; +<a name="l00295"></a>00295 +<a name="l00296"></a>00296 <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> w; +<a name="l00297"></a>00297 <span class="comment">// find combination of base vectors that produces max. distance for each component = sum of abs()</span> +<a name="l00298"></a>00298 w.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> = <a class="code" href="group__foundation.html#gf72e1dce9e874da7b92cbc0ea5e4e30d" title="abs returns the absolute value of its argument.">PxAbs</a>(c0.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a>) + <a class="code" href="group__foundation.html#gf72e1dce9e874da7b92cbc0ea5e4e30d" title="abs returns the absolute value of its argument.">PxAbs</a>(c1.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a>) + <a class="code" href="group__foundation.html#gf72e1dce9e874da7b92cbc0ea5e4e30d" title="abs returns the absolute value of its argument.">PxAbs</a>(c2.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a>); +<a name="l00299"></a>00299 w.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> = <a class="code" href="group__foundation.html#gf72e1dce9e874da7b92cbc0ea5e4e30d" title="abs returns the absolute value of its argument.">PxAbs</a>(c0.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a>) + <a class="code" href="group__foundation.html#gf72e1dce9e874da7b92cbc0ea5e4e30d" title="abs returns the absolute value of its argument.">PxAbs</a>(c1.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a>) + <a class="code" href="group__foundation.html#gf72e1dce9e874da7b92cbc0ea5e4e30d" title="abs returns the absolute value of its argument.">PxAbs</a>(c2.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a>); +<a name="l00300"></a>00300 w.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> = <a class="code" href="group__foundation.html#gf72e1dce9e874da7b92cbc0ea5e4e30d" title="abs returns the absolute value of its argument.">PxAbs</a>(c0.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a>) + <a class="code" href="group__foundation.html#gf72e1dce9e874da7b92cbc0ea5e4e30d" title="abs returns the absolute value of its argument.">PxAbs</a>(c1.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a>) + <a class="code" href="group__foundation.html#gf72e1dce9e874da7b92cbc0ea5e4e30d" title="abs returns the absolute value of its argument.">PxAbs</a>(c2.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a>); +<a name="l00301"></a>00301 +<a name="l00302"></a>00302 <span class="keywordflow">return</span> <a class="code" href="classPxBounds3.html#127d0cb9a4212d0ab70d086e28f0c3f7" title="Default constructor, not performing any initialization for performance reason.">PxBounds3</a>(center - w, center + w); +<a name="l00303"></a>00303 } +<a name="l00304"></a>00304 +<a name="l00305"></a><a class="code" href="group__foundation.html#g7141493e2ce93a7c29947147874eb372">00305</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> <a class="code" href="group__foundation.html#g7141493e2ce93a7c29947147874eb372" title="Construct from pose and extent.">PxBounds3::poseExtent</a>(<span class="keyword">const</span> <a class="code" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector">PxTransform</a>& pose, <span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& extent) +<a name="l00306"></a>00306 { +<a name="l00307"></a>00307 <span class="keywordflow">return</span> <a class="code" href="group__foundation.html#g3c2a546bd10918cd8cf26d27200081f1" title="Construct from center, extent, and (not necessarily orthogonal) basis.">basisExtent</a>(pose.<a class="code" href="classPxTransform.html#b1a41ac5f4df8e07ba590fa0a8a6e786">p</a>, <a class="code" href="classPxMat33.html" title="3x3 matrix class">PxMat33</a>(pose.<a class="code" href="classPxTransform.html#adb9d2118765e188f212cf3c0e0018cb">q</a>), extent); +<a name="l00308"></a>00308 } +<a name="l00309"></a>00309 +<a name="l00310"></a><a class="code" href="group__foundation.html#g9e31f59de4ce4f4ad1f1e51c401ac5fd">00310</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#g9e31f59de4ce4f4ad1f1e51c401ac5fd" title="Sets empty to true.">PxBounds3::setEmpty</a>() +<a name="l00311"></a>00311 { +<a name="l00312"></a>00312 <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a> = <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>(<a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>); +<a name="l00313"></a>00313 <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a> = <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>(-<a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>); +<a name="l00314"></a>00314 } +<a name="l00315"></a>00315 +<a name="l00316"></a><a class="code" href="group__foundation.html#g125e6c8496174f5aee6b53c2ecd9ba75">00316</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#g125e6c8496174f5aee6b53c2ecd9ba75" title="Sets the bounds to maximum size [-PX_MAX_BOUNDS_EXTENTS, PX_MAX_BOUNDS_EXTENTS].">PxBounds3::setMaximal</a>() +<a name="l00317"></a>00317 { +<a name="l00318"></a>00318 <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a> = <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>(-<a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>); +<a name="l00319"></a>00319 <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a> = <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>(<a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>); +<a name="l00320"></a>00320 } +<a name="l00321"></a>00321 +<a name="l00322"></a><a class="code" href="group__foundation.html#g32315930deaa61e428aa2e0cda454189">00322</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#g32315930deaa61e428aa2e0cda454189" title="expands the volume to include v">PxBounds3::include</a>(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& v) +<a name="l00323"></a>00323 { +<a name="l00324"></a>00324 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00325"></a>00325 <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a> = <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#0fe31e31784b03510dd5eb94b4322e29" title="element-wise minimum">minimum</a>(v); +<a name="l00326"></a>00326 <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a> = <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#c0788c2bb97bfaa65106fea23cf55a83" title="element-wise maximum">maximum</a>(v); +<a name="l00327"></a>00327 } +<a name="l00328"></a>00328 +<a name="l00329"></a><a class="code" href="group__foundation.html#g7e2f610707f2d4fd2a7f65c1af4fe022">00329</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#g32315930deaa61e428aa2e0cda454189" title="expands the volume to include v">PxBounds3::include</a>(<span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& b) +<a name="l00330"></a>00330 { +<a name="l00331"></a>00331 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00332"></a>00332 <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a> = <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#0fe31e31784b03510dd5eb94b4322e29" title="element-wise minimum">minimum</a>(b.<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>); +<a name="l00333"></a>00333 <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a> = <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#c0788c2bb97bfaa65106fea23cf55a83" title="element-wise maximum">maximum</a>(b.<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>); +<a name="l00334"></a>00334 } +<a name="l00335"></a>00335 +<a name="l00336"></a><a class="code" href="group__foundation.html#g33b5e4d84105c56c40c9d49f1764526b">00336</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="group__foundation.html#g33b5e4d84105c56c40c9d49f1764526b">PxBounds3::isEmpty</a>()<span class="keyword"> const</span> +<a name="l00337"></a>00337 <span class="keyword"></span>{ +<a name="l00338"></a>00338 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00339"></a>00339 <span class="keywordflow">return</span> <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> > <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a>; +<a name="l00340"></a>00340 } +<a name="l00341"></a>00341 +<a name="l00342"></a><a class="code" href="group__foundation.html#g90c7e3d91c5af670b5564f3367eca862">00342</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="group__foundation.html#g90c7e3d91c5af670b5564f3367eca862" title="indicates whether the intersection of this and b is empty or not.">PxBounds3::intersects</a>(<span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& b)<span class="keyword"> const</span> +<a name="l00343"></a>00343 <span class="keyword"></span>{ +<a name="l00344"></a>00344 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>() && b.<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00345"></a>00345 <span class="keywordflow">return</span> !(b.<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> > <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> || <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> > b.<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> || b.<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> > <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> || <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> > b.<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> || +<a name="l00346"></a>00346 b.<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> > <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> || <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> > b.<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a>); +<a name="l00347"></a>00347 } +<a name="l00348"></a>00348 +<a name="l00349"></a><a class="code" href="group__foundation.html#g6c01fcea43f866759d8d3bb7e5a34222">00349</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="group__foundation.html#g6c01fcea43f866759d8d3bb7e5a34222" title="computes the 1D-intersection between two AABBs, on a given axis.">PxBounds3::intersects1D</a>(<span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& a, uint32_t axis)<span class="keyword"> const</span> +<a name="l00350"></a>00350 <span class="keyword"></span>{ +<a name="l00351"></a>00351 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>() && a.<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00352"></a>00352 <span class="keywordflow">return</span> <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>[axis] >= a.<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>[axis] && a.<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>[axis] >= <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>[axis]; +<a name="l00353"></a>00353 } +<a name="l00354"></a>00354 +<a name="l00355"></a><a class="code" href="group__foundation.html#g2b7a5f7e291fa070550e17b0bf3a417b">00355</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="group__foundation.html#g2b7a5f7e291fa070550e17b0bf3a417b" title="indicates if these bounds contain v.">PxBounds3::contains</a>(<span class="keyword">const</span> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>& v)<span class="keyword"> const</span> +<a name="l00356"></a>00356 <span class="keyword"></span>{ +<a name="l00357"></a>00357 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00358"></a>00358 +<a name="l00359"></a>00359 <span class="keywordflow">return</span> !(v.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> < <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> || v.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> > <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> || v.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> < <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> || v.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> > <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> || v.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> < <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> || +<a name="l00360"></a>00360 v.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> > <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a>); +<a name="l00361"></a>00361 } +<a name="l00362"></a>00362 +<a name="l00363"></a><a class="code" href="group__foundation.html#g800b49fc95d7d2cf48b4f2ddeed58d40">00363</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="group__foundation.html#g800b49fc95d7d2cf48b4f2ddeed58d40" title="checks a box is inside another box.">PxBounds3::isInside</a>(<span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& box)<span class="keyword"> const</span> +<a name="l00364"></a>00364 <span class="keyword"></span>{ +<a name="l00365"></a>00365 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>() && box.<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00366"></a>00366 <span class="keywordflow">if</span>(box.<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> > <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a>) +<a name="l00367"></a>00367 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00368"></a>00368 <span class="keywordflow">if</span>(box.<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> > <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a>) +<a name="l00369"></a>00369 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00370"></a>00370 <span class="keywordflow">if</span>(box.<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> > <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a>) +<a name="l00371"></a>00371 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00372"></a>00372 <span class="keywordflow">if</span>(box.<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> < <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a>) +<a name="l00373"></a>00373 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00374"></a>00374 <span class="keywordflow">if</span>(box.<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> < <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a>) +<a name="l00375"></a>00375 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00376"></a>00376 <span class="keywordflow">if</span>(box.<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> < <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a>) +<a name="l00377"></a>00377 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00378"></a>00378 <span class="keywordflow">return</span> <span class="keyword">true</span>; +<a name="l00379"></a>00379 } +<a name="l00380"></a>00380 +<a name="l00381"></a><a class="code" href="group__foundation.html#ga1eacc6e874bc9a1967655f198194a92">00381</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> <a class="code" href="group__foundation.html#ga1eacc6e874bc9a1967655f198194a92" title="returns the center of this axis aligned box.">PxBounds3::getCenter</a>()<span class="keyword"> const</span> +<a name="l00382"></a>00382 <span class="keyword"></span>{ +<a name="l00383"></a>00383 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00384"></a>00384 <span class="keywordflow">return</span> (<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a> + <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>) * 0.5f; +<a name="l00385"></a>00385 } +<a name="l00386"></a>00386 +<a name="l00387"></a><a class="code" href="group__foundation.html#g4357569e89aa7064fb06d9c047ce53c0">00387</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="group__foundation.html#ga1eacc6e874bc9a1967655f198194a92" title="returns the center of this axis aligned box.">PxBounds3::getCenter</a>(uint32_t axis)<span class="keyword"> const</span> +<a name="l00388"></a>00388 <span class="keyword"></span>{ +<a name="l00389"></a>00389 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00390"></a>00390 <span class="keywordflow">return</span> (<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>[axis] + <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>[axis]) * 0.5f; +<a name="l00391"></a>00391 } +<a name="l00392"></a>00392 +<a name="l00393"></a><a class="code" href="group__foundation.html#g582bed0f2c3a0a8dfab77e02249feea0">00393</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="group__foundation.html#gfaafe13f0b88eabb1c2c3089248b12bd" title="returns the extents, which are half of the width/height/depth.">PxBounds3::getExtents</a>(uint32_t axis)<span class="keyword"> const</span> +<a name="l00394"></a>00394 <span class="keyword"></span>{ +<a name="l00395"></a>00395 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00396"></a>00396 <span class="keywordflow">return</span> (<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>[axis] - <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>[axis]) * 0.5f; +<a name="l00397"></a>00397 } +<a name="l00398"></a>00398 +<a name="l00399"></a><a class="code" href="group__foundation.html#gb057bb914d26e244212a51f290d0468e">00399</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> <a class="code" href="group__foundation.html#gb057bb914d26e244212a51f290d0468e" title="returns the dimensions (width/height/depth) of this axis aligned box.">PxBounds3::getDimensions</a>()<span class="keyword"> const</span> +<a name="l00400"></a>00400 <span class="keyword"></span>{ +<a name="l00401"></a>00401 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00402"></a>00402 <span class="keywordflow">return</span> <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a> - <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>; +<a name="l00403"></a>00403 } +<a name="l00404"></a>00404 +<a name="l00405"></a><a class="code" href="group__foundation.html#gfaafe13f0b88eabb1c2c3089248b12bd">00405</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> <a class="code" href="group__foundation.html#gfaafe13f0b88eabb1c2c3089248b12bd" title="returns the extents, which are half of the width/height/depth.">PxBounds3::getExtents</a>()<span class="keyword"> const</span> +<a name="l00406"></a>00406 <span class="keyword"></span>{ +<a name="l00407"></a>00407 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00408"></a>00408 <span class="keywordflow">return</span> <a class="code" href="group__foundation.html#gb057bb914d26e244212a51f290d0468e" title="returns the dimensions (width/height/depth) of this axis aligned box.">getDimensions</a>() * 0.5f; +<a name="l00409"></a>00409 } +<a name="l00410"></a>00410 +<a name="l00411"></a><a class="code" href="group__foundation.html#g34f70075ac4a52e2d7fb8afc03afc6e2">00411</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#g34f70075ac4a52e2d7fb8afc03afc6e2" title="scales the AABB.">PxBounds3::scaleSafe</a>(<span class="keywordtype">float</span> scale) +<a name="l00412"></a>00412 { +<a name="l00413"></a>00413 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00414"></a>00414 <span class="keywordflow">if</span>(!<a class="code" href="group__foundation.html#g33b5e4d84105c56c40c9d49f1764526b">isEmpty</a>()) +<a name="l00415"></a>00415 <a class="code" href="group__foundation.html#ge942e76eff12ad0827a6d3870afb9bc9" title="scales the AABB.">scaleFast</a>(scale); +<a name="l00416"></a>00416 } +<a name="l00417"></a>00417 +<a name="l00418"></a><a class="code" href="group__foundation.html#ge942e76eff12ad0827a6d3870afb9bc9">00418</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#ge942e76eff12ad0827a6d3870afb9bc9" title="scales the AABB.">PxBounds3::scaleFast</a>(<span class="keywordtype">float</span> scale) +<a name="l00419"></a>00419 { +<a name="l00420"></a>00420 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00421"></a>00421 *<span class="keyword">this</span> = <a class="code" href="group__foundation.html#g2d783f32606b1458efd0fe0ee50c2b03" title="returns the AABB from center and extents vectors.">centerExtents</a>(<a class="code" href="group__foundation.html#ga1eacc6e874bc9a1967655f198194a92" title="returns the center of this axis aligned box.">getCenter</a>(), <a class="code" href="group__foundation.html#gfaafe13f0b88eabb1c2c3089248b12bd" title="returns the extents, which are half of the width/height/depth.">getExtents</a>() * scale); +<a name="l00422"></a>00422 } +<a name="l00423"></a>00423 +<a name="l00424"></a><a class="code" href="group__foundation.html#g060890e60cdbd06a2819e6d4a1f2d3be">00424</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#g060890e60cdbd06a2819e6d4a1f2d3be">PxBounds3::fattenSafe</a>(<span class="keywordtype">float</span> distance) +<a name="l00425"></a>00425 { +<a name="l00426"></a>00426 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00427"></a>00427 <span class="keywordflow">if</span>(!<a class="code" href="group__foundation.html#g33b5e4d84105c56c40c9d49f1764526b">isEmpty</a>()) +<a name="l00428"></a>00428 <a class="code" href="group__foundation.html#gdbc9efd74535a6b4f58f28058da1670a">fattenFast</a>(distance); +<a name="l00429"></a>00429 } +<a name="l00430"></a>00430 +<a name="l00431"></a><a class="code" href="group__foundation.html#gdbc9efd74535a6b4f58f28058da1670a">00431</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#gdbc9efd74535a6b4f58f28058da1670a">PxBounds3::fattenFast</a>(<span class="keywordtype">float</span> distance) +<a name="l00432"></a>00432 { +<a name="l00433"></a>00433 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00434"></a>00434 <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> -= distance; +<a name="l00435"></a>00435 <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> -= distance; +<a name="l00436"></a>00436 <a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> -= distance; +<a name="l00437"></a>00437 +<a name="l00438"></a>00438 <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> += distance; +<a name="l00439"></a>00439 <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> += distance; +<a name="l00440"></a>00440 <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> += distance; +<a name="l00441"></a>00441 } +<a name="l00442"></a>00442 +<a name="l00443"></a><a class="code" href="group__foundation.html#g7c72d4a195ff9acade3d092124a45c53">00443</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> <a class="code" href="group__foundation.html#g7c72d4a195ff9acade3d092124a45c53" title="gets the transformed bounds of the passed AABB (resulting in a bigger AABB).">PxBounds3::transformSafe</a>(<span class="keyword">const</span> <a class="code" href="classPxMat33.html" title="3x3 matrix class">PxMat33</a>& matrix, <span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& bounds) +<a name="l00444"></a>00444 { +<a name="l00445"></a>00445 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(bounds.<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00446"></a>00446 <span class="keywordflow">return</span> !bounds.<a class="code" href="group__foundation.html#g33b5e4d84105c56c40c9d49f1764526b">isEmpty</a>() ? <a class="code" href="group__foundation.html#gf5da2cfad63151151b35afeb43e5b922" title="gets the transformed bounds of the passed AABB (resulting in a bigger AABB).">transformFast</a>(matrix, bounds) : bounds; +<a name="l00447"></a>00447 } +<a name="l00448"></a>00448 +<a name="l00449"></a><a class="code" href="group__foundation.html#gf5da2cfad63151151b35afeb43e5b922">00449</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> <a class="code" href="group__foundation.html#gf5da2cfad63151151b35afeb43e5b922" title="gets the transformed bounds of the passed AABB (resulting in a bigger AABB).">PxBounds3::transformFast</a>(<span class="keyword">const</span> <a class="code" href="classPxMat33.html" title="3x3 matrix class">PxMat33</a>& matrix, <span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& bounds) +<a name="l00450"></a>00450 { +<a name="l00451"></a>00451 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(bounds.<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00452"></a>00452 <span class="keywordflow">return</span> <a class="code" href="group__foundation.html#g3c2a546bd10918cd8cf26d27200081f1" title="Construct from center, extent, and (not necessarily orthogonal) basis.">PxBounds3::basisExtent</a>(matrix * bounds.<a class="code" href="group__foundation.html#ga1eacc6e874bc9a1967655f198194a92" title="returns the center of this axis aligned box.">getCenter</a>(), matrix, bounds.<a class="code" href="group__foundation.html#g582bed0f2c3a0a8dfab77e02249feea0" title="get component of the box&#39;s extents along a given axis">getExtents</a>()); +<a name="l00453"></a>00453 } +<a name="l00454"></a>00454 +<a name="l00455"></a><a class="code" href="group__foundation.html#g79b5721890bfcd38f4890f55ea0e5eac">00455</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> <a class="code" href="group__foundation.html#g7c72d4a195ff9acade3d092124a45c53" title="gets the transformed bounds of the passed AABB (resulting in a bigger AABB).">PxBounds3::transformSafe</a>(<span class="keyword">const</span> <a class="code" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector">PxTransform</a>& transform, <span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& bounds) +<a name="l00456"></a>00456 { +<a name="l00457"></a>00457 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(bounds.<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00458"></a>00458 <span class="keywordflow">return</span> !bounds.<a class="code" href="group__foundation.html#g33b5e4d84105c56c40c9d49f1764526b">isEmpty</a>() ? <a class="code" href="group__foundation.html#gf5da2cfad63151151b35afeb43e5b922" title="gets the transformed bounds of the passed AABB (resulting in a bigger AABB).">transformFast</a>(transform, bounds) : bounds; +<a name="l00459"></a>00459 } +<a name="l00460"></a>00460 +<a name="l00461"></a><a class="code" href="group__foundation.html#g06a5a07559f3f1444b68770d472f29c9">00461</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a> <a class="code" href="group__foundation.html#gf5da2cfad63151151b35afeb43e5b922" title="gets the transformed bounds of the passed AABB (resulting in a bigger AABB).">PxBounds3::transformFast</a>(<span class="keyword">const</span> <a class="code" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector">PxTransform</a>& transform, <span class="keyword">const</span> <a class="code" href="classPxBounds3.html" title="Class representing 3D range or axis aligned bounding box.">PxBounds3</a>& bounds) +<a name="l00462"></a>00462 { +<a name="l00463"></a>00463 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(bounds.<a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">isValid</a>()); +<a name="l00464"></a>00464 <span class="keywordflow">return</span> <a class="code" href="group__foundation.html#g3c2a546bd10918cd8cf26d27200081f1" title="Construct from center, extent, and (not necessarily orthogonal) basis.">PxBounds3::basisExtent</a>(transform.<a class="code" href="classPxTransform.html#ee2fa4f5d0f6a1bad831fe0c81094ebd">transform</a>(bounds.<a class="code" href="group__foundation.html#ga1eacc6e874bc9a1967655f198194a92" title="returns the center of this axis aligned box.">getCenter</a>()), <a class="code" href="classPxMat33.html" title="3x3 matrix class">PxMat33</a>(transform.<a class="code" href="classPxTransform.html#adb9d2118765e188f212cf3c0e0018cb">q</a>), bounds.<a class="code" href="group__foundation.html#g582bed0f2c3a0a8dfab77e02249feea0" title="get component of the box&#39;s extents along a given axis">getExtents</a>()); +<a name="l00465"></a>00465 } +<a name="l00466"></a>00466 +<a name="l00467"></a><a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">00467</a> <a class="code" href="group__foundation.html#g6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="group__foundation.html#g1a4839a26d49a14844a13fc6a845191e">PxBounds3::isValid</a>()<span class="keyword"> const</span> +<a name="l00468"></a>00468 <span class="keyword"></span>{ +<a name="l00469"></a>00469 <span class="keywordflow">return</span> (<a class="code" href="group__foundation.html#gbe53fa98b77ef063eaee029d5cd8b161">isFinite</a>() && (((<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> <= <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a>) && (<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> <= <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a>) && (<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> <= <a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a>)) || +<a name="l00470"></a>00470 ((<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> == <a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>) && (<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> == <a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>) && +<a name="l00471"></a>00471 (<a class="code" href="classPxBounds3.html#1e29055a5fc45cacb8b05f6630a05670">minimum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> == <a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>) && (<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#391194bca8291161c06254f4ac2b6ada">x</a> == -<a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>) && +<a name="l00472"></a>00472 (<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#29958700f50da2204edc519b47706a05">y</a> == -<a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>) && (<a class="code" href="classPxBounds3.html#78d089540f588cc726f2b1673344b584">maximum</a>.<a class="code" href="classPxVec3.html#50d67b162b99b904c3f362ad0415dbca">z</a> == -<a class="code" href="group__foundation.html#gc1b800617c25ba00871816b8a0756d89">PX_MAX_BOUNDS_EXTENTS</a>)))); +<a name="l00473"></a>00473 } +<a name="l00474"></a>00474 +<a name="l00475"></a>00475 <span class="preprocessor">#if !PX_DOXYGEN</span> +<a name="l00476"></a>00476 <span class="preprocessor"></span>} <span class="comment">// namespace physx</span> +<a name="l00477"></a>00477 <span class="preprocessor">#endif</span> +<a name="l00478"></a>00478 <span class="preprocessor"></span> +<a name="l00480"></a>00480 <span class="preprocessor">#endif // #ifndef PXFOUNDATION_PXBOUNDS3_H</span> +</pre></div></div> + +<hr style="width: 100%; height: 2px;"><br> +Copyright © 2008-2016 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a> +</body> +</html> |