1088    {
 1089        float minProjectionDistance;
 1090        float maxProjectionDistance; 
 1092        vector minMax[2];
 1094        float cameraToPlayerDistance = vector.Distance(
GetGame().GetCurrentCameraPosition(), player.GetPosition());
 
 1095 
 1097        {
 1100        }
 1101        else
 1102        {
 1103            minProjectionDistance = projectionRadius;
 1104            maxProjectionDistance = projectionRadius * 2;
 1106        }
 1107        
 1110        vector contactPosition;
 1111        set<Object> hitObjects = new set<Object>();
 1112 
 1113        DayZPhysics.RaycastRV(from, to, contactPosition, 
m_ContactDir, 
m_ContactComponent, hitObjects, player, 
m_Projection, 
false, 
false, ObjIntersectFire);
 
 1114        
 1115        bool contactHitProcessed = false;
 1117        if (!CfgGameplayHandler.GetDisableIsCollidingBBoxCheck())
 1118        {
 1119            if (hitObjects.Count() > 0)
 1120            {
 1121                if (hitObjects[0].IsInherited(Watchtower))
 1122                {
 1123                    contactHitProcessed = true;
 1125                }
 1126                
 1127                if (!contactHitProcessed && hitObjects[0].IsInherited(InventoryItem))
 1128                    contactPosition = hitObjects[0].GetPosition();
 1129            }
 1130        }
 1131 
 1132        static const float raycastOriginOffsetOnFail = 0.25;
 1133        static const float minDistFromStart = 0.01;
 1134        
 1135        if ((hitObjects.Count() > 0) && (vector.DistanceSq(from, contactPosition) < minDistFromStart))
 1136        {
 1138            DayZPhysics.RaycastRV(from, to, contactPosition, 
m_ContactDir, 
m_ContactComponent, hitObjects, player, 
m_Projection, 
false, 
false, ObjIntersectFire);
 
 1139        }
 1140 
 1141        bool isFloating = 
SetHologramPosition(player.GetPosition(), minProjectionDistance, maxProjectionDistance, contactPosition);
 
 1143 
 1144        #ifdef DIAG_DEVELOPER
 1145        DrawDebugArrow(minProjectionDistance, maxProjectionDistance);
 1147        {
 1149        }
 1150        #endif
 1151        
 1153 
 1154        return contactPosition;
 1155    }
proto native vector GetCurrentCameraPosition()
proto native vector GetCurrentCameraDirection()
const float LARGE_PROJECTION_DISTANCE_LIMIT
Deprecated.
const float SMALL_PROJECTION_RADIUS
bool SetHologramPosition(vector startPosition, float minProjectionDistance, float maxProjectionDistance, inout vector contactPosition)
Sets hologram position based on player and projection distance.
void SetIsFloating(bool is_floating)
vector CorrectForWatchtower(int contactComponent, vector contactPos, PlayerBase player, Object hitObject)
float GetProjectionRadius()
vector GetProjectionPosition()
proto native CGame GetGame()