8 super.OnUpdate(pDt, pOutResult);
10 pOutResult.m_fUseHeading = 0.0;
11 pOutResult.m_bUpdateEveryFrame =
g_Game.IsPhysicsExtrapolationEnabled();
48 m_fDistance = transport.GetTransportCameraDistance();
58 vector baseAngles = pPrevCamera.GetBaseAngles();
62 vector addAngles = pPrevCamera.GetAdditiveAngles();
92 vector playerTransformWS[4];
93 m_pPlayer.GetTransform(playerTransformWS);
97 pOutResult.m_CollisionIgnoreEntity = vehicle;
126 posDiffLS = posDiffLS + posDiffWS.
InvMultiply3(playerTransformWS);
129 rotDiffLS = rotDiffLS + rotDiffWS.
InvMultiply3(playerTransformWS);
131 vector tempRot1 = rotDiffLS;
132 rotDiffLS[0] = tempRot1[1];
133 rotDiffLS[1] = tempRot1[2];
134 rotDiffLS[2] = tempRot1[0];
136 rotWS[0] = rotWS[0] + rotDiffLS[0];
137 rotWS[1] = rotWS[1] + rotDiffLS[1];
138 rotWS[2] = rotWS[2] + rotDiffLS[2];
184 pOutResult.m_fDistance = distance;
185 pOutResult.m_fUseHeading = 0.0;
186 pOutResult.m_fInsideCamera = 0.0;
187 pOutResult.m_fIgnoreParentRoll = 1.0;
188 pOutResult.m_fIgnoreParentPitch = 1.0;
189 pOutResult.m_fIgnoreParentYaw = 0.0;
190 pOutResult.m_bUpdateEveryFrame =
g_Game.IsPhysicsExtrapolationEnabled();
194 super.OnUpdate(pDt, pOutResult);
273 if ( vehicleCommand )
279 m_fDistance = transport.GetTransportCameraDistance();
289 vector baseAngles = pPrevCamera.GetBaseAngles();
293 vector addAngles = pPrevCamera.GetAdditiveAngles();
323 vector playerTransformWS[4];
324 m_pPlayer.GetTransform(playerTransformWS);
353 posDiffLS = posDiffLS + posDiffWS.
InvMultiply3(playerTransformWS);
356 rotDiffLS = rotDiffLS + rotDiffWS.
InvMultiply3(playerTransformWS);
358 vector tempRot1 = rotDiffLS;
359 rotDiffLS[0] = tempRot1[1];
360 rotDiffLS[1] = tempRot1[2];
361 rotDiffLS[2] = tempRot1[0];
363 rotWS[0] = rotWS[0] + rotDiffLS[0];
364 rotWS[1] = rotWS[1] + rotDiffLS[1];
365 rotWS[2] = rotWS[2] + rotDiffLS[2];
387 float lagYaw = tempRot[0];
413 pOutResult.m_fDistance = distance;
414 pOutResult.m_fUseHeading = 0.0;
415 pOutResult.m_fInsideCamera = 0.0;
416 pOutResult.m_fIgnoreParentRoll = 1.0;
417 pOutResult.m_fIgnoreParentPitch = 1.0;
418 pOutResult.m_fIgnoreParentYaw = 0.0;
419 pOutResult.m_bUpdateEveryFrame =
g_Game.IsPhysicsExtrapolationEnabled();
423 pOutResult.m_fPredictCollisionRadius = 1.0;
427 super.OnUpdate(pDt, pOutResult);
float m_fLeftRightAngle
left right angle in rad (in freelook only)
float m_fUpDownAngle
up down angle in rad
static const float CONST_UD_MAX
up limit
float m_fLeftRightAngleAdd
left right angle in rad (in freelook only)
float m_fUpDownAngleAdd
up down angle in rad
static const float CONST_LR_MIN
down limit
static const float CONST_LR_MAX
up limit
static const float CONST_UD_MIN
down limit
vector m_CameraOffsetMS
model space offset
float UpdateLRAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
float m_CurrentCameraPitch
float UpdateUDAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
void StdFovUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
float m_CurrentCameraRoll
vector m_LagOffsetOrientation
void DayZPlayerCamera3rdPersonVehicle(DayZPlayer pPlayer, HumanInputController pInput)
const float CONST_ANGULAR_LAG_ROLL_STRENGTH
const float CONST_ANGULAR_VELOCITY_STRENGTH
float m_fLagOffsetVelocityYaw[1]
const float CONST_ANGULAR_LAG_PITCH_STRENGTH
vector m_LagOffsetPosition
lag offsets
float m_fLagOffsetVelocityPitch[1]
float m_fLagOffsetVelocityY[1]
float m_fLagOffsetVelocityRoll[1]
float m_fLagOffsetVelocityX[1]
const float CONST_ANGULAR_LAG_YAW_STRENGTH
float m_fLagOffsetVelocityZ[1]
const float CONST_LINEAR_VELOCITY_STRENGTH
override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
static const float UP_ANGLE_CAP
const float CONST_ANGULAR_LAG_ROLL_STRENGTH
float m_fLagOffsetVelocityZ[1]
static const float CONST_YAW_LAG_REVERSE
float m_fLagOffsetVelocityYaw[1]
float m_fLagOffsetVelocityX[1]
const float CONST_LINEAR_VELOCITY_STRENGTH
static const float CONST_UD_MIN
down limit
float m_fUpDownAngleAdd
up down angle in rad
float m_fLagOffsetVelocityPitch[1]
float m_fLeftRightAngle
left right angle in rad
Transport m_Transport
cache
void DayZPlayerCamera3rdPersonVehicleMotorbike(DayZPlayer pPlayer, HumanInputController pInput)
static const float CONST_LR_MIN
down limit
static const float CONST_SPRING_SMOOTHTIME_YAW
float m_fLagOffsetVelocityY[1]
const float CONST_ANGULAR_LAG_YAW_STRENGTH
override void OnActivate(DayZPlayerCamera pPrevCamera, DayZPlayerCameraResult pPrevCameraResult)
const float CONST_ANGULAR_VELOCITY_STRENGTH
const float CONST_ANGULAR_LAG_PITCH_STRENGTH
float m_fDistance
distance from start
static const float CONST_SPRING_SMOOTHTIME_PITCH
static const float CONST_SPRING_SMOOTHTIME_POS_Y
override vector GetBaseAngles()
override vector GetAdditiveAngles()
override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
static const float CONST_UD_MAX
up limit
static const float CONST_SPRING_SMOOTHTIME_ROLL
static const float CONST_LR_MAX
up limit
vector m_LagOffsetPosition
lag offsets
float m_fUpDownAngle
runtime values
static const float CONST_SPRING_SMOOTHTIME_POS_Z
vector m_LagOffsetOrientation
vector m_CameraOffsetMS
runtime config
float m_fLeftRightAngleAdd
left right angle in rad
float m_fLagOffsetVelocityRoll[1]
static const float CONST_SPRING_SMOOTHTIME_POS_X
override vector GetAdditiveAngles()
override vector GetBaseAngles()
this is main camera class
proto native Transport GetTransport()
Native class for boats - handles physics simulation.
proto vector InvMultiply4(vector mat[4])
Invert-transforms position.
proto vector InvMultiply3(vector mat[3])
Invert-transforms vector.
float m_fDistance
camera distance (external cameras only)
class DayZPlayerCameraResult DayZPlayerCamera(DayZPlayer pPlayer, HumanInputController pInput)
vector GetCurrentOrientation()
proto native external vector GetOrigin()
Returns origin of Entity.
static proto vector MatrixToAngles(vector mat[3])
Returns angles of rotation matrix.
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.
static proto void MatrixInvMultiply3(vector mat0[3], vector mat1[3], out vector res[3])
Invert-transforms rotation matrix.
static float SmoothCDPI2PI(float val, float target, inout float velocity[], float smoothTime, float maxVelocity, float dt)
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static const float RAD2DEG
static const float DEG2RAD
static proto float AbsFloat(float f)
Returns absolute value.
static proto float SmoothCD(float val, float target, inout float velocity[], float smoothTime, float maxVelocity, float dt)
Does the CD smoothing function - easy in | easy out / S shaped smoothing.
proto native vector GetVelocity(notnull IEntity ent)
Returns linear velocity.
proto vector dBodyGetAngularVelocity(notnull IEntity body)
Gets angular velocity for a rigidbody.