Sets hologram position based on player and projection distance.
1215 {
1216 float playerToProjectionDistance = vector.Distance(startPosition, contactPosition);
1217 vector playerToProjection;
1218
1219 #ifdef DIAG_DEVELOPER
1220 DebugLog(
"SetHologramPosition::startPosition: ",
false,
m_IsHidden,
string.Format(
" | %1", startPosition));
1221 DebugLog(
"SetHologramPosition::contactPosition [in]: ",
false,
m_IsHidden,
string.Format(
" | %1", contactPosition));
1222 DebugLog(
"SetHologramPosition::minProjectionDistance: ",
false,
m_IsHidden,
string.Format(
" | %1", minProjectionDistance));
1223 DebugLog(
"SetHologramPosition::maxProjectionDistance: ",
false,
m_IsHidden,
string.Format(
" | %1", maxProjectionDistance));
1224 DebugLog(
"SetHologramPosition::playerToProjectionDistance: ",
false,
m_IsHidden,
string.Format(
" | %1", playerToProjectionDistance));
1225 #endif
1226
1227
1228 if (playerToProjectionDistance <= minProjectionDistance)
1229 {
1230 playerToProjection = contactPosition - startPosition;
1232
1234
1235 contactPosition = startPosition + (playerToProjection * minProjectionDistance);
1236
1237 #ifdef DIAG_DEVELOPER
1238 DebugLog(
"SetHologramPosition::contactPosition[out] (< minProjectDistance): ",
false,
m_IsHidden,
string.Format(
" | %1", contactPosition));
1239 #endif
1240
1241 return true;
1242 }
1243
1244 else if (playerToProjectionDistance >= maxProjectionDistance)
1245 {
1246 playerToProjection = contactPosition - startPosition;
1248
1250
1251 contactPosition = startPosition + (playerToProjection * maxProjectionDistance);
1252
1253 #ifdef DIAG_DEVELOPER
1254 DebugLog(
"SetHologramPosition::contactPosition[out] (< maxProjectionDistance): ",
false,
m_IsHidden,
string.Format(
" | %1", contactPosition));
1255 #endif
1256
1257 return true;
1258 }
1259
1260 return false;
1261 }
const float PROJECTION_TRANSITION_MAX
const float PROJECTION_TRANSITION_MIN
proto float Normalize()
Normalizes vector. Returns length.