2024-12-21 10:04:04 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#define CAMERA_FILE_STRING "Eternity Engine Camera File 0.1"
|
|
|
|
|
#define CAMERA_FILE_VERSION 10
|
|
|
|
|
#define CAMERA_HEADER_RESERVED ( 1024 - sizeof( SCameraFileHeader ) )
|
|
|
|
|
|
|
|
|
|
enum ExportCameraType
|
|
|
|
|
{
|
|
|
|
|
CT_FREE_CAMERA = 0,
|
|
|
|
|
CT_TARGET_CAMERA = 1,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct SCameraFileHeader
|
|
|
|
|
{
|
|
|
|
|
char szHeaderString[ 256 ];
|
|
|
|
|
int nVersion;
|
|
|
|
|
int nFrame;
|
|
|
|
|
int nType;
|
|
|
|
|
int nFOVKeyCount;
|
|
|
|
|
int nPositionKeyCount;
|
|
|
|
|
int nRotationKeyCount;
|
|
|
|
|
float fDefaultFOV;
|
|
|
|
|
EtVector3 vDefaultPosition;
|
|
|
|
|
EtQuat qDefaultRotation;
|
|
|
|
|
char szCameraName[ 32 ];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct SCameraFOVKey
|
|
|
|
|
{
|
|
|
|
|
int nTime;
|
|
|
|
|
float fFOV;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct SCameraPostionKey
|
|
|
|
|
{
|
|
|
|
|
int nTime;
|
|
|
|
|
EtVector3 vPosition;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct SCameraRotationKey
|
|
|
|
|
{
|
|
|
|
|
int nTime;
|
|
|
|
|
EtQuat qRotation;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class CCameraData
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
CCameraData(void);
|
|
|
|
|
virtual ~CCameraData(void);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
SCameraFileHeader m_Header;
|
|
|
|
|
std::vector< SCameraFOVKey > m_vecFOV;
|
|
|
|
|
std::vector< SCameraPostionKey > m_vecPosition;
|
|
|
|
|
std::vector< SCameraRotationKey > m_vecRotation;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
void LoadResource( CStream *pStream );
|
|
|
|
|
};
|