134 lines
2.5 KiB
C
134 lines
2.5 KiB
C
#pragma once
|
|
/*
|
|
void homeCam()
|
|
{
|
|
g_CamPos.x= 0.0f;
|
|
g_CamPos.y= 60.0f;
|
|
g_CamPos.z= 75.0f;
|
|
g_CamRot.x= 3.14f;
|
|
g_CamRot.y= 0.65f;
|
|
g_CamRot.z= 0.0f;
|
|
|
|
#ifdef MESHTESTER
|
|
g_CamPos.x= 0.0f;
|
|
g_CamPos.y= 1.0f;
|
|
g_CamPos.z= -5.0f;
|
|
g_CamRot.x= 0.0f;
|
|
g_CamRot.y= 0.0f;
|
|
g_CamRot.z= 0.0f;
|
|
#endif
|
|
|
|
#ifdef PUPPETTESTER
|
|
g_CamPos.x= 0.0f;
|
|
g_CamPos.y= 1.0f;
|
|
g_CamPos.z= -5.0f;
|
|
g_CamRot.x= 0.0f;
|
|
g_CamRot.y= 0.0f;
|
|
g_CamRot.z= 0.0f;
|
|
#endif
|
|
|
|
#ifdef CURSOR3D
|
|
g_CursorPos.x= 0.0f;
|
|
g_CursorPos.y= 0.0f;
|
|
g_CursorPos.z= 0.0f;
|
|
#endif
|
|
}
|
|
|
|
void EditCam()
|
|
{
|
|
static POINT OldCurPos;
|
|
POINT CurPos;
|
|
GetCursorPos( &CurPos );
|
|
|
|
if( GetAsyncKeyState( VK_HOME ) )
|
|
{
|
|
homeCam();
|
|
}
|
|
|
|
if( GetAsyncKeyState( VK_MBUTTON ) || GetAsyncKeyState( VK_RBUTTON ) )
|
|
{
|
|
g_CamRot.x+= 0.002f * ( OldCurPos.x - CurPos.x );
|
|
g_CamRot.y-= 0.002f * ( OldCurPos.y - CurPos.y );
|
|
g_CamRot.y= max( g_CamRot.y, -1.56f );
|
|
g_CamRot.y= min( g_CamRot.y, 1.56f );
|
|
|
|
|
|
static float fSpeedA= 0.0f;
|
|
|
|
if( GetAsyncKeyState( VK_UP ) )
|
|
{
|
|
fSpeedA= max( fSpeedA, 0.0f );
|
|
fSpeedA+= 0.01f;
|
|
g_CamPos+= fSpeedA * g_CamFront;
|
|
}
|
|
else if( GetAsyncKeyState( VK_DOWN ) )
|
|
{
|
|
fSpeedA= min( fSpeedA, 0.0f );
|
|
fSpeedA-= 0.01f;
|
|
g_CamPos+= fSpeedA * g_CamFront;
|
|
}
|
|
else
|
|
{
|
|
fSpeedA= 0.0f;
|
|
}
|
|
|
|
static float fSpeedB= 0.0f;
|
|
|
|
if( GetAsyncKeyState( VK_RIGHT ) )
|
|
{
|
|
fSpeedB= max( fSpeedB, 0.0f );
|
|
fSpeedB+= 0.01f;
|
|
g_CamPos+= fSpeedB * g_CamRight;
|
|
}
|
|
else if( GetAsyncKeyState( VK_LEFT ) )
|
|
{
|
|
fSpeedB= min( fSpeedB, 0.0f );
|
|
fSpeedB-= 0.01f;
|
|
g_CamPos+= fSpeedB * g_CamRight;
|
|
}
|
|
else
|
|
{
|
|
fSpeedB= 0.0f;
|
|
}
|
|
static float fSpeedC= 0.0f;
|
|
|
|
if( GetAsyncKeyState( VK_NUMPAD1 ) )
|
|
{
|
|
fSpeedC= max( fSpeedC, 0.0f );
|
|
fSpeedC+= 0.01f;
|
|
g_CamPos.y+= fSpeedC;
|
|
}
|
|
else if( GetAsyncKeyState( VK_NUMPAD0 ) )
|
|
{
|
|
fSpeedC= min( fSpeedC, 0.0f );
|
|
fSpeedC-= 0.01f;
|
|
g_CamPos.y+= fSpeedC;
|
|
}
|
|
else
|
|
{
|
|
fSpeedC= 0.0f;
|
|
}
|
|
}
|
|
OldCurPos= CurPos;
|
|
}*/
|
|
|
|
void FillCameraMatrix( D3DXVECTOR3 v3Pos, D3DXVECTOR3 v3Rot, D3DXMATRIX* CamMat )
|
|
{
|
|
float fYLeft= cos( v3Rot.y );
|
|
g_CamFront.x= -sin( v3Rot.x ) * fYLeft ;
|
|
g_CamFront.y= -sin( v3Rot.y );
|
|
g_CamFront.z= cos( v3Rot.x ) * fYLeft ;
|
|
D3DXVec3Normalize(&g_CamFront, &g_CamFront);
|
|
|
|
D3DXMatrixRotationYawPitchRoll( CamMat,
|
|
-v3Rot.x,
|
|
v3Rot.y,
|
|
v3Rot.z );
|
|
|
|
D3DXMATRIX CamMove;
|
|
D3DXMatrixTranslation( &CamMove, v3Pos.x, v3Pos.y, v3Pos.z );
|
|
D3DXMatrixMultiply( CamMat, CamMat, &CamMove );
|
|
|
|
|
|
D3DXMatrixInverse(CamMat, NULL, CamMat );
|
|
} |