aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/shared/general/HACD/include/dgPolygonSoupDatabase.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/dgPolygonSoupDatabase.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/dgPolygonSoupDatabase.h')
-rw-r--r--APEX_1.4/shared/general/HACD/include/dgPolygonSoupDatabase.h158
1 files changed, 158 insertions, 0 deletions
diff --git a/APEX_1.4/shared/general/HACD/include/dgPolygonSoupDatabase.h b/APEX_1.4/shared/general/HACD/include/dgPolygonSoupDatabase.h
new file mode 100644
index 00000000..8b234780
--- /dev/null
+++ b/APEX_1.4/shared/general/HACD/include/dgPolygonSoupDatabase.h
@@ -0,0 +1,158 @@
+/* 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.
+*/
+
+/****************************************************************************
+*
+* Visual C++ 6.0 created by: Julio Jerez
+*
+****************************************************************************/
+#ifndef __dgPolygonSoupDatabase0x23413452233__
+#define __dgPolygonSoupDatabase0x23413452233__
+
+
+#include "dgTypes.h"
+#include "dgArray.h"
+#include "dgIntersections.h"
+
+class dgMatrix;
+
+
+
+class dgPolygonSoupDatabase//: public dgRef
+{
+ public:
+ float GetRadius() const;
+ int32_t GetVertexCount() const;
+ int32_t GetStrideInBytes() const;
+ float* GetLocalVertexPool() const;
+
+ uint32_t GetTagId(const int32_t* face) const;
+ void SetTagId(const int32_t* face, uint32_t newID) const;
+
+
+ virtual void GetAABB (dgVector& p0, dgVector& p1) const;
+
+
+ protected:
+ virtual void ForAllSectors (const dgVector& min, const dgVector& max, dgAABBIntersectCallback callback, void* const context) const;
+ virtual void ForAllSectorsSimd (const dgVector& min, const dgVector& max, dgAABBIntersectCallback callback, void* const context) const;
+ virtual void ForAllSectorsRayHit (const dgFastRayTest& ray, dgRayIntersectCallback callback, void* const context) const;
+ virtual void ForAllSectorsRayHitSimd (const dgFastRayTest& ray, dgRayIntersectCallback callback, void* const context) const;
+
+ dgPolygonSoupDatabase(const char *name = NULL);
+ virtual ~dgPolygonSoupDatabase ();
+
+ int32_t m_vertexCount;
+ int32_t m_strideInBytes;
+ float* m_localVertex;
+};
+
+
+inline dgPolygonSoupDatabase::dgPolygonSoupDatabase(const char *name)
+{
+ HACD_FORCE_PARAMETER_REFERENCE(name);
+ m_vertexCount = 0;
+ m_strideInBytes = 0;
+ m_localVertex = NULL;
+}
+
+inline dgPolygonSoupDatabase::~dgPolygonSoupDatabase ()
+{
+ if (m_localVertex) {
+ HACD_FREE(m_localVertex);
+ }
+}
+
+
+inline uint32_t dgPolygonSoupDatabase::GetTagId(const int32_t* face) const
+{
+ return uint32_t (face[-1]);
+}
+
+inline void dgPolygonSoupDatabase::SetTagId(const int32_t* facePtr, uint32_t newID) const
+{
+ uint32_t* face;
+ face = (uint32_t*) facePtr;
+ face[-1] = newID;
+}
+
+inline int32_t dgPolygonSoupDatabase::GetVertexCount() const
+{
+ return m_vertexCount;
+}
+
+inline float* dgPolygonSoupDatabase::GetLocalVertexPool() const
+{
+ return m_localVertex;
+}
+
+inline int32_t dgPolygonSoupDatabase::GetStrideInBytes() const
+{
+ return m_strideInBytes;
+}
+
+inline float dgPolygonSoupDatabase::GetRadius() const
+{
+ return 0.0f;
+}
+
+inline void dgPolygonSoupDatabase::ForAllSectorsSimd (const dgVector& min, const dgVector& max, dgAABBIntersectCallback callback, void* const context) const
+{
+ HACD_FORCE_PARAMETER_REFERENCE(min);
+ HACD_FORCE_PARAMETER_REFERENCE(max);
+ HACD_FORCE_PARAMETER_REFERENCE(callback);
+ HACD_FORCE_PARAMETER_REFERENCE(context);
+ HACD_ALWAYS_ASSERT();
+}
+
+
+
+inline void dgPolygonSoupDatabase::ForAllSectors (const dgVector& min, const dgVector& max, dgAABBIntersectCallback callback, void* const context) const
+{
+ HACD_FORCE_PARAMETER_REFERENCE(min);
+ HACD_FORCE_PARAMETER_REFERENCE(max);
+ HACD_FORCE_PARAMETER_REFERENCE(callback);
+ HACD_FORCE_PARAMETER_REFERENCE(context);
+ HACD_ALWAYS_ASSERT();
+}
+
+
+inline void dgPolygonSoupDatabase::GetAABB (dgVector& p0, dgVector& p1) const
+{
+ HACD_FORCE_PARAMETER_REFERENCE(p0);
+ HACD_FORCE_PARAMETER_REFERENCE(p1);
+ HACD_ALWAYS_ASSERT();// not yet implemented!
+}
+
+
+inline void dgPolygonSoupDatabase::ForAllSectorsRayHit (const dgFastRayTest& /*ray*/, dgRayIntersectCallback /*callback*/, void* const /*context*/) const
+{
+ HACD_ALWAYS_ASSERT();
+}
+
+inline void dgPolygonSoupDatabase::ForAllSectorsRayHitSimd (const dgFastRayTest& /*ray*/, dgRayIntersectCallback /*callback*/, void* const /*context*/) const
+{
+ HACD_ALWAYS_ASSERT();
+}
+
+
+#endif
+