1 #include "mof/AmbientLight.hpp"
2 #include "mof/ConsoleIO.hpp"
3 #include "mof/private/GraphicsDeviceImpl.hpp"
5 struct mof::AmbientLight::Impl{
6 mof::Color lastAmbient;
11 void reflect( mof::Color color , bool force = false);
14 mof::AmbientLight::Impl::Impl()
19 mof::AmbientLight::Impl::~Impl(){
23 mof::AmbientLight::AmbientLight( mof::Color4f color )
24 : m_pImpl( new Impl() ) , mof::Light()
26 setDiffuseColor(color);
27 m_pImpl->reflect( m_diffuseColor->value(m_frame).toColorCode() , true);
31 mof::AmbientLight::~AmbientLight(){
33 setEnable(false);//
\97á
\8aO
\82ð
\93\8a\82°
\82é
\82©
\82à
34 }catch(std::exception& ){
38 void mof::AmbientLight::setFrameNumber(mof::FrameNumber frame){
40 m_pImpl->reflect( m_diffuseColor->value(m_frame).toColorCode() );
44 void mof::AmbientLight::nextFrame(){
45 setFrameNumber(m_frame + 1);
48 void mof::AmbientLight::prevFrame(){
49 if(m_frame > 0)setFrameNumber(m_frame - 1);
53 void mof::AmbientLight::setEnable(bool enable){
54 if(!m_pImpl->enable && enable){
55 m_pImpl->enable = enable;
56 m_pImpl->reflect( m_diffuseColor->value(m_frame).toColorCode() );
58 else if(m_pImpl->enable && !enable){
59 m_pImpl->enable = enable;
60 m_pImpl->reflect( m_diffuseColor->value(m_frame).toColorCode() );
65 void mof::AmbientLight::Impl::reflect(mof::Color color , bool force){
66 //
\95¡
\90\94\82Ì
\83A
\83\93\83r
\83G
\83\93\83g
\82ð
\83T
\83|
\81[
\83g
\82·
\82é
\82×
\82«
67 mof::Color ambient = color;
68 if(!enable)ambient = mof::createColor(0 , 0 , 0);
70 if(ambient != lastAmbient || force){
71 mof::GraphicsDevice::getRawDevice()->SetRenderState(D3DRS_AMBIENT , ambient);
72 lastAmbient = ambient;