diff options
author | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-11-06 07:56:05 +0300 |
---|---|---|
committer | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-11-06 07:56:05 +0300 |
commit | b3395edd2a371de8ee56b3fbdfff4687750acccd (patch) | |
tree | df95ab798097cddea86eb6ed737f680274dd6122 /extern/solid/src | |
parent | ce4b232f8c1f0879111027c0e754dd5cd014891d (diff) |
Add new broad phase collision response to Solid: this will let us hook (and potentially reject) the detail phase.
Diffstat (limited to 'extern/solid/src')
-rwxr-xr-x | extern/solid/src/DT_C-api.cpp | 8 | ||||
-rwxr-xr-x | extern/solid/src/DT_Encounter.cpp | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/extern/solid/src/DT_C-api.cpp b/extern/solid/src/DT_C-api.cpp index c07a3bb7ccc..ac16deda87d 100755 --- a/extern/solid/src/DT_C-api.cpp +++ b/extern/solid/src/DT_C-api.cpp @@ -372,6 +372,14 @@ void DT_GetBBox(DT_ObjectHandle object, DT_Vector3 min, DT_Vector3 max) bbox.getMax().getValue(max); } +DT_Bool DT_GetIntersect(DT_ObjectHandle object1, DT_ObjectHandle object2, DT_Vector3 vec) +{ + MT_Vector3 v; + DT_Bool result = intersect(*(DT_Object*)object1, *(DT_Object*)object2, v); + v.getValue(vec); + return result; +} + DT_Scalar DT_GetClosestPair(DT_ObjectHandle object1, DT_ObjectHandle object2, DT_Vector3 point1, DT_Vector3 point2) { diff --git a/extern/solid/src/DT_Encounter.cpp b/extern/solid/src/DT_Encounter.cpp index 49cc4bf3764..36de33154a3 100755 --- a/extern/solid/src/DT_Encounter.cpp +++ b/extern/solid/src/DT_Encounter.cpp @@ -32,6 +32,10 @@ DT_Bool DT_Encounter::exactTest(const DT_RespTable *respTable, int& count) const switch (responseList.getType()) { + case DT_BROAD_RESPONSE: + return (respTable->getResponseClass(m_obj_ptr1) < respTable->getResponseClass(m_obj_ptr2)) ? + responseList(m_obj_ptr1->getClientObject(), m_obj_ptr2->getClientObject(), 0) : + responseList(m_obj_ptr2->getClientObject(), m_obj_ptr1->getClientObject(), 0); case DT_SIMPLE_RESPONSE: if (intersect(*m_obj_ptr1, *m_obj_ptr2, m_sep_axis)) { |