aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/shared/general/HACD/include/dgSphere.h
diff options
context:
space:
mode:
authorgit perforce import user <a@b>2016-10-25 12:29:14 -0600
committerSheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees>2016-10-25 18:56:37 -0500
commit3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch)
treefa6485c169e50d7415a651bf838f5bcd0fd3bfbd /APEX_1.4/shared/general/HACD/include/dgSphere.h
downloadphysx-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 'APEX_1.4/shared/general/HACD/include/dgSphere.h')
-rw-r--r--APEX_1.4/shared/general/HACD/include/dgSphere.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/APEX_1.4/shared/general/HACD/include/dgSphere.h b/APEX_1.4/shared/general/HACD/include/dgSphere.h
new file mode 100644
index 00000000..569d803a
--- /dev/null
+++ b/APEX_1.4/shared/general/HACD/include/dgSphere.h
@@ -0,0 +1,78 @@
+/* Copyright (c) <2003-2011> <Julio Jerez, Newton Game Dynamics>
+*
+* This software is provided 'as-is', without any express or implied
+* warranty. In no event will the authors be held liable for any damages
+* arising from the use of this software.
+*
+* Permission is granted to anyone to use this software for any purpose,
+* including commercial applications, and to alter it and redistribute it
+* freely, subject to the following restrictions:
+*
+* 1. The origin of this software must not be misrepresented; you must not
+* claim that you wrote the original software. If you use this software
+* in a product, an acknowledgment in the product documentation would be
+* appreciated but is not required.
+*
+* 2. Altered source versions must be plainly marked as such, and must not be
+* misrepresented as being the original software.
+*
+* 3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef __dgSphere__
+#define __dgSphere__
+
+#include "dgTypes.h"
+#include "dgVector.h"
+#include "dgMatrix.h"
+#include "dgQuaternion.h"
+
+
+class dgPlane;
+
+class dgSphere: public dgMatrix
+{
+ public:
+ dgSphere ();
+
+ dgSphere (const dgQuaternion &quat, const dgVector &position, const dgVector& dim = dgVector(0, 0, 0, 0));
+ dgSphere (const dgMatrix &matrix, const dgVector& dim = dgVector(0, 0, 0, 0));
+
+ dgSphere &operator= (const dgMatrix &arg);
+ void Scale (float Ws, float Hs, float Bs) ;
+ void SetDimensions (float W, float H, float B);
+ void SetDimensions (const float vertex[], int32_t strideInBytes, int32_t vertexCount, const dgMatrix *basis = NULL);
+ void SetDimensions (const float vertex[], int32_t strideInBytes, const int32_t triangles[], int32_t indexCount, const dgMatrix *basis);
+
+ private:
+
+ public:
+ dgVector m_size;
+};
+
+
+const dgSphere& GetIdentitySphere();
+
+
+inline dgSphere &dgSphere::operator= (const dgMatrix &arg)
+{
+ m_front = arg.m_front;
+ m_up = arg.m_up;
+ m_right = arg.m_right;
+ m_posit = arg.m_posit;
+ return *this;
+}
+
+inline void dgSphere::SetDimensions (float W, float H, float B)
+{
+ m_size = dgVector (dgAbsf(W), dgAbsf(H), dgAbsf(B), dgSqrt (W * W + H * H + B * B));
+}
+
+inline void dgSphere::Scale (float Ws, float Hs, float Bs)
+{
+ SetDimensions (m_size.m_x * Ws, m_size.m_y * Hs, m_size.m_z * Bs);
+}
+
+
+#endif
+