Sets hologram position based on player and projection distance.
1166 {
1167 float playerToProjectionDistance = vector.Distance(startPosition, contactPosition);
1168 vector playerToProjection;
1169
1170 #ifdef DIAG_DEVELOPER
1171 DebugText(
"SetHologramPosition::startPosition: ",
false,
m_IsHidden,
string.Format(
" | %1", startPosition));
1172 DebugText(
"SetHologramPosition::contactPosition [in]: ",
false,
m_IsHidden,
string.Format(
" | %1", contactPosition));
1173 DebugText(
"SetHologramPosition::minProjectionDistance: ",
false,
m_IsHidden,
string.Format(
" | %1", minProjectionDistance));
1174 DebugText(
"SetHologramPosition::maxProjectionDistance: ",
false,
m_IsHidden,
string.Format(
" | %1", maxProjectionDistance));
1175 DebugText(
"SetHologramPosition::playerToProjectionDistance: ",
false,
m_IsHidden,
string.Format(
" | %1", playerToProjectionDistance));
1176 #endif
1177
1178
1179 if (playerToProjectionDistance <= minProjectionDistance)
1180 {
1181 playerToProjection = contactPosition - startPosition;
1183
1185
1186 contactPosition = startPosition + (playerToProjection * minProjectionDistance);
1187
1188 #ifdef DIAG_DEVELOPER
1189 DebugText(
"SetHologramPosition::contactPosition[out] (< minProjectDistance): ",
false,
m_IsHidden,
string.Format(
" | %1", contactPosition));
1190 #endif
1191
1192 return true;
1193 }
1194
1195 else if (playerToProjectionDistance >= maxProjectionDistance)
1196 {
1197 playerToProjection = contactPosition - startPosition;
1199
1201
1202 contactPosition = startPosition + (playerToProjection * maxProjectionDistance);
1203
1204 #ifdef DIAG_DEVELOPER
1205 DebugText(
"SetHologramPosition::contactPosition[out] (< maxProjectionDistance): ",
false,
m_IsHidden,
string.Format(
" | %1", contactPosition));
1206 #endif
1207
1208 return true;
1209 }
1210
1211 return false;
1212 }
const float PROJECTION_TRANSITION_MAX
const float PROJECTION_TRANSITION_MIN
proto float Normalize()
Normalizes vector. Returns length.