147 lines
3.8 KiB
C++
147 lines
3.8 KiB
C++
|
|
#include "StdAfx.h"
|
|||
|
|
#include "ObjectScene.h"
|
|||
|
|
#include "RenderBase.h"
|
|||
|
|
|
|||
|
|
CObjectScene::CObjectScene()
|
|||
|
|
{
|
|||
|
|
m_Type = CObjectBase::SCENE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CObjectScene::~CObjectScene()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CObjectScene::Process( LOCAL_TIME LocalTime )
|
|||
|
|
{
|
|||
|
|
if( m_bShow == false ) return;
|
|||
|
|
CObjectBase::Process( LocalTime );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CObjectScene::Show( bool bShow )
|
|||
|
|
{
|
|||
|
|
CObjectBase::Show( bShow );
|
|||
|
|
|
|||
|
|
for( DWORD i=0; i<m_pVecChild.size(); i++ ) {
|
|||
|
|
m_pVecChild[i]->Show( bShow );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CObjectScene::Activate()
|
|||
|
|
{
|
|||
|
|
InitPropertyInfo();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CObjectScene::InitPropertyInfo()
|
|||
|
|
{
|
|||
|
|
SAFE_DELETE_PVEC( m_pVecPropertyList );
|
|||
|
|
|
|||
|
|
PropertyGridBaseDefine Default[] = {
|
|||
|
|
{ "Common", "Background Color", CUnionValueProperty::Color, "Background Color", TRUE },
|
|||
|
|
{ "Common", "Grid", CUnionValueProperty::Boolean, "Show/Hide Grid", TRUE },
|
|||
|
|
{ "Environment", "Texture", CUnionValueProperty::String_FileOpen, "Texture File|All Texture Files|*.dds;*.jpg;*.tga;*.bmp", TRUE },
|
|||
|
|
{ "Common", "Axis", CUnionValueProperty::Boolean, "Show/Hide Axis", TRUE },
|
|||
|
|
NULL,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
AddPropertyInfo( Default );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CObjectScene::OnSetPropertyValue( DWORD dwIndex, CUnionValueProperty *pVariable )
|
|||
|
|
{
|
|||
|
|
switch( dwIndex ) {
|
|||
|
|
case 0:
|
|||
|
|
{
|
|||
|
|
DWORD dwColor = CRenderBase::GetInstance().GetBackgroundColor();
|
|||
|
|
pVariable->SetVariable( (int)RGB( GetBValue(dwColor), GetGValue(dwColor), GetRValue(dwColor) ) );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 1:
|
|||
|
|
pVariable->SetVariable( CRenderBase::GetInstance().IsShowGrid() );
|
|||
|
|
break;
|
|||
|
|
case 2:
|
|||
|
|
pVariable->SetVariable( (char*)CRenderBase::GetInstance().GetEnvironmentTexture() );
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
pVariable->SetVariable( CRenderBase::GetInstance().IsShowAxis() );
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CObjectScene::OnChangePropertyValue( DWORD dwIndex, CUnionValueProperty *pVariable )
|
|||
|
|
{
|
|||
|
|
switch( dwIndex ) {
|
|||
|
|
case 0:
|
|||
|
|
{
|
|||
|
|
BYTE r = GetRValue(pVariable->GetVariableInt());
|
|||
|
|
BYTE g = GetGValue(pVariable->GetVariableInt());
|
|||
|
|
BYTE b = GetBValue(pVariable->GetVariableInt());
|
|||
|
|
CRenderBase::GetInstance().SetBackgroundColor( D3DCOLOR_ARGB( 255, r, g, b ) );
|
|||
|
|
EternityEngine::SetCaptureScreenClearColor( D3DCOLOR_ARGB( 255, r, g, b ) );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 1:
|
|||
|
|
CRenderBase::GetInstance().ShowGrid( pVariable->GetVariableBool() );
|
|||
|
|
break;
|
|||
|
|
case 2:
|
|||
|
|
CRenderBase::GetInstance().SetEnvironmentTexture( pVariable->GetVariableString() );
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
CRenderBase::GetInstance().ShowAxis( pVariable->GetVariableBool() );
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CObjectScene::OnSelectChangePropertyValue( DWORD dwIndex, CUnionValueProperty *pVariable )
|
|||
|
|
{
|
|||
|
|
switch( dwIndex ) {
|
|||
|
|
case 1:
|
|||
|
|
CRenderBase::GetInstance().ShowGrid( pVariable->GetVariableBool() );
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
CRenderBase::GetInstance().ShowAxis( pVariable->GetVariableBool() );
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CObjectScene::ExportObject( FILE *fp, int &nCount )
|
|||
|
|
{
|
|||
|
|
fwrite( &m_Type, sizeof(int), 1, fp );
|
|||
|
|
|
|||
|
|
DWORD dwColor = CRenderBase::GetInstance().GetBackgroundColor();
|
|||
|
|
bool bShowGrid = CRenderBase::GetInstance().IsShowGrid();
|
|||
|
|
fwrite( &dwColor, sizeof(DWORD), 1, fp );
|
|||
|
|
fwrite( &bShowGrid, sizeof(bool), 1, fp );
|
|||
|
|
|
|||
|
|
MatrixEx *pCamera = CRenderBase::GetInstance().GetCameraCross();
|
|||
|
|
|
|||
|
|
fwrite( pCamera, sizeof(MatrixEx), 1, fp );
|
|||
|
|
|
|||
|
|
fwrite( &m_bShow, sizeof(bool), 1, fp );
|
|||
|
|
|
|||
|
|
nCount++;
|
|||
|
|
|
|||
|
|
CObjectBase::ExportObject( fp, nCount );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CObjectScene::ImportObject( FILE *fp )
|
|||
|
|
{
|
|||
|
|
DWORD dwColor;
|
|||
|
|
bool bShowGrid;
|
|||
|
|
fread( &dwColor, sizeof(DWORD), 1, fp );
|
|||
|
|
fread( &bShowGrid, sizeof(bool), 1, fp );
|
|||
|
|
|
|||
|
|
MatrixEx Camera;
|
|||
|
|
fread( &Camera, sizeof(MatrixEx), 1, fp );
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>⼭ <20>ٷ<EFBFBD> Show<6F>ϴ<EFBFBD> <20>ڽı<DABD><C4B1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.
|
|||
|
|
// <20>ٵ<EFBFBD> <20>ڽı<DABD><C4B1><EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> <20>ڽ<EFBFBD> <20><> <20>ε<EFBFBD><CEB5><EFBFBD> <20>Ŀ<EFBFBD> <20>ѹ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ°Ŷ<C2B0>, <20>ָ<EFBFBD><D6B8>ϴ<EFBFBD>. <20>켱 <20><><EFBFBD><EFBFBD>.
|
|||
|
|
fread( &m_bShow, sizeof(bool), 1, fp );
|
|||
|
|
|
|||
|
|
Show( m_bShow );
|
|||
|
|
|
|||
|
|
CRenderBase::GetInstance().SetCameraCross( &Camera );
|
|||
|
|
|
|||
|
|
CRenderBase::GetInstance().SetBackgroundColor( dwColor );
|
|||
|
|
CRenderBase::GetInstance().ShowGrid( bShowGrid );
|
|||
|
|
|
|||
|
|
}
|