From b3395edd2a371de8ee56b3fbdfff4687750acccd Mon Sep 17 00:00:00 2001 From: Kester Maddock Date: Sat, 6 Nov 2004 04:56:05 +0000 Subject: Add new broad phase collision response to Solid: this will let us hook (and potentially reject) the detail phase. --- extern/solid/src/DT_C-api.cpp | 8 ++++++++ extern/solid/src/DT_Encounter.cpp | 4 ++++ 2 files changed, 12 insertions(+) (limited to 'extern/solid/src') 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)) { -- cgit v1.2.3