590 {
591 if (CfgGameplayHandler.GetDisableIsCollidingBBoxCheck())
592 return false;
593
594 vector center;
595 vector relativeOffset;
596 vector absoluteOffset = "0 0.05 0";
598 vector edgeLength;
599 vector minMax[2];
600 array<Object> excludedObjects = new array<Object>();
601 array<ref BoxCollidingResult> collidedObjects = new array<ref BoxCollidingResult>();
602
604 relativeOffset[1] = (minMax[1][1] - minMax[0][1]) * 0.5;
605 center =
m_Projection.GetPosition() + relativeOffset + absoluteOffset;
609
610 if (action_item)
611 excludedObjects.Insert(action_item);
612
613 BoxCollidingParams params = new BoxCollidingParams();
614 params.
SetParams(center, orientation, edgeLength, ObjIntersect.View, ObjIntersect.Geom,
false);
615 bool isTrue =
g_Game.IsBoxCollidingGeometryProxy(params, excludedObjects, collidedObjects);
616 #ifdef DIAG_DEVELOPER
618 {
619 string text = "";
620 foreach (BoxCollidingResult object: collidedObjects)
621 text +=
" | " +
Object.GetDebugName(
object.obj);
622
623 DebugLog("IsCollidingGeometryProxy: ", false, isTrue, text);
624
625 int color = 0x01FFFFFF;
626 if (isTrue)
627 color = 0x33F22613;
628
632 }
633 #endif
634
635 return isTrue;
636 }
void DrawDebugCollisionBox(vector min_max[2], int color)
void DestroyDebugCollisionBox()
proto native void SetParams(vector center, vector orientation, vector edgeLength, ObjIntersect primaryType, ObjIntersect secondaryType, bool fullComponentInfo)
Set the parameters.
vector GetCollisionBoxSize(vector min_max[2])
vector GetProjectionOrientation()
void GetProjectionCollisionBox(out vector min_max[2])