#pragma once #include const int g_iCamTickFactor= 2 << 14; #ifdef CAMERATESTER #include "TextFileReader.h" #include "StringHelper.h" #include "EditorHelp.h" #include #include #include #define CAMERAEDIT #endif struct SCameraDefinition { D3DXVECTOR3 m_vec3Pos; D3DXVECTOR3 m_vec3Rot; float m_fDOF; float m_fFOV; int m_iDemoTime; }; struct SCameraKey { int m_dwTime; int m_dwDemoTimeStart; int m_dwDemoTimeSpeed; float m_fPos[ 3 ]; float m_fRot[ 3 ]; float m_fDOF; float m_fFOV; float m_fTangentOffset[ 2 ]; #ifdef CAMERATESTER void ToString( std::string& strData ); void FromString( std::string& strData ); void Reset(); void FromCameraDefinition( SCameraDefinition& camDef ); void ToCameraDefinition( SCameraDefinition& camDef ); #endif CAMERATESTER }; struct SActCamData { SCameraKey* m_pCamData; int m_iMaxStepCount; }; void InterpolateCamLocal( SActCamData* pData, int iIndex, int dwLocalTime, SCameraDefinition& Out ); int CalcCamGlobal( SActCamData* pData, int dwTime, SCameraDefinition& Out ); #ifndef CAMERATESTER void PreparePlayCam(); void PlayCam( int iRealTimePassed, SCameraDefinition& CamData ); #endif /* void drawLine( D3DXVECTOR3& pvec3Pos1, D3DXVECTOR3& pvec3Pos2, DWORD dwColor ) { //g_pMatrixStack->LoadIdentity(); //g_d3d_device->SetTransform( D3DTS_WORLD, g_pMatrixStack->GetTop() ); g_d3d_device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TFACTOR ); g_d3d_device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); g_d3d_device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_DISABLE ); g_d3d_device->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DISABLE ); g_d3d_device->SetRenderState( D3DRS_FOGENABLE, FALSE ); g_d3d_device->SetRenderState( D3DRS_ZENABLE, FALSE ); g_d3d_device->SetRenderState( D3DRS_LIGHTING, FALSE ); SVertex v[ 3 ]; g_d3d_device->SetRenderState( D3DRS_TEXTUREFACTOR, dwColor ); v[ 0 ].x= pvec3Pos1.x; v[ 0 ].y= pvec3Pos1.y; v[ 0 ].z= pvec3Pos1.z; v[ 1 ].x= pvec3Pos2.x; v[ 1 ].y= pvec3Pos2.y; v[ 1 ].z= pvec3Pos2.z; g_d3d_device->DrawPrimitiveUP( D3DPT_LINESTRIP, 1, v, sizeof( SVertex )); g_d3d_device->SetRenderState( D3DRS_FOGENABLE, TRUE ); g_d3d_device->SetRenderState( D3DRS_ZENABLE, TRUE ); }*/ #ifdef CAMERATESTER const int c_iCamCount= 64; int GetCamTrackCount(); std::vector& GetCamTrack( int iIndex ); std::vector& GetEditTrack(); void ReadCameraTrack( char* pcFileName, int iTrack ); void WriteCameraTrack( char* pcFileName, int iTrack ); void ReadCamera(); void WriteCameraHeader(); void ReadCameraAll(); void WriteCameraAll(); void DrawEditOutput(); void Save(); void Reload(); void MakeTimeContinous(); void DeleteTrack(); void MoveTrack(); void ClearTrack(); void AddTrack(); void LockTrack(); void ChangeTrack(); void ChangeStep(); void EditToStep(); void VerifyStep(); void ChangeTangent( int iCount ); void ChangeStart(); void ChangeSpeed(); void ChangeLength(); void SetStep(); void RemoveStep(); void SetStepCamera(); void HomeCam(); void TickFreeCam( int iTime ); void ChangeStepKeys( int iPrior, int iNext ); void InterpolateCamGlobal( int iRealTimePassed, SCameraDefinition& CamData ); void DrawCameraDebugOutput(); int FillDataFromEdit(SActCamData& data); int GetCurrentTrackStartTime(); void ResetRealTime(); void CalcCamTrackStarts(); void SetStepFromTime(); int CalculateRealTime(); int CalculateDemoTime(); bool IsFreeCam(); int GetRealTime(); #endif