+++ /dev/null
-#include "mof/AbstractScene.h"\r
-#include "mof/ConsoleIO.h"\r
-\r
-\r
-\r
-\r
-mof::AbstractScene::AbstractScene() {\r
- //m_state = mof::AbstractScene::UNINITIALIZED;\r
- //m_beginEffect = NULL;\r
- //m_endEffect = NULL;\r
- m_active = true;\r
- //m_initialized = false;\r
-}\r
-\r
-\r
-mof::AbstractScene::~AbstractScene(){\r
- //delete m_beginEffect;\r
- //delete m_endEffect;\r
- \r
-}\r
-/*\r
-bool mof::AbstractScene::isInitialized(){\r
- return (m_state != mof::AbstractScene::UNINITIALIZED);\r
-}*/\r
-\r
-\r
-bool mof::AbstractScene::isActive(){\r
- return m_active;//(m_state == mof::AbstractScene::ACTIVE || m_state == mof::AbstractScene::OPENING || m_state == mof::AbstractScene::CLOSING);\r
-}\r
-\r
-/*\r
-bool mof::AbstractScene::isClosing(){\r
- return m_state == mof::AbstractScene::CLOSING;\r
-}\r
-\r
-\r
-bool mof::AbstractScene::isOpening(){\r
- return m_state == mof::AbstractScene::OPENING;\r
-}*/\r
-/*\r
-void mof::AbstractScene::setBeginEffect(Effect* effect){\r
- delete m_beginEffect;\r
- m_beginEffect = effect;\r
- if(effect != NULL)effect->addEffectListener(this);\r
-}\r
-\r
-mof::Effect* mof::AbstractScene::getBeginEffect(){\r
- return m_beginEffect;\r
-}\r
-\r
-\r
-void mof::AbstractScene::setEndEffect(Effect* effect){\r
- delete m_endEffect;\r
- m_endEffect = effect;\r
- if(effect != NULL)effect->addEffectListener(this);\r
-}\r
-\r
-mof::Effect* mof::AbstractScene::getEndEffect(){\r
- return m_endEffect;\r
-}*/\r
-\r
-/*\r
-bool mof::AbstractScene::initialize(){\r
- m_state = mof::AbstractScene::INITIALIZED;\r
- //Activate(true);\r
- return true;\r
-}*/\r
-\r
-void mof::AbstractScene::activate(bool activate){\r
- m_active = activate;\r
- /*if(activate){\r
- m_state = mof::AbstractScene::ACTIVE;\r
- //playBeginEffect();\r
- //InputCore::getInstance()->addListener(this);\r
- }\r
- else {\r
- m_state = mof::AbstractScene::UNACTIVE;\r
- //playEndEffect();\r
- ////InputCore::getInstance()->removeListener(this);\r
- \r
- }*/\r
-}\r
-\r
-/*\r
-void mof::AbstractScene::notifyEffectEvent(EffectEvent& effectEvent){\r
- if(effectEvent.object == m_beginEffect && effectEvent.type == EffectEvent::FINISHED){\r
- m_state = mof::AbstractScene::ACTIVE;\r
- }\r
- if(effectEvent.object == m_endEffect && effectEvent.type == EffectEvent::FINISHED){\r
- m_state = mof::AbstractScene::UNACTIVE;\r
- }\r
-}\r
-\r
-\r
-void mof::AbstractScene::playBeginEffect(){\r
- if(m_beginEffect == NULL){\r
- m_state = mof::AbstractScene::ACTIVE;\r
- return;\r
- }\r
- m_state = mof::AbstractScene::OPENING;\r
- m_beginEffect->play();\r
-}\r
-\r
-\r
-void mof::AbstractScene::playEndEffect(){\r
- if(m_endEffect == NULL){\r
- m_state = mof::AbstractScene::UNACTIVE;\r
- return;\r
- }\r
- m_state = mof::AbstractScene::CLOSING;\r
- m_endEffect->play();\r
-}*/\r
+++ /dev/null
-#include "mof/AmbientLight.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-\r
-struct mof::AmbientLight::Impl{\r
- mof::Color lastAmbient;\r
- bool enable;\r
-\r
- Impl();\r
- ~Impl();\r
- void reflect( mof::Color color , bool force = false);\r
-};\r
-\r
-mof::AmbientLight::Impl::Impl()\r
-: enable(true)\r
-{\r
-}\r
-\r
-mof::AmbientLight::Impl::~Impl(){\r
- \r
-}\r
-\r
-mof::AmbientLight::AmbientLight( mof::Color4f color )\r
-: m_pImpl( new Impl() ) , mof::Light() \r
-{\r
- setDiffuseColor(color);\r
- m_pImpl->reflect( m_diffuseColor->getValue(m_frame).toColorCode() , true);\r
-}\r
-\r
-\r
-mof::AmbientLight::~AmbientLight(){\r
- try{\r
- setEnable(false);//\97á\8aO\82ð\93\8a\82°\82é\82©\82à\r
- }catch(std::exception& ){\r
- }\r
-}\r
-\r
-void mof::AmbientLight::setFrameNumber(mof::FrameNumber frame){\r
- m_frame = frame;\r
- m_pImpl->reflect( m_diffuseColor->getValue(m_frame).toColorCode() );\r
- \r
-}\r
-\r
-void mof::AmbientLight::nextFrame(){\r
- setFrameNumber(m_frame + 1);\r
-}\r
-\r
-void mof::AmbientLight::prevFrame(){\r
- if(m_frame > 0)setFrameNumber(m_frame - 1);\r
-}\r
-\r
-\r
-void mof::AmbientLight::setEnable(bool enable){\r
- if(!m_pImpl->enable && enable){\r
- m_pImpl->enable = enable;\r
- m_pImpl->reflect( m_diffuseColor->getValue(m_frame).toColorCode() );\r
- }\r
- else if(m_pImpl->enable && !enable){\r
- m_pImpl->enable = enable;\r
- m_pImpl->reflect( m_diffuseColor->getValue(m_frame).toColorCode() );\r
- }\r
-}\r
-\r
-\r
-void mof::AmbientLight::Impl::reflect(mof::Color color , bool force){\r
- //\95¡\90\94\82Ì\83A\83\93\83r\83G\83\93\83g\82ð\83T\83|\81[\83g\82·\82é\82×\82«\r
- mof::Color ambient = color;\r
- if(!enable)ambient = mof::createColor(0 , 0 , 0);\r
-\r
- if(ambient != lastAmbient || force){\r
- mof::GraphicsDevice::getRawDevice()->SetRenderState(D3DRS_AMBIENT , ambient);\r
- lastAmbient = ambient;\r
- }\r
-}\r
+++ /dev/null
-#ifndef MOF_AMBIENT_LIGHT\r
-#define MOF_AMBIENT_LIGHT\r
-\r
-#include "mof/Light.hpp"\r
-#include "mof/Color.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-\r
-\r
-namespace mof{\r
-\r
-\r
-\r
-class AmbientLight : public Light{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
-public:\r
- AmbientLight( mof::Color4f color = mof::Color4f(1 , 1 , 1));\r
- virtual ~AmbientLight();\r
-\r
- virtual void setEnable(bool enable);\r
-\r
- virtual void setFrameNumber(mof::FrameNumber frame);\r
- virtual void nextFrame();\r
- virtual void prevFrame();\r
-\r
-};\r
-\r
-}\r
-\r
-\r
-#endif\r
+++ /dev/null
-#include "mof/Application.hpp"\r
-#include "mof/GraphicsDevice.hpp"\r
-#include "mof/Window.hpp"\r
-#include "mof/SceneGraph.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/Timer.hpp"\r
-#include <stdexcept>\r
-#include "mof/Captor.hpp"\r
-#include "mof/InputDevice.hpp"\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/Finalizer.hpp"\r
-\r
-namespace \r
-{\r
- int m_frameInterval;\r
- int m_nUpdatingPerFrame;\r
- mof::Window* m_pWindow = NULL;\r
-}\r
-\r
-namespace mof\r
-{\r
- void Application::initialize\r
- ( \r
- const mof::tstring& appname , \r
- int width , \r
- int height ,\r
- bool fullscreen ,\r
- int frameInterval , \r
- int nUpdatingPerFrame\r
- )\r
- {\r
- m_frameInterval = frameInterval;\r
- m_nUpdatingPerFrame = nUpdatingPerFrame; \r
- m_pWindow = new mof::Window( appname , width , height , fullscreen );\r
- mof::GraphicsDevice::initialize( *m_pWindow , width , height , fullscreen );\r
- mof::InputDevice::initialize( );\r
- \r
- }\r
- \r
- void Application::finalize( )\r
- {\r
- mof::GraphicsDevice::finalize();\r
- mof::InputDevice::finalize();\r
- delete m_pWindow;\r
- }\r
- \r
- \r
- void Application::run( Scene& scene ) \r
- {\r
- scene.initialize();\r
- mof::Finalizer finalizer( scene.finalize ); //run\82ð\94²\82¯\82é\82Æ\82«\82É\89ð\95ú\8f\88\97\9d\82ð\8ds\82¤\r
- MSG msg;\r
- ZeroMemory( &msg, sizeof(msg) );\r
- mof::Timer timer;\r
- mof::Timer fpsTimer;\r
- int frameCount = 0;\r
-\r
- mof::Captor Captor( _T("output"));\r
- int sleepingTime = 0;\r
- for( ; ; )\r
- {\r
- while( PeekMessage( &msg, NULL, 0U, 0U, PM_NOREMOVE ) )\r
- {\r
- if( msg.message == WM_QUIT )return;\r
- GetMessage( &msg , NULL , 0 , 0 );\r
- TranslateMessage( &msg );\r
- DispatchMessage( &msg );\r
- }\r
- \r
- for( int i = 0 ; i < m_nUpdatingPerFrame ; i++ )scene.update();//\83V\81[\83\93\82Ì\8f\88\97\9d\r
-\r
- \r
- mof::GraphicsDevice::beginScene();\r
- scene.draw();//\83V\81[\83\93\82Ì\95`\89æ\r
- //Captor.capture();\r
- mof::GraphicsDevice::endScene();\r
- \r
- \r
-\r
- //FPS\82Ì\8cv\91ª\r
- int frameTime = timer.getTime();\r
- if(m_frameInterval > frameTime)\r
- {\r
- Sleep(m_frameInterval - frameTime);\r
- sleepingTime += m_frameInterval - frameTime;\r
- }\r
- \r
- timer.reset();\r
- \r
- if(++frameCount % 500 == 0)\r
- {\r
- float fps = 500.0f / static_cast<float>(fpsTimer.getTime() - sleepingTime) * 1000;\r
- fpsTimer.reset();\r
- sleepingTime = 0;\r
- DEBUG_PRINT( "FPS --- " << fps );\r
- }\r
- } // for\r
- \r
-\r
- } // function run\r
- \r
- void Application::quit( )\r
- {\r
- PostQuitMessage(0);\r
- }\r
-\r
-\r
-}\r
-\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/tstring.hpp"\r
-\r
-namespace mof{\r
-\r
- struct Scene\r
- {\r
- void ( *initialize ) ();\r
- void ( *finalize ) ();\r
- void ( *update ) ();\r
- void ( *draw ) ();\r
- };\r
- \r
- namespace Application\r
- {\r
- //private\r
- \r
- //public\r
- void initialize\r
- ( \r
- const mof::tstring& appname , \r
- int width , \r
- int height ,\r
- bool fullscreen ,\r
- int frameInterval , \r
- int nUpdatingPerFrame\r
- );\r
- void finalize();\r
- void run( Scene& scene );\r
- void quit();\r
- }\r
-\r
-\r
-}\r
+++ /dev/null
-#include "mof/Board.hpp"\r
-#include "mof/Camera.hpp"\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/Constant.hpp"\r
-\r
-struct mof::Board::Impl{\r
- boost::shared_ptr<mof::Texture> pTexture;\r
- mof::Animation<mof::Matrix3D>::Handler worldMatrix;\r
- mof::Animation<mof::Color4f>::Handler color;\r
- mof::Animation<mof::Rectangle<float>>::Handler textureCoordinates;\r
-\r
- Impl( )\r
- : \r
- worldMatrix(mof::makeConstantHandler(mof::Matrix3D::createIdentity())) ,\r
- textureCoordinates(mof::makeConstantHandler(mof::Rectangle<float>(0 , 0 , 1 , 1))) ,\r
- color(mof::makeConstantHandler(mof::Color4f(1 , 1 , 1)))\r
- {\r
- }\r
-\r
- ~Impl(){}\r
-};\r
-\r
-\r
-\r
-mof::Board::Board() : m_pImpl(new Impl()){\r
-}\r
-\r
-mof::Board::~Board(){\r
-}\r
- \r
-\r
-\r
-\r
-void mof::Board::setWorldMatrix(const mof::Animation<mof::Matrix3D>::Handler& handler){\r
- m_pImpl->worldMatrix = handler;\r
-\r
-}\r
-\r
-\r
-\r
-void mof::Board::setColor(const mof::Animation<mof::Color4f>::Handler& handler){\r
- m_pImpl->color = handler;\r
-}\r
-\r
-\r
-\r
-\r
-void mof::Board::setTextureCoordinates(const mof::Animation<mof::Rectangle<float>>::Handler& handler){\r
- m_pImpl->textureCoordinates = handler;\r
-}\r
-\r
-void mof::Board::setTextureCoordinates(const mof::Rectangle<float>& coordinates){\r
- setTextureCoordinates(mof::makeConstantHandler(coordinates));\r
-}\r
-\r
-void mof::Board::setTexture( const boost::shared_ptr<mof::Texture>& pTexture ){\r
- m_pImpl->pTexture = pTexture;\r
-}\r
-\r
-\r
-bool mof::Board::isVisible() const{\r
- return true;\r
-}\r
-\r
-void mof::Board::update(){\r
- nextFrame();\r
-}\r
-\r
-void mof::Board::draw() const{\r
- mof::FrameNumber frame = m_frame;\r
- mof::Rectangle<float> textureCoordinates = m_pImpl->textureCoordinates->getValue(frame);\r
- mof::Color color = m_pImpl->color->getValue(frame).toColorCode();\r
- static mof::VertexXYZCUV vertices[4];\r
- vertices[0].x = -0.5f;\r
- vertices[0].y = 0.5f;\r
- vertices[0].z = 0;\r
- vertices[0].color = color;\r
- vertices[0].tu = textureCoordinates.beginX;\r
- vertices[0].tv = textureCoordinates.beginY;\r
-\r
- vertices[1].x = 0.5f;\r
- vertices[1].y = 0.5f;\r
- vertices[1].z = 0;\r
- vertices[1].color = color;\r
- vertices[1].tu = textureCoordinates.endX;\r
- vertices[1].tv = textureCoordinates.beginY;\r
-\r
- vertices[2].x = -0.5f;\r
- vertices[2].y = -0.5f;\r
- vertices[2].z = 0;\r
- vertices[2].color = color;\r
- vertices[2].tu = textureCoordinates.beginX;\r
- vertices[2].tv = textureCoordinates.endY;\r
-\r
- vertices[3].x = 0.5f;\r
- vertices[3].y = -0.5f;\r
- vertices[3].z = 0;\r
- vertices[3].color = color;\r
- vertices[3].tu = textureCoordinates.endX;\r
- vertices[3].tv = textureCoordinates.endY;\r
-\r
- mof::GraphicsDevice::setTexture(m_pImpl->pTexture.get());\r
- mof::GraphicsDevice::setWorldTransform(m_pImpl->worldMatrix->getValue(frame));\r
- mof::GraphicsDevice::drawVertexArray(vertices[0] , vertices[3] , PRIMITIVE_TYPE_TRIANGLESTRIP);\r
-\r
- \r
-}\r
-\r
-\r
+++ /dev/null
-#ifndef BILLBOARD_HPP\r
-#define BILLBOARD_HPP\r
-\r
-#include "mof/Component3D.hpp"\r
-#include "mof/SceneGraph.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-#include "mof/Texture.hpp"\r
-#include "mof/DefaultAnimationPlayer.hpp"\r
-\r
-namespace mof{\r
- \r
-\r
-class Camera;\r
-\r
-class Board : public Component3D , public SceneGraph , public DefaultAnimationPlayer{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
-public :\r
- \r
- Board( );\r
- virtual ~Board();\r
-\r
- \r
- virtual void setWorldMatrix(const mof::Animation<mof::Matrix3D>::Handler& handler);\r
- virtual void setTextureCoordinates(const mof::Animation<mof::Rectangle<float>>::Handler& handler);\r
- virtual void setTextureCoordinates(const mof::Rectangle<float>& coordinates);\r
- virtual void setTexture( const boost::shared_ptr<mof::Texture>& pTexture );\r
-\r
- void setColor(const mof::Animation<mof::Color4f>::Handler& handler);\r
-\r
- virtual bool isVisible() const;\r
- virtual void update();\r
- virtual void draw() const;\r
-};\r
-\r
-}\r
-\r
-#endif\r
+++ /dev/null
-#include "mof/CSVFile.h"\r
-#include <exception>\r
-#include <stdlib.h>\r
-#include "mof/ConsoleIO.h"\r
-\r
-mof::CSVFile::CSVFile(mof::tstring& filename)\r
-: m_ifs(filename.c_str() , std::ios::in) , m_bufferSize(1024){\r
- if(!m_ifs)throw std::invalid_argument("can't open file");\r
- m_buffer = new TCHAR[m_bufferSize+1];//\92Ç\89Á\83k\83\8b\95¶\8e\9a\82Ì\82½\82ß\82É\82P\82Â\97]\95ª\82É\8am\95Û\r
- m_buffer[m_bufferSize] = '\0';\r
- m_topOfBuffer = m_bufferSize-1;\r
- m_hasBufferedValue = false;\r
- m_ignoreNL = true;\r
- m_pBufferedValue = NULL;\r
- nextLine();\r
-}\r
-\r
-\r
-\r
-mof::CSVFile::CSVFile(const TCHAR* filename)\r
-: m_ifs(filename , std::ios::in) , m_bufferSize(1024){\r
- if(!m_ifs)throw std::invalid_argument("can't open file");\r
- m_buffer = new TCHAR[m_bufferSize+1];//\92Ç\89Á\83k\83\8b\95¶\8e\9a\82Ì\82½\82ß\82É\82P\82Â\97]\95ª\82É\8am\95Û\r
- m_buffer[m_bufferSize] = '\0';\r
- m_topOfBuffer = m_bufferSize-1;\r
- m_hasBufferedValue = false;\r
- m_ignoreNL = true;\r
- m_pBufferedValue = NULL;\r
-\r
-\r
- nextLine();\r
-}\r
-\r
-\r
-mof::CSVFile::~CSVFile(){\r
- delete[] m_buffer;\r
- \r
-}\r
-\r
-bool mof::CSVFile::hasNextValue(){\r
- if(m_hasBufferedValue)return true;//Value\82Ì\83o\83b\83t\83@\82ª\82 \82é\r
- \r
- //if(m_topOfBuffer == m_bufferSize && !nextLine())return false;//\82±\82ê\82ª\82È\82¢\82Æ\83o\83O\82é\82ª\81A\89º\82Ì\83\8b\81[\83`\83\93\82Æ\88ê\96{\89»\82Å\82«\82È\82¢\82©\r
-\r
- while(!updateNextValue() && m_ignoreNL){\r
- if( m_topOfBuffer >= m_bufferSize || m_buffer[m_topOfBuffer] == '\0'){\r
- //\83o\83b\83t\83@\82ð\93Ç\82Ý\8d\9e\82Þ\r
- m_topOfBuffer = m_ifs.getline(m_buffer , m_bufferSize) ? 0 : m_bufferSize;\r
- if(m_topOfBuffer >= m_bufferSize)return false;\r
- }\r
- }\r
- return m_pBufferedValue != NULL;\r
-\r
- //if(m_topOfBuffer == m_bufferSize)\r
-}\r
-\r
-\r
-\r
-const TCHAR* mof::CSVFile::getNextValue(){\r
- if(m_hasBufferedValue && hasNextValue()){//Value\82Ì\83o\83b\83t\83@\82ª\82 \82ê\82Î\82»\82ê\82ð\8eg\82¤\r
- m_hasBufferedValue = false;\r
- return m_pBufferedValue;\r
- }\r
-\r
- //\8e\9f\82Ì\92l\82ª\82È\82¢\8fê\8d\87\r
- return NULL;\r
-\r
-}\r
-\r
-\r
-\r
-\r
-bool mof::CSVFile::nextLine(){\r
- m_hasBufferedValue = false;\r
- m_topOfBuffer = m_ifs.getline(m_buffer , m_bufferSize) ? 0 : m_bufferSize;\r
- return m_topOfBuffer == 0;\r
-}\r
-\r
-\r
-void mof::CSVFile::setIgnoreNL(bool ignore){\r
- m_ignoreNL = ignore;\r
-}\r
-\r
-\r
-\r
-bool mof::CSVFile::updateNextValue(){\r
-\r
- if(m_topOfBuffer == m_bufferSize){\r
- //\92l\82È\82µ\r
- m_pBufferedValue = NULL;\r
- m_hasBufferedValue = false;\r
- return false;\r
- }\r
-\r
- enum{\r
- ISPACE , ICOMMA , IQUOTE , IWORD , IEOF\r
- };\r
- enum{\r
- S , NQV , QV , NQE , QE , QVQ ,\r
- //\8f\89\8aú\8fó\91Ô\81A\94ñ\83N\83H\81[\83g\92l\81A\83N\83H\81[\83g\92l\81A\94ñ\83N\83H\81[\83g\83G\83X\83P\81[\83v\81A\83N\83H\81[\83g\83G\83X\83P\81[\83v\81A\83N\83H\81[\83g\82Å\88Í\82Ü\82ê\82½\92l\r
- _NULL , _EMP , _V , _ERR , _QVQ\r
- //\92l\82È\82µ\81A\8bó\95¶\8e\9a\97ñ\81A\92l\81A\83G\83\89\81[\81A\83N\83H\81[\83g\82Å\88Í\82Ü\82ê\82½\92l\r
- };\r
- static const int stateChangeTable[][5] = {\r
- { S , _EMP , QV , NQV , _NULL } ,\r
- { NQV , _V , NQE , NQV , _V} ,\r
- { QV , QV , QE , QV , _ERR} ,\r
- { _ERR , _ERR , NQV , _ERR , _ERR} ,\r
- { QVQ , _QVQ , QV , _ERR , _QVQ} ,\r
- { QVQ , _QVQ , _ERR , _ERR , _QVQ}\r
- \r
- };\r
- \r
-\r
- int state = S;\r
- int lastInput = IEOF;\r
- int begin = m_topOfBuffer;\r
- while( state < _NULL ){//\8fI\97¹\8fó\91Ô\82É\82È\82Á\82½\82ç\94²\82¯\82é\r
- lastInput = IWORD;\r
- if( m_buffer[m_topOfBuffer] == '\0'){\r
- lastInput = IEOF;\r
- }\r
- else if( m_buffer[m_topOfBuffer] == ' ')lastInput = ISPACE;\r
- else if(m_buffer[m_topOfBuffer] == '"')lastInput = IQUOTE;\r
- else if(m_buffer[m_topOfBuffer] == ',')lastInput = ICOMMA;\r
- state = stateChangeTable[state][lastInput];\r
- m_topOfBuffer++;\r
- }\r
- m_hasBufferedValue = true;\r
-\r
- if(state == _NULL){\r
- //\92l\82È\82µ\r
- m_pBufferedValue = NULL;\r
- m_topOfBuffer = m_bufferSize;\r
- m_hasBufferedValue = false;\r
- return false;\r
- }\r
- else if(state == _EMP){\r
- m_pBufferedValue = "";\r
- return true;\r
- }\r
- else if(state == _V || state == _QVQ){\r
- int end = m_topOfBuffer-2;\r
- //\91O\8cã\82©\82ç\83g\83\8a\83~\83\93\83O\r
- while(m_buffer[begin] == ' ')begin++;\r
- while(m_buffer[end] == ' ' )end--;\r
-\r
- if(state == _QVQ){\r
- //\97¼\92[\82Ì\81h\82ð\8f\9c\8b\8e\r
- begin++;\r
- end--;\r
- }\r
- \r
- //"\82Ì\83G\83X\83P\81[\83v\8f\88\97\9d\r
- //\8cã\82ë\82©\82ç\8c©\82Ä\82¢\82Á\82Ä"\82ª\82 \82ê\82Î\83R\83s\81[\82·\82é\r
- m_buffer[end+1] = '\0';\r
- for(int tmp = end ; begin < tmp ; tmp--){\r
- if(m_buffer[tmp] == '"'){\r
- memmove(m_buffer + tmp-1 , m_buffer+ tmp , sizeof(TCHAR)*(end-tmp+2));\r
- tmp--;\r
- }\r
-\r
- }\r
- m_pBufferedValue = m_buffer + begin;\r
- return true;\r
- }\r
- else {\r
- //\83G\83\89\81[(\8e\9f\82Ì,\82Ü\82Å\93Ç\82Ý\90i\82ß\82é) m_buffer\82Ì\96\96\94ö\82Í\83k\83\8b\95¶\8e\9a\82È\82Ì\82Å\95K\82¸\92â\8e~\82·\82é\r
- while(lastInput != ',' && lastInput != '\0'){\r
- lastInput = m_buffer[++m_topOfBuffer];\r
- }\r
- m_topOfBuffer++;\r
- m_pBufferedValue = "ERROR";\r
- return true;\r
- }\r
- \r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/tstring.h"\r
-#include <fstream>\r
-\r
-namespace mof{\r
-\r
- class CSVFile{\r
- //bool m_trimming;\r
- std::basic_ifstream<TCHAR> m_ifs;\r
- TCHAR* m_buffer;\r
- const int m_bufferSize;\r
- int m_topOfBuffer;\r
- bool m_hasBufferedValue;\r
- TCHAR* m_pBufferedValue;\r
- bool m_ignoreNL;\r
- bool updateNextValue();\r
- public:\r
- CSVFile(mof::tstring& filename);\r
- CSVFile(const TCHAR* filename);\r
- ~CSVFile();\r
- \r
- bool hasNextValue();\r
- const TCHAR* getNextValue();\r
- bool nextLine();\r
- void setIgnoreNL(bool ignore);\r
- };\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#include "mof/Camera.hpp"\r
-#include "mof/Constant.hpp"\r
-#include <d3d9.h>\r
-\r
-struct mof::Camera::Impl{\r
- mof::Animation<mof::Vector3D>::Handler eye;\r
- mof::Animation<mof::Vector3D>::Handler center;\r
- mof::Animation<mof::Vector3D>::Handler up;\r
- mof::FrameNumber frame;\r
-\r
- Impl(\r
- const mof::Animation<mof::Vector3D>::Handler& eye_ ,\r
- const mof::Animation<mof::Vector3D>::Handler& center_ ,\r
- const mof::Animation<mof::Vector3D>::Handler& up_ \r
- ) : eye(eye_) , center(center_) , up(up_) , frame(0){}\r
-\r
- ~Impl(){}\r
-};\r
-\r
-\r
-mof::Camera::Camera(\r
- const mof::Animation<mof::Vector3D>::Handler& eye , \r
- const mof::Animation<mof::Vector3D>::Handler& center ,\r
- const mof::Animation<mof::Vector3D>::Handler& up \r
- ) : m_pImpl(new Impl(eye , center , up)){\r
-}\r
-\r
-mof::Camera::Camera(\r
- const mof::Vector3D& eye , \r
- const mof::Vector3D& center , \r
- const mof::Vector3D& up\r
- ) : m_pImpl(new Impl(\r
- mof::makeConstantHandler(eye) ,\r
- mof::makeConstantHandler(center) ,\r
- mof::makeConstantHandler(up) \r
- )){\r
-}\r
-\r
-mof::Camera::~Camera(){\r
-}\r
-\r
-mof::Matrix3D mof::Camera::getViewMatrix() const{\r
- return mof::Matrix3D::createLookAtLH(\r
- m_pImpl->eye->getValue(m_pImpl->frame) ,\r
- m_pImpl->center->getValue(m_pImpl->frame) ,\r
- m_pImpl->up->getValue(m_pImpl->frame) \r
- );\r
-}\r
-\r
-void mof::Camera::setEye(const mof::Animation<mof::Vector3D>::Handler& eye){\r
- m_pImpl->eye = eye;\r
-}\r
-\r
-\r
-void mof::Camera::setEye(const mof::Vector3D& eye){\r
- m_pImpl->eye = mof::makeConstantHandler(eye);\r
-}\r
-\r
-void mof::Camera::setCenter(const mof::Animation<mof::Vector3D>::Handler& center){\r
- m_pImpl->center = center;\r
-}\r
-\r
-\r
-void mof::Camera::setCenter(const mof::Vector3D& center){\r
- m_pImpl->center = mof::makeConstantHandler(center);\r
-}\r
-\r
-\r
-void mof::Camera::setUp(const mof::Animation<mof::Vector3D>::Handler& up){\r
- m_pImpl->up = up;\r
-}\r
-\r
-\r
-void mof::Camera::setUp(const mof::Vector3D& up){\r
- m_pImpl->up = mof::makeConstantHandler(up);\r
-}\r
-\r
- \r
-mof::Vector3D mof::Camera::getEye() const{\r
- return m_pImpl->eye->getValue(m_pImpl->frame);\r
-}\r
-\r
- \r
-mof::Vector3D mof::Camera::getCenter() const{\r
- return m_pImpl->center->getValue(m_pImpl->frame);\r
-}\r
-\r
- \r
-mof::Vector3D mof::Camera::getUp() const{\r
- return m_pImpl->up->getValue(m_pImpl->frame);\r
-}\r
-\r
-\r
-\r
-\r
-void mof::Camera::setFrameNumber(mof::FrameNumber frame){\r
- m_pImpl->frame = frame;\r
-}\r
-\r
-\r
-void mof::Camera::nextFrame(){\r
- m_pImpl->frame++;\r
-}\r
-\r
-void mof::Camera::prevFrame(){\r
- if(m_pImpl->frame > 0)m_pImpl->frame--;\r
-}\r
-\r
+++ /dev/null
-#ifndef MOF_CAMERA_HPP\r
-#define mOF_CAMERA_HPP\r
-#include "mof/Vector3D.hpp"\r
-#include "mof/AnimationPlayer.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/Matrix3D.hpp"\r
-\r
-namespace mof{\r
-\r
-\r
- class Camera : public mof::AnimationPlayer{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
- public:\r
- Camera(\r
- const mof::Animation<mof::Vector3D>::Handler& eye , \r
- const mof::Animation<mof::Vector3D>::Handler& center ,\r
- const mof::Animation<mof::Vector3D>::Handler& up );\r
- Camera(const mof::Vector3D& eye , const mof::Vector3D& center , const mof::Vector3D& up);\r
- virtual ~Camera();\r
-\r
- mof::Matrix3D getViewMatrix() const;\r
-\r
- void setEye(const mof::Animation<mof::Vector3D>::Handler& eye);\r
- void setEye(const mof::Vector3D& eye);\r
- void setCenter(const mof::Animation<mof::Vector3D>::Handler& center);\r
- void setCenter(const mof::Vector3D& center);\r
- void setUp(const mof::Animation<mof::Vector3D>::Handler& up);\r
- void setUp(const mof::Vector3D& up);\r
-\r
- mof::Vector3D getEye() const; \r
- mof::Vector3D getCenter() const; \r
- mof::Vector3D getUp() const; \r
-\r
- virtual void setFrameNumber(mof::FrameNumber frame);\r
- virtual void nextFrame();\r
- virtual void prevFrame();\r
-\r
- };\r
-\r
-}\r
-\r
-#endif\r
+++ /dev/null
-#include "mof/Captor.hpp"\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include "mof/FilePath.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include <sstream>\r
-\r
-\r
-mof::Captor::Captor(const mof::tstring& output)\r
-: m_output(output) \r
-{\r
- m_num = 0;\r
-}\r
-\r
-mof::Captor::~Captor(){\r
-\r
-}\r
-\r
-bool mof::Captor::capture(){\r
- mof::otstringstream os;\r
- os << m_output.c_str() << _T("/") << m_num << _T(".bmp");\r
- return capture(os.str().c_str());\r
-}\r
-\r
-\r
-\r
-bool mof::Captor::capture(const mof::tstring& filename){\r
- \r
- LPDIRECT3DDEVICE9 pDevice = mof::GraphicsDevice::getRawDevice();\r
- \r
- LPDIRECT3DSURFACE9 pBackBuffer;\r
- HRESULT hr = pDevice->GetBackBuffer(0 , 0 , D3DBACKBUFFER_TYPE_MONO , &pBackBuffer);\r
- if(FAILED(hr))throw std::runtime_error("Failed --- GetBackBuffer");\r
- D3DSURFACE_DESC desc;\r
- pBackBuffer->GetDesc(&desc);\r
-\r
- hr = D3DXSaveSurfaceToFile(\r
- filename.c_str() , D3DXIFF_BMP , pBackBuffer ,\r
- NULL , NULL);\r
- pBackBuffer->Release();\r
- if(FAILED(hr)){\r
- \r
- throw std::runtime_error("Failed -- D3DXSaveSurfaceToFile");\r
- }\r
- m_num++;\r
- return true;\r
- \r
-\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/tstring.hpp"\r
-\r
-namespace mof{\r
-\r
- class Captor\r
- {\r
- mof::tstring m_output;\r
- int m_num;\r
-\r
- public :\r
- Captor( const mof::tstring& output);\r
- ~Captor();\r
- bool capture();\r
- bool capture(const mof::tstring& filename);\r
-\r
- };\r
-\r
-}\r
+++ /dev/null
-#include "mof/Color.hpp"\r
-#include <d3dx9.h>\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/tstring.hpp"\r
-\r
-\r
-mof::Color4f::Color4f() : \r
- alpha(0) , red(1) , green(1) , blue(1)\r
-{\r
-}\r
-\r
-mof::Color4f::Color4f(float alpha_ , float red_ , float green_ , float blue_) : \r
- alpha(alpha_) , red(red_) , green(green_) , blue(blue_)\r
-{\r
-}\r
-\r
-mof::Color4f::Color4f( float red_ , float green_ , float blue_) : \r
- alpha(1) , red(red_) , green(green_) , blue(blue_) \r
-{\r
-}\r
-\r
-mof::Color4f::Color4f(mof::Color color) : \r
- alpha(static_cast<float>(getAlpha(color)) / 255) ,\r
- red(static_cast<float>(getRed(color)) / 255) , \r
- green(static_cast<float>(getGreen(color)) / 255) ,\r
- blue(static_cast<float>(getBlue(color)) / 255 )\r
-{\r
-}\r
-\r
-mof::Color mof::Color4f::toColorCode() const{\r
- return createColor(\r
- static_cast<ColorChannel>(alpha * 255) ,\r
- static_cast<ColorChannel>(red * 255) ,\r
- static_cast<ColorChannel>(green * 255) ,\r
- static_cast<ColorChannel>(blue * 255) \r
- );\r
-}\r
-\r
-mof::Color4f mof::Color4f::operator +(const mof::Color4f& rhs) const{\r
- return mof::Color4f(\r
- alpha + rhs.alpha , \r
- red + rhs.red ,\r
- green + rhs.green ,\r
- blue + rhs.blue );\r
-}\r
-\r
-mof::Color4f mof::Color4f::operator -(const mof::Color4f& rhs) const{\r
- return mof::Color4f(\r
- alpha - rhs.alpha , \r
- red - rhs.red ,\r
- green - rhs.green ,\r
- blue - rhs.blue );\r
-}\r
-\r
-mof::Color4f mof::Color4f::operator *(const Color4f& color ) const\r
-{\r
- return mof::Color4f(color.alpha * alpha , color.red * red , color.green * green , color.blue * blue );\r
-}\r
-\r
-mof::Color4f mof::operator *(const Color4f& color , float f){\r
- return mof::Color4f(color.alpha * f , color.red * f , color.green * f , color.blue * f);\r
-}\r
- \r
-mof::Color4f mof::operator *(float f , const mof::Color4f & color){\r
- return mof::Color4f(color.alpha * f , color.red * f , color.green * f , color.blue * f);\r
-}\r
-\r
-\r
-\r
-unsigned char hex2Decimal(const TCHAR* code){\r
- unsigned char a = *code;\r
- if(a < '0')return 0;//error\r
- else if( a <= '9')return a - '0';\r
- else if( a < 'A')return 0;//error\r
- else if( a <= 'Z')return a - 'A'+10;\r
- else if( a < 'a')return 0;//error\r
- else if( a <= 'z')return a - 'a'+10;\r
- else return 0;//error\r
-}\r
-\r
-char decimal2hex(unsigned char n){\r
- if( n >= 16)return '-';//error\r
- return "0123456789abcdef"[n];\r
-}\r
-\r
-mof::Color mof::createColor(unsigned char r , unsigned char g , unsigned char b){\r
- return D3DCOLOR_XRGB(r , g , b);\r
-}\r
-\r
-mof::Color mof::createColor(unsigned char a , unsigned char r , unsigned char g , unsigned char b){\r
- return D3DCOLOR_ARGB(a , r , g , b);\r
-}\r
-\r
-\r
-mof::Color mof::createColor(const mof::tstring& code){\r
- const TCHAR* pBuffer = code.c_str();\r
- unsigned char a , r , g , b;\r
- if(code.size() == 8)a = ( hex2Decimal(pBuffer++) << 4 ) + hex2Decimal(pBuffer++);\r
- else if(code.size() != 6)return 0;//error\r
- else a = 0xff;\r
- r = (hex2Decimal(pBuffer++) << 4) + hex2Decimal(pBuffer++);\r
- g = (hex2Decimal(pBuffer++) << 4) + hex2Decimal(pBuffer++);\r
- b = (hex2Decimal(pBuffer++) << 4) + hex2Decimal(pBuffer++);\r
- return createColor(a , r , g , b);\r
-}\r
-\r
-unsigned char mof::getAlpha(const mof::Color& color){\r
- return (unsigned char)((color >> 24) & 0xff);\r
-}\r
-\r
-\r
-unsigned char mof::getRed(const mof::Color& color){\r
- return (unsigned char)((color >> 16) & 0xff);\r
-}\r
-\r
-unsigned char mof::getGreen(const mof::Color& color){\r
- return (unsigned char)((color >> 8) & 0xff);\r
-}\r
-\r
-\r
-unsigned char mof::getBlue(const mof::Color& color){\r
- return (unsigned char)(color & 0xff);\r
-}\r
-\r
-\r
-mof::Color mof::blendColor( mof::Color a , mof::Color b , float rate ){\r
- return createColor(\r
- static_cast<unsigned char>(getAlpha(a) * rate + getAlpha(b) * (1 - rate)) , //alpha\r
- static_cast<unsigned char>(getRed(a) * rate + getRed(b) * (1 - rate)) , //red\r
- static_cast<unsigned char>(getGreen(a) * rate + getGreen(b) * (1 - rate)) , //green\r
- static_cast<unsigned char>(getBlue(a) * rate + getBlue(b) * (1 - rate)) ); //blue\r
-}\r
-\r
-mof::Color mof::inverseColor(mof::Color src){\r
- return createColor(\r
- 255 - getAlpha(src) , //alpha\r
- 255 - getRed(src) , //red\r
- 255 - getGreen(src) , //green\r
- 255 - getBlue(src) ); //blue\r
-}\r
-\r
-\r
-mof::tstring mof::toColorCode(mof::Color color){\r
- mof::otstringstream os;\r
- unsigned char a = getAlpha(color);\r
- unsigned char r = getRed(color);\r
- unsigned char g = getGreen(color);\r
- unsigned char b = getBlue(color);\r
- os << decimal2hex(a >> 4) << decimal2hex(a & 0x0f) \r
- << decimal2hex(r >> 4) << decimal2hex(r & 0x0f) \r
- << decimal2hex(g >> 4) << decimal2hex(g & 0x0f) \r
- << decimal2hex(b >> 4) << decimal2hex(b & 0x0f) ;\r
- return os.str();\r
-\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/tstring.hpp"\r
-#include "mof/real.hpp"\r
-\r
-namespace mof{\r
- typedef unsigned int Color;\r
- typedef unsigned char ColorChannel;\r
- Color createColor(ColorChannel r , ColorChannel g , ColorChannel b);\r
- Color createColor(ColorChannel a , ColorChannel r , ColorChannel g , ColorChannel b);\r
- Color createColor(const mof::tstring& code);\r
- ColorChannel getRed(const Color& color);\r
- ColorChannel getGreen(const Color& color);\r
- ColorChannel getBlue(const Color& color);\r
- ColorChannel getAlpha(const Color& color);\r
- Color blendColor( Color a , Color b , real rate );\r
- Color inverseColor( Color color );\r
- mof::tstring toColorCode( Color color );\r
-\r
- struct Color4f{\r
- real red;\r
- real green;\r
- real blue;\r
- real alpha;\r
-\r
- Color4f();\r
- Color4f(real alpha_ , real red_ , real green_ , real blue_);\r
- Color4f( real red_ , real green_ , real blue_);\r
- explicit Color4f(mof::Color color);\r
- mof::Color toColorCode() const;\r
-\r
- mof::Color4f operator +( const mof::Color4f& rhs ) const ;\r
- mof::Color4f operator -( const mof::Color4f& rhs ) const ;\r
- mof::Color4f operator *( const Color4f& rhs ) const;\r
-\r
- friend mof::Color4f operator *(const Color4f& color , real f);\r
- friend mof::Color4f operator *(real f , const mof::Color4f & color);\r
-\r
- };\r
-\r
- \r
-\r
- \r
-};\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/utilities.hpp"\r
-\r
-namespace mof\r
-{\r
-\r
- class ColorComponent\r
- {\r
- public:\r
- virtual ~ColorComponent( ){}\r
-\r
- virtual void setColorStream( const ColorStream& stream )\r
- {\r
- m_colorStream = stream;\r
- }\r
-\r
- virtual const ColorStream& getColorStream( ) const\r
- {\r
- return m_colorStream;\r
- }\r
- \r
- virtual ColorStream& getColorStream( )\r
- {\r
- return m_colorStream;\r
- }\r
-\r
- \r
- protected:\r
- ColorStream m_colorStream;\r
-\r
- ColorComponent( )\r
- : \r
- m_colorStream( makeConstantHandler( Color4f( 1 , 1 , 1 ) ) ) \r
- {\r
- }\r
- \r
- ColorComponent( const Color4f& color )\r
- : \r
- m_colorStream( makeConstantHandler( color ) ) \r
- {\r
- }\r
-\r
- ColorComponent( const ColorStream& stream )\r
- : \r
- m_colorStream( stream ) \r
- {\r
- }\r
-\r
- };\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/RectangleModel.h"\r
-#include "mof/Vector2D.h"\r
-#include "mof/GraphicsObject.h"\r
-\r
-namespace mof{\r
-\r
- class Component2D : public GraphicsObject\r
- {\r
- \r
- public:\r
- Component2D(void);\r
- virtual ~Component2D(void);\r
- \r
- virtual void setPosition(Vector2D& position) = 0;\r
- virtual int getWidth() = 0;\r
- virtual int getHeight() = 0;\r
- virtual mof::Vector2D getPosition() = 0;\r
- \r
- virtual void setVisible(bool visible) = 0;\r
- virtual RectangleModel getBounds() = 0;\r
- };\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "mof/stream/utilities.hpp"\r
-\r
-namespace mof\r
-{\r
-\r
- class Component2D\r
- {\r
- public:\r
- virtual ~Component2D( ){}\r
-\r
- /** コンポーネントの左上の位置を指定する\r
- * @note このメソッドで指定するハンドラとgetPosition()で\r
- * 得られるハンドラは同一であると扱える\r
- * @retval このウィジェットの左上の位置を得るためのハンドラ \r
- */\r
- /*virtual void setPositionStream( const Vector2DStream& stream )\r
- {\r
- m_positionStream = stream;\r
- }*/\r
-\r
- /** コンポーネントの左上の位置を得る\r
- * @note このメソッドで得られるハンドラとsetPosition()で\r
- * 指定したハンドラは同一であると扱える\r
- * @retval このウィジェットの左上の位置を得るためのハンドラ \r
- */\r
- virtual const Vector2DStream& getPositionStream( ) const\r
- {\r
- return m_positionStream;\r
- }\r
- \r
- /** コンポーネントの左上の位置を得る\r
- * @note このメソッドで得られるハンドラとsetPosition()で\r
- * 指定したハンドラは同一であると扱える\r
- * @retval このウィジェットの左上の位置を得るためのハンドラ \r
- */\r
- virtual Vector2DStream& getPositionStream( ) \r
- {\r
- return m_positionStream;\r
- }\r
-\r
-\r
- /** コンポーネントの左上の位置を指定する\r
- * @note このメソッドで指定するハンドラとgetPosition()で\r
- * 得られるハンドラは同一であると扱える\r
- * @retval このウィジェットの左上の位置を得るためのハンドラ \r
- */\r
- /*virtual void setSizeStream( const Vector2DStream& stream )\r
- {\r
- m_sizeStream = stream;\r
- }*/\r
- \r
- /** コンポーネントの大きさを得る\r
- * @note このメソッドで得られるハンドラとsetSize()で\r
- * 指定したハンドラは同一であると扱える\r
- * @retval このウィジェットの大きさを得るためのハンドラ \r
- */\r
- virtual const Vector2DStream& getSizeStream( ) const\r
- {\r
- return m_sizeStream;\r
- }\r
- \r
- /** コンポーネントの大きさを得る\r
- * @note このメソッドで得られるハンドラとsetSize()で\r
- * 指定したハンドラは同一であると扱える\r
- * @retval このウィジェットの大きさを得るためのハンドラ \r
- */\r
- virtual Vector2DStream& getSizeStream( ) \r
- {\r
- return m_sizeStream;\r
- }\r
-\r
-\r
- protected:\r
- Vector2DStream m_positionStream;\r
- Vector2DStream m_sizeStream;\r
-\r
- Component2D( )\r
- : \r
- m_positionStream( makeConstantHandler( Vector2D( 0 , 0 ) ) ) ,\r
- m_sizeStream( makeConstantHandler( Vector2D( 0 , 0 ) ) ) \r
- {\r
- }\r
- \r
- Component2D( const Rectangle< int >& region )\r
- : \r
- m_positionStream\r
- (\r
- makeConstantHandler\r
- ( \r
- Vector2D(region.beginX , region.beginY)\r
- )\r
- ) ,\r
- m_sizeStream\r
- (\r
- makeConstantHandler\r
- (\r
- Vector2D(region.getWidth() , region.getHeight())\r
- )\r
- ) \r
- {}\r
-\r
- };\r
-} // namespace mof\r
+++ /dev/null
-#include "mof/Component3D.hpp"\r
-#include "mof/Constant.hpp"\r
-#include "mof/Matrix3D.hpp"\r
-\r
-void mof::Component3D::setWorldMatrix(const mof::Matrix3D& matrix){\r
- setWorldMatrix(mof::makeConstantHandler(matrix));\r
-}\r
+++ /dev/null
-\r
-//#include "mof/Matrix3D.hpp"\r
-\r
-#include "mof/Vector3D.hpp"\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-namespace mof{\r
-class Matrix3D;\r
-\r
-class Component3D {\r
- \r
-public:\r
- ~Component3D(){}\r
-\r
- virtual void setWorldMatrix(const mof::Animation<mof::Matrix3D>::Handler& handler) = 0;\r
- virtual void setWorldMatrix(const mof::Matrix3D& matrix);\r
- //TODO \83R\83\8a\83W\83\87\83\93\r
-};\r
-\r
-}\r
-\r
-#endif\r
+++ /dev/null
-#include "mof/ConsoleIO.hpp"\r
-\r
-ConsoleOut* ConsoleOut::obj = NULL;
\ No newline at end of file
+++ /dev/null
-\r
-#ifndef CONSOLE_H\r
-#define CONSOLE_H\r
-\r
-#include <iostream>\r
-#include <windows.h>\r
-#include <tchar.h>\r
-\r
-//--------------------------------------------\r
-// class ConsoleIO\r
-//\r
-// \83R\83\93\83\\81[\83\8b\82ð\8cÄ\82Ñ\8fo\82µ\81A\93ü\8fo\97Í\82ð\8ds\82¤\81B\r
-// C++\82Ì\93ü\8fo\97Í\83X\83g\83\8a\81[\83\80\83N\83\89\83X\81Astd::basic_stream\r
-// \82ð\8cp\8f³\82·\82é\81B\r
-//--------------------------------------------\r
-template <class CharT , class Tr = std::char_traits<CharT> >\r
-class ConsoleIO : public std::basic_streambuf<CharT , Tr>{\r
-\r
-protected:\r
- std::streampos seekoff( \r
- std::streamoff off, \r
- std::ios::seek_dir dir, \r
- int nMode = std::ios::in | std::ios::out ){\r
- return EOF;\r
- }\r
- \r
- std::streampos seekpos( std::streampos , int ){\r
- return EOF;\r
- }\r
-\r
- int_type overflow( int_type nCh = EOF ){\r
- DWORD size;\r
- WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),(WCHAR*)&nCh,1,&size,NULL);\r
- return 0;\r
- }\r
-\r
- int_type underflow(void){\r
- return EOF;\r
- }\r
-\r
-\r
-public:\r
- ConsoleIO(){\r
- setbuf(0,0);\r
- AllocConsole();\r
- }\r
- \r
- ~ConsoleIO(){\r
- FreeConsole();\r
- }\r
-\r
-};\r
-\r
-\r
-\r
-//--------------------------------------------\r
-// class ConsoleOut\r
-//\r
-// \83R\83\93\83\\81[\83\8b\8fo\97Í\82É\82Í\81A\82±\82Ì\83N\83\89\83X\82Ì\83I\83u\83W\83F\83N\83g\82ð\8dì\82é\r
-//--------------------------------------------\r
-class ConsoleOut : public std::basic_iostream<TCHAR> {\r
- static ConsoleOut* obj;\r
- \r
- ConsoleOut(void) \r
- : std::basic_iostream<TCHAR>(new ConsoleIO<TCHAR>() ){\r
- }\r
-\r
-public:\r
- static ConsoleOut* getInstance(){\r
- if(obj == NULL)obj = new ConsoleOut();\r
- return obj;\r
- }\r
-\r
-\r
-};\r
-\r
-#define DEBUG_PRINT(x) (*ConsoleOut::getInstance() << x << std::endl)\r
-//#define DEBUG_PRINT(x)\r
-\r
-#endif \r
+++ /dev/null
-#include "mof/Container2D.h"\r
-#include "mof/ConsoleIO.h"\r
-\r
-\r
-\r
-mof::Container2D::Container2D(int nColumns)\r
-: mof::Component2D() , m_margin(0) , m_paddingX(0) , m_paddingY(0)\r
-{\r
- m_nColumns = nColumns;\r
-}\r
-\r
-\r
-mof::Container2D::~Container2D(){\r
-\r
- for(int i = 0 ; i < m_children.size() ; i ++){\r
- delete m_children.at(i);\r
- }\r
-}\r
-\r
-bool mof::Container2D::update(){\r
-\r
- for(int i = 0 ; i < m_children.size() ; i ++){\r
- m_children.at(i)->update();\r
- }\r
-\r
-\r
- //setPosition(getAnimationSet()->getPosition(getPosition()));\r
- setPosition(getAnimationSet()->getPosition());\r
- getAnimationSet()->update();\r
- return true;\r
-}\r
-\r
-\r
-bool mof::Container2D::draw(){\r
- \r
- for(int i = 0 ; i < m_children.size() ; i ++){\r
- m_children.at(i)->draw();\r
- }\r
- return true;\r
-}\r
-\r
-\r
-/*\r
-bool mof::Container2D::draw(mof::Matrix3D& transform){\r
- transform = m_worldTransform * transform;\r
- for(int i = 0 ; i < m_children.size() ; i ++){\r
- m_children.at(i)->draw(transform);\r
- }\r
- return true;\r
-}*/\r
-\r
-\r
-void mof::Container2D::add(mof::Component2D* component){\r
- m_children.push_back(component);\r
-}\r
-\r
-bool mof::Container2D::remove(mof::Component2D* component){\r
- for(std::vector<mof::Component2D*>::iterator itr = m_children.begin() ; itr !=m_children.end() ; ++itr){\r
- if((*itr) == component){\r
- delete component;\r
- return true;\r
- }\r
- }\r
- return false;\r
-}\r
-\r
-int mof::Container2D::indexOf(mof::Component2D* component){\r
- for(int i = 0 ; i < m_children.size() ; ++i){\r
- if(m_children.at(i) == component)return i;\r
- }\r
- return -1;\r
-}\r
-\r
-void mof::Container2D::set(int index , mof::Component2D* component){\r
- delete m_children.at(index);\r
- m_children.at(index) = component;\r
-}\r
-\r
-mof::Component2D* mof::Container2D::get(int index){\r
- return m_children.at(index);\r
-}\r
-\r
-mof::Vector2D mof::Container2D::getPositionOf(int index){\r
- return get(index)->getPosition();/* * m_worldTransform;*/\r
- //return get(index)->getPosition();\r
-}\r
-\r
-void mof::Container2D::setPosition(Vector2D& _position){\r
- mof::Vector2D position = _position;\r
- m_position = position;\r
- position.x += m_margin;\r
- position.y += m_margin;\r
- \r
- int* maxWidthArray = new int[m_nColumns];\r
- \r
- //\97ñ\96\88\82É\8dÅ\91å\95\9d\82ð\8b\81\82ß\82é\r
- for(int i = 0 ; i < m_nColumns ; i++){\r
- maxWidthArray[i] = 0 ;\r
- for(int j = i ; j < m_children.size() ; j += m_nColumns){\r
- int width = get(j)->getWidth();\r
- if(maxWidthArray[i] < width)maxWidthArray[i] = width;\r
- }\r
- }\r
-\r
- for(int i = 0 ; i < m_children.size() ; i++){\r
- get(i)->setPosition(position);\r
- if(i % m_nColumns == m_nColumns -1){\r
- position.y += get(i)->getHeight() + m_paddingY;\r
- position.x = m_position.x + m_margin;\r
- }\r
- else position.x += maxWidthArray[i % m_nColumns] + m_paddingX;\r
- }\r
- \r
- delete[] maxWidthArray;\r
-}\r
-\r
-mof::Vector2D mof::Container2D::getPosition(){\r
- return m_position;\r
-}\r
- \r
-void mof::Container2D::setVisible(bool visible){\r
-\r
-\r
-}\r
-\r
-int mof::Container2D::getWidth(){\r
- int* maxWidthArray = new int[m_nColumns];\r
- //\97ñ\96\88\82É\8dÅ\91å\95\9d\82ð\8b\81\82ß\82é\r
- for(int i = 0 ; i < m_nColumns ; i++){\r
- maxWidthArray[i] = 0 ;\r
- for(int j = i ; j < m_children.size() ; j += m_nColumns){\r
- int width = get(j)->getWidth();\r
- if(maxWidthArray[i] < width)maxWidthArray[i] = width;\r
- }\r
- }\r
- int sumWidth = 0;\r
- for(int i = 0 ; i < m_nColumns ; i++)sumWidth += maxWidthArray[i];\r
- delete[] maxWidthArray;\r
- return sumWidth + (m_nColumns-1)* m_paddingX + getMargin()*2;\r
-}\r
-\r
-int mof::Container2D::getHeight(){\r
- int sumHeight = 0;\r
- for(int i = 0 ; i < m_children.size() ; i++){\r
- if(i % m_nColumns == 0)sumHeight += m_children.at(i)->getHeight() + m_paddingY;\r
- }\r
- return sumHeight + getMargin() *2;\r
-}\r
- \r
-\r
-mof::RectangleModel mof::Container2D::getBounds(){\r
- return mof::RectangleModel(getPosition().x , getPosition().y , getWidth() , getHeight());\r
-}\r
-\r
-void mof::Container2D::setLayout(){\r
- mof::Vector2D position = getPosition();\r
- position.x += m_margin;\r
- position.y += m_margin;\r
- //DEBUG_PRINT(position.x << _T(",") << position.y);\r
- setPosition(getPosition());\r
-}\r
-
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "mof/Component2D.h"\r
-#include <vector>\r
-\r
-namespace mof{\r
- \r
- class Container2D : public Component2D{\r
- std::vector<mof::Component2D*> m_children;\r
- mof::Vector2D m_position;\r
- int m_margin;\r
- int m_paddingX;\r
- int m_paddingY;\r
- int m_nColumns;\r
- public:\r
- Container2D(int nColumns = 1);\r
- ~Container2D();\r
-\r
- virtual bool update();\r
- virtual bool draw();\r
- \r
- void add(mof::Component2D* component);\r
- bool remove(mof::Component2D* component);\r
- mof::Component2D* get(int index);\r
- void set(int index , mof::Component2D* component);\r
- int indexOf(mof::Component2D* component);\r
- int size(){return m_children.size();}\r
- \r
- mof::Vector2D getPositionOf(int index);\r
- \r
- virtual void setPosition(Vector2D& position);\r
- void setMargin(int margin){m_margin = margin;}\r
- void setColumn(int nColumns){m_nColumns = nColumns;}\r
- void setPaddingX(int paddingX){m_paddingX = paddingX;}\r
- void setPaddingY(int paddingY){m_paddingY = paddingY;}\r
- int getMargin(){return m_margin;}\r
- virtual mof::Vector2D getPosition();\r
- virtual int getWidth();\r
- virtual int getHeight();\r
- \r
- virtual void setVisible(bool visible);\r
- virtual RectangleModel getBounds();\r
- virtual void setLayout();\r
- \r
- };\r
-};
\ No newline at end of file
+++ /dev/null
-#include "mof/Container3D.h"\r
-\r
-\r
-\r
-mof::Container3D::Container3D()\r
-: mof::Component3D() \r
-{\r
-}\r
-\r
-\r
-mof::Container3D::~Container3D(){\r
-\r
- for(int i = 0 ; i < m_children.size() ; i ++){\r
- delete m_children.at(i);\r
- }\r
-}\r
-\r
-bool mof::Container3D::draw(){\r
- for(int i = 0 ; i < m_children.size() ; i ++){\r
- if(m_children.at(i) == NULL)continue;\r
- m_children.at(i)->draw(m_worldTransform);\r
- }\r
- return true;\r
-}\r
-\r
-\r
-bool mof::Container3D::draw(mof::Matrix3D& transform){\r
- transform = m_worldTransform * transform;\r
- for(int i = 0 ; i < m_children.size() ; i ++){\r
- if(m_children.at(i) == NULL)continue;\r
- m_children.at(i)->draw(transform);\r
- }\r
- return true;\r
-} \r
-\r
-bool mof::Container3D::update(){\r
- for(int i = 0 ; i < m_children.size() ; i ++){\r
- if(m_children.at(i) == NULL)continue;\r
- m_children.at(i)->update();\r
- }\r
- return mof::Component3D::update();\r
-}\r
-\r
-\r
-void mof::Container3D::add(mof::Component3D* component){\r
- for(int i = 0 ; i < m_children.size() ; i ++){\r
- if(m_children.at(i) == NULL){\r
- m_children.at(i) = component;\r
- return;\r
- }\r
- }\r
- m_children.push_back(component);\r
-}\r
-\r
-mof::Component3D* mof::Container3D::get(int index){\r
- return m_children.at(index);\r
-}\r
-\r
-mof::Vector3D mof::Container3D::getPositionOf(int index){\r
- return get(index)->getPosition() * m_worldTransform;\r
- //return get(index)->getPosition();\r
-}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "mof/Component3D.h"\r
-#include <vector>\r
-\r
-namespace mof{\r
- \r
- class Container3D : public Component3D{\r
- protected:\r
- std::vector<mof::Component3D*> m_children;\r
- public:\r
- Container3D();\r
- ~Container3D();\r
-\r
- \r
- virtual bool draw();\r
- virtual bool draw(mof::Matrix3D& transform);\r
- virtual bool update();\r
- \r
- void add(mof::Component3D* component);\r
- mof::Component3D* get(int index);\r
- \r
- mof::Vector3D getPositionOf(int index);\r
- \r
- //void deleteAll();\r
- \r
- };\r
-};
\ No newline at end of file
+++ /dev/null
-#include "DataRow.h"\r
-\r
-mof::DataRow::DataRow( const DataResource& data , const TCHAR* const pRowName)\r
-: m_data(data){\r
- m_rowIndex = m_data->getRowIndex(pRowName);\r
-}\r
-\r
-mof::DataRow::DataRow( const DataResource& data , int index)\r
-: m_data(data) , m_rowIndex(index){\r
- \r
-}\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/DataTable.h"\r
-\r
-namespace mof{\r
- class DataRow\r
- {\r
- int m_rowIndex;\r
- DataResource m_data;\r
- public:\r
- DataRow(){;}\r
- DataRow( const DataResource& data , const TCHAR * const pRowName);\r
- DataRow( const DataResource& data , int index);\r
-\r
- inline mof::tstring& getData( const TCHAR * const pColumnName);\r
- inline mof::tstring& getData( int columnIndex);\r
-\r
- inline int getIntegerData( const TCHAR * const pColumnName);\r
- inline int getIntegerData( int columnIndex);\r
- };\r
-\r
-\r
-}\r
-\r
-\r
-mof::tstring& mof::DataRow::getData( const TCHAR * const pColumnName){\r
- return m_data->getData(m_rowIndex , pColumnName);\r
-}\r
-\r
-\r
-\r
-mof::tstring& mof::DataRow::getData( int columnIndex){\r
- return m_data->getData(m_rowIndex , columnIndex);\r
-}\r
-\r
-\r
-\r
-int mof::DataRow::getIntegerData( const TCHAR * const pColumnName){\r
- return m_data->getIntegerData(m_rowIndex , pColumnName);\r
-}\r
-\r
-\r
-\r
-int mof::DataRow::getIntegerData( int columnIndex){\r
- return m_data->getIntegerData(m_rowIndex , columnIndex);\r
-}\r
-\r
-\r
+++ /dev/null
-#include "mof/ConsoleIO.h"\r
-#include "mof/DataTable.h"\r
-#include "mof/CSVFile.h"\r
-#include <boost/lexical_cast.hpp>\r
-#include <assert.h>\r
-#include <stdexcept>\r
-\r
-mof::DataTable::DataTable(tstring& name )\r
- : mof::Resource(name){\r
-}\r
-\r
-mof::DataTable::DataTable(const TCHAR * const name)\r
- : mof::Resource(mof::tstring(name)){\r
-}\r
-\r
- \r
-void mof::DataTable::load(){\r
- if(isAvailable())return;\r
- //CVS\83t\83@\83C\83\8b\82©\82ç\83f\81[\83^\82ð\83\8d\81[\83h\r
- mof::CSVFile csvFile(getName().c_str());\r
- csvFile.setIgnoreNL(false);\r
-\r
- //column\8fî\95ñ\82Ì\83\8d\81[\83h\r
- for(int i = 0 ; csvFile.hasNextValue() ; i++){\r
- m_columnMap.insert(std::pair<mof::tstring , int>( mof::tstring(csvFile.getNextValue()) , i));\r
- }\r
- \r
- while(csvFile.nextLine()){\r
- m_dataList.push_back(std::vector<mof::tstring>());\r
- while(csvFile.hasNextValue()){\r
- m_dataList.back().push_back(mof::tstring(csvFile.getNextValue()));\r
- }\r
- \r
- }\r
- setAvailable(true);\r
- \r
-}\r
-\r
-void mof::DataTable::unload(){\r
- if(!isAvailable())return;\r
- m_dataList.clear();\r
- m_columnMap.clear();\r
- setAvailable(false);\r
- }\r
-\r
-\r
-int mof::DataTable::getRowIndex(const TCHAR * const pRowName){\r
- if(!isAvailable())load();\r
- for(int i = 0 ; i < m_dataList.size() ; ++i){\r
- if(!m_dataList.at(i).empty() && m_dataList.at(i).at(0) == pRowName)return i;\r
- }\r
- return -1;\r
-}\r
-\r
-\r
-int mof::DataTable::getColumnIndex(const TCHAR * const pColumnName){\r
- if(!isAvailable())load();\r
- mof::tstring tmp(pColumnName);\r
- std::map<mof::tstring , int>::iterator itr = m_columnMap.find(tmp);\r
- return itr != m_columnMap.end() ? itr->second : -1;\r
-}\r
-\r
-\r
-mof::tstring& mof::DataTable::getData(const TCHAR * const pRowName , const TCHAR * const pColumnName){\r
- if(!isAvailable())load();\r
- int columnIndex = getColumnIndex(pColumnName);\r
- int rowIndex = getRowIndex(pRowName);\r
- return m_dataList.at(rowIndex).at(columnIndex);\r
- \r
-}\r
-\r
-\r
-mof::tstring& mof::DataTable::getData(int rowIndex , const TCHAR *const pColumnName){\r
- if(!isAvailable())load();\r
- int columnIndex = getColumnIndex(pColumnName);\r
- return m_dataList.at(rowIndex).at(columnIndex);\r
-}\r
-\r
-\r
-mof::tstring& mof::DataTable::getData(int rowIndex , int columnIndex){\r
- if(!isAvailable())load();\r
- return m_dataList.at(rowIndex).at(columnIndex);\r
-}\r
-\r
-int mof::DataTable::getIntegerData(const TCHAR *const pRowName ,const TCHAR * const pColumnName){\r
- if(!isAvailable())load();\r
- return boost::lexical_cast<int>(getData(pRowName , pColumnName));\r
-}\r
-\r
-int mof::DataTable::getIntegerData(int rowIndex , const TCHAR *const pColumnName){\r
- if(!isAvailable())load();\r
- return boost::lexical_cast<int>(getData(rowIndex , pColumnName));\r
-}\r
-\r
-int mof::DataTable::getIntegerData(int rowIndex , int columnIndex){\r
- if(!isAvailable())load();\r
- return boost::lexical_cast<int>(getData(rowIndex , columnIndex));\r
-}\r
-\r
-\r
-int mof::DataTable::getNumberOfRows(){\r
- if(!isAvailable())load();\r
- return m_dataList.size();\r
-}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "mof/Resource.h"\r
-#include "mof/tstring.h"\r
-#include <vector>\r
-#include <map>\r
-#include "mof/ResourceManager.h"\r
-\r
-\r
-namespace mof{\r
-\r
- \r
- class DataTable : public Resource\r
- {\r
- std::map<mof::tstring , int> m_columnMap;\r
- std::vector<std::vector<mof::tstring>> m_dataList;\r
-\r
- public:\r
- DataTable(tstring& name );\r
- DataTable(const TCHAR * const name);\r
- \r
- virtual void load();\r
- virtual void unload();\r
-\r
- int getRowIndex(const TCHAR * const pRowName);\r
- int getColumnIndex(const TCHAR * const pRowName);\r
- mof::tstring& getData(const TCHAR * const pRowName , const TCHAR * const pColumnName);\r
- mof::tstring& getData(int rowIndex , const TCHAR * const pColumnName);\r
- mof::tstring& getData(int rowIndex , int columnIndex);\r
-\r
- int getIntegerData(const TCHAR * const pRowName , const TCHAR * const pColumnName);\r
- int getIntegerData(int rowIndex , const TCHAR * const pColumnName);\r
- int getIntegerData(int rowIndex , int columnIndex);\r
- \r
- int getNumberOfRows();\r
- };\r
-\r
-\r
-\r
- typedef mof::ResourceManager<DataTable> DataResourceManager;\r
- typedef boost::shared_ptr<DataTable> DataResource;\r
-};\r
+++ /dev/null
-#include <boost/shared_ptr.hpp>\r
-#include <boost/weak_ptr.hpp>\r
-#include "mof/EventScheduler.hpp"\r
-\r
-namespace mof{\r
- \r
- template <class T>\r
- class Deleter{\r
- boost::shared_ptr<T> m_p;\r
- public:\r
- Deleter(T* p) : m_p(p) {}\r
- Deleter( typename boost::shared_ptr<T>& p) : m_p(p) {}\r
-\r
- void operator ()(){\r
- m_p = boost::shared_ptr<T>();\r
- }\r
-\r
- boost::weak_ptr<T> getWeak(){\r
- return m_p;\r
- }\r
- };\r
-\r
-};\r
+++ /dev/null
-#include "mof/private/DirectInput.hpp"\r
-#include "mof/private/DeviceInputReceiver.hpp"\r
-#include "mof/InputDevice.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/InputEventCondition.hpp"\r
-\r
-\r
-mof::DeviceInputReceiver::DeviceInputReceiver()\r
-: mof::InputReceiver(){\r
- m_pKeyStates = new bool[mof::DeviceInputReceiver::END];\r
- for(int i = 0 ; i < mof::DeviceInputReceiver::END ; i++)m_pKeyStates[i] = false;\r
-}\r
-\r
-mof::DeviceInputReceiver::~DeviceInputReceiver(){\r
- delete[] m_pKeyStates;\r
- \r
-}\r
-\r
-bool mof::DeviceInputReceiver::testKeyState(mof::InputReceiver::Key key){\r
-\r
- return m_pKeyStates[key];\r
- \r
-}\r
-\r
-void mof::DeviceInputReceiver::update(){\r
- mof::InputDevice::update();\r
-}\r
-\r
-\r
-void mof::DeviceInputReceiver::notifyInputEvent(mof::InputEvent& inputEvent){\r
- mof::DeviceInputReceiver::Key key;\r
-\r
- \r
- switch(inputEvent.dwOfs){\r
- case DIK_UP :\r
- key = mof::DeviceInputReceiver::UP;\r
- break;\r
- case DIK_DOWN :\r
- key = mof::DeviceInputReceiver::DOWN;\r
- break;\r
- case DIK_LEFT :\r
- key = mof::DeviceInputReceiver::LEFT;\r
- break;\r
- case DIK_RIGHT :\r
- key = mof::DeviceInputReceiver::RIGHT;\r
- break;\r
- case DIK_A :\r
- key = mof::DeviceInputReceiver::A;\r
- break;\r
- case DIK_B :\r
- key = mof::DeviceInputReceiver::B;\r
- break;\r
- case DIK_C :\r
- key = mof::DeviceInputReceiver::C;\r
- break;\r
- case DIK_D :\r
- key = mof::DeviceInputReceiver::D;\r
- break;\r
- case DIK_E :\r
- key = mof::DeviceInputReceiver::E;\r
- break;\r
- case DIK_F :\r
- key = mof::DeviceInputReceiver::F;\r
- break;\r
- case DIK_G :\r
- key = mof::DeviceInputReceiver::G;\r
- break;\r
- case DIK_H :\r
- key = mof::DeviceInputReceiver::H;\r
- break;\r
- case DIK_I :\r
- key = mof::DeviceInputReceiver::I;\r
- break;\r
- case DIK_J :\r
- key = mof::DeviceInputReceiver::J;\r
- break;\r
- case DIK_K :\r
- key = mof::DeviceInputReceiver::K;\r
- break;\r
- case DIK_L :\r
- key = mof::DeviceInputReceiver::L;\r
- break;\r
- case DIK_M :\r
- key = mof::DeviceInputReceiver::M;\r
- break;\r
- case DIK_N :\r
- key = mof::DeviceInputReceiver::N;\r
- break;\r
- case DIK_O :\r
- key = mof::DeviceInputReceiver::O;\r
- break;\r
- case DIK_P :\r
- key = mof::DeviceInputReceiver::P;\r
- break;\r
- case DIK_Q :\r
- key = mof::DeviceInputReceiver::Q;\r
- break;\r
- case DIK_R :\r
- key = mof::DeviceInputReceiver::R;\r
- break;\r
- case DIK_S :\r
- key = mof::DeviceInputReceiver::S;\r
- break;\r
- case DIK_T :\r
- key = mof::DeviceInputReceiver::T;\r
- break;\r
- case DIK_U :\r
- key = mof::DeviceInputReceiver::U;\r
- break;\r
- case DIK_V :\r
- key = mof::DeviceInputReceiver::V;\r
- break;\r
- case DIK_W :\r
- key = mof::DeviceInputReceiver::W;\r
- break;\r
- case DIK_X :\r
- key = mof::DeviceInputReceiver::X;\r
- break;\r
- case DIK_Y :\r
- key = mof::DeviceInputReceiver::Y;\r
- break;\r
- case DIK_Z :\r
- key = mof::DeviceInputReceiver::Z;\r
- break;\r
- case DIK_ESCAPE :\r
- key = mof::DeviceInputReceiver::ESCAPE;\r
- break;\r
- default : \r
- return;\r
- }\r
- m_pKeyStates[key] = (inputEvent.dwData & 0x80) != 0;\r
- \r
-}\r
+++ /dev/null
-#include "mof/DirectionalLight.h"\r
-#include <d3dx9.h>\r
-#include "GraphicsDevice.h"\r
-\r
-\r
-mof::DirectionalLight::DirectionalLight(mof::Color diffuse , mof::Color ambient , mof::Vector3D& direction)\r
-: mof::Light()\r
-{\r
- setDiffuseColor(diffuse);\r
- setAmbientColor(ambient);\r
- setDirection(direction);\r
-\r
-}\r
-\r
-\r
-void mof::DirectionalLight::update(){\r
- //mof::Animation* pAnimation = getAnimation();\r
- //if(pAnimation == NULL)return;\r
- //pAnimation->update();\r
- //mof::Color color = pAnimation->get();\r
- //set(pAnimation->getColor());\r
-}\r
-\r
-void mof::DirectionalLight::reflect(){\r
- GRAPHICS_DEVICE pDevice = mof::GraphicsDevice::getInstance()->getGraphicsDevice();\r
- D3DLIGHT9 light;\r
- ZeroMemory(&light , sizeof(light));\r
- light.Type = D3DLIGHT_DIRECTIONAL;\r
- light.Diffuse.a = (float)mof::getAlpha(m_diffuse) / 255.0f;\r
- light.Diffuse.r = (float)mof::getRed(m_diffuse) / 255.0f;\r
- light.Diffuse.g = (float)mof::getGreen(m_diffuse) / 255.0f;\r
- light.Diffuse.b = (float)mof::getBlue(m_diffuse) / 255.0f;\r
-\r
- light.Ambient.a = (float)mof::getAlpha(m_ambient) / 255.0f;\r
- light.Ambient.r = (float)mof::getRed(m_ambient) / 255.0f;\r
- light.Ambient.g = (float)mof::getGreen(m_ambient) / 255.0f;\r
- light.Ambient.b = (float)mof::getBlue(m_ambient) / 255.0f;\r
-\r
- light.Direction = D3DXVECTOR3(m_direction.x , m_direction.y , m_direction.z);\r
- \r
- \r
- pDevice->SetLight(0 , &light);\r
- pDevice->LightEnable(0 , TRUE);\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/Light.h"\r
-#include "mof/Color.h"\r
-\r
-namespace mof{\r
-\r
- class DirectionalLight : public Light{\r
- mof::Color m_diffuse;\r
- mof::Color m_ambient;\r
- mof::Vector3D m_direction;\r
- public:\r
- DirectionalLight(mof::Color diffuse , mof::Color ambient , mof::Vector3D& direction);\r
- void setDiffuseColor(mof::Color diffuse){m_diffuse = diffuse;}\r
- void setAmbientColor(mof::Color ambient){m_ambient = ambient;}\r
- void setDirection(mof::Vector3D& direction){m_direction = direction;}\r
-\r
- virtual void update();\r
- virtual void reflect();\r
-\r
- };\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-\r
-namespace mof\r
-{\r
- class Drawable\r
- {\r
- public:\r
- virtual ~Drawable(){}\r
- virtual void draw() const = 0;\r
- };\r
-}\r
+++ /dev/null
-#pragma once\r
-\r
-namespace mof{\r
-\r
- class EventCondition{\r
- public:\r
- virtual ~EventCondition(){}\r
- virtual bool test() = 0;\r
- virtual void update() = 0;\r
- virtual bool isDisposable() = 0;\r
- };\r
-\r
-}\r
-\r
+++ /dev/null
-#include "mof/EventScheduler.hpp"\r
-#include "mof/EventCondition.hpp"\r
-#include <list>\r
-#include <utility>\r
-#include "mof/utilities.hpp"\r
-\r
-\r
-class TimeEventCondition : public mof::EventCondition{\r
- mof::FrameNumber limit;\r
- mof::FrameNumber count;\r
-\r
-public:\r
- TimeEventCondition(mof::FrameNumber limit)\r
- : limit(limit) , count(0)\r
- {\r
- }\r
-\r
- virtual ~TimeEventCondition(){}\r
-\r
- virtual bool test(){\r
- return count == limit;\r
- }\r
-\r
- virtual bool isDisposable(){\r
- return count > limit;\r
- }\r
-\r
- virtual void update(){\r
- if(limit >= count)count++;\r
- }\r
-};\r
-\r
-struct mof::EventScheduler::Impl{\r
- typedef std::pair<mof::EventCondition* , boost::function0<void>> Schedule; \r
- typedef std::list<std::pair<mof::EventCondition* , boost::function0<void>>> EventList; \r
- EventList eventList;\r
-\r
- Impl(){\r
- }\r
-\r
- ~Impl(){\r
- foreach( Impl::Schedule &value , eventList ){\r
- delete value.first;\r
- }\r
- }\r
-\r
-};\r
-\r
-mof::EventScheduler::EventScheduler()\r
-: m_pImpl(new Impl())\r
-{\r
-}\r
-\r
-mof::EventScheduler::~EventScheduler(){\r
- \r
-}\r
-\r
-void mof::EventScheduler::addEvent( mof::EventCondition* pCondition , const boost::function0<void> &action){\r
- m_pImpl->eventList.push_back(std::pair<mof::EventCondition* , boost::function0<void>>(pCondition , action));\r
-}\r
-\r
-void mof::EventScheduler::addEvent(mof::FrameNumber frame, const boost::function0<void> &action){\r
- addEvent(new TimeEventCondition(frame) , action);\r
-}\r
-\r
-void mof::EventScheduler::update(){\r
- for( Impl::EventList::iterator itr = m_pImpl->eventList.begin() ;\r
- itr != m_pImpl->eventList.end() ; \r
- ){\r
- itr->first->update();\r
- if(itr->first->test()){\r
- itr->second();\r
- }\r
- if(itr->first->isDisposable()){\r
- delete itr->first;\r
- itr = m_pImpl->eventList.erase(itr);\r
- }\r
- else ++itr;\r
- }\r
-}\r
-\r
-\r
-\r
+++ /dev/null
-#ifndef MOF_EVENT_SCHEDULER_HPP\r
-#define MOF_EVENT_SCHEDULER_HPP\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/function/function0.hpp>\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-namespace mof{\r
-\r
-class EventCondition;\r
-\r
-class EventScheduler{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
-public:\r
- typedef boost::function0<void> Action;\r
- EventScheduler();\r
- ~EventScheduler();\r
-\r
- void addEvent(mof::EventCondition* pCondition , const Action& action);\r
- void addEvent(mof::FrameNumber interval , const Action& action);\r
- void update();\r
-};\r
-\r
-}\r
-\r
-\r
-\r
-\r
-#endif\r
+++ /dev/null
-#pragma once\r
-#include <boost/function/function0.hpp>\r
-\r
-namespace mof\r
-{\r
- //TODO タイプリストとかで、そのままのインタフェースでより汎用的にする\r
- //非const参照を渡したい場合は?(constructorにそれはありえない)\r
-\r
-\r
-//{{{ FactoryMethod\r
- template < class T > \r
- class FactoryMethod\r
- {\r
- public: \r
- FactoryMethod( const boost::function<T* (void)>& factory)\r
- : m_factory(factory){}\r
-\r
- T* operator() () const{ return m_factory(); }\r
- \r
- template<class T>\r
- operator FactoryMethod<T>( ) const\r
- {\r
- return FactoryMethod<T>(m_factory); \r
- }\r
-\r
-\r
-\r
- private: \r
- boost::function<T* (void)> m_factory;\r
- };\r
-\r
- \r
-//}}}\r
-//{{{ Constructor0\r
- template < class T > \r
- class Constructor0\r
- {\r
- public: \r
- T* operator() ( ) const {return new T();}\r
- };\r
-//}}}\r
-//{{{ Constructor1\r
- template <class T , class P1> \r
- class Constructor1 : protected Constructor0<T>\r
- {\r
- protected:\r
- P1 p1;\r
- public: \r
- Constructor1(const P1& p1_)\r
- : p1(p1_)\r
- {}\r
-\r
- T* operator() ( ) const {return new T(p1);}\r
- };\r
-//}}}\r
-//{{{ Constructor2\r
- template <class T , class P1 , class P2> \r
- class Constructor2 : protected Constructor1<T , P1>\r
- {\r
- protected:\r
- P2 p2;\r
- public: \r
- Constructor2(const P1& p1_ , const P2& p2_)\r
- : Constructor1(p1_) , p2(p2_)\r
- {}\r
-\r
- T* operator() ( ) const {return new T(p1 , p2);}\r
- };\r
-//}}}\r
-//{{{ Constructor3\r
- template <class T , class P1 , class P2 , class P3> \r
- class Constructor3 : protected Constructor2<T , P1 , P2>\r
- {\r
- protected:\r
- P3 p3;\r
- public: \r
- Constructor3(const P1& p1_ , const P2& p2_ , const P3& p3_)\r
- : Constructor2(p1_ , p2_) , p3(p3_)\r
- {}\r
-\r
- T* operator() ( ) const {return new T(p1 , p2 , p3);}\r
- };\r
-//}}}\r
-//{{{ Constructor4\r
- template <class T , class P1 , class P2 , class P3 , class P4> \r
- class Constructor4 : protected Constructor3<T , P1 , P2 , P3>\r
- {\r
- protected:\r
- P4 p4;\r
- public: \r
- Constructor4(const P1& p1_ , const P2& p2_ , const P3& p3_ , const P4& p4_)\r
- : Constructor2(p1_ , p2_ , p3_) , p4(p4_)\r
- {}\r
-\r
- T* operator() ( ) const {return new T(p1 , p2 , p3 , p4);}\r
- };\r
-//}}}\r
- \r
-//{{{ makeFactoryMethod\r
- template<class T>\r
- FactoryMethod<T>\r
- makeFactoryMethod()\r
- {\r
- return FactoryMethod<T>( Constructor0<T>() );\r
- }\r
- \r
- template<class T , class P1>\r
- FactoryMethod<T>\r
- makeFactoryMethod(const P1& p1)\r
- {\r
- return FactoryMethod<T>( Constructor1<T , P1>(p1) );\r
- }\r
- \r
- template<class T , class P1 , class P2>\r
- FactoryMethod<T>\r
- makeFactoryMethod(const P1& p1 , const P2& p2)\r
- {\r
- return FactoryMethod<T>( Constructor2<T , P1 , P2>(p1 , p2) );\r
- }\r
- \r
- template<class T , class P1 , class P2 , class P3>\r
- FactoryMethod<T>\r
- makeFactoryMethod(const P1& p1 , const P2& p2 , const P3& p3)\r
- {\r
- return FactoryMethod<T>( Constructor3<T , P1 , P2 , P3>(p1 , p2 , p3) );\r
- }\r
- \r
- template<class T , class P1 , class P2 , class P3 , class P4>\r
- FactoryMethod<T>\r
- makeFactoryMethod(const P1& p1 , const P2& p2 , const P3& p3 , const P4& p4)\r
- {\r
- return FactoryMethod<T>( Constructor4<T , P1 , P2 , P3 , P4>(p1 , p2 , p3 , p4) );\r
- }\r
-//}}}\r
-\r
-\r
-}\r
+++ /dev/null
-#include "mof/FilePath.hpp"\r
-#include <boost/regex.hpp>\r
-#include "mof/ConsoleIO.hpp"\r
-\r
-\r
-mof::FilePath::FilePath(const mof::tstring& path){\r
- m_path = path;\r
-}\r
-\r
-\r
-mof::tstring mof::FilePath::getFormat(){\r
- try {\r
- boost::regex regex("(.*)\\.(.*)");//name . format\r
- boost::smatch match;\r
- //\8a¿\8e\9a\82É\82Í\91Î\89\9e\82µ\82Ä\82¢\82È\82¢\r
- if(!boost::regex_search(m_path , match , regex)){\r
- DEBUG_PRINT(_T("FormatError --- ") << m_path);\r
- return mof::tstring();\r
- }\r
- return match.str(2); \r
- }\r
- catch (std::exception &e) {\r
- throw e;\r
- }\r
- return mof::tstring();\r
-}\r
- \r
-\r
-mof::tstring& mof::FilePath::getPath(){\r
- return m_path;\r
-}\r
-\r
-mof::tstring mof::FilePath::dir(){\r
- try {\r
- boost::regex regex("(.*)/[^/]*\\.(.*)");//name . format\r
- boost::smatch match;\r
- //\8a¿\8e\9a\82É\82Í\91Î\89\9e\82µ\82Ä\82¢\82È\82¢\r
- if(!boost::regex_search(m_path , match , regex)){\r
- DEBUG_PRINT(_T("FormatError --- ") << m_path);\r
- return mof::tstring();\r
- }\r
- return match.str(1); \r
- }\r
- catch (std::exception &e) {\r
- throw e;\r
- }\r
- return mof::tstring();\r
-\r
-}\r
- \r
-mof::tstring mof::FilePath::basename(){\r
- try {\r
- boost::regex regex("(.*)/([^/]*)");//name . format\r
- boost::smatch match;\r
- //\8a¿\8e\9a\82É\82Í\91Î\89\9e\82µ\82Ä\82¢\82È\82¢\r
- if(!boost::regex_search(m_path , match , regex)){\r
- DEBUG_PRINT(_T("FormatError --- ") << m_path);\r
- return mof::tstring();\r
- }\r
- return match.str(2); \r
- }\r
- catch (std::exception &e) {\r
- throw e;\r
- }\r
- return mof::tstring();\r
-\r
-}\r
-\r
+++ /dev/null
-#ifndef MOF_FILE_PATH_HPP\r
-#define MOF_FILE_PATH_HPP\r
-\r
-#include "mof/tstring.hpp"\r
-\r
-namespace mof{\r
-\r
-class FilePath{\r
- mof::tstring m_path;\r
-\r
-public:\r
- FilePath(const mof::tstring& path);\r
-\r
- mof::tstring getFormat();\r
- mof::tstring& getPath();\r
- mof::tstring dir();\r
- mof::tstring basename();\r
-};\r
-\r
-}\r
-\r
-#endif\r
+++ /dev/null
-\r
-#include "mof/FileTextureBuilder.h"\r
-#include <d3dx9.h>\r
-#include <dxerr9.h>\r
-#include "GraphicsDevice.h"\r
-#include "mof/ConsoleIO.h"\r
-\r
-mof::FileTextureBuilder::FileTextureBuilder(mof::tstring& path)\r
-{\r
- m_path = path;\r
-}\r
-\r
-mof::FileTextureBuilder::~FileTextureBuilder(void)\r
-{\r
-}\r
-\r
-\r
-mof::TextureRecord mof::FileTextureBuilder::create(){\r
- LPDIRECT3DTEXTURE9 texture;\r
- mof::GRAPHICS_DEVICE pDevice = mof::GraphicsDevice::getInstance()->getGraphicsDevice();\r
- HRESULT hr = D3DXCreateTextureFromFileEx(pDevice , m_path.c_str() , \r
- 0 , 0 , 1 , 0/*RENDER*/ , D3DFMT_UNKNOWN , D3DPOOL_MANAGED ,\r
- D3DX_DEFAULT , D3DX_DEFAULT , mof::createColor(0 , 0 , 0) , NULL , NULL , &texture);\r
-\r
- if(FAILED(hr)){\r
- *ConsoleOut::getInstance() << "CreateTexture --- " << DXGetErrorDescription9(hr) << std::endl;\r
- TextureRecord record;\r
- record.pTexture = NULL;\r
- return record;\r
- }\r
-\r
- TextureRecord record;\r
- record.pTexture = texture;\r
- record.validRect = mof::RectangleModel(0 , 0 , 0 , 0);//\91S\94Í\88Í\r
- return record;\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-\r
-\r
-namespace mof\r
-{\r
- \r
- \r
- //TODO \83R\83\93\83e\83i\82É\91ã\93ü\82Å\82«\82È\82¢\82æ\82¤\82É\82·\82é\r
- class Finalizer \r
- {\r
- mutable void (*m_finalize)( );\r
- \r
- public:\r
- Finalizer( )\r
- : m_finalize(NULL)\r
- {\r
- // do nothing\r
- }\r
- \r
- Finalizer( void (*finalize_)() )\r
- : m_finalize(finalize_)\r
- {\r
- // do nothing\r
- }\r
- \r
- Finalizer( const Finalizer& obj){\r
- if( this == &obj)return;\r
- m_finalize = obj.m_finalize;\r
- obj.m_finalize = NULL;\r
- }\r
- \r
- ~Finalizer( )\r
- {\r
- if( m_finalize )m_finalize();\r
- }\r
- \r
- void cancel( )\r
- {\r
- m_finalize = NULL;\r
- }\r
- \r
- Finalizer& operator = ( const Finalizer& obj )\r
- {\r
- if( this == &obj)return *this;\r
- if( m_finalize )m_finalize();\r
- m_finalize = obj.m_finalize;\r
- obj.m_finalize = NULL;\r
- return *this;\r
- }\r
- \r
- \r
- };\r
-}
\ No newline at end of file
+++ /dev/null
-#include "mof/Font.hpp"\r
-#include <list>\r
-#include <windows.h>\r
-#include "mof/ConsoleIO.hpp"\r
-#include <vector>\r
-#include "mof/utilities.hpp"\r
-\r
-const TCHAR* mof::Font::MS_GOTHIC = _T("\82l\82r \83S\83V\83b\83N");\r
-const TCHAR* mof::Font::MS_P_GOTHIC = _T("\82l\82r \82o\83S\83V\83b\83N");\r
-\r
-\r
-namespace\r
-{\r
- struct FontManager \r
- {\r
- std::vector<mof::tstring> additionalFontResources;\r
- \r
- ~FontManager()\r
- {\r
- foreach( mof::tstring& filename , additionalFontResources )\r
- {\r
- RemoveFontResource( filename.c_str() );\r
- }\r
- }\r
- } g_fontManager;\r
-}\r
-\r
-struct GlyphData{\r
- int iOfs_x , iOfs_y , iBmp_w , iBmp_h , level , width;\r
- BYTE* pBmpBuffer;\r
- bool valid;\r
-\r
- GlyphData(GLYPHMETRICS& GM , TEXTMETRIC& TM , int _level , int bufSize){\r
- iOfs_x = GM.gmptGlyphOrigin.x;\r
- iOfs_y = TM.tmAscent - GM.gmptGlyphOrigin.y;\r
- iBmp_w = GM.gmBlackBoxX + (4-(GM.gmBlackBoxX%4))%4;\r
- iBmp_h = GM.gmBlackBoxY;\r
- level = _level;\r
- width = GM.gmCellIncX;\r
- pBmpBuffer = new BYTE[bufSize];\r
- valid = true;\r
- }\r
-\r
- ~GlyphData(){\r
- delete[] pBmpBuffer;\r
- }\r
-};\r
-\r
-struct mof::Font::Impl{\r
- HFONT hFont;\r
- size_t fontSize;\r
-\r
- Impl(size_t fontSize_)\r
- : hFont(NULL) ,fontSize(fontSize_)\r
- {\r
- }\r
-\r
- ~Impl(){\r
- DeleteObject(hFont);\r
- }\r
-\r
-};\r
-\r
-mof::Font::Font(const TCHAR* fontName , size_t size)\r
-: m_pImpl(new Impl(size))\r
-{\r
- LOGFONT lf = {m_pImpl->fontSize , 0, 0, 0, 0, 0, 0, 0, SHIFTJIS_CHARSET, OUT_TT_ONLY_PRECIS,\r
- CLIP_DEFAULT_PRECIS , PROOF_QUALITY, FIXED_PITCH | FF_MODERN , "" };\r
- strcpy_s(lf.lfFaceName , fontName );\r
-\r
- if(!(m_pImpl->hFont = CreateFontIndirect(&lf))){\r
- throw std::runtime_error("Failed --- CreateFontIndirect");\r
- }\r
-\r
- \r
-\r
-}\r
-\r
-mof::Font::~Font(){\r
- \r
-}\r
-\r
- \r
-\r
-mof::PixelMap* mof::Font::createText(const mof::tstring& text) const{\r
-\r
- // \83f\83o\83C\83X\83R\83\93\83e\83L\83X\83g\8eæ\93¾\r
- // \83f\83o\83C\83X\82É\83t\83H\83\93\83g\82ð\8e\9d\82½\82¹\82È\82¢\82ÆGetGlyphOutline\8aÖ\90\94\82Í\83G\83\89\81[\82Æ\82È\82é\r
- HDC hdc = GetDC(NULL);\r
- HFONT oldFont = static_cast<HFONT>(SelectObject(hdc , m_pImpl->hFont));\r
- TEXTMETRIC TM;\r
- GetTextMetrics( hdc, &TM );\r
-\r
- int sumWidth = 0;\r
- int maxHeight = 0;\r
- typedef std::list<GlyphData*>::iterator GDITR;\r
- std::list<GlyphData*> glyphDataList;\r
- for(int i = 0 ; text.c_str()[i] ; ){\r
-\r
-\r
- // \95¶\8e\9a\83R\81[\83h\8eæ\93¾\r
- UINT code = 0;\r
- #if _UNICODE\r
- // unicode\82Ì\8fê\8d\87\81A\95¶\8e\9a\83R\81[\83h\82Í\92P\8f\83\82É\83\8f\83C\83h\95¶\8e\9a\82ÌUINT\95Ï\8a·\82Å\82·\r
- code = (UINT)str[i++];\r
- #else\r
- // \83}\83\8b\83`\83o\83C\83g\95¶\8e\9a\82Ì\8fê\8d\87\81A\r
- // 1\83o\83C\83g\95¶\8e\9a\82Ì\83R\81[\83h\82Í1\83o\83C\83g\96Ú\82ÌUINT\95Ï\8a·\81A\r
- // 2\83o\83C\83g\95¶\8e\9a\82Ì\83R\81[\83h\82Í[\90æ\93±\83R\81[\83h]*256 + [\95¶\8e\9a\83R\81[\83h]\82Å\82·\r
- if(IsDBCSLeadByte(text[i])){\r
- code = (text[i] << 8) | (text[i+1] & 0xff); // \95¶\8e\9a\r
- code &= 0x0000ffff;\r
- i += 2;\r
- }\r
- else{\r
- code = text[i++];\r
- }\r
- #endif\r
-\r
- unsigned int spaceCode = (_T(" ")[0]);\r
- unsigned int wSpaceCode = (_T("\81@")[0] << 8) | (_T("\81@")[1] & 0xff);\r
- wSpaceCode &= 0x0000ffff;\r
-\r
-\r
- // \83t\83H\83\93\83g\83r\83b\83g\83}\83b\83v\8eæ\93¾\r
- GLYPHMETRICS GM;\r
- CONST MAT2 Mat = {{0,1},{0,0},{0,0},{0,1}};\r
- DWORD size = GetGlyphOutline(hdc, code , GGO_GRAY8_BITMAP, &GM, 0, NULL, &Mat);\r
- GlyphData* pGD = new GlyphData(GM , TM , 65 , size);\r
- GetGlyphOutline(hdc, code, GGO_GRAY8_BITMAP, &GM, size, pGD->pBmpBuffer , &Mat);\r
-\r
- if(code == spaceCode || code == wSpaceCode){\r
- //\8bó\94\92\82Í\89½\8cÌ\82©\82¤\82Ü\82\8f\91\82«\8d\9e\82ß\82È\82¢\82±\82Æ\82Ö\82Ì\91Î\8f\88\r
- pGD->valid = false;\r
- }\r
- glyphDataList.push_back(pGD);\r
- sumWidth += pGD->width;//\91S\91Ì\82Ì\95\9d\r
- maxHeight = max(maxHeight , TM.tmHeight);\r
- }\r
- \r
- // \83f\83o\83C\83X\83R\83\93\83e\83L\83X\83g\82Æ\83t\83H\83\93\83g\83n\83\93\83h\83\8b\82Ì\8aJ\95ú\r
- SelectObject(hdc, oldFont);\r
- ReleaseDC(NULL, hdc);\r
-\r
- typedef mof::PixelMap::size_type size_type;\r
- boost::array<size_type , 2> sizes = {{ sumWidth , maxHeight }};\r
- mof::PixelMap* pPixelMap = new mof::PixelMap(sizes);\r
-\r
- // \83t\83H\83\93\83g\8fî\95ñ\82Ì\8f\91\82«\8d\9e\82Ý\r
- // iOfs_x, iOfs_y : \8f\91\82«\8fo\82µ\88Ê\92u(\8d¶\8fã)\r
- // iBmp_w, iBmp_h : \83t\83H\83\93\83g\83r\83b\83g\83}\83b\83v\82Ì\95\9d\8d\82\r
- // Level : \83¿\92l\82Ì\92i\8aK (GGO_GRAY4_BITMAP\82È\82Ì\82Å17\92i\8aK)\r
-\r
- DWORD Alpha, Color;\r
- int hoseiX = 0;\r
- for(int y = 0 ; y < maxHeight ; y++){\r
- for(int x = 0 ; x < sumWidth ; x++){\r
- (*pPixelMap)[x][y] = 0;\r
- }\r
- }\r
- for(GDITR itr = glyphDataList.begin() ; itr != glyphDataList.end() ; ++itr){\r
- for(int y = (*itr)->iOfs_y ; y < (*itr)->iOfs_y + (*itr)->iBmp_h ; y++){\r
- if(!(*itr)->valid)break;//\8bó\94\92\95¶\8e\9a\82È\82ç\8f\91\82«\8d\9e\82Ý\82ð\96³\8e\8b\82·\82é\r
- for(int x = (*itr)->iOfs_x + hoseiX ; x < (*itr)->iOfs_x + (*itr)->iBmp_w + hoseiX && x < sumWidth ; x++){\r
- Alpha = (255 * (*itr)->pBmpBuffer[x - ((*itr)->iOfs_x + hoseiX) + (*itr)->iBmp_w * ( y - (*itr)->iOfs_y ) ] ) / ((*itr)->level-1);\r
- Color = 0x00ffffff | (Alpha<<24);\r
- \r
- (*pPixelMap)[x][y] = Color;\r
- \r
- }\r
- }\r
- hoseiX += (*itr)->width;\r
- delete *itr;\r
- }\r
-\r
- return pPixelMap;\r
-}\r
-\r
-\r
-bool mof::Font::addFontResource(const mof::tstring& filename ){\r
- g_fontManager.additionalFontResources.push_back(filename);\r
- return AddFontResource( filename.c_str() ) ? true : false ;\r
-}\r
+++ /dev/null
-#ifndef MOF_FONT_HPP\r
-#define MOF_FONT_HPP\r
-#include <boost/shared_ptr.hpp>\r
-#include "mof/tstring.hpp"\r
-#include "mof/PixelMap.hpp"\r
-\r
-namespace mof{\r
-\r
-class Font{\r
- struct Impl;\r
- boost::shared_ptr<Impl> m_pImpl;\r
-\r
-public:\r
- Font(const TCHAR* fontName , size_t size);\r
- ~Font();\r
-\r
- mof::PixelMap* createText(const mof::tstring& text) const;\r
-\r
- static const TCHAR* MS_GOTHIC;\r
- static const TCHAR* MS_P_GOTHIC;\r
- \r
- static bool addFontResource(const mof::tstring& filename );\r
-};\r
-\r
-}\r
-\r
-\r
-\r
-#endif\r
+++ /dev/null
-#ifndef MOF_GRAPHICS3D_HPP\r
-#define MOF_GRAPHICS3D_HPP\r
-#include "mof/Component3D.hpp"\r
-#include "mof/SceneGraph.hpp"\r
-#include "mof/Texture.hpp"\r
-\r
-namespace mof{\r
-\r
-\r
-class Graphics3D : public Component3D , public SceneGraph {\r
-public :\r
- virtual ~Graphics3D(){}\r
- //virtual const mof::GraphicsUnit& getUnit() = 0;\r
- virtual void setTexture( \r
- unsigned int num , const boost::shared_ptr<mof::Texture>& pTexture) = 0;\r
-\r
-};\r
-\r
-}\r
-\r
-#endif\r
+++ /dev/null
-\r
-\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include <list>\r
-#include <stdexcept>\r
-#include "mof/private/VertexFVF.hpp"\r
-#include "mof/Material.hpp"\r
-#include "mof/private/TextureImpl.hpp"\r
-#include "mof/Window.hpp"\r
-\r
-namespace \r
-{\r
- \r
- HWND m_hWnd = NULL;\r
- int m_width;\r
- int m_height;\r
- LPDIRECT3DDEVICE9 m_pDevice = NULL;\r
- LPDIRECT3D9 m_pD3D = NULL;\r
- D3DPRESENT_PARAMETERS* m_pParam = NULL;\r
- IDirect3DStateBlock9* m_pNormalBlendingBlock = NULL;\r
- IDirect3DStateBlock9* m_pAddBlendingBlock = NULL;\r
- IDirect3DStateBlock9* m_pAlphaBlendingBlock = NULL;\r
- int m_currentStateBlock;\r
- mof::Matrix3D m_worldTransform;\r
- mof::Matrix3D m_viewTransform;\r
- mof::Matrix3D m_projectionTransform;\r
- bool m_flagActive;\r
- bool m_flagDeviceLost;\r
-}\r
-\r
-\r
-inline bool isOK(HRESULT hr){\r
- return hr == S_OK;\r
-}\r
-\r
-\r
-namespace mof\r
-{\r
- template void GraphicsDevice::drawVertexArray( const VertexXYZRHWCUV& , const VertexXYZRHWCUV& , PRIMITIVE_TYPE );\r
- template void GraphicsDevice::drawVertexArray( const VertexXYZRHWC& , const VertexXYZRHWC& , PRIMITIVE_TYPE);\r
- template void GraphicsDevice::drawVertexArray( const VertexXYZCUV& , const VertexXYZCUV& , PRIMITIVE_TYPE);\r
- template void GraphicsDevice::drawVertexArray( const VertexXYZNUV& , const VertexXYZNUV& , PRIMITIVE_TYPE);\r
- template void GraphicsDevice::drawVertexArray( const VertexXYZC& , const VertexXYZC& , PRIMITIVE_TYPE);\r
-\r
-\r
-\r
- //TODO \8aÖ\90\94\95ª\8a\84\r
- void GraphicsDevice::initialize( const mof::Window& window , int width , int height , bool fullscreen )\r
- {\r
- \r
- HRESULT hr;\r
- m_hWnd = window.getHandler();\r
- m_width = width;\r
- m_height = height;\r
-\r
- if( NULL == ( m_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )\r
- {\r
- throw std::runtime_error( "Failed --- Direct3DCreate9" );\r
- }\r
-\r
- m_pParam = new D3DPRESENT_PARAMETERS;\r
- ZeroMemory( m_pParam, sizeof(D3DPRESENT_PARAMETERS) );\r
- m_pParam->Windowed = (fullscreen)? FALSE : TRUE; //TRUE=Window,FALSE=FULLSCREEN\r
- m_pParam->BackBufferCount = 1;\r
- m_pParam->PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;\r
-\r
- if( fullscreen )\r
- {\r
- //\83t\83\8b\83X\83N\83\8a\81[\83\93\8e\9e\82Í\83o\83b\83N\83o\83b\83t\83@\82Ì\95\9d\81A\8d\82\82³\82ð\8dÄ\8ew\92è\r
- m_pParam->BackBufferWidth = width; //\95\9d\r
- m_pParam->BackBufferHeight = height; //\8d\82\82³\r
- m_pParam->BackBufferFormat = D3DFMT_X8R8G8B8; //16bit\r
- //m_pParam->BackBufferFormat = D3DFMT_R5G6B5; //16bit\r
- m_pParam->FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;\r
- }\r
- else\r
- {\r
- m_pParam->BackBufferFormat = D3DFMT_UNKNOWN; //\8c»\8dÝ\82Ì\89æ\96Ê\83\82\81[\83h\82ð\97\98\97p\r
- }\r
- m_pParam->SwapEffect = D3DSWAPEFFECT_DISCARD;\r
- // Z \83o\83b\83t\83@\82Ì\8e©\93®\8dì\90¬\r
- m_pParam->EnableAutoDepthStencil = 1;\r
- m_pParam->AutoDepthStencilFormat = D3DFMT_D16;\r
- \r
-\r
- \r
-\r
- //HAL(pure vp)\r
- if\r
- ( \r
- FAILED\r
- ( \r
- hr = \r
- m_pD3D->CreateDevice\r
- (\r
- 0 , D3DDEVTYPE_HAL , m_hWnd ,\r
- D3DCREATE_HARDWARE_VERTEXPROCESSING , m_pParam , &m_pDevice\r
- )\r
- )\r
- )\r
- {\r
- //HAL(soft vp)\r
- if\r
- (\r
- FAILED\r
- ( \r
- hr =\r
- m_pD3D->CreateDevice\r
- (\r
- 0 , D3DDEVTYPE_HAL , m_hWnd ,\r
- D3DCREATE_SOFTWARE_VERTEXPROCESSING , m_pParam , &(m_pDevice) \r
- )\r
- )\r
- )\r
- {\r
- //REF\r
- if\r
- ( \r
- FAILED(\r
- hr = \r
- m_pD3D->CreateDevice\r
- (\r
- 0 , D3DDEVTYPE_REF , m_hWnd ,\r
- D3DCREATE_HARDWARE_VERTEXPROCESSING , m_pParam , &m_pDevice\r
- )\r
- )\r
- )\r
- {\r
- delete m_pParam;\r
- m_pD3D->Release();\r
- throw std::runtime_error(std::string("Failed --- CreateDevice"));\r
- }\r
- } // if\r
- } // if\r
- \r
- setViewport( mof::Rectangle<int>(0 , 0 , width , height) );\r
- \r
- //\r
- m_pDevice->SetSamplerState(0 , D3DSAMP_MAGFILTER , D3DTEXF_LINEAR ); //D3DTEXF_POINT \r
- m_pDevice->SetSamplerState(0 , D3DSAMP_MINFILTER , D3DTEXF_LINEAR ); //D3DTEXF_POINT \r
- \r
- \r
- m_pDevice->BeginStateBlock( );\r
- m_pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE , TRUE );\r
- m_pDevice->SetRenderState( D3DRS_SRCBLEND,D3DBLEND_SRCALPHA );\r
- m_pDevice->SetRenderState( D3DRS_DESTBLEND,D3DBLEND_ONE );\r
- m_pDevice->SetTextureStageState( 0 , D3DTSS_ALPHAOP,D3DTOP_MODULATE ); //ARG1\82ÆARG2\82Ì\83¿\92l\82ð\8fæ\8eZ\82µ\82Ä\83¿\92l\82ð\8eæ\93¾\82µ\82Ü\82·\81B\r
- m_pDevice->SetTextureStageState( 0 , D3DTSS_ALPHAARG1,D3DTA_DIFFUSE ); //\83e\83N\83X\83`\83\83\82Ì\83¿\92l\r
- m_pDevice->SetTextureStageState( 0 , D3DTSS_ALPHAARG2,D3DTA_TEXTURE ); //\92¸\93_\82Ì\83¿\r
- m_pDevice->SetTextureStageState( 0 , D3DTSS_COLOROP,D3DTOP_MODULATE ); //ARG1\82ÆARG2\82Ì\83J\83\89\81[\82Ì\92l\82ð\8fæ\8eZ\82µ\82Ü\82·\81B\r
- m_pDevice->SetTextureStageState( 0 , D3DTSS_COLORARG1,D3DTA_TEXTURE ); //\83e\83N\83X\83`\83\83\82Ì\83J\83\89\81[\r
- m_pDevice->SetTextureStageState( 0 , D3DTSS_COLORARG2,D3DTA_DIFFUSE ); //\92¸\93_\82Ì\83J\83\89\81[*/\r
- m_pDevice->EndStateBlock( &m_pAddBlendingBlock );\r
-\r
- m_pDevice->BeginStateBlock( );\r
- m_pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE , TRUE );\r
- m_pDevice->SetRenderState( D3DRS_SRCBLEND , D3DBLEND_SRCALPHA );\r
- m_pDevice->SetRenderState( D3DRS_DESTBLEND , D3DBLEND_INVSRCALPHA );\r
- m_pDevice->SetTextureStageState( 0 ,D3DTSS_ALPHAOP , D3DTOP_SELECTARG2 ); //ARG1\82ÆARG2\82Ì\83¿\92l\82ð\8fæ\8eZ\82µ\82Ä\83¿\92l\82ð\8eæ\93¾\82µ\82Ü\82·\81B\r
- m_pDevice->SetTextureStageState( 0 ,D3DTSS_ALPHAARG1 , D3DTA_DIFFUSE ); //\83e\83N\83X\83`\83\83\82Ì\83¿\92l\r
- m_pDevice->SetTextureStageState( 0 ,D3DTSS_ALPHAARG2 , D3DTA_TEXTURE ); //\92¸\93_\82Ì\83¿\92l\r
- m_pDevice->SetTextureStageState( 0 ,D3DTSS_COLOROP , D3DTOP_MODULATE ); //ARG1\82ÆARG2\82Ì\83J\83\89\81[\82Ì\92l\82ð\8fæ\8eZ\82µ\82Ü\82·\81B\r
- m_pDevice->SetTextureStageState( 0 ,D3DTSS_COLORARG1 , D3DTA_DIFFUSE ); //\83e\83N\83X\83`\83\83\82Ì\83J\83\89\81[\r
- m_pDevice->SetTextureStageState( 0 ,D3DTSS_COLORARG2 , D3DTA_TEXTURE ); //\92¸\93_\82Ì\83J\83\89\81[*/\r
- m_pDevice->EndStateBlock( &m_pNormalBlendingBlock );\r
-\r
- m_pDevice->BeginStateBlock( );\r
- m_pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE , TRUE );\r
- m_pDevice->SetRenderState( D3DRS_SRCBLEND , D3DBLEND_SRCALPHA );\r
- m_pDevice->SetRenderState( D3DRS_DESTBLEND , D3DBLEND_INVSRCALPHA );\r
- m_pDevice->SetTextureStageState( 0,D3DTSS_ALPHAOP , D3DTOP_MODULATE ); //ARG1\82ÆARG2\82Ì\83¿\92l\82ð\8fæ\8eZ\82µ\82Ä\83¿\92l\82ð\8eæ\93¾\82µ\82Ü\82·\81B\r
- m_pDevice->SetTextureStageState( 0,D3DTSS_ALPHAARG1 , D3DTA_DIFFUSE ); //\83e\83N\83X\83`\83\83\82Ì\83¿\92l\r
- m_pDevice->SetTextureStageState( 0,D3DTSS_ALPHAARG2 , D3DTA_TEXTURE ); //\92¸\93_\82Ì\83¿\92l\r
- m_pDevice->SetTextureStageState( 0,D3DTSS_COLOROP , D3DTOP_MODULATE ); //ARG1\82ÆARG2\82Ì\83J\83\89\81[\82Ì\92l\82ð\8fæ\8eZ\82µ\82Ü\82·\81B\r
- m_pDevice->SetTextureStageState( 0,D3DTSS_COLORARG1 , D3DTA_DIFFUSE ); //\83e\83N\83X\83`\83\83\82Ì\83J\83\89\81[\r
- m_pDevice->SetTextureStageState( 0,D3DTSS_COLORARG2 , D3DTA_TEXTURE ); //\92¸\93_\82Ì\83J\83\89\81[*/\r
- m_pDevice->EndStateBlock( &m_pAlphaBlendingBlock );\r
- \r
- setProjectionTransform(0.1f , 100);\r
- } // function initialize\r
-\r
-\r
-\r
- void GraphicsDevice::finalize( )\r
- {\r
- m_pAddBlendingBlock->Release();\r
- m_pNormalBlendingBlock->Release();\r
- m_pAlphaBlendingBlock->Release();\r
- if(m_pDevice != NULL)m_pDevice->Release();\r
- if(m_pD3D != NULL)m_pD3D->Release();\r
- delete m_pParam;\r
- }\r
-\r
-\r
-\r
-\r
- void GraphicsDevice::beginScene( )\r
- {\r
- \r
-\r
- if(true == m_flagDeviceLost)\r
- { \r
- Sleep(100); // 0.1\95b\91Ò\82Â\r
- if(/*m_flagActive == true &&*/ m_pDevice->TestCooperativeLevel() == D3DERR_DEVICENOTRESET )\r
- {\r
- //---\83f\83o\83C\83X\95\9c\8bA\82ð\8e\8e\82Ý\82é\r
- \r
- if( FAILED( m_pDevice->Reset( m_pParam) ) )return;\r
- \r
- //\83f\83o\83C\83X\82Ì\95\9c\8bA\82É\90¬\8c÷\r
- m_flagDeviceLost = false;\r
- //---\83X\83e\81[\83g\82ð\95\9c\8bA\r
- DEBUG_PRINT( "DeviceRecovered!" );\r
- }\r
- else return;\r
- }\r
- \r
- \r
-\r
- if( !isOK( m_pDevice->BeginScene( ) ) )\r
- {\r
- throw std::runtime_error("Failed --- BeginScene");\r
- }\r
-\r
-\r
- } // function beginScene\r
- \r
-\r
-\r
-\r
- void GraphicsDevice::endScene( )\r
- {\r
- \r
- if( !isOK( m_pDevice->EndScene() ) )\r
- {\r
- throw std::runtime_error("Failed --- EndScene");\r
- }\r
-\r
- //\83o\83b\83N\83o\83b\83t\83@\82©\82ç\83v\83\89\83C\83}\83\8a\83o\83b\83t\83@\82Ö\93]\91\97\r
- HRESULT hr = m_pDevice->Present( NULL, NULL, NULL, NULL );\r
- \r
- if( hr == D3DERR_DEVICELOST && false == m_flagDeviceLost )\r
- {\r
- DEBUG_PRINT( "DeviceLost!" );\r
- m_flagDeviceLost = true;\r
- //\83\8a\83\\81[\83X\82Ì\89ð\95ú\8f\88\97\9d\r
-\r
- }\r
-\r
- \r
- if( !isOK( hr ) )throw std::runtime_error("Present");\r
- \r
-\r
- } // function endScene\r
-\r
-\r
-\r
-\r
- void GraphicsDevice::setWorldTransform( const mof::Matrix3D& matrix )\r
- {\r
- m_worldTransform = matrix;\r
- D3DXMATRIX mat;\r
- for(int i = 0 ; i < 4 ; ++i ){\r
- for(int j = 0 ; j < 4 ; ++j){\r
- mat(i , j) = matrix.at(i , j);\r
- }\r
- }\r
- m_pDevice->SetTransform( D3DTS_WORLD, &mat );\r
- }\r
-\r
-\r
-\r
- void GraphicsDevice::setProjectionTransform( real min , real max )\r
- {\r
- D3DXMATRIX matProj;\r
- D3DXMatrixPerspectiveFovLH\r
- ( \r
- &matProj, D3DX_PI / 4.0f, \r
- static_cast<float>(getViewportWidth()) / static_cast<float>(getViewportHeight()) , min, max\r
- );\r
-\r
- mof::Matrix3D::Array arry;\r
- for(int i = 0 ; i < 4 ; ++i ){\r
- for(int j = 0 ; j < 4 ; ++j){\r
- arry.elements[i][j] = matProj( i , j );\r
- }\r
- }\r
- m_projectionTransform = mof::Matrix3D( arry );\r
- m_pDevice->SetTransform( D3DTS_PROJECTION , &matProj );\r
-\r
- } \r
-\r
-\r
-\r
- void GraphicsDevice::setViewTransform( const mof::Matrix3D& matrix )\r
- {\r
- m_viewTransform = matrix;\r
- D3DXMATRIX mat;\r
- for(int i = 0 ; i < 4 ; ++i ){\r
- for(int j = 0 ; j < 4 ; ++j){\r
- mat(i , j) = matrix.at(i , j);\r
- }\r
- }\r
- m_pDevice->SetTransform( D3DTS_VIEW , &mat );\r
- }\r
-\r
-\r
-\r
-\r
- const mof::Matrix3D& GraphicsDevice::getWorldTransform( ) \r
- {\r
- return m_worldTransform;\r
- }\r
-\r
-\r
- \r
- const mof::Matrix3D& GraphicsDevice::getProjectionTransform() \r
- {\r
- return m_projectionTransform;\r
- }\r
- \r
-\r
-\r
- const mof::Matrix3D& GraphicsDevice::getViewTransform()\r
- {\r
- return m_viewTransform;\r
- }\r
-\r
- \r
-\r
- void GraphicsDevice::setZBuffer( bool available )\r
- {\r
- if( available )m_pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );\r
- else m_pDevice->SetRenderState( D3DRS_ZENABLE , D3DZB_FALSE ); \r
- }\r
-\r
-\r
-\r
- void GraphicsDevice::lightEnable( bool available )\r
- {\r
- m_pDevice->SetRenderState( D3DRS_LIGHTING , available );\r
- }\r
-\r
-\r
-\r
- void GraphicsDevice::clearZBuffer()\r
- {\r
- m_pDevice->Clear( 0 , NULL , D3DCLEAR_ZBUFFER , 0 , 1.0f, 0 );\r
- }\r
-\r
-\r
-\r
- void GraphicsDevice::clearRenderTarget( mof::Color color )\r
- {\r
- m_pDevice->Clear( 0 , 0 , D3DCLEAR_TARGET , color , 0 , 0 );\r
- }\r
-\r
-\r
-\r
- void GraphicsDevice::setAlphaBlendingMode( const int flag )\r
- {\r
- if(flag == m_currentStateBlock )return;\r
-\r
- if( flag == mof::GraphicsDevice::BLENDING_MODE_ADD ){\r
- m_pAddBlendingBlock->Apply();\r
- }\r
- else if(flag == mof::GraphicsDevice::BLENDING_MODE_BASIC)\r
- {\r
- m_pNormalBlendingBlock->Apply();\r
- }\r
- else if( flag == mof::GraphicsDevice::BLENDING_MODE_ALPHA )\r
- {\r
- m_pAlphaBlendingBlock->Apply();\r
- }\r
-\r
- m_currentStateBlock = flag;\r
- }\r
-\r
-\r
-\r
- Vector2D GraphicsDevice::to2DPosition( const mof::Vector3D& position )\r
- {\r
- mof::Matrix3D matrix = m_worldTransform;\r
- matrix = m_viewTransform * m_projectionTransform;\r
- int hWidth = getViewportWidth() / 2;\r
- int hHeight = getViewportHeight() / 2;\r
- mof::Vector3D tmpPosition = position * matrix;\r
- \r
- return mof::Vector2D\r
- (\r
- static_cast<int>(tmpPosition.x * hWidth + hWidth ) , \r
- static_cast<int>(-tmpPosition.y * hHeight + hHeight)\r
- );\r
- }\r
-\r
-\r
- void GraphicsDevice::setViewport( const mof::Rectangle<int>& area )\r
- {\r
- D3DVIEWPORT9 vp;\r
- vp.X = area.beginX;\r
- vp.Y = area.beginY;\r
- vp.Width = area.getWidth( );\r
- vp.Height = area.getHeight( );\r
- vp.MinZ = 0.0f;\r
- vp.MaxZ = 1.0f;\r
- if( FAILED( m_pDevice->SetViewport( &vp ) ) )\r
- {\r
- throw std::runtime_error( "Failed --- SetViewport" );\r
- }\r
- }\r
-\r
- int GraphicsDevice::getViewportWidth( ) \r
- {\r
- D3DVIEWPORT9 vp;\r
- if( FAILED(m_pDevice->GetViewport( &vp ) ) )\r
- {\r
- throw std::runtime_error("Failed --- getViewportWidth");\r
- }\r
- return vp.Width;\r
- }\r
-\r
-\r
- int GraphicsDevice::getViewportHeight() {\r
- D3DVIEWPORT9 vp;\r
- if( FAILED( m_pDevice->GetViewport( &vp ) ) )\r
- {\r
- throw std::runtime_error("Failed --- getViewportHeight");\r
- }\r
- return vp.Height;\r
- }\r
-\r
-\r
-\r
-\r
- template <class T>\r
- void GraphicsDevice::drawVertexArray( const T& front , const T& last , mof::PRIMITIVE_TYPE type )\r
- {\r
- HRESULT hr = E_FAIL;\r
- if(&last < &front)return;\r
- int length = &last - &front + 1; //\92¸\93_\90\94\r
-\r
- m_pDevice->SetFVF( mof::getFVF<T>() );\r
-\r
- if(type == mof::PRIMITIVE_TYPE_TRIANGLESTRIP)\r
- {\r
- hr = m_pDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP , length > 3 ? length - 2 : 1 , (const void*)&front , sizeof(T) );\r
- }\r
- else if( type == PRIMITIVE_TYPE_TRIANGLELIST )\r
- {\r
- hr = m_pDevice->DrawPrimitiveUP( D3DPT_TRIANGLELIST , length / 3 , (const void*)&front , sizeof(T) );\r
- }\r
- else if( type == mof::PRIMITIVE_TYPE_LINELIST )\r
- {\r
- hr = m_pDevice->DrawPrimitiveUP(D3DPT_LINELIST , length / 2 , (const void*)&front , sizeof(T) );\r
- }\r
- \r
- if( FAILED( hr ) )\r
- {\r
- throw std::runtime_error("Failed -- DrawPrimitiveUP");\r
- }\r
-\r
- } // function drawVertexArray\r
-\r
-\r
-\r
- void GraphicsDevice::setMaterial(const mof::Material& material){\r
- D3DMATERIAL9 mat;\r
-\r
- memcpy(static_cast<void*>(&mat) , static_cast<const void*>(&material) , sizeof(D3DMATERIAL9));\r
-\r
- if( FAILED( m_pDevice->SetMaterial( &mat ) ) )\r
- {\r
- throw std::runtime_error("Faild --- SetMaterial");\r
- }\r
- }\r
-\r
-\r
- void GraphicsDevice::setTexture( const mof::Texture* pTexture )\r
- {\r
- if( pTexture == NULL )m_pDevice->SetTexture( 0 , NULL );\r
- else m_pDevice->SetTexture( 0 , pTexture->m_pImpl->pTexture );\r
- }\r
-\r
-\r
- mof::Rectangle<int> GraphicsDevice::getClientRegion() \r
- {\r
- \r
-\r
- RECT rect;\r
- GetWindowRect(m_hWnd , &rect);\r
- POINT point;\r
- point.x = rect.left;\r
- point.y = rect.top;\r
- ScreenToClient(m_hWnd , &point);\r
- int beginX = rect.left - point.x;\r
- int beginY = rect.top - point.y;\r
- return mof::Rectangle<int>(beginX , beginY , beginX + m_width , beginY + m_height);\r
- }\r
- \r
- LPDIRECT3DDEVICE9 GraphicsDevice::getRawDevice( )\r
- {\r
- return m_pDevice;\r
- }\r
- \r
-} // namespace GraphicsDevice\r
+++ /dev/null
-#pragma once\r
-#include "mof/real.hpp"\r
-#include "mof/Color.hpp"\r
-#include "mof/Matrix3D.hpp"\r
-#include "mof/VertexTypes.hpp"\r
-#include <boost/utility.hpp>\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/Rectangle.hpp"\r
-\r
-\r
-\r
-namespace mof{\r
- struct Material;\r
- class Texture;\r
-\r
- namespace GraphicsDevice \r
- {\r
-\r
- // public \r
- \r
- enum BlendingMode\r
- {\r
- BLENDING_MODE_ADD ,\r
- BLENDING_MODE_BASIC ,\r
- BLENDING_MODE_ALPHA\r
- };\r
- \r
- void setWorldTransform( const mof::Matrix3D& matrix );\r
- void setProjectionTransform( real min , real max );\r
- void setViewTransform( const mof::Matrix3D& matrix );\r
- const mof::Matrix3D& getWorldTransform( );\r
- const mof::Matrix3D& getProjectionTransform( );\r
- const mof::Matrix3D& getViewTransform( );\r
- void setZBuffer( bool flag );\r
- void lightEnable( bool enable );\r
- void clearZBuffer( );\r
- void clearRenderTarget( mof::Color color );\r
- void setAlphaBlendingMode( const int flag );\r
- mof::Vector2D to2DPosition( const mof::Vector3D& position );\r
- void setViewport( const mof::Rectangle<int>& area );\r
- int getViewportWidth( );\r
- int getViewportHeight( );\r
-\r
- template <class T> void drawVertexArray\r
- (\r
- const T& front , const T& last , \r
- mof::PRIMITIVE_TYPE type = PRIMITIVE_TYPE_TRIANGLELIST \r
- ); \r
- void setMaterial( const mof::Material& material );\r
- void setTexture( const mof::Texture* pTexture );\r
- mof::Rectangle<int> getClientRegion( );\r
- \r
- } // namespace GraphicsDevice\r
-\r
-\r
-} // namespace mof\r
+++ /dev/null
-\r
-#include "mof/GraphicsObject.h"\r
-#include <iostream>\r
-\r
-mof::GraphicsObject::GraphicsObject(void)\r
-: m_pAnimations( new mof::CascadeAnimation())\r
-{\r
- \r
-}\r
-\r
-mof::GraphicsObject::~GraphicsObject(void)\r
-{\r
-\r
-}\r
-\r
+++ /dev/null
-#include "mof/GraphicsSchedule.h"\r
-#include "mof/ConsoleIO.h"\r
-\r
-\r
-\r
-\r
-\r
-mof::GraphicsSchedule::GraphicsSchedule(){\r
- m_key = 0;\r
-\r
-}\r
-\r
-mof::GraphicsSchedule::~GraphicsSchedule(){\r
- \r
-}\r
-\r
-void mof::GraphicsSchedule::update(){\r
- \r
- std::pair<MapItr , MapItr> range = m_map.equal_range(m_key);\r
- for(MapItr itr = range.first ; itr != range.second ; ++itr){\r
- if((*itr).second.pAnimation.get() != NULL){\r
- (*itr).second.pObject->setAnimation(0 , (*itr).second.pAnimation);\r
- (*itr).second.pAnimation->start();\r
- }\r
- }\r
- \r
- m_key++;\r
-}\r
-\r
-void mof::GraphicsSchedule::add(int index , mof::GraphicsModelPtr& pObject , mof::AnimationResource& pAnimation){\r
- if(pObject.get() == NULL)return;\r
- if(pAnimation.get() != NULL)pAnimation->stop();\r
- mof::GraphicsSchedule::Element element = {pObject , pAnimation };\r
- m_modelList.push_back(pObject);\r
- m_map.insert(std::multimap<mof::AnimationKey , mof::GraphicsSchedule::Element>::value_type(index , element));\r
-}\r
- \r
-std::list<mof::GraphicsModelPtr>& mof::GraphicsSchedule::appendModelList( std::list<mof::GraphicsModelPtr>& modelList){\r
- modelList.insert(modelList.end() , m_modelList.begin() , m_modelList.end());\r
- return modelList;\r
-}\r
- \r
-\r
-\r
- \r
-bool mof::GraphicsSchedule::isFinalized(){\r
- if(m_map.size() == 0)return true;\r
- for(MapItr itr = m_map.begin() ; itr != m_map.end() ; ++itr){\r
- if(!itr->second.pAnimation->isFinalized() )return false;\r
- }\r
- return true;\r
-}\r
-\r
- \r
-bool mof::GraphicsSchedule::isPlaying(){\r
- for(MapItr itr = m_map.begin() ; itr != m_map.end() ; ++itr){\r
- if(itr->second.pAnimation->isPlaying() || itr->second.pAnimation->isFinalized())return true;\r
- }\r
- return false;\r
-}\r
-\r
-\r
-void mof::GraphicsSchedule::clear(){\r
- m_key = 0;\r
- m_map.clear();\r
-}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "mof/GraphicsObject.h"\r
-#include <map>\r
-#include <list>\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof{\r
-\r
- typedef boost::shared_ptr<mof::GraphicsObject> GraphicsModelPtr;\r
-\r
- class GraphicsSchedule{\r
- \r
- struct Element{\r
- mof::GraphicsModelPtr pObject;\r
- mof::AnimationResource pAnimation;\r
- };\r
- typedef std::multimap<int , mof::GraphicsSchedule::Element>::iterator MapItr;\r
-\r
- std::multimap<int , Element> m_map;\r
- std::list<mof::GraphicsModelPtr> m_modelList;\r
- int m_key;\r
- public:\r
- GraphicsSchedule();\r
- ~GraphicsSchedule();\r
-\r
- void update();\r
- void add(int index , mof::GraphicsModelPtr& pObject , mof::AnimationResource& pAnimation);\r
- bool isFinalized();\r
- bool isPlaying();\r
- void clear();\r
- bool isEmpty(){return m_map.empty();}\r
-\r
- std::list<mof::GraphicsModelPtr>& appendModelList( std::list<mof::GraphicsModelPtr>& modelList);\r
-\r
- };\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-#include "mof/Material.hpp"\r
-#include "mof/Texture.hpp"\r
-#include "mof/VertexBuffer.hpp"\r
-#include "mof/VertexTypes.hpp"\r
-\r
-namespace mof{\r
-\r
- struct GraphicsUnit\r
- {\r
- boost::shared_ptr<mof::Material> pMaterial;\r
- boost::shared_ptr<mof::Texture> pTexture;\r
- boost::shared_ptr<mof::VertexBuffer<mof::VertexXYZNUV> > pModel;\r
- };\r
-\r
-}\r
+++ /dev/null
-#include "mof/private/DirectInput.hpp"\r
-#include <vector>\r
-#include "mof/InputReceiver.hpp"\r
-#include "mof/InputDevice.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/private/DeviceInputReceiver.hpp"\r
-#include "boost/shared_ptr.hpp"\r
-\r
-namespace {\r
- LPDIRECTINPUT8 pInput;\r
- LPDIRECTINPUTDEVICE8A pDevice;\r
- boost::shared_ptr<mof::InputReceiver> pInputReceiver;//\8aO\95\94\82É\93n\82·\82½\82ß\r
- mof::DeviceInputReceiver* pDeviceInputReceiver;//\8fã\8bL\82Æ\93¯\82¶\83C\83\93\83X\83^\83\93\83X\r
-}\r
-\r
-//--- \83v\83\8d\83g\83^\83C\83v\90é\8c¾\r
-BOOL CALLBACK enumJoyCallback(const DIDEVICEINSTANCE* pInstance , VOID* pContext);\r
-\r
-/**\r
- * mof::InputDevice::initialize\r
- *\r
- */\r
-void mof::InputDevice::initialize( ){\r
- HINSTANCE hInst = GetModuleHandle(NULL);\r
- HRESULT hr;\r
- hr = DirectInput8Create(hInst , DIRECTINPUT_VERSION ,IID_IDirectInput8 , (void**)&pInput , NULL);\r
- if(FAILED(hr)){\r
- switch(hr){\r
- case DIERR_BETADIRECTINPUTVERSION :\r
- DEBUG_PRINT("DIERR_BETADIRECTINPUTVERSION");\r
- break;\r
- case DIERR_INVALIDPARAM :\r
- DEBUG_PRINT("DIERR_INVALIDPARAM");\r
- break;\r
- case DIERR_OLDDIRECTINPUTVERSION : \r
- DEBUG_PRINT("DIERR_OLDDIRECTINPUTVERSION");\r
- break;\r
- case DIERR_OUTOFMEMORY :\r
- DEBUG_PRINT("DIERR_OUTOFMEMORY");\r
- break;\r
- }\r
- throw std::runtime_error("Failed --- create direct input");\r
- }\r
- \r
- LPCDIDATAFORMAT dataFmt = &c_dfDIJoystick;//\83W\83\87\83C\83X\83e\83B\83b\83N\82ª\8eæ\93¾\82Å\82«\82½\82Æ\89¼\92è\r
- //---\83f\83o\83C\83X\82Ì\90Ý\92è\r
- //\83Q\81[\83\80\83p\83b\83h\83f\83o\83C\83X\82ð\92T\82·\r
- hr = pInput->EnumDevices(DI8DEVCLASS_GAMECTRL , enumJoyCallback , NULL , DIEDFL_ATTACHEDONLY);\r
- if(FAILED(hr) || pDevice == NULL){\r
- //\83Q\81[\83\80\83p\83b\83h\82ª\82È\82¯\82ê\82Î\83L\81[\83{\81[\83h\r
- hr = pInput->CreateDevice(GUID_SysKeyboard , &pDevice , NULL);\r
- if(FAILED(hr)){\r
- pInput->Release();\r
- pInput = NULL;\r
- throw std::runtime_error("Failed --- create device");\r
- }\r
- dataFmt = &c_dfDIKeyboard;//\83L\81[\83{\81[\83h\82ð\83f\83o\83C\83X\82Æ\82µ\82Ä\8eæ\93¾\r
- DEBUG_PRINT("Select --- keyboard as input device");\r
- }\r
- else DEBUG_PRINT("Select --- joystick as input device");\r
- \r
- hr = pDevice->SetDataFormat(dataFmt);\r
- if(FAILED(hr)){\r
- pDevice->Release();\r
- pDevice = NULL;\r
- pInput->Release();\r
- pInput = NULL;\r
- throw std::runtime_error("Failed --- set data format");\r
- }\r
-\r
-\r
- DIPROPDWORD diprop;\r
- diprop.diph.dwSize = sizeof(diprop);\r
- diprop.diph.dwHeaderSize = sizeof(diprop.diph);\r
- diprop.diph.dwObj = 0;\r
- diprop.diph.dwHow = DIPH_DEVICE;\r
- diprop.dwData = 1000;\r
- pDevice->SetProperty(DIPROP_BUFFERSIZE , &diprop.diph);\r
- setActivation(true);\r
- \r
- pDeviceInputReceiver = new mof::DeviceInputReceiver();\r
- pInputReceiver = boost::shared_ptr<mof::InputReceiver>(pDeviceInputReceiver);\r
-}\r
-\r
-\r
-\r
-/**\r
- * mof::InputDevice::finalize\r
- *\r
- */\r
-void mof::InputDevice::finalize(void)\r
-{\r
- mof::InputDevice::setActivation(false);\r
- if(pDevice != NULL)pDevice->Release();\r
- if(pInput != NULL)pInput->Release();\r
-}\r
-\r
-\r
-void mof::InputDevice::setActivation(bool active){\r
- if(pDevice == NULL)return;\r
-\r
- if(active == false)pDevice->Unacquire();\r
- else pDevice->Acquire();\r
-}\r
-\r
-\r
-\r
-BOOL CALLBACK enumJoyCallback(const DIDEVICEINSTANCE* pInstance , VOID* /*pContext*/ ){\r
- HRESULT hr;\r
- \r
- hr = pInput->CreateDevice(pInstance->guidInstance , &(pDevice) , NULL);\r
- if(FAILED(hr))return DIENUM_CONTINUE;\r
-\r
- DIDEVICEINSTANCE deviceInstance;\r
- deviceInstance.dwSize = sizeof(DIDEVCAPS);\r
- hr = pDevice->GetCapabilities((LPDIDEVCAPS)&deviceInstance);\r
- if(FAILED(hr)){\r
- pDevice->Release();\r
- pDevice = NULL;\r
- return DIENUM_CONTINUE;\r
- }\r
-\r
- *ConsoleOut::getInstance() << "Found InputDevice --- " << deviceInstance.tszInstanceName \r
- << ":" << deviceInstance.tszProductName << std::endl;\r
- return DIENUM_STOP;//\89½\82Å\82à\82¢\82¢\82©\82ç\8dÌ\97p\r
-}\r
-\r
- \r
-void mof::InputDevice::update(){\r
- \r
- HRESULT hr;\r
- while(true){\r
- DIDEVICEOBJECTDATA od;\r
- DWORD dwItems = 1;\r
- hr = pDevice->GetDeviceData(sizeof(DIDEVICEOBJECTDATA) , &od , &dwItems , 0);\r
- if(hr == DIERR_INPUTLOST)pDevice->Acquire();\r
- else if(FAILED(hr) || dwItems == 0)return;\r
- \r
- InputEvent iEvent(od.dwOfs , od.dwData);\r
- //inputSignal(iEvent);\r
- pDeviceInputReceiver->notifyInputEvent(iEvent);\r
-\r
- /*for(int i = 0 ; i < listenerList.size() ; ++i){\r
- int tmpSize = listenerList.size();\r
- listenerList.at(i)->notifyInputEvent(iEvent);\r
- if(tmpSize != listenerList.size())i--;//NotifyInputEvent\82ÅRemove\82³\82ê\82½\82©\82ð\83`\83F\83b\83N\r
- }*/\r
- \r
- }\r
-\r
-\r
-}\r
-\r
-\r
-\r
-boost::shared_ptr<mof::InputReceiver> mof::InputDevice::getInputReceiver(){\r
- return pInputReceiver;\r
-}\r
-\r
-\r
-/*\r
-namespace mof{\r
-\r
- class DeviceInputReceiver;\r
-\r
- class InputDevice\r
- {\r
- \r
-\r
- std::vector<DeviceInputReceiver*> listenerList;\r
- \r
- void addReceiver(DeviceInputReceiver* pReceiver);\r
- public:\r
- InputDevice(void);\r
- ~InputDevice(void);\r
- \r
-\r
- bool initialize( HINSTANCE hInst);\r
- static BOOL CALLBACK enumJoyCallback(const DIDEVICEINSTANCE* pInstance , VOID* pContext);\r
-\r
- void activate(bool);\r
- void updateInputData();\r
- InputReceiver* getInputReceiver();\r
- void removeReceiver(DeviceInputReceiver* pReceiver);\r
- //void clearListenerList();\r
-\r
-\r
- };\r
-\r
-};\r
-\r
-typedef std::vector<mof::DeviceInputReceiver*>::iterator LISTENERITR;\r
-\r
-mof::InputDevice::InputDevice(void)\r
-{\r
- m_pInput = NULL;\r
- m_pDevice = NULL;\r
-}\r
-\r
-mof::InputDevice::~InputDevice(void)\r
-{\r
- activate(false);\r
- if(m_pDevice != NULL)m_pDevice->Release();\r
- if(m_pInput != NULL)m_pInput->Release();\r
-}\r
-\r
-\r
-bool mof::InputDevice::initialize( HINSTANCE hInst){\r
- HRESULT hr;\r
- hr = DirectInput8Create(hInst , DIRECTINPUT_VERSION ,IID_IDirectInput8 , (void**)&m_pInput , NULL);\r
- if(FAILED(hr))return false;\r
- \r
- LPCDIDATAFORMAT dataFmt = &c_dfDIJoystick;//\83W\83\87\83C\83X\83e\83B\83b\83N\82ª\8eæ\93¾\82Å\82«\82½\82Æ\89¼\92è\r
- //---\83f\83o\83C\83X\82Ì\90Ý\92è\r
- //\83Q\81[\83\80\83p\83b\83h\83f\83o\83C\83X\82ð\92T\82·\r
- hr = m_pInput->EnumDevices(DI8DEVCLASS_GAMECTRL , enumJoyCallback , NULL , DIEDFL_ATTACHEDONLY);\r
- if(FAILED(hr) || m_pDevice == NULL){\r
- //\83Q\81[\83\80\83p\83b\83h\82ª\82È\82¯\82ê\82Î\83L\81[\83{\81[\83h\r
- hr = m_pInput->CreateDevice(GUID_SysKeyboard , &m_pDevice , NULL);\r
- if(FAILED(hr)){\r
- m_pInput->Release();\r
- m_pInput = NULL;\r
- return false;\r
- }\r
- else dataFmt = &c_dfDIKeyboard;//\83L\81[\83{\81[\83h\82ð\83f\83o\83C\83X\82Æ\82µ\82Ä\8eæ\93¾\r
- }\r
-\r
- \r
- hr = m_pDevice->SetDataFormat(dataFmt);\r
- if(FAILED(hr)){\r
- *ConsoleOut::getInstance() << "SetDataFormat --- ERROR" << std::endl;\r
- m_pDevice->Release();\r
- m_pDevice = NULL;\r
- m_pInput->Release();\r
- m_pInput = NULL;\r
- return false;\r
- }\r
-\r
- //m_pDevice->SetCooperativeLevel( hWnd , DISCL_FOREGROUND);\r
-\r
- DIPROPDWORD diprop;\r
- diprop.diph.dwSize = sizeof(diprop);\r
- diprop.diph.dwHeaderSize = sizeof(diprop.diph);\r
- diprop.diph.dwObj = 0;\r
- diprop.diph.dwHow = DIPH_DEVICE;\r
- diprop.dwData = 1000;\r
- m_pDevice->SetProperty(DIPROP_BUFFERSIZE , &diprop.diph);\r
- activate(true);\r
- return true;\r
-}\r
- \r
-\r
-void mof::InputDevice::activate(bool active){\r
- if(m_pDevice == NULL)return;\r
-\r
- if(active == false)m_pDevice->Unacquire();\r
- else m_pDevice->Acquire();\r
-}\r
-\r
-void mof::InputDevice::updateInputData(){\r
- \r
- HRESULT hr;\r
- while(true){\r
- DIDEVICEOBJECTDATA od;\r
- DWORD dwItems = 1;\r
- hr = m_pDevice->GetDeviceData(sizeof(DIDEVICEOBJECTDATA) , &od , &dwItems , 0);\r
- if(hr == DIERR_INPUTLOST)m_pDevice->Acquire();\r
- else if(FAILED(hr) || dwItems == 0)return;\r
- \r
- InputEvent iEvent(od.dwOfs , od.dwData);\r
- //inputSignal(iEvent);\r
- \r
- for(int i = 0 ; i < listenerList.size() ; ++i){\r
- int tmpSize = listenerList.size();\r
- listenerList.at(i)->notifyInputEvent(iEvent);\r
- if(tmpSize != listenerList.size())i--;//NotifyInputEvent\82ÅRemove\82³\82ê\82½\82©\82ð\83`\83F\83b\83N\r
- }\r
- \r
- }\r
-\r
-\r
-}\r
-\r
-\r
-\r
-mof::InputReceiver* mof::InputDevice::getInputReceiver(){\r
- mof::DeviceInputReceiver* pReceiver = new mof::DeviceInputReceiver();\r
- addReceiver(pReceiver);\r
- return pReceiver;\r
-\r
-}\r
-\r
-\r
-void mof::InputDevice::addReceiver(mof::DeviceInputReceiver* pReceiver){\r
- for(LISTENERITR itr = listenerList.begin() ; itr != listenerList.end() ; ++itr){\r
- if((*itr) == pReceiver)return;//\8aù\82É\93o\98^\8dÏ\82Ý\r
- }\r
- listenerList.push_back(pReceiver);\r
-}\r
-\r
-void mof::InputDevice::removeReceiver(mof::DeviceInputReceiver* pReceiver){\r
- for(LISTENERITR itr = listenerList.begin() ; itr != listenerList.end() ; ++itr){\r
- if((*itr) == pReceiver){\r
- listenerList.erase(itr);\r
- return;\r
- }\r
- }\r
- \r
-}\r
-*/\r
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-#include <windows.h>\r
-\r
-//TODO private\82Í\95Ê\83t\83@\83C\83\8b\82É\r
-namespace mof {\r
- class InputReceiver;\r
-\r
- namespace InputDevice{\r
-\r
- // --- private\r
- void initialize();\r
- void finalize();\r
- void setActivation(bool active);\r
- void update();\r
-\r
- // -- public\r
- boost::shared_ptr<mof::InputReceiver> getInputReceiver();\r
- \r
-\r
- \r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-#include "mof/InputEventCondition.hpp"\r
-\r
-mof::InputEventCondition::InputEventCondition(\r
- mof::InputReceiver::Key key, \r
- const boost::shared_ptr<mof::InputReceiver> &pInputReceiver)\r
- : m_key(key) , m_pInputReceiver(pInputReceiver)\r
-{\r
- update();\r
-}\r
-\r
-mof::InputEventCondition::~InputEventCondition(){\r
-}\r
-\r
-bool mof::InputEventCondition::test(){\r
- return m_state;\r
-}\r
-\r
-void mof::InputEventCondition::update(){\r
- m_state = m_pInputReceiver->testKeyState(m_key);\r
-}\r
-\r
-bool mof::InputEventCondition::isDisposable(){\r
- return false;\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/EventCondition.hpp"\r
-#include "mof/InputReceiver.hpp"\r
-#include "boost/shared_ptr.hpp"\r
-\r
-namespace mof{\r
-\r
-\r
- class InputEventCondition : public EventCondition{\r
- mof::InputReceiver::Key m_key;\r
- boost::shared_ptr<mof::InputReceiver> m_pInputReceiver;\r
- bool m_state;\r
- public:\r
- InputEventCondition(\r
- mof::InputReceiver::Key key , \r
- const boost::shared_ptr<mof::InputReceiver>& pInputReceiver\r
- );\r
-\r
- virtual ~InputEventCondition();\r
- virtual bool test();\r
- virtual void update();\r
- virtual bool isDisposable();\r
- };\r
-\r
-\r
-}\r
-\r
+++ /dev/null
-#pragma once\r
-\r
-\r
-namespace mof{\r
- \r
- class InputReceiver{\r
- public:\r
- typedef enum{\r
- UP = 0 , DOWN , LEFT , RIGHT ,\r
- A , B , C , D , E , F , G , H , I ,\r
- J , K , L , M , N , O , P , Q , R ,\r
- S , T , U , V , W , X , Y , Z ,\r
- ESCAPE ,\r
- END //\8dÅ\8cã\82Í\95K\82¸\82±\82ê\82Å\8fI\82í\82é\82æ\82¤\82É\r
- } Key;\r
-\r
- \r
- virtual ~InputReceiver(){}\r
- virtual bool testKeyState(Key key) = 0;\r
-\r
- /**\r
- * \95s\93Á\92è\91½\90\94\82Ì\83I\83u\83W\83F\83N\83g\82ª\82±\82Ì\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82·\82Æ\81A\r
- * \88Ó\90}\82µ\82½\93ü\97Í\8f\88\97\9d\82ª\82Å\82«\82È\82¢\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B\r
- */\r
- virtual void update() = 0;\r
- \r
- };\r
-};\r
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-//#include "mof/MessageWidget.hpp"\r
-#include "mof/tstring.hpp"\r
- \r
-namespace mof\r
-{\r
- class MessageWidget;\r
-\r
- class InstructionSet\r
- {\r
- public:\r
- /** \r
- * @brief \83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\82ð\90¶\90¬\82·\82é\82½\82ß\82Ì\83R\81[\83\8b\83o\83b\83N\r
- * @return \90¶\90¬\82µ\82½\83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\r
- */\r
- virtual boost::shared_ptr< MessageWidget > createMessageWidget( ) = 0;\r
- \r
- /** \r
- * @brief \83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\82É\83y\81[\83W\82ð\92Ç\89Á\82·\82é\82½\82ß\82Ì\83R\81[\83\8b\83o\83b\83N\r
- * @param[in] \83\81\83b\83Z\81[\83W\82Ì\83^\83C\83g\83\8b\r
- * @param[in] \83\81\83b\83Z\81[\83W\93à\97e\r
- * @return \90¶\90¬\82µ\82½\83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\r
- */\r
- virtual int addMessageWidgetPage\r
- ( \r
- boost::shared_ptr<MessageWidget>& message ,\r
- const tstring& title ,\r
- const tstring& text \r
- ) = 0;\r
- \r
-\r
-\r
- /** \r
- * @brief \83N\83\89\83C\83A\83\93\83g\91¤\82Å\88ø\82«\91±\82«\83\8a\83\\81[\83X\82ð\97\98\97p\82·\82é\82½\82ß\82Ì\83R\81[\83\8b\83o\83b\83N\r
- * @note \88ø\90\94\82Å\93n\82³\82ê\82½\83\8a\83\\81[\83X\82ª\82±\82Ì\83N\83\89\83X\82Ì\83I\83u\83W\83F\83N\83g\82É\82æ\82è\8d¡\8cã\8eQ\8fÆ\82³\82ê\82é\82±\82Æ\82Í\82È\82¢\r
- * @param[in] \95s\97v\82Æ\82È\82Á\82½\83\8a\83\\81[\83X\r
- */\r
- virtual void inactive( boost::shared_ptr<MessageWidget>& message ) = 0;\r
- \r
- virtual ~InstructionSet(){}\r
-\r
- };\r
-\r
-}\r
-\r
-\r
+++ /dev/null
- #pragma once\r
- #include "mof/Vector2D.hpp"\r
- #include "mof/stream/Manipulator.hpp"\r
- #include <map>\r
- #include <algorithm>\r
- \r
- namespace mof{\r
- \r
- template <typename T>\r
- T stepInterpolate(const std::map<mof::FrameNumber , T>& map , mof::FrameNumber current ){\r
- if(map.empty())throw std::invalid_argument("the map is empty");\r
- for(\r
- typename std::map<mof::FrameNumber , T>::const_reverse_iterator itr = map.rbegin() ;\r
- itr != map.rend() ; \r
- ++itr\r
- ){\r
- if(itr->first <= current)return itr->second;\r
- }\r
- return map.begin()->second;//default\r
- }\r
- \r
- template<class T> inline\r
- T calcLinerInterpolationValue( float blending , const T& prevObj , const T& nextObj){\r
- return (1 - blending) * prevObj + blending * nextObj;\r
- } \r
- \r
- //\8cë\8d·\92á\8c¸\82Ì\82½\82ß\82Ì\93Á\8eê\89»\r
- /*template<> inline\r
- Vector2D calcLinerInterpolationValue( float blending , const Vector2D& prev , const Vector2D& next )\r
- {\r
- return mof::Vector2D\r
- (\r
- prev.x != next.x ? (1 - blending) * prev.x + blending * next.x : prev.x , \r
- prev.y != next.y ? (1 - blending) * prev.y + blending * next.y : prev.y \r
- );\r
- }*/ \r
-\r
- template <typename T>\r
- T linerInterpolate(const std::map<mof::FrameNumber , T>& map , mof::FrameNumber current ){\r
- if(map.empty())throw std::invalid_argument("the map is empty");\r
- typename std::map<mof::FrameNumber , T>::const_iterator n = map.find(current);\r
- if(n != map.end())return n->second;// just key frame\r
- \r
- //\92¼\91O\81A\92¼\8cã\82Ì\83L\81[\82ð\8c\9f\8dõ\r
- mof::FrameNumber prevKeyFrame = current;\r
- bool foundPrev = false;\r
- T prevObj;\r
- mof::FrameNumber nextKeyFrame = current;\r
- bool foundNext = false;\r
- T nextObj;\r
- \r
- for(\r
- typename std::map<mof::FrameNumber , T>::const_iterator itr = map.begin() ;\r
- itr != map.end() ;\r
- ++itr\r
- ){\r
- if(itr->first < current && (!foundPrev || itr->first > prevKeyFrame)){\r
- foundPrev = true;\r
- prevKeyFrame = itr->first;\r
- prevObj = itr->second;\r
- }\r
- else if(itr->first > current && (!foundNext || itr->first < nextKeyFrame)){\r
- foundNext = true;\r
- nextKeyFrame = itr->first;\r
- nextObj = itr->second;\r
- }\r
- \r
- }\r
- \r
- assert(foundPrev || foundNext);\r
- if(!foundPrev && foundNext)return nextObj;//\92¼\91O\82Ì\83L\81[\82Í\8c©\82Â\82©\82ç\82È\82©\82Á\82½\r
- else if(foundPrev && !foundNext)return prevObj;//\92¼\8cã\82Ì\83L\81[\82Í\8c©\82Â\82©\82ç\82È\82©\82Á\82½\r
- float blending = static_cast<float>(current - prevKeyFrame) / static_cast<float>(nextKeyFrame - prevKeyFrame);\r
- return calcLinerInterpolationValue<T>(blending , prevObj , nextObj);\r
- }\r
- \r
- } //namespace mof\r
- \r
- \r
+++ /dev/null
-#include "mof/Interpreter.hpp"\r
-#include "mof/private/Interpreter.hpp"\r
-#include "mof/private/regist.hpp"\r
-#include "mof/EventScheduler.hpp"\r
-#include "mof/OnceEventCondition.hpp"\r
-#include "mof/InputReceiver.hpp"\r
-#include "mof/MessageWidget.hpp"\r
-#include "mof/LuaScript.hpp"\r
-#include "mof/KeyPressedEventCondition.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/utilities.hpp"\r
-#include <boost/bind.hpp>\r
- \r
-typedef boost::shared_ptr< mof::MessageWidget > MessageWidgetHandler;\r
-\r
-//{{{ \83\82\83W\83\85\81[\83\8b\95Ï\90\94\r
-namespace\r
-{\r
- \r
- std::vector<MessageWidgetHandler> m_messages;\r
- mof::EventScheduler m_scheduler;\r
- mof::LuaScript* m_pLua;\r
- boost::shared_ptr<mof::InputReceiver> m_pInput;\r
- mof::InstructionSet* m_pInstructionSet;\r
- mof::Interpreter::State m_state;\r
-} // namepsace \r
-//}}}\r
-namespace mof\r
-{\r
-//{{{ _setState\r
- void _setState( Interpreter::State state )\r
- {\r
- m_state = state;\r
- /*switch( m_state )\r
- {\r
- case mof::Interpreter::WAITING : \r
- throw std::runtime_error("waiting on taskFinished");//\82±\82±\82É\97\88\82é\82±\82Æ\82Í\82 \82è\82¦\82È\82¢\r
- break;\r
- case mof::Interpreter::RUNNING :\r
- m_state = mof::Interpreter::WAITING;\r
- break;\r
- case mof::Interpreter::BUSY :\r
- m_state = mof::Interpreter::RUNNING;\r
- mof::Interpreter::doNextCommand();\r
- break;\r
- case mof::Interpreter::FREE :\r
- throw std::runtime_error("waiting on taskFinished");//\82±\82±\82É\97\88\82é\82±\82Æ\82Í\82 \82è\82¦\82È\82¢\r
- break;\r
- }*/\r
- }\r
-//}}} \r
-//{{{ _createMessageWidget \r
- int Interpreter::_createMessageWidget()\r
- {\r
- m_messages.push_back( m_pInstructionSet->createMessageWidget( ) );\r
- return m_messages.size() -1;\r
- }\r
-//}}}\r
-//{{{ _addMessageWidgetPage \r
- int Interpreter::_addMessageWidgetPage\r
- ( \r
- int id ,\r
- const mof::tstring& title ,\r
- const mof::tstring& text \r
- )\r
- {\r
- int frame = m_pInstructionSet->addMessageWidgetPage( m_messages.at(id) , title , text ) ;\r
- m_messages.at(id)->nextPage();\r
- return frame;\r
- }\r
-//}}}\r
-//{{{ _hideMessageWidget\r
- int Interpreter::_hideMessageWidget( int id ){\r
- m_messages.at( id )->close();\r
- return 10;\r
- }\r
-//}}}\r
-//{{{ _waitKey\r
- void Interpreter::_waitKey( const mof::tstring& keystring ){\r
- mof::InputReceiver::Key key;\r
- if( keystring == "z" || keystring == "Z")key = mof::InputReceiver::Z;\r
- else return;\r
-\r
- m_scheduler.addEvent\r
- (\r
- new mof::OnceEventCondition( new mof::KeyPressedEventCondition( key , m_pInput ) ) , \r
- boost::bind( &mof::_setState , mof::Interpreter::WAITING )\r
- );\r
- _setState( mof::Interpreter::RUNNING );\r
- }\r
-//}}}\r
-//{{{ _waitFrame\r
- void Interpreter::_waitFrame( int frame ){\r
- m_scheduler.addEvent\r
- (\r
- frame , \r
- boost::bind( &mof::_setState , mof::Interpreter::WAITING )\r
- );\r
- _setState( mof::Interpreter::RUNNING );\r
- }\r
-//}}}\r
-//{{{ initialize \r
- void Interpreter::initialize\r
- ( \r
- const boost::shared_ptr<mof::InputReceiver>& pInput ,\r
- InstructionSet& implementation \r
- )\r
- {\r
- m_pLua = NULL;\r
- m_pInput = pInput;\r
- m_pInstructionSet = &implementation;\r
- m_state = WAITING;\r
- \r
- }\r
-//}}} \r
-//{{{ finalize\r
- void Interpreter::finalize() \r
- {\r
- mof::safe_delete( m_pLua );\r
- } \r
-//}}} \r
-//{{{ getState\r
- Interpreter::State Interpreter::getState( ) \r
- {\r
- return m_state;\r
- }\r
-//}}}\r
-//{{{ doNextCommand\r
- void Interpreter::doNextCommand( )\r
- {\r
- switch( m_state )\r
- {\r
- case WAITING : \r
- m_pLua->nextCommand();\r
- break;\r
- case RUNNING :\r
- m_state = BUSY;\r
- break;\r
- case BUSY :\r
- break;\r
- case FREE :\r
- break;\r
- }\r
- }\r
-//}}} \r
-//{{{ open \r
- void Interpreter::open( const tstring& filename )\r
- {\r
- if( !m_pLua )m_pLua = new LuaScript(filename);\r
- //---\8aÖ\90\94\82Ì\8a\84\82è\93\96\82Ä\r
- mof::regist::registMessage( m_pLua->getLuaState() );\r
- mof::regist::registWait( m_pLua->getLuaState() );\r
- }\r
-//}}}\r
-//{{{ update\r
- void Interpreter::update()\r
- {\r
- \r
- m_scheduler.update();\r
-\r
- foreach( MessageWidgetHandler& handler , m_messages )\r
- {\r
- if( handler.get() )handler->update();\r
- }\r
- }\r
-//}}} \r
-} //namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/InstructionSet.hpp"\r
-\r
-namespace mof\r
-{\r
- class InputReceiver;\r
- \r
- namespace Interpreter\r
- {\r
- enum State\r
- {\r
- WAITING , /** doNextCommand\82Å\8e\9f\82Ì\83R\83}\83\93\83h\82ð\89ð\90Í\82·\82é */\r
- BUSY , /** \83R\83}\83\93\83h\82ð\8f\88\97\9d\92\86(doNextCommand\82Í\8cÄ\82Î\82ê\82Ä\82¢\82é) */\r
- RUNNING , /** \83R\83}\83\93\83h\82ð\8f\88\97\9d\92\86(doNextCommand\82Í\8cÄ\82Î\82ê\82Ä\82¢\82È\82¢) */\r
- FREE /** \83X\83N\83\8a\83v\83g\82ð\8dÅ\8cã\82Ü\82Å\8f\88\97\9d\82µ\82½ */\r
- };\r
- \r
- /**\r
- * @note \88ø\90\94\82Å\93n\82µ\82½\93ü\97Í\83\8c\83V\81[\83o\82É\82æ\82Á\82Ä\81A\83R\83}\83\93\83h\82Ì\8f\88\97\9d\82ª\8ds\82í\82ê\82é\r
- * @param[in] \83R\83}\83\93\83h\8f\88\97\9d\97p\83C\83\93\83v\83b\83g\83\8c\83V\81[\83o\r
- * @param[in] \96½\97ß\82Ì\8eÀ\91\95\r
- */\r
- void initialize\r
- ( \r
- const boost::shared_ptr<InputReceiver> & pInput ,\r
- InstructionSet& implementation\r
- );\r
-\r
- void finalize( );\r
- \r
- \r
- /**\r
- * @brief \82±\82Ì\83N\83\89\83X\82Ì\83I\83u\83W\83F\83N\83g\82É\82æ\82è\89ð\90Í\82³\82ê\82é\83X\83N\83\8a\83v\83g\82ð\92Ç\89Á\82·\82é\r
- * @param[in] \83X\83N\83\8a\83v\83g\83t\83@\83C\83\8b\96¼\r
- */\r
- void open( const tstring& filename );\r
- \r
- /**\r
- * @brief \8c»\8dÝ\82Ì\83C\83\93\83^\83v\83\8a\83^\82Ì\8fó\91Ô\82ð\93¾\82é\r
- * @return \8c»\8dÝ\82Ì\8fó\91Ô\r
- */\r
- State getState();\r
- \r
- /**\r
- * @brief \83R\83}\83\93\83h\82Ì\8f\88\97\9d\82ð\8ds\82¤\r
- * @note create\8cn\83\81\83\\83b\83h\82Å\90¶\90¬\82³\82ê\82½\83\8a\83\\81[\83X\82Ì\8dX\90V\83\81\83\\83b\83h\82ª\8cÄ\82Î\82ê\82é\81B\r
- * @note \82½\82¾\82µ\81Ainactive\8cn\83\81\83\\83b\83h\82Å\93n\82³\82ê\82½\83\8a\83\\81[\83X\82É\82Â\82¢\82Ä\82Í\82±\82Ì\8cÀ\82è\82Å\82È\82¢\81B\r
- */\r
- void update();\r
- \r
- /**\r
- * @brief \83C\83\93\83^\83v\83\8a\83^\82É\8e\9f\82Ì\83R\83}\83\93\83h\82Ì\8eÀ\8ds\82ð\91£\82·\r
- * @note \83C\83\93\83^\83v\83\8a\83^\82ªWAITING\8fó\91Ô\82Ì\8fê\8d\87\81A\92¼\82¿\82É\8e\9f\82Ì\83R\83}\83\93\83h\82ª\89ð\90Í\82³\82ê\82é\81BRUNNING\81ABUSY\8fó\91Ô\r
- * @note \82Ì\8fê\8d\87\82Íupdate\8cÄ\82Ñ\8fo\82µ\82É\82æ\82è\83C\83\93\83^\83v\83\8a\83^\82ª\8c»\8dÝ\82Ì\83R\83}\83\93\83h\82Ì\8f\88\97\9d\82ð\8a®\97¹\82µ\82½\8cã\82Å\8e\9f\82Ì\r
- * @note \89ð\90Í\82ª\8aJ\8en\82³\82ê\82é\81B\r
- */\r
- void doNextCommand();\r
- \r
- \r
- };\r
-\r
-}\r
-\r
+++ /dev/null
-#include "mof/KeyPressedEventCondition.hpp"\r
-\r
-mof::KeyPressedEventCondition::KeyPressedEventCondition\r
-(\r
- mof::InputReceiver::Key key, \r
- const boost::shared_ptr<mof::InputReceiver> &pInputReceiver \r
-)\r
-: m_key(key) , m_pInputReceiver(pInputReceiver) , m_currentState(false) \r
-{\r
- update();\r
-}\r
-\r
-mof::KeyPressedEventCondition::~KeyPressedEventCondition(){\r
-}\r
-\r
-bool mof::KeyPressedEventCondition::test(){\r
- return m_oldState == false && m_currentState == true ;\r
-}\r
-\r
-void mof::KeyPressedEventCondition::update(){\r
- m_oldState = m_currentState;\r
- m_currentState = m_pInputReceiver->testKeyState(m_key);\r
-}\r
-\r
-bool mof::KeyPressedEventCondition::isDisposable(){\r
- return false;\r
-}\r
-\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/EventCondition.hpp"\r
-#include "mof/InputReceiver.hpp"\r
-#include "boost/shared_ptr.hpp"\r
-\r
-namespace mof{\r
-\r
-\r
- class KeyPressedEventCondition : public EventCondition{\r
- mof::InputReceiver::Key m_key;\r
- boost::shared_ptr<mof::InputReceiver> m_pInputReceiver;\r
- bool m_oldState;\r
- bool m_currentState;\r
- public:\r
- KeyPressedEventCondition\r
- (\r
- mof::InputReceiver::Key key , \r
- const boost::shared_ptr<mof::InputReceiver>& pInputReceiver \r
- );\r
-\r
- virtual ~KeyPressedEventCondition();\r
- virtual bool test();\r
- virtual void update();\r
- virtual bool isDisposable();\r
- };\r
-\r
-\r
-}\r
-\r
+++ /dev/null
-#include "mof/Light.hpp"\r
-#include "mof/Constant.hpp"\r
-\r
-mof::Light::Light()\r
-: m_diffuseColor(mof::makeConstantHandler(mof::Color4f(1 , 1 , 1))) , m_frame(0){\r
- \r
-}\r
-\r
-\r
-mof::Light::~Light(){\r
-}\r
-\r
-void mof::Light::setDiffuseColor(mof::Color4f color){\r
- mof::Animation<mof::Color4f>::Handler f = mof::makeConstantHandler(color);\r
- setDiffuseColor(f);\r
-}\r
-\r
-void mof::Light::setDiffuseColor(const mof::Animation<mof::Color4f>::Handler& f){\r
- m_diffuseColor = f;\r
- m_frame = 0;\r
-}\r
-\r
+++ /dev/null
-#ifndef MOF_ANIMATION\r
-#define MOF_ANIMATION\r
-#include <boost/utility.hpp>\r
-#include "mof/Color.hpp"\r
-\r
-namespace mof{\r
-\r
-class Light : public boost::noncopyable{\r
- \r
-protected:\r
- mof::Manipulator<mof::Color4f>::Handler m_diffuseColor;\r
- FrameNumber m_frame;\r
-public:\r
- Light();\r
- virtual ~Light();\r
- void setDiffuseColor(mof::Color4f color);\r
- void setDiffuseColor(const Manipulator<mof::Color4f>::Handler& f);\r
-\r
- virtual void setEnable(bool enable) = 0;\r
-\r
-};\r
-\r
-};\r
-\r
-#endif\r
+++ /dev/null
-#include "Line3D.h"\r
-\r
-mof::Line3D::Line3D(float beginX , float beginY , float beginZ , float endX , float endY , float endZ)\r
-{\r
- m_begin = mof::Vector3D(beginX , beginY , beginZ);\r
- m_end = mof::Vector3D(endX , endY , endZ);\r
-}\r
-\r
-\r
-mof::Line3D::Line3D(mof::Vector3D& begin , mof::Vector3D& end){\r
- m_begin = begin;\r
- m_end = end;\r
-}\r
-\r
-mof::Line3D::~Line3D(void)\r
-{\r
-}\r
-\r
- \r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/Vector3D.h"\r
-\r
-namespace mof{\r
- class Line3D\r
- {\r
-\r
- mof::Vector3D m_begin;\r
- mof::Vector3D m_end;\r
- public:\r
- Line3D(float beginX , float beginY , float beginZ , float endX , float endY , float endZ);\r
- Line3D(mof::Vector3D& begin , mof::Vector3D& end);\r
- ~Line3D(void);\r
-\r
- mof::Vector3D& getBegin(){return m_begin;}\r
- mof::Vector3D& getEnd(){return m_end;}\r
-\r
- \r
- };\r
-\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#include "mof/LoggedInputReceiver.hpp"\r
-#include "mof/InputDevice.hpp"\r
-\r
-mof::LoggedInputReceiver::LoggedInputReceiver(TCHAR* filename )\r
-: mof::InputReceiver() , m_log(filename){\r
-}\r
-\r
-mof::LoggedInputReceiver::~LoggedInputReceiver(){\r
- \r
-}\r
-\r
-bool mof::LoggedInputReceiver::testKeyState(mof::InputReceiver::Key){\r
- bool result = false;\r
- m_log >> result;\r
- return result;\r
- \r
-}\r
-\r
-void mof::LoggedInputReceiver::update(){\r
-}\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/InputReceiver.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <fstream>\r
-\r
-\r
-\r
-namespace mof{\r
- \r
-\r
- class LoggedInputReceiver : public InputReceiver\r
- {\r
- std::ifstream m_log;\r
- \r
- public:\r
- \r
- LoggedInputReceiver(TCHAR* filename );\r
- virtual ~LoggedInputReceiver();\r
- virtual bool testKeyState(mof::InputReceiver::Key key);\r
- virtual void update();\r
- \r
- };\r
-\r
-};\r
+++ /dev/null
-#include "mof/LoggingInputReceiver.hpp"\r
-#include "mof/InputDevice.hpp"\r
-#include <fstream>\r
-\r
-\r
-mof::LoggingInputReceiver::LoggingInputReceiver(TCHAR* filename )\r
-: m_filename(filename){\r
-}\r
-\r
-mof::LoggingInputReceiver::~LoggingInputReceiver(){\r
- output();\r
-}\r
-\r
-bool mof::LoggingInputReceiver::testKeyState(mof::InputReceiver::Key key){\r
- bool result = mof::InputDevice::getInputReceiver()->testKeyState(key);\r
- m_log.push_back(result);\r
- return result;\r
- \r
-}\r
-\r
-void mof::LoggingInputReceiver::update(){\r
- mof::InputDevice::getInputReceiver()->update();\r
-}\r
-\r
-\r
-\r
-void mof::LoggingInputReceiver::output(){\r
- std::ofstream ofs( m_filename.c_str() );\r
- for(std::list<bool>::iterator itr = m_log.begin() ; itr != m_log.end() ; ++itr){\r
- ofs << *itr << std::endl;\r
- }\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "mof/InputReceiver.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <list>\r
-\r
-namespace mof{\r
- \r
-\r
- class LoggingInputReceiver : public InputReceiver\r
- {\r
- std::list<bool> m_log;\r
- mof::tstring m_filename;\r
- public:\r
- \r
- LoggingInputReceiver(TCHAR* filename );\r
- virtual ~LoggingInputReceiver();\r
- virtual bool testKeyState(Key key);\r
- virtual void update();\r
- void output();\r
- };\r
-\r
-};\r
+++ /dev/null
-#include "mof/LuaScript.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include <lua.hpp>\r
-#include "luabind/luabind.hpp"\r
-#include "mof/utilities.hpp"\r
-\r
-\r
-struct mof::LuaScript::Impl{\r
- lua_State *l;\r
- lua_State *co;\r
-\r
-\r
-\r
- Impl()\r
- : l(NULL) \r
- {\r
- }\r
-\r
- ~Impl(){\r
- if(l)lua_close(l);\r
- }\r
- \r
- \r
-\r
-};\r
-\r
-\r
-\r
-mof::LuaScript::LuaScript(const mof::tstring& filename )\r
-: m_pImpl(new Impl()){\r
- m_pImpl->l = lua_open();\r
- luaL_openlibs(m_pImpl->l);\r
- luabind::open(m_pImpl->l);\r
-\r
- \r
- \r
- \r
- \r
- int error = luaL_dofile(m_pImpl->l , filename.c_str());\r
- //error = luaL_dofile(m_pImpl->l , "script/test2.lua");\r
- if(error){\r
- DEBUG_PRINT(_T("ERROR-") << lua_tostring(m_pImpl->l , -1));\r
- throw std::runtime_error("Failed --- start lua script");\r
- }\r
- m_pImpl->co = lua_newthread(m_pImpl->l);\r
- if(!m_pImpl->co){\r
- DEBUG_PRINT(_T("ERROR-Failed lua_newthread") );\r
- throw std::runtime_error("Failed --- start lua script");\r
- }\r
- lua_getglobal(m_pImpl->co , "main");\r
- \r
-}\r
-\r
-mof::LuaScript::~LuaScript(){\r
-\r
-}\r
-\r
-\r
-void mof::LuaScript::nextCommand(){\r
- lua_resume(m_pImpl->co , 0);\r
- \r
-\r
-}\r
-\r
-lua_State* mof::LuaScript::getLuaState() const{\r
- return m_pImpl->l;\r
-}\r
+++ /dev/null
-#ifndef _LUASCRIPT_HPP\r
-#define _LUASCRIPT_HPP\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/tstring.hpp"\r
-#include <lua.hpp>\r
-\r
-namespace mof{\r
- class MessageWidget;\r
- \r
-\r
- class LuaScript{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- public :\r
- LuaScript(const mof::tstring& filename );\r
- ~LuaScript();\r
-\r
- void nextCommand();\r
- lua_State * getLuaState() const;\r
- };\r
-\r
-}\r
-\r
-\r
-#endif\r
+++ /dev/null
-#ifndef MOF_MATERIAL_HPP\r
-#define MOF_MATERIAL_HPP\r
-#include "Color.hpp"\r
-\r
-namespace mof{\r
-\r
-struct Material{\r
- mof::Color4f diffuseColor;\r
- mof::Color4f ambientColor;\r
- mof::Color4f specularColor;\r
- float power;\r
- mof::Color4f emissiveColor;\r
-\r
- Material()\r
- : ambientColor(0 , 0 , 0) , \r
- diffuseColor(0 , 0 , 0) ,\r
- specularColor(0 , 0 , 0),\r
- power(0),\r
- emissiveColor(0 , 0 , 0)\r
- {\r
- \r
- }\r
-\r
- Material(\r
- mof::Color4f ambient_ ,\r
- mof::Color4f diffuse_ ,\r
- mof::Color4f specular_ ,\r
- real power_ ,\r
- mof::Color4f emissive_\r
- )\r
- : ambientColor(ambient_) , \r
- diffuseColor(diffuse_) ,\r
- specularColor(specular_),\r
- power(power_),\r
- emissiveColor(emissive_)\r
- {\r
- \r
- }\r
-\r
-\r
-};\r
-\r
-}\r
-\r
-#endif\r
+++ /dev/null
-#include "mof/MaterialBuilder.hpp"\r
-#include "mof/Material.hpp"\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include "mof/Constant.hpp"\r
-\r
-struct mof::MaterialBuilder::Impl{\r
-\r
- Impl(\r
- const mof::Animation<mof::Color4f>::Handler& ambient_ ,\r
- const mof::Animation<mof::Color4f>::Handler& diffuse_ ,\r
- const mof::Animation<mof::Color4f>::Handler& specular_ ,\r
- const mof::Animation<float>::Handler& specularPower_ ,\r
- const mof::Animation<mof::Color4f>::Handler& emissive_)\r
- : diffuse(diffuse_) , ambient(ambient_) , specular(specular_) ,\r
- specularPower(specularPower_) , emissive(emissive_) , pMaterial(NULL) , frame(0) {\r
- }\r
-\r
- ~Impl(){\r
- delete pMaterial;\r
- }\r
-\r
- mof::Material* pMaterial;\r
- FrameNumber frame;\r
- mof::Animation<mof::Color4f>::Handler diffuse;\r
- mof::Animation<mof::Color4f>::Handler ambient;\r
- mof::Animation<mof::Color4f>::Handler specular;\r
- mof::Animation<float>::Handler specularPower;\r
- mof::Animation<mof::Color4f>::Handler emissive;\r
-\r
- \r
-};\r
-\r
-\r
-\r
- \r
-mof::MaterialBuilder::MaterialBuilder( )\r
-: m_pImpl(new Impl( \r
- mof::makeConstantHandler(mof::Color4f(0 , 0 , 0)) ,\r
- mof::makeConstantHandler(mof::Color4f(0 , 0 , 0)) ,\r
- mof::makeConstantHandler(mof::Color4f(0 , 0 , 0)) ,\r
- mof::makeConstantHandler(0.0f) , \r
- mof::makeConstantHandler(mof::Color4f(0 , 0 , 0)) \r
- ) )\r
-{\r
- m_pImpl->pMaterial = new Material;\r
-}\r
-\r
-\r
-mof::MaterialBuilder::MaterialBuilder( mof::Color4f ambient )\r
-: m_pImpl(new Impl( \r
- mof::makeConstantHandler(ambient) ,\r
- mof::makeConstantHandler(mof::Color4f(0 , 0 , 0)) ,\r
- mof::makeConstantHandler(mof::Color4f(0 , 0 , 0)) ,\r
- mof::makeConstantHandler(0.0f) , \r
- mof::makeConstantHandler(mof::Color4f(0 , 0 , 0)) ))\r
-{\r
- m_pImpl->pMaterial = new Material;\r
- construct();\r
-}\r
-\r
-\r
-mof::MaterialBuilder::MaterialBuilder( mof::Color4f ambient , mof::Color4f diffuse , \r
- mof::Color4f specular , float power , mof::Color4f emissive )\r
-: m_pImpl(new Impl(\r
- mof::makeConstantHandler(ambient) ,\r
- mof::makeConstantHandler(diffuse) ,\r
- mof::makeConstantHandler(specular) ,\r
- mof::makeConstantHandler(power) , \r
- mof::makeConstantHandler(emissive) ))\r
-{\r
- m_pImpl->pMaterial = new Material;\r
- construct();\r
-}\r
-\r
-mof::MaterialBuilder::MaterialBuilder(\r
- const mof::Animation<mof::Color4f>::Handler& ambient_ , \r
- const mof::Animation<mof::Color4f>::Handler& diffuse_ ,\r
- const mof::Animation<mof::Color4f>::Handler& specular_ ,\r
- const mof::Animation<float>::Handler& power_ ,\r
- const mof::Animation<mof::Color4f>::Handler& emissive_ )\r
-: m_pImpl(new Impl( ambient_ , diffuse_ , specular_ , power_ , emissive_ ))\r
-{\r
- m_pImpl->pMaterial = new Material;\r
- construct();\r
-}\r
-\r
-mof::MaterialBuilder::~MaterialBuilder(){\r
-}\r
-\r
-void mof::MaterialBuilder::setFrameNumber(mof::FrameNumber frame){\r
- m_pImpl->frame = frame;\r
-}\r
-\r
-void mof::MaterialBuilder::nextFrame(){\r
- setFrameNumber(m_pImpl->frame + 1 );\r
-}\r
-\r
-void mof::MaterialBuilder::prevFrame(){\r
- if(m_pImpl->frame > 0)setFrameNumber(m_pImpl->frame - 1);\r
-}\r
-\r
-\r
-\r
-mof::Color4f mof::MaterialBuilder::getDiffuseColor() const{\r
- return m_pImpl->diffuse->getValue(m_pImpl->frame);\r
-}\r
-\r
-mof::Color4f mof::MaterialBuilder::getAmbientColor() const{\r
- return m_pImpl->ambient->getValue(m_pImpl->frame);\r
-}\r
-\r
-mof::Color4f mof::MaterialBuilder::getSpecularColor() const{\r
- return m_pImpl->specular->getValue(m_pImpl->frame);\r
-}\r
-\r
-mof::Color4f mof::MaterialBuilder::getEmissiveColor() const{\r
- return m_pImpl->emissive->getValue(m_pImpl->frame);\r
-}\r
-\r
-float mof::MaterialBuilder::getSpecularPower() const{\r
- return m_pImpl->specularPower->getValue(m_pImpl->frame);\r
-}\r
-\r
-\r
-const mof::Material& mof::MaterialBuilder::construct() const{\r
- \r
- m_pImpl->pMaterial->diffuseColor = m_pImpl->diffuse->getValue(m_pImpl->frame);\r
- m_pImpl->pMaterial->ambientColor = m_pImpl->ambient->getValue(m_pImpl->frame);\r
- m_pImpl->pMaterial->specularColor = m_pImpl->specular->getValue(m_pImpl->frame);\r
- m_pImpl->pMaterial->power = m_pImpl->specularPower->getValue(m_pImpl->frame);\r
- m_pImpl->pMaterial->emissiveColor = m_pImpl->emissive->getValue(m_pImpl->frame);\r
-\r
- return *(m_pImpl->pMaterial);\r
-}\r
+++ /dev/null
-#ifndef MOF_MATERIAL_BUILDER_HPP\r
-#define MOF_MATERIAL_BUILDER_HPP\r
-\r
-#include "mof/Color.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/utility.hpp>\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-//struct _D3DMATERIAL9;\r
-//typedef _D3DMATERIAL9 D3DMATERIAL9;\r
-namespace mof{\r
-\r
-\r
-struct Material;\r
-\r
-class MaterialBuilder : boost::noncopyable{\r
-\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
-public:\r
- MaterialBuilder();\r
- MaterialBuilder( mof::Color4f ambient );\r
- MaterialBuilder( mof::Color4f ambient , mof::Color4f diffuse , mof::Color4f specular , float power , mof::Color4f emissive );\r
- MaterialBuilder\r
- (\r
- const mof::Animation<mof::Color4f>::Handler& ambient , \r
- const mof::Animation<mof::Color4f>::Handler& diffuse ,\r
- const mof::Animation<mof::Color4f>::Handler& specular ,\r
- const mof::Animation<float>::Handler& power ,\r
- const mof::Animation<mof::Color4f>::Handler& emissive \r
- );\r
- ~MaterialBuilder();\r
-\r
- void setFrameNumber(mof::FrameNumber frame);\r
- void nextFrame();\r
- void prevFrame();\r
-\r
- mof::Color4f getDiffuseColor() const;\r
- mof::Color4f getAmbientColor() const;\r
- mof::Color4f getSpecularColor() const;\r
- float getSpecularPower() const;\r
- mof::Color4f getEmissiveColor() const;\r
-\r
- const mof::Material& construct() const;\r
-};\r
-\r
-}\r
-\r
-#endif \r
+++ /dev/null
-#include <d3dx9.h>\r
-#include <string.h>\r
-#include "mof/Matrix2D.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-\r
-const int DIMENSION = 2;\r
-\r
-\r
-mof::Matrix2D::Matrix2D()\r
-: m_pImpl(new Array)\r
-{\r
- for(int i = 0 ; i <= DIMENSION ; ++i){\r
- for(int j = 0 ; j <= DIMENSION ; ++j){\r
- if(i == j)m_pImpl->elements[i][j] = 1;\r
- else m_pImpl->elements[i][j] = 0;\r
- }\r
- }\r
-}\r
-\r
-mof::Matrix2D::Matrix2D(const Matrix2D& obj )\r
-: m_pImpl(new Array)\r
-{\r
- *m_pImpl = *obj.m_pImpl;\r
-}\r
-\r
-mof::Matrix2D::Matrix2D(const mof::Matrix2D::Array & arr)\r
-: m_pImpl(new Array)\r
-{\r
- *m_pImpl = arr;\r
-}\r
-\r
-\r
-mof::Matrix2D::~Matrix2D(){\r
-}\r
-\r
-\r
-mof::real mof::Matrix2D::at(int row , int column) const{\r
- return m_pImpl->elements[row][column];\r
-}\r
-\r
-mof::Matrix2D::Array mof::Matrix2D::getArray() const{\r
- return *m_pImpl;\r
-}\r
-\r
-\r
-mof::Matrix2D mof::Matrix2D::createIdentity(){\r
- return mof::Matrix2D();\r
-}\r
-\r
-\r
-mof::Matrix2D mof::Matrix2D::createTransposed(mof::Matrix2D& matrix){\r
- Matrix2D transposed;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- transposed.m_pImpl->elements[j][i] = matrix.m_pImpl->elements[i][j];\r
- }\r
- }\r
- return transposed;\r
-}\r
-\r
-\r
-\r
-mof::Matrix2D mof::Matrix2D::createRotation(const mof::Vector2D& position){\r
- Matrix2D matrix;\r
- matrix.m_pImpl->elements[DIMENSION][0] = position.x;\r
- matrix.m_pImpl->elements[DIMENSION][1] = position.y;\r
- return matrix;\r
-}\r
-\r
-\r
-mof::Matrix2D mof::Matrix2D::createTranslation(const mof::Vector2D& position){\r
- Matrix2D matrix;\r
- matrix.m_pImpl->elements[DIMENSION][0] = position.x;\r
- matrix.m_pImpl->elements[DIMENSION][1] = position.y;\r
- return matrix;\r
-}\r
-\r
-mof::Matrix2D mof::Matrix2D::createScaling(const mof::Vector2D& scaling){\r
- Matrix2D matrix;\r
- matrix.m_pImpl->elements[0][0] = scaling.x;\r
- matrix.m_pImpl->elements[1][1] = scaling.y;\r
- return matrix;\r
-}\r
-\r
-\r
-mof::Vector2D mof::Matrix2D::getTranslation(const mof::Matrix2D& matrix){\r
- return mof::Vector2D(\r
- matrix.m_pImpl->elements[DIMENSION][0] ,\r
- matrix.m_pImpl->elements[DIMENSION][1]\r
- );\r
-}\r
-\r
-mof::Vector2D mof::Matrix2D::getDiagonal() const{\r
- return mof::Vector2D(\r
- m_pImpl->elements[0][0] ,\r
- m_pImpl->elements[1][1]\r
- );\r
-}\r
-\r
- \r
-mof::Matrix2D mof::Matrix2D::operator *(const mof::Matrix2D& matrix) const{\r
- mof::Matrix2D multiplied;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- mof::real sum = 0;\r
- for(int k = 0 ; k <= DIMENSION ; k++){\r
- sum += m_pImpl->elements[i][k] * matrix.m_pImpl->elements[k][j];\r
- }\r
- multiplied.m_pImpl->elements[i][j] = sum;\r
- }\r
- }\r
- return multiplied;\r
-}\r
-\r
-\r
-mof::Matrix2D mof::Matrix2D::operator +(const mof::Matrix2D& matrix) const{\r
- mof::Matrix2D result;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- result.m_pImpl->elements[i][j] = \r
- m_pImpl->elements[i][j] + matrix.m_pImpl->elements[i][j];\r
- }\r
- }\r
- return result;\r
-}\r
-\r
-\r
-mof::Matrix2D mof::Matrix2D::operator -(const mof::Matrix2D& matrix) const{\r
- mof::Matrix2D result;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- result.m_pImpl->elements[i][j] = \r
- m_pImpl->elements[i][j] - matrix.m_pImpl->elements[i][j];\r
- }\r
- }\r
- return result;\r
-}\r
-\r
-\r
-mof::Matrix2D mof::operator *(const mof::Matrix2D& matrix , mof::real f){\r
- mof::Matrix2D result;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- result.m_pImpl->elements[i][j] = \r
- matrix.m_pImpl->elements[i][j] * f;\r
- }\r
- }\r
- return result;\r
-}\r
- \r
-mof::Matrix2D mof::operator *(mof::real f , mof::Matrix2D const& matrix){\r
- return matrix * f;\r
-}\r
-\r
-\r
-mof::Vector2D mof::operator *(const mof::Vector2D& vec , const mof::Matrix2D& matrix) {\r
- mof::real input[3] = {vec.x , vec.y , 1};\r
- mof::real output[3];\r
- for(int i = 0 ; i < DIMENSION ; i++){\r
- mof::real sum = 0;\r
- for(int k = 0 ; k <= DIMENSION ; k++){\r
- sum += input[k] * matrix.at(k , i);\r
- }\r
- output[i] = sum;\r
- \r
- }\r
- return mof::Vector2D(output[0] , output[1]);\r
-}\r
-\r
-\r
-mof::Rectangle<int> mof::Matrix2D::toBoundingBox(){\r
- mof::Vector2D begin = mof::Vector2D(0 , 0) * (*this);\r
- mof::Vector2D end = mof::Vector2D(1 , 1) * (*this);\r
- return mof::Rectangle<int>( (int)begin.x , (int)begin.y , (int)end.x , (int)end.y );\r
-}\r
+++ /dev/null
-#ifndef MATRIX2D_HPP\r
-#define MATRIX2D_HPP\r
-#include <mof/real.hpp>\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include <boost/shared_ptr.hpp>\r
-\r
-\r
-namespace mof{\r
- class Matrix2D{\r
- public:\r
- struct Array{\r
- real elements[3][3];\r
- };\r
- private:\r
- boost::shared_ptr<Array> m_pImpl;\r
- public:\r
- \r
- Matrix2D();\r
- Matrix2D(const Matrix2D& );\r
- explicit Matrix2D(const mof::Matrix2D::Array &);\r
- ~Matrix2D();\r
- real at(int row , int column) const;\r
- Array getArray() const;\r
-\r
- static Matrix2D createIdentity();\r
- static Matrix2D createTransposed(Matrix2D& matrix);\r
- static Matrix2D createRotation(const mof::Vector2D& angle);\r
- static Matrix2D createTranslation(const mof::Vector2D& position);\r
- static Matrix2D createScaling(const mof::Vector2D& scale);\r
- static Vector2D getTranslation(const mof::Matrix2D& matrix);\r
- Vector2D getDiagonal() const;\r
-\r
-\r
- Matrix2D operator *(const mof::Matrix2D& matrix ) const;\r
- Matrix2D operator +(const mof::Matrix2D& matrix ) const;\r
- Matrix2D operator -(const mof::Matrix2D& matrix ) const;\r
-\r
- friend Vector2D operator *(const mof::Vector2D& vec , const mof::Matrix2D& matrix);\r
- friend Matrix2D operator *(const mof::Matrix2D& matrix , real f);\r
- friend Matrix2D operator *(real f , const mof::Matrix2D & matrix);\r
-\r
- mof::Rectangle<int> toBoundingBox();\r
- \r
- \r
- };\r
-} // namespace mof\r
-\r
-\r
-#endif\r
+++ /dev/null
-#include <string.h>\r
-#include <iostream>\r
-#include "mof/Matrix3D.hpp"\r
-#include "mof/utilities.hpp"\r
-#include <d3dx9.h>\r
-\r
-const int DIMENSION = 3;\r
-\r
-\r
-mof::Matrix3D::Matrix3D()\r
-: m_pImpl(new Array)\r
-{\r
- for(int i = 0 ; i <= DIMENSION ; ++i){\r
- for(int j = 0 ; j <= DIMENSION ; ++j){\r
- if(i == j)m_pImpl->elements[i][j] = 1;\r
- else m_pImpl->elements[i][j] = 0;\r
- }\r
- }\r
-}\r
-\r
-mof::Matrix3D::Matrix3D(const mof::Matrix3D::Array & arr)\r
-: m_pImpl(new Array)\r
-{\r
- *m_pImpl = arr;\r
-}\r
-\r
-\r
-mof::Matrix3D::~Matrix3D(){\r
-}\r
-\r
-\r
-mof::real mof::Matrix3D::at(int row , int column) const{\r
- return m_pImpl->elements[row][column];\r
-}\r
-\r
-mof::Matrix3D::Array mof::Matrix3D::getArray() const{\r
- return *m_pImpl;\r
-}\r
-\r
-\r
-mof::Matrix3D mof::Matrix3D::createIdentity(){\r
- return mof::Matrix3D();\r
-}\r
-\r
-\r
-mof::Matrix3D mof::Matrix3D::createTransposed(const mof::Matrix3D& matrix){\r
- Matrix3D transposed;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- transposed.m_pImpl->elements[j][i] = matrix.m_pImpl->elements[i][j];\r
- }\r
- }\r
- return transposed;\r
-}\r
-\r
-\r
-mof::Matrix3D mof::Matrix3D::createRotation(const mof::Vector3D& radians){\r
- mof::real cosx = cosf(radians.x);\r
- mof::real sinx = sinf(radians.x);\r
- mof::real cosy = cosf(radians.y);\r
- mof::real siny = sinf(radians.y);\r
- mof::real cosz = cosf(radians.z);\r
- mof::real sinz = sinf(radians.z);\r
- mof::Matrix3D::Array x = \r
- {{\r
- { 1.f , 0.f , 0.f , 0.f } ,\r
- { 0.f , cosx , sinx , 0.f } ,\r
- { 0.f , -sinx , cosx , 0.f } ,\r
- { 0.f , 0.f , 0.f , 1.f } \r
- }};\r
- mof::Matrix3D::Array y = \r
- {{\r
- { cosy , 0.f , -siny , 0.f } ,\r
- { 0.f , 1.f , 0.f , 0.f } ,\r
- { siny , 0.f , cosy , 0.f } ,\r
- { 0.f , 0.f , 0.f , 1.f }\r
- }};\r
- mof::Matrix3D::Array z = \r
- {{\r
- { cosz , sinz , 0.f , 0.f } ,\r
- { -sinz , cosz , 0.f , 0.f } ,\r
- { 0.f , 0.f , 1.f , 0.f } ,\r
- { 0.f , 0.f , 0.f , 1.f } \r
- }};\r
- return mof::Matrix3D(x) * mof::Matrix3D(y) * mof::Matrix3D(z); //TODO \90Ï\82ð\83n\81[\83h\83R\81[\83f\83B\83\93\83O\r
-}\r
-\r
-\r
-mof::Matrix3D mof::Matrix3D::createTranslation(const mof::Vector3D& position){\r
- Matrix3D matrix;\r
- matrix.m_pImpl->elements[DIMENSION][0] = position.x;\r
- matrix.m_pImpl->elements[DIMENSION][1] = position.y;\r
- matrix.m_pImpl->elements[DIMENSION][2] = position.z;\r
- return matrix;\r
-}\r
-\r
-mof::Matrix3D mof::Matrix3D::createScaling(const mof::Vector3D& scaling){\r
- Matrix3D matrix;\r
- matrix.m_pImpl->elements[0][0] = scaling.x;\r
- matrix.m_pImpl->elements[1][1] = scaling.y;\r
- matrix.m_pImpl->elements[2][2] = scaling.z;\r
- return matrix;\r
-}\r
-\r
-\r
-\r
-mof::Matrix3D mof::Matrix3D::createLookAtLH\r
-(\r
- const mof::Vector3D& eye ,\r
- const mof::Vector3D& lookAt ,\r
- const mof::Vector3D& up\r
-)\r
-{\r
- D3DXVECTOR3 vEye(eye.x , eye.y , eye.z);\r
- D3DXVECTOR3 vLookAt(lookAt.x , lookAt.y , lookAt.z);\r
- D3DXVECTOR3 vUp(up.x , up.y , up.z);\r
- D3DXMATRIX m;\r
- mof::Matrix3D::Array array;\r
- D3DXMatrixLookAtLH( &m , &vEye , &vLookAt , &vUp );\r
- for( int i = 0 ; i < DIMENSION ; i++ )\r
- {\r
- for( int j = 0 ; j < DIMENSION ; j++ )\r
- {\r
- array.elements[i][j] = m.m[i][j];\r
- }\r
- }\r
- return mof::Matrix3D( array );\r
-}\r
-\r
-mof::Vector3D mof::Matrix3D::getTranslation(const mof::Matrix3D& matrix){\r
- return mof::Vector3D(\r
- matrix.m_pImpl->elements[DIMENSION][0] ,\r
- matrix.m_pImpl->elements[DIMENSION][1] ,\r
- matrix.m_pImpl->elements[DIMENSION][2]\r
- );\r
-}\r
- \r
-mof::Vector3D mof::Matrix3D::getDiagonal() const{\r
- return mof::Vector3D(\r
- m_pImpl->elements[0][0] ,\r
- m_pImpl->elements[1][1] ,\r
- m_pImpl->elements[2][2]\r
- );\r
-}\r
- \r
-\r
-\r
-mof::Matrix3D mof::Matrix3D::operator *(const mof::Matrix3D& matrix) const{\r
- mof::Matrix3D multiplied;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- mof::real sum = 0;\r
- for(int k = 0 ; k <= DIMENSION ; k++){\r
- sum += m_pImpl->elements[i][k] * matrix.m_pImpl->elements[k][j];\r
- }\r
- multiplied.m_pImpl->elements[i][j] = sum;\r
- }\r
- }\r
- return multiplied;\r
-}\r
-\r
-\r
-mof::Matrix3D mof::Matrix3D::operator +(const mof::Matrix3D& matrix) const{\r
- mof::Matrix3D result;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- result.m_pImpl->elements[i][j] = \r
- m_pImpl->elements[i][j] + matrix.m_pImpl->elements[i][j];\r
- }\r
- }\r
- return result;\r
-}\r
-\r
-\r
-mof::Matrix3D mof::Matrix3D::operator -(const mof::Matrix3D& matrix) const{\r
- mof::Matrix3D result;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- result.m_pImpl->elements[i][j] = \r
- m_pImpl->elements[i][j] - matrix.m_pImpl->elements[i][j];\r
- }\r
- }\r
- return result;\r
-}\r
-\r
-\r
-mof::Matrix3D mof::operator *(const mof::Matrix3D& matrix , mof::real f){\r
- mof::Matrix3D result;\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- result.m_pImpl->elements[i][j] = \r
- matrix.m_pImpl->elements[i][j] * f;\r
- }\r
- }\r
- return result;\r
-}\r
- \r
-mof::Matrix3D mof::operator *(mof::real f , mof::Matrix3D const& matrix){\r
- return matrix * f;\r
-}\r
-\r
-\r
-mof::Vector3D mof::operator *(const mof::Vector3D& vec , const mof::Matrix3D& matrix) {\r
- mof::real input[4] = {vec.x , vec.y , vec.z , 1};\r
- mof::real output[4];\r
- for(int i = 0 ; i < DIMENSION ; i++){\r
- mof::real sum = 0;\r
- for(int k = 0 ; k <= DIMENSION ; k++){\r
- sum += input[k] * matrix.at(k , i);\r
- }\r
- output[i] = sum;\r
- \r
- }\r
- return mof::Vector3D(output[0] , output[1] , output[2]);\r
-}\r
-\r
-\r
-std::ostream& mof::operator <<(std::ostream& os , const mof::Matrix3D& mat){\r
- for(int i = 0 ; i <= DIMENSION ; i++){\r
- for(int j = 0 ; j <= DIMENSION ; j++){\r
- if(j != 0)os << " , ";\r
- os << mat.m_pImpl->elements[i][j];\r
- }\r
- os << '\n';\r
- }\r
- return os;\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/Vector3D.hpp"\r
-#include <mof/real.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-\r
-\r
-namespace mof{\r
-\r
- class Matrix3D\r
- {\r
- public:\r
- struct Array\r
- {\r
- real elements[4][4];\r
- };\r
- private:\r
- boost::shared_ptr<Array> m_pImpl;\r
- public:\r
- \r
- Matrix3D();\r
- explicit Matrix3D(const Array &);\r
- ~Matrix3D();\r
- real at(int row , int column) const;\r
- Array getArray() const;\r
-\r
- static Matrix3D createIdentity();\r
- static Matrix3D createTransposed(const Matrix3D& matrix);\r
- static Matrix3D createRotation(const mof::Vector3D& angle);\r
- static Matrix3D createTranslation(const mof::Vector3D& position);\r
- static Matrix3D createScaling(const mof::Vector3D& scale);\r
- static Matrix3D createLookAtLH( const Vector3D& eye , const Vector3D& lookAt , const Vector3D& up );\r
- static Vector3D getTranslation(const mof::Matrix3D& matrix);\r
- Vector3D getDiagonal() const;\r
-\r
-\r
- Matrix3D operator *(const mof::Matrix3D& matrix ) const;\r
- Matrix3D operator +(const mof::Matrix3D& matrix ) const;\r
- Matrix3D operator -(const mof::Matrix3D& matrix ) const;\r
-\r
- friend Vector3D operator *(const mof::Vector3D& vec , const mof::Matrix3D& matrix);\r
- friend Matrix3D operator *(const mof::Matrix3D& matrix , real f);\r
- friend Matrix3D operator *(real f , const mof::Matrix3D & matrix);\r
- friend std::ostream& operator <<(std::ostream& os , const mof::Matrix3D& mat);\r
- }; // class Matrix3D\r
- \r
- std::ostream& operator <<(std::ostream& os , const mof::Matrix3D& mat);\r
-\r
-} // namespace mof\r
-\r
+++ /dev/null
-#include "mof/private/Mesh.hpp"\r
-#include "mof/GraphicsDevice.hpp"\r
-#include "mof/private/MeshDisposer.hpp"\r
-#include "mof/Constant.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-\r
-struct mof::Mesh::Impl{\r
- \r
- boost::shared_ptr<mof::MeshDisposer> pMeshDisposer;\r
- unsigned long nMaterials;\r
- boost::shared_ptr<Material>* materials; \r
- boost::shared_ptr<Texture>* textures;\r
- mof::Animation<mof::Matrix3D>::Handler worldMatrix;\r
- \r
-\r
- Impl(\r
- boost::shared_ptr<mof::MeshDisposer> pMeshDisposer_ ,\r
- unsigned long nMaterials_ \r
- ) : \r
- pMeshDisposer(pMeshDisposer_) , \r
- nMaterials(nMaterials_) , materials(NULL) , textures(NULL) ,\r
- worldMatrix(mof::makeConstantHandler(mof::Matrix3D::createIdentity()))\r
- {}\r
-\r
- ~Impl(){\r
- delete[] materials;\r
- delete[] textures;\r
- }\r
-}; \r
-\r
-mof::Mesh::Mesh(\r
- boost::shared_ptr<mof::MeshDisposer> pMeshDisposer ,\r
- unsigned long nMaterials ,\r
- const boost::shared_ptr<Material>* materials , \r
- const boost::shared_ptr<Texture>* textures \r
- ) : m_pImpl(new Impl(pMeshDisposer , nMaterials )){\r
-\r
- m_pImpl->materials = new boost::shared_ptr<mof::Material>[nMaterials];\r
- m_pImpl->textures = new boost::shared_ptr<mof::Texture>[nMaterials]; \r
-\r
- for(unsigned long i = 0 ; i < nMaterials ; i++ ){\r
- m_pImpl->materials[i] = materials[i];\r
- m_pImpl->textures[i] = textures[i];\r
- }\r
-}\r
-\r
-mof::Mesh::~Mesh(){\r
-}\r
- \r
-\r
-\r
-void mof::Mesh::setWorldMatrix(const mof::Animation<mof::Matrix3D>::Handler& handler){\r
- m_pImpl->worldMatrix = handler;\r
-}\r
-\r
-\r
-\r
-\r
-\r
-void mof::Mesh::setTexture( \r
- unsigned int num ,\r
- const boost::shared_ptr<mof::Texture>& pTexture){\r
-\r
- if(num < m_pImpl->nMaterials)m_pImpl->textures[num] = pTexture; \r
-\r
-}\r
-\r
-\r
-bool mof::Mesh::isVisible() const{\r
- return true;\r
-}\r
-\r
-\r
-void mof::Mesh::update(){\r
- nextFrame();\r
-}\r
-\r
-void mof::Mesh::draw() const{\r
- \r
-\r
- for( DWORD i = 0; i < m_pImpl->nMaterials ; i++ )\r
- {\r
- mof::GraphicsDevice::setMaterial(*m_pImpl->materials[i].get()); \r
- mof::GraphicsDevice::setTexture(m_pImpl->textures[i].get());\r
- mof::GraphicsDevice::setWorldTransform(m_pImpl->worldMatrix->getValue(m_frame));\r
-\r
- HRESULT hr = m_pImpl->pMeshDisposer->pMesh->DrawSubset( i );\r
- if(FAILED(hr))throw std::runtime_error("Failed --- DrawSubset");\r
- }\r
-}\r
-\r
+++ /dev/null
-#include "MeshBuilder.hpp"\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include <stdexcept>\r
-#include "mof/private/MeshDisposer.hpp"\r
-#include <boost/shared_ptr.hpp>\r
-#include <stdlib.h>\r
-#include "mof/FilePath.hpp"\r
-#include "mof/private/VertexFVF.hpp"\r
-#include "mof/Material.hpp"\r
-#include "mof/Texture.hpp"\r
-#include "mof/private/Mesh.hpp"\r
-\r
-struct mof::MeshBuilder::Impl{\r
- boost::shared_ptr<mof::MeshDisposer> pMeshDisposer;\r
- unsigned long nMaterials;\r
- boost::shared_ptr<Material>* materials;\r
- boost::shared_ptr<Texture>* textures;\r
-\r
-\r
- Impl()\r
- : pMeshDisposer() , nMaterials(0) ,\r
- materials(NULL) , textures(NULL){\r
- }\r
-\r
- ~Impl(){\r
- delete[] materials;\r
- delete[] textures;\r
- }\r
-\r
-};\r
-\r
-mof::MeshBuilder::MeshBuilder(const mof::tstring& path )\r
-: m_pImpl(new Impl())\r
-{\r
-\r
- LPDIRECT3DDEVICE9 pDevice = mof::GraphicsDevice::getRawDevice();\r
- HRESULT hr;\r
- LPD3DXBUFFER pD3DXMtrlBuffer; //\83}\83e\83\8a\83A\83\8b\97p\83o\83b\83t\83@\r
- m_pImpl->pMeshDisposer = boost::shared_ptr<mof::MeshDisposer>( new mof::MeshDisposer() );\r
-\r
- //\83t\83@\83C\83\8b\83\8d\81[\83h\r
- hr = D3DXLoadMeshFromX(path.c_str() , D3DXMESH_MANAGED, pDevice,\r
- &(m_pImpl->pMeshDisposer->pAdjacency) ,\r
- &pD3DXMtrlBuffer , NULL, \r
- &(m_pImpl->nMaterials) , \r
- &(m_pImpl->pMeshDisposer->pMesh) );\r
- if(hr != D3D_OK)throw std::invalid_argument("Failed --- D3DXLoadMeshFromX");\r
-\r
- //\8ae\8eí\83C\83\93\83X\83^\83\93\83X\8eæ\93¾\r
- D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();\r
- try{\r
- m_pImpl->materials = new boost::shared_ptr<mof::Material>[m_pImpl->nMaterials];\r
- m_pImpl->textures = new boost::shared_ptr<mof::Texture>[m_pImpl->nMaterials];\r
- \r
- \r
- for( DWORD i = 0; i< m_pImpl->nMaterials; i++ )\r
- {\r
- //\83}\83e\83\8a\83A\83\8b\82Ì\83R\83s\81[\r
- D3DMATERIAL9 mat = d3dxMaterials[i].MatD3D;\r
- mat.Ambient = mat.Diffuse;\r
- mof::Material tmp;\r
- memcpy(\r
- static_cast<void*>(&tmp) , \r
- static_cast<const void*>(&mat) ,\r
- sizeof(D3DMATERIAL9)\r
- );\r
- \r
- boost::shared_ptr<mof::Material> p(new mof::Material(tmp));\r
- m_pImpl->materials[i] = p;\r
-\r
- //\83e\83N\83X\83`\83\83\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\r
- if( d3dxMaterials[i].pTextureFilename != NULL && \r
- lstrlen(d3dxMaterials[i].pTextureFilename) > 0 )\r
- {\r
- mof::otstringstream os;\r
- mof::FilePath path(path);\r
- os << path.dir().c_str() << _T("/") << d3dxMaterials[i].pTextureFilename;\r
- m_pImpl->textures[i] = boost::shared_ptr<mof::Texture>(new mof::Texture( os.str()));\r
- }\r
- }\r
-\r
- }\r
- catch( std::exception& e){\r
- pD3DXMtrlBuffer->Release(); //\83o\83b\83t\83@\89ð\95ú\r
- throw e;\r
- }\r
- pD3DXMtrlBuffer->Release(); //\83o\83b\83t\83@\89ð\95ú\r
-\r
- LPD3DXMESH pMesh = NULL;\r
- if(m_pImpl->pMeshDisposer->pMesh->GetFVF() != mof::getFVF<VertexXYZNUV>())\r
- {\r
- //\83\81\83b\83V\83\85\82É\96@\90ü\82ª\82È\82¢\8fê\8d\87\8f\91\82«\8d\9e\82Þ\r
- m_pImpl->pMeshDisposer->pMesh->CloneMeshFVF(\r
- m_pImpl->pMeshDisposer->pMesh->GetOptions() ,\r
- mof::getFVF<VertexXYZNUV>() ,\r
- pDevice , &pMesh );\r
- \r
- LPD3DXMESH tmp = m_pImpl->pMeshDisposer->pMesh;\r
- m_pImpl->pMeshDisposer->pMesh = pMesh;\r
- tmp->Release();\r
- }\r
-\r
-}\r
- \r
-mof::MeshBuilder::~MeshBuilder(){}\r
-\r
-mof::Graphics3D* mof::MeshBuilder::construct() const{\r
- return new mof::Mesh(\r
- m_pImpl->pMeshDisposer ,\r
- m_pImpl->nMaterials , \r
- m_pImpl->materials ,\r
- m_pImpl->textures \r
- );\r
-}\r
+++ /dev/null
-#ifndef MOF_MESH_BUILDER_HPP\r
-#define MOF_MESH_BUILDER_HPP\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/utility.hpp>\r
-#include "mof/tstring.hpp"\r
-\r
-\r
-namespace mof{\r
- class Graphics3D;\r
- \r
- class MeshBuilder : boost::noncopyable\r
- {\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- public:\r
- \r
- MeshBuilder( const mof::tstring& path );\r
- ~MeshBuilder();\r
-\r
- mof::Graphics3D* construct() const;\r
- };\r
-}\r
-\r
-#endif\r
+++ /dev/null
-#pragma once\r
-\r
-#include "mof/ResourceManager.h"\r
-#include "mof/Mesh.h"\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof{\r
- \r
- typedef boost::shared_ptr<mof::Mesh> MeshResource;\r
- typedef mof::ResourceManager<mof::Mesh> MeshManager;\r
- \r
-};
\ No newline at end of file
+++ /dev/null
-#include "mof/OnceEventCondition.hpp"\r
-#include "mof/utilities.hpp"\r
-\r
-namespace mof\r
-{\r
- OnceEventCondition::OnceEventCondition( EventCondition* pBody )\r
- : m_disposable( false ) , m_pBody( pBody )\r
- {\r
- }\r
-\r
- OnceEventCondition::~OnceEventCondition( )\r
- {\r
- mof::safe_delete( m_pBody );\r
- }\r
-\r
- bool OnceEventCondition::test( )\r
- {\r
- bool result = m_pBody->test();\r
- if( !m_disposable && result )m_disposable = true;\r
- return result;\r
- }\r
-\r
- void OnceEventCondition::update( )\r
- {\r
- m_pBody->update();\r
- }\r
-\r
- bool OnceEventCondition::isDisposable( )\r
- {\r
- return m_disposable;\r
- }\r
-\r
-\r
-\r
-}\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/EventCondition.hpp"\r
-\r
-namespace mof\r
-{\r
-\r
- class OnceEventCondition : public EventCondition\r
- {\r
- bool m_disposable;\r
- EventCondition* m_pBody;\r
- public:\r
- OnceEventCondition( EventCondition* pBody );\r
- virtual ~OnceEventCondition();\r
- virtual bool test();\r
- virtual void update();\r
- virtual bool isDisposable();\r
- };\r
-\r
-}\r
-\r
+++ /dev/null
-#ifndef MOF_PIXEL_MAP_HPP\r
-#define MOF_PIXEL_MAP_HPP\r
-\r
-#include "mof/Color.hpp"\r
-#include <boost/multi_array.hpp>\r
-\r
-namespace mof{\r
- typedef boost::multi_array<mof::Color , 2> PixelMap;\r
-}\r
-\r
-#endif \r
+++ /dev/null
-#include "mof/private/PixelMapTextureBuilder.hpp"\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include <list>\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/Font.hpp"\r
-\r
-\r
-mof::PixelMapTextureBuilder::PixelMapTextureBuilder( const boost::shared_ptr<mof::PixelMap>& pixelMap)\r
-: m_pPixelMap(pixelMap)\r
-{\r
-}\r
-\r
-mof::PixelMapTextureBuilder::~PixelMapTextureBuilder(void)\r
-{\r
- \r
-}\r
-\r
-\r
-LPDIRECT3DTEXTURE9 mof::PixelMapTextureBuilder::create(){\r
- HRESULT hr;\r
- LPDIRECT3DDEVICE9 pDevice = mof::GraphicsDevice::getRawDevice();\r
-\r
- unsigned int tWidth = 2;\r
- while(tWidth < m_pPixelMap->shape()[0])tWidth *= 2;\r
- unsigned int tHeight = 2;\r
- while(tHeight < m_pPixelMap->shape()[1])tHeight *= 2;\r
- \r
- \r
- // \83e\83N\83X\83`\83\83\8dì\90¬\r
- LPDIRECT3DTEXTURE9 texture;\r
- if\r
- (\r
- FAILED\r
- (\r
- hr = D3DXCreateTexture\r
- (\r
- pDevice , tWidth , tHeight ,\r
- 1 , D3DUSAGE_DYNAMIC, D3DFMT_A8R8G8B8, \r
- D3DPOOL_DEFAULT, &texture\r
- )\r
- )\r
- )\r
- {\r
- throw std::runtime_error("Failed --- D3DXCreateTexture");\r
- }\r
-\r
- \r
-\r
- // \83e\83N\83X\83`\83\83\82É\83t\83H\83\93\83g\83r\83b\83g\83}\83b\83v\8f\91\82«\8d\9e\82Ý\r
- D3DLOCKED_RECT LockedRect;\r
- if(FAILED(hr = texture->LockRect(0, &LockedRect, NULL, D3DLOCK_DISCARD))){\r
- throw std::runtime_error("Failed --- LockRect");\r
- }\r
-\r
- // \83t\83H\83\93\83g\8fî\95ñ\82Ì\8f\91\82«\8d\9e\82Ý\r
- \r
- FillMemory(LockedRect.pBits , LockedRect.Pitch * tHeight , 0);\r
- for(unsigned int y = 0 ; y < m_pPixelMap->shape()[1] ; y++){\r
- for(unsigned int x = 0 ; x < m_pPixelMap->shape()[0] ; x++){\r
- memcpy((BYTE*)LockedRect.pBits + LockedRect.Pitch * y + 4 * x , &((*m_pPixelMap)[x][y]) , sizeof(DWORD));\r
- }\r
- }\r
-\r
- \r
- texture->UnlockRect(0);\r
- return texture;\r
-\r
-\r
-}\r
-\r
+++ /dev/null
-#include "mof/PlainWidgetView.hpp"\r
-#include "mof/GraphicsDevice.hpp"\r
-#include "mof/Sprite.hpp"\r
-#include "mof/mofAnimations.hpp"\r
-#include "mof/Font.hpp"\r
-\r
-\r
-struct mof::PlainWidgetView::Impl{\r
- mof::Animation<mof::Matrix2D>::Handler transform;\r
- mof::Animation<bool>::Handler visible;\r
- mof::FrameNumber frame;\r
- mof::Rectangle<int> bounds;\r
- mof::Sprite* pCaption;\r
- \r
-\r
- Impl()\r
- : frame(0) , \r
- bounds(mof::Rectangle<int>(0 , 0 , 0 , 0)) , pCaption(NULL)\r
- {\r
- }\r
-\r
- ~Impl(){\r
- delete pCaption;\r
- }\r
-};\r
-\r
-\r
-mof::PlainWidgetView::PlainWidgetView\r
-(\r
- mof::Color begin , mof::Color end\r
-)\r
-: m_pImpl( new Impl( ) )\r
-{\r
-\r
- \r
- //m_pImpl->pFrame = new mof::Frame(m_pImpl->pGraphicsDevice , pTexture);\r
- m_pImpl->transform = mof::makeConstantHandler(mof::Matrix2D::createIdentity());\r
- {\r
- //visible\82Ì\90Ý\92è\r
- m_pImpl->visible = mof::makeConstantHandler(false);\r
- }\r
-\r
- //m_pImpl->pCaption = mof::Sprite::createTextSprite(pGraphicsDevice , mof::Font(mof::Font::MS_P_GOTHIC , 25) , title );\r
-}\r
- \r
-mof::PlainWidgetView::~PlainWidgetView(){\r
-\r
-}\r
-\r
-\r
-\r
-void mof::PlainWidgetView::setBounds(const mof::Rectangle<int>& bounds){\r
- m_pImpl->bounds = bounds;\r
-}\r
-\r
-mof::Rectangle<int> mof::PlainWidgetView::getBounds() const{\r
- return m_pImpl->transform->getValue(m_pImpl->frame).toBoundingBox();\r
-}\r
-\r
-\r
-\r
-void mof::PlainWidgetView::focus(){\r
-\r
-}\r
- \r
-void mof::PlainWidgetView::blur(){\r
-\r
-}\r
-\r
-\r
-void mof::PlainWidgetView::show(){\r
- const int width = m_pImpl->bounds.endX - m_pImpl->bounds.beginX;\r
- const int height = m_pImpl->bounds.endY - m_pImpl->bounds.beginY;\r
-\r
- mof::Animation<mof::Matrix2D>::Handler list[] = {\r
- mof::Animation<mof::Matrix2D>::Handler(mof::makeConstantHandler(mof::Matrix2D::createScaling(mof::Vector2D(width , height)))) ,\r
- mof::Animation<mof::Matrix2D>::Handler(mof::makeConstantHandler(\r
- mof::Matrix2D::createTranslation(mof::Vector2D(m_pImpl->bounds.beginX , m_pImpl->bounds.beginY))\r
- )) \r
- };\r
- m_pImpl->transform = mof::Animation<mof::Matrix2D>::Handler(new mof::CascadingAnimation<mof::Matrix2D>(list[0] , list[1]));\r
- \r
- {\r
- //visible\82Ì\90Ý\92è\r
- m_pImpl->visible = mof::makeConstantHandler(true);\r
- }\r
- m_pImpl->frame = 0;\r
-\r
-}\r
- \r
-void mof::PlainWidgetView::close(){\r
- const int width = m_pImpl->bounds.endX - m_pImpl->bounds.beginX;\r
- const int height = m_pImpl->bounds.endY - m_pImpl->bounds.beginY;\r
-\r
- mof::Animation<mof::Matrix2D>::Handler list[] = {\r
- mof::Animation<mof::Matrix2D>::Handler(mof::makeConstantHandler(mof::Matrix2D::createScaling(mof::Vector2D(width , height)))) ,\r
- mof::Animation<mof::Matrix2D>::Handler(mof::makeConstantHandler(\r
- mof::Matrix2D::createTranslation(mof::Vector2D(m_pImpl->bounds.beginX , m_pImpl->bounds.beginY))\r
- )) \r
- };\r
- m_pImpl->transform = mof::Animation<mof::Matrix2D>::Handler(new mof::CascadingAnimation<mof::Matrix2D>(list[0] , list[1]));\r
- \r
- {\r
- //visible\82Ì\90Ý\92è\r
- mof::KeyFrameAnimation<bool>::KeyFrame keyFrames[] = {\r
- mof::makeKeyFrame(0 , true) ,\r
- mof::makeKeyFrame(20 , false) \r
- };\r
- m_pImpl->visible = mof::Animation<bool>::Handler(\r
- new mof::KeyFrameAnimation<bool>(keyFrames[0] , keyFrames[1] , &mof::stepInterpolate<bool> )\r
- );\r
- }\r
- m_pImpl->frame = 0;\r
-}\r
-\r
-\r
-\r
-void mof::PlainWidgetView::update(){\r
- m_pImpl->frame++;\r
- //m_pImpl->pCaption->update();\r
- \r
-}\r
- \r
-void mof::PlainWidgetView::draw(){\r
- if(m_pImpl->visible->getValue(m_pImpl->frame)){\r
- //m_pImpl->pCaption->draw();\r
- }\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/WidgetView.hpp"\r
-#include "mof/tstring.hpp"\r
-#include "mof/Color.hpp"\r
-\r
-namespace mof{\r
- \r
- \r
- class PlainWidgetView : public WidgetView{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- public:\r
- PlainWidgetView( mof::Color begin , mof::Color end);\r
- ~PlainWidgetView();\r
-\r
- virtual void setBounds(const mof::Rectangle<int>& bounds);\r
- virtual mof::Rectangle<int> getBounds() const;\r
-\r
- virtual void show();\r
- virtual void close();\r
- virtual void focus();\r
- virtual void blur();\r
-\r
- virtual void update();\r
- virtual void draw();\r
- };\r
-\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <iostream>\r
-\r
-namespace mof\r
-{\r
- template<typename E>\r
- struct Rectangle\r
- {\r
- E beginX;\r
- E beginY;\r
- E endX;\r
- E endY;\r
-\r
- Rectangle(){}\r
-\r
- template< typename T >\r
- Rectangle(const Rectangle<T>& obj)\r
- { \r
- beginX = obj.beginX;\r
- beginY = obj.beginY;\r
- endX = obj.endX;\r
- endY = obj.endY;\r
- }\r
-\r
- Rectangle(const E& beginX_ , const E& beginY_ , const E& endX_ , const E& endY_)\r
- : beginX(beginX_) , beginY(beginY_) , endX(endX_) , endY(endY_)\r
- {\r
- }\r
- \r
- template< typename T >\r
- Rectangle& operator = ( const Rectangle<T>& obj )\r
- { \r
- beginX = obj.beginX;\r
- beginY = obj.beginY;\r
- endX = obj.endX;\r
- endY = obj.endY;\r
- return *this;\r
- }\r
-\r
- E getWidth( ) const\r
- {\r
- E width = endX - beginX;\r
- return width < 0 ? -width : width;\r
- }\r
- \r
- E getHeight( ) const\r
- {\r
- E height = endY - beginY;\r
- return height < 0 ? -height : height;\r
- }\r
-\r
-\r
- bool operator ==(const mof::Rectangle<E>& rect){\r
- if(\r
- beginX == rect.beginX &&\r
- beginY == rect.beginY &&\r
- endX == rect.endX &&\r
- endY == rect.endY )return true;\r
- else return false;\r
- }\r
-\r
- \r
- };\r
-\r
- template<typename E>\r
- std::ostream& operator <<(std::ostream& os , const mof::Rectangle<E>& rect){\r
- os << '(' << rect.beginX << ',' << rect.beginY << ','\r
- << rect.endX << ',' << rect.endY << ')';\r
- return os; \r
- }\r
- \r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/tstring.hpp"\r
-#include <map>\r
-#include <list>\r
-#include <boost/shared_ptr.hpp>\r
-#include "mof/ConsoleIO.hpp"\r
-\r
-namespace mof{\r
- \r
- \r
-\r
- /** \83\8a\83\\81[\83X\82Ì\83v\81[\83\8b\81A\92x\89\84\83\8d\81[\83h\8b@\94\\82ð\92ñ\8b\9f\82·\82é\83e\83\93\83v\83\8c\81[\83g\r
- *\r
- *\r
- */\r
- template <class T >\r
- class ResourceManager\r
- {\r
- typedef std::list<boost::shared_ptr<ResourceManager<T > > > MANAGER_LIST;\r
- typedef std::map<mof::tstring , boost::shared_ptr<T>> RESOURCE_MAP;\r
- \r
-\r
- ResourceManager<T>* m_pParent;\r
- RESOURCE_MAP m_resources;\r
- MANAGER_LIST m_children;\r
- \r
- static boost::shared_ptr<T> nullPtr;\r
- //void addResouce(Resouce* pResource);\r
- public:\r
- ResourceManager();\r
- virtual ~ResourceManager(void);\r
-\r
- boost::shared_ptr<T>& getResource(tstring& name );\r
- boost::shared_ptr<T>& getResource(const TCHAR * const name );\r
- void addResource(const TCHAR * const name , boost::shared_ptr<T>& resource);\r
- boost::shared_ptr< ResourceManager<T> > createChild();\r
- };\r
-\r
-\r
-\r
- template <class T>\r
- boost::shared_ptr<T> ResourceManager<T>::nullPtr = boost::shared_ptr<T>();\r
-\r
-\r
-\r
- /** \90e\82È\82µ\82Æ\82µ\82Ä\83I\83u\83W\83F\83N\83g\90¶\90¬\r
- *\r
- */\r
- template <class T >\r
- ResourceManager<T >::ResourceManager( ){\r
- m_pParent = NULL;\r
- }\r
-\r
- /** \8e©\90g\82Ì\83\8a\83\\81[\83X\82Æ\8eq\82ð\89ð\95ú\82µ\81A\90e\82Ì\8eq\83\8a\83X\83g\82©\82ç\8e©\90g\82ð\8dí\8f\9c\r
- */\r
- template <class T >\r
- ResourceManager<T >::~ResourceManager(){\r
- //\8e©\90g\82Ì\8aÇ\97\9d\82·\82é\83\8a\83\\81[\83X\82ð\83A\83\93\83\8d\81[\83h\r
- m_resources.clear();\r
-\r
- //\8eq\83I\83u\83W\83F\83N\83g\82ð\8dí\8f\9c\r
- m_children.clear();\r
- \r
- //\90e\82©\82ç\8e©\90g\82ð\8dí\8f\9c\r
- if(m_pParent != NULL){\r
- for(MANAGER_LIST::iterator itr = m_pParent->m_children.begin() ; itr != m_pParent->m_children.end() ; ++itr){\r
- if(this == itr->get() ){\r
- m_pParent->m_children.erase(itr);\r
- return;\r
- }\r
- }\r
- }\r
- }\r
-\r
- \r
-\r
- /** \90V\82½\82È\8eq\82ð\92Ç\89Á\82µ\81A\95Ô\82·\r
- * @return \90¶\90¬\82µ\82½\8eq\r
- */\r
- template <class T >\r
- boost::shared_ptr< ResourceManager<T> > ResourceManager<T >::createChild(){\r
- boost::shared_ptr< ResourceManager<T > > manager(new ResourceManager<T>( ));\r
- manager->m_pParent = this;\r
- m_children.push_back(manager);\r
- return manager;\r
- }\r
-\r
- \r
- /** \96Ø\8d\\91¢\91S\91Ì\82©\82ç\8ew\92è\82³\82ê\82½\96¼\91O\82Ì\83\8a\83\\81[\83X\82ð\8c\9f\8dõ\81E\8eæ\93¾<br>\r
- * \8c©\82Â\82©\82ç\82È\82¯\82ê\82Î\81A\88ø\90\94\82ð\8c³\82É\90V\82½\82É\90¶\90¬\82·\82é\81B\r
- * @param name \83\8a\83\\81[\83X\96¼\r
- * @param parameter \83\8a\83\\81[\83X\8dì\90¬\8e\9e\82Ì\88ø\90\94\81i\8ew\92è\82µ\82È\82\82Ä\82à\82æ\82¢\81j \r
- * @return \97v\8b\81\82³\82ê\82½\83\8a\83\\81[\83X\r
- */\r
- template <class T >\r
- boost::shared_ptr<T>& ResourceManager<T >::getResource(mof::tstring& name){\r
- //\8e©\95ª\82Ì\83\8a\83X\83g\82©\82ç\92T\82·\r
- RESOURCE_MAP::const_iterator n = m_resources.find(name);\r
- if (n != m_resources.end()){\r
- return (boost::shared_ptr<T>&)n->second;\r
- }\r
- \r
- //\8eq\82Ì\83\8a\83X\83g\82©\82ç\92T\82·\r
-\r
- //\90e\82Ì\83\8a\83X\83g\82©\82ç\92T\82·\r
-\r
- //\82È\82¯\82ê\82Î\8dì\90¬\82·\82é\r
- boost::shared_ptr<T> resource( new T( name ) );\r
- //DEBUG_PRINT(resource->getName() << _T("\82ª\90¶\90¬\82³\82ê\82Ü\82µ\82½") );\r
- m_resources.insert(RESOURCE_MAP::value_type(name , resource));\r
- n = m_resources.find(name);\r
- return (boost::shared_ptr<T>&)n->second;\r
- }\r
-\r
- \r
-\r
- template <class T >\r
- boost::shared_ptr<T>& ResourceManager<T >::getResource(const TCHAR* const name){\r
- return getResource(mof::tstring(name));\r
- }\r
- \r
- template <class T>\r
- void ResourceManager<T>::addResource(const TCHAR* const name , boost::shared_ptr<T>& resource){\r
- m_resources.insert(RESOURCE_MAP::value_type(mof::tstring(name) , resource));\r
- }\r
-\r
-\r
- /*template <class T , typename K >\r
- boost::shared_ptr<T>& ResourceManager<T , K>::findResource(mof::tstring& name , K parameter){\r
-\r
- }*/\r
-\r
-\r
-};\r
+++ /dev/null
-#ifndef SCENE_GRAPH_HPP\r
-#define SCENE_GRAPH_HPP\r
-\r
-\r
-\r
-namespace mof{\r
-\r
-\r
-\r
-class SceneGraph \r
-{\r
-public:\r
- virtual ~SceneGraph(){}\r
- virtual bool isVisible() const = 0;\r
- virtual void update() = 0;\r
- virtual void draw() const = 0;\r
- //virtual bool isDisposable() const = 0;\r
-\r
-};\r
-\r
-}\r
-\r
-#endif\r
+++ /dev/null
-#include "mof/SelectionModel.h"\r
-#include "mof/ConsoleIO.h"\r
-\r
-mof::SelectionModel::SelectionModel( std::vector<mof::Window*>& selectables , mof::AnimationResource& pMenuAnimation , int nColumns)\r
-{\r
- m_nColumns = nColumns;\r
- m_pMenuAnimation = pMenuAnimation;\r
- m_selectables = selectables;\r
- m_selectingIndex = 0;\r
- m_selectables.at(m_selectingIndex)->setFocused(true);\r
-\r
-}\r
-\r
-mof::SelectionModel::~SelectionModel(){\r
- \r
-}\r
-\r
-void mof::SelectionModel::next(){\r
- if(m_pMenuAnimation.get() != NULL && !m_pMenuAnimation->isFinalized())return;\r
- m_selectables.at(m_selectingIndex)->setFocused(false);\r
- m_selectingIndex = (m_selectingIndex+1)%m_selectables.size();\r
- m_selectables.at(m_selectingIndex)->setFocused(true);\r
-}\r
-\r
-void mof::SelectionModel::previous(){\r
- if(m_pMenuAnimation.get() != NULL && !m_pMenuAnimation->isFinalized())return;\r
- m_selectables.at(m_selectingIndex)->setFocused(false);\r
- m_selectingIndex = (m_selectingIndex == 0)? m_selectables.size()-1 : m_selectingIndex-1;\r
- m_selectables.at(m_selectingIndex)->setFocused(true);\r
-\r
-}\r
-\r
-void mof::SelectionModel::up(){\r
- if(m_pMenuAnimation.get() != NULL && !m_pMenuAnimation->isFinalized())return;\r
- m_selectables.at(m_selectingIndex)->setFocused(false);\r
- m_selectingIndex = (m_selectingIndex - m_nColumns);\r
- if(m_selectingIndex < 0)m_selectingIndex += m_selectables.size();\r
- m_selectables.at(m_selectingIndex)->setFocused(true);\r
-}\r
-\r
-void mof::SelectionModel::down(){\r
- if(m_pMenuAnimation.get() != NULL && !m_pMenuAnimation->isFinalized())return;\r
- m_selectables.at(m_selectingIndex)->setFocused(false);\r
- m_selectingIndex = (m_selectingIndex + m_nColumns)% m_selectables.size();\r
- m_selectables.at(m_selectingIndex)->setFocused(true);\r
-}\r
-\r
-void mof::SelectionModel::left(){\r
- if(m_pMenuAnimation.get() != NULL && !m_pMenuAnimation->isFinalized())return;\r
- m_selectables.at(m_selectingIndex)->setFocused(false);\r
- m_selectingIndex += (m_selectingIndex % m_nColumns == 0)? m_nColumns-1 : -1;\r
- m_selectables.at(m_selectingIndex)->setFocused(true);\r
-}\r
-\r
-void mof::SelectionModel::right(){\r
- if(m_pMenuAnimation.get() != NULL && !m_pMenuAnimation->isFinalized())return;\r
- m_selectables.at(m_selectingIndex)->setFocused(false);\r
- m_selectingIndex += (m_selectingIndex % m_nColumns == m_nColumns-1)? -(m_selectingIndex % m_nColumns) : 1;\r
- m_selectables.at(m_selectingIndex)->setFocused(true);\r
-}\r
-\r
-\r
-int mof::SelectionModel::getSelectingIndex(){\r
- return m_selectingIndex;\r
-}\r
-\r
-mof::Window* mof::SelectionModel::getSelectingItem(){\r
- return m_selectables.at(m_selectingIndex);\r
-}\r
-\r
-void mof::SelectionModel::setMenuAnimation(mof::AnimationResource& pMenuAnimation){\r
- m_pMenuAnimation = pMenuAnimation;\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/Window.h"\r
-#include <vector>\r
-\r
-namespace mof{\r
- \r
- class SelectionModel {\r
- \r
- mof::AnimationResource m_pMenuAnimation;\r
- std::vector<mof::Window*> m_selectables;\r
- int m_selectingIndex;\r
- int m_nColumns;\r
- public:\r
- SelectionModel( std::vector<mof::Window*>& selectables , mof::AnimationResource& pOpenedAnimation , int nColumn = 1);\r
- ~SelectionModel();\r
-\r
-\r
- void next();\r
- void previous();\r
-\r
- void up();\r
- void down();\r
- void left();\r
- void right();\r
-\r
- int getSelectingIndex();\r
- Window* getSelectingItem();\r
- void setMenuAnimation(mof::AnimationResource& pMenuAnimation);\r
- \r
-\r
- \r
- };\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#include "mof/Sprite.hpp"\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include "mof/stream/Constant.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/Font.hpp"\r
-\r
-namespace mof\r
-{\r
- struct Sprite::Impl{\r
- boost::shared_ptr<Texture> pTexture;\r
-\r
- Impl()\r
- {\r
- }\r
-\r
- ~Impl(){\r
- }\r
- };\r
-\r
- Sprite::Sprite\r
- (\r
- const Rectangle<int>& rect ,\r
- const boost::shared_ptr<Texture>& pTexture , \r
- const Rectangle<float>& tRect \r
- )\r
- : \r
- m_pImpl( new Impl( ) ) ,\r
- Component2D( rect ) ,\r
- TextureComponent( tRect ) \r
- {\r
- m_pImpl->pTexture = pTexture;\r
- }\r
-\r
-\r
- Sprite::Sprite\r
- (\r
- const boost::shared_ptr<Texture>& pTexture , \r
- const Rectangle<float>& tRect \r
- )\r
- : \r
- m_pImpl(new Impl()) ,\r
- Component2D( Rectangle<int>( 0 , 0 , pTexture->getWidth() , pTexture->getHeight() ) ) ,\r
- TextureComponent( tRect ) \r
- {\r
- m_pImpl->pTexture = pTexture;\r
- }\r
-\r
-\r
- Sprite::~Sprite()\r
- {\r
- } \r
-\r
- void Sprite::update()\r
- {\r
- m_textureStream.update();\r
- m_colorStream.update();\r
- m_sizeStream.update();\r
- m_positionStream.update();\r
- }\r
-\r
- void Sprite::draw() const\r
- {\r
- static VertexXYZRHWCUV vertices[4];\r
- \r
- Rectangle<float> textureCoordinates = m_textureStream.value( );\r
- Color color = m_colorStream.value( ).toColorCode( );\r
- \r
- //textureCoordinates = mof::Rectangle<float>( 0 , 0 , 0.625 , 0.546875 );\r
- Vector2D position = m_positionStream.value( );\r
- Vector2D size = m_sizeStream.value( );\r
- Vector2D begin = Vector2D( position.x , position.y );\r
- Vector2D end = begin + Vector2D( size.x , size.y );\r
- \r
- vertices[0].x = static_cast<float>(begin.x);\r
- vertices[0].y = static_cast<float>(begin.y);\r
- vertices[0].z = 0;\r
- vertices[0].rhw = 1;\r
- vertices[0].color = color;\r
- vertices[0].tu = textureCoordinates.beginX;\r
- vertices[0].tv = textureCoordinates.beginY;\r
-\r
- vertices[1].x = static_cast<float>(end.x);\r
- vertices[1].y = static_cast<float>(begin.y);\r
- vertices[1].z = 0;\r
- vertices[1].rhw = 1;\r
- vertices[1].color = color;\r
- vertices[1].tu = textureCoordinates.endX;\r
- vertices[1].tv = textureCoordinates.beginY;\r
-\r
- vertices[2].x = static_cast<float>(begin.x);\r
- vertices[2].y = static_cast<float>(end.y);\r
- vertices[2].z = 0;\r
- vertices[2].rhw = 1;\r
- vertices[2].color = color;\r
- vertices[2].tu = textureCoordinates.beginX;\r
- vertices[2].tv = textureCoordinates.endY;\r
-\r
- vertices[3].x = static_cast<float>(end.x);\r
- vertices[3].y = static_cast<float>(end.y);\r
- vertices[3].z = 0;\r
- vertices[3].rhw = 1;\r
- vertices[3].color = color;\r
- vertices[3].tu = textureCoordinates.endX;\r
- vertices[3].tv = textureCoordinates.endY;\r
-\r
- GraphicsDevice::setTexture(m_pImpl->pTexture.get());\r
- GraphicsDevice::drawVertexArray(vertices[0] , vertices[3] , PRIMITIVE_TYPE_TRIANGLESTRIP);\r
- \r
- }\r
-\r
- void Sprite::setPositionStream( const Vector2DStream& stream )\r
- {\r
- m_positionStream = stream;\r
- }\r
- \r
- void Sprite::setSizeStream( const Vector2DStream& stream )\r
- {\r
- m_sizeStream = stream;\r
- }\r
-\r
-\r
- void Sprite::append\r
- (\r
- std::vector<VertexXYZRHWCUV>& list ,\r
- const Rectangle<float>& region , \r
- Color color , \r
- const Rectangle<float>& textureCoordinates\r
- )\r
- {\r
- list.push_back\r
- (\r
- VertexXYZRHWCUV(Vector2D(region.beginX , region.beginY) , \r
- color , textureCoordinates.beginX , textureCoordinates.beginY)\r
- );\r
-\r
- list.push_back\r
- (\r
- VertexXYZRHWCUV(Vector2D(region.endX , region.beginY) , \r
- color , textureCoordinates.endX , textureCoordinates.beginY)\r
- );\r
-\r
- list.push_back\r
- (\r
- VertexXYZRHWCUV(Vector2D(region.beginX , region.endY) , \r
- color , textureCoordinates.beginX , textureCoordinates.endY)\r
- );\r
-\r
- list.push_back\r
- (\r
- VertexXYZRHWCUV(Vector2D(region.beginX , region.endY) , \r
- color , textureCoordinates.beginX , textureCoordinates.endY)\r
- );\r
-\r
- list.push_back\r
- (\r
- VertexXYZRHWCUV(Vector2D(region.endX , region.beginY) , \r
- color , textureCoordinates.endX , textureCoordinates.beginY)\r
- );\r
-\r
-\r
- list.push_back\r
- (\r
- VertexXYZRHWCUV(Vector2D(region.endX , region.endY) , \r
- color , textureCoordinates.endX , textureCoordinates.endY)\r
- );\r
-\r
- }\r
-\r
- Sprite* Sprite::createTextSprite( const Font& font , const tstring& text)\r
- {\r
- boost::shared_ptr<PixelMap> pPixelMap( font.createText(text) );\r
- boost::shared_ptr<Texture> pTexture(new Texture( pPixelMap));\r
-\r
- return new Sprite\r
- (\r
- Rectangle<int>( 0 , 0 , pPixelMap->shape()[0] , pPixelMap->shape()[1]) ,\r
- pTexture ,\r
- Rectangle<real>\r
- (\r
- 0 , 0 , \r
- static_cast<real>(pPixelMap->shape()[0]) / pTexture->getWidth() ,\r
- static_cast<real>(pPixelMap->shape()[1]) / pTexture->getHeight() \r
- )\r
- );\r
-\r
- }\r
-\r
-\r
-} // namespace mof\r
-\r
-\r
-\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/Rectangle.hpp"\r
-#include <boost/shared_ptr.hpp>\r
-#include "mof/Texture.hpp"\r
-#include "mof/VertexTypes.hpp"\r
-#include "mof/stream/Manipulator.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-#include "mof/Component2D.hpp"\r
-#include "mof/ColorComponent.hpp"\r
-#include "mof/TextureComponent.hpp"\r
-#include "mof/Drawable.hpp"\r
-#include <vector>\r
-\r
-\r
-namespace mof{\r
- \r
- class Font;\r
-\r
- class Sprite\r
- : \r
- public Component2D ,\r
- public ColorComponent ,\r
- public TextureComponent ,\r
- public Drawable\r
- {\r
-\r
- public : \r
- Sprite\r
- (\r
- const Rectangle<int>& rect ,\r
- const boost::shared_ptr<Texture>& pTexture ,\r
- const Rectangle<real>& tRect\r
- );\r
-\r
- Sprite\r
- (\r
- const boost::shared_ptr<Texture>& pTexture ,\r
- const Rectangle<real>& tRect\r
- );\r
-\r
- virtual ~Sprite();\r
- virtual void update();\r
- virtual void draw() const;\r
- virtual void setPositionStream( const Vector2DStream& stream );\r
- virtual void setSizeStream( const Vector2DStream& stream );\r
-\r
-\r
-\r
- static void append\r
- (\r
- std::vector<VertexXYZRHWCUV>& list ,\r
- const Rectangle<float>& region , \r
- Color color ,\r
- const Rectangle<real>& textureCoordinates\r
- );\r
-\r
- static Sprite* createTextSprite\r
- (\r
- const Font& font , \r
- const tstring& text\r
- );\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-\r
-} // namespace mof\r
+++ /dev/null
-#include "mof/TextCompiler.hpp"\r
-#include <boost/regex.hpp>\r
-#include "mof/ConsoleIO.hpp"\r
-\r
-namespace {\r
- enum NodeType{\r
- PLANE ,\r
- NEWLINE\r
- } ;\r
-\r
- struct Node{\r
- mof::tstring subtext;\r
- NodeType type;\r
- };\r
-\r
-}\r
-\r
-void recursive(const mof::tstring& text , std::vector<mof::Sprite*>& result, const mof::Font& font){\r
- boost::basic_regex<TCHAR> regex("(.*)<\\s*nl\\s*/\\s*>(.*)");\r
- boost::smatch results;\r
- if(boost::regex_search(text , results , regex)){\r
- if( results.str(1).length() != 0)recursive(results.str(1) , result , font);\r
- if( results.str(2).length() != 0)recursive(results.str(2) , result , font);\r
- }\r
- else {\r
- result.push_back(mof::Sprite::createTextSprite(font , text) );\r
- }\r
-}\r
- \r
-bool mof::compileText\r
-(\r
- const mof::tstring &text ,\r
- const mof::Font &font ,\r
- std::vector<mof::Sprite*> &result \r
-){\r
- \r
- recursive(text , result , font);\r
- \r
-\r
-\r
- return true;\r
-}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include <vector>\r
-#include "mof/Sprite.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/Font.hpp"\r
-#include "mof/tstring.hpp"\r
-\r
-namespace mof{\r
-\r
- \r
- bool compileText(\r
- const mof::tstring& text , \r
- const mof::Font& font , \r
- std::vector<mof::Sprite*>& result\r
- );\r
-\r
-}\r
+++ /dev/null
-#include "mof/TextView.hpp"\r
-#include "mof/MenuItemInfo.hpp"\r
-#include "mof/Sprite.hpp"\r
-#include "mof/Effect.hpp"\r
-#include "mof/Frame.hpp"\r
-#include "mof/mofAnimations.hpp"\r
-#include "mof/utilities.hpp"\r
-\r
-namespace mof\r
-{\r
- struct TextView::Impl\r
- {\r
- mof::Font font;\r
- mof::tstring caption;\r
- mof::Effect* pEffect;\r
- mof::Vector2D scaling;\r
- mof::Frame* pFrame;\r
-\r
- Impl(const mof::tstring& _caption , const mof::Font& _font)\r
- : font(_font) , caption(_caption) , pEffect(NULL) , pFrame( NULL )\r
- {\r
-\r
- }\r
-\r
-\r
- ~Impl(){\r
- delete pEffect;\r
- }\r
- };\r
-//{{{ TextView\r
- TextView::TextView(const mof::tstring& caption , const mof::Font& font)\r
- : m_pImpl(new Impl(caption , font))\r
- {\r
- m_pImpl->pEffect = new mof::Effect();\r
- }\r
-//}}}\r
-//{{{ ~TextView \r
- TextView::~TextView( )\r
- {\r
- }\r
-//}}}\r
-//{{{ initialize\r
- mof::Rectangle<int> TextView::initialize( )\r
- {\r
-\r
- \r
- mof::Sprite* pSprite = mof::Sprite::createTextSprite\r
- (\r
- m_pImpl->font , m_pImpl->caption\r
- );\r
-\r
- m_pImpl->pEffect->addSprite(_T("text") , pSprite);\r
- m_pImpl->scaling = pSprite->getWorldTransform().mof::Matrix2D::getDiagonal();\r
-\r
- {\r
- //color\r
- pSprite->setColor( mof::makeConstantHandler(mof::Color4f(0 , 1 , 1 , 1)) );\r
- }\r
- mof::Rectangle<int> bounds = pSprite->getWorldTransform().toBoundingBox();\r
- \r
- boost::shared_ptr<mof::Texture> pTexture(new mof::Texture( _T("image/frame3.png") ));\r
- m_pImpl->pFrame = new mof::Frame( pTexture );\r
- m_pImpl->pEffect->addDrawable( _T("bg") , m_pImpl->pFrame );\r
- m_pImpl->pFrame->setRegion( mof::Rectangle<int>( 100 , 100 , 200 , 132 ) );\r
- return bounds;\r
- }\r
-//}}}\r
-//{{{ show\r
- void TextView::show( )\r
- {\r
- mof::Sprite* pText = m_pImpl->pEffect->getSpriteByName(_T("text"));\r
- {\r
- //color\r
- mof::KeyFrameAnimation<mof::Color4f>::KeyFrame keyFrames[] =\r
- {\r
- mof::makeKeyFrame( 0 , mof::Color4f(0 , 1, 1 , 1) ),\r
- mof::makeKeyFrame( 30 , mof::Color4f(1 , 1, 1 , 1) )\r
- };\r
- mof::Animation<mof::Color4f>::Handler handler\r
- (\r
- new mof::KeyFrameAnimation<mof::Color4f>\r
- (\r
- keyFrames[0] , keyFrames[1] \r
- )\r
- );\r
- pText->setColor( handler );\r
- pText->setFrameNumber( 0 );\r
- }\r
-\r
- }\r
-//}}}\r
-//{{{ close\r
- void mof::TextView::close(){\r
- mof::Sprite* pText = m_pImpl->pEffect->getSpriteByName(_T("text"));\r
- {\r
- //color\r
- mof::Sprite* pText = m_pImpl->pEffect->getSpriteByName(_T("text"));\r
- mof::KeyFrameAnimation<mof::Color4f>::KeyFrame keyFrames[] = {\r
- mof::makeKeyFrame( 0 , mof::Color4f(1 , 1, 1 , 1) ),\r
- mof::makeKeyFrame( 10 , mof::Color4f(0 , 1, 1 , 1) )\r
- };\r
- mof::Animation<mof::Color4f>::Handler handler(new mof::KeyFrameAnimation<mof::Color4f>(\r
- keyFrames[0] , keyFrames[1] \r
- ));\r
- pText->setColor( handler );\r
- pText->setFrameNumber(0);\r
- }\r
- }\r
-//}}}\r
-//{{{ focus\r
- void mof::TextView::focus( ) \r
- {\r
- }\r
-//}}}\r
-//{{{ blur\r
- void mof::TextView::blur()\r
- {\r
- }\r
-//}}}\r
-//{{{ setPosition\r
- void mof::TextView::setPosition\r
- (\r
- const mof::Animation<mof::Matrix2D>::Handler& handler \r
- ) \r
- {\r
- mof::Sprite* pText = m_pImpl->pEffect->getSpriteByName(_T("text"));\r
- mof::Animation<mof::Matrix2D>::Handler cascading[] = {\r
- mof::makeConstantHandler<mof::Matrix2D>(mof::Matrix2D::createScaling(m_pImpl->scaling)) , \r
- handler\r
- };\r
- mof::Animation<mof::Matrix2D>::Handler pAnimation(\r
- new mof::CascadingAnimation<mof::Matrix2D>(cascading[0] , cascading[1])\r
- );\r
- pText->setWorldTransform(pAnimation);\r
- /*pText->setWorldTransform(\r
- mof::cascadingHandler2(\r
- mof::Multiply<mof::Matrix2D> cascaor ,\r
- mof::makeConstantHandler<mof::Matrix2D>(mof::Matrix2D::createScaling(m_pImpl->scaling)) , \r
- handler\r
- ));*/\r
- }\r
-//}}}\r
-//{{{ setWorldTransform\r
- void mof::TextView::setWorldTransform\r
- (\r
- const mof::Animation<mof::Matrix2D>::Handler& handler \r
- ) \r
- {\r
- mof::Sprite* pText = m_pImpl->pEffect->getSpriteByName(_T("text"));\r
- pText->setWorldTransform( handler );\r
- \r
- }\r
-//}}}\r
-//{{{ setBounds\r
- void mof::TextView::setBounds( const mof::Rectangle<int>& bounds )\r
- {\r
- mof::Sprite* pText = m_pImpl->pEffect->getSpriteByName(_T("text"));\r
- //m_pImpl->scaling = mof::Vector2D( bounds.endX - bounds.beginX , bounds.endY - bounds.beginY );\r
- mof::Vector2D translation( bounds.beginX , bounds.beginY );\r
- mof::Animation<mof::Matrix2D>::Handler cascading[] = \r
- {\r
- mof::makeConstantHandler( mof::Matrix2D::createScaling( m_pImpl->scaling ) ) ,\r
- mof::makeConstantHandler( mof::Matrix2D::createTranslation( translation ) ) ,\r
- };\r
- mof::Animation<mof::Matrix2D>::Handler pAnimation(\r
- new mof::CascadingAnimation<mof::Matrix2D>(cascading[0] , mof::lastOf( cascading ) )\r
- );\r
- pText->setWorldTransform(pAnimation);\r
- }\r
-//}}}\r
-//{{{ getEffect\r
- const mof::Effect* TextView::getEffect() const\r
- {\r
- return m_pImpl->pEffect;\r
- }\r
-//}}}\r
-//{{{ update\r
- void mof::TextView::update()\r
- {\r
- m_pImpl->pEffect->update();\r
-\r
- }\r
-//}}}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/MenuView.hpp"\r
-#include "mof/tstring.hpp"\r
-#include "mof/Font.hpp"\r
-\r
-namespace mof\r
-{\r
-\r
-\r
- class TextView : public MenuView \r
- {\r
- public:\r
- TextView( const mof::tstring& caption , const mof::Font& font );\r
- virtual ~TextView();\r
- virtual mof::Rectangle<int> initialize();\r
- virtual void show();\r
- virtual void close();\r
- virtual void focus();\r
- virtual void blur();\r
- /* diprecated */\r
- virtual void setPosition\r
- (\r
- const mof::Animation<mof::Matrix2D>::Handler& handler \r
- );\r
- void setBounds( const mof::Rectangle<int>& bounds );\r
-\r
- /* candidate */\r
- virtual void setWorldTransform\r
- (\r
- const mof::Animation<mof::Matrix2D>::Handler& handler \r
- );\r
-\r
- virtual const mof::Effect* getEffect() const;\r
- virtual void update();\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- \r
- };\r
-\r
-\r
-} // namespace mof\r
-\r
+++ /dev/null
-#include "mof/private/TextureImpl.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/private/FileTextureBuilder.hpp"\r
-#include "mof/private/PixelMapTextureBuilder.hpp"\r
-\r
-mof::Texture::Texture( const tstring& filename)\r
-: m_pImpl(new Impl())\r
-{\r
- m_pImpl->pTexture = mof::FileTextureBuilder( filename).create();\r
- D3DSURFACE_DESC desc;\r
- m_pImpl->pTexture->GetLevelDesc(0 , &desc);\r
- m_pImpl->width = desc.Width;\r
- m_pImpl->height = desc.Height;\r
-}\r
-\r
-mof::Texture::Texture( const boost::shared_ptr<mof::PixelMap>& pPixelMap)\r
-: m_pImpl(new Impl())\r
-{\r
- m_pImpl->pTexture = mof::PixelMapTextureBuilder( pPixelMap).create();\r
- D3DSURFACE_DESC desc;\r
- m_pImpl->pTexture->GetLevelDesc(0 , &desc);\r
- m_pImpl->width = desc.Width;\r
- m_pImpl->height = desc.Height;\r
-}\r
-\r
-mof::Texture::~Texture(){}\r
-\r
-boost::shared_ptr<mof::PixelMap> mof::Texture::getPixelMap(){\r
- typedef mof::PixelMap::size_type size_type;\r
- boost::array<size_type , 2> sizes = {{getWidth() , getHeight()}};\r
- \r
- boost::shared_ptr<mof::PixelMap> pMap(new mof::PixelMap(sizes));\r
- D3DLOCKED_RECT rect;\r
- m_pImpl->pTexture->LockRect(0 , &rect , NULL , 0);\r
- for(int y = 0 ; y < getHeight() ; y++){ \r
- for(int x = 0 ; x < getWidth() ; x++){\r
- BYTE* pPixel = (BYTE*)rect.pBits + x * 4 + y * rect.Pitch;\r
- (*pMap)[x][y] = mof::createColor(*(pPixel + 3) , *(pPixel+2) , *(pPixel+1) , *(pPixel));\r
- }\r
- }\r
- m_pImpl->pTexture->UnlockRect(0);\r
- return pMap;\r
-}\r
-\r
-int mof::Texture::getWidth(){\r
- return m_pImpl->width;\r
-}\r
-\r
-int mof::Texture::getHeight(){\r
- return m_pImpl->height;\r
-}\r
-\r
-\r
+++ /dev/null
-#pragma once\r
-\r
-#include "mof/PixelMap.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-#include <boost/noncopyable.hpp>\r
-#include "mof/GraphicsDevice.hpp"\r
-\r
-namespace mof{\r
- \r
- class Texture : boost::noncopyable\r
- {\r
- friend void GraphicsDevice::setTexture( const Texture* );\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- \r
- public:\r
- Texture( const tstring& filename );\r
- Texture( const boost::shared_ptr<mof::PixelMap>& pPixelMap);\r
- ~Texture();\r
- \r
- boost::shared_ptr<mof::PixelMap> getPixelMap();\r
-\r
- int getWidth();\r
- int getHeight();\r
- \r
- };\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/utilities.hpp"\r
-\r
-namespace mof\r
-{\r
-\r
- class TextureComponent\r
- {\r
- public:\r
- virtual ~TextureComponent( ){}\r
-\r
- virtual void setRectangleCoordinatesStream( const RectangleStream& stream )\r
- {\r
- m_textureStream = stream;\r
- }\r
-\r
- virtual const RectangleStream& getRectangleCoordinatesStream( ) const\r
- {\r
- return m_textureStream;\r
- }\r
-\r
- protected:\r
- RectangleStream m_textureStream;\r
-\r
- TextureComponent( )\r
- : \r
- m_textureStream( makeConstantHandler( Rectangle< real >( 0 , 0 , 1 , 1 ) ) ) \r
- {\r
- }\r
-\r
- TextureComponent( const Rectangle< real >& rect )\r
- : \r
- m_textureStream( makeConstantHandler( rect ) ) \r
- {\r
- }\r
-\r
- TextureComponent( const RectangleStream& stream )\r
- : \r
- m_textureStream( stream ) \r
- {\r
- }\r
-\r
- };\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-\r
-#include "mof/ResourceManager.h"\r
-#include "mof/Texture.h"\r
-#include "mof/Animation.h"\r
-//#include "mof/MultipleAnimation.h"\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof{\r
- typedef boost::shared_ptr<mof::Texture> TextureResource;\r
- typedef mof::ResourceManager<mof::Texture> TextureManager;\r
-\r
- \r
- \r
- //typedef boost::shared_ptr<mof::MultipleAnimation> MultipleAnimation;\r
-\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#include "mof/Timer.hpp"\r
-#include <windows.h>\r
-\r
-bool mof::Timer::initialized = false;\r
-\r
-\r
-\r
-mof::Timer::Timer() : m_startTime(timeGetTime()){\r
- if(!initialized){\r
- TIMECAPS caps;\r
- timeGetDevCaps(&caps, sizeof(TIMECAPS)); \r
- timeBeginPeriod(caps.wPeriodMin);//\8dÅ\8d\82\90«\94\\82Å\8cv\91ª\r
- initialized = true;\r
- }\r
-}\r
-\r
-void mof::Timer::reset(){\r
- m_startTime = timeGetTime();\r
-}\r
-\r
-int mof::Timer::getTime() const{\r
- return timeGetTime() - m_startTime;\r
-}\r
-\r
-/*\r
-//-----------------------------------------------\r
-// Clock::Clock\r
-// \r
-//-----------------------------------------------\r
-mof::Clock::Clock()\r
-\r
-{\r
- \r
- m_begintime = 0;\r
- \r
-\r
-}\r
-\r
-//-----------------------------------------------\r
-// Clock::SetTimer\r
-// \r
-//-----------------------------------------------\r
-void mof::Clock::setTimer(){\r
- \r
- m_begintime = timeGetTime();\r
- \r
-\r
-}\r
-\r
-\r
-//-----------------------------------------------\r
-// Clock::GetBetweenTime\r
-// \r
-//-----------------------------------------------\r
-DWORD mof::Clock::getBetweenTime(){\r
- DWORD temp_time = m_begintime;\r
- m_begintime = timeGetTime(); \r
- return m_begintime - temp_time;\r
-\r
-}\r
-\r
-\r
-\r
-// void StopTimer();\r
-// DWORD GetAvgTime();\r
-\r
-\r
-//-----------------------------------------------\r
-// Clock::GetFPS\r
-// \82 \82é\83t\83\8c\81[\83\80\90\94\82É\82©\82©\82Á\82½\8e\9e\8aÔ\82©\82ç\81AFPS\82ð\8eZ\8fo\82·\82é\r
-//-----------------------------------------------\r
-float mof::Clock::getFPS(DWORD in_time , UINT in_cnt_frame){\r
- if(in_time == 0)return 0.0f;//\82O\82Å\8f\9c\8eZ\82ð\89ñ\94ð\r
- return (float)in_cnt_frame / (float)in_time * 1000.0f;\r
-\r
-}*/\r
+++ /dev/null
-#ifndef TIMER_HPP\r
-#define TIMER_HPP\r
-\r
-#pragma comment(lib , "winmm.lib")\r
-\r
-namespace mof{\r
-\r
-\r
-class Timer{\r
- int m_startTime;\r
- static bool initialized;\r
-public:\r
- Timer();\r
-\r
- void reset();\r
- int getTime() const;\r
-\r
-};\r
-\r
-}\r
-\r
-#endif\r
+++ /dev/null
-\r
-#include "mof/Vector2D.hpp"\r
-\r
-mof::Vector2D::Vector2D(real x_ , real y_)\r
-: x(x_) , y(y_)\r
-{}\r
-\r
-mof::Vector2D::Vector2D(int x_ , int y_)\r
-: x(mof::int2real(x_)) , y(mof::int2real(y_))\r
-{}\r
-\r
-\r
-mof::Vector2D::Vector2D(){\r
- x = y = 0;\r
-}\r
-\r
-mof::Vector2D::~Vector2D(void)\r
-{\r
-}\r
-\r
-\r
-bool mof::Vector2D::operator == (const mof::Vector2D& obj) const{\r
- if(x == obj.x && y == obj.y)return true;\r
- else return false;\r
-}\r
-\r
-bool mof::Vector2D::operator != (const mof::Vector2D& obj) const{\r
- return !(*this == obj);\r
-}\r
- \r
-mof::Vector2D mof::Vector2D::operator - () const{\r
- return mof::Vector2D( -x , -y);\r
-}\r
- \r
-\r
-\r
-mof::Vector2D mof::Vector2D::operator +( const mof::Vector2D& rhs) const{\r
- return mof::Vector2D(this->x + rhs.x , this->y + rhs.y);\r
-}\r
-\r
-\r
-mof::Vector2D mof::Vector2D::operator -( const mof::Vector2D& rhs) const{\r
- return mof::Vector2D(this->x - rhs.x , this->y - rhs.y);\r
-}\r
- \r
-mof::Vector2D mof::Vector2D::operator *(float rhs) const{\r
- return mof::Vector2D(this->x * rhs , this->y * rhs);\r
-}\r
-\r
-\r
-mof::Vector2D mof::Vector2D::operator /(float rhs) const{\r
- return mof::Vector2D(this->x / rhs , this->y / rhs);\r
-}\r
-\r
-\r
-mof::Vector2D mof::operator *(const mof::Vector2D& vec , float f){\r
- mof::Vector2D obj;\r
- obj.x = vec.x * f;\r
- obj.y = vec.y * f;\r
- return obj;\r
-}\r
- \r
-mof::Vector2D mof::operator *(float f , const mof::Vector2D& vec ){\r
- mof::Vector2D obj;\r
- obj.x = vec.x * f;\r
- obj.y = vec.y * f;\r
- return obj;\r
-}\r
-\r
-std::ostream& mof::operator <<(std::ostream& os , const mof::Vector2D& obj)\r
-{\r
- os << '(' << obj.x << ',' << obj.y << ')';\r
- return os; \r
-}\r
-\r
+++ /dev/null
-#ifndef VECTOR2D_HPP\r
-#define VECTOR2D_HPP\r
-#include <mof/real.hpp>\r
-#include <iostream>\r
-\r
-namespace mof{\r
-\r
- struct Vector2D\r
- {\r
- real x , y;\r
- \r
- Vector2D(real x_ , real y_);\r
- Vector2D(int x_ , int y_);\r
- Vector2D();\r
- ~Vector2D(void);\r
- \r
- mof::Vector2D operator +(const mof::Vector2D& rhs) const;\r
- mof::Vector2D operator -(const mof::Vector2D& rhs) const;\r
- mof::Vector2D operator *(float rhs) const;\r
- mof::Vector2D operator /(float rhs) const;\r
-\r
- bool operator ==(const mof::Vector2D& obj) const;\r
- bool operator !=(const mof::Vector2D& obj) const;\r
- mof::Vector2D operator -( ) const;\r
-\r
- friend mof::Vector2D operator *(const mof::Vector2D& vec , real f);\r
- friend mof::Vector2D operator *(real f , const mof::Vector2D & vec);\r
- friend std::ostream& operator <<(std::ostream& os , const Vector2D& obj );\r
-\r
- };\r
-\r
-};\r
-\r
-#endif\r
+++ /dev/null
- #include "mof/Vector3D.hpp"\r
- #include <math.h>\r
- \r
- mof::Vector3D::Vector3D(real _x , float _y , float _z)\r
- {\r
- x = _x;\r
- y = _y;\r
- z = _z;\r
- }\r
- \r
- mof::Vector3D::Vector3D(){\r
- x = y = z = 0.0f;\r
- }\r
- \r
- mof::Vector3D::~Vector3D(void)\r
- {\r
- }\r
- \r
- \r
- void mof::Vector3D::normalize(){\r
- real norm = sqrt(x*x + y*y + z*z);\r
- if(norm < 1E-7 )return ;\r
- x = x / norm;\r
- y = y / norm;\r
- z = z / norm;\r
- }\r
- \r
- \r
- bool mof::Vector3D::operator ==(const mof::Vector3D& rhs) const{\r
- if(x == rhs.x && y == rhs.y && rhs.z == z)return true;\r
- else return false;\r
- }\r
- \r
- bool mof::Vector3D::operator != (const mof::Vector3D& obj) const{\r
- return !(*this == obj);\r
- }\r
- \r
- \r
- mof::Vector3D mof::Vector3D::operator +(const mof::Vector3D& rhs) const{\r
- return mof::Vector3D(this->x + rhs.x , this->y + rhs.y , this->z + rhs.z);\r
- }\r
- \r
- \r
- mof::Vector3D mof::Vector3D::operator -(const mof::Vector3D& rhs) const{\r
- return mof::Vector3D(this->x - rhs.x , this->y - rhs.y , this->z - rhs.z);\r
- }\r
- \r
- mof::Vector3D mof::Vector3D::operator *(real rhs) const{\r
- return mof::Vector3D(this->x * rhs , this->y * rhs ,this->z * rhs);\r
- }\r
- \r
- \r
- mof::Vector3D mof::Vector3D::operator /(real rhs) const{\r
- return mof::Vector3D(this->x / rhs , this->y / rhs , this->z / rhs);\r
- }\r
- \r
- /*\r
- mof::Vector3D mof::operator *(const mof::Vector3D& vec , real f){\r
- mof::Vector3D obj;\r
- obj.x = vec.x * f;\r
- obj.y = vec.y * f;\r
- obj.z = vec.z * f;\r
- return obj;\r
- }*/\r
- \r
- mof::Vector3D mof::operator *(real f , const mof::Vector3D& vec ){\r
- mof::Vector3D obj;\r
- obj.x = vec.x * f;\r
- obj.y = vec.y * f;\r
- obj.z = vec.z * f;\r
- return obj;\r
- }\r
+++ /dev/null
- #pragma once \r
-#include <mof/real.hpp>\r
-\r
- namespace mof{\r
- struct Vector3D\r
- {\r
- real x , y , z;\r
- Vector3D(real _x , real _y , real _z);\r
- Vector3D();\r
- ~Vector3D(void);\r
- void normalize();\r
- \r
- mof::Vector3D operator +(const mof::Vector3D& rhs) const ;\r
- mof::Vector3D operator -(const mof::Vector3D& rhs) const ;\r
- mof::Vector3D operator *(real rhs) const;\r
- mof::Vector3D operator /(real rhs) const;\r
- \r
- //friend mof::Vector3D operator *(const mof::Vector3D& vec , real f);\r
- friend mof::Vector3D operator *(real f , const mof::Vector3D & vec);\r
- \r
- \r
- bool operator ==(const mof::Vector3D& rhs) const;\r
- bool operator !=(const mof::Vector3D& rhs) const;\r
- };\r
- \r
- Vector3D operator *(real f , const mof::Vector3D & vec);\r
- } //namespace mof\r
- \r
+++ /dev/null
-#pragma once\r
-#include "mof/VertexBuffer.hpp"\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include <d3dx9.h>\r
-#include "mof/VertexTypes.hpp"\r
-#include "mof/private/VertexFVF.hpp"\r
-#include <stdlib.h>\r
-\r
-template class mof::VertexBuffer<mof::VertexXYZRHWCUV>;\r
-template class mof::VertexBuffer<mof::VertexXYZRHWC>;\r
-template class mof::VertexBuffer<mof::VertexXYZCUV>;\r
-template class mof::VertexBuffer<mof::VertexXYZNUV>;\r
-template class mof::VertexBuffer<mof::VertexXYZC>;\r
-\r
-\r
-template <class T>\r
-struct mof::VertexBuffer<T>::Impl{\r
- IDirect3DVertexBuffer9* pBuffer;\r
- mof::PRIMITIVE_TYPE primitiveType;\r
- \r
- \r
- Impl(mof::PRIMITIVE_TYPE primitiveType_);\r
- ~Impl();\r
-};\r
-\r
-\r
-template <class T>\r
-mof::VertexBuffer<T>::Impl::Impl(mof::PRIMITIVE_TYPE primitiveType_ )\r
-: pBuffer(NULL) , primitiveType(primitiveType_) \r
-{ \r
-}\r
-\r
-template <class T>\r
-mof::VertexBuffer<T>::Impl::~Impl()\r
-{ \r
- if(pBuffer != NULL)pBuffer->Release();\r
-}\r
-\r
-\r
-template <class T>\r
-mof::VertexBuffer<T>::VertexBuffer(const T& front , const T& back , mof::PRIMITIVE_TYPE primitiveType )\r
-: m_pImpl(new Impl( primitiveType ))\r
-{\r
- int length = &back - &front + 1;\r
- if(length <= 0)throw std::invalid_argument("\95s\90³\82È\92¸\93_\94z\97ñ\8ew\92è");\r
- \r
- const LPDIRECT3DDEVICE9 pDevice = mof::GraphicsDevice::getRawDevice();\r
- HRESULT hr = pDevice->CreateVertexBuffer( sizeof(T) * length , 0 , mof::getFVF<T>() , D3DPOOL_DEFAULT , &m_pImpl->pBuffer , NULL);\r
- if(FAILED(hr))throw std::runtime_error("Failed -- CreateVertexBuffer");\r
- \r
- T* pBuffer;\r
- hr = m_pImpl->pBuffer->Lock( 0, 0 ,(LPVOID*)&pBuffer , 0);\r
- if(FAILED(hr))throw std::invalid_argument(std::string("\92¸\93_\83o\83b\83t\83@\82Ì\83\8d\83b\83N\82É\8e¸\94s\82µ\82Ü\82µ\82½"));\r
- \r
- memcpy( pBuffer , &front , sizeof(T) * length );\r
- m_pImpl->pBuffer->Unlock();\r
-}\r
-\r
-\r
-\r
-template<class T>\r
-mof::VertexBuffer<T>::~VertexBuffer(){\r
-}\r
-\r
-\r
-template<class T>\r
-int mof::VertexBuffer<T>::getLength() const{\r
- D3DVERTEXBUFFER_DESC desc;\r
- m_pImpl->pBuffer->GetDesc(&desc);\r
- return desc.Size / sizeof(T);\r
-}\r
-\r
-\r
-template<class T>\r
-mof::PRIMITIVE_TYPE mof::VertexBuffer<T>::getPrimitiveType() const{\r
- return m_pImpl->primitiveType;\r
-}\r
-\r
-\r
-template<class T>\r
-void mof::VertexBuffer<T>::draw() const{\r
- HRESULT hr = E_FAIL;\r
-\r
- const LPDIRECT3DDEVICE9 pDevice = mof::GraphicsDevice::getRawDevice();\r
-\r
- pDevice->SetFVF(mof::getFVF<T>());\r
- pDevice->SetStreamSource(0 , m_pImpl->pBuffer , 0 , sizeof(T));\r
-\r
- \r
- int length = getLength();\r
-\r
- if(m_pImpl->primitiveType == mof::PRIMITIVE_TYPE_TRIANGLESTRIP){\r
- hr = pDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP , 0 , length -2 );\r
- }\r
- else if(m_pImpl->primitiveType == mof::PRIMITIVE_TYPE_TRIANGLELIST){\r
- hr = pDevice->DrawPrimitive( D3DPT_TRIANGLELIST , 0 , length /3 );\r
- }\r
- \r
- if(FAILED(hr))throw std::runtime_error("Failed -- DrawPrimitive");\r
-\r
-}\r
-\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/VertexTypes.hpp"\r
-#include <boost/utility.hpp>\r
-\r
-namespace mof{\r
-\r
-\r
-\r
-template <class T>\r
-class VertexBuffer : boost::noncopyable{\r
- \r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-public:\r
- VertexBuffer\r
- (\r
- const T& front , const T& back , \r
- mof::PRIMITIVE_TYPE primitiveType = PRIMITIVE_TYPE_TRIANGLELIST \r
- );\r
- ~VertexBuffer();\r
-\r
- int getLength() const;\r
- mof::PRIMITIVE_TYPE getPrimitiveType() const;\r
- void draw() const;\r
-\r
-};\r
-\r
- \r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/Color.hpp"\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/Vector3D.hpp"\r
-namespace mof{\r
-\r
-\r
-struct VertexXYZRHWCUV{\r
- float x , y , z , rhw;\r
- mof::Color color;\r
- float tu , tv; \r
-\r
- VertexXYZRHWCUV(){\r
- }\r
-\r
- VertexXYZRHWCUV(const mof::Vector2D& position , mof::Color color , float tu , float tv){\r
- x = static_cast<float>(position.x);\r
- y = static_cast<float>(position.y);\r
- z = 0.0f;\r
- rhw = 1.0f;\r
- this->color = color;\r
- this->tu = tu;\r
- this->tv = tv;\r
- }\r
-};\r
-\r
-struct VertexXYZRHWC{\r
- float x , y , z , rhw;\r
- mof::Color color;\r
-\r
- VertexXYZRHWC(){\r
- }\r
-\r
- VertexXYZRHWC(const mof::Vector2D& position , mof::Color color){\r
- x = static_cast<float>(position.x);\r
- y = static_cast<float>(position.y);\r
- z = 0.0f;\r
- rhw = 1.0f;\r
- this->color = color;\r
- }\r
-};\r
-\r
-\r
-struct VertexXYZCUV{\r
- float x , y , z;\r
- mof::Color color;\r
- float tu , tv;\r
-\r
- VertexXYZCUV(){\r
- }\r
-\r
- VertexXYZCUV(const mof::Vector3D& position , mof::Color color ,float tu , float tv){\r
- x = position.x;\r
- y = position.y;\r
- z = position.z;\r
- this->color = color;\r
- this->tu = tu;\r
- this->tv = tv;\r
- }\r
-};\r
-\r
-struct VertexXYZNUV{\r
- float x , y , z;\r
- float nx , ny , nz;\r
- float tu , tv;\r
-\r
- VertexXYZNUV(){\r
- }\r
-\r
- VertexXYZNUV(const mof::Vector3D& position , const mof::Vector3D& normal , float tu , float tv){\r
- x = position.x;\r
- y = position.y;\r
- z = position.z;\r
- nx = normal.x; \r
- ny = normal.y;\r
- nz = normal.z;\r
- this->tu = tu;\r
- this->tv = tv;\r
- }\r
-};\r
-\r
-struct VertexXYZC{\r
- float x , y , z;\r
- mof::Color color;\r
-\r
- VertexXYZC(){\r
- }\r
-\r
- VertexXYZC(const mof::Vector3D& position , const mof::Color _color){\r
- x = position.x;\r
- y = position.y;\r
- z = position.z;\r
- color = _color;\r
- }\r
-};\r
-\r
-enum PRIMITIVE_TYPE{\r
- PRIMITIVE_TYPE_TRIANGLESTRIP,\r
- PRIMITIVE_TYPE_TRIANGLELIST ,\r
- PRIMITIVE_TYPE_LINELIST\r
-};\r
-\r
-\r
-}\r
+++ /dev/null
-#include "mof/Window.hpp"\r
-#include "mof/InputDevice.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include <stdexcept>\r
-\r
-LRESULT WINAPI wndProc( HWND hWnd , UINT msg, WPARAM wParam, LPARAM lParam)\r
-{\r
- switch(msg)\r
- {\r
- case WM_ACTIVATEAPP:\r
- if(LOWORD(wParam) == 0)\r
- {\r
- /* *ConsoleOut::getInstance() << "Window\82ª\94ñ\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;\r
- mof::System::getInstance()->activate(false);\r
- mof::InputDevice::getInstance()->activate(false);*/\r
- mof::InputDevice::setActivation(false);\r
- }\r
- else \r
- {\r
- /* *ConsoleOut::getInstance() << "Window\82ª\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;\r
- mof::System::getInstance()->activate(true);\r
- mof::InputDevice::getInstance()->activate(true);*/\r
- mof::InputDevice::setActivation(true);\r
- }\r
- break;\r
- case WM_DESTROY:\r
- PostQuitMessage(0);\r
- break;\r
- case WM_SETCURSOR:\r
- SetCursor(NULL);\r
- break;\r
- }\r
- \r
- return DefWindowProc( hWnd, msg, wParam, lParam );\r
-}\r
-\r
-\r
-\r
-\r
-namespace mof\r
-{\r
- \r
- struct Window::Impl\r
- {\r
- mof::tstring appName;\r
- HINSTANCE hInstance;\r
- HWND hWindow;\r
- \r
- Impl(const mof::tstring& appname , HINSTANCE hInstance );\r
- };\r
-\r
- Window::Impl::Impl(const mof::tstring &appname, HINSTANCE hInstance )\r
- : appName( appname ) , hInstance( hInstance ) , hWindow( NULL )\r
- {\r
- // do nothing\r
- } \r
-\r
- Window::Window( const mof::tstring &appname , int width , int height , bool fullscreen )\r
- : m_pImpl( new mof::Window::Impl( appname , GetModuleHandle(NULL) ) )\r
- {\r
-\r
- // \83E\83B\83\93\83h\83E\83N\83\89\83X\90Ý\92è\r
- WNDCLASSEX wc = \r
- { \r
- sizeof(WNDCLASSEX), CS_CLASSDC, wndProc, 0L, 0L, \r
- m_pImpl->hInstance , NULL, NULL, NULL, NULL,\r
- m_pImpl->appName.c_str() , NULL\r
- };\r
- RegisterClassEx( &wc );\r
-\r
- // \83E\83B\83\93\83h\83E\90¶\90¬\r
- if( !fullscreen )\r
- {\r
- // \8ew\92è\82³\82ê\82½\83N\83\89\83C\83A\83\93\83g\97Ì\88æ\82ð\8am\95Û\82·\82é\82½\82ß\82É\95K\97v\82È\83E\83B\83\93\83h\83E\83T\83C\83Y\82ð\93¾\82é\r
- RECT rect_win;\r
- SetRect( &rect_win , 0 , 0 , width , height );\r
- AdjustWindowRect( &rect_win , WS_OVERLAPPEDWINDOW , false );\r
- \r
- //Window\83\82\81[\83h\r
- m_pImpl->hWindow = \r
- CreateWindow\r
- ( \r
- m_pImpl->appName.c_str() , m_pImpl->appName.c_str() , \r
- WS_OVERLAPPEDWINDOW , CW_USEDEFAULT, CW_USEDEFAULT, (rect_win.right - rect_win.left) ,\r
- (rect_win.bottom - rect_win.top) , GetDesktopWindow() , NULL , wc.hInstance , NULL\r
- );\r
- }\r
- else\r
- {\r
- //\83t\83\8b\83X\83N\83\8a\81[\83\93\r
- m_pImpl->hWindow = \r
- CreateWindow\r
- (\r
- m_pImpl->appName.c_str() , m_pImpl->appName.c_str() , \r
- WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , width , height ,\r
- HWND_DESKTOP , NULL , wc.hInstance , NULL\r
- );\r
- }\r
- \r
- \r
- // \83E\83B\83\93\83h\83E\95`\89æ\r
- ShowWindow( m_pImpl->hWindow , SW_SHOWDEFAULT );\r
- UpdateWindow( m_pImpl->hWindow );\r
-\r
-\r
- } // function constructor \r
-\r
-\r
-\r
- Window::~Window( )\r
- {\r
- try\r
- {\r
- \r
- //\97á\8aO\82È\82°\82é\81H\r
- UnregisterClass(m_pImpl->appName.c_str() , m_pImpl->hInstance );\r
- }\r
- catch(...)\r
- {\r
- }\r
- \r
- }\r
- \r
- HWND Window::getHandler() const {\r
- return m_pImpl->hWindow;\r
- }\r
-\r
-} // namespace mof
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-\r
-#include "mof/tstring.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/utility.hpp>\r
-#include <windows.h>\r
-\r
-namespace mof\r
-{\r
- \r
- \r
- class Window : boost::noncopyable\r
- {\r
- \r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- \r
- public:\r
- Window( const mof::tstring& appname , int width , int height , bool fullscreen );\r
- ~Window( );\r
- HWND getHandler() const;\r
- \r
- \r
- };\r
-\r
-\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-#include <mof/Texture.hpp>\r
-#include <mof/ResourceManager.hpp>\r
-\r
-namespace mof\r
-{\r
- typedef boost::shared_ptr< Texture > TextureHandler;\r
- typedef ResourceManager< Texture > TextureManager;\r
- typedef boost::shared_ptr< TextureManager > TextureManagerHandler;\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-#include <mof/Texture.hpp>\r
-#include <mof/ResourceManager.hpp>\r
-\r
-namespace mof\r
-{\r
- typedef boost::shared_ptr< Texture > TextureHandler;\r
- typedef ResourceManager< Texture > TextureManager;\r
- typedef boost::shared_ptr< TextureManager > TextureManagerHandler;\r
-}\r
+++ /dev/null
-#pragma once\r
-//#include "mof/AmbientLight.hpp"\r
-#include "mof/GraphicsDevice.hpp"\r
-//#include "mof/Camera.hpp"\r
-#include "mof/Captor.hpp"\r
-#include "mof/Color.hpp"\r
-#include "mof/GraphicsUnit.hpp"\r
-//#include "mof/Light.hpp"\r
-//#include "mof/Material.hpp"\r
-//#include "mof/MaterialBuilder.hpp"\r
-#include "mof/PixelMap.hpp"\r
-#include "mof/Texture.hpp"\r
-#include "mof/VertexBuffer.hpp"\r
-#include "mof/VertexTypes.hpp"\r
-#include "mof/graphics/utilities.hpp"\r
+++ /dev/null
-#pragma\r
-#include "mof/InputDevice.hpp"\r
-#include "mof/InputEventCondition.hpp"\r
-#include "mof/KeyPressedEventCondition.hpp"\r
-#include "mof/private/DeviceInputReceiver.hpp"\r
-#include "mof/LoggedInputReceiver.hpp"\r
-#include "mof/LoggingInputReceiver.hpp"\r
+++ /dev/null
-<?xml version="1.0" encoding="shift_jis"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="8.00"\r
- Name="moflib"\r
- ProjectGUID="{04CD4817-1559-4830-BCB0-C5AE997CD904}"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
- IntermediateDirectory="$(ConfigurationName)"\r
- ConfigurationType="4"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLibrarianTool"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- IntermediateDirectory="$(ConfigurationName)"\r
- ConfigurationType="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCWebDeploymentTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="\83\\81[\83X \83t\83@\83C\83\8b"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
- <File\r
- RelativePath=".\AbstractScene.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\AmbientLight.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Animation.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\AnimationScheduler.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\BackGroundModel.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Billboard.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Button.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Camera.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Capturer.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\CascadeAnimation.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Color.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Component2D.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Component3D.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\ConsoleIO.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Container2D.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Container3D.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\CSVFile.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\DataTable.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\DeviceInputReceiver.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\DirectionalLight.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\FileMeshBuilder.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\FilePath.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\FileTextureBuilder.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Frame.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\GraphicsDevice.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\GraphicsObject.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\GraphicsSchedule.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\InputDevice.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\KeyFrameAnimation.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\LayoutManager.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Light.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Line2D.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Line3D.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\List.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\LoggedInputReceiver.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\LoggingInputReceiver.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Material.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Matrix3D.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Mesh.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\PixelMap.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\PixelMapTextureBuilder.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\RectangleModel.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Resource.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\SelectionModel.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Sprite.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\System.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\TextTextureBuilder.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Texture.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Timer.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\VBMeshBuilder.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Vector2D.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Vector3D.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Window.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\WindowSystem.cpp"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="\83w\83b\83_\81[ \83t\83@\83C\83\8b"\r
- Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
- >\r
- <File\r
- RelativePath=".\AbstractScene.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\AmbientLight.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Animation.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\AnimationScheduler.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\BackGroundModel.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Billboard.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Button.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\ButtonListener.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Camera.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Capturer.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\CascadeAnimation.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Color.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Component2D.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Component3D.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\ConsoleIO.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Container2D.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Container3D.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\CSVFile.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\DataTable.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\DeviceInputReceiver.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\DirectionalLight.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\FileMeshBuilder.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\FilePath.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\FileTextureBuilder.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Frame.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\GeneralMap.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Graphics.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\GraphicsDevice.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\GraphicsObject.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\GraphicsSchedule.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\HardVertexBuffer.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\HardVertexBufferImpl.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\InputDevice.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\InputReceiver.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Interpolation.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\InterpolationImpl.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\KeyFrameAnimation.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\LayoutManager.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Light.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Line2D.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Line3D.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\List.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\LoggedInputReceiver.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\LoggingInputReceiver.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Material.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Matrix3D.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Mesh.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\MeshBuilder.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\MeshResource.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\PixelMap.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\PixelMapTextureBuilder.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\RectangleModel.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Resource.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\ResourceManager.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\SelectionModel.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\SoftVertexBuffer.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\SoftVertexBufferImpl.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Sprite.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\SquareMap.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\System.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\TextTextureBuilder.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Texture.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\TextureBuilder.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\TextureResource.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Timer.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\tstring.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\VBMeshBuilder.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Vector2D.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Vector3D.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\VertexBuffer.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\VertexFVF.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\VertexTypes.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\Window.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath=".\WindowSystem.h"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="\83\8a\83\\81[\83X \83t\83@\83C\83\8b"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+++ /dev/null
-<?xml version="1.0" encoding="shift_jis"?>\r
-<VisualStudioUserFile\r
- ProjectType="Visual C++"\r
- Version="8.00"\r
- ShowAllFiles="false"\r
- >\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- >\r
- <DebugSettings\r
- Command="$(TargetPath)"\r
- WorkingDirectory=""\r
- CommandArguments=""\r
- Attach="false"\r
- DebuggerType="3"\r
- Remote="1"\r
- RemoteMachine="TOMOHIRO"\r
- RemoteCommand=""\r
- HttpUrl=""\r
- PDBPath=""\r
- SQLDebugging=""\r
- Environment=""\r
- EnvironmentMerge="true"\r
- DebuggerFlavor=""\r
- MPIRunCommand=""\r
- MPIRunArguments=""\r
- MPIRunWorkingDirectory=""\r
- ApplicationCommand=""\r
- ApplicationArguments=""\r
- ShimCommand=""\r
- MPIAcceptMode=""\r
- MPIAcceptFilter=""\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- >\r
- <DebugSettings\r
- Command="$(TargetPath)"\r
- WorkingDirectory=""\r
- CommandArguments=""\r
- Attach="false"\r
- DebuggerType="3"\r
- Remote="1"\r
- RemoteMachine="TOMOHIRO"\r
- RemoteCommand=""\r
- HttpUrl=""\r
- PDBPath=""\r
- SQLDebugging=""\r
- Environment=""\r
- EnvironmentMerge="true"\r
- DebuggerFlavor=""\r
- MPIRunCommand=""\r
- MPIRunArguments=""\r
- MPIRunWorkingDirectory=""\r
- ApplicationCommand=""\r
- ApplicationArguments=""\r
- ShimCommand=""\r
- MPIAcceptMode=""\r
- MPIAcceptFilter=""\r
- />\r
- </Configuration>\r
- </Configurations>\r
-</VisualStudioUserFile>\r
+++ /dev/null
-#pragma once\r
-#include "mof/InputReceiver.hpp"\r
-\r
-\r
-namespace mof{\r
- struct InputEvent{\r
- InputEvent(unsigned int _dwOfs , unsigned int _dwData){\r
- dwOfs = _dwOfs;\r
- dwData = _dwData;\r
- }\r
- unsigned int dwOfs;\r
- unsigned int dwData;\r
- };\r
-\r
- class DeviceInputReceiver : public InputReceiver\r
- {\r
- bool* m_pKeyStates;\r
- public:\r
- \r
- DeviceInputReceiver();\r
- virtual ~DeviceInputReceiver();\r
- virtual bool testKeyState(mof::InputReceiver::Key key);\r
- virtual void update();\r
- void notifyInputEvent(InputEvent& iEvent);\r
- };\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#pragma\r
-\r
-#pragma comment(lib , "dinput8.lib")\r
-#pragma comment(lib , "dxguid.lib")\r
-\r
-#define DIRECTINPUT_VERSION 0x0800\r
-#include <windows.h>\r
-#include <dinput.h>
\ No newline at end of file
+++ /dev/null
-\r
-#include "mof/private/FileTextureBuilder.hpp"\r
-#include <d3dx9.h>\r
-#include <dxerr9.h>\r
-#include "mof/private/GraphicsDeviceImpl.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-\r
-mof::FileTextureBuilder::FileTextureBuilder( const mof::tstring& path)\r
-{\r
- m_path = path;\r
- \r
-}\r
-\r
-mof::FileTextureBuilder::~FileTextureBuilder(void)\r
-{\r
-}\r
-\r
-\r
-LPDIRECT3DTEXTURE9 mof::FileTextureBuilder::create(){\r
- LPDIRECT3DTEXTURE9 texture;\r
- LPDIRECT3DDEVICE9 pDevice = mof::GraphicsDevice::getRawDevice();\r
- HRESULT hr = D3DXCreateTextureFromFileEx(pDevice , m_path.c_str() , \r
- 0 , 0 , 1 , 0/*RENDER*/ , D3DFMT_UNKNOWN , D3DPOOL_MANAGED ,\r
- D3DX_DEFAULT , D3DX_DEFAULT , mof::createColor(0 , 0 , 0) , NULL , NULL , &texture);\r
-\r
- if(FAILED(hr))throw std::runtime_error("Failed --- CreateTextureFromFileEx");\r
- \r
- return texture; \r
-\r
- \r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#ifndef MOF_FILE_TEXTURE_BUILDER_HPP\r
-#define MOF_FILE_TEXTURE_BUILDER_HPP\r
-\r
-#include "mof/private/TextureBuilder.hpp"\r
-#include "mof/tstring.hpp"\r
-\r
-namespace mof{\r
- \r
- class FileTextureBuilder : public TextureBuilder\r
- {\r
- mof::tstring m_path;\r
- public:\r
- FileTextureBuilder( const mof::tstring& path);\r
- virtual ~FileTextureBuilder(void);\r
- virtual LPDIRECT3DTEXTURE9 create();\r
- };\r
-\r
-\r
-};\r
-\r
-#endif
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-\r
-#include <windows.h>\r
-#include "mof/GraphicsDevice.hpp"\r
-\r
-#include <d3dx9.h>\r
-#pragma comment(lib, "d3dxof.lib")\r
-#pragma comment(lib , "dxguid.lib")\r
-#pragma comment(lib , "d3dx9dt.lib")\r
-#pragma comment(lib , "d3d9.lib")\r
-#pragma comment(lib , "dxerr9.lib")\r
-\r
-namespace mof\r
-{\r
- class Window;\r
- \r
- namespace GraphicsDevice\r
- {\r
- // private\r
- void initialize(const Window& window , int width , int height , bool fullscreen);\r
- void finalize();\r
- void beginScene();\r
- void endScene();\r
- LPDIRECT3DDEVICE9 getRawDevice( );\r
- }\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "../Interpreter.hpp"\r
-\r
-namespace mof\r
-{\r
- namespace Interpreter\r
- {\r
- \r
- int _createMessageWidget( );\r
- \r
- int _addMessageWidgetPage\r
- ( \r
- int id ,\r
- const tstring& title ,\r
- const tstring& text \r
- );\r
- \r
- int _hideMessageWidget( int id );\r
- \r
- void _waitKey( const tstring& keystring );\r
-\r
- void _waitFrame( int frame );\r
- }\r
-}\r
-\r
-\r
+++ /dev/null
-#pragma once\r
-#include "../Interpreter.hpp"\r
-\r
-namespace mof\r
-{\r
- namespace Interpreter\r
- {\r
- \r
- int _createMessageWidget();\r
- \r
- int _addMessageWidgetPage\r
- ( \r
- int id ,\r
- const tstring& title ,\r
- const tstring& text \r
- );\r
- \r
- int _hideMessageWidget( int id );\r
- \r
- void _waitKey( const tstring& keystring );\r
-\r
- void _waitFrame( int frame );\r
- }\r
-}\r
-\r
-\r
+++ /dev/null
-#ifndef MOF_MESH_HPP\r
-#define MOF_MESH_HPP\r
-#include <d3d9.h>\r
-#include "mof/Graphics3D.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/Material.hpp"\r
-#include "mof/Texture.hpp"\r
-#include "mof/DefaultAnimationPlayer.hpp"\r
-\r
-namespace mof{\r
-\r
-struct MeshDisposer;\r
-\r
-class Mesh : public Graphics3D , public DefaultAnimationPlayer{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
-public :\r
- Mesh(\r
- boost::shared_ptr<mof::MeshDisposer> pMeshDisposer ,\r
- unsigned long nMaterials ,\r
- const boost::shared_ptr<mof::Material>* pMaterials , \r
- const boost::shared_ptr<mof::Texture>* pTextures );\r
- virtual ~Mesh();\r
-\r
- virtual void setWorldMatrix(const mof::Animation<mof::Matrix3D>::Handler& handler);\r
- virtual void setTexture( \r
- unsigned int num ,\r
- const boost::shared_ptr<mof::Texture>& pTexture);\r
-\r
- virtual bool isVisible() const;\r
- virtual void update();\r
- virtual void draw() const;\r
- //virtual bool isDisposable() const;\r
-\r
-};\r
-\r
-}\r
-\r
-#endif
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include <d3d9.h>\r
-#include <d3dx9.h>\r
-\r
-namespace mof{\r
-\r
-struct MeshDisposer{\r
- \r
- LPD3DXMESH pMesh; //\83\81\83b\83V\83\85\r
- LPD3DXBUFFER pAdjacency; //\83\81\83b\83V\83\85\82É\8aÜ\82Ü\82ê\82é\8ae\96Ê\82Ì\97×\90Ú\96Ê\82ð\8ai\94[\82·\82é\83|\83C\83\93\83^\r
-\r
- ~MeshDisposer(){\r
- if(pAdjacency != NULL)pAdjacency->Release();\r
- if(pMesh != NULL)pMesh->Release();\r
- }\r
-};\r
-\r
-}\r
+++ /dev/null
-#ifndef MOF_PIXEL_TEXTURE_BUILDER_HPP\r
-#define MOF_PIXEL_TEXTURE_BUILDER_HPP\r
-\r
-#include "mof/private/TextureBuilder.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <boost/shared_ptr.hpp>\r
-#include "mof/PixelMap.hpp"\r
-\r
-namespace mof{\r
-\r
- class PixelMapTextureBuilder : public TextureBuilder\r
- {\r
- boost::shared_ptr<mof::PixelMap> m_pPixelMap;\r
- public:\r
- PixelMapTextureBuilder( const boost::shared_ptr<mof::PixelMap>& pPixelMap);\r
- virtual ~PixelMapTextureBuilder();\r
- virtual LPDIRECT3DTEXTURE9 create();\r
- };\r
-\r
-\r
-};\r
-\r
-#endif
\ No newline at end of file
+++ /dev/null
-#ifndef MOF_TEXTURE_BUILDER_HPP\r
-#define MOF_TEXTURE_BUILDER_HPP\r
-#include <d3d9.h>\r
-\r
-namespace mof{\r
- \r
- class TextureBuilder\r
- {\r
- public:\r
- virtual ~TextureBuilder(){}\r
- virtual LPDIRECT3DTEXTURE9 create() = 0;\r
- };\r
-\r
-\r
-}\r
-\r
-#endif
\ No newline at end of file
+++ /dev/null
-#ifndef MOF_TEXTURE_IMPL_HPP\r
-#define MOF_TEXTURE_IMPL_HPP\r
-#include "Texture.hpp"\r
-\r
-\r
-#include "mof/GraphicsDevice.hpp"\r
-#include <d3dx9.h>\r
-\r
-\r
-struct mof::Texture::Impl{\r
- LPDIRECT3DTEXTURE9 pTexture;\r
- int width , height;\r
-\r
- Impl() : pTexture(NULL) , width(0) , height(0){}\r
- ~Impl(){\r
- if(pTexture != NULL)pTexture->Release();\r
- }\r
-};\r
-\r
-#endif
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "VertexTypes.hpp"\r
-#include <d3dx9.h>\r
-\r
-\r
-namespace mof{\r
-\r
-template<class T>\r
-DWORD getFVF();\r
-\r
-template<>\r
-inline DWORD getFVF<VertexXYZRHWCUV>(){\r
- return D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1;\r
-}\r
-\r
-template<>\r
-inline DWORD getFVF<VertexXYZRHWC>(){\r
- return D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX0;\r
-}\r
-\r
-template<>\r
-inline DWORD getFVF<VertexXYZCUV>(){\r
- return D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1;\r
-}\r
-\r
-template<>\r
-inline DWORD getFVF<VertexXYZNUV>(){\r
- return D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1;\r
-}\r
-\r
-template<>\r
-inline DWORD getFVF<VertexXYZC>(){\r
- return D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX0;\r
-}\r
-\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#pragma once \r
-#include "mof/tstring.hpp"\r
-#include "luabind/luabind.hpp"\r
-#include <boost/bind.hpp>\r
-\r
-struct lua_State;\r
-\r
-namespace mof\r
-{\r
- namespace command\r
- {\r
- void registMessage( lua_State* l );\r
- }\r
-}\r
+++ /dev/null
-#include "mof/Interpreter.hpp"\r
-#include "mof/private/Interpreter.hpp"\r
-#include "mof/private/commands.hpp"\r
-#include "luabind/luabind.hpp"\r
-\r
-namespace mof\r
-{\r
-//{{{ _messageNewImplGlue old\r
-/* int _messageNewImplGlue( lua_State* l ){\r
- int n = lua_gettop(l);\r
- if(!lua_isstring(l , 1))throw std::runtime_error("invalid call");\r
- if(!lua_istable(l , 2))throw std::runtime_error("invalid call");\r
- mof::tstring title = lua_tostring(l , 1);\r
- \r
- std::vector<mof::tstring> texts;\r
- for(int i = 1 ; ; i++){\r
- lua_pushnumber(l , i);\r
- lua_gettable(l , -2);\r
- if(lua_isnil(l , -1))break;\r
- if(!lua_isstring(l , -1))throw std::runtime_error("invalid call");\r
- texts.push_back(lua_tostring(l , -1));\r
- lua_pop(l , 1);\r
- }\r
- lua_pop(l , n);\r
-\r
- m_pMenu = m_pInstructionSet->createMessageWidget(title , texts.at(0)) ;\r
- //m_pMenu.push_back( m_pInstructionSet->createMessageWidget(title , texts.at(0)) );\r
- return 0;\r
- } */\r
-//}}}\r
-//{{{ registMessage\r
- void command::registMessage( lua_State* l )\r
- {\r
- luabind::module( l )[ luabind::def( "messageNewImpl" , mof::Interpreter::_createMessageWidget ) ];\r
- luabind::module( l )[ luabind::def( "messagePageImpl" , mof::Inerpreter::_addMessageWidgetPage ) ];\r
- luabind::module( l )[ luabind::def( "messageHideImpl" , mof::Interpreter::_hideMessageWidget ) ];\r
-\r
- }\r
-//}}}\r
-}\r
+++ /dev/null
-#include "mof/Interpreter.hpp"\r
-#include "mof/private/Interpreter.hpp"\r
-#include "mof/private/regist.hpp"\r
-#include "luabind/luabind.hpp"\r
-\r
-namespace mof\r
-{\r
-//{{{ _messageNewImplGlue old\r
-/* int _messageNewImplGlue( lua_State* l ){\r
- int n = lua_gettop(l);\r
- if(!lua_isstring(l , 1))throw std::runtime_error("invalid call");\r
- if(!lua_istable(l , 2))throw std::runtime_error("invalid call");\r
- mof::tstring title = lua_tostring(l , 1);\r
- \r
- std::vector<mof::tstring> texts;\r
- for(int i = 1 ; ; i++){\r
- lua_pushnumber(l , i);\r
- lua_gettable(l , -2);\r
- if(lua_isnil(l , -1))break;\r
- if(!lua_isstring(l , -1))throw std::runtime_error("invalid call");\r
- texts.push_back(lua_tostring(l , -1));\r
- lua_pop(l , 1);\r
- }\r
- lua_pop(l , n);\r
-\r
- m_pMenu = m_pInstructionSet->createMessageWidget(title , texts.at(0)) ;\r
- //m_pMenu.push_back( m_pInstructionSet->createMessageWidget(title , texts.at(0)) );\r
- return 0;\r
- } */\r
-//}}}\r
-//{{{ registMessage\r
- void regist::registMessage( lua_State* l )\r
- {\r
- luabind::module( l )[ luabind::def( "messageNewImpl" , mof::Interpreter::_createMessageWidget ) ];\r
- luabind::module( l )[ luabind::def( "messagePageImpl" , mof::Interpreter::_addMessageWidgetPage ) ];\r
- luabind::module( l )[ luabind::def( "messageHideImpl" , mof::Interpreter::_hideMessageWidget ) ];\r
-\r
- }\r
-//}}}\r
-//{{{ registWait\r
- void regist::registWait( lua_State* l )\r
- {\r
- luabind::module( l )[ luabind::def( "waitFrameImpl" , mof::Interpreter::_waitFrame ) ];\r
- luabind::module( l )[ luabind::def( "waitKeyImpl" , mof::Interpreter::_waitKey ) ];\r
-\r
- }\r
-//}}}\r
-}\r
+++ /dev/null
-#include "mof/Interpreter.hpp"\r
-#include "mof/private/Interpreter.hpp"\r
-#include "mof/private/regist.hpp"\r
-#include "luabind/luabind.hpp"\r
-\r
-namespace mof\r
-{\r
-//{{{ _messageNewImplGlue old\r
-/* int _messageNewImplGlue( lua_State* l ){\r
- int n = lua_gettop(l);\r
- if(!lua_isstring(l , 1))throw std::runtime_error("invalid call");\r
- if(!lua_istable(l , 2))throw std::runtime_error("invalid call");\r
- mof::tstring title = lua_tostring(l , 1);\r
- \r
- std::vector<mof::tstring> texts;\r
- for(int i = 1 ; ; i++){\r
- lua_pushnumber(l , i);\r
- lua_gettable(l , -2);\r
- if(lua_isnil(l , -1))break;\r
- if(!lua_isstring(l , -1))throw std::runtime_error("invalid call");\r
- texts.push_back(lua_tostring(l , -1));\r
- lua_pop(l , 1);\r
- }\r
- lua_pop(l , n);\r
-\r
- m_pMenu = m_pInstructionSet->createMessageWidget(title , texts.at(0)) ;\r
- //m_pMenu.push_back( m_pInstructionSet->createMessageWidget(title , texts.at(0)) );\r
- return 0;\r
- } */\r
-//}}}\r
-//{{{ registMessage\r
- void regist::registMessage( lua_State* l )\r
- {\r
- luabind::module( l )[ luabind::def( "messageNewImpl" , mof::Interpreter::_createMessageWidget ) ];\r
- luabind::module( l )[ luabind::def( "messagePageImpl" , mof::Interpreter::_addMessageWidgetPage ) ];\r
- luabind::module( l )[ luabind::def( "messageHideImpl" , mof::Interpreter::_hideMessageWidget ) ];\r
-\r
- }\r
-//}}}\r
-//{{{ registWait\r
- void regist::registWait( lua_State* l )\r
- {\r
- luabind::module( l )[ luabind::def( "waitFrameImpl" , mof::Interpreter::_waitFrame ) ];\r
- luabind::module( l )[ luabind::def( "waitKeyImpl" , mof::Interpreter::_waitKey ) ];\r
-\r
- }\r
-//}}}\r
-}\r
+++ /dev/null
-#pragma once \r
-#include "mof/tstring.hpp"\r
-\r
-struct lua_State;\r
-\r
-namespace mof\r
-{\r
- namespace regist\r
- {\r
- void registMessage( lua_State* l );\r
- void registWait( lua_State* l );\r
- }\r
-}\r
+++ /dev/null
-#pragma once \r
-#include "mof/tstring.hpp"\r
-\r
-struct lua_State;\r
-\r
-namespace mof\r
-{\r
- namespace command\r
- {\r
- void registMessage( lua_State* l );\r
- }\r
-}\r
+++ /dev/null
-#pragma once\r
-\r
-namespace mof\r
-{\r
- typedef float real;\r
-\r
- inline real int2real(int v)\r
- {\r
- return static_cast<real>(v);\r
- }\r
- \r
- inline int real2int(real v)\r
- {\r
- return static_cast<int>(v);\r
- }\r
-}\r
+++ /dev/null
- #pragma once\r
- #include <boost/shared_ptr.hpp>\r
- #include <boost/utility.hpp>\r
- \r
- namespace mof{\r
- \r
- typedef unsigned int FrameNumber;\r
- \r
- /**\r
- * \83A\83j\83\81\81[\83V\83\87\83\93\83N\83\89\83X\82Í\95¡\90\94\83C\83\93\83X\83^\83\93\83X\8aÔ\82Å\8b¤\97L\82Å\82«\82é\82æ\82¤\82É\82·\82é\82½\82ß\82É\81A\r
- * update()\82ð\8cÄ\82Ñ\8fo\82µ\82Ä\93à\97e\82ð\8f\91\82«\8a·\82¦\82é\8b@\8d\\82É\82Í\82·\82×\82«\82Å\82Í\82È\82¢\r
- *\r
- */\r
- template<typename T>\r
- class Animation : boost::noncopyable{\r
- public:\r
- typedef boost::shared_ptr<mof::Animation<T> > Handler;\r
- \r
- virtual T getValue(mof::FrameNumber) const = 0;\r
- \r
- };\r
- \r
- \r
- } // namespace mof\r
+++ /dev/null
-#ifndef MOF_ANIMATION_PLAYER_HPP\r
-#define MOF_ANIMATION_PLAYER_HPP\r
-#include "mof/Animation.hpp"\r
-\r
-namespace mof{\r
-\r
-\r
-class AnimationPlayer{\r
-\r
-public:\r
- virtual void setFrameNumber(mof::FrameNumber frame) = 0;\r
- virtual void nextFrame() = 0;\r
- virtual void prevFrame() = 0;\r
- //virtual void reset(){setFrameNumber(0);}\r
-};\r
-\r
-}\r
-\r
-\r
-#endif\r
+++ /dev/null
-#ifndef MOF_ANIMATION_PLAYER_HPP\r
-#define MOF_ANIMATION_PLAYER_HPP\r
-#include "mof/Animation.hpp"\r
-\r
-namespace mof{\r
-\r
-\r
-class AnimationPlayer{\r
-\r
-public:\r
- virtual void setFrameNumber(mof::FrameNumber frame) = 0;\r
- virtual void nextFrame() = 0;\r
- virtual void prevFrame() = 0;\r
- //virtual void reset(){setFrameNumber(0);}\r
-};\r
-\r
-}\r
-\r
-\r
-#endif\r
+++ /dev/null
-#include "mof/AnimationScheduler.h"\r
-#include "mof/ConsoleIO.h"\r
-\r
-typedef std::multimap<mof::AnimationKey , mof::AnimationResource>::iterator MapItr;\r
-\r
-mof::AnimationScheduler::AnimationScheduler(){\r
- m_key = 0;\r
-\r
-}\r
-\r
-mof::AnimationScheduler::~AnimationScheduler(){\r
-\r
-}\r
-\r
-void mof::AnimationScheduler::update(){\r
- \r
- std::pair<MapItr , MapItr> range(m_map.begin() , m_map.upper_bound(m_key));\r
- for(MapItr itr = range.first ; itr != range.second ; ++itr){\r
- if(itr->second.get() != NULL && !itr->second->isPlaying())itr->second->start();\r
- }\r
- \r
- m_key++;\r
-}\r
-\r
-void mof::AnimationScheduler::add(int index , mof::AnimationResource pAnimation){\r
- if(pAnimation.get() != NULL)pAnimation->stop();\r
- m_map.insert(std::multimap<mof::AnimationKey , mof::AnimationResource>::value_type(index , pAnimation));\r
-\r
-}\r
- \r
-bool mof::AnimationScheduler::isFinalized(){\r
- for(MapItr itr = m_map.begin() ; itr != m_map.end() ; ++itr){\r
- if(!itr->second->isFinalized())return false;\r
- }\r
- return true;\r
-}\r
-\r
-void mof::AnimationScheduler::clear(){\r
- m_key = 0;\r
- m_map.clear();\r
-}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "mof/KeyFrameAnimation.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include "mof/Vector2D.hpp"\r
-\r
-namespace mof\r
-{\r
- class BoundsAnimation : public mof::Animation< mof::Rectangle<int> >\r
- {\r
- public:\r
-\r
- BoundsAnimation\r
- (\r
- const mof::Animation<mof::Vector2D>::Handler& position ,\r
- const mof::Animation<mof::Vector2D>::Handler& scale \r
- )\r
- : m_position( position) , m_scale( scale )\r
- {\r
- }\r
-\r
- mof::Rectangle<int> getValue( mof::FrameNumber frame ) const\r
- {\r
- mof::Vector2D position = m_position->getValue( frame );\r
- mof::Vector2D scale = m_scale->getValue( frame );\r
- return mof::Rectangle<int>\r
- (\r
- position.x , position.y ,\r
- position.x + scale.x ,\r
- position.y + scale.y \r
- );\r
- }\r
-\r
- private:\r
-\r
- mof::Animation<mof::Vector2D>::Handler m_position;\r
- mof::Animation<mof::Vector2D>::Handler m_scale;\r
- };\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/KeyFrameAnimation.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include "mof/Vector2D.hpp"\r
-\r
-namespace mof\r
-{\r
- class BoundsAnimation : public mof::Animation< mof::Rectangle<int> >\r
- {\r
- public:\r
-\r
- BoundsAnimation\r
- (\r
- const mof::Animation<mof::Vector2D>::Handler& position ,\r
- const mof::Animation<mof::Vector2D>::Handler& scale \r
- )\r
- : m_position( position) , m_scale( scale )\r
- {\r
- }\r
-\r
- mof::Rectangle<int> getValue( mof::FrameNumber frame ) const\r
- {\r
- mof::Vector2D position = m_position->getValue( frame );\r
- mof::Vector2D scale = m_scale->getValue( frame );\r
- return mof::Rectangle<int>\r
- (\r
- position.x , position.y ,\r
- position.x + scale.x ,\r
- position.y + scale.y \r
- );\r
- }\r
-\r
- private:\r
-\r
- mof::Animation<mof::Vector2D>::Handler m_position;\r
- mof::Animation<mof::Vector2D>::Handler m_scale;\r
- };\r
-}\r
+++ /dev/null
-#include <mof/stream/Cache.hpp>\r
-\r
-namespace \r
-{\r
- bool caching = true;\r
-}\r
-\r
-namespace mof\r
-{\r
- void setCaching(bool b)\r
- {\r
- caching = b;\r
- }\r
-\r
- bool getCaching()\r
- {\r
- return caching;\r
- }\r
-}\r
+++ /dev/null
-#include <mof/stream/Cache.hpp>\r
-\r
-namespace \r
-{\r
- bool g_caching = true;\r
-}\r
-\r
-namespace mof\r
-{\r
- void setCaching(bool b)\r
- {\r
- g_caching = b;\r
- }\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-namespace mof{\r
-\r
- void setCaching(bool b);\r
- bool getCaching();\r
- \r
- \r
- template< typename T >\r
- class Cache : public Manipulator< T >\r
- {\r
- \r
- public:\r
- typedef typename boost::shared_ptr<Cache> Handler;\r
- \r
- virtual ~Cache( ){}\r
-\r
- virtual T value( FrameNumber frame ) const\r
- {\r
- if(getCaching())\r
- {\r
- if(m_lastFrame == (int)frame)return m_cached;\r
- m_lastFrame = (int)frame;\r
- m_cached = m_pBody->value(frame);\r
- return m_cached;\r
- }\r
- else\r
- {\r
- return m_pBody->value(frame);\r
- }\r
- }\r
-\r
-\r
- private:\r
- typename Manipulator<T>::Handler m_pBody;\r
- mutable int m_lastFrame;\r
- mutable T m_cached;\r
-\r
-\r
- Cache(const typename Manipulator<T>::Handler& pBody)\r
- : m_pBody(pBody) , m_lastFrame(-1)\r
- {\r
- }\r
-\r
- template<typename T > friend\r
- typename boost::shared_ptr< Cache<T> > makeCacheHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody \r
- );\r
-\r
- };\r
-\r
-\r
-\r
- template< typename T >\r
- boost::shared_ptr< Cache< T > > makeCacheHandler\r
- (\r
- const typename Manipulator< T >::Handler& pBody \r
- )\r
- {\r
- return typename Cache< T >::Handler(\r
- new Cache< T >( pBody )\r
- );\r
- }\r
-\r
-\r
-} //namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-namespace mof{\r
-\r
- void setCaching(bool b);\r
- bool getCaching();\r
- \r
- \r
- template< typename T >\r
- class Cache : public Manipulator< T >\r
- {\r
- \r
- public:\r
- typedef typename boost::shared_ptr<Cache> Handler;\r
- \r
- virtual ~Cache( ){}\r
-\r
- virtual T value( FrameNumber frame ) const\r
- {\r
- if(getCaching())\r
- {\r
- //if(m_lastFrame == (int)frame)return m_cached;\r
- m_lastFrame = (int)frame;\r
- m_cached = m_pBody->value(0);\r
- return m_cached;\r
- }\r
- else\r
- {\r
- return m_pBody->value(0);\r
- }\r
- }\r
-\r
-\r
- private:\r
- typename Manipulator<T>::Handler m_pBody;\r
- mutable int m_lastFrame;\r
- mutable T m_cached;\r
-\r
-\r
- Cache(const typename Manipulator<T>::Handler& pBody)\r
- : m_pBody(pBody) , m_lastFrame(-1)\r
- {\r
- }\r
-\r
- template<typename T > friend\r
- typename boost::shared_ptr< Cache<T> > makeCacheHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody \r
- );\r
-\r
- };\r
-\r
-\r
-\r
- template< typename T >\r
- boost::shared_ptr< Cache< T > > makeCacheHandler\r
- (\r
- const typename Manipulator< T >::Handler& pBody \r
- )\r
- {\r
- return typename Cache< T >::Handler(\r
- new Cache< T >( pBody )\r
- );\r
- }\r
-\r
-\r
-} //namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-#include <vector> \r
-\r
-namespace mof\r
-{\r
- #define DEFAULT_CASCADOR Multiply\r
-//{{{ struct Add\r
- template<typename T>\r
- struct Add\r
- {\r
- inline static T apply(const T& a , const T& b)\r
- {\r
- return a + b;\r
- }\r
- };\r
-//}}}\r
-//{{{ struct Multiply\r
- template<typename T>\r
- struct Multiply\r
- {\r
- inline static T apply(const T& a , const T& b)\r
- {\r
- return a * b;\r
- }\r
- };\r
-//}}}\r
-//{{{ struct Overwrite\r
- template<typename T>\r
- struct Overwrite\r
- {\r
- inline static T apply(const T& , const T& b)\r
- {\r
- return b;\r
- }\r
- };\r
-//}}}\r
-//{{{ class Cascade\r
- template< typename T , class Cascador = DEFAULT_CASCADOR< T > >\r
- class Cascade : public Manipulator< T >{\r
- public:\r
- typedef typename boost::shared_ptr< Cascade > Handler;\r
-\r
- virtual ~Cascade()\r
- {\r
- }\r
-\r
- virtual T value( FrameNumber frame) const\r
- {\r
- T obj = m_list[0]->value(frame);\r
- for(unsigned int i = 1 ; i < m_list.size() ; i++)\r
- {\r
- obj = Cascador::apply(obj , m_list[i]->value(frame));\r
- }\r
- return obj;\r
- }\r
-\r
- void clear()\r
- {\r
- m_list.clear();\r
- }\r
-\r
- void add( const typename Manipulator<T>::Handler& handler )\r
- {\r
- m_list.push_back( handler );\r
- }\r
-\r
- private: \r
- typedef std::vector< typename Manipulator< T >::Handler > List;\r
- List m_list;\r
- \r
- Cascade\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- )\r
- {\r
- int length = &back - &front + 1;\r
- if(length <= 0)throw std::invalid_argument("list size is 0");\r
-\r
- for( int i = 0 ; i < length ; i++)\r
- {\r
- m_list.push_back( (&front)[i] );\r
- }\r
- }\r
- \r
-\r
- Cascade(){}\r
- \r
- template< typename T , class Cascador >\r
- friend typename boost::shared_ptr< Cascade< T , Cascador > >\r
- makeCascadeHandler\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- );\r
-\r
- template< typename T , class Cascador >\r
- friend typename boost::shared_ptr< Cascade< T , Cascador > > makeCascadeHandler();\r
-\r
-\r
- };\r
-//}}}\r
-//{{{ ヘルパ関数 \r
- template< typename T , class Cascador >\r
- boost::shared_ptr< Cascade< T , Cascador > >\r
- makeCascadeHandler\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- )\r
- {\r
- return typename Cascade< T , Cascador >::Handler\r
- (\r
- new Cascade< T , Cascador >( front , back ) \r
- );\r
- }\r
- \r
- template< typename T , class Cascador >\r
- typename boost::shared_ptr< Cascade< T , Cascador > >\r
- makeCascadeHandler( )\r
- {\r
- return typename Cascade< T , Cascador >::Handler\r
- (\r
- new Cascade< T , Cascador >\r
- );\r
- }\r
-\r
- template<typename T >\r
- typename boost::shared_ptr< Cascade< T , DEFAULT_CASCADOR< T > > >\r
- makeCascadeHandler\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- )\r
- {\r
- return makeCascadeHandler< T , DEFAULT_CASCADOR< T > >( front , back );\r
- }\r
- \r
- template<typename T >\r
- typename boost::shared_ptr< Cascade< T , DEFAULT_CASCADOR< T > > >\r
- makeCascadeHandler( )\r
- {\r
- return makeCascadeHandler< T , DEFAULT_CASCADOR< T > >();\r
- }\r
-//}}}\r
-//{{{ ストリーム演算子\r
- template< typename T , class Cascador >\r
- boost::shared_ptr< Cascade< T , Cascador > >& \r
- operator << \r
- (\r
- boost::shared_ptr< Cascade< T , Cascador > >& a ,\r
- const typename Manipulator< T >::Handler& b \r
- )\r
- {\r
- a->add( b );\r
- return a;\r
- }\r
-\r
- template< typename T , class Cascador >\r
- typename boost::shared_ptr< Cascade< T , Cascador > >& \r
- operator << \r
- (\r
- boost::shared_ptr< Cascade< T , Cascador > >& a ,\r
- const T& b \r
- )\r
- {\r
- a->add( mof::makeConstantHandler( b ) );\r
- return a;\r
- }\r
-//}}}\r
-} //namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-#include <vector> \r
-\r
-namespace mof\r
-{\r
- #define DEFAULT_CASCADOR Multiply\r
-//{{{ struct Add\r
- template<typename T>\r
- struct Add\r
- {\r
- inline static T apply(const T& a , const T& b)\r
- {\r
- return a + b;\r
- }\r
- };\r
-//}}}\r
-//{{{ struct Multiply\r
- template<typename T>\r
- struct Multiply\r
- {\r
- inline static T apply(const T& a , const T& b)\r
- {\r
- return a * b;\r
- }\r
- };\r
-//}}}\r
-//{{{ struct Overwrite\r
- template<typename T>\r
- struct Overwrite\r
- {\r
- inline static T apply(const T& , const T& b)\r
- {\r
- return b;\r
- }\r
- };\r
-//}}}\r
-//{{{ class Cascade\r
- template< typename T , class Cascador = DEFAULT_CASCADOR< T > >\r
- class Cascade : public Manipulator< T >{\r
- public:\r
- typedef typename boost::shared_ptr< Cascade > Handler;\r
-\r
- virtual ~Cascade()\r
- {\r
- }\r
-\r
- virtual T value( FrameNumber frame) const\r
- {\r
- T obj = m_list[0]->value(frame);\r
- for(unsigned int i = 1 ; i < m_list.size() ; i++)\r
- {\r
- obj = Cascador::apply(obj , m_list[i]->value(frame));\r
- }\r
- return obj;\r
- }\r
-\r
- void clear()\r
- {\r
- m_list.clear();\r
- }\r
-\r
- void add( const typename Manipulator<T>::Handler& handler )\r
- {\r
- m_list.push_back( handler );\r
- }\r
-\r
- const typename Manipulator<T>::Handler get( int i )\r
- {\r
- return m_cascadeList.at(i);\r
- }\r
-\r
- \r
- private: \r
- typedef std::vector< typename Manipulator< T >::Handler > List;\r
- List m_list;\r
- \r
- Cascade\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- )\r
- {\r
- int length = &back - &front + 1;\r
- if(length <= 0)throw std::invalid_argument("list size is 0");\r
-\r
- for( int i = 0 ; i < length ; i++)\r
- {\r
- m_list.push_back( (&front)[i] );\r
- }\r
- }\r
- \r
-\r
- Cascade(){}\r
- \r
- template< typename T , class Cascador >\r
- friend typename boost::shared_ptr< Cascade< T , Cascador > >\r
- makeCascadeHandler\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- );\r
-\r
- template< typename T , class Cascador >\r
- friend typename boost::shared_ptr< Cascade< T , Cascador > > makeCascadeHandler();\r
-\r
-\r
- };\r
-//}}}\r
-//{{{ ヘルパ関数 \r
- template< typename T , class Cascador >\r
- boost::shared_ptr< Cascade< T , Cascador > >\r
- makeCascadeHandler\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- )\r
- {\r
- return typename Cascade< T , Cascador >::Handler\r
- (\r
- new Cascade< T , Cascador >( front , back ) \r
- );\r
- }\r
- \r
- template< typename T , class Cascador >\r
- typename boost::shared_ptr< Cascade< T , Cascador > >\r
- makeCascadeHandler( )\r
- {\r
- return typename Cascade< T , Cascador >::Handler\r
- (\r
- new Cascade< T , Cascador >\r
- );\r
- }\r
-\r
- template<typename T >\r
- typename boost::shared_ptr< Cascade< T , DEFAULT_CASCADOR< T > > >\r
- makeCascadeHandler\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- )\r
- {\r
- return makeCascadeHandler< T , DEFAULT_CASCADOR< T > >( front , back );\r
- }\r
- \r
- template<typename T >\r
- typename boost::shared_ptr< Cascade< T , DEFAULT_CASCADOR< T > > >\r
- makeCascadeHandler( )\r
- {\r
- return makeCascadeHandler< T , DEFAULT_CASCADOR< T > >();\r
- }\r
-//}}}\r
-//{{{ ストリーム演算子\r
- template< typename T , class Cascador >\r
- boost::shared_ptr< Cascade< T , Cascador > >& \r
- operator << \r
- (\r
- boost::shared_ptr< Cascade< T , Cascador > >& a ,\r
- const typename Manipulator< T >::Handler& b \r
- )\r
- {\r
- a->add( b );\r
- return a;\r
- }\r
-\r
- template< typename T , class Cascador >\r
- typename boost::shared_ptr< Cascade< T , Cascador > >& \r
- operator << \r
- (\r
- boost::shared_ptr< Cascade< T , Cascador > >& a ,\r
- const T& b \r
- )\r
- {\r
- a->add( mof::makeConstantHandler( b ) );\r
- return a;\r
- }\r
-//}}}\r
-} //namespace mof\r
-\r
+++ /dev/null
-\r
-#include "mof/CascadeAnimation.h"\r
-\r
-\r
-\r
-mof::CascadeAnimation::CascadeAnimation()\r
-: mof::Animation(false)\r
-{\r
- m_key = 0;\r
- m_maxKey = m_finalKey = 0;\r
-}\r
-\r
-mof::CascadeAnimation::~CascadeAnimation(){\r
-\r
-}\r
-\r
-void mof::CascadeAnimation::setElement(int index , mof::AnimationResource& pAnimation){\r
- if(m_pAnimations.size() <= index)m_pAnimations.resize(index+1);\r
- m_pAnimations.at(index) = pAnimation;\r
- \r
-}\r
-\r
-mof::AnimationResource mof::CascadeAnimation::getElement(int index){\r
- if(m_pAnimations.size() <= index)return mof::AnimationResource();\r
- else return m_pAnimations.at(index);\r
-}\r
-\r
-\r
-\r
-bool mof::CascadeAnimation::update(){\r
- if(!isPlaying())return false;\r
- m_key++;\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() != NULL)m_pAnimations.at(i)->update();\r
- }\r
- return true;\r
-}\r
-\r
-bool mof::CascadeAnimation::isFinalized(){\r
-\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- if(!m_pAnimations.at(i)->isFinalized())return false;\r
- }\r
- return true;\r
-}\r
-\r
-void mof::CascadeAnimation::setFinalKey(mof::AnimationKey key){\r
- if(key > m_maxKey)m_finalKey = m_maxKey;\r
- else m_finalKey = key;\r
-}\r
-\r
-/*\r
-mof::Vector2D mof::CascadeAnimation::getPosition(mof::Vector2D& position){\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- position = m_pAnimations.at(i)->getPosition(position);\r
- }\r
- return position;\r
-\r
-}*/\r
-\r
-mof::Vector2D mof::CascadeAnimation::getPosition(){\r
- mof::Vector2D position;\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- position = position + m_pAnimations.at(i)->getPosition();\r
- }\r
- return position;\r
-\r
-}\r
- \r
-float mof::CascadeAnimation::getWidth(){\r
- float result = 1.0f;\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- result *= m_pAnimations.at(i)->getWidth();\r
- }\r
- return result;\r
-}\r
-\r
-float mof::CascadeAnimation::getHeight(){\r
- float result = 1.0f;\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- result *= m_pAnimations.at(i)->getHeight();\r
- }\r
- return result;\r
-}\r
-\r
-\r
-float mof::CascadeAnimation::getDepth(){\r
- float result = 1.0f;\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- result *= m_pAnimations.at(i)->getDepth();\r
- }\r
- return result;\r
-}\r
-\r
-\r
- \r
-mof::Color mof::CascadeAnimation::getColor(){\r
- float a = 1.0f , r = 1.0f, g = 1.0f, b = 1.0f;\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- mof::Color tmp = m_pAnimations.at(i)->getColor();\r
- a = a * ((float)mof::getAlpha(tmp) / 255);\r
- r = r * ((float)mof::getRed(tmp) / 255);\r
- g = g * ((float)mof::getGreen(tmp) / 255);\r
- b = b * ((float)mof::getBlue(tmp) / 255);\r
- }\r
- return mof::createColor(a * 255 , r * 255 , g * 255 , b * 255);\r
-}\r
-\r
-\r
-mof::Matrix3D mof::CascadeAnimation::getWorldTransform(mof::Matrix3D& matrix){\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- matrix = m_pAnimations.at(i)->getWorldTransform(matrix);\r
- }\r
- return matrix;\r
-}\r
-\r
-\r
-mof::Line2D mof::CascadeAnimation::getTextureRectangle(){\r
- mof::Line2D result;\r
- for(int i = 0 ; i < m_pAnimations.size() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- mof::Line2D tmp = m_pAnimations.at(i)->getTextureRectangle();\r
- if(tmp != mof::Line2D())result = tmp;\r
- }\r
- return result;\r
-}\r
-\r
-\r
-void mof::CascadeAnimation::start(){\r
- for(int i = 0 ; i < getLength() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- if(!m_pAnimations.at(i)->isPlaying())m_pAnimations.at(i)->start();\r
- }\r
-}\r
- \r
-void mof::CascadeAnimation::stop(){\r
- for(int i = 0 ; i < getLength() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- if(m_pAnimations.at(i)->isPlaying())m_pAnimations.at(i)->stop();\r
- }\r
-}\r
-\r
-bool mof::CascadeAnimation::isPlaying(){\r
- if(getLength() == 0)return true;\r
- bool hasAnimation = false;\r
-\r
- for(int i = 0 ; i < getLength() ; i++){\r
- if(m_pAnimations.at(i).get() == NULL)continue;\r
- if(m_pAnimations.at(i)->isPlaying())return true;\r
- else hasAnimation = true;\r
- }\r
- return !hasAnimation;//\91S\97v\91f\82ªNULL\82È\82çtrue\r
-}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-#include <boost/function/function2.hpp>\r
-#include <vector> \r
-\r
-namespace mof\r
-{\r
-namespace stream\r
-{\r
-\r
- template<typename T>\r
- struct Add\r
- {\r
- inline static T apply(const T& a , const T& b){\r
- return a + b;\r
- }\r
- };\r
-\r
- template<typename T>\r
- struct Multiply\r
- {\r
- inline static T apply(const T& a , const T& b){\r
- return a * b;\r
- }\r
- };\r
-\r
- template<typename T , class Cascador = mof::Multiply<T> >\r
- class Cascade : public Manipulator<T>{\r
- typedef std::vector< typename Manipulator< T >::Handler > List;\r
- List m_list;\r
- public:\r
-\r
- virtual ~Cascade()\r
- {\r
- }\r
-\r
- virtual T value( mof::FrameNumber frame) const\r
- {\r
- T obj = m_list[0]->getValue(frame);\r
- for(unsigned int i = 1 ; i < m_cascadeList.size() ; i++){\r
- obj = Cascador::apply(obj , m_list[i]->value(frame));\r
- }\r
- return obj;\r
- }\r
-\r
- void clear()\r
- {\r
- m_list.clear();\r
- }\r
-\r
- void add( const typename Manipulator<T>::Handler& handler )\r
- {\r
-\r
- m_list.push_back( handler );\r
- }\r
-\r
- \r
- \r
- void set(int i , const typename Manipulator<T>::Handler& handler )\r
- {\r
-\r
- m_list.at(i) = handler;\r
- }\r
-\r
-\r
- const typename Manipulator<T>::Handler get(int i ){\r
- return m_cascadeList.at(i);\r
- }\r
-\r
- private: \r
- Cascade\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- )\r
- {\r
- int length = &back - &front + 1;\r
- if(length <= 0)throw std::invalid_argument("list size is 0");\r
-\r
- for( int i = 0 ; i < length ; i++){\r
- m_list.push_back( (&front)[i] );\r
- }\r
- }\r
-\r
- Cascade( ){}\r
-\r
- friend template< class T , class Cascador >\r
- mof::stream::Cascade< T , Cascador >::Handler \r
- operator << \r
- (\r
- mof::stream::Cascade< T , Cascador >::Handler a ,\r
- const mof::stream::Manipulator< T >::Handler& b \r
- );\r
-\r
- };\r
-\r
- template<typename T , class Cascador = mof::Multiply<T> >\r
- Cascade< T , Cascador > makeCascadeHandler\r
- (\r
- const typename Manipulator< T >::Handler& front , \r
- const typename Manipulator< T >::Handler& back \r
- )\r
- {\r
- return typename Cascade< T , Cascador >::Handler\r
- (\r
- new Cascade< T , Cascador >( front , back ); \r
- );\r
- }\r
- \r
- template<typename T , class Cascador = mof::Multiply<T> >\r
- Cascade< T , Cascador > makeCascadeHandler( )\r
- {\r
- return typename Cascade< T , Cascador >::Handler\r
- (\r
- new Cascade< T , Cascador >( ); \r
- );\r
- }\r
-\r
-\r
-} //namespace stream\r
-} //namespace mof\r
-\r
-template< class T , class Cascador >\r
-mof::stream::Cascade< T , Cascador >::Handler \r
-operator << \r
-(\r
- mof::stream::Cascade< T , Cascador >::Handler a ,\r
- const mof::stream::Manipulator< T >::Handler& b \r
-)\r
-{\r
- return a->add( b );\r
-}\r
-\r
-template< class T , class Cascador >\r
-mof::stream::Cascade< T , Cascador >::Handler \r
-operator << \r
-(\r
- mof::stream::Cascade< T , Cascador >::Handler a ,\r
- const T& b \r
-)\r
-{\r
- return a->add( mof::stream::makeConstantHandler( b ) );\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <mof/stream/Manipulator.hpp>\r
-\r
-namespace mof\r
-{\r
- template< typename T > class Constant;\r
-\r
- template< typename T >\r
- boost::shared_ptr< Constant<T> > makeConstantHandler(const T&);\r
-\r
-\r
- template< typename T >\r
- class Constant : public Manipulator< T >{\r
- public:\r
- typedef typename boost::shared_ptr< Constant< T > > Handler;\r
-\r
- virtual ~Constant( ){}\r
- \r
- virtual T value( FrameNumber ) const\r
- {\r
- return m_value;\r
- }\r
-\r
- private:\r
- T m_value;\r
- \r
- Constant(const T& value) : m_value(value)\r
- {\r
- }\r
-\r
- template< typename T >\r
- friend boost::shared_ptr< Constant<T> > makeConstantHandler(const T&);\r
- };\r
-\r
-//{{{ ヘルパ関数\r
- template<typename T>\r
- boost::shared_ptr< Constant<T> > makeConstantHandler( const T& value)\r
- {\r
- return typename Constant<T>::Handler(new Constant<T>(value));\r
- }\r
-//}}}\r
-\r
-} // namespace mof\r
-\r
-\r
+++ /dev/null
-#pragma once\r
-#include <mof/stream/Manipulator.hpp>\r
-\r
-namespace mof\r
-{\r
- template< typename T > class Constant;\r
-\r
- template< typename T >\r
- boost::shared_ptr< Constant<T> > makeConstantHandler(const T&);\r
-\r
-\r
- template< typename T >\r
- class Constant : public Manipulator< T >{\r
- public:\r
- typedef typename boost::shared_ptr< Constant< T > > Handler;\r
-\r
- virtual ~Constant( ){}\r
- \r
- virtual T value( FrameNumber ) const\r
- {\r
- return m_value;\r
- }\r
-\r
- private:\r
- T m_value;\r
- \r
- Constant(const T& value) : m_value(value)\r
- {\r
- }\r
-\r
- template< typename T >\r
- friend boost::shared_ptr< Constant<T> > makeConstantHandler(const T&);\r
- };\r
-\r
-//{{{ ヘルパ関数\r
- template<typename T>\r
- boost::shared_ptr< Constant<T> > makeConstantHandler( const T& value)\r
- {\r
- return typename Constant<T>::Handler( new Constant<T>( value ) );\r
- }\r
-//}}}\r
-\r
-} // namespace mof\r
-\r
-\r
+++ /dev/null
-#include "mof/DataBasedAnimation.h"\r
-#include "mof/KeyFrameAnimation.h"\r
-#include "mof/CSVFile.h"\r
-#include <boost/lexical_cast.hpp>\r
-\r
-\r
-mof::DataBasedAnimation::DataBasedAnimation(const TCHAR * const pPath , mof::Vector3D& denormalizeScale , bool isLooping )\r
-: mof::Animation(isLooping) , m_denormalizeScale(denormalizeScale){\r
- m_pBody = new KeyFrameAnimation(isLooping);\r
- m_pFile = new CSVFile(pPath);\r
- m_pFile->setIgnoreNL(false);\r
- m_pFile->nextLine();//1\8ds\96Ú\82Í\97ñ\92è\8b`\82È\82Ì\82Å\8eÌ\82Ä\82é\r
- loadNextKeyFrame();\r
- \r
-}\r
-\r
-mof::DataBasedAnimation::DataBasedAnimation(const TCHAR * const pPath , bool isLooping )\r
-: mof::Animation(isLooping) , m_denormalizeScale(1 , 1 , 1){\r
- m_pBody = new KeyFrameAnimation(isLooping);\r
- m_pFile = new CSVFile(pPath);\r
- m_pFile->setIgnoreNL(false);\r
- m_pFile->nextLine();//1\8ds\96Ú\82Í\97ñ\92è\8b`\82È\82Ì\82Å\8eÌ\82Ä\82é\r
- loadNextKeyFrame();\r
- \r
-}\r
-\r
-void mof::DataBasedAnimation::loadNextKeyFrame(){\r
- if(!m_pFile->hasNextValue())return;\r
- \r
- //KeyFrame\r
- int keyFrame = boost::lexical_cast<int>(m_pFile->getNextValue());\r
-\r
- //Position\r
- {\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring buf1 = m_pFile->getNextValue();\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring buf2 = m_pFile->getNextValue();\r
- if(buf1 != _T("") && buf2 != _T("")){\r
- mof::tstring buf3;\r
- if(m_pFile->hasNextValue())buf3 = m_pFile->getNextValue();\r
- if(buf3 != _T("")){\r
- //z\8dÀ\95W\82à\97L\8cø\82È\8fê\8d\87\82Í\82R\8e\9f\8c³\8dÀ\95W\82Æ\82µ\82Ä\88µ\82¤\r
- mof::Vector3D pos(\r
- boost::lexical_cast<float>(buf1) , boost::lexical_cast<float>(buf2) , boost::lexical_cast<float>(buf3));\r
- pos.x = pos.x * m_denormalizeScale.x;\r
- pos.y = pos.y * m_denormalizeScale.y;\r
- pos.z = pos.z * m_denormalizeScale.z;\r
- m_pBody->setPosition(keyFrame , pos);\r
- }\r
- else m_pBody->setPosition(keyFrame , mof::Vector2D(boost::lexical_cast<int>(buf1) , boost::lexical_cast<int>(buf2)));\r
- }\r
- else if(m_pFile->hasNextValue())m_pFile->getNextValue();//PositionZ\82ð\8eÌ\82Ä\82é\r
- }\r
-\r
- //Color\r
- {\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring buf1 = m_pFile->getNextValue();\r
- if(buf1 != _T("")){\r
- m_pBody->setColor(keyFrame , mof::createColor(buf1));\r
- }\r
- }\r
-\r
- //Texture\r
- {\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring tux = m_pFile->getNextValue();\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring tuy = m_pFile->getNextValue();\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring tvx = m_pFile->getNextValue();\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring tvy = m_pFile->getNextValue();\r
- if(tux != _T("") && tuy != _T("") && tvx != _T("") && tvy != _T("")){\r
- m_pBody->setTextureRectangle(keyFrame , mof::Line2D(\r
- boost::lexical_cast<int>(tux) , boost::lexical_cast<int>(tuy) ,\r
- boost::lexical_cast<int>(tvx) , boost::lexical_cast<int>(tvy)));\r
- }\r
- }\r
-\r
- //Scale\r
- {\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring buf1 = m_pFile->getNextValue();\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring buf2 = m_pFile->getNextValue();\r
- if(buf1 != _T("") && buf2 != _T("")){\r
- mof::tstring buf3;\r
- if(m_pFile->hasNextValue())buf3 = m_pFile->getNextValue();\r
- if(buf3 != _T("")){\r
- //\89\9c\8ds\82«\82à\97L\8cø\82È\8fê\8d\87\82Í\82R\8e\9f\8c³\8dÀ\95W\82Æ\82µ\82Ä\88µ\82¤\r
- m_pBody->setScale(keyFrame , mof::Vector3D(\r
- boost::lexical_cast<float>(buf1) , boost::lexical_cast<float>(buf2) , boost::lexical_cast<float>(buf3)));\r
- }\r
- else {\r
- //ToDo \82Q\8e\9f\8c³\82Ì\83X\83P\81[\83\8b\r
- //m_pBody->set(keyFrame , mof::Vector2D(boost::lexical_cast<int>(buf1) , boost::lexical_cast<int>(buf2)));\r
- }\r
- }\r
- else if(m_pFile->hasNextValue())m_pFile->getNextValue();//Depth\82ð\8eÌ\82Ä\82é\r
- }\r
-\r
- //Rotate\r
- {\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring buf1 = m_pFile->getNextValue();\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring buf2 = m_pFile->getNextValue();\r
- if(buf1 != _T("") && buf2 != _T("")){\r
- mof::tstring buf3;\r
- if(m_pFile->hasNextValue())buf3 = m_pFile->getNextValue();\r
- if(buf3 != _T("")){\r
- //Z\8e²\92\86\90S\82à\97L\8cø\82È\8fê\8d\87\82Í\82R\8e\9f\8c³\8dÀ\95W\82Æ\82µ\82Ä\88µ\82¤\r
- m_pBody->setRotation(keyFrame , mof::Vector3D(\r
- boost::lexical_cast<float>(buf1) , boost::lexical_cast<float>(buf2) , boost::lexical_cast<float>(buf3)));\r
- }\r
- else {\r
- //ToDo \82Q\8e\9f\8c³\82Ì\89ñ\93]\r
- //m_pBody->set(keyFrame , mof::Vector2D(boost::lexical_cast<int>(buf1) , boost::lexical_cast<int>(buf2)));\r
- }\r
- }\r
- else if(m_pFile->hasNextValue())m_pFile->getNextValue();//RotZ\82ð\8eÌ\82Ä\82é\r
- }\r
-\r
-\r
- //finalize\83V\83O\83i\83\8b\r
- {\r
- if(!m_pFile->hasNextValue())goto END;\r
- mof::tstring buf1 = m_pFile->getNextValue();\r
- if(buf1 != _T("")){\r
- m_pBody->setFinalKey(boost::lexical_cast<int>(buf1));\r
- }\r
- }\r
-\r
-\r
-END:\r
- m_pFile->nextLine();\r
-}\r
-\r
-\r
-mof::DataBasedAnimation::~DataBasedAnimation(void){\r
- delete m_pBody;\r
- delete m_pFile;\r
-}\r
-\r
-\r
-bool mof::DataBasedAnimation::update(){\r
- if(!isPlaying())return false;\r
- m_pBody->update();\r
-\r
- loadNextKeyFrame();\r
- return false;\r
-}\r
-\r
-\r
-bool mof::DataBasedAnimation::isFinalized(){\r
- return m_pBody->isFinalized();\r
-}\r
-\r
-\r
-mof::Vector2D mof::DataBasedAnimation::getPosition(){\r
- return m_pBody->getPosition();\r
-}\r
-\r
- \r
-float mof::DataBasedAnimation::getWidth(){\r
- return m_pBody->getWidth();\r
-}\r
-\r
-\r
-float mof::DataBasedAnimation::getHeight(){\r
- return m_pBody->getHeight();\r
-}\r
-\r
-\r
-float mof::DataBasedAnimation::getDepth(){\r
- return m_pBody->getDepth();\r
-}\r
-\r
-mof::Color mof::DataBasedAnimation::getColor(){\r
- return m_pBody->getColor();\r
-}\r
-\r
- \r
-mof::Matrix3D mof::DataBasedAnimation::getWorldTransform(mof::Matrix3D& matrix){\r
- return m_pBody->getWorldTransform(matrix);\r
-}\r
-\r
- \r
-mof::Line2D mof::DataBasedAnimation::getTextureRectangle(){\r
- return m_pBody->getTextureRectangle();\r
-}\r
+++ /dev/null
-\r
-#pragma once\r
-#include "mof/Animation.h"\r
-#include "mof/tstring.h"\r
-\r
-namespace mof{\r
- \r
- class KeyFrameAnimation;\r
- class CSVFile;\r
-\r
- class DataBasedAnimation : public Animation\r
- {\r
- KeyFrameAnimation* m_pBody;\r
- CSVFile* m_pFile;\r
- mof::Vector3D m_denormalizeScale;\r
- \r
- void loadNextKeyFrame();\r
- public:\r
- DataBasedAnimation(const TCHAR * const pPath , bool isLooping = false);\r
- DataBasedAnimation(const TCHAR * const pPath , mof::Vector3D& denormalizePositionScale , bool isLooping = false);\r
- virtual ~DataBasedAnimation(void);\r
-\r
- virtual bool update();\r
- virtual bool isFinalized();\r
-\r
- virtual mof::Vector2D getPosition();\r
- virtual float getWidth();\r
- virtual float getHeight();\r
- virtual float getDepth();\r
- virtual mof::Color getColor();\r
- virtual mof::Matrix3D getWorldTransform(mof::Matrix3D& matrix);\r
- virtual mof::Line2D getTextureRectangle();\r
- \r
- \r
- };\r
-\r
-};
\ No newline at end of file
+++ /dev/null
-#include "DefaultAnimationPlayer.hpp"\r
-\r
-\r
-\r
-\r
-mof::DefaultAnimationPlayer::DefaultAnimationPlayer()\r
-: m_frame(0)\r
-{\r
-}\r
-\r
-void mof::DefaultAnimationPlayer::setFrameNumber(mof::FrameNumber frame){\r
- m_frame = frame;\r
-}\r
-\r
-void mof::DefaultAnimationPlayer::nextFrame(){\r
- m_frame++;\r
-}\r
-\r
-void mof::DefaultAnimationPlayer::prevFrame(){\r
- if(m_frame > 0)m_frame--;\r
-}
\ No newline at end of file
+++ /dev/null
-#ifndef MOF_DEFAULT_ANIMATION_PLAYER_HPP\r
-#define MOF_DEFAULT_ANIMATION_PLAYER_HPP\r
-#include "mof/AnimationPlayer.hpp"\r
-\r
-namespace mof{\r
-\r
-\r
-class DefaultAnimationPlayer : AnimationPlayer{\r
-protected:\r
- mof::FrameNumber m_frame;\r
-public:\r
- DefaultAnimationPlayer();\r
- virtual void setFrameNumber(mof::FrameNumber frame);\r
- virtual void nextFrame();\r
- virtual void prevFrame();\r
- \r
-};\r
-\r
-}\r
-\r
-\r
-#endif\r
+++ /dev/null
-#ifndef MOF_DEFAULT_ANIMATION_PLAYER_HPP\r
-#define MOF_DEFAULT_ANIMATION_PLAYER_HPP\r
-#include "mof/AnimationPlayer.hpp"\r
-\r
-namespace mof{\r
-\r
-\r
-class DefaultAnimationPlayer : AnimationPlayer{\r
-protected:\r
- mof::FrameNumber m_frame;\r
-public:\r
- DefaultAnimationPlayer();\r
- virtual void setFrameNumber(mof::FrameNumber frame);\r
- virtual void nextFrame();\r
- virtual void prevFrame();\r
- \r
-};\r
-\r
-}\r
-\r
-\r
-#endif
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- class Filter : public Manipulator< Vector2D >\r
- {\r
- public:\r
- typedef boost::shared_ptr<Filter> Handler;\r
- \r
- Filter\r
- (\r
- const Manipulator<Vector2D>::Handler& body ,\r
- const mof::Vector2D& filter\r
- )\r
- : m_body( body ) , m_filter( filter)\r
- {\r
- }\r
-\r
- virtual Vector2D value( FrameNumber frame ) const\r
- {\r
- mof::Vector2D value = m_body->value(frame);\r
- return mof::Vector2D( value.x * m_filter.x , value.y * m_filter.y);\r
- }\r
-\r
-\r
- private:\r
- Manipulator< Vector2D >::Handler m_body;\r
- Vector2D m_filter;\r
-\r
-\r
- };\r
-\r
-//{{{ ヘルパ関数\r
- inline Filter::Handler makeFilterHandler\r
- (\r
- const Manipulator< Vector2D >::Handler& body ,\r
- const Vector2D& filter\r
- )\r
- {\r
- return Filter::Handler\r
- (\r
- new Filter( body , filter )\r
- );\r
- }\r
-//}}}\r
-\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- class Filter : public Manipulator< Vector2D >\r
- {\r
- public:\r
- typedef boost::shared_ptr< Translation2D > Handler;\r
- \r
- Filter\r
- (\r
- const Manipulator<Vector2D>::Handler& body ,\r
- const mof::Vector2D& filter\r
- )\r
- : m_body( body ) , m_filter( filter)\r
- {\r
- }\r
-\r
- virtual Vector2D value( FrameNumber frame ) const\r
- {\r
- mof::Vector2D value = m_body->value(frame);\r
- return mof::Vector2D( value.x * m_filter.x , value.y * m_filter.y);\r
- }\r
-\r
-\r
- private:\r
- Manipulator< Vector2D >::Handler m_body;\r
- Vector2D m_filter;\r
-\r
-\r
- };\r
-\r
-//{{{ ヘルパ関数\r
- inline Filter::Handler makeFilterHandler\r
- (\r
- const Manipulator< Vector2D >::Handler& body ,\r
- const Vector2D& filter\r
- )\r
- {\r
- return Filter::Handler\r
- (\r
- new Filter( body , filter )\r
- );\r
- }\r
-//}}}\r
-\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-namespace mof\r
-{\r
- template< typename T , typename K >\r
- class Joint : public Manipulator< T >\r
- {\r
- public:\r
- typedef typename boost::shared_ptr< mof::Joint< T , K > > Handler;\r
-\r
- \r
- virtual ~Joint( )\r
- {\r
- }\r
-\r
- virtual T value( FrameNumber frame ) const\r
- {\r
- return m_converter( m_body->value( frame ) );\r
- }\r
- \r
- typename Manipulator< K >::Handler get( ) const { return m_body; }\r
-\r
- void set( const typename Manipulator< K >::Handler& handler ){ m_body = handler; }\r
-\r
- private:\r
- typename Manipulator<K>::Handler m_body;\r
- T (*m_converter)( const K& );\r
-\r
- Joint( const typename Manipulator< K >::Handler& handler , T (*converter)( const K& ) )\r
- : m_body( handler) , m_converter( converter )\r
- {\r
- }\r
-\r
- template< typename T , typename K > friend\r
- typename Joint< T , K >::Handler makeJointHandler\r
- ( \r
- const typename Manipulator< K >::Handler& handler ,\r
- T (*converter)( const K& )\r
- );\r
-\r
- }; // class Joint\r
-\r
- /** \8c^\95Ï\8a·\82ð\8ds\82í\82È\82¢Joint */\r
- template< typename T >\r
- class Joint< T , T > : public Manipulator< T >\r
- {\r
- public:\r
- typedef typename boost::shared_ptr< mof::Joint< T , T > > Handler;\r
-\r
- \r
- virtual T getValue( mof::FrameNumber frame ) const\r
- {\r
- return m_body->getValue( frame );\r
- }\r
-\r
- typename mof::Manipulator< T >::Handler get( ) const { return m_body; }\r
- void set( const typename mof::Manipulator< T >::Handler& handler ){ m_body = handler; }\r
- \r
- private:\r
- typename mof::Manipulator< T >::Handler m_body;\r
-\r
- Joint( const typename Manipulator< T >::Handler& handler )\r
- : m_body( handler)\r
- {\r
- }\r
-\r
- template< typename T > friend\r
- typename Joint< T , T >::Handler makeJointHandler\r
- ( \r
- const typename Manipulator< T >::Handler& handler \r
- );\r
-\r
- }; // class Joint \r
-\r
- \r
- template< typename T , typename K >\r
- typename Joint< T , K >::Handler makeJointHandler\r
- ( \r
- const typename Manipulator< K >::Handler& handler ,\r
- T (*converter)( const K& )\r
- )\r
- {\r
- return typename Joint< T , K >::Handler( new Joint< T , K >( handler , converter ) );\r
- }\r
-\r
- /** \8c^\95Ï\8a·\82ð\8ds\82í\82È\82¢Joint\82Ì\90¶\90¬ */\r
- // TODO \8c^\90\84\98_\82ª\8cø\82©\82È\82¢\r
- template< typename T >\r
- typename Joint< T , T >::Handler makeJointHandler\r
- ( \r
- const typename Manipulator< T >::Handler& handler \r
- )\r
- {\r
- return typename Joint< T , T >::Handler( new Joint< T , T >( handler ) );\r
- }\r
-\r
- \r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-namespace mof\r
-{\r
- template< typename T , typename K >\r
- class Joint : public Manipulator< T >\r
- {\r
- public:\r
- typedef typename boost::shared_ptr< mof::Joint< T , K > > Handler;\r
-\r
- \r
- virtual ~Joint( )\r
- {\r
- }\r
-\r
- virtual T value( FrameNumber frame ) const\r
- {\r
- return m_converter( m_body->value( frame ) );\r
- }\r
- \r
- typename Manipulator< K >::Handler get( ) const { return m_body; }\r
-\r
- void set( const typename Manipulator< K >::Handler& handler ){ m_body = handler; }\r
-\r
- private:\r
- typename Manipulator<K>::Handler m_body;\r
- T (*m_converter)( const K& );\r
-\r
- Joint( const typename Manipulator< K >::Handler& handler , T (*converter)( const K& ) )\r
- : m_body( handler) , m_converter( converter )\r
- {\r
- }\r
-\r
- template< typename T , typename K > friend\r
- typename Joint< T , K >::Handler makeJointHandler\r
- ( \r
- const typename Manipulator< K >::Handler& handler ,\r
- T (*converter)( const K& )\r
- );\r
-\r
- }; // class Joint\r
-\r
- /** \8c^\95Ï\8a·\82ð\8ds\82í\82È\82¢Joint */\r
- template< typename T >\r
- class Joint< T , T > : public Manipulator< T >\r
- {\r
- public:\r
- typedef typename boost::shared_ptr< mof::Joint< T , T > > Handler;\r
-\r
- \r
- virtual T getValue( mof::FrameNumber frame ) const\r
- {\r
- return m_body->getValue( frame );\r
- }\r
-\r
- typename mof::Manipulator< T >::Handler get( ) const { return m_body; }\r
- void set( const typename mof::Manipulator< T >::Handler& handler ){ m_body = handler; }\r
- \r
- private:\r
- typename mof::Manipulator< T >::Handler m_body;\r
-\r
- Joint( const typename Manipulator< T >::Handler& handler )\r
- : m_body( handler)\r
- {\r
- }\r
-\r
- template< typename T > friend\r
- typename Joint< T , T >::Handler makeJointHandler\r
- ( \r
- const Manipulator< T >::Handler& handler \r
- );\r
-\r
- }; // class Joint \r
-\r
- \r
- template< typename T , typename K >\r
- typename Joint< T , K >::Handler makeJointHandler\r
- ( \r
- const typename Manipulator< K >::Handler& handler ,\r
- T (*converter)( const K& )\r
- )\r
- {\r
- return typename Joint< T , K >::Handler( new Joint< T , K >( handler , converter ) );\r
- }\r
-\r
- /** \8c^\95Ï\8a·\82ð\8ds\82í\82È\82¢Joint\82Ì\90¶\90¬ */\r
- // TODO \8c^\90\84\98_\82ª\8cø\82©\82È\82¢\r
- template< typename T >\r
- typename Joint< T , T >::Handler makeJointHandler\r
- ( \r
- const typename Manipulator< T >::Handler& handler \r
- )\r
- {\r
- return typename Joint< T , T >::Handler( new Joint< T , T >( handler ) );\r
- }\r
-\r
- \r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/Animation.hpp"\r
-#include <boost/function/function1.hpp>\r
-\r
-namespace mof{\r
-\r
-\r
- template< typename T , typename K >\r
- class Joint : boost::noncopyable{\r
- public:\r
- typedef boost::shared_ptr< mof::Joint<T> > Handler;\r
- typedef boost::function1< const T& , const K& > Converter;\r
-\r
- Joint( const mof::Animation<K>::Handler& handler , const Converter& converter )\r
- : m_body( handler) , m_converter( converter )\r
- {\r
- }\r
- \r
- virtual T getValue( mof::FrameNumber frame ) const\r
- {\r
- return m_converter( m_body->getValue( frame ) );\r
- }\r
-\r
- private:\r
- mof::Animation<K>::Handler m_body;\r
- Converter m_converter;\r
- };\r
-\r
- template< typename T , typename K >\r
- Joint< T , K >::Handler makeJointHandler\r
- ( \r
- const Animation<K>::Handler& handler ,\r
- const Joint< T , K >::Converter& converter\r
- )\r
- {\r
- return Joint::Handler( new Joint<T , K>( handler , converter) );\r
- }\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-#include <map>\r
-#include <stdexcept>\r
-#include <boost/function/function2.hpp>\r
-#include "mof/Interpolation.hpp"\r
-\r
-namespace mof{\r
-\r
- template<typename T >\r
- class KeyFrameAnimation : public Manipulator< T >\r
- {\r
- public:\r
- typedef std::pair< FrameNumber , T > KeyFrame;\r
- typedef typename std::map< FrameNumber , T> KeyMap;\r
-\r
- virtual ~KeyFrameAnimation(){}\r
-\r
- virtual T value( mof::FrameNumber frame) const\r
- {\r
- return m_interpolator(m_map , frame);\r
- }\r
-\r
- mof::FrameNumber getFinalKeyFrameNumber()\r
- {\r
- return m_maxKeyFrameNumber;\r
- }\r
-\r
- private:\r
- KeyMap m_map;\r
- FrameNumber m_maxKeyFrameNumber;\r
- boost::function2<T , const KeyMap& , mof::FrameNumber> m_interpolator;\r
-\r
- KeyFrameAnimation\r
- (\r
- const KeyFrame& front ,\r
- const KeyFrame& back , \r
- const boost::function2< T , const KeyMap& , FrameNumber > & interpolator\r
- )\r
- : m_interpolator(interpolator)\r
- {\r
- int length = &back - &front + 1;\r
- if(length < 1)throw std::invalid_argument("length < 1");\r
- m_maxKeyFrameNumber = 0;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- if((&front)[i].first > m_maxKeyFrameNumber)m_maxKeyFrameNumber = (&front)[i].first;\r
- m_map.insert( std::make_pair((&front)[i].first , (&front)[i].second ) );\r
- }\r
- }\r
-\r
- KeyFrameAnimation\r
- (\r
- const KeyFrame& front , const KeyFrame& back \r
- )\r
- : m_interpolator(&mof::linerInterpolate<T>)\r
- {\r
- int length = &back - &front + 1;\r
- if(length < 1)throw std::invalid_argument("length < 1");\r
- m_maxKeyFrameNumber = 0;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- if((&front)[i].first > m_maxKeyFrameNumber)m_maxKeyFrameNumber = (&front)[i].first;\r
- m_map.insert( std::make_pair((&front)[i].first , (&front)[i].second ) );\r
- }\r
- }\r
-\r
- template< typename T > friend\r
- typename KeyFrameAnimation< T >::KeyFrame \r
- makeKeyFrame( mof::FrameNumber frame , const T & obj );\r
-\r
- template< typename T > friend\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- const std::pair< FrameNumber , T >& front ,\r
- const std::pair< FrameNumber , T >& back ,\r
- const boost::function2< T , const std::map< FrameNumber , T >& , FrameNumber> & interpolator\r
- );\r
-\r
- template< typename T > friend\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- const std::pair< FrameNumber , T >& front ,\r
- const std::pair< FrameNumber , T >& back \r
- );\r
-\r
- };\r
-//{{{ ヘルパ関数\r
- template< typename T >\r
- typename KeyFrameAnimation< T >::KeyFrame \r
- makeKeyFrame( mof::FrameNumber frame , const T & obj )\r
- {\r
- return std::make_pair< FrameNumber , T>(frame , obj);\r
- }\r
-\r
- template< typename T >\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- const std::pair< FrameNumber , T >& front ,\r
- const std::pair< FrameNumber , T >& back ,\r
- const boost::function2< T , const std::map< FrameNumber , T >& , FrameNumber> & interpolator\r
- )\r
- {\r
- return KeyFrameAnimation< T >::Handler\r
- (\r
- new KeyFrameAnimation< T >( front , back , interpolator )\r
- );\r
- }\r
-\r
- template< typename T >\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- const std::pair< FrameNumber , T >& front ,\r
- const std::pair< FrameNumber , T >& back \r
- )\r
- {\r
- return KeyFrameAnimation< T >::Handler\r
- (\r
- new KeyFrameAnimation< T >( front , back ) \r
- );\r
- }\r
-\r
- template< typename T >\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- FrameNumber fn1 , const T& v1 ,\r
- FrameNumber fn2 , const T& v2 \r
- )\r
- {\r
- KeyFrameAnimation<T>::KeyFrame keyFrames[] =\r
- {\r
- makeKeyFrame(fn1 , v1) ,\r
- makeKeyFrame(fn2 , v2) \r
- };\r
- return makeKeyFrameAnimationHandler(keyFrames[0] , lastOf(keyFrames));\r
- }\r
- \r
- template< typename T >\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- FrameNumber fn1 , const T& v1 ,\r
- FrameNumber fn2 , const T& v2 ,\r
- const boost::function2< T , const std::map< FrameNumber , T >& , FrameNumber> & interpolator\r
- )\r
- {\r
- KeyFrameAnimation<T>::KeyFrame keyFrames[] =\r
- {\r
- makeKeyFrame(fn1 , v1) ,\r
- makeKeyFrame(fn2 , v2) \r
- };\r
- return makeKeyFrameAnimationHandler(keyFrames[0] , lastOf(keyFrames) , interpolator);\r
- }\r
-\r
-\r
-\r
-//}}}\r
-} //namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-#include <map>\r
-#include <stdexcept>\r
-#include <boost/function/function2.hpp>\r
-#include "mof/Interpolation.hpp"\r
-\r
-namespace mof{\r
-\r
- template<typename T >\r
- class KeyFrameAnimation : public Manipulator< T >\r
- {\r
- public:\r
- typedef std::pair< FrameNumber , T > KeyFrame;\r
- typedef typename std::map< FrameNumber , T> KeyMap;\r
-\r
- virtual ~KeyFrameAnimation(){}\r
-\r
- virtual T value( mof::FrameNumber frame) const\r
- {\r
- return m_interpolator(m_map , frame);\r
- }\r
-\r
- mof::FrameNumber getFinalKeyFrameNumber()\r
- {\r
- return m_maxKeyFrameNumber;\r
- }\r
-\r
- private:\r
- KeyMap m_map;\r
- FrameNumber m_maxKeyFrameNumber;\r
- boost::function2<T , const KeyMap& , mof::FrameNumber> m_interpolator;\r
-\r
- KeyFrameAnimation\r
- (\r
- const KeyFrame& front ,\r
- const KeyFrame& back , \r
- const boost::function2< T , const KeyMap& , FrameNumber > & interpolator\r
- )\r
- : m_interpolator(interpolator)\r
- {\r
- int length = &back - &front + 1;\r
- if(length < 1)throw std::invalid_argument("length < 1");\r
- m_maxKeyFrameNumber = 0;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- if((&front)[i].first > m_maxKeyFrameNumber)m_maxKeyFrameNumber = (&front)[i].first;\r
- m_map.insert( std::make_pair((&front)[i].first , (&front)[i].second ) );\r
- }\r
- }\r
-\r
- KeyFrameAnimation\r
- (\r
- const KeyFrame& front , const KeyFrame& back \r
- )\r
- : m_interpolator(&mof::linerInterpolate<T>)\r
- {\r
- int length = &back - &front + 1;\r
- if(length < 1)throw std::invalid_argument("length < 1");\r
- m_maxKeyFrameNumber = 0;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- if((&front)[i].first > m_maxKeyFrameNumber)m_maxKeyFrameNumber = (&front)[i].first;\r
- m_map.insert( std::make_pair((&front)[i].first , (&front)[i].second ) );\r
- }\r
- }\r
-\r
- template< typename T > friend\r
- typename KeyFrameAnimation< T >::KeyFrame \r
- makeKeyFrame( mof::FrameNumber frame , const T & obj );\r
-\r
- template< typename T > friend\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- const std::pair< FrameNumber , T >& front ,\r
- const std::pair< FrameNumber , T >& back ,\r
- const boost::function2< T , const std::map< FrameNumber , T >& , FrameNumber> & interpolator\r
- );\r
-\r
- template< typename T > friend\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- const std::pair< FrameNumber , T >& front ,\r
- const std::pair< FrameNumber , T >& back \r
- );\r
-\r
- };\r
-//{{{ ヘルパ関数\r
- template< typename T >\r
- typename KeyFrameAnimation< T >::KeyFrame \r
- makeKeyFrame( mof::FrameNumber frame , const T & obj )\r
- {\r
- return std::make_pair< FrameNumber , T>(frame , obj);\r
- }\r
-\r
- template< typename T >\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- const std::pair< FrameNumber , T >& front ,\r
- const std::pair< FrameNumber , T >& back ,\r
- const boost::function2< T , const std::map< FrameNumber , T >& , FrameNumber> & interpolator\r
- )\r
- {\r
- return KeyFrameAnimation< T >::Handler\r
- (\r
- new KeyFrameAnimation< T >( front , back , interpolator )\r
- );\r
- }\r
-\r
- template< typename T >\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- const std::pair< FrameNumber , T >& front ,\r
- const std::pair< FrameNumber , T >& back \r
- )\r
- {\r
- return KeyFrameAnimation< T >::Handler\r
- (\r
- new KeyFrameAnimation< T >( front , back ) \r
- );\r
- }\r
-\r
- template< typename T >\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- FrameNumber fn1 , const T& v1 ,\r
- FrameNumber fn2 , const T& v2 \r
- )\r
- {\r
- KeyFrameAnimation<T>::KeyFrame keyFrames[] =\r
- {\r
- makeKeyFrame(fn1 , v1) ,\r
- makeKeyFrame(fn2 , v2) \r
- };\r
- return makeKeyFrameAnimationHandler(keyFrames[0] , lastOf(keyFrames));\r
- }\r
-\r
-\r
-//}}}\r
-} //namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- template< typename T >\r
- class Loop : public Manipulator< T >\r
- {\r
- \r
- public:\r
-\r
- virtual ~Loop( ){} \r
-\r
- virtual T value( FrameNumber frame) const\r
- {\r
- return m_pBody->value( getInnerFrameNumber( frame ) );\r
- }\r
-\r
- private:\r
-\r
- typename Manipulator<T>::Handler m_pBody;\r
- FrameNumber m_beginLoopFrameNumber;\r
- FrameNumber m_endLoopFrameNumber;\r
-\r
- FrameNumber getInnerFrameNumber(FrameNumber frame) const\r
- {\r
- if(frame < m_beginLoopFrameNumber)return frame;\r
- FrameNumber d = m_endLoopFrameNumber - m_beginLoopFrameNumber;\r
- return (frame - m_beginLoopFrameNumber) % d + m_beginLoopFrameNumber;\r
- }\r
-\r
- Loop(const typename Manipulator<T>::Handler& pBody , FrameNumber endLoopFrameNumber)\r
- : m_pBody(pBody) , m_beginLoopFrameNumber(0) , m_endLoopFrameNumber(endLoopFrameNumber)\r
- {\r
- }\r
-\r
- Loop\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber beginLoopFrameNumber ,\r
- FrameNumber endLoopFrameNumber\r
- ) \r
- : m_pBody(pBody) , m_beginLoopFrameNumber(beginLoopFrameNumber) , m_endLoopFrameNumber(endLoopFrameNumber)\r
- {\r
- if(m_endLoopFrameNumber < m_beginLoopFrameNumber)throw std::invalid_argument("endLoop < beginLoop");\r
- }\r
-\r
- template<typename T > friend\r
- typename boost::shared_ptr< Loop< T> >\r
- makeLoopHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber beginLoopFrameNumber ,\r
- FrameNumber endLoopFrameNumber\r
- );\r
-\r
- template<typename T > friend\r
- typename boost::shared_ptr< Loop< T> >\r
- makeLoopHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber endLoopFrameNumber\r
- );\r
-\r
- };\r
-//{{{ ヘルパ関数\r
- template<typename T >\r
- typename boost::shared_ptr< Loop< T> >\r
- makeLoopHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber beginLoopFrameNumber ,\r
- FrameNumber endLoopFrameNumber\r
- )\r
- {\r
- return typename Manipulator< T >::Handler\r
- (\r
- new Loop< T >(pBody , beginLoopFrameNumber , endLoopFrameNumber)\r
- );\r
- }\r
-\r
- template<typename T >\r
- typename boost::shared_ptr< Loop< T> >\r
- makeLoopHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber endLoopFrameNumber\r
- )\r
- {\r
- return typename Manipulator< T >::Handler\r
- (\r
- new Loop< T >(pBody , endLoopFrameNumber)\r
- );\r
- }\r
-//}}}\r
-} //namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- template< typename T >\r
- class Loop : public Manipulator< T >\r
- {\r
- \r
- public:\r
-\r
- virtual ~Loop( ){} \r
-\r
- virtual T value( FrameNumber frame) const\r
- {\r
- return m_pBody->value( getInnerFrameNumber( frame ) );\r
- }\r
-\r
- private:\r
-\r
- typename Manipulator<T>::Handler m_pBody;\r
- FrameNumber m_beginLoopFrameNumber;\r
- FrameNumber m_endLoopFrameNumber;\r
-\r
- FrameNumber getInnerFrameNumber(FrameNumber frame) const\r
- {\r
- if(frame < m_beginLoopFrameNumber)return frame;\r
- FrameNumber d = m_endLoopFrameNumber - m_beginLoopFrameNumber;\r
- return (frame - m_beginLoopFrameNumber) % d + m_beginLoopFrameNumber;\r
- }\r
-\r
- Loop(const typename Manipulator<T>::Handler& pBody , FrameNumber endLoopFrameNumber)\r
- : m_pBody(pBody) , m_beginLoopFrameNumber(0) , m_endLoopFrameNumber(endLoopFrameNumber)\r
- {\r
- }\r
-\r
- LoopManipulator\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber beginLoopFrameNumber ,\r
- FrameNumber endLoopFrameNumber\r
- ) \r
- : m_pBody(pBody) , m_beginLoopFrameNumber(beginLoopFrameNumber) , m_endLoopFrameNumber(endLoopFrameNumber)\r
- {\r
- if(m_endLoopFrameNumber < m_beginLoopFrameNumber)throw std::invalid_argument("endLoop < beginLoop");\r
- }\r
-\r
- template<typename T > friend\r
- typename boost::shared_ptr< Loop< T> >\r
- makeLoopHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber beginLoopFrameNumber ,\r
- FrameNumber endLoopFrameNumber\r
- );\r
-\r
- template<typename T > friend\r
- typename boost::shared_ptr< Loop< T> >\r
- makeLoopHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber endLoopFrameNumber\r
- );\r
-\r
- };\r
-//{{{ ヘルパ関数\r
- template<typename T >\r
- typename boost::shared_ptr< Loop< T> >\r
- makeLoopHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber beginLoopFrameNumber ,\r
- FrameNumber endLoopFrameNumber\r
- )\r
- {\r
- return typename Manipulator< T >::Handler\r
- (\r
- new Loop< T >(pBody , beginLoopFrameNumber , endLoopFrameNumber)\r
- );\r
- }\r
-\r
- template<typename T >\r
- typename boost::shared_ptr< Loop< T> >\r
- makeLoopHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- FrameNumber endLoopFrameNumber\r
- )\r
- {\r
- return typename Manipulator< T >::Handler\r
- (\r
- new Loop< T >(pBody , endLoopFrameNumber)\r
- );\r
- }\r
-//}}}\r
-} //namespace mof\r
-\r
+++ /dev/null
- #pragma once\r
- #include "mof/Animation.hpp"\r
- \r
- \r
- namespace mof{\r
- \r
- template<typename T >\r
- class LoopAnimation : public Animation<T>{\r
- typename Animation<T>::Handler m_pBody;\r
- FrameNumber m_beginLoopFrameNumber;\r
- FrameNumber m_endLoopFrameNumber;\r
- \r
- FrameNumber getInnerFrameNumber(FrameNumber frame) const{\r
- if(frame < m_beginLoopFrameNumber)return frame;\r
- mof::FrameNumber d = m_endLoopFrameNumber - m_beginLoopFrameNumber;\r
- return (frame - m_beginLoopFrameNumber) % d + m_beginLoopFrameNumber;\r
- }\r
- \r
- public:\r
- \r
- LoopAnimation(const typename Animation<T>::Handler& pBody , FrameNumber endLoopFrameNumber)\r
- : m_pBody(pBody) , m_beginLoopFrameNumber(0) , m_endLoopFrameNumber(endLoopFrameNumber)\r
- {\r
- }\r
- \r
- LoopAnimation(\r
- const typename mof::Animation<T>::Handler& pBody ,\r
- mof::FrameNumber beginLoopFrameNumber ,\r
- mof::FrameNumber endLoopFrameNumber\r
- ) : m_pBody(pBody) , m_beginLoopFrameNumber(beginLoopFrameNumber) , m_endLoopFrameNumber(endLoopFrameNumber)\r
- {\r
- if(m_endLoopFrameNumber < m_beginLoopFrameNumber)throw std::invalid_argument("endLoop < beginLoop");\r
- }\r
- \r
- \r
- \r
- virtual T getValue( mof::FrameNumber frame) const{\r
- return m_pBody->getValue(getInnerFrameNumber(frame));\r
- }\r
- \r
- \r
- \r
- };\r
- \r
-\r
- template<typename T >\r
- typename mof::Animation<T>::Handler \r
- makeLoopHandler(\r
- const typename mof::Animation<T>::Handler& pBody ,\r
- mof::FrameNumber beginLoopFrameNumber ,\r
- mof::FrameNumber endLoopFrameNumber){\r
-\r
- return typename mof::Animation<T>::Handler(\r
- new mof::LoopAnimation<T>(pBody , beginLoopFrameNumber , endLoopFrameNumber)\r
- );\r
- }\r
- \r
-\r
- } //namespace mof\r
- \r
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
- typedef unsigned int FrameNumber;\r
-\r
- template<typename T>\r
- class Manipulator \r
- {\r
- public:\r
- typedef typename boost::shared_ptr< Manipulator > Handler;\r
- virtual ~Manipulator(){} \r
- virtual T value( FrameNumber fn ) const = 0;\r
-\r
- };\r
-\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-\r
- template<typename T>\r
- class Manipulator \r
- {\r
- public:\r
- typedef typename boost::shared_ptr< Manipulator > Handler;\r
- virtual ~Manipulator(){} \r
- virtual T value( FrameNumber fn ) const = 0;\r
-\r
- };\r
-\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-namespace mof{\r
-\r
- template< typename T >\r
- class Offset : public Manipulator< T >\r
- {\r
- \r
- public:\r
- typedef typename boost::shared_ptr< Offset > Handler;\r
- \r
- virtual ~Offset( ){}\r
-\r
- virtual T value( FrameNumber frame ) const\r
- {\r
- if( m_offset + frame < 0)return m_pBody->value( 0 );\r
- else return m_pBody->value( frame + m_offset );\r
- }\r
-\r
- private:\r
- typename Manipulator<T>::Handler m_pBody;\r
- int m_offset;\r
-\r
-\r
- Offset( const typename Manipulator<T>::Handler& pBody , int offset )\r
- : m_pBody(pBody) , m_offset(offset) \r
- {\r
- }\r
-\r
- template<typename T > friend\r
- typename boost::shared_ptr< Offset< T > > makeOffsetHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- int offset\r
- );\r
-\r
- };\r
-\r
-\r
- template< typename T >\r
- boost::shared_ptr< Offset< T > > makeOffsetHandler\r
- (\r
- const typename Manipulator< T >::Handler& pBody ,\r
- int offset\r
- )\r
- {\r
- return typename Offset< T >::Handler(\r
- new Offset< T >( pBody , offset )\r
- );\r
- }\r
-\r
-\r
-} //namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-namespace mof{\r
-\r
- template< typename T >\r
- class Offset : public Manipulator< T >\r
- {\r
- \r
- public:\r
- typedef typename boost::shared_ptr< Cascade > Handler;\r
- \r
- virtual ~Offset( ){}\r
-\r
- virtual T value( FrameNumber frame ) const\r
- {\r
- if( m_offset + frame < 0)return m_pBody->value( 0 );\r
- else return m_pBody->value( frame + m_offset );\r
- }\r
-\r
- private:\r
- typename Manipulator<T>::Handler m_pBody;\r
- int m_offset;\r
-\r
-\r
- Offset( const typename Manipulator<T>::Handler& pBody , int offset )\r
- : m_pBody(pBody) , m_offset(offset) \r
- {\r
- }\r
-\r
- template<typename T > friend\r
- typename boost::shared_ptr< Offset< T > > makeOffsetHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- int offset\r
- );\r
-\r
- };\r
-\r
-\r
- template< typename T >\r
- boost::shared_ptr< Offset< T > > makeOffsetHandler\r
- (\r
- const typename Manipulator< T >::Handler& pBody ,\r
- int offset\r
- )\r
- {\r
- return typename Offset< T >::Handler(\r
- new Offset< T >( pBody , offset )\r
- );\r
- }\r
-\r
-\r
-} //namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/Animation.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- template<typename T >\r
- class OffsetAnimation : public Animation<T>{\r
- typename Animation<T>::Handler m_pBody;\r
- int m_offset;\r
-\r
-\r
- public:\r
-\r
- OffsetAnimation(const typename Animation<T>::Handler& pBody , int offset)\r
- : m_pBody(pBody) , m_offset(offset) \r
- {\r
- }\r
-\r
- \r
-\r
- virtual T getValue( mof::FrameNumber frame) const{\r
- if( m_offset + frame < 0)return m_pBody->getValue( 0 );\r
- else return m_pBody->getValue(frame + m_offset );\r
- }\r
-\r
-\r
-\r
- };\r
-\r
-\r
- template<typename T >\r
- typename mof::Animation<T>::Handler \r
- makeOffsetHandler\r
- (\r
- const typename mof::Animation<T>::Handler& pBody ,\r
- int offset\r
- )\r
- {\r
- return typename mof::Animation<T>::Handler\r
- (\r
- new mof::OffsetAnimation<T>(pBody , offset)\r
- );\r
- }\r
-\r
-\r
-} //namespace mof\r
-\r
+++ /dev/null
- #pragma once\r
- \r
- #include <mof/Animation.hpp>\r
- \r
- namespace mof{\r
- \r
- \r
- \r
- template<typename T>\r
- class ParametricAnimation : public mof::Animation<T>{\r
- const boost::shared_ptr<T>& m_parameter;\r
- public:\r
- \r
- ParametricAnimation(const boost::shared_ptr<T>& parameter) \r
- : m_parameter(parameter){\r
- }\r
- \r
- virtual T getValue(mof::FrameNumber ) const{\r
- return *m_parameter;\r
- }\r
- \r
- };\r
- \r
- template<class T>\r
- typename mof::Animation<T>::Handler makeParametricHandler(const boost::shared_ptr<T>& parameter){\r
- return mof::Animation<T>::Handler(new mof::ParametricAnimation<T>(parameter));\r
- }\r
- \r
- } //namespace mof\r
- \r
+++ /dev/null
- #pragma once\r
- \r
- #include <mof/Animation.hpp>\r
- \r
- namespace mof{\r
- \r
- \r
- \r
- template<typename T>\r
- class ParametricAnimation : public mof::Animation<T>{\r
- const boost::shared_ptr<T>& m_parameter;\r
- public:\r
- \r
- ParametricAnimation(const boost::shared_ptr<T>& parameter) \r
- : m_parameter(parameter){\r
- }\r
- \r
- virtual T getValue(mof::FrameNumber ) const{\r
- return *m_parameter;\r
- }\r
- \r
- };\r
- \r
- template<class T>\r
- typename mof::Animation<T>::Handler makeParametricHandler(const boost::shared_ptr<T>& parameter){\r
- return mof::Animation<T>::Handler(new mof::ParametricAnimation<T>(parameter));\r
- }\r
- \r
- } //namespace mof\r
- \r
+++ /dev/null
-#pragma once\r
-#include <mof/stream/Manipulator.hpp>\r
-\r
-namespace mof\r
-{\r
- template< typename T > class Reference;\r
-\r
- template< typename T > \r
- boost::shared_ptr< Reference<T> >\r
- makeReferenceHandler(const typename Manipulator<T>::Handler&);\r
-\r
-//{{{ Reference\r
- template<typename T>\r
- class Reference : public Manipulator<T>\r
- {\r
- public:\r
- typedef typename boost::shared_ptr<Reference> Handler;\r
- \r
- virtual ~Reference(){} \r
- \r
- virtual T value(FrameNumber fn) const\r
- {\r
- return m_body->value(fn);\r
- }\r
-\r
- void replace(const typename Manipulator<T>::Handler& body)\r
- {\r
- m_body = body;\r
- }\r
-\r
- private:\r
- Manipulator<T>::Handler m_body;\r
-\r
- Reference(const Manipulator<T>::Handler& body) : m_body(body)\r
- {}\r
- \r
- template< typename T >\r
- friend typename boost::shared_ptr< Reference<T> > \r
- makeReferenceHandler(const typename Manipulator<T>::Handler&);\r
-\r
- };\r
-//}}}\r
-//{{{ ヘルパ関数\r
- template<typename T>\r
- boost::shared_ptr< Reference<T> >\r
- makeReferenceHandler(const typename Manipulator<T>::Handler& body)\r
- {\r
- return typename Reference<T>::Handler(new Reference<T>(body));\r
- }\r
-//}}}\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include <mof/stream/Manipulator.hpp>\r
-\r
-namespace mof\r
-{\r
- template< typename T > class Reference;\r
-\r
- template< typename T > \r
- boost::shared_ptr< Reference<T> >\r
- makeReferenceHandler(const typename Manipulator<T>::Handler&);\r
-\r
-//{{{ Reference\r
- template<typename T>\r
- class Reference : public Manipulator<T>\r
- {\r
- public:\r
- typedef typename boost::shared_ptr<Reference> Handler;\r
- \r
- virtual ~Reference(){} \r
- \r
- virtual T value(FrameNumber fn) const\r
- {\r
- return m_body.value(fn);\r
- }\r
-\r
- void replace(const typename Manipulator<T>::Handler& body)\r
- {\r
- m_body = body;\r
- }\r
-\r
- private:\r
- Manipulator<T>::Handler m_body;\r
-\r
- Reference(const Manipulator<T>::Handler& body) : m_body(body)\r
- {}\r
- \r
- template< typename T >\r
- friend typename boost::shared_ptr< Reference<T> > \r
- makeReferenceHandler(const typename Manipulator<T>::Handler&);\r
-\r
- };\r
-//}}}\r
-//{{{ ヘルパ関数\r
- template<typename T>\r
- boost::shared_ptr< Reference<T> >\r
- makeReferenceHandler(const typename Manipulator<T>::Handler& body)\r
- {\r
- return typename Reference<T>::Handler(new Reference<T>(body));\r
- }\r
-//}}}\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include <mof/stream/Reference.hpp>\r
-#include <mof/stream/Offset.hpp>\r
-#include <mof/stream/TypeStream.hpp>\r
-#include <vector>\r
-\r
-namespace mof\r
-{\r
-//{{{ ReferenceWrapper\r
- template<typename T>\r
- class ReferenceWrapper\r
- {\r
- public:\r
- \r
- typename Reference<T>::Handler makeRef(const typename Manipulator<T>::Handler& body)\r
- {\r
- m_list.push_back(makeReferenceHandler(body));\r
- return m_list.back();\r
- }\r
- \r
- typename Reference<T>::Handler makeRef(const T& body)\r
- {\r
- m_list.push_back(makeReferenceHandler<T>(makeConstantHandler(body)));\r
- return m_list.back();\r
- }\r
-\r
-\r
- void replace(int index , const typename Manipulator<T>::Handler& body)\r
- {\r
- m_list[index]->replace(body);\r
- //m_list[index]->replace(makeOffsetHandler(body , -1 * (int)m_stream.getCurrentFrameNumber()));\r
- }\r
- \r
- void replace(int index , const T& body)\r
- {\r
- m_list[index]->replace(makeConstantHandler(body));\r
- //m_list[index]->replace(makeOffsetHandler(makeConstantHandler(body) , -1 * (int)m_stream.getCurrentFrameNumber()));\r
- }\r
-\r
- void replace(int index , const TypeStream<T>& stream , const typename Manipulator<T>::Handler& body)\r
- {\r
- m_list[index]->replace(makeOffsetHandler<T>(body , -1 * stream.getCurrentFrameNumber()));\r
- }\r
- \r
-\r
- typename Reference<T>::Handler getRef(int index) const\r
- {\r
- return m_list[index];\r
- }\r
-\r
- private:\r
- std::vector<typename Reference<T>::Handler> m_list;\r
- };\r
-//}}}\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include <mof/stream/Reference.hpp>\r
-#include <mof/stream/Offset.hpp>\r
-#include <mof/stream/TypeStream.hpp>\r
-#include <vector>\r
-\r
-namespace mof\r
-{\r
-//{{{ ReferenceWrapper\r
- template<typename T>\r
- class ReferenceWrapper\r
- {\r
- public:\r
- \r
- typename Reference<T>::Handler makeRef(const typename Manipulator<T>::Handler& body)\r
- {\r
- m_list.push_back(makeReferenceHandler(body));\r
- return m_list.back();\r
- }\r
- \r
- typename Reference<T>::Handler makeRef(const T& body)\r
- {\r
- m_list.push_back(makeReferenceHandler<T>(makeConstantHandler(body)));\r
- return m_list.back();\r
- }\r
-\r
-\r
- void replace(int index , const typename Manipulator<T>::Handler& body)\r
- {\r
- m_list[index]->replace(body);\r
- //m_list[index]->replace(makeOffsetHandler(body , -1 * (int)m_stream.getCurrentFrameNumber()));\r
- }\r
- \r
- void replace(int index , const T& body)\r
- {\r
- m_list[index]->replace(makeConstantHandler(body));\r
- //m_list[index]->replace(makeOffsetHandler(makeConstantHandler(body) , -1 * (int)m_stream.getCurrentFrameNumber()));\r
- }\r
-\r
- void replace(int index , const TypeStream<T>& stream , const typename Manipulator<T>::Handler& body)\r
- {\r
- m_list[index]->replace(makeOffsetHandler(body , -1 * stream.getCurrentFrameNumber()));\r
- }\r
- \r
-\r
- typename Reference<T>::Handler getRef(int index) const\r
- {\r
- return m_list[index];\r
- }\r
-\r
- private:\r
- std::vector<typename Reference<T>::Handler> m_list;\r
- };\r
-//}}}\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/KeyFrameAnimation.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- class Rotation2D : public Manipulator< Matrix2D >\r
- {\r
- public:\r
- typedef boost::shared_ptr< Rotation2D > Handler;\r
- \r
- Rotation2D\r
- (\r
- const std::pair< FrameNumber , mof::Vector2D >& front , \r
- const std::pair< FrameNumber , mof::Vector2D >& back \r
- )\r
- {\r
- m_body = makeKeyFrameAnimationHandler< Vector2D >\r
- (\r
- front , back , &linerInterpolate< Vector2D >\r
- );\r
- }\r
- \r
- Rotation2D\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
- virtual Matrix2D value( FrameNumber frame ) const\r
- {\r
- return Matrix2D::createRotation( m_body->value(frame) );\r
- }\r
-\r
- Manipulator<mof::Vector2D>::Handler get( ) const\r
- {\r
- return m_body;\r
- }\r
- \r
- void set( const Manipulator< Vector2D >::Handler& handler ) \r
- {\r
- m_body = handler;\r
- }\r
-\r
- private:\r
- Manipulator< Vector2D >::Handler m_body;\r
-\r
- };\r
-//{{{ ヘルパ関数\r
- inline Rotation2D::Handler makeRotation2DHandler\r
- (\r
- const std::pair< FrameNumber , Vector2D >& front ,\r
- const std::pair< FrameNumber , Vector2D >& back \r
- )\r
- {\r
- return Rotation2D::Handler\r
- (\r
- new Rotation2D( front , back )\r
- );\r
- }\r
-\r
- inline Rotation2D::Handler makeRotation2DHandler\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- {\r
- return Rotation2D::Handler\r
- (\r
- new Rotation2D( body )\r
- );\r
- }\r
-//}}}\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/KeyFrameAnimation.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- class Rotation2D : public Manipulator< Matrix2D >\r
- {\r
- public:\r
- typedef boost::shared_ptr< Rotation2D > Handler;\r
- \r
- Rotation2D\r
- (\r
- const std::pair< FrameNumber , mof::Vector2D >& front , \r
- const std::pair< FrameNumber , mof::Vector2D >& back \r
- )\r
- {\r
- m_body = makeKeyFrameAnimationHandler< Vector2D >\r
- (\r
- front , back , &linerInterpolate< Vector2D >\r
- );\r
- }\r
- \r
- Rotation2D\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
- virtual Matrix2D value( FrameNumber frame ) const\r
- {\r
- return Matrix2D::createRotation( m_body->value(frame) );\r
- }\r
-\r
- Manipulator<mof::Vector2D>::Handler get( ) const\r
- {\r
- return m_body;\r
- }\r
- \r
- void set( const Manipulator< Vector2D >::Handler& handler ) \r
- {\r
- m_body = handler;\r
- }\r
-\r
- private:\r
- Manipulator< Vector2D >::Handler m_body;\r
-\r
- };\r
-//{{{ ヘルパ関数\r
- Rotation2D::Handler makeRotation2DHandler\r
- (\r
- const std::pair< FrameNumber , Vector2D >& front ,\r
- const std::pair< FrameNumber , Vector2D >& back \r
- )\r
- {\r
- return Rotation2D::Handler\r
- (\r
- new Rotation2D( front , back )\r
- );\r
- }\r
-\r
- Rotation2D::Handler makeRotation2DHandler\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- {\r
- return Rotation2D::Handler\r
- (\r
- new Rotation2D( body )\r
- );\r
- }\r
-//}}}\r
-} // namespace mof\r
+++ /dev/null
-#ifndef MOF_ROTATION_ANIMATION_2D_HPP\r
-#define MOF_ROTATION_ANIMATION_2D_HPP\r
-#include "mof/KeyFrameAnimation.hpp"\r
-#include <map>\r
-#include <stdexcept>\r
-#include <boost/function/function2.hpp>\r
-#include "mof/KeyFrameAnimation.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-#include "mof/utilities.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
-\r
-class RotationAnimation2D : public mof::Animation<mof::Matrix2D>{\r
- boost::shared_ptr<mof::KeyFrameAnimation<mof::Vector2D>> m_pBody;\r
-public:\r
-\r
- RotationAnimation2D(\r
- const std::pair<mof::FrameNumber , mof::Vector2D>& front , \r
- const std::pair<mof::FrameNumber , mof::Vector2D>& back \r
- )\r
- {\r
- m_pBody = boost::shared_ptr<mof::KeyFrameAnimation<mof::Vector2D>>(\r
- new mof::KeyFrameAnimation<mof::Vector2D>(front , back , &mof::linerInterpolate<mof::Vector2D>)\r
- );\r
- }\r
-\r
- virtual mof::Matrix2D getValue( mof::FrameNumber frame) const{\r
- return mof::Matrix2D::createRotation(m_pBody->getValue(frame));\r
- }\r
-\r
- mof::FrameNumber getFinalKeyFrameNumber(){\r
- return m_pBody->getFinalKeyFrameNumber();\r
- }\r
-\r
-\r
-};\r
-\r
-\r
-\r
-\r
-}\r
-\r
-#endif
\ No newline at end of file
+++ /dev/null
- #pragma once\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include <map>\r
- #include <stdexcept>\r
- #include <boost/function/function2.hpp>\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include "mof/Matrix3D.hpp"\r
- \r
- \r
- \r
- namespace mof{\r
- \r
- \r
- class RotationAnimation3D : public mof::Animation<mof::Matrix3D>{\r
- mof::Animation<mof::Vector3D>::Handler m_body;\r
- public:\r
- \r
- RotationAnimation3D(\r
- const std::pair<mof::FrameNumber , mof::Vector3D>& front , \r
- const std::pair<mof::FrameNumber , mof::Vector3D>& back \r
- )\r
- {\r
- m_body = mof::Animation<mof::Vector3D>::Handler\r
- (\r
- new mof::KeyFrameAnimation<mof::Vector3D>(front , back , &mof::linerInterpolate<mof::Vector3D> )\r
- );\r
- }\r
- \r
- RotationAnimation3D\r
- (\r
- const mof::Animation<mof::Vector3D>::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
- \r
- virtual mof::Matrix3D getValue( mof::FrameNumber frame) const{\r
- return mof::Matrix3D::createRotation(m_body->getValue(frame));\r
- }\r
- \r
- \r
- /*mof::FrameNumber getFinalKeyFrameNumber(){\r
- return m_pBody->getFinalKeyFrameNumber();\r
- }*/\r
- \r
- \r
- };\r
- \r
- \r
- \r
- \r
- } //namespace mof\r
- \r
+++ /dev/null
- #pragma once\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include <map>\r
- #include <stdexcept>\r
- #include <boost/function/function2.hpp>\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include "mof/Matrix3D.hpp"\r
- \r
- \r
- \r
- namespace mof{\r
- \r
- \r
- class RotationAnimation3D : public mof::Animation<mof::Matrix3D>{\r
- mof::Animation<mof::Vector3D>::Handler m_body;\r
- public:\r
- \r
- RotationAnimation3D(\r
- const std::pair<mof::FrameNumber , mof::Vector3D>& front , \r
- const std::pair<mof::FrameNumber , mof::Vector3D>& back \r
- )\r
- {\r
- m_body = mof::Animation<mof::Vector3D>::Handler\r
- (\r
- new mof::KeyFrameAnimation<mof::Vector3D>(front , back , &mof::linerInterpolate<mof::Vector3D> )\r
- );\r
- }\r
- \r
- RotationAnimation3D\r
- (\r
- const mof::Animation<mof::Vector3D>::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
- \r
- virtual mof::Matrix3D getValue( mof::FrameNumber frame) const{\r
- return mof::Matrix3D::createRotation(m_body->getValue(frame));\r
- }\r
- \r
- \r
- /*mof::FrameNumber getFinalKeyFrameNumber(){\r
- return m_pBody->getFinalKeyFrameNumber();\r
- }*/\r
- \r
- \r
- };\r
- \r
- \r
- \r
- \r
- } //namespace mof\r
- \r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/KeyFrameAnimation.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- class Scaling2D : public Manipulator< Matrix2D >\r
- {\r
- public:\r
- typedef boost::shared_ptr< Scaling2D > Handler;\r
- \r
- Scaling2D\r
- (\r
- const std::pair< FrameNumber , mof::Vector2D >& front , \r
- const std::pair< FrameNumber , mof::Vector2D >& back \r
- )\r
- {\r
- m_body = makeKeyFrameAnimationHandler< Vector2D >\r
- (\r
- front , back , &linerInterpolate< Vector2D >\r
- );\r
- }\r
- \r
- Scaling2D\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
- virtual Matrix2D value( FrameNumber frame ) const\r
- {\r
- return Matrix2D::createScaling( m_body->value(frame) );\r
- }\r
-\r
- Manipulator<mof::Vector2D>::Handler get( ) const\r
- {\r
- return m_body;\r
- }\r
- \r
- void set( const Manipulator< Vector2D >::Handler& handler ) \r
- {\r
- m_body = handler;\r
- }\r
-\r
- private:\r
- Manipulator< Vector2D >::Handler m_body;\r
-\r
-\r
- };\r
-//{{{ ヘルパ関数\r
- inline Scaling2D::Handler makeScaling2DHandler\r
- (\r
- const std::pair< FrameNumber , Vector2D >& front ,\r
- const std::pair< FrameNumber , Vector2D >& back \r
- )\r
- {\r
- return Scaling2D::Handler\r
- (\r
- new Scaling2D( front , back )\r
- );\r
- }\r
-\r
- inline Scaling2D::Handler makeScaling2DHandler\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- {\r
- return Scaling2D::Handler\r
- (\r
- new Scaling2D( body )\r
- );\r
- }\r
-//}}}\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/KeyFrameAnimation.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- class Scaling2D : public Manipulator< Matrix2D >\r
- {\r
- public:\r
- typedef boost::shared_ptr< Scaling2D > Handler;\r
- \r
- Scaling2D\r
- (\r
- const std::pair< FrameNumber , mof::Vector2D >& front , \r
- const std::pair< FrameNumber , mof::Vector2D >& back \r
- )\r
- {\r
- m_body = makeKeyFrameAnimationHandler< Vector2D >\r
- (\r
- front , back , &linerInterpolate< Vector2D >\r
- );\r
- }\r
- \r
- Scaling2D\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
- virtual Matrix2D value( FrameNumber frame ) const\r
- {\r
- return Matrix2D::createScaling( m_body->value(frame) );\r
- }\r
-\r
- Manipulator<mof::Vector2D>::Handler get( ) const\r
- {\r
- return m_body;\r
- }\r
- \r
- void set( const Manipulator< Vector2D >::Handler& handler ) \r
- {\r
- m_body = handler;\r
- }\r
-\r
- private:\r
- Manipulator< Vector2D >::Handler m_body;\r
-\r
-\r
- };\r
-//{{{ ヘルパ関数\r
- Scaling2D::Handler makeScaling2DHandler\r
- (\r
- const std::pair< FrameNumber , Vector2D >& front ,\r
- const std::pair< FrameNumber , Vector2D >& back \r
- )\r
- {\r
- return Scaling2D::Handler\r
- (\r
- new Scaling2D( front , back )\r
- );\r
- }\r
-\r
- Scaling2D::Handler makeScaling2DHandler\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- {\r
- return Scaling2D::Handler\r
- (\r
- new Scaling2D( body )\r
- );\r
- }\r
-//}}}\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include <boost/function/function2.hpp>\r
-#include "mof/KeyFrameAnimation.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
-\r
-class ScalingAnimation2D : public mof::Animation<mof::Matrix2D>{\r
- mof::Animation<mof::Vector2D>::Handler m_body;\r
-public:\r
- typedef boost::shared_ptr< mof::ScalingAnimation2D > Handler;\r
-\r
- ScalingAnimation2D(\r
- const std::pair<mof::FrameNumber , mof::Vector2D>& front , \r
- const std::pair<mof::FrameNumber , mof::Vector2D>& back \r
- )\r
- {\r
- m_body = mof::Animation<mof::Vector2D>::Handler\r
- (\r
- new mof::KeyFrameAnimation<mof::Vector2D>(front , back , &mof::linerInterpolate<mof::Vector2D> )\r
- );\r
-\r
- }\r
- \r
- ScalingAnimation2D\r
- (\r
- const mof::Animation<mof::Vector2D>::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
-\r
- virtual mof::Matrix2D getValue( mof::FrameNumber frame) const{\r
- return mof::Matrix2D::createScaling(m_body->getValue(frame));\r
- }\r
-\r
- mof::Animation<mof::Vector2D>::Handler get( ) const\r
- {\r
- return m_body;\r
- }\r
- \r
- void set( const mof::Animation<mof::Vector2D>::Handler& handler ) \r
- {\r
- m_body = handler;\r
- }\r
-\r
-\r
-};\r
-\r
-\r
-}\r
-\r
+++ /dev/null
- #pragma once\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include <map>\r
- #include <stdexcept>\r
- #include <boost/function/function2.hpp>\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include "mof/Matrix3D.hpp"\r
- \r
- \r
- namespace mof{\r
- \r
- \r
- class ScalingAnimation3D : public mof::Animation<mof::Matrix3D>{\r
- boost::shared_ptr<mof::KeyFrameAnimation<mof::Vector3D> > m_pBody;\r
- public:\r
- \r
- ScalingAnimation3D(\r
- const std::pair<mof::FrameNumber , mof::Vector3D>& front , \r
- const std::pair<mof::FrameNumber , mof::Vector3D>& back \r
- )\r
- {\r
- m_pBody = boost::shared_ptr<mof::KeyFrameAnimation<mof::Vector3D> >(\r
- new mof::KeyFrameAnimation<mof::Vector3D>(front , back , &mof::linerInterpolate<mof::Vector3D>)\r
- );\r
- }\r
- \r
- virtual mof::Matrix3D getValue( mof::FrameNumber frame) const{\r
- return mof::Matrix3D::createScaling(m_pBody->getValue(frame));\r
- }\r
- \r
- mof::FrameNumber getFinalKeyFrameNumber(){\r
- return m_pBody->getFinalKeyFrameNumber();\r
- }\r
- \r
- \r
- };\r
- \r
- } //namespace mof\r
- \r
+++ /dev/null
- #pragma once\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include <map>\r
- #include <stdexcept>\r
- #include <boost/function/function2.hpp>\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include "mof/Matrix3D.hpp"\r
- \r
- \r
- namespace mof{\r
- \r
- \r
- class ScalingAnimation3D : public mof::Animation<mof::Matrix3D>{\r
- boost::shared_ptr<mof::KeyFrameAnimation<mof::Vector3D> > m_pBody;\r
- public:\r
- \r
- ScalingAnimation3D(\r
- const std::pair<mof::FrameNumber , mof::Vector3D>& front , \r
- const std::pair<mof::FrameNumber , mof::Vector3D>& back \r
- )\r
- {\r
- m_pBody = boost::shared_ptr<mof::KeyFrameAnimation<mof::Vector3D> >(\r
- new mof::KeyFrameAnimation<mof::Vector3D>(front , back , &mof::linerInterpolate<mof::Vector3D>)\r
- );\r
- }\r
- \r
- virtual mof::Matrix3D getValue( mof::FrameNumber frame) const{\r
- return mof::Matrix3D::createScaling(m_pBody->getValue(frame));\r
- }\r
- \r
- mof::FrameNumber getFinalKeyFrameNumber(){\r
- return m_pBody->getFinalKeyFrameNumber();\r
- }\r
- \r
- \r
- };\r
- \r
- } //namespace mof\r
- \r
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-#include "mof/stream/Cascade.hpp"\r
-#include "mof/stream/Constant.hpp"\r
-\r
-namespace mof\r
-{\r
- \r
- template< typename T , class Cascador = DEFAULT_CASCADOR< T > >\r
- struct TypeStream\r
- {\r
- public:\r
- TypeStream( )\r
- : m_frameNumber( 0 ) , m_cascade( mof::makeCascadeHandler< T >() )\r
- {\r
- }\r
- \r
- TypeStream( const typename Cascade< T , Cascador >::Handler& handler )\r
- : m_frameNumber( 0 ) , m_cascade( handler )\r
- {\r
- }\r
-\r
-\r
- ~TypeStream( )\r
- {\r
- }\r
-\r
- typename Cascade< T , Cascador >::Handler& \r
- get()\r
- {\r
- return m_cascador;\r
- }\r
- \r
- typename const Cascade< T , Cascador >::Handler& \r
- get() const\r
- {\r
- return m_cascador;\r
- }\r
-\r
-\r
- TypeStream< T , Cascador >&\r
- operator << \r
- (\r
- const typename Manipulator< T >::Handler& b \r
- )\r
- {\r
- m_cascade->add( b );\r
- return *this;\r
- }\r
-\r
- TypeStream< T , Cascador >&\r
- operator << \r
- (\r
- const T& b \r
- )\r
- {\r
- m_cascade->add( mof::makeConstantHandler( b ) );\r
- return *this;\r
- }\r
-\r
- T value( ) const\r
- {\r
- return m_cascade->value( m_frameNumber );\r
- }\r
- \r
- void update( )\r
- {\r
- m_frameNumber++;\r
- }\r
-\r
- private:\r
- FrameNumber m_frameNumber;\r
- typename Cascade< T , Cascador >::Handler m_cascade;\r
- };\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/KeyFrameAnimation.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- class Translation2D : public Manipulator< Matrix2D >\r
- {\r
- public:\r
- typedef boost::shared_ptr< Translation2D > Handler;\r
- \r
- Translation2D\r
- (\r
- const std::pair< FrameNumber , mof::Vector2D >& front , \r
- const std::pair< FrameNumber , mof::Vector2D >& back \r
- )\r
- {\r
- m_body = makeKeyFrameAnimationHandler< Vector2D >\r
- (\r
- front , back , &linerInterpolate< Vector2D >\r
- );\r
- }\r
- \r
- Translation2D\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
- virtual Matrix2D value( FrameNumber frame ) const\r
- {\r
- return Matrix2D::createTranslation( m_body->value(frame) );\r
- }\r
-\r
- Manipulator<mof::Vector2D>::Handler get( ) const\r
- {\r
- return m_body;\r
- }\r
- \r
- void set( const Manipulator< Vector2D >::Handler& handler ) \r
- {\r
- m_body = handler;\r
- }\r
-\r
- private:\r
- Manipulator< Vector2D >::Handler m_body;\r
-\r
-\r
- };\r
-\r
-//{{{ ヘルパ関数\r
- inline Translation2D::Handler makeTranslation2DHandler\r
- (\r
- const std::pair< FrameNumber , Vector2D >& front ,\r
- const std::pair< FrameNumber , Vector2D >& back \r
- )\r
- {\r
- return Translation2D::Handler\r
- (\r
- new Translation2D( front , back )\r
- );\r
- }\r
-\r
- inline Translation2D::Handler makeTranslation2DHandler\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- {\r
- return Translation2D::Handler\r
- (\r
- new Translation2D( body )\r
- );\r
- }\r
-//}}}\r
-\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/KeyFrameAnimation.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- class Translation2D : public Manipulator< Matrix2D >\r
- {\r
- public:\r
- typedef boost::shared_ptr< Translation2D > Handler;\r
- \r
- Translation2D\r
- (\r
- const std::pair< FrameNumber , mof::Vector2D >& front , \r
- const std::pair< FrameNumber , mof::Vector2D >& back \r
- )\r
- {\r
- m_body = makeKeyFrameAnimationHandler< Vector2D >\r
- (\r
- front , back , &linerInterpolate< Vector2D >\r
- );\r
- }\r
- \r
- Translation2D\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
- virtual Matrix2D value( FrameNumber frame ) const\r
- {\r
- return Matrix2D::createTranslation( m_body->value(frame) );\r
- }\r
-\r
- Manipulator<mof::Vector2D>::Handler get( ) const\r
- {\r
- return m_body;\r
- }\r
- \r
- void set( const Manipulator< Vector2D >::Handler& handler ) \r
- {\r
- m_body = handler;\r
- }\r
-\r
- private:\r
- Manipulator< Vector2D >::Handler m_body;\r
-\r
-\r
- };\r
-\r
-//{{{ ヘルパ関数\r
- Translation2D::Handler makeTranslation2DHandler\r
- (\r
- const std::pair< FrameNumber , Vector2D >& front ,\r
- const std::pair< FrameNumber , Vector2D >& back \r
- )\r
- {\r
- return Translation2D::Handler\r
- (\r
- new Translation2D( front , back )\r
- );\r
- }\r
-\r
- Translation2D::Handler makeTranslation2DHandler\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- {\r
- return Translation2D::Handler\r
- (\r
- new Translation2D( body )\r
- );\r
- }\r
-//}}}\r
-\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/KeyFrameAnimation.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-\r
-\r
-namespace mof{\r
-\r
- class Translation2D : public Manipulator< Matrix2D >\r
- {\r
- public:\r
- typedef boost::shared_ptr< Translation2D > Handler;\r
- \r
- Translation2D\r
- (\r
- const std::pair< FrameNumber , mof::Vector2D >& front , \r
- const std::pair< FrameNumber , mof::Vector2D >& back \r
- )\r
- {\r
- m_body = makeKeyFrameAnimationHandler\r
- (\r
- front , back , &linerInterpolate< Vector2D >\r
- );\r
- }\r
- \r
- Translation2D\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
- virtual Matrix2D value( FrameNumber frame ) const\r
- {\r
- return Matrix2D::createTranslation( m_body->value(frame) );\r
- }\r
-\r
- Manipulator<mof::Vector2D>::Handler get( ) const\r
- {\r
- return m_body;\r
- }\r
- \r
- void set( const Manipulator< Vector2D >::Handler& handler ) \r
- {\r
- m_body = handler;\r
- }\r
-\r
- private:\r
- Manipulator< Vector2D >::Handler m_body;\r
-\r
-\r
- };\r
-\r
-//{{{ ヘルパ関数\r
- template< typename T >\r
- typename Translation2D< T >::Handler \r
- makeTranslation2DHandler\r
- (\r
- const std::pair< FrameNumber , T >& front ,\r
- const std::pair< FrameNumber , T >& back ,\r
- )\r
- {\r
- return Translation2D< T >::Handler\r
- (\r
- new Translation2D< T >( front , back )\r
- );\r
- }\r
-\r
- template< typename T >\r
- typename Translation2D< T >::Handler \r
- makeTranslation2DHandler\r
- (\r
- const Manipulator< Vector2D >::Handler& body\r
- )\r
- {\r
- return Translation2D< T >::Handler\r
- (\r
- new Translation2D< T >( body )\r
- );\r
- }\r
-\r
- template< typename T >\r
- typename KeyFrameAnimation< T >::Handler \r
- makeKeyFrameAnimationHandler\r
- (\r
- )\r
- {\r
- return KeyFrameAnimation< T >::Handler\r
- (\r
- new KeyFrameAnimation< T >( front , back ) \r
- );\r
- }\r
-//}}}\r
-\r
-}\r
-\r
+++ /dev/null
- #pragma once\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include <map>\r
- #include <stdexcept>\r
- #include <boost/function/function2.hpp>\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include "mof/Matrix3D.hpp"\r
- \r
- \r
- \r
- namespace mof{\r
- \r
- \r
- class TranslationAnimation3D : public mof::Animation<mof::Matrix3D>{\r
- mof::Animation<mof::Vector3D>::Handler m_body;\r
- public:\r
- \r
- TranslationAnimation3D\r
- (\r
- const std::pair<mof::FrameNumber , mof::Vector3D>& front , \r
- const std::pair<mof::FrameNumber , mof::Vector3D>& back \r
- )\r
- {\r
- m_body = mof::Animation<mof::Vector3D>::Handler\r
- (\r
- new mof::KeyFrameAnimation<mof::Vector3D>(front , back , &mof::linerInterpolate<mof::Vector3D>)\r
- );\r
- }\r
- \r
- TranslationAnimation3D\r
- (\r
- const mof::Animation<mof::Vector3D>::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
- virtual mof::Matrix3D getValue( mof::FrameNumber frame) const{\r
- return mof::Matrix3D::createTranslation(m_body->getValue(frame));\r
- }\r
- \r
- /*mof::FrameNumber getFinalKeyFrameNumber(){\r
- return m_pBody->getFinalKeyFrameNumber();\r
- }*/\r
- \r
- \r
- };\r
- \r
- \r
- \r
- \r
- } //namespace mof\r
- \r
+++ /dev/null
- #pragma once\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include <map>\r
- #include <stdexcept>\r
- #include <boost/function/function2.hpp>\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include "mof/Matrix3D.hpp"\r
- \r
- \r
- \r
- namespace mof{\r
- \r
- \r
- class TranslationAnimation3D : public mof::Animation<mof::Matrix3D>{\r
- mof::Animation<mof::Vector3D>::Handler m_body;\r
- public:\r
- \r
- TranslationAnimation3D\r
- (\r
- const std::pair<mof::FrameNumber , mof::Vector3D>& front , \r
- const std::pair<mof::FrameNumber , mof::Vector3D>& back \r
- )\r
- {\r
- m_body = mof::Animation<mof::Vector3D>::Handler\r
- (\r
- new mof::KeyFrameAnimation<mof::Vector3D>(front , back , &mof::linerInterpolate<mof::Vector3D>)\r
- );\r
- }\r
- \r
- TranslationAnimation3D\r
- (\r
- const mof::Animation<mof::Vector3D>::Handler& body\r
- )\r
- : m_body( body )\r
- {\r
- }\r
-\r
- virtual mof::Matrix3D getValue( mof::FrameNumber frame) const{\r
- return mof::Matrix3D::createTranslation(m_body->getValue(frame));\r
- }\r
- \r
- /*mof::FrameNumber getFinalKeyFrameNumber(){\r
- return m_pBody->getFinalKeyFrameNumber();\r
- }*/\r
- \r
- \r
- };\r
- \r
- \r
- \r
- \r
- } //namespace mof\r
- \r
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-#include "mof/stream/Cascade.hpp"\r
-#include "mof/stream/Constant.hpp"\r
-#include "mof/stream/Offset.hpp"\r
-\r
-namespace mof\r
-{\r
- \r
- template< typename T , class Cascador = DEFAULT_CASCADOR< T > >\r
- class TypeStream\r
- {\r
- public:\r
- TypeStream( )\r
- : m_frameNumber( 0 ) , m_cascade( mof::makeCascadeHandler< T , Cascador >() )\r
- {}\r
- \r
-\r
- TypeStream( const typename Manipulator< T >::Handler& handler )\r
- : m_frameNumber( 0 ) , m_cascade( mof::makeCascadeHandler< T , Cascador >() )\r
- {\r
- m_cascade << handler;\r
- }\r
- \r
- TypeStream( const T& value )\r
- : m_frameNumber( 0 ) , m_cascade( mof::makeCascadeHandler< T , Cascador >() )\r
- {\r
- m_cascade << value;\r
- }\r
-\r
- ~TypeStream( )\r
- {}\r
- \r
- TypeStream< T , Cascador >&\r
- operator << \r
- (\r
- const typename Manipulator< T >::Handler& b \r
- )\r
- {\r
- m_cascade->add\r
- (\r
- makeOffsetHandler< T >( b , -1 * (int)m_frameNumber)\r
- );\r
- return *this;\r
- }\r
- \r
- TypeStream< T , Cascador >&\r
- operator << \r
- (\r
- const TypeStream< T , Cascador >& obj \r
- )\r
- {\r
- //m_cascade->add( obj.m_cascade );\r
- m_cascade->add( makeCacheHandler<T>(makeOffsetHandler< T >( obj.m_cascade , obj.m_frameNumber - m_frameNumber) ) );\r
- return *this;\r
- }\r
-\r
-\r
- TypeStream< T , Cascador >&\r
- operator << \r
- (\r
- const T& b \r
- )\r
- {\r
- m_cascade->add( mof::makeConstantHandler( b ) );\r
- return *this;\r
- }\r
-\r
- T value( ) const\r
- {\r
- return m_cascade->value( m_frameNumber );\r
- }\r
-\r
- typename Manipulator<T>::Handler toManipulator()\r
- {\r
- return m_cascade;\r
- }\r
- \r
- void update( )\r
- {\r
- m_frameNumber++;\r
- }\r
-\r
- FrameNumber getCurrentFrameNumber() const\r
- {\r
- return m_frameNumber;\r
- }\r
-\r
- private:\r
- FrameNumber m_frameNumber;\r
- typename Cascade< T , Cascador >::Handler m_cascade;\r
- };\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include <boost/shared_ptr.hpp>\r
-#include "mof/stream/Cascade.hpp"\r
-#include "mof/stream/Constant.hpp"\r
-#include "mof/stream/Offset.hpp"\r
-\r
-namespace mof\r
-{\r
- \r
- template< typename T , class Cascador = DEFAULT_CASCADOR< T > >\r
- class TypeStream\r
- {\r
- public:\r
- TypeStream( )\r
- : m_frameNumber( 0 ) , m_cascade( mof::makeCascadeHandler< T , Cascador >() )\r
- {}\r
- \r
-\r
- TypeStream( const typename Manipulator< T >::Handler& handler )\r
- : m_frameNumber( 0 ) , m_cascade( mof::makeCascadeHandler< T , Cascador >() )\r
- {\r
- m_cascade << handler;\r
- }\r
- \r
- TypeStream( const T& value )\r
- : m_frameNumber( 0 ) , m_cascade( mof::makeCascadeHandler< T , Cascador >() )\r
- {\r
- m_cascade << value;\r
- }\r
-\r
- ~TypeStream( )\r
- {}\r
- \r
- TypeStream< T , Cascador >&\r
- operator << \r
- (\r
- const typename Manipulator< T >::Handler& b \r
- )\r
- {\r
- m_cascade->add\r
- (\r
- makeOffsetHandler< T >( b , -1 * (int)m_frameNumber)\r
- );\r
- return *this;\r
- }\r
- \r
- TypeStream< T , Cascador >&\r
- operator << \r
- (\r
- const TypeStream< T , Cascador >& obj \r
- )\r
- {\r
- //m_cascade->add( obj.m_cascade );\r
- m_cascade->add( makeCacheHandler<T>(makeOffsetHandler< T >( obj.m_cascade , obj.m_frameNumber - m_frameNumber) ) );\r
- return *this;\r
- }\r
-\r
-\r
- TypeStream< T , Cascador >&\r
- operator << \r
- (\r
- const T& b \r
- )\r
- {\r
- m_cascade->add( mof::makeConstantHandler( b ) );\r
- return *this;\r
- }\r
-\r
- T value( ) const\r
- {\r
- return m_cascade->value( m_frameNumber );\r
- }\r
-\r
- Manipulator<T>::Handler toManipulator()\r
- {\r
- return m_cascade;\r
- }\r
- \r
- void update( )\r
- {\r
- m_frameNumber++;\r
- }\r
-\r
- FrameNumber getCurrentFrameNumber() const\r
- {\r
- return m_frameNumber;\r
- }\r
-\r
- private:\r
- FrameNumber m_frameNumber;\r
- typename Cascade< T , Cascador >::Handler m_cascade;\r
- };\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/Animation.hpp"\r
-#include "mof/Vector3D.hpp"\r
- \r
-namespace mof{\r
-\r
- class UniformAnimation : public mof::Animation<mof::Vector3D>\r
- {\r
- \r
- mof::Vector3D m_initialValue;\r
- mof::Vector3D m_targetValue; \r
- double m_speed; \r
- public:\r
- \r
- UniformAnimation\r
- (\r
- const mof::Vector3D& initialValue ,\r
- const mof::Vector3D& targetValue ,\r
- double speed \r
- ) \r
- : m_initialValue(initialValue) , m_targetValue(targetValue) , m_speed(speed)\r
- {\r
- }\r
- \r
- \r
- virtual mof::Vector3D getValue( mof::FrameNumber frame) const\r
- {\r
- \r
- mof::Vector3D direction = ( m_targetValue - m_initialValue );\r
- direction.normalize();\r
- mof::Vector3D result = m_initialValue + direction * m_speed * frame;//\91\9d\95ª \r
- if( direction.x > 0 && result.x > m_targetValue.x )result.x = m_targetValue.x; \r
- else if( direction.x < 0 && result.x < m_targetValue.x )result.x = m_targetValue.x; \r
- if( direction.y > 0 && result.y > m_targetValue.y )result.y = m_targetValue.y; \r
- else if( direction.y < 0 && result.y < m_targetValue.y )result.y = m_targetValue.y; \r
- if( direction.z > 0 && result.z > m_targetValue.z )result.z = m_targetValue.z; \r
- else if( direction.z < 0 && result.z < m_targetValue.z )result.z = m_targetValue.z; \r
- \r
- return result;\r
- }\r
-\r
- \r
- };\r
- \r
- \r
- \r
-} //namespace mof\r
- \r
+++ /dev/null
-#pragma once\r
-#include "mof/Animation.hpp"\r
-#include "mof/Vector3D.hpp"\r
- \r
-namespace mof{\r
-\r
- class UniformAnimation : public mof::Animation<mof::Vector3D>\r
- {\r
- \r
- mof::Vector3D m_initialValue;\r
- mof::Vector3D m_targetValue; \r
- double m_speed; \r
- public:\r
- \r
- UniformAnimation\r
- (\r
- const mof::Vector3D& initialValue ,\r
- const mof::Vector3D& targetValue ,\r
- double speed \r
- ) \r
- : m_initialValue(initialValue) , m_targetValue(targetValue) , m_speed(speed)\r
- {\r
- }\r
- \r
- \r
- virtual mof::Vector3D getValue( mof::FrameNumber frame) const\r
- {\r
- \r
- mof::Vector3D direction = ( m_targetValue - m_initialValue );\r
- direction.normalize();\r
- mof::Vector3D result = m_initialValue + direction * m_speed * frame;//増分 \r
- if( direction.x > 0 && result.x > m_targetValue.x )result.x = m_targetValue.x; \r
- else if( direction.x < 0 && result.x < m_targetValue.x )result.x = m_targetValue.x; \r
- if( direction.y > 0 && result.y > m_targetValue.y )result.y = m_targetValue.y; \r
- else if( direction.y < 0 && result.y < m_targetValue.y )result.y = m_targetValue.y; \r
- if( direction.z > 0 && result.z > m_targetValue.z )result.z = m_targetValue.z; \r
- else if( direction.z < 0 && result.z < m_targetValue.z )result.z = m_targetValue.z; \r
- \r
- return result;\r
- }\r
-\r
- \r
- };\r
- \r
- \r
- \r
-} //namespace mof\r
- \r
+++ /dev/null
- #pragma once\r
- \r
- #include "mof/ParametricAnimation.hpp"\r
- #include "mof/KeyFrameAnimation.hpp"\r
- #include "mof/RotationAnimation3D.hpp"\r
- #include "mof/TranslationAnimation3D.hpp"\r
- #include "mof/ScalingAnimation3D.hpp"\r
- #include "mof/RotationAnimation2D.hpp"\r
- #include "mof/TranslationAnimation2D.hpp"\r
- #include "mof/ScalingAnimation2D.hpp"\r
- #include "mof/Constant.hpp"\r
- #include "mof/CascadingAnimation.hpp"\r
- #include "mof/LoopAnimation.hpp"\r
- #include "mof/Joint.hpp"\r
- #include "mof/dynamic/utilities.hpp"\r
- #include "mof/BoundsAnimation.hpp"\r
- #include "mof/OffsetAnimation.hpp"\r
- #include "mof/Interpolation.hpp"\r
+++ /dev/null
-#include "mof/stream/utilities.hpp"\r
-#include "mof/stream/Joint.hpp"\r
-#include <boost/bind.hpp>\r
-\r
-namespace\r
-{\r
- mof::Vector2D matrix2translation( const mof::Matrix2D& matrix )\r
- {\r
- return mof::Matrix2D::getTranslation( matrix );\r
- }\r
- \r
- mof::Vector2D matrix2scaling( const mof::Matrix2D& matrix )\r
- {\r
- return matrix.getDiagonal( );\r
- }\r
-\r
- mof::Vector2D matrix2rotation( const mof::Matrix2D& matrix )\r
- {\r
- //TODO implementation\r
- return matrix.getDiagonal( );\r
- }\r
-\r
-}\r
-\r
-\r
-namespace mof\r
-{\r
-\r
- Manipulator< Vector2D >::Handler \r
- makeTranslation2DHandler( const Manipulator< Matrix2D >::Handler& handler )\r
- {\r
- return makeJointHandler( handler , &matrix2translation );\r
- //return makeJointHandler( handler , boost::bind( &matrix2translation ) );\r
- }\r
-\r
- Manipulator< Vector2D >::Handler \r
- makeScaling2DHandler( const Manipulator< Matrix2D >::Handler& handler )\r
- {\r
- return makeJointHandler( handler , &matrix2scaling );\r
- //return makeJointHandler( handler , boost::bind( &matrix2scaling ) );\r
- }\r
-\r
-\r
- Manipulator< Vector2D >::Handler \r
- makeRotation2DHandler( const Manipulator< Matrix2D >::Handler& handler )\r
- {\r
- return makeJointHandler( handler , &matrix2rotation );\r
- //return makeJointHandler( handler , boost::bind( &matrix2rotation ) );\r
- }\r
-\r
-\r
-\r
-} // namespace mof\r
-\r
+++ /dev/null
-#include "mof/stream/utilities.hpp"\r
-#include "mof/stream/Joint.hpp"\r
-#include <boost/bind.hpp>\r
-\r
-namespace\r
-{\r
- mof::Vector2D matrix2translation( const mof::Matrix2D& matrix )\r
- {\r
- return mof::Matrix2D::getTranslation( matrix );\r
- }\r
- \r
- mof::Vector2D matrix2scaling( const mof::Matrix2D& matrix )\r
- {\r
- return matrix.getDiagonal( );\r
- }\r
-\r
- mof::Vector2D matrix2rotation( const mof::Matrix2D& matrix )\r
- {\r
- //TODO implementation\r
- return matrix.getDiagonal( );\r
- }\r
-\r
-}\r
-\r
-\r
-namespace mof\r
-{\r
-\r
- Animation< Vector2D >::Handler \r
- makeTranslation2DHandler( const Animation< Matrix2D >::Handler& handler )\r
- {\r
- return makeJointHandler( handler , &matrix2translation );\r
- //return makeJointHandler( handler , boost::bind( &matrix2translation ) );\r
- }\r
-\r
- Animation< Vector2D >::Handler \r
- makeScaling2DHandler( const Animation< Matrix2D >::Handler& handler )\r
- {\r
- return makeJointHandler( handler , &matrix2scaling );\r
- //return makeJointHandler( handler , boost::bind( &matrix2scaling ) );\r
- }\r
-\r
-\r
- Animation< Vector2D >::Handler \r
- makeRotation2DHandler( const Animation< Matrix2D >::Handler& handler )\r
- {\r
- return makeJointHandler( handler , &matrix2rotation );\r
- //return makeJointHandler( handler , boost::bind( &matrix2rotation ) );\r
- }\r
-\r
-\r
-\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-#include "mof/stream/TypeStream.hpp"\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-#include "mof/Color.hpp"\r
-#include "mof/Rectangle.hpp"\r
-\r
-namespace mof\r
-{\r
- typedef TypeStream< Vector2D , Add< Vector2D > > Vector2DStream;\r
- typedef TypeStream< Color4f , Multiply< Color4f > > ColorStream;\r
- typedef TypeStream< Rectangle< float > , Overwrite< Rectangle< float > > > RectangleStream;\r
-\r
-\r
- Manipulator< Vector2D >::Handler \r
- makeTranslation2DHandler( const Manipulator< Matrix2D >::Handler& handler );\r
-\r
- Manipulator< Vector2D >::Handler \r
- makeScaling2DHandler( const Manipulator< Matrix2D >::Handler& handler );\r
-\r
- Manipulator< Vector2D >::Handler \r
- makeRotation2DHandler( const Manipulator< Matrix2D >::Handler& handler );\r
-\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-#include "mof/stream/TypeStream.hpp"\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/Matrix2D.hpp"\r
-#include "mof/Color.hpp"\r
-#include "mof/Rectangle.hpp"\r
-\r
-namespace mof\r
-{\r
- typedef TypeStream< Vector2D , Add< Vector2D > > Vector2DStream;\r
- typedef TypeStream< Color4f , Multiply< Color4f > > ColorStream;\r
- typedef TypeStream< Rectangle< float > , Add< Rectangle< float > > > RectangleStream;\r
-\r
-\r
- Manipulator< Vector2D >::Handler \r
- makeTranslation2DHandler( const Manipulator< Matrix2D >::Handler& handler );\r
-\r
- Manipulator< Vector2D >::Handler \r
- makeScaling2DHandler( const Manipulator< Matrix2D >::Handler& handler );\r
-\r
- Manipulator< Vector2D >::Handler \r
- makeRotation2DHandler( const Manipulator< Matrix2D >::Handler& handler );\r
-\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-\r
-\r
-#include "mof/stream/TypeStream.hpp"\r
-#include "mof/stream/Manipulator.hpp"\r
-#include "mof/stream/Cascade.hpp"\r
-#include "mof/stream/Constant.hpp"\r
-#include "mof/stream/KeyFrameAnimation.hpp"\r
-#include "mof/stream/Translation2D.hpp"\r
-#include "mof/stream/Rotation2D.hpp"\r
-#include "mof/stream/Scaling2D.hpp"\r
-#include "mof/stream/Loop.hpp"\r
-#include "mof/stream/Joint.hpp"\r
-#include "mof/stream/Offset.hpp"\r
-#include "mof/stream/Reference.hpp"\r
-#include "mof/stream/Filter.hpp"\r
-#include "mof/stream/ReferenceWrapper.hpp"\r
-#include "mof/stream/Cache.hpp"\r
-#include "mof/stream/utilities.hpp"\r
-\r
-/*\r
-#include "mof/ParametricAnimation.hpp"\r
-#include "mof/RotationAnimation3D.hpp"\r
-#include "mof/TranslationAnimation3D.hpp"\r
-#include "mof/ScalingAnimation3D.hpp"\r
-#include "mof/BoundsAnimation.hpp"\r
-*/\r
+++ /dev/null
-#include <cppunit/BriefTestProgressListener.h>\r
-#include <cppunit/CompilerOutputter.h>\r
-#include <cppunit/extensions/TestFactoryRegistry.h>\r
-#include <cppunit/TestResult.h>\r
-#include <cppunit/TestResultCollector.h>\r
-#include <cppunit/TestRunner.h>\r
-#include <conio.h>\r
-\r
-int main( int argc, char* argv[] ) {\r
- // \83C\83x\83\93\83g\81E\83}\83l\81[\83W\83\83\82Æ\83e\83X\83g\81E\83R\83\93\83g\83\8d\81[\83\89\82ð\90¶\90¬\82·\82é\r
- CPPUNIT_NS::TestResult controller;\r
-\r
- // \83e\83X\83g\8c\8b\89Ê\8eû\8fW\83\8a\83X\83i\82ð\83R\83\93\83g\83\8d\81[\83\89\82É\83A\83^\83b\83`\82·\82é\r
- CPPUNIT_NS::TestResultCollector result;\r
- controller.addListener( &result );\r
-\r
- // \81u.\81v\82Å\90i\8ds\8fó\8bµ\82ð\8fo\97Í\82·\82é\83\8a\83X\83i\82ð\83A\83^\83b\83`\82·\82é\r
- CPPUNIT_NS::BriefTestProgressListener progress;\r
- controller.addListener( &progress );\r
-\r
- // \83e\83X\83g\81E\83\89\83\93\83i\81[\82É\83e\83X\83g\8cQ\82ð\97^\82¦\81A\83e\83X\83g\82·\82é\r
- CPPUNIT_NS::TestRunner runner;\r
- runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );\r
- runner.run( controller );\r
-\r
- // \83e\83X\83g\8c\8b\89Ê\82ð\95W\8f\80\8fo\97Í\82É\93f\82«\8fo\82·\r
- CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() );\r
- outputter.write();\r
-\r
- \r
- return result.wasSuccessful() ? 0 : 1;\r
-}
\ No newline at end of file
+++ /dev/null
-#include <cppunit/extensions/HelperMacros.h> \r
-#include "mof/SceneGraph.hpp"\r
-#include "mof/tstring.hpp"\r
-\r
-class SceneGraphTest : public CPPUNIT_NS::TestFixture { \r
- CPPUNIT_TEST_SUITE( SceneGraphTest );\r
- CPPUNIT_TEST( test_run ); \r
- CPPUNIT_TEST_SUITE_END(); \r
-\r
-protected:\r
- mof::SceneGraph* c_;\r
-\r
-public:\r
- void setUp(); //\r
- void tearDown(); //\r
-\r
-protected:\r
- void test_run(); //\r
- \r
-};\r
-\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION( SceneGraphTest ); //\r
-\r
-// \8ae\83e\83X\83g\81E\83P\81[\83X\82Ì\8eÀ\8ds\92¼\91O\82É\8cÄ\82Î\82ê\82é\r
-void SceneGraphTest::setUp() {\r
- c_ = new mof::SceneGraph();\r
-}\r
-\r
-// \8ae\83e\83X\83g\81E\83P\81[\83X\82Ì\8eÀ\8ds\92¼\8cã\82É\8cÄ\82Î\82ê\82é\r
-void SceneGraphTest::tearDown() {\r
- delete c_;\r
-}\r
-\r
-// \82±\82ê\88È\8d~\82Í\83e\83X\83g\81E\83P\81[\83X\82Ì\8eÀ\91\95\93à\97e\r
-\r
-void SceneGraphTest::test_run() {\r
- //CPPUNIT_ASSERT_EQUAL(0, c_->run(NULL)); //\r
-}\r
+++ /dev/null
-#include <cppunit/extensions/HelperMacros.h> \r
-#include "mof/Timer.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <memory>\r
-\r
-class TimerTest : public CPPUNIT_NS::TestFixture { \r
- CPPUNIT_TEST_SUITE( TimerTest ); \r
- CPPUNIT_TEST( test_run ); \r
- CPPUNIT_TEST_SUITE_END(); \r
-\r
-protected:\r
- std::auto_ptr<mof::Timer> m_pTarget;\r
-\r
-public:\r
- void setUp(); \r
-\r
-protected:\r
- void test_run();\r
- \r
-};\r
-\r
-\r
-CPPUNIT_TEST_SUITE_REGISTRATION( TimerTest ); \r
-\r
-void TimerTest::setUp() {\r
- m_pTarget = std::auto_ptr<mof::Timer>(new mof::Timer());\r
-}\r
-\r
-\r
-void TimerTest::test_run(){\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#ifndef TSTRING_HPP\r
-#define TSTRING_HPP\r
-\r
-#include <string>\r
-#include <tchar.h>\r
-#include <sstream>\r
-\r
-namespace mof {\r
- typedef std::basic_string<TCHAR> tstring;\r
- typedef std::basic_ostringstream<TCHAR> otstringstream;\r
-};\r
-\r
-#endif\r
+++ /dev/null
-#pragma once\r
-#define _USE_MATH_DEFINES\r
-#include <math.h>\r
-#include <boost/foreach.hpp>\r
-#define foreach BOOST_FOREACH \r
-\r
-namespace mof{\r
- \r
- inline float deg2rad( float deg )\r
- {\r
- return deg / 180.0f * static_cast<float>(M_PI);\r
- }\r
-\r
- inline float rad2deg( float rad )\r
- {\r
- return rad / static_cast<float>(M_PI) * 180.0f;\r
- }\r
-\r
- template< typename T , int N >\r
- int lengthOf( T (&)[N] )\r
- {\r
- return N;\r
- }\r
- \r
- template< typename T , int N >\r
- T& lastOf( T(&arr)[N] )\r
- {\r
- return arr[N-1];\r
- }\r
-\r
- template< typename T >\r
- void safe_delete( T* (&p) )\r
- {\r
- delete p;\r
- p = NULL;\r
- }\r
-\r
- template< typename T >\r
- void safe_delete_array( T* (&p) )\r
- {\r
- delete[] p;\r
- p = NULL;\r
- }\r
-\r
- inline int rotation_mod(int a , unsigned int b)\r
- {\r
- return a >= 0 ? a % b : b - (-a % b);\r
- }\r
-\r
-\r
-\r
-} // namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/widget/WdigetView.hpp"\r
-\r
-namespace mof\r
-{\r
- \r
-\r
- class ButtonWidgetView \r
- :\r
- public WidgetView ,\r
- {\r
- public:\r
-\r
- virtual FrameNumber blur( bool imidiately = false ) = 0;\r
-\r
- };\r
-\r
-}\r
+++ /dev/null
-#include <mof/widget/Container.hpp>\r
-#include "mof/mofGraphics.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/widgets.hpp"\r
-#include "mof/streams.hpp"\r
-#include <vector>\r
-#include <algorithm>\r
-#include <memory>\r
-#include <boost/shared_ptr.hpp>\r
- \r
-using std::auto_ptr;\r
-using boost::shared_ptr;\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-//{{{ struct Impl\r
- struct Container::Impl\r
- {\r
- std::vector< shared_ptr<WidgetView> > children;\r
- auto_ptr<Layout> pLayout;\r
- \r
- \r
- Impl() : pLayout(NULL){}\r
- ~Impl(){}\r
- \r
- };\r
-//}}}\r
-//{{{ constructor\r
- Container::Container\r
- (\r
- const shared_ptr<WidgetView>& front ,\r
- const shared_ptr<WidgetView>& back ,\r
- const FactoryMethod<Layout>& layout\r
- )\r
- : \r
- m_pImpl( new Impl( ) ) \r
- {\r
- \r
- int length = (&back - &front) +1;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- m_pImpl->children.push_back( (&front)[i] );\r
- }\r
-\r
- m_pImpl->pLayout = auto_ptr<Layout>( layout() );\r
- foreach(shared_ptr<WidgetView> pView , m_pImpl->children)\r
- {\r
- m_pImpl->pLayout->add(pView);\r
- }\r
- m_sizeStream << m_pImpl->pLayout->getPreferredSize();\r
- m_pImpl->pLayout->connect(this);\r
-\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- m_pImpl->children[i]->getColorStream() << getColorStream(); \r
- }\r
- }\r
-//}}}\r
-//{{{ destructor\r
- Container::~Container()\r
- {\r
- }\r
-//}}}\r
-//{{{ update\r
- void Container::update( )\r
- {\r
- m_positionStream.update( );\r
- m_sizeStream.update( );\r
- m_colorStream.update( );\r
- foreach(shared_ptr<WidgetView> value , m_pImpl->children)\r
- {\r
- value->update();\r
- }\r
- }\r
-//}}}\r
-//{{{ draw\r
- void Container::draw( ) const\r
- {\r
- foreach(shared_ptr<WidgetView> value , m_pImpl->children)\r
- {\r
- value->draw();\r
- }\r
-\r
- }\r
-//}}}\r
-//{{{ show\r
- FrameNumber Container::show(bool imidiately) \r
- {\r
- unsigned int maxFrame = 0;\r
- foreach(shared_ptr<WidgetView> value , m_pImpl->children)\r
- {\r
- maxFrame = max(value->show(imidiately) , maxFrame);\r
- }\r
- return maxFrame;\r
- }\r
-//}}}\r
-//{{{ hide\r
- FrameNumber Container::hide(bool imidiately)\r
- {\r
- unsigned int maxFrame = 0;\r
- foreach(shared_ptr<WidgetView> value , m_pImpl->children)\r
- {\r
- maxFrame = max(value->hide(imidiately) , maxFrame);\r
- }\r
- return maxFrame;\r
-\r
- }\r
-//}}}\r
-//{{{ focus\r
- FrameNumber Container::focus(bool) \r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ blur\r
- FrameNumber Container::blur(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ click\r
- FrameNumber Container::click(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ getAt\r
- shared_ptr<WidgetView> Container::getAt(int index) const\r
- {\r
- return m_pImpl->children[index];\r
- }\r
-//}}}\r
-//{{{ getLength\r
- int Container::getLength() const\r
- {\r
- return m_pImpl->children.size();\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsUp\r
- int Container::getAdjacencyAsUp(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsUp(index);\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsDown\r
- int Container::getAdjacencyAsDown(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsDown(index);\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsLeft\r
- int Container::getAdjacencyAsLeft(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsLeft(index);\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsRight\r
- int Container::getAdjacencyAsRight(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsRight(index);\r
- }\r
-//}}}\r
-//{{{ add\r
- void Container::add(shared_ptr<WidgetView> pView)\r
- {\r
- //children.push_back( pView ); \r
- //m_pImpl->pLayout = adaptWidgetViewAndLayout( m_pImpl->children.begin( ) , m_pImpl->children.end( ) , layout);\r
- }\r
-//}}}\r
-\r
-}\r
-} // namespace mof\r
+++ /dev/null
-#include <mof/widget/Container.hpp>\r
-#include "mof/mofGraphics.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/widgets.hpp"\r
-#include "mof/streams.hpp"\r
-#include <vector>\r
-#include <algorithm>\r
-#include <memory>\r
-#include <boost/shared_ptr.hpp>\r
- \r
-using std::auto_ptr;\r
-using boost::shared_ptr;\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-//{{{ struct Impl\r
- struct Container::Impl\r
- {\r
- std::vector< shared_ptr<WidgetView> > children;\r
- auto_ptr<Layout> pLayout;\r
- \r
- \r
- Impl() : pLayout(NULL){}\r
- ~Impl(){}\r
- \r
- };\r
-//}}}\r
-//{{{ constructor\r
- Container::Container\r
- (\r
- const shared_ptr<WidgetView>& front ,\r
- const shared_ptr<WidgetView>& back ,\r
- const FactoryMethod<Layout>& layout\r
- )\r
- : \r
- m_pImpl( new Impl( ) ) \r
- {\r
- \r
- int length = (&back - &front) +1;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- m_pImpl->children.push_back( (&front)[i] );\r
- }\r
-\r
- m_pImpl->pLayout = auto_ptr<Layout>( layout() );\r
- foreach(shared_ptr<WidgetView> pView , m_pImpl->children)\r
- {\r
- m_pImpl->pLayout->add(pView);\r
- }\r
- DEBUG_PRINT( m_pImpl->pLayout->getPreferredSize());\r
- m_sizeStream << m_pImpl->pLayout->getPreferredSize();\r
- m_pImpl->pLayout->connect(this);\r
-\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- m_pImpl->children[i]->getColorStream() << getColorStream(); \r
- }\r
- }\r
-//}}}\r
-//{{{ destructor\r
- Container::~Container()\r
- {\r
- }\r
-//}}}\r
-//{{{ update\r
- void Container::update( )\r
- {\r
- m_positionStream.update( );\r
- m_sizeStream.update( );\r
- m_colorStream.update( );\r
- foreach(shared_ptr<WidgetView> value , m_pImpl->children)\r
- {\r
- value->update();\r
- }\r
- }\r
-//}}}\r
-//{{{ draw\r
- void Container::draw( ) const\r
- {\r
- foreach(shared_ptr<WidgetView> value , m_pImpl->children)\r
- {\r
- value->draw();\r
- }\r
-\r
- }\r
-//}}}\r
-//{{{ show\r
- FrameNumber Container::show(bool imidiately) \r
- {\r
- unsigned int maxFrame = 0;\r
- foreach(shared_ptr<WidgetView> value , m_pImpl->children)\r
- {\r
- maxFrame = max(value->show(imidiately) , maxFrame);\r
- }\r
- return maxFrame;\r
- }\r
-//}}}\r
-//{{{ hide\r
- FrameNumber Container::hide(bool imidiately)\r
- {\r
- unsigned int maxFrame = 0;\r
- foreach(shared_ptr<WidgetView> value , m_pImpl->children)\r
- {\r
- maxFrame = max(value->hide(imidiately) , maxFrame);\r
- }\r
- return maxFrame;\r
-\r
- }\r
-//}}}\r
-//{{{ focus\r
- FrameNumber Container::focus(bool) \r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ blur\r
- FrameNumber Container::blur(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ click\r
- FrameNumber Container::click(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ getAt\r
- shared_ptr<WidgetView> Container::getAt(int index) const\r
- {\r
- return m_pImpl->children[index];\r
- }\r
-//}}}\r
-//{{{ getLength\r
- int Container::getLength() const\r
- {\r
- return m_pImpl->children.size();\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsUp\r
- int Container::getAdjacencyAsUp(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsUp(index);\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsDown\r
- int Container::getAdjacencyAsDown(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsDown(index);\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsLeft\r
- int Container::getAdjacencyAsLeft(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsLeft(index);\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsRight\r
- int Container::getAdjacencyAsRight(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsRight(index);\r
- }\r
-//}}}\r
-//{{{ add\r
- void Container::add(shared_ptr<WidgetView> pView)\r
- {\r
- //children.push_back( pView ); \r
- //m_pImpl->pLayout = adaptWidgetViewAndLayout( m_pImpl->children.begin( ) , m_pImpl->children.end( ) , layout);\r
- }\r
-//}}}\r
-\r
-}\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/widget/WidgetView.hpp"\r
-#include <mof/widget/Layout.hpp>\r
-#include "mof/FactoryMethod.hpp"\r
-#include "mof/graphics/utilities.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-\r
-\r
-\r
-namespace mof\r
-{\r
- class Font;\r
-\r
-namespace widget\r
-{\r
-\r
- class Container\r
- : \r
- public WidgetView\r
- {\r
- public:\r
- \r
- Container\r
- (\r
- const boost::shared_ptr<WidgetView>& front ,\r
- const boost::shared_ptr<WidgetView>& back ,\r
- const FactoryMethod<Layout>& layout\r
- );\r
- virtual ~Container( );\r
-\r
- virtual FrameNumber show( bool imidiately = false );\r
- virtual FrameNumber hide( bool imidiately = false );\r
- virtual FrameNumber focus( bool imidiately = false );\r
- virtual FrameNumber blur( bool imidiately = false );\r
- virtual FrameNumber click( bool imidiately = false );\r
- virtual void update( );\r
- virtual void draw( ) const;\r
- boost::shared_ptr<WidgetView> getAt(int index) const;\r
- int getLength() const;\r
- int getAdjacencyAsUp(int index) const;\r
- int getAdjacencyAsDown(int index) const;\r
- int getAdjacencyAsLeft(int index) const;\r
- int getAdjacencyAsRight(int index) const;\r
- void add(boost::shared_ptr<WidgetView> pView);\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- \r
- };\r
-\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/widget/WidgetView.hpp"\r
-#include <mof/widget/Layout.hpp>\r
-#include "mof/FactoryMethod.hpp"\r
-#include "mof/graphics/utilities.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-\r
-\r
-\r
-namespace mof\r
-{\r
- class Font;\r
-\r
-namespace widget\r
-{\r
-\r
- class Container\r
- : \r
- public WidgetView\r
- {\r
- public:\r
- \r
- Container\r
- (\r
- boost::shared_ptr<WidgetView> pTop ,\r
- const FactoryMethod<WidgetView>& last ,\r
- const FactoryMethod<Layout>& layout\r
- );\r
- virtual ~Container( );\r
-\r
- virtual FrameNumber show( bool imidiately = false );\r
- virtual FrameNumber hide( bool imidiately = false );\r
- virtual FrameNumber focus( bool imidiately = false );\r
- virtual FrameNumber blur( bool imidiately = false );\r
- virtual FrameNumber click( bool imidiately = false );\r
- virtual void update( );\r
- virtual void draw( ) const;\r
- boost::shared_ptr<WidgetView> getAt(int index) const;\r
- int getLength() const;\r
- int getAdjacencyAsUp(int index) const;\r
- int getAdjacencyAsDown(int index) const;\r
- int getAdjacencyAsLeft(int index) const;\r
- int getAdjacencyAsRight(int index) const;\r
- void add(boost::shared_ptr<WidgetView> pView);\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- \r
- };\r
-\r
-}\r
-}\r
+++ /dev/null
-#include <mof/widget/ContainerWidgetView.hpp>\r
-#include "mof/mofGraphics.hpp"\r
-#include <mof/adaptWidgetViewAndLayout.hpp>\r
-#include "mof/utilities.hpp"\r
-#include "mof/widgets.hpp"\r
-#include "mof/streams.hpp"\r
-#include <vector>\r
-#include <algorithm>\r
- \r
-namespace mof\r
-{\r
-//{{{ struct Impl\r
- struct ContainerWidgetView::Impl\r
- {\r
- std::vector<WidgetView*> children;\r
- mof::Layout* pLayout;\r
- \r
- Impl() : pLayout(NULL){}\r
- ~Impl(){}\r
- \r
- };\r
-//}}}\r
-//{{{ constructor\r
- ContainerWidgetView::ContainerWidgetView\r
- (\r
- const FactoryMethod<WidgetView>& front ,\r
- const FactoryMethod<WidgetView>& last ,\r
- const FactoryMethod<Layout>& layout\r
- )\r
- : \r
- m_pImpl( new Impl( ) ) \r
- {\r
- \r
- int length = (&last - &front) +1;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- m_pImpl->children.push_back((&front)[i]());\r
- }\r
-\r
- m_pImpl->pLayout = adaptWidgetViewAndLayout(m_pImpl->children , layout);\r
- m_sizeStream << m_pImpl->pLayout->getBounds();\r
-\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- m_pImpl->children[i]->getPositionStream() << getPositionStream(); \r
- m_pImpl->children[i]->getColorStream() << getColorStream(); \r
- }\r
- }\r
-//}}}\r
-//{{{ destructor\r
- ContainerWidgetView::~ContainerWidgetView()\r
- {\r
- foreach(WidgetView* value , m_pImpl->children)\r
- {\r
- delete value;\r
- }\r
- }\r
-//}}}\r
-//{{{ update\r
- void ContainerWidgetView::update( )\r
- {\r
- m_positionStream.update( );\r
- m_sizeStream.update( );\r
- m_colorStream.update( );\r
- foreach(WidgetView* value , m_pImpl->children)\r
- {\r
- value->update();\r
- }\r
- }\r
-//}}}\r
-//{{{ draw\r
- void ContainerWidgetView::draw( ) const\r
- {\r
- foreach(WidgetView* value , m_pImpl->children)\r
- {\r
- value->draw();\r
- }\r
-\r
- }\r
-//}}}\r
-//{{{ show\r
- FrameNumber ContainerWidgetView::show(bool imidiately) \r
- {\r
- unsigned int maxFrame = 0;\r
- foreach(WidgetView* value , m_pImpl->children)\r
- {\r
- maxFrame = max(value->show(imidiately) , maxFrame);\r
- }\r
- return maxFrame;\r
- }\r
-//}}}\r
-//{{{ hide\r
- FrameNumber ContainerWidgetView::hide(bool imidiately)\r
- {\r
- int maxFrame = 0;\r
- foreach(WidgetView* value , m_pImpl->children)\r
- {\r
- maxFrame = max(value->hide(imidiately) , maxFrame);\r
- }\r
- return maxFrame;\r
-\r
- }\r
-//}}}\r
-//{{{ focus\r
- FrameNumber ContainerWidgetView::focus(bool) \r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ blur\r
- FrameNumber ContainerWidgetView::blur(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ click\r
- FrameNumber ContainerWidgetView::click(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ getAt\r
- WidgetView* ContainerWidgetView::getAt(int index) const\r
- {\r
- return m_pImpl->children[index];\r
- }\r
-//}}}\r
-//{{{ getLength\r
- int ContainerWidgetView::getLength() const\r
- {\r
- return m_pImpl->children.size();\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsUp\r
- int ContainerWidgetView::getAdjacencyAsUp(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsUp(index);\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsDown\r
- int ContainerWidgetView::getAdjacencyAsDown(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsDown(index);\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsLeft\r
- int ContainerWidgetView::getAdjacencyAsLeft(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsLeft(index);\r
- }\r
-//}}}\r
-//{{{ getAdjacentAsRight\r
- int ContainerWidgetView::getAdjacencyAsRight(int index) const\r
- {\r
- return m_pImpl->pLayout->getAdjacencyAsRight(index);\r
- }\r
-//}}}\r
-\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/widget/WidgetView.hpp"\r
-#include <mof/widget/Layout.hpp>\r
-#include "mof/FactoryMethod.hpp"\r
-#include "mof/graphics/utilities.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
- class Font;\r
-\r
- class ContainerWidgetView \r
- : \r
- public WidgetView\r
- {\r
- public:\r
- ContainerWidgetView\r
- (\r
- const FactoryMethod<WidgetView>& front ,\r
- const FactoryMethod<WidgetView>& last ,\r
- const FactoryMethod<Layout>& layout\r
- );\r
- virtual ~ContainerWidgetView( );\r
-\r
- virtual FrameNumber show( bool imidiately = false );\r
- virtual FrameNumber hide( bool imidiately = false );\r
- virtual FrameNumber focus( bool imidiately = false );\r
- virtual FrameNumber blur( bool imidiately = false );\r
- virtual void update( );\r
- virtual void draw( ) const;\r
- WidgetView* getAt(int index) const;\r
- int getLength() const;\r
- int getAdjacencyAsUp(int index) const;\r
- int getAdjacencyAsDown(int index) const;\r
- int getAdjacencyAsLeft(int index) const;\r
- int getAdjacencyAsRight(int index) const;\r
-\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- \r
- };\r
-\r
-}\r
+++ /dev/null
-#include "mof/widget/Effect.hpp"\r
-#include <map>\r
-#include "mof/Sprite.hpp"\r
-#include "mof/Drawable.hpp"\r
-#include "mof/utilities.hpp"\r
-#include <stdexcept>\r
-\r
-typedef std::map<mof::tstring , mof::Sprite*> SpriteMap;\r
-typedef std::pair<mof::tstring , mof::Sprite*> SpriteMapPair;\r
-typedef std::map<mof::tstring , mof::Drawable*> DrawableMap;\r
-typedef std::pair<mof::tstring , mof::Drawable*> DrawableMapPair;\r
-\r
-\r
-struct mof::Effect::Impl\r
-{\r
- SpriteMap spriteMap;\r
- DrawableMap drawableMap;\r
-\r
- Impl(){\r
-\r
- }\r
-\r
- ~Impl(){\r
- deleteAll();\r
- }\r
-\r
- void deleteAll(){\r
- foreach(DrawableMapPair pair , drawableMap){\r
- delete pair.second;\r
- }\r
- drawableMap.clear();\r
-\r
- foreach(SpriteMapPair pair , spriteMap){\r
- delete pair.second;\r
- }\r
- spriteMap.clear();\r
- }\r
-};\r
-\r
-\r
-mof::Effect::Effect()\r
-: m_pImpl(new Impl())\r
-{\r
-}\r
-\r
-mof::Effect::~Effect(){\r
-}\r
-\r
-mof::Sprite* mof::Effect::getSpriteByName(const mof::tstring &name) {\r
- SpriteMap::iterator result = m_pImpl->spriteMap.find(name);\r
- if(result == m_pImpl->spriteMap.end())throw std::invalid_argument(name + "is not exists");\r
- return result->second;\r
-}\r
-\r
-void mof::Effect::addSprite(const mof::tstring& name , mof::Sprite* pSprite){\r
- SpriteMap::iterator result = m_pImpl->spriteMap.find(name);\r
- if(result != m_pImpl->spriteMap.end())throw std::invalid_argument(name + "is already exists");\r
- m_pImpl->spriteMap.insert(SpriteMapPair(name , pSprite));\r
-}\r
- \r
-void mof::Effect::addDrawable( const mof::tstring& name , mof::Drawable* pDrawable )\r
-{\r
- DrawableMap::iterator result = m_pImpl->drawableMap.find(name);\r
- if(result != m_pImpl->drawableMap.end())throw std::invalid_argument(name + "is already exists");\r
- m_pImpl->drawableMap.insert(DrawableMapPair(name , pDrawable));\r
-}\r
-\r
-void mof::Effect::remove(const mof::tstring& name ){\r
- {\r
- SpriteMap::iterator result = m_pImpl->spriteMap.find(name);\r
- if(result != m_pImpl->spriteMap.end())\r
- {\r
- m_pImpl->spriteMap.erase(name);\r
- return;\r
- }\r
- }\r
- {\r
- DrawableMap::iterator result = m_pImpl->drawableMap.find(name);\r
- if(result != m_pImpl->drawableMap.end())\r
- {\r
- m_pImpl->drawableMap.erase(name);\r
- return;\r
- }\r
- }\r
- throw std::invalid_argument(name + "is not exists");\r
-}\r
-\r
-void mof::Effect::deleteAll(){\r
- m_pImpl->deleteAll();\r
-}\r
-\r
-void mof::Effect::draw() const\r
-{\r
- foreach(DrawableMapPair pair , m_pImpl->drawableMap){\r
- pair.second->draw();\r
- }\r
- foreach(SpriteMapPair pair , m_pImpl->spriteMap){\r
- pair.second->draw();\r
- }\r
-}\r
-\r
-\r
-void mof::Effect::update(){\r
- foreach(SpriteMapPair pair , m_pImpl->spriteMap){\r
- pair.second->update();\r
- }\r
-}\r
-\r
-\r
+++ /dev/null
-#include "mof/widget/Effect.hpp"\r
-#include <map>\r
-#include "mof/Sprite.hpp"\r
-#include "mof/Drawable.hpp"\r
-#include "mof/utilities.hpp"\r
-#include <stdexcept>\r
-\r
-typedef std::map<mof::tstring , mof::Sprite*> SpriteMap;\r
-typedef std::pair<mof::tstring , mof::Sprite*> SpriteMapPair;\r
-typedef std::map<mof::tstring , mof::Drawable*> DrawableMap;\r
-typedef std::pair<mof::tstring , mof::Drawable*> DrawableMapPair;\r
-\r
-\r
-struct mof::Effect::Impl\r
-{\r
- SpriteMap spriteMap;\r
- DrawableMap drawableMap;\r
-\r
- Impl(){\r
-\r
- }\r
-\r
- ~Impl(){\r
- deleteAll();\r
- }\r
-\r
- void deleteAll(){\r
- foreach(DrawableMapPair pair , drawableMap){\r
- delete pair.second;\r
- }\r
- drawableMap.clear();\r
-\r
- foreach(SpriteMapPair pair , spriteMap){\r
- delete pair.second;\r
- }\r
- spriteMap.clear();\r
- }\r
-};\r
-\r
-\r
-mof::Effect::Effect()\r
-: m_pImpl(new Impl())\r
-{\r
-}\r
-\r
-mof::Effect::~Effect(){\r
-}\r
-\r
-mof::Sprite* mof::Effect::getSpriteByName(const mof::tstring &name) {\r
- SpriteMap::iterator result = m_pImpl->spriteMap.find(name);\r
- if(result == m_pImpl->spriteMap.end())throw std::invalid_argument(name + "is not exists");\r
- return result->second;\r
-}\r
-\r
-void mof::Effect::addSprite(const mof::tstring& name , mof::Sprite* pSprite){\r
- SpriteMap::iterator result = m_pImpl->spriteMap.find(name);\r
- if(result != m_pImpl->spriteMap.end())throw std::invalid_argument(name + "is already exists");\r
- m_pImpl->spriteMap.insert(SpriteMapPair(name , pSprite));\r
-}\r
- \r
-void mof::Effect::addDrawable( const mof::tstring& name , mof::Drawable* pDrawable )\r
-{\r
- DrawableMap::iterator result = m_pImpl->drawableMap.find(name);\r
- if(result != m_pImpl->drawableMap.end())throw std::invalid_argument(name + "is already exists");\r
- m_pImpl->drawableMap.insert(DrawableMapPair(name , pDrawable));\r
-}\r
-\r
-void mof::Effect::remove(const mof::tstring& name ){\r
- {\r
- SpriteMap::iterator result = m_pImpl->spriteMap.find(name);\r
- if(result != m_pImpl->spriteMap.end())\r
- {\r
- m_pImpl->spriteMap.erase(name);\r
- return;\r
- }\r
- }\r
- {\r
- DrawableMap::iterator result = m_pImpl->drawableMap.find(name);\r
- if(result != m_pImpl->drawableMap.end())\r
- {\r
- m_pImpl->drawableMap.erase(name);\r
- return;\r
- }\r
- }\r
- throw std::invalid_argument(name + "is not exists");\r
-}\r
-\r
-void mof::Effect::deleteAll(){\r
- m_pImpl->deleteAll();\r
-}\r
-\r
-void mof::Effect::draw() const{\r
- foreach(DrawableMapPair pair , m_pImpl->drawableMap){\r
- pair.second->draw();\r
- }\r
- foreach(SpriteMapPair pair , m_pImpl->spriteMap){\r
- pair.second->draw();\r
- }\r
-}\r
-\r
-\r
-void mof::Effect::update(){\r
- foreach(SpriteMapPair pair , m_pImpl->spriteMap){\r
- pair.second->update();\r
- }\r
-}\r
-\r
-\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/utility.hpp>\r
-#include "mof/tstring.hpp"\r
-\r
-namespace mof{\r
- class Sprite;\r
- class Drawable;\r
-\r
- class Effect : boost::noncopyable{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- public:\r
- Effect();\r
- ~Effect();\r
- mof::Sprite* getSpriteByName(const mof::tstring& name);\r
- void addSprite(const mof::tstring& name , mof::Sprite* pSprite);\r
- void addDrawable( const mof::tstring& name , mof::Drawable* pDrawable );\r
- void remove(const mof::tstring& name);\r
- void deleteAll();\r
-\r
- void draw() const;\r
- void update();\r
- };\r
-\r
- \r
-}\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/utility.hpp>\r
-#include "mof/tstring.hpp"\r
-\r
-namespace mof{\r
- class Sprite;\r
- class Drawable;\r
-\r
- class Effect : boost::noncopyable{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- public:\r
- Effect();\r
- ~Effect();\r
- mof::Sprite* getSpriteByName(const mof::tstring& name);\r
- void addSprite(const mof::tstring& name , mof::Sprite* pSprite);\r
- void addDrawable( const mof::tstring& name , mof::Drawable* pDrawable );\r
- void remove(const mof::tstring& name);\r
- void deleteAll();\r
-\r
- void draw() const;\r
- void update();\r
- };\r
-\r
- \r
-}\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/Frame.hpp>\r
-#include <mof/widget/Layout.hpp>\r
-#include <mof/widget/Container.hpp>\r
-#include <mof/widget/ImageView.hpp>\r
-#include <mof/widget/GridLayout.hpp>\r
-#include <mof/widget/OverlapLayout.hpp>\r
-#include <mof/utilities.hpp>\r
-#include <boost/make_shared.hpp>\r
-\r
-using namespace mof::widget;\r
-using boost::shared_ptr;\r
-using boost::make_shared;\r
-using mof::lastOf;\r
-using std::vector;\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-//{{{ Impl\r
- struct Frame::Impl\r
- {\r
- shared_ptr<WidgetView> pCaptionView; \r
- shared_ptr<WidgetView> pContentBackgroundView; \r
- shared_ptr<WidgetView> pTitleBackgroundView; \r
- shared_ptr<Container> pContainer; \r
-\r
- Impl()\r
- : \r
- pCaptionView( ) ,\r
- pContentBackgroundView( ) ,\r
- pContainer( )\r
- {}\r
- };\r
-//}}}\r
-//{{{ constructor\r
- Frame::Frame\r
- (\r
- const mof::tstring& caption , const mof::Font& font ,\r
- shared_ptr<WidgetView> pContentView ,\r
- const FactoryMethod<WidgetView>& contentBackground , \r
- const FactoryMethod<WidgetView>& titleBackground \r
- )\r
- : m_pImpl(new Impl)\r
- {\r
- m_pImpl->pCaptionView = make_shared<ImageView>( caption , font );\r
- m_pImpl->pContentBackgroundView = shared_ptr<WidgetView>( contentBackground( ) );\r
- m_pImpl->pTitleBackgroundView = shared_ptr<WidgetView>( titleBackground( ) );\r
- \r
- {\r
- shared_ptr<WidgetView> children[] = {\r
- m_pImpl->pTitleBackgroundView ,\r
- m_pImpl->pCaptionView ,\r
- };\r
- m_pImpl->pContainer = make_shared<Container>( \r
- children[0] ,\r
- lastOf( children ) ,\r
- makeFactoryMethod<OverlapLayout>( m_pImpl->pCaptionView->getSizeStream().value() )\r
- );\r
- }\r
-\r
- {\r
- shared_ptr<WidgetView> children[] = {\r
- m_pImpl->pContainer ,\r
- pContentView ,\r
- };\r
- m_pImpl->pContainer = make_shared<Container>( \r
- children[0] ,\r
- lastOf( children ) ,\r
- makeFactoryMethod<GridLayout>( GridLayout::VERTICAL , 0 , 10)\r
- );\r
- }\r
- \r
- {\r
- shared_ptr<WidgetView> children[] = {\r
- m_pImpl->pContentBackgroundView ,\r
- m_pImpl->pContainer ,\r
- };\r
- m_pImpl->pContainer = make_shared<Container>( \r
- children[0] ,\r
- lastOf( children ) ,\r
- makeFactoryMethod<OverlapLayout>( m_pImpl->pContainer->getSizeStream().value() )\r
- );\r
- }\r
-\r
- }\r
-//}}}\r
-//{{{ destructor\r
- Frame::~Frame()\r
- {\r
- }\r
-//}}}\r
-//{{{ show\r
- mof::FrameNumber Frame::show(bool imidiately)\r
- {\r
- return m_pImpl->pContainer->show(imidiately);\r
- }\r
-//}}}\r
-//{{{ hide\r
- mof::FrameNumber Frame::hide(bool imidiately)\r
- {\r
- return m_pImpl->pContainer->hide(imidiately);\r
- }\r
-//}}}\r
-//{{{ getView\r
- const boost::shared_ptr<WidgetView> Frame::getView( ) const\r
- {\r
- return m_pImpl->pContainer;\r
- }\r
-//}}}\r
-//{{{ getView\r
- boost::shared_ptr<WidgetView> Frame::getView( ) \r
- {\r
- return m_pImpl->pContainer;\r
- }\r
-//}}}\r
-//{{{ update\r
- void Frame::update()\r
- {\r
- m_pImpl->pContainer->update();\r
- }\r
-//}}}\r
-\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/Frame.hpp>\r
-#include <mof/widget/Layout.hpp>\r
-#include <mof/widget/Container.hpp>\r
-#include <mof/widget/ImageView.hpp>\r
-#include <mof/widget/GridLayout.hpp>\r
-#include <mof/widget/OverlapLayout.hpp>\r
-#include <mof/utilities.hpp>\r
-#include <boost/make_shared.hpp>\r
-\r
-using namespace mof::widget;\r
-using boost::shared_ptr;\r
-using boost::make_shared;\r
-using mof::lastOf;\r
-using std::vector;\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-//{{{ Impl\r
- struct Frame::Impl\r
- {\r
- shared_ptr<WidgetView> pCaptionView; \r
- shared_ptr<WidgetView> pContentBackgroundView; \r
- shared_ptr<WidgetView> pTitleBackgroundView; \r
- shared_ptr<Container> pContainer; \r
-\r
- Impl()\r
- : \r
- pCaptionView( ) ,\r
- pContentBackgroundView( ) ,\r
- pContainer( )\r
- {}\r
- };\r
-//}}}\r
-//{{{ constructor\r
- Frame::Frame\r
- (\r
- const mof::tstring& caption , const mof::Font& font ,\r
- shared_ptr<WidgetView> pContentView ,\r
- const FactoryMethod<WidgetView>& contentBackground , \r
- const FactoryMethod<WidgetView>& titleBackground \r
- )\r
- : m_pImpl(new Impl)\r
- {\r
- m_pImpl->pCaptionView = make_shared<ImageView>( caption , font );\r
- m_pImpl->pContentBackgroundView = shared_ptr<WidgetView>( contentBackground( ) );\r
- m_pImpl->pTitleBackgroundView = shared_ptr<WidgetView>( titleBackground( ) );\r
- \r
- {\r
- shared_ptr<WidgetView> children[] = {\r
- m_pImpl->pTitleBackgroundView ,\r
- m_pImpl->pCaptionView ,\r
- };\r
- m_pImpl->pContainer = make_shared<Container>( \r
- children[0] ,\r
- lastOf( children ) ,\r
- makeFactoryMethod<OverlapLayout>( m_pImpl->pCaptionView->getSizeStream().value() )\r
- );\r
- }\r
-\r
- {\r
- shared_ptr<WidgetView> children[] = {\r
- m_pImpl->pContainer ,\r
- pContentView ,\r
- };\r
- m_pImpl->pContainer = make_shared<Container>( \r
- children[0] ,\r
- lastOf( children ) ,\r
- makeFactoryMethod<GridLayout>( GridLayout::VERTICAL , 0 , 20)\r
- );\r
- }\r
- \r
- {\r
- shared_ptr<WidgetView> children[] = {\r
- m_pImpl->pContentBackgroundView ,\r
- m_pImpl->pContainer ,\r
- };\r
- m_pImpl->pContainer = make_shared<Container>( \r
- children[0] ,\r
- lastOf( children ) ,\r
- makeFactoryMethod<OverlapLayout>( m_pImpl->pContainer->getSizeStream().value() )\r
- );\r
- }\r
-\r
- }\r
-//}}}\r
-//{{{ destructor\r
- Frame::~Frame()\r
- {\r
- }\r
-//}}}\r
-//{{{ show\r
- mof::FrameNumber Frame::show(bool imidiately)\r
- {\r
- return m_pImpl->pContainer->show(imidiately);\r
- }\r
-//}}}\r
-//{{{ hide\r
- mof::FrameNumber Frame::hide(bool imidiately)\r
- {\r
- return m_pImpl->pContainer->hide(imidiately);\r
- }\r
-//}}}\r
-//{{{ getView\r
- const boost::shared_ptr<WidgetView> Frame::getView( ) const\r
- {\r
- return m_pImpl->pContainer;\r
- }\r
-//}}}\r
-//{{{ getView\r
- boost::shared_ptr<WidgetView> Frame::getView( ) \r
- {\r
- return m_pImpl->pContainer;\r
- }\r
-//}}}\r
-//{{{ update\r
- void Frame::update()\r
- {\r
- m_pImpl->pContainer->update();\r
- }\r
-//}}}\r
-\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-#include <mof/widget/Widget.hpp>\r
-#include <mof/FactoryMethod.hpp>\r
-\r
-namespace mof\r
-{\r
- class Font;\r
-\r
-namespace widget\r
-{\r
-\r
- class Frame : public Widget\r
- {\r
- public:\r
- Frame\r
- (\r
- const tstring& title ,\r
- const Font& font ,\r
- boost::shared_ptr<WidgetView> content ,\r
- const FactoryMethod<WidgetView>& contentBackground ,\r
- const FactoryMethod<WidgetView>& titleBackground \r
- );\r
-\r
- virtual ~Frame();\r
- virtual FrameNumber show(bool imidiately = false);\r
- virtual FrameNumber hide(bool imidiately = false);\r
- virtual const boost::shared_ptr<WidgetView> getView( ) const;\r
- virtual boost::shared_ptr<WidgetView> getView( );\r
- virtual void update();\r
-\r
-\r
- \r
- protected:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
- };\r
-\r
-\r
-} // namespace widget\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-#include <mof/widget/Widget.hpp>\r
-#include <mof/FactoryMethod.hpp>\r
-\r
-namespace mof\r
-{\r
- class Font;\r
-\r
-namespace widget\r
-{\r
-\r
- class Frame : public Widget\r
- {\r
- public:\r
- Frame\r
- (\r
- const tstring& title ,\r
- const Font& font ,\r
- boost::shared_ptr<Widget> content ,\r
- const FactoryMethod<WidgetView>& contentBackground ,\r
- const FactoryMethod<WidgetView>& titleBackground \r
- );\r
-\r
- virtual ~Frame();\r
- virtual FrameNumber show(bool imidiately = false);\r
- virtual FrameNumber hide(bool imidiately = false);\r
- virtual const boost::shared_ptr<WidgetView> getView( ) const;\r
- virtual boost::shared_ptr<WidgetView> getView( );\r
- virtual void update();\r
-\r
-\r
- \r
- protected:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
- };\r
-\r
-\r
-} // namespace widget\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include <boost/utility.hpp>\r
-#include <boost/scoped_ptr.hpp>\r
-#include <mof/tstring.hpp>\r
-#include <memory>\r
-#include <mof/widget/Frame.hpp>\r
-#include <mof/widget/WidgetView.hpp>\r
-#include <mof/FactoryMethod.hpp>\r
-\r
-namespace mof\r
-{\r
- class Font;\r
-namespace widget\r
-{\r
-\r
- class FrameBuilder : boost::noncopyable\r
- {\r
- public:\r
- FrameBuilder();\r
- ~FrameBuilder();\r
-\r
- void setTitle( const mof::tstring& title , const mof::Font& font );\r
- void setContentBackgroundView( const mof::FactoryMethod<WidgetView>& contentBackground );\r
- void setTitleBackgroundView( const mof::FactoryMethod<WidgetView>& titleBackground );\r
- std::auto_ptr<Frame> create( );\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
- }; // class FrameBuilder\r
-} // namespace widget\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include <boost/utility.hpp>\r
-#include <boost/scoped_ptr.hpp>\r
-#include <mof/tstring.hpp>\r
-#include <memory>\r
-#include <mof/widget/Frame.hpp>\r
-#include <mof/widget/WidgetView.hpp>\r
-#include <mof/FactoryMethod.hpp>\r
-\r
-namespace mof\r
-{\r
- class Font;\r
-namespace widget\r
-{\r
-\r
- class FrameBuilder : boost::noncopyable\r
- {\r
- public:\r
- FrameBuilder();\r
- ~FrameBuilder();\r
-\r
- void setTitle( const mof::tstring& title , const mof::Font& font );\r
- void setContentBackgroundView( const FactoryMethod<WidgetView>& contentBackground );\r
- void setTitleBackgroundView( const FactoryMethod<WidgetView>& titleBackground );\r
- std::auto_ptr<Frame> create( );\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
- }; // class FrameBuilder\r
-} // namespace widget\r
-} // namespace mof\r
+++ /dev/null
-#include <mof/widget/GridLayout.hpp>\r
-#include <mof/widget/WidgetView.hpp>\r
-#include <mof/streams.hpp>\r
-#include <mof/utilities.hpp>\r
-#include "mof/ConsoleIO.hpp"\r
-#include <algorithm>\r
-#include <vector>\r
-\r
-using boost::shared_ptr;\r
-\r
-//{{{ Impl\r
-struct mof::widget::GridLayout::Impl\r
-{\r
- \r
- mof::widget::GridLayout::Direction direction;\r
- int span , margin;\r
- int width , height;// preferredSize\r
- std::vector< shared_ptr<WidgetView> > views;\r
- std::vector<Vector2D> positions;\r
-\r
- Impl(Direction _direction , int span_ , int margin_ )\r
- : \r
- direction(_direction) , span(span_) , margin(margin_) ,\r
- width(0) , height(0)\r
- {}\r
- \r
-\r
- ~Impl()\r
- {\r
- }\r
-};\r
-//}}}\r
-//{{{ GridLayout\r
-mof::widget::GridLayout::GridLayout\r
-(\r
- Direction direction , int span , int margin\r
-)\r
-: m_pImpl( new Impl( direction , span , margin ) )\r
-{\r
-}\r
-//}}}\r
-//{{{ ~GridLayout\r
-mof::widget::GridLayout::~GridLayout( )\r
-{\r
-}\r
-//}}}\r
-//{{{ add\r
-void mof::widget::GridLayout::add(shared_ptr<WidgetView> pView)\r
-{\r
- mof::Vector2D size = pView->getSizeStream().value();\r
- m_pImpl->views.push_back(pView);\r
- \r
- if(m_pImpl->direction == VERTICAL)\r
- {\r
- m_pImpl->positions.push_back( mof::Vector2D(0 , m_pImpl->height));\r
- if( !m_pImpl->views.empty( ) )m_pImpl->height += m_pImpl->margin;\r
- m_pImpl->width = m_pImpl->width < size.x \r
- ? mof::real2int(size.x) \r
- : m_pImpl->width;\r
- m_pImpl->height += mof::real2int(size.y);\r
- }\r
- else if(m_pImpl->direction == HORIZONTAL)\r
- {\r
- m_pImpl->positions.push_back( mof::Vector2D(m_pImpl->width , 0));\r
- if( !m_pImpl->views.empty( ) )m_pImpl->width += m_pImpl->margin;\r
- m_pImpl->width += mof::real2int(size.x);\r
- m_pImpl->height = m_pImpl->height < size.y \r
- ? mof::real2int(size.y) \r
- : m_pImpl->height;\r
- }\r
-}\r
-//}}}\r
-//{{{ getLength\r
-size_t mof::widget::GridLayout::getLength() const\r
-{\r
- return m_pImpl->positions.size();\r
-}\r
-//}}}\r
-//{{{ getPreferredSize\r
-mof::Vector2D mof::widget::GridLayout::getPreferredSize() const\r
-{\r
- return mof::Vector2D(m_pImpl->width , m_pImpl->height);\r
-}\r
-//}}}\r
-//{{{ getSizeDependencyType\r
-mof::widget::Layout::DependencyType mof::widget::GridLayout::getSizeDependencyType() const\r
-{\r
- return mof::widget::Layout::PARENT_LEADING;\r
-}\r
-//}}}\r
-//{{{ connect\r
-void mof::widget::GridLayout::connect(WidgetView* pParentView) \r
-{\r
- size_t i = 0;\r
- if(m_pImpl->direction == VERTICAL)\r
- {\r
- foreach(shared_ptr<WidgetView> pView , m_pImpl->views) \r
- {\r
- pView->getPositionStream() << m_pImpl->positions[i++] << pParentView->getPositionStream();\r
- mof::Vector2D filter(1 , 0);\r
- mof::Vector2D offset(-1.0f * pView->getSizeStream().value().x , 0.0f);\r
- pView->getSizeStream() \r
- << offset\r
- << mof::makeFilterHandler(pParentView->getSizeStream().toManipulator() , filter);\r
- }\r
- }\r
- else\r
- {\r
- foreach(shared_ptr<WidgetView> pView , m_pImpl->views) \r
- {\r
- pView->getPositionStream() << m_pImpl->positions[i++] << pParentView->getPositionStream();\r
- pView->getSizeStream() << -pView->getSizeStream().value() << pParentView->getSizeStream();\r
- }\r
- }\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsUp\r
-int mof::widget::GridLayout::getAdjacencyAsUp(int index) const\r
-{\r
- if(m_pImpl->direction == VERTICAL)return mof::rotation_mod(index-1 , m_pImpl->positions.size());\r
- else return index;\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsDown\r
-int mof::widget::GridLayout::getAdjacencyAsDown(int index) const\r
-{\r
- if(m_pImpl->direction == VERTICAL)return mof::rotation_mod(index+1 , m_pImpl->positions.size());\r
- else return index;\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsLeft\r
-int mof::widget::GridLayout::getAdjacencyAsLeft(int index) const\r
-{\r
- if(m_pImpl->direction == HORIZONTAL)return mof::rotation_mod(index-1 , m_pImpl->positions.size());\r
- else return index;\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsRight\r
-int mof::widget::GridLayout::getAdjacencyAsRight(int index) const\r
-{\r
- if(m_pImpl->direction == HORIZONTAL)return mof::rotation_mod(index+1 , m_pImpl->positions.size());\r
- else return index;\r
-}\r
-//}}}\r
+++ /dev/null
-#include <mof/widget/GridLayout.hpp>\r
-#include <mof/widget/WidgetView.hpp>\r
-#include <mof/streams.hpp>\r
-#include <mof/utilities.hpp>\r
-#include "mof/ConsoleIO.hpp"\r
-#include <algorithm>\r
-#include <vector>\r
-\r
-using boost::shared_ptr;\r
-\r
-//{{{ Impl\r
-struct mof::widget::GridLayout::Impl\r
-{\r
- \r
- mof::widget::GridLayout::Direction direction;\r
- int span , margin;\r
- int width , height;// preferredSize\r
- std::vector< shared_ptr<WidgetView> > views;\r
- std::vector<Vector2D> positions;\r
-\r
- Impl(Direction _direction , int span_ , int margin_ )\r
- : \r
- direction(_direction) , span(span_) , margin(margin_) ,\r
- width(0) , height(0)\r
- {}\r
- \r
-\r
- ~Impl()\r
- {\r
- }\r
-};\r
-//}}}\r
-//{{{ GridLayout\r
-mof::widget::GridLayout::GridLayout\r
-(\r
- Direction direction , int span , int margin\r
-)\r
-: m_pImpl( new Impl( direction , span , margin ) )\r
-{\r
-}\r
-//}}}\r
-//{{{ ~GridLayout\r
-mof::widget::GridLayout::~GridLayout( )\r
-{\r
-}\r
-//}}}\r
-//{{{ add\r
-void mof::widget::GridLayout::add(shared_ptr<WidgetView> pView)\r
-{\r
- mof::Vector2D size = pView->getSizeStream().value();\r
- m_pImpl->views.push_back(pView);\r
- \r
- if(m_pImpl->direction == VERTICAL)\r
- {\r
- //if( !m_pImpl->views.empty( ) )m_pImpl->height += m_pImpl->margin;\r
- m_pImpl->positions.push_back( mof::Vector2D(0 , m_pImpl->height));\r
- m_pImpl->width = m_pImpl->width < size.x \r
- ? mof::real2int(size.x) \r
- : m_pImpl->width;\r
- m_pImpl->height += mof::real2int(size.y);\r
- }\r
- else if(m_pImpl->direction == HORIZONTAL)\r
- {\r
- if( !m_pImpl->views.empty( ) )m_pImpl->width += m_pImpl->margin;\r
- m_pImpl->positions.push_back( mof::Vector2D(m_pImpl->width , 0));\r
- m_pImpl->width += mof::real2int(size.x);\r
- m_pImpl->height = m_pImpl->height < size.y \r
- ? mof::real2int(size.y) \r
- : m_pImpl->height;\r
- }\r
-}\r
-//}}}\r
-//{{{ getLength\r
-size_t mof::widget::GridLayout::getLength() const\r
-{\r
- return m_pImpl->positions.size();\r
-}\r
-//}}}\r
-//{{{ getPreferredSize\r
-mof::Vector2D mof::widget::GridLayout::getPreferredSize() const\r
-{\r
- return mof::Vector2D(m_pImpl->width , m_pImpl->height);\r
-}\r
-//}}}\r
-//{{{ getSizeDependencyType\r
-mof::widget::Layout::DependencyType mof::widget::GridLayout::getSizeDependencyType() const\r
-{\r
- return mof::widget::Layout::PARENT_LEADING;\r
-}\r
-//}}}\r
-//{{{ connect\r
-void mof::widget::GridLayout::connect(WidgetView* pParentView) \r
-{\r
- size_t i = 0;\r
- if(m_pImpl->direction == VERTICAL)\r
- {\r
- foreach(shared_ptr<WidgetView> pView , m_pImpl->views) \r
- {\r
- pView->getPositionStream() << m_pImpl->positions[i++] << pParentView->getPositionStream();\r
- mof::Vector2D filter(1 , 0);\r
- mof::Vector2D offset(-1.0f * pView->getSizeStream().value().x , 0.0f);\r
- pView->getSizeStream() \r
- << offset\r
- << mof::makeFilterHandler(pParentView->getSizeStream().toManipulator() , filter);\r
- }\r
- }\r
- else\r
- {\r
- foreach(shared_ptr<WidgetView> pView , m_pImpl->views) \r
- {\r
- pView->getPositionStream() << m_pImpl->positions[i++] << pParentView->getPositionStream();\r
- pView->getSizeStream() << -pView->getSizeStream().value() << pParentView->getSizeStream();\r
- }\r
- }\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsUp\r
-int mof::widget::GridLayout::getAdjacencyAsUp(int index) const\r
-{\r
- if(m_pImpl->direction == VERTICAL)return mof::rotation_mod(index-1 , m_pImpl->positions.size());\r
- else return index;\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsDown\r
-int mof::widget::GridLayout::getAdjacencyAsDown(int index) const\r
-{\r
- if(m_pImpl->direction == VERTICAL)return mof::rotation_mod(index+1 , m_pImpl->positions.size());\r
- else return index;\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsLeft\r
-int mof::widget::GridLayout::getAdjacencyAsLeft(int index) const\r
-{\r
- if(m_pImpl->direction == HORIZONTAL)return mof::rotation_mod(index-1 , m_pImpl->positions.size());\r
- else return index;\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsRight\r
-int mof::widget::GridLayout::getAdjacencyAsRight(int index) const\r
-{\r
- if(m_pImpl->direction == HORIZONTAL)return mof::rotation_mod(index+1 , m_pImpl->positions.size());\r
- else return index;\r
-}\r
-//}}}\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include <mof/widget/Layout.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class GridLayout : public Layout\r
- {\r
-\r
- public:\r
- enum Direction\r
- {\r
- HORIZONTAL , VERTICAL\r
- };\r
-\r
- GridLayout(Direction direction , int span , int margin = 0 );\r
- virtual ~GridLayout();\r
- virtual void add(boost::shared_ptr<WidgetView> pView);\r
- virtual Vector2D getPreferredSize() const;\r
- virtual DependencyType getSizeDependencyType() const;\r
- virtual void connect(WidgetView* pParentView);\r
- virtual size_t getLength( ) const;\r
- virtual int getAdjacencyAsUp(int index) const;\r
- virtual int getAdjacencyAsDown(int index) const;\r
- virtual int getAdjacencyAsLeft(int index) const;\r
- virtual int getAdjacencyAsRight(int index) const;\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-}\r
-} // namepsace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include <mof/widget/Layout.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class GridLayout : public Layout\r
- {\r
-\r
- public:\r
- enum Direction\r
- {\r
- HORIZONTAL , VERTICAL\r
- };\r
-\r
- GridLayout(Direction direction , int span , int margin = 0 );\r
- virtual ~GridLayout();\r
- virtual void add(boost::shared_ptr<WidgetView> pView);\r
- virtual Vector2D getPreferredSize() const;\r
- virtual DependencyType getSizeDependencyType() const;\r
- virtual void connect( boost::shared_ptr<WidgetView> pParentView);\r
- virtual size_t getLength( ) const;\r
- virtual int getAdjacencyAsUp(int index) const;\r
- virtual int getAdjacencyAsDown(int index) const;\r
- virtual int getAdjacencyAsLeft(int index) const;\r
- virtual int getAdjacencyAsRight(int index) const;\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-}\r
-} // namepsace mof\r
-\r
+++ /dev/null
-#include <mof/widget/ImageView.hpp>\r
-#include "mof/mofGraphics.hpp"\r
-#include "mof/Font.hpp"\r
-#include "mof/Sprite.hpp"\r
-#include "mof/widget/Effect.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/widgets.hpp"\r
-#include "mof/streams.hpp"\r
- \r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-//{{{ struct Impl\r
- struct ImageView::Impl\r
- {\r
- Sprite* pSprite;\r
- \r
- Impl( )\r
- : pSprite( NULL )\r
- {\r
- }\r
- \r
- ~Impl()\r
- {\r
- delete pSprite;\r
- }\r
- \r
- };\r
-//}}}\r
-//{{{ constructor\r
- ImageView::ImageView\r
- (\r
- const tstring& caption ,\r
- const Font& font\r
- )\r
- : \r
- m_pImpl( new Impl ) \r
- {\r
- { // 画像の生成\r
- m_pImpl->pSprite = Sprite::createTextSprite( font , caption );\r
- m_pImpl->pSprite->getPositionStream( ) << getPositionStream( ); \r
- m_pImpl->pSprite->getColorStream( ) << getColorStream( ); \r
- m_sizeStream << m_pImpl->pSprite->getSizeStream( ); //ビューのサイズを設定\r
- }\r
- }\r
-//}}}\r
-//{{{ constructor\r
- ImageView::ImageView\r
- (\r
- const TextureHandler& texture ,\r
- const Rectangle<float>& tRect\r
- )\r
- : \r
- m_pImpl( new Impl( ) ) \r
- {\r
- { // 画像の生成\r
- m_pImpl->pSprite = new Sprite( texture , tRect );\r
- m_pImpl->pSprite->getPositionStream( ) << getPositionStream( ); \r
- m_pImpl->pSprite->getColorStream( ) << getColorStream( ); \r
- m_sizeStream << m_pImpl->pSprite->getSizeStream( ); //ビューのサイズを設定\r
- }\r
- \r
- }\r
-//}}}\r
-//{{{ destructor\r
- ImageView::~ImageView()\r
- {\r
- }\r
-//}}}\r
-//{{{ update\r
- void ImageView::update( )\r
- {\r
- m_positionStream.update( );\r
- m_sizeStream.update( );\r
- m_colorStream.update( );\r
- m_pImpl->pSprite->update();\r
- }\r
-//}}}\r
-//{{{ draw\r
- void ImageView::draw( ) const\r
- {\r
- m_pImpl->pSprite->draw( );\r
- }\r
-//}}}\r
-//{{{ show\r
- FrameNumber ImageView::show(bool) \r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ hide\r
- FrameNumber ImageView::hide(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ focus\r
- FrameNumber ImageView::focus(bool) \r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ blur\r
- FrameNumber ImageView::blur(bool imidiately)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ click\r
- FrameNumber ImageView::click(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-}\r
-} // namespace mof\r
+++ /dev/null
-#include <mof/widget/ImageView.hpp>\r
-#include "mof/mofGraphics.hpp"\r
-#include "mof/Font.hpp"\r
-#include "mof/Sprite.hpp"\r
-#include "mof/widget/Effect.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/widgets.hpp"\r
-#include "mof/streams.hpp"\r
- \r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-//{{{ struct Impl\r
- struct ImageView::Impl\r
- {\r
- Sprite* pSprite;\r
- \r
- Impl( )\r
- : pSprite( NULL )\r
- {\r
- }\r
- \r
- ~Impl()\r
- {\r
- delete pSprite;\r
- }\r
- \r
- };\r
-//}}}\r
-//{{{ constructor\r
- ImageView::ImageView\r
- (\r
- const tstring& caption ,\r
- const Font& font\r
- )\r
- : \r
- m_pImpl( new Impl ) \r
- {\r
- { // 画像の生成\r
- m_pImpl->pSprite = Sprite::createTextSprite( font , caption );\r
- m_pImpl->pSprite->getPositionStream( ) << getPositionStream( ); \r
- m_pImpl->pSprite->getColorStream( ) << getColorStream( ); \r
- m_sizeStream << m_pImpl->pSprite->getSizeStream( ); //ビューのサイズを設定\r
- }\r
- }\r
-//}}}\r
-//{{{ constructor\r
- ImageView::ImageView\r
- (\r
- const TextureHandler& texture ,\r
- const Rectangle<float>& tRect\r
- )\r
- : \r
- m_pImpl( new Impl( ) ) \r
- {\r
- { // 画像の生成\r
- m_pImpl->pSprite = new Sprite( texture , tRect );\r
- m_pImpl->pSprite->getPositionStream( ) << getPositionStream( ); \r
- m_pImpl->pSprite->getColorStream( ) << getColorStream( ); \r
- m_sizeStream << m_pImpl->pSprite->getSizeStream( ); //ビューのサイズを設定\r
- }\r
- \r
- }\r
-//}}}\r
-//{{{ destructor\r
- ImageView::~ImageView()\r
- {\r
- }\r
-//}}}\r
-//{{{ update\r
- void ImageView::update( )\r
- {\r
- m_positionStream.update( );\r
- m_sizeStream.update( );\r
- m_colorStream.update( );\r
- m_pImpl->pSprite->update();\r
- }\r
-//}}}\r
-//{{{ draw\r
- void ImageView::draw( ) const\r
- {\r
- m_pImpl->pSprite->draw( );\r
- }\r
-//}}}\r
-//{{{ show\r
- FrameNumber ImageView::show(bool) \r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ hide\r
- FrameNumber ImageView::hide(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ focus\r
- FrameNumber ImageView::focus(bool) \r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ blur\r
- FrameNumber ImageView::blur(bool imidiately)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ click\r
- FrameNumber ImageView::click(bool)\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-\r
-}\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/widget/WidgetView.hpp"\r
-#include "mof/graphics/utilities.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
- class Font;\r
-\r
-namespace widget\r
-{\r
-\r
- class ImageView \r
- : \r
- public WidgetView\r
- {\r
- public:\r
- ImageView( const tstring& caption , const Font& font );\r
- ImageView( const TextureHandler& texture , const Rectangle<float>& tRect );\r
- virtual ~ImageView( );\r
-\r
- virtual FrameNumber show( bool imidiately = false );\r
- virtual FrameNumber hide( bool imidiately = false );\r
- virtual FrameNumber focus( bool imidiately = false );\r
- virtual FrameNumber blur( bool imidiately = false );\r
- virtual FrameNumber click( bool imidiately = false );\r
- virtual void update( );\r
- virtual void draw( ) const;\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- \r
- };\r
-\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/widget/WidgetView.hpp"\r
-#include "mof/graphics/utilities.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class Font;\r
-\r
- class ImageView \r
- : \r
- public WidgetView\r
- {\r
- public:\r
- ImageView( const tstring& caption , const Font& font );\r
- ImageView( const TextureHandler& texture , const Rectangle<float>& tRect );\r
- virtual ~ImageView( );\r
-\r
- virtual FrameNumber show( bool imidiately = false );\r
- virtual FrameNumber hide( bool imidiately = false );\r
- virtual FrameNumber focus( bool imidiately = false );\r
- virtual FrameNumber blur( bool imidiately = false );\r
- virtual FrameNumber click( bool imidiately = false );\r
- virtual void update( );\r
- virtual void draw( ) const;\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- \r
- };\r
-\r
-}\r
-}\r
+++ /dev/null
-#include <mof/widget/ImageWidgetView.hpp>\r
-#include "mof/mofGraphics.hpp"\r
-#include "mof/Font.hpp"\r
-#include "mof/Sprite.hpp"\r
-#include "mof/widget/Effect.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/widgets.hpp"\r
-#include "mof/streams.hpp"\r
- \r
-namespace mof\r
-{\r
-//{{{ struct Impl\r
- struct ImageWidgetView::Impl\r
- {\r
- Sprite* pSprite;\r
- \r
- Impl( )\r
- : pSprite( NULL )\r
- {\r
- }\r
- \r
- ~Impl()\r
- {\r
- delete pSprite;\r
- }\r
- \r
- };\r
-//}}}\r
-//{{{ constructor\r
- ImageWidgetView::ImageWidgetView\r
- (\r
- const tstring& caption ,\r
- const Font& font\r
- )\r
- : \r
- m_pImpl( new Impl( ) ) \r
- {\r
- { // 画像の生成\r
- m_pImpl->pSprite = Sprite::createTextSprite( font , caption );\r
- m_pImpl->pSprite->getPositionStream( ) << getPositionStream( ); \r
- m_pImpl->pSprite->getColorStream( ) << getColorStream( ); \r
- m_sizeStream << m_pImpl->pSprite->getSizeStream( ); //ビューのサイズを設定\r
- }\r
- }\r
-//}}}\r
-//{{{ constructor\r
- ImageWidgetView::ImageWidgetView\r
- (\r
- const TextureHandler& texture ,\r
- const Rectangle<float>& tRect\r
- )\r
- : \r
- m_pImpl( new Impl( ) ) \r
- {\r
- { // 画像の生成\r
- m_pImpl->pSprite = new Sprite( texture , tRect );\r
- m_pImpl->pSprite->getPositionStream( ) << getPositionStream( ); \r
- m_pImpl->pSprite->getColorStream( ) << getColorStream( ); \r
- m_sizeStream << m_pImpl->pSprite->getSizeStream( ); //ビューのサイズを設定\r
- }\r
- \r
- }\r
-//}}}\r
-//{{{ destructor\r
- ImageWidgetView::~ImageWidgetView()\r
- {\r
- }\r
-//}}}\r
-//{{{ update\r
- void ImageWidgetView::update( )\r
- {\r
- m_positionStream.update( );\r
- m_sizeStream.update( );\r
- m_colorStream.update( );\r
- m_pImpl->pSprite->update();\r
- }\r
-//}}}\r
-//{{{ draw\r
- void ImageWidgetView::draw( ) const\r
- {\r
- m_pImpl->pSprite->draw( );\r
- }\r
-//}}}\r
-//{{{ show\r
- FrameNumber ImageWidgetView::show( bool imidiately ) \r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ hide\r
- FrameNumber ImageWidgetView::hide( bool imidiately )\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ focus\r
- FrameNumber ImageWidgetView::focus( bool imidiately ) \r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ blur\r
- FrameNumber ImageWidgetView::blur( bool imidiately )\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-//{{{ click\r
- FrameNumber ImageWidgetView::click( bool imidiately )\r
- {\r
- return 0;\r
- }\r
-//}}}\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "mof/widget/WidgetView.hpp"\r
-#include "mof/graphics/utilities.hpp"\r
-#include "mof/tstring.hpp"\r
-#include <boost/scoped_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
- class Font;\r
-\r
- class ImageWidgetView \r
- : \r
- public WidgetView\r
- {\r
- public:\r
- ImageWidgetView( const tstring& caption , const Font& font );\r
- ImageWidgetView( const TextureHandler& texture , const Rectangle<float>& tRect );\r
- virtual ~ImageWidgetView( );\r
-\r
- virtual FrameNumber show( bool imidiately = false );\r
- virtual FrameNumber hide( bool imidiately = false );\r
- virtual FrameNumber focus( bool imidiately = false );\r
- virtual FrameNumber blur( bool imidiately = false );\r
- virtual void update( );\r
- virtual void draw( ) const;\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- \r
- };\r
-\r
-}\r
+++ /dev/null
-#pragma once\r
-\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
- class WidgetView;\r
-\r
- class Layout\r
- {\r
-\r
- public:\r
- enum DependencyType\r
- {\r
- PARENT_LEADING ,\r
- CHILD_LEADING\r
- };\r
-\r
- virtual ~Layout(){}\r
- virtual void add(boost::shared_ptr<WidgetView> pView) = 0;\r
- virtual Vector2D getPreferredSize() const = 0;\r
- virtual DependencyType getSizeDependencyType() const = 0;\r
- virtual void connect( WidgetView* pParentView) = 0;\r
- virtual size_t getLength() const = 0;\r
- virtual int getAdjacencyAsUp(int index) const = 0;\r
- virtual int getAdjacencyAsDown(int index) const = 0;\r
- virtual int getAdjacencyAsLeft(int index) const = 0;\r
- virtual int getAdjacencyAsRight(int index) const = 0;\r
- };\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
- class WidgetView;\r
-\r
- class Layout\r
- {\r
-\r
- public:\r
- enum DependencyType\r
- {\r
- PARENT_LEADING ,\r
- CHILD_LEADING\r
- };\r
-\r
- virtual ~Layout(){}\r
- virtual void add(boost::shared_ptr<WidgetView> pView) = 0;\r
- virtual Vector2D getPreferredSize() const = 0;\r
- virtual DependencyType getSizeDependencyType() const = 0;\r
- virtual void connect( WidgetView* pParentView) = 0;\r
- virtual size_t getLength() const = 0;\r
- virtual int getAdjacencyAsUp(int index) const = 0;\r
- virtual int getAdjacencyAsDown(int index) const = 0;\r
- virtual int getAdjacencyAsLeft(int index) const = 0;\r
- virtual int getAdjacencyAsRight(int index) const = 0;\r
- };\r
-}\r
-}\r
+++ /dev/null
-#include "mof/LayoutManager.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-\r
-\r
-\r
-\r
-struct mof::LayoutManager::Impl{\r
- \r
- mof::LayoutManager::Direction direction;\r
- int span;\r
- int length;\r
- unsigned int width;\r
- unsigned int height;\r
- mof::Vector2D* positions;\r
-\r
-\r
- Impl( Direction _direction , int _n )\r
- : direction(_direction) , span(_n) , \r
- width(0) , height(0) , length(0) , positions(NULL)\r
- {\r
- }\r
-\r
- ~Impl(){\r
- delete[] positions;\r
- }\r
-};\r
-\r
-\r
-mof::LayoutManager::LayoutManager\r
-(\r
- Direction direction , int n\r
-)\r
-: m_pImpl( new Impl( direction , n ) )\r
-{\r
-}\r
-\r
-\r
-mof::LayoutManager::~LayoutManager( )\r
-{\r
-}\r
-\r
-void mof::LayoutManager::replace\r
-(\r
- unsigned int width , \r
- unsigned int height, \r
- const mof::Rectangle<int> &front ,\r
- const mof::Rectangle<int> &back\r
-)\r
-{\r
- m_pImpl->width = width;\r
- m_pImpl->height = height;\r
- m_pImpl->length = &back - &front + 1;\r
- if(m_pImpl->length <= 0)throw std::invalid_argument("the length of front-back is less than zero");\r
-\r
- delete[] m_pImpl->positions;\r
- m_pImpl->positions = new mof::Vector2D[m_pImpl->length];\r
-\r
- //TODO X Layout\r
- int sumOfY = 0;\r
- for(int i = 0 ; i < m_pImpl->length ; ++i){\r
- m_pImpl->positions[i] = mof::Vector2D( 0 , sumOfY );\r
- sumOfY += (&front)[i].endY - (&front)[i].beginY;\r
- }\r
- \r
-}\r
-\r
-mof::Vector2D mof::LayoutManager::getPosition(int index) const{\r
- if(m_pImpl->positions == NULL)throw std::runtime_error("layout has not initialized yet");\r
- return m_pImpl->positions[index];\r
-}\r
-\r
- \r
- \r
+++ /dev/null
-#pragma once\r
-\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/Rectangle.hpp"\r
-\r
-namespace mof{\r
-\r
- class LayoutManager{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
-\r
- public:\r
- enum Direction{\r
- HORIZONTAL , VERTICAL\r
- };\r
- LayoutManager( Direction direction , int n);\r
- virtual ~LayoutManager();\r
- void replace(unsigned int width , unsigned int height , const mof::Rectangle<int>& front , const mof::Rectangle<int>& back);\r
- \r
- mof::Vector2D getPosition(int index) const ;\r
- int getLength( ) const ;\r
- };\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/Menu.hpp>\r
-#include <mof/widget/GridLayout.hpp>\r
-#include <mof/widget/Container.hpp>\r
-#include <boost/make_shared.hpp>\r
-\r
-using mof::widget::Container;\r
-using mof::widget::WidgetView;\r
-using mof::widget::GridLayout;\r
-using mof::widget::MenuItem;\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-//{{{ Impl\r
- struct Menu::Impl\r
- {\r
- std::vector< boost::function0<void> > actions;\r
- boost::shared_ptr<Container> pView; \r
- int currentIndex;\r
- \r
- Impl()\r
- : pView() , currentIndex(0)\r
- {}\r
- };\r
-//}}}\r
-//{{{ constructor\r
- Menu::Menu\r
- (\r
- const MenuItem& front ,\r
- const MenuItem& back\r
- )\r
- : m_pImpl(new Impl)\r
- {\r
- int length = &back - &front + 1;\r
- std::vector< boost::shared_ptr<mof::widget::WidgetView> > views;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- views.push_back( boost::shared_ptr<WidgetView>( (&front + i)->view( ) ) );\r
- }\r
- \r
- m_pImpl->pView = boost::make_shared<Container>\r
- (\r
- views.front() , views.back() , \r
- makeFactoryMethod<GridLayout>(GridLayout::VERTICAL , 0)\r
- );\r
- \r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ constructor\r
- Menu::Menu\r
- (\r
- const MenuItem& front ,\r
- const MenuItem& back ,\r
- const FactoryMethod<Layout>& layout\r
- )\r
- : m_pImpl(new Impl)\r
- {\r
- int length = &back - &front + 1;\r
- std::vector< boost::shared_ptr<mof::widget::WidgetView> > views;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- views.push_back( boost::shared_ptr<WidgetView>( (&front + i)->view( ) ) );\r
- }\r
- \r
- m_pImpl->pView = boost::make_shared<Container>\r
- (\r
- views.front() , views.back() , layout\r
- );\r
- \r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ destructor\r
- Menu::~Menu()\r
- {\r
- }\r
-//}}}\r
-//{{{ show\r
- mof::FrameNumber Menu::show(bool imidiately)\r
- {\r
- return m_pImpl->pView->show(imidiately);\r
- }\r
-//}}}\r
-//{{{ hide\r
- mof::FrameNumber Menu::hide(bool imidiately)\r
- {\r
- return m_pImpl->pView->hide(imidiately);\r
- }\r
-//}}}\r
-//{{{ getView\r
- const boost::shared_ptr<WidgetView> Menu::getView( ) const\r
- {\r
- return m_pImpl->pView;\r
- }\r
-//}}}\r
-//{{{ getView\r
- boost::shared_ptr<WidgetView> Menu::getView( ) \r
- {\r
- return m_pImpl->pView;\r
- }\r
-//}}}\r
-//{{{ update\r
- void Menu::update()\r
- {\r
- m_pImpl->pView->update();\r
- }\r
-//}}}\r
-//{{{ up\r
- void Menu::up()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsUp(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ down\r
- void Menu::down()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsDown(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ left \r
- void Menu::left()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsLeft(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ right \r
- void Menu::right()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsRight(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ performAction\r
- void Menu::performAction() const\r
- {\r
- m_pImpl->actions[m_pImpl->currentIndex]();\r
- }\r
-//}}}\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/Menu.hpp>\r
-#include <mof/widget/GridLayout.hpp>\r
-#include <mof/widget/Container.hpp>\r
-\r
-using mof::widget::Container;\r
-using mof::widget::WidgetView;\r
-using mof::widget::GridLayout;\r
-using mof::widget::MenuItem;\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-//{{{ Impl\r
- struct Menu::Impl\r
- {\r
- std::vector< boost::function0<void> > actions;\r
- boost::shared_ptr<Container> pView; \r
- int currentIndex;\r
- \r
- Impl()\r
- : pView() , currentIndex(0)\r
- {}\r
- };\r
-//}}}\r
-//{{{ constructor\r
- Menu::Menu\r
- (\r
- const MenuItem& front ,\r
- const MenuItem& back\r
- )\r
- : m_pImpl(new Impl)\r
- {\r
- int length = &back - &front + 1;\r
- std::vector< boost::shared_ptr<mof::widget::WidgetView> > views;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- views.push_back( boost::shared_ptr<WidgetView>( (&front + i)->view( ) ) );\r
- }\r
- \r
- m_pImpl->pView = boost::make_shared<Container>\r
- (\r
- views.front() , views.back() , \r
- makeFactoryMethod<GridLayout>(GridLayout::VERTICAL , 0)\r
- );\r
- \r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ constructor\r
- Menu::Menu\r
- (\r
- const MenuItem& front ,\r
- const MenuItem& back ,\r
- const FactoryMethod<Layout>& layout\r
- )\r
- : m_pImpl(new Impl)\r
- {\r
- int length = &back - &front + 1;\r
- std::vector< boost::shared_ptr<mof::widget::WidgetView> > views;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- views.push_back( boost::shared_ptr<WidgetView>( (&front + i)->view( ) ) );\r
- }\r
- \r
- m_pImpl->pView = boost::make_shared<Container>\r
- (\r
- views.front() , views.back() , layout\r
- );\r
- \r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ destructor\r
- Menu::~Menu()\r
- {\r
- }\r
-//}}}\r
-//{{{ show\r
- mof::FrameNumber Menu::show(bool imidiately)\r
- {\r
- return m_pImpl->pView->show(imidiately);\r
- }\r
-//}}}\r
-//{{{ hide\r
- mof::FrameNumber Menu::hide(bool imidiately)\r
- {\r
- return m_pImpl->pView->hide(imidiately);\r
- }\r
-//}}}\r
-//{{{ getView\r
- const boost::shared_ptr<WidgetView> Menu::getView( ) const\r
- {\r
- return m_pImpl->pView;\r
- }\r
-//}}}\r
-//{{{ getView\r
- boost::shared_ptr<WidgetView> Menu::getView( ) \r
- {\r
- return m_pImpl->pView;\r
- }\r
-//}}}\r
-//{{{ update\r
- void Menu::update()\r
- {\r
- m_pImpl->pView->update();\r
- }\r
-//}}}\r
-//{{{ up\r
- void Menu::up()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsUp(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ down\r
- void Menu::down()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsDown(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ left \r
- void Menu::left()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsLeft(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ right \r
- void Menu::right()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsRight(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ performAction\r
- void Menu::performAction() const\r
- {\r
- m_pImpl->actions[m_pImpl->currentIndex]();\r
- }\r
-//}}}\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/Widget.hpp>\r
-#include <mof/FactoryMethod.hpp>\r
-#include <mof/widget/Layout.hpp>\r
-#include <boost/function/function0.hpp>\r
-#include <boost/scoped_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- inline void emptyFunc(){}\r
-\r
- struct MenuItem\r
- {\r
- mof::FactoryMethod<WidgetView> view;\r
- boost::function0<void> action;\r
- \r
- MenuItem\r
- (\r
- const mof::FactoryMethod<WidgetView>& view_ ,\r
- const boost::function0<void>& action_\r
- )\r
- : view(view_) , action(action_)\r
- {\r
- }\r
- \r
- MenuItem\r
- (\r
- const mof::FactoryMethod<WidgetView>& view_ \r
- )\r
- : view(view_) , action(emptyFunc)\r
- {\r
- }\r
-\r
- };\r
-\r
- class Menu : public Widget\r
- {\r
- public:\r
- Menu(const MenuItem& front , const MenuItem& back );\r
- Menu\r
- (\r
- const MenuItem& front ,\r
- const MenuItem& back ,\r
- const FactoryMethod<Layout>& layout\r
- );\r
-\r
- virtual ~Menu();\r
- virtual FrameNumber show(bool imidiately = false);\r
- virtual FrameNumber hide(bool imidiately = false);\r
- virtual const boost::shared_ptr<WidgetView> getView( ) const;\r
- virtual boost::shared_ptr<WidgetView> getView( );\r
- virtual void update();\r
- \r
- virtual void up();\r
- virtual void down();\r
- virtual void left();\r
- virtual void right();\r
- virtual void performAction() const;\r
- protected:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-}\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/Widget.hpp>\r
-#include <mof/FactoryMethod.hpp>\r
-#include <mof/widget/Layout.hpp>\r
-#include <boost/function/function0.hpp>\r
-#include <boost/scoped_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- inline void emptyFunc(){}\r
-\r
- struct MenuItem\r
- {\r
- mof::FactoryMethod<WidgetView> view;\r
- boost::function0<void> action;\r
- \r
- MenuItem\r
- (\r
- const mof::FactoryMethod<WidgetView>& view_ ,\r
- const boost::function0<void>& action_\r
- )\r
- : view(view_) , action(action_)\r
- {\r
- }\r
- \r
- MenuItem\r
- (\r
- const mof::FactoryMethod<WidgetView>& view_ \r
- )\r
- : view(view_) , action(emptyFunc)\r
- {\r
- }\r
-\r
- };\r
-\r
- class Menu : public Widget\r
- {\r
- public:\r
- Menu(const MenuItem& front , const MenuItem& back );\r
- Menu\r
- (\r
- const MenuItem& front ,\r
- const MenuItem& back ,\r
- const FactoryMethod<Layout>& layout\r
- );\r
-\r
- virtual ~Menu();\r
- virtual FrameNumber show(bool imidiately = false);\r
- virtual FrameNumber hide(bool imidiately = false);\r
- virtual const boost::shared_ptr<WidgetView> getView() const = 0;\r
- virtual boost::shared_ptr<WidgetView> getView() = 0;\r
- virtual void update();\r
- \r
- virtual void up();\r
- virtual void down();\r
- virtual void left();\r
- virtual void right();\r
- virtual void performAction() const;\r
- protected:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-}\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include "widget/MenuWidget.hpp"\r
-#include <mof/widget/GridLayout.hpp>\r
-#include <mof/widget/ContainerWidgetView.hpp>\r
-\r
-namespace mof\r
-{\r
-//{{{ Impl\r
- struct MenuWidget::Impl\r
- {\r
- std::vector< boost::function0<void> > actions;\r
- mof::ContainerWidgetView* pView; \r
- int currentIndex;\r
- \r
- Impl()\r
- : pView(NULL) , currentIndex(0)\r
- {}\r
- };\r
-//}}}\r
-//{{{ constructor\r
- MenuWidget::MenuWidget\r
- (\r
- const mof::MenuItem& front ,\r
- const mof::MenuItem& back\r
- )\r
- : m_pImpl(new Impl)\r
- {\r
- int length = &back - &front + 1;\r
- std::vector< mof::FactoryMethod<mof::WidgetView> > views;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- views.push_back((&front + i)->view);\r
- }\r
- \r
- m_pImpl->pView = new mof::ContainerWidgetView\r
- (\r
- views.front() , views.back() , \r
- makeFactoryMethod<GridLayout>(mof::GridLayout::VERTICAL , 0)\r
- );\r
- \r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ constructor\r
- MenuWidget::MenuWidget\r
- (\r
- const mof::MenuItem& front ,\r
- const mof::MenuItem& back ,\r
- const FactoryMethod<Layout>& layout\r
- )\r
- : m_pImpl(new Impl)\r
- {\r
- int length = &back - &front + 1;\r
- std::vector< mof::FactoryMethod<mof::WidgetView> > views;\r
- for(int i = 0 ; i < length ; i++)\r
- {\r
- views.push_back((&front + i)->view);\r
- }\r
- \r
- m_pImpl->pView = new mof::ContainerWidgetView\r
- (\r
- views.front() , views.back() , layout\r
- );\r
- \r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ destructor\r
- MenuWidget::~MenuWidget()\r
- {\r
- delete m_pImpl->pView;\r
- }\r
-//}}}\r
-//{{{ show\r
- mof::FrameNumber MenuWidget::show(bool imidiately)\r
- {\r
- return m_pImpl->pView->show(imidiately);\r
- }\r
-//}}}\r
-//{{{ hide\r
- mof::FrameNumber MenuWidget::hide(bool imidiately)\r
- {\r
- return m_pImpl->pView->hide(imidiately);\r
- }\r
-//}}}\r
-//{{{ getView\r
- const mof::WidgetView& MenuWidget::getView() const\r
- {\r
- return *m_pImpl->pView;\r
- }\r
-//}}}\r
-//{{{ getView\r
- mof::WidgetView& MenuWidget::getView()\r
- {\r
- return *m_pImpl->pView;\r
- }\r
-//}}}\r
-//{{{ update\r
- void MenuWidget::update()\r
- {\r
- m_pImpl->pView->update();\r
- }\r
-//}}}\r
-//{{{ up\r
- void MenuWidget::up()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsUp(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ down\r
- void MenuWidget::down()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsDown(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ left \r
- void MenuWidget::left()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsLeft(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ right \r
- void MenuWidget::right()\r
- {\r
- int index = m_pImpl->pView->getAdjacencyAsRight(m_pImpl->currentIndex);\r
- if(index == m_pImpl->currentIndex)return;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->blur();\r
- m_pImpl->currentIndex = index;\r
- m_pImpl->pView->getAt(m_pImpl->currentIndex)->focus();\r
- }\r
-//}}}\r
-//{{{ performAction\r
- void MenuWidget::performAction() const\r
- {\r
- m_pImpl->actions[m_pImpl->currentIndex]();\r
- }\r
-//}}}\r
-} \r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/Widget.hpp>\r
-#include <mof/FactoryMethod.hpp>\r
-#include <mof/widget/Layout.hpp>\r
-#include <boost/function/function0.hpp>\r
-#include <boost/scoped_ptr.hpp>\r
-\r
-namespace mof{\r
-\r
- inline void emptyFunc(){}\r
-\r
- struct MenuItem\r
- {\r
- mof::FactoryMethod<WidgetView> view;\r
- boost::function0<void> action;\r
- \r
- MenuItem\r
- (\r
- const mof::FactoryMethod<WidgetView>& view_ ,\r
- const boost::function0<void>& action_\r
- )\r
- : view(view_) , action(action_)\r
- {\r
- }\r
- \r
- MenuItem\r
- (\r
- const mof::FactoryMethod<WidgetView>& view_ \r
- )\r
- : view(view_) , action(emptyFunc)\r
- {\r
- }\r
-\r
- };\r
-\r
- class MenuWidget \r
- {\r
- public:\r
- MenuWidget(const MenuItem& front , const MenuItem& back );\r
- MenuWidget\r
- (\r
- const MenuItem& front ,\r
- const MenuItem& back ,\r
- const FactoryMethod<Layout>& layout\r
- );\r
-\r
- virtual ~MenuWidget();\r
- virtual FrameNumber show(bool imidiately = false);\r
- virtual FrameNumber hide(bool imidiately = false);\r
- virtual const WidgetView& getView() const;\r
- virtual WidgetView& getView();\r
- virtual void update();\r
- \r
- virtual void up();\r
- virtual void down();\r
- virtual void left();\r
- virtual void right();\r
- virtual void performAction() const;\r
- protected:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-} // namespace mof\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/WidgetView.hpp>\r
-#include <mof/widget/Widget.hpp>\r
-#include <mof/stream/Manipulator.hpp>\r
-#include <boost/utility.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class Message : public Widget\r
- {\r
- public:\r
- Message(mof::tstring& message);\r
- virtual ~Message();\r
- virtual FrameNumber show(bool imidiately = false);\r
- virtual FrameNumber hide(bool imidiately = false);\r
- virtual const boost::shared_ptr<WidgetView> getView() const;\r
- virtual boost::shared_ptr<WidgetView> getView();\r
- virtual void update();\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- }; \r
-\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/WidgetView.hpp>\r
-#include <mof/widget/Widget.hpp>\r
-#include <mof/stream/Manipulator.hpp>\r
-#include <boost/utility.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class Message : public Widget\r
- {\r
- public:\r
- Message();\r
- virtual ~Message();\r
- virtual FrameNumber show(bool imidiately = false);\r
- virtual FrameNumber hide(bool imidiately = false);\r
- virtual const boost::shared_ptr<WidgetView> getView() const;\r
- virtual boost::shared_ptr<WidgetView> getView();\r
- virtual void update();\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- }; \r
-\r
-}\r
-}\r
+++ /dev/null
-#include "mof/MessageWidget.hpp"\r
-#include "mof/Effect.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/LayoutManager.hpp"\r
-#include <boost/scoped_array.hpp>\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/WidgetView.hpp"\r
-#include "mof/TextView.hpp"\r
-#include "mof/GraphicsDevice.hpp"\r
-#include "mof/mofAnimations.hpp"\r
-#include "mof/TextCompiler.hpp"\r
-#include "mof/widgets.hpp"\r
- \r
-namespace mof\r
-{\r
- \r
- struct MessageWidget::Impl\r
- {\r
- mof::WidgetView* pBackgroundView;\r
- mof::TextView* pTitleView;\r
- mof::LayoutManager* pLayout;\r
- //boost::shared_ptr<mof::Matrix2D> pTranslation;\r
- mof::TranslationAnimation2D::Handler translation;\r
- mof::ScalingAnimation2D::Handler scaling;\r
- mof::Pager* pPager;\r
- mof::FrameNumber frame;\r
- //int width;\r
- //int height;\r
- \r
-//{{{ Impl \r
- Impl()\r
- : \r
- pBackgroundView(NULL) , \r
- pTitleView(NULL) , \r
- pLayout(NULL) ,\r
- pPager( NULL ) ,\r
- frame( 0 )\r
- {\r
- translation = mof::TranslationAnimation2D::Handler\r
- (\r
- new mof::TranslationAnimation2D\r
- (\r
- mof::makeConstantHandler\r
- (\r
- mof::Vector2D( 0 , 0 )\r
- )\r
- )\r
- );\r
-\r
- scaling = mof::ScalingAnimation2D::Handler\r
- (\r
- new mof::ScalingAnimation2D\r
- (\r
- mof::makeConstantHandler\r
- (\r
- mof::Vector2D( 0 , 0 )\r
- )\r
- )\r
- );\r
-\r
- }\r
-//}}}\r
-//{{{ ~Impl\r
- ~Impl()\r
- {\r
- delete pLayout;\r
- delete pBackgroundView;\r
- delete pTitleView;\r
- delete pPager;\r
- }\r
- \r
-//}}} \r
- };\r
-//{{{ MessageWidget\r
- MessageWidget::MessageWidget\r
- (\r
- mof::WidgetView* pBackgroundView ,\r
- const mof::Rectangle<int>& bounds ,\r
- mof::LayoutManager* pLayout\r
- )\r
- : m_pImpl( new Impl( ) )\r
- {\r
- m_pImpl->pLayout = pLayout;\r
- m_pImpl->pBackgroundView = pBackgroundView;\r
- m_pImpl->pBackgroundView->setBounds( bounds );\r
- m_pImpl->translation->set( m_pImpl->pBackgroundView->getPosition( ) );\r
- m_pImpl->scaling->set( m_pImpl->pBackgroundView->getSize( ) );\r
- \r
- { // \83^\83C\83g\83\8b\82Ì\8f\89\8aú\89»\r
- if( true )\r
- {\r
- m_pImpl->pTitleView = new mof::TextView\r
- (\r
- _T("Title") , mof::Font( mof::Font::MS_P_GOTHIC , 25 )\r
- );\r
- m_pImpl->pTitleView->initialize();\r
- mof::Rectangle<int> tmp( bounds.beginX , bounds.beginY , bounds.endX , bounds.beginY + 32 );\r
- m_pImpl->pTitleView->setBounds( tmp );\r
- \r
- }\r
- }\r
- { // \83y\81[\83W\83\83\82Ì\90¶\90¬\r
- mof::LayoutManager* pLayout = new mof::LayoutManager( mof::LayoutManager::HORIZONTAL , 1);\r
- m_pImpl->pPager = new mof::Pager( bounds , pLayout );\r
- }\r
- }\r
-//}}}\r
-//{{{ ~MessageWidget\r
- MessageWidget::~MessageWidget(){\r
- \r
- }\r
-//}}}\r
-//{{{ show\r
- void MessageWidget::show(){\r
- m_pImpl->pPager->show();\r
- m_pImpl->pBackgroundView->show();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->show();\r
- }\r
-//}}}\r
-//{{{ close\r
- void MessageWidget::close()\r
- {\r
- m_pImpl->pPager->close();\r
- m_pImpl->pBackgroundView->close();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->close();\r
- }\r
-//}}}\r
-//{{{ nextPage\r
- void MessageWidget::nextPage(){\r
- if( !m_pImpl->pPager->hasNextPage( ) )close();\r
- else if( !m_pImpl->pPager->hasPreviousPage() )show();\r
- else m_pImpl->pPager->nextPage();\r
- }\r
-//}}}\r
-//{{{ addPage\r
- void MessageWidget::addPage( const PageRequest& page ){\r
- \r
- m_pImpl->pPager->addPage( page );\r
- \r
- std::vector<mof::Rectangle<int> > boundList;\r
- if( m_pImpl->pTitleView )boundList.push_back( mof::Rectangle<int>( 0 , 0 , 1 , 32) );\r
- boundList.push_back( m_pImpl->pPager->getBounds( ) );\r
- \r
- mof::Vector2D scaling = m_pImpl->scaling->get( )->getValue( m_pImpl->frame );\r
- m_pImpl->pLayout->replace\r
- (\r
- scaling.x , scaling.y ,\r
- boundList.front() , boundList.back()\r
- );\r
-\r
- int i = 0;\r
- if( m_pImpl->pTitleView )\r
- {\r
- mof::Animation<mof::Matrix2D>::Handler children[] =\r
- {\r
- mof::makeConstantHandler\r
- ( \r
- mof::Matrix2D::createScaling\r
- (\r
- mof::Vector2D(boundList.at(i).getWidth( ) , boundList.at(i).getHeight( ) )\r
- )\r
- ) ,\r
- m_pImpl->translation ,\r
- mof::makeConstantHandler\r
- (\r
- mof::Matrix2D::createTranslation( m_pImpl->pLayout->getPosition(i) )\r
- )\r
- }; // array children\r
- \r
- mof::Animation<mof::Matrix2D>::Handler handler\r
- (\r
- new mof::CascadingAnimation<mof::Matrix2D>( children[0] , mof::lastOf( children ) )\r
- );\r
- i++;\r
- //m_pImpl->pTitleView->setWorldTransform( handler );\r
- //m_pImpl->pTitleView->setColor(mof::Color4f(0 , 1 , 1 , 1));\r
- \r
- } // if\r
- {\r
- const mof::Animation<mof::Vector2D>::Handler children[] =\r
- {\r
- //mof::makeConstantHandler( mof::Vector2D( 300 , 300) ) ,\r
- m_pImpl->translation->get( ) ,\r
- mof::makeConstantHandler\r
- (\r
- m_pImpl->pLayout->getPosition(i) \r
- )\r
- }; // array children\r
- \r
- mof::Animation<mof::Vector2D>::Handler handler\r
- (\r
- new mof::CascadingAnimation<mof::Vector2D , mof::Add<mof::Vector2D> >( children[0] , mof::lastOf( children ) )\r
- );\r
- m_pImpl->pPager->setPosition( handler );\r
- //m_pImpl->pTitleView->setWorldTransform( handler );\r
- //m_pImpl->pTitleView->setColor(mof::Color4f(0 , 1 , 1 , 1));\r
- \r
- } // for \r
- \r
- \r
- }\r
-//}}}\r
-//{{{ draw\r
- void MessageWidget::draw() const{\r
- m_pImpl->pBackgroundView->draw();\r
- \r
- { // \95`\89æ\97Ì\88æ\82ð\90§\8cÀ\r
- mof::Vector2D scaling = m_pImpl->scaling->get( )->getValue( m_pImpl->frame );\r
- mof::Vector2D translation = m_pImpl->translation->get( )->getValue( m_pImpl->frame );\r
- mof::GraphicsDevice::setViewport \r
- ( \r
- mof::Rectangle<int>( translation.x , translation.y , translation.x + scaling.x , translation.y + scaling.y )\r
- );\r
- }\r
-\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->getEffect()->draw();\r
- m_pImpl->pPager->draw(); \r
- mof::GraphicsDevice::setViewport(mof::Rectangle<int>(0 , 0 , 640 , 480));//TODO\r
- \r
- }\r
-//}}}\r
-//{{{ update\r
- void MessageWidget::update() {\r
- \r
- m_pImpl->pBackgroundView->update();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->update();\r
- m_pImpl->pPager->update(); \r
- m_pImpl->frame++;\r
- }\r
-//}}}\r
-//{{{ hasNextPage\r
- bool MessageWidget::hasNextPage( ){\r
- return m_pImpl->pPager->hasNextPage( );\r
- \r
- }\r
-//}}}\r
-} //namespace mof\r
-\r
+++ /dev/null
-#include "mof/MessageWidget.hpp"\r
-#include "mof/Effect.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/LayoutManager.hpp"\r
-#include <boost/scoped_array.hpp>\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/WidgetView.hpp"\r
-#include "mof/TextView.hpp"\r
-#include "mof/GraphicsDevice.hpp"\r
-#include "mof/mofAnimations.hpp"\r
-#include "mof/TextCompiler.hpp"\r
-#include "mof/widgets.hpp"\r
-\r
-struct mof::MessageWidget::Impl{\r
- mof::WidgetView* pBackgroundView;\r
- mof::TextView* pTitleView;\r
- mof::LayoutManager* pLayout;\r
- boost::shared_ptr<mof::Matrix2D> pTranslation;\r
- int width;\r
- int height;\r
- \r
- std::vector<std::vector<mof::Sprite*> > pages;\r
- int currentPage;\r
-\r
- Impl(const mof::Rectangle<int>& _bounds)\r
- : \r
- pBackgroundView(NULL) , \r
- pTitleView(NULL) , \r
- width(_bounds.endX - _bounds.beginX) ,\r
- height(_bounds.endY - _bounds.beginY) ,\r
- currentPage(-1) ,\r
- pLayout(NULL) \r
- {\r
- pTranslation = boost::shared_ptr<mof::Matrix2D>\r
- (\r
- new mof::Matrix2D\r
- (\r
- mof::Matrix2D::createTranslation\r
- (\r
- mof::Vector2D(_bounds.beginX , _bounds.beginY )\r
- )\r
- )\r
- );\r
- }\r
-\r
- ~Impl(){\r
- delete pLayout;\r
- delete pBackgroundView;\r
- delete pTitleView;\r
- foreach(std::vector<mof::Sprite*>& page , pages ){\r
- foreach(mof::Sprite*& pSprite , page ){\r
- delete pSprite;\r
- }\r
- }\r
- }\r
-\r
- void showPage(bool first){\r
- mof::KeyFrameAnimation<mof::Color4f>::KeyFrame keyFrames[] = {\r
- mof::makeKeyFrame(first ? 0 : 10*2 , mof::Color4f(0 , 1 , 1 , 1) ) ,\r
- mof::makeKeyFrame(first ? 30*2 : 90 , mof::Color4f(1 , 1 , 1 , 1) ) \r
- };\r
- mof::Animation<mof::Color4f>::Handler handler(new mof::KeyFrameAnimation<mof::Color4f>(keyFrames[0] , keyFrames[1]));\r
- foreach(mof::Sprite*& pSprite , pages.at(currentPage) ){\r
- pSprite->setColor(handler);\r
- pSprite->setFrameNumber(0);\r
- }\r
- }\r
-\r
- void closePage(bool last){\r
- mof::KeyFrameAnimation<mof::Color4f>::KeyFrame keyFrames[] = {\r
- mof::makeKeyFrame(0 , mof::Color4f(1 , 1 , 1 , 1) ) ,\r
- mof::makeKeyFrame(last ? 10*2 : 10*2 , mof::Color4f(0 , 1 , 1 , 1) ) \r
- };\r
- mof::Animation<mof::Color4f>::Handler handler(new mof::KeyFrameAnimation<mof::Color4f>(keyFrames[0] , keyFrames[1]));\r
- foreach(mof::Sprite*& pSprite , pages.at(currentPage) ){\r
- pSprite->setColor(handler);\r
- pSprite->setFrameNumber(0);\r
- }\r
- }\r
-\r
-\r
- \r
-};\r
-\r
-//{{{ MessageWidget\r
-mof::MessageWidget::MessageWidget\r
-(\r
- mof::WidgetView* pBackgroundView ,\r
- const mof::Rectangle<int>& bounds ,\r
- mof::LayoutManager* pLayout\r
-)\r
-: m_pImpl( new Impl( bounds) )\r
-{\r
- m_pImpl->pLayout = pLayout;\r
- m_pImpl->pBackgroundView = pBackgroundView;\r
-\r
- { // \83^\83C\83g\83\8b\82Ì\8f\89\8aú\89»\r
- if( true )\r
- {\r
- m_pImpl->pTitleView = new mof::TextView\r
- (\r
- _T("Title") , mof::Font( mof::Font::MS_P_GOTHIC , 25 )\r
- );\r
- m_pImpl->pTitleView->initialize();\r
- mof::Rectangle<int> tmp( bounds.beginX , bounds.beginY , bounds.endX , bounds.beginY + 32 );\r
- m_pImpl->pTitleView->setBounds( tmp );\r
-\r
- }\r
- }\r
-\r
- m_pImpl->pBackgroundView->setBounds(bounds);\r
-}\r
-//}}}\r
-//{{{ ~MessageWidget\r
-mof::MessageWidget::~MessageWidget(){\r
-\r
-}\r
-//}}}\r
-//{{{ show\r
-void mof::MessageWidget::show(){\r
- m_pImpl->currentPage = -1;\r
- m_pImpl->pBackgroundView->show();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->show();\r
- m_pImpl->currentPage++;\r
- m_pImpl->showPage(true);\r
-}\r
-//}}}\r
-//{{{ close\r
-void mof::MessageWidget::close(){\r
-\r
- m_pImpl->pBackgroundView->close();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->close();\r
- if(m_pImpl->currentPage < 0)return;\r
- m_pImpl->closePage(true);\r
-}\r
-//}}}\r
-//{{{ nextPage\r
-void mof::MessageWidget::nextPage(){\r
- if(m_pImpl->currentPage < 0){\r
- show();\r
- return;\r
- }\r
- m_pImpl->closePage(false);\r
- if(m_pImpl->currentPage >= static_cast<signed int>(m_pImpl->pages.size()) -1 ){\r
- close();\r
- return;\r
- }\r
- m_pImpl->currentPage++;\r
- m_pImpl->showPage(false);\r
-}\r
-//}}}\r
-//{{{ addPage\r
-void mof::MessageWidget::addPage( const Page& page ){\r
-\r
- m_pImpl->pages.push_back(std::vector<mof::Sprite*>());\r
- mof::compileText( page.message , page.font , m_pImpl->pages.back() );\r
- \r
- std::vector<mof::Rectangle<int> > boundList;\r
- if( m_pImpl->pTitleView )boundList.push_back( mof::Rectangle<int>( 0 , 0 , 1 , 32) );\r
- //if( m_pImpl->pTitleView )boundList.push_back( m_pImpl->pTitle->getBounds() );\r
- \r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.back() ){\r
- mof::Rectangle<int> bounds = pSprite->getWorldTransform().toBoundingBox(); \r
- boundList.push_back(bounds);\r
- }\r
- m_pImpl->pLayout->replace(m_pImpl->width , m_pImpl->height , boundList.front() , boundList.back() );\r
- \r
- //TODO: LayoutAnimation\82ð\82Â\82\82é\r
- for(unsigned int j = 0 ; j < m_pImpl->pLayout->getLength( ) ; ++j)\r
- {\r
- const mof::Animation<mof::Matrix2D>::Handler children[] =\r
- {\r
- mof::makeConstantHandler\r
- ( \r
- mof::Matrix2D::createScaling\r
- (\r
- mof::Vector2D(boundList.at(j).endX - boundList.at(j).beginX , boundList.at(j).endY - boundList.at(j).beginY)\r
- )\r
- ) ,\r
- mof::makeParametricHandler(m_pImpl->pTranslation) ,\r
- mof::makeConstantHandler\r
- (\r
- mof::Matrix2D::createTranslation( m_pImpl->pLayout->getPosition(j) )\r
- )\r
- }; // array children\r
-\r
- mof::Animation<mof::Matrix2D>::Handler handler\r
- (\r
- new mof::CascadingAnimation<mof::Matrix2D>( children[0] , mof::lastOf( children ) )\r
- );\r
-\r
- //if( m_pImpl->pTitleView && j == 0 )m_pImpl->pTitleView->setPosition( handler );\r
- if( m_pImpl->pTitleView && j != 0 )\r
- {\r
- m_pImpl->pages.back().at(j-1)->setWorldTransform( handler );\r
- m_pImpl->pages.back().at(j-1)->setColor(mof::Color4f(0 , 1 , 1 , 1));\r
- }\r
- else if( NULL != m_pImpl->pTitleView )\r
- {\r
- m_pImpl->pages.back().at(j)->setWorldTransform( handler );\r
- m_pImpl->pages.back().at(j)->setColor(mof::Color4f(0 , 1 , 1 , 1));\r
- }\r
-\r
- } // for \r
-\r
-\r
-}\r
-//}}}\r
-//{{{ draw\r
-void mof::MessageWidget::draw() const{\r
- m_pImpl->pBackgroundView->draw();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->getEffect()->draw();\r
- if(m_pImpl->currentPage < 0)return;\r
- \r
- if(m_pImpl->currentPage > 0){\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage-1) ){\r
- pSprite->draw();\r
- }\r
- }\r
- mof::GraphicsDevice::setViewport(m_pImpl->pBackgroundView->getBounds());\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage) ){\r
- pSprite->draw();\r
- }\r
- mof::GraphicsDevice::setViewport(mof::Rectangle<int>(0 , 0 , 640 , 480));//TODO\r
- \r
-}\r
-//}}}\r
-//{{{ update\r
-void mof::MessageWidget::update() {\r
-\r
- m_pImpl->pBackgroundView->update();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->update();\r
- if(m_pImpl->currentPage < 0)return;\r
- if(m_pImpl->currentPage > 0){\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage-1) ){\r
- pSprite->update();\r
- }\r
- }\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage) ){\r
- pSprite->update();\r
- }\r
-}\r
-//}}}\r
-//{{{ hasNextPage\r
-bool mof::MessageWidget::hasNextPage(){\r
- return m_pImpl->currentPage < static_cast<signed int>(m_pImpl->pages.size()) -1;\r
-\r
-}\r
-//}}}\r
-\r
+++ /dev/null
-#include "mof/MessageWidget.hpp"\r
-#include "mof/Effect.hpp"\r
-#include "mof/utilities.hpp"\r
-#include "mof/LayoutManager.hpp"\r
-#include <boost/scoped_array.hpp>\r
-#include "mof/ConsoleIO.hpp"\r
-#include "mof/WidgetView.hpp"\r
-#include "mof/TextView.hpp"\r
-#include "mof/GraphicsDevice.hpp"\r
-#include "mof/mofAnimations.hpp"\r
-#include "mof/TextCompiler.hpp"\r
-#include "mof/widgets.hpp"\r
- \r
-namespace mof\r
-{\r
- \r
- struct MessageWidget::Impl\r
- {\r
- mof::WidgetView* pBackgroundView;\r
- mof::TextView* pTitleView;\r
- mof::LayoutManager* pLayout;\r
- //boost::shared_ptr<mof::Matrix2D> pTranslation;\r
- mof::TranslationAnimation2D::Handler translation;\r
- mof::ScalingAnimation2D::Handler scaling;\r
- mof::Pager* pPager;\r
- mof::FrameNumber frame;\r
- //int width;\r
- //int height;\r
- \r
-//{{{ Impl \r
- Impl()\r
- : \r
- pBackgroundView(NULL) , \r
- pTitleView(NULL) , \r
- pLayout(NULL) ,\r
- pPager( NULL ) ,\r
- frame( 0 )\r
- {\r
- translation = mof::TranslationAnimation2D::Handler\r
- (\r
- new mof::TranslationAnimation2D\r
- (\r
- mof::makeConstantHandler\r
- (\r
- mof::Vector2D( 0 , 0 )\r
- )\r
- )\r
- );\r
-\r
- scaling = mof::ScalingAnimation2D::Handler\r
- (\r
- new mof::ScalingAnimation2D\r
- (\r
- mof::makeConstantHandler\r
- (\r
- mof::Vector2D( 0 , 0 )\r
- )\r
- )\r
- );\r
-\r
- }\r
-//}}}\r
-//{{{ ~Impl\r
- ~Impl()\r
- {\r
- delete pLayout;\r
- delete pBackgroundView;\r
- delete pTitleView;\r
- delete pPager;\r
- }\r
- \r
-//}}} \r
- };\r
-//{{{ MessageWidget\r
- MessageWidget::MessageWidget\r
- (\r
- mof::WidgetView* pBackgroundView ,\r
- const mof::Rectangle<int>& bounds ,\r
- mof::LayoutManager* pLayout\r
- )\r
- : m_pImpl( new Impl( ) )\r
- {\r
- m_pImpl->pLayout = pLayout;\r
- m_pImpl->pBackgroundView = pBackgroundView;\r
- m_pImpl->pBackgroundView->setBounds( bounds );\r
- m_pImpl->translation->set( m_pImpl->pBackgroundView->getPosition( ) );\r
- m_pImpl->scaling->set( m_pImpl->pBackgroundView->getSize( ) );\r
- \r
- { // \83^\83C\83g\83\8b\82Ì\8f\89\8aú\89»\r
- if( true )\r
- {\r
- m_pImpl->pTitleView = new mof::TextView\r
- (\r
- _T("Title") , mof::Font( mof::Font::MS_P_GOTHIC , 25 )\r
- );\r
- m_pImpl->pTitleView->initialize();\r
- mof::Rectangle<int> tmp( bounds.beginX , bounds.beginY , bounds.endX , bounds.beginY + 32 );\r
- m_pImpl->pTitleView->setBounds( tmp );\r
- \r
- }\r
- }\r
- { // \83y\81[\83W\83\83\82Ì\90¶\90¬\r
- mof::LayoutManager* pLayout = new mof::LayoutManager( mof::LayoutManager::HORIZONTAL , 1);\r
- m_pImpl->pPager = new mof::Pager( bounds , pLayout );\r
- }\r
- }\r
-//}}}\r
-//{{{ ~MessageWidget\r
- MessageWidget::~MessageWidget(){\r
- \r
- }\r
-//}}}\r
-//{{{ show\r
- void MessageWidget::show(){\r
- m_pImpl->pPager->show();\r
- m_pImpl->pBackgroundView->show();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->show();\r
- }\r
-//}}}\r
-//{{{ close\r
- void MessageWidget::close()\r
- {\r
- m_pImpl->pPager->close();\r
- m_pImpl->pBackgroundView->close();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->close();\r
- }\r
-//}}}\r
-//{{{ nextPage\r
- void MessageWidget::nextPage(){\r
- if( !m_pImpl->pPager->hasNextPage( ) )close();\r
- else if( !m_pImpl->pPager->hasPreviousPage() )show();\r
- else m_pImpl->pPager->nextPage();\r
- }\r
-//}}}\r
-//{{{ addPage\r
- void MessageWidget::addPage( const PageRequest& page ){\r
- \r
- m_pImpl->pPager->addPage( page );\r
- \r
- std::vector<mof::Rectangle<int> > boundList;\r
- if( m_pImpl->pTitleView )boundList.push_back( mof::Rectangle<int>( 0 , 0 , 1 , 32) );\r
- boundList.push_back( m_pImpl->pPager->getBounds( ) );\r
- \r
- mof::Vector2D scaling = m_pImpl->scaling->get( )->getValue( m_pImpl->frame );\r
- m_pImpl->pLayout->replace\r
- (\r
- scaling.x , scaling.y ,\r
- boundList.front() , boundList.back()\r
- );\r
-\r
- int i = 0;\r
- if( m_pImpl->pTitleView )\r
- {\r
- mof::Animation<mof::Matrix2D>::Handler children[] =\r
- {\r
- mof::makeConstantHandler\r
- ( \r
- mof::Matrix2D::createScaling\r
- (\r
- mof::Vector2D(boundList.at(i).getWidth( ) , boundList.at(i).getHeight( ) )\r
- )\r
- ) ,\r
- m_pImpl->translation ,\r
- mof::makeConstantHandler\r
- (\r
- mof::Matrix2D::createTranslation( m_pImpl->pLayout->getPosition(i) )\r
- )\r
- }; // array children\r
- \r
- mof::Animation<mof::Matrix2D>::Handler handler\r
- (\r
- new mof::CascadingAnimation<mof::Matrix2D>( children[0] , mof::lastOf( children ) )\r
- );\r
- i++;\r
- //m_pImpl->pTitleView->setWorldTransform( handler );\r
- //m_pImpl->pTitleView->setColor(mof::Color4f(0 , 1 , 1 , 1));\r
- \r
- } // if\r
- {\r
- const mof::Animation<mof::Vector2D>::Handler children[] =\r
- {\r
- //mof::makeConstantHandler( mof::Vector2D( 300 , 300) ) ,\r
- m_pImpl->translation->get( ) ,\r
- mof::makeConstantHandler\r
- (\r
- m_pImpl->pLayout->getPosition(i) \r
- )\r
- }; // array children\r
- \r
- mof::Animation<mof::Vector2D>::Handler handler\r
- (\r
- new mof::CascadingAnimation<mof::Vector2D , mof::Add<mof::Vector2D> >( children[0] , mof::lastOf( children ) )\r
- );\r
- m_pImpl->pPager->setPosition( handler );\r
- //m_pImpl->pTitleView->setWorldTransform( handler );\r
- //m_pImpl->pTitleView->setColor(mof::Color4f(0 , 1 , 1 , 1));\r
- \r
- } // for \r
- \r
- \r
- }\r
-//}}}\r
-//{{{ draw\r
- void MessageWidget::draw() const{\r
- m_pImpl->pBackgroundView->draw();\r
- \r
- { // \95`\89æ\97Ì\88æ\82ð\90§\8cÀ\r
- mof::Vector2D scaling = m_pImpl->scaling->get( )->getValue( m_pImpl->frame );\r
- mof::Vector2D translation = m_pImpl->translation->get( )->getValue( m_pImpl->frame );\r
- mof::GraphicsDevice::setViewport \r
- ( \r
- mof::Rectangle<int>( translation.x , translation.y , translation.x + scaling.x , translation.y + scaling.y )\r
- );\r
- }\r
-\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->getEffect()->draw();\r
- m_pImpl->pPager->draw(); \r
- mof::GraphicsDevice::setViewport(mof::Rectangle<int>(0 , 0 , 640 , 480));//TODO\r
- \r
- }\r
-//}}}\r
-//{{{ update\r
- void MessageWidget::update() {\r
- \r
- m_pImpl->pBackgroundView->update();\r
- if( m_pImpl->pTitleView )m_pImpl->pTitleView->update();\r
- m_pImpl->pPager->update(); \r
- m_pImpl->frame++;\r
- }\r
-//}}}\r
-//{{{ hasNextPage\r
- bool MessageWidget::hasNextPage( ){\r
- return m_pImpl->pPager->hasNextPage( );\r
- \r
- }\r
-//}}}\r
-} //namespace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include <boost/function/function0.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-#include <boost/scoped_ptr.hpp>\r
-//#include "mof/MenuView.hpp"\r
-#include "mof/widget/WidgetView.hpp"\r
-#include "mof/Font.hpp"\r
-\r
-namespace mof\r
-{\r
- struct PageRequest\r
- {\r
- tstring message;\r
- Font font;\r
- \r
- PageRequest(const tstring& message_ , const Font& font_ )\r
- : message(message_) , font(font_)\r
- {\r
- }\r
- };\r
-\r
- class LayoutManager;\r
- class WidgetView;\r
- class Pager;\r
- struct Page;\r
-\r
- class MessageWidget : boost::noncopyable{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- public:\r
- \r
- MessageWidget\r
- ( \r
- WidgetView* pBackgroundView , \r
- const Rectangle< int >& bounds , LayoutManager* pLayout\r
- );\r
-\r
- ~MessageWidget();\r
- void show();\r
- void close();\r
- void nextPage();\r
- void addPage( const PageRequest& page );\r
- void draw() const;\r
- void update();\r
- bool hasNextPage();\r
-\r
- };\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <boost/function/function0.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-#include <boost/scoped_ptr.hpp>\r
-//#include "mof/MenuView.hpp"\r
-#include "mof/WidgetView.hpp"\r
-#include "mof/Font.hpp"\r
-\r
-namespace mof\r
-{\r
- struct PageRequest\r
- {\r
- tstring message;\r
- Font font;\r
- \r
- PageRequest(const tstring& message_ , const Font& font_ )\r
- : message(message_) , font(font_)\r
- {\r
- }\r
- };\r
-\r
- class LayoutManager;\r
- class WidgetView;\r
- class Pager;\r
- struct Page;\r
-\r
- class MessageWidget : boost::noncopyable{\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- public:\r
- \r
- MessageWidget\r
- ( \r
- WidgetView* pBackgroundView , \r
- const Rectangle< int >& bounds , LayoutManager* pLayout\r
- );\r
-\r
- ~MessageWidget();\r
- void show();\r
- void close();\r
- void nextPage();\r
- void addPage( const PageRequest& page );\r
- void draw() const;\r
- void update();\r
- bool hasNextPage();\r
-\r
- };\r
-}\r
+++ /dev/null
-#include <mof/widget/OverlapLayout.hpp>\r
-#include <mof/utilities.hpp>\r
-#include <mof/widgets.hpp>\r
-#include <mof/streams.hpp>\r
-#include <algorithm>\r
-#include <vector>\r
-\r
-using boost::shared_ptr;\r
-using mof::widget::WidgetView;\r
-//{{{ Impl\r
-struct mof::widget::OverlapLayout::Impl\r
-{\r
- \r
- int width , height;\r
- size_t length;\r
- std::vector< shared_ptr<WidgetView> > views;\r
-\r
- Impl( const mof::Vector2D& size )\r
- : \r
- width(size.x) , height(size.y) , length(0)\r
- {}\r
- \r
-\r
- ~Impl()\r
- {\r
- }\r
-};\r
-//}}}\r
-//{{{ OverlapLayout\r
-mof::widget::OverlapLayout::OverlapLayout( const mof::Vector2D& size )\r
-: m_pImpl( new Impl( size ) )\r
-{\r
-}\r
-//}}}\r
-//{{{ ~OverlapLayout\r
-mof::widget::OverlapLayout::~OverlapLayout( )\r
-{\r
-}\r
-//}}}\r
-//{{{ add\r
-void mof::widget::OverlapLayout::add(shared_ptr<WidgetView> pView)\r
-{\r
- /*if(m_pImpl->length == 0 ){\r
- m_pImpl->width = mof::real2int(size.x);\r
- m_pImpl->width = mof::real2int(size.y);\r
- }*/\r
- m_pImpl->length++;\r
- m_pImpl->views.push_back(pView);\r
-}\r
-//}}}\r
-//{{{ getLength\r
-size_t mof::widget::OverlapLayout::getLength() const\r
-{\r
- return m_pImpl->length;\r
-}\r
-//}}}\r
-//{{{ getPreferredSize\r
-mof::Vector2D mof::widget::OverlapLayout::getPreferredSize() const\r
-{\r
- return mof::Vector2D(m_pImpl->width , m_pImpl->height);\r
-}\r
-//}}}\r
-//{{{ getSizeDependencyType\r
-mof::widget::Layout::DependencyType mof::widget::OverlapLayout::getSizeDependencyType() const\r
-{\r
- return mof::widget::Layout::PARENT_LEADING;\r
-}\r
-//}}}\r
-//{{{ connect\r
-void mof::widget::OverlapLayout::connect(WidgetView* pParentView) \r
-{\r
- size_t i = 0;\r
- foreach(shared_ptr<WidgetView> pView , m_pImpl->views) \r
- {\r
- pView->getPositionStream() << pParentView->getPositionStream();\r
- pView->getSizeStream() << pParentView->getSizeStream() << - pView->getSizeStream().value();\r
- }\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsUp\r
-int mof::widget::OverlapLayout::getAdjacencyAsUp(int index) const\r
-{\r
- return mof::rotation_mod(index-1 , m_pImpl->length);\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsDown\r
-int mof::widget::OverlapLayout::getAdjacencyAsDown(int index) const\r
-{\r
- return mof::rotation_mod(index+1 , m_pImpl->length );\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsLeft\r
-int mof::widget::OverlapLayout::getAdjacencyAsLeft(int index) const\r
-{\r
- return mof::rotation_mod(index-1 , m_pImpl->length );\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsRight\r
-int mof::widget::OverlapLayout::getAdjacencyAsRight(int index) const\r
-{\r
- return mof::rotation_mod(index+1 , m_pImpl->length );\r
-}\r
-//}}}\r
+++ /dev/null
-#include <mof/widget/OverlapLayout.hpp>\r
-#include <mof/utilities.hpp>\r
-#include <mof/widgets.hpp>\r
-#include <mof/streams.hpp>\r
-#include <algorithm>\r
-#include <vector>\r
-\r
-using boost::shared_ptr;\r
-using mof::widget::WidgetView;\r
-//{{{ Impl\r
-struct mof::widget::OverlapLayout::Impl\r
-{\r
- \r
- int width , height;\r
- size_t length;\r
- std::vector< shared_ptr<WidgetView> > views;\r
-\r
- Impl( const mof::Vector2D& size )\r
- : \r
- width(size.x) , height(size.y) , length(0)\r
- {}\r
- \r
-\r
- ~Impl()\r
- {\r
- }\r
-};\r
-//}}}\r
-//{{{ OverlapLayout\r
-mof::widget::OverlapLayout::OverlapLayout( const mof::Vector2D& size )\r
-: m_pImpl( new Impl( size ) )\r
-{\r
-}\r
-//}}}\r
-//{{{ ~OverlapLayout\r
-mof::widget::OverlapLayout::~OverlapLayout( )\r
-{\r
-}\r
-//}}}\r
-//{{{ add\r
-void mof::widget::OverlapLayout::add(shared_ptr<WidgetView> pView)\r
-{\r
- /*if(m_pImpl->length == 0 ){\r
- m_pImpl->width = mof::real2int(size.x);\r
- m_pImpl->width = mof::real2int(size.y);\r
- }*/\r
- m_pImpl->length++;\r
- m_pImpl->views.push_back(pView);\r
-}\r
-//}}}\r
-//{{{ getLength\r
-size_t mof::widget::OverlapLayout::getLength() const\r
-{\r
- return m_pImpl->length;\r
-}\r
-//}}}\r
-//{{{ getPreferredSize\r
-mof::Vector2D mof::widget::OverlapLayout::getPreferredSize() const\r
-{\r
- return mof::Vector2D(m_pImpl->width , m_pImpl->height);\r
-}\r
-//}}}\r
-//{{{ getSizeDependencyType\r
-mof::widget::Layout::DependencyType mof::widget::OverlapLayout::getSizeDependencyType() const\r
-{\r
- return mof::widget::Layout::PARENT_LEADING;\r
-}\r
-//}}}\r
-//{{{ connect\r
-void mof::widget::OverlapLayout::connect(WidgetView* pParentView) \r
-{\r
- size_t i = 0;\r
- foreach(shared_ptr<WidgetView> pView , m_pImpl->views) \r
- {\r
- pView->getPositionStream() << pParentView;\r
- pView->getSizeStream() << pParentView->getSizeStream() << - pView->getSizeStream().value();\r
- }\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsUp\r
-int mof::widget::OverlapLayout::getAdjacencyAsUp(int index) const\r
-{\r
- return mof::rotation_mod(index-1 , m_pImpl->length);\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsDown\r
-int mof::widget::OverlapLayout::getAdjacencyAsDown(int index) const\r
-{\r
- return mof::rotation_mod(index+1 , m_pImpl->length );\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsLeft\r
-int mof::widget::OverlapLayout::getAdjacencyAsLeft(int index) const\r
-{\r
- return mof::rotation_mod(index-1 , m_pImpl->length );\r
-}\r
-//}}}\r
-//{{{ getAdjacencyAsRight\r
-int mof::widget::OverlapLayout::getAdjacencyAsRight(int index) const\r
-{\r
- return mof::rotation_mod(index+1 , m_pImpl->length );\r
-}\r
-//}}}\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include <mof/widget/Layout.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class OverlapLayout : public Layout\r
- {\r
- public:\r
-\r
- OverlapLayout( const mof::Vector2D& size );\r
- virtual ~OverlapLayout();\r
- virtual void add(boost::shared_ptr<WidgetView> pView);\r
- virtual Vector2D getPreferredSize() const;\r
- virtual DependencyType getSizeDependencyType() const;\r
- virtual void connect(WidgetView* pParentView);\r
- virtual size_t getLength( ) const;\r
- virtual int getAdjacencyAsUp(int index) const;\r
- virtual int getAdjacencyAsDown(int index) const;\r
- virtual int getAdjacencyAsLeft(int index) const;\r
- virtual int getAdjacencyAsRight(int index) const;\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-}\r
-} // namepsace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include <mof/widget/Layout.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class OverlapLayout : public Layout\r
- {\r
- public:\r
-\r
- OverlapLayout( const mof::Vector2D& size );\r
- virtual ~OverlapLayout();\r
- virtual void add(boost::shared_ptr<WidgetView> pView);\r
- virtual Vector2D getPreferredSize() const;\r
- virtual DependencyType getSizeDependencyType() const;\r
- virtual void connect(boost::shared_ptr<WidgetView> pParentView);\r
- virtual size_t getLength( ) const;\r
- virtual int getAdjacencyAsUp(int index) const;\r
- virtual int getAdjacencyAsDown(int index) const;\r
- virtual int getAdjacencyAsLeft(int index) const;\r
- virtual int getAdjacencyAsRight(int index) const;\r
-\r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-}\r
-} // namepsace mof\r
-\r
+++ /dev/null
-#pragma once\r
-\r
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/tstring.hpp"\r
-#include "mof/Font.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include "mof/Animation.hpp"\r
-#include "mof/Vector2D.hpp"\r
-\r
-\r
-namespace mof\r
-{\r
- struct PageRequest; \r
- class LayoutManager;\r
-\r
- /** ページから\r
- */\r
- class Page\r
- {\r
- public:\r
- Page\r
- ( \r
- mof::LayoutManager* pLayout\r
- );\r
-\r
- ~Page( );\r
-\r
- /** このウィジェットを表示にする\r
- * @note 即座に処理されることは保障されない\r
- */\r
- void show( );\r
-\r
- /** このウィジェットを非表示にする\r
- * @note 即座に処理されることは保障されない\r
- */\r
- void hide( );\r
-\r
- /** このウィジェットの内容を描画する\r
- * @note setPosition()やsetSize()で指定した領域外にも描画が行われることもある\r
- */\r
- void draw( ) const;\r
- \r
- /** ウィジェット内のフレームを進める\r
- */\r
- void update( );\r
-\r
- /** このウィジェットがとれる最小の大きさに\r
- */\r
- void pack( );\r
- \r
- /** ウィジェットの左上の位置を得る\r
- * @note このメソッドで得られるハンドラとsetPosition()で\r
- * 指定したハンドラは同一であると扱える\r
- * @retval このウィジェットの左上の位置を得るためのハンドラ \r
- */\r
- mof::Animation< mof::Vector2D>::Handler getPosition( ) const;\r
-\r
- /** ウィジェットの大きさを得る\r
- * @note このメソッドで得られるハンドラとsetSize()で\r
- * 指定したハンドラは同一であると扱える\r
- * @retval このウィジェットの大きさを得るためのハンドラ \r
- */\r
- mof::Animation< mof::Vector2D>::Handler getSize( ) const;\r
-\r
- /** ウィジェットの左上の位置を指定する\r
- * @note このメソッドで指定するハンドラとgetPosition()で\r
- * 得られるハンドラは同一であると扱える\r
- * @retval このウィジェットの左上の位置を得るためのハンドラ \r
- */\r
- void setPosition( const mof::Animation<mof::Vector2D>::Handler& handler ); \r
- \r
- /** ウィジェットの左上の位置を指定する\r
- * @note このメソッドで指定するハンドラとgetPosition()で\r
- * 得られるハンドラは同一であると扱える\r
- * @retval このウィジェットの左上の位置を得るためのハンドラ \r
- */\r
- void setSize( const mof::Animation<mof::Vector2D>::Handler& handler ); \r
- \r
- mof::Rectangle<int> getBounds( ); \r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-}\r
+++ /dev/null
-#include "mof/Pager.hpp"\r
-#include "mof/Sprite.hpp"\r
-#include "mof/utilities.hpp"\r
-#include <vector>\r
-#include "mof/widgets.hpp"\r
-#include "mof/mofAnimations.hpp"\r
-#include "mof/mofGraphics.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-\r
-namespace mof\r
-{\r
- struct Pager::Impl\r
- {\r
- std::vector< std::vector<mof::Sprite*> > pages;\r
- mof::FrameNumber frame;\r
- int currentPage;\r
- mof::LayoutManager* pLayout;\r
- mof::TranslationAnimation2D::Handler translation;\r
- mof::ScalingAnimation2D::Handler scaling;\r
-\r
-//{{{ Impl\r
- Impl( const mof::Rectangle<int>& _bounds )\r
- : \r
- currentPage(-1) ,\r
- pLayout(NULL) ,\r
- frame( 0 )\r
- {\r
- translation = mof::TranslationAnimation2D::Handler\r
- (\r
- new mof::TranslationAnimation2D\r
- (\r
- mof::makeConstantHandler\r
- (\r
- mof::Vector2D(_bounds.beginX , _bounds.beginY )\r
- )\r
- )\r
- );\r
-\r
- scaling = mof::ScalingAnimation2D::Handler\r
- (\r
- new mof::ScalingAnimation2D\r
- (\r
- mof::makeConstantHandler\r
- (\r
- mof::Vector2D(_bounds.getWidth( ) , _bounds.getHeight( ) )\r
- )\r
- )\r
- );\r
-\r
- }\r
-//}}}\r
-//{{{ ~Impl\r
- ~Impl(){\r
- delete pLayout;\r
- foreach(std::vector<mof::Sprite*>& page , pages ){\r
- foreach(mof::Sprite*& pSprite , page ){\r
- delete pSprite;\r
- }\r
- }\r
- }\r
-//}}}\r
-//{{{ showPage\r
- void showPage(bool first)\r
- {\r
- mof::KeyFrameAnimation<mof::Color4f>::KeyFrame keyFrames[] = {\r
- mof::makeKeyFrame(first ? 0 : 10*2 , mof::Color4f(0 , 1 , 1 , 1) ) ,\r
- mof::makeKeyFrame(first ? 30*2 : 90 , mof::Color4f(1 , 1 , 1 , 1) ) \r
- };\r
- mof::Animation<mof::Color4f>::Handler handler(new mof::KeyFrameAnimation<mof::Color4f>(keyFrames[0] , keyFrames[1]));\r
- handler = mof::makeOffsetHandler< mof::Color4f >( handler , -frame );\r
- foreach(mof::Sprite*& pSprite , pages.at(currentPage) ){\r
- pSprite->setColor(handler);\r
- }\r
- }\r
-//}}}\r
-//{{{ closePage\r
- void closePage(bool last){\r
- mof::KeyFrameAnimation<mof::Color4f>::KeyFrame keyFrames[] = {\r
- mof::makeKeyFrame(0 , mof::Color4f(1 , 1 , 1 , 1) ) ,\r
- mof::makeKeyFrame(last ? 10*2 : 10*2 , mof::Color4f(0 , 1 , 1 , 1) ) \r
- };\r
- mof::Animation<mof::Color4f>::Handler handler(new mof::KeyFrameAnimation<mof::Color4f>(keyFrames[0] , keyFrames[1]));\r
- DEBUG_PRINT( frame);\r
- handler = mof::makeOffsetHandler< mof::Color4f >( handler , -frame );\r
- foreach(mof::Sprite*& pSprite , pages.at(currentPage) ){\r
- pSprite->setColor(handler);\r
- }\r
- }\r
-\r
-//}}}\r
- };\r
-//{{{ Pager\r
- Pager::Pager\r
- (\r
- const mof::Rectangle<int>& bounds ,\r
- mof::LayoutManager* pLayout\r
- )\r
- : m_pImpl( new Impl( bounds ) )\r
- {\r
- m_pImpl->pLayout = pLayout;\r
- }\r
-//}}} \r
-//{{{ ~Pager\r
- Pager::~Pager( )\r
- {\r
- }\r
-//}}} \r
-//{{{ show\r
- void Pager::show( )\r
- {\r
- m_pImpl->currentPage = -1;\r
- m_pImpl->currentPage++;\r
- m_pImpl->showPage(true);\r
- }\r
-//}}} \r
-//{{{ close \r
- void Pager::close( )\r
- {\r
- if(m_pImpl->currentPage < 0)return;\r
- m_pImpl->closePage(true);\r
- }\r
-//}}} \r
-//{{{ nextPage\r
- void Pager::nextPage( )\r
- {\r
- if(m_pImpl->currentPage < 0){\r
- show();\r
- return;\r
- }\r
- m_pImpl->closePage(false);\r
- if(m_pImpl->currentPage >= static_cast<signed int>(m_pImpl->pages.size()) -1 ){\r
- close();\r
- return;\r
- }\r
- m_pImpl->currentPage++;\r
- m_pImpl->showPage(false);\r
- }\r
-//}}} \r
-//{{{ addPage\r
- void Pager::addPage( const mof::PageRequest& page )\r
- {\r
- m_pImpl->pages.push_back(std::vector<mof::Sprite*>());\r
- mof::compileText( page.message , page.font , m_pImpl->pages.back() );\r
- \r
- std::vector< mof::Rectangle<int> > boundList;\r
- \r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.back() ){\r
- pSprite->setFrameNumber( m_pImpl->frame );\r
- mof::Rectangle<int> bounds = pSprite->getWorldTransform().toBoundingBox(); \r
- boundList.push_back(bounds);\r
- }\r
- \r
- mof::Vector2D scaling = m_pImpl->scaling->get( )->getValue( m_pImpl->frame );\r
- m_pImpl->pLayout->replace\r
- (\r
- scaling.x , scaling.y ,\r
- boundList.front() , boundList.back()\r
- );\r
- \r
- for(unsigned int j = 0 ; j < m_pImpl->pLayout->getLength( ) ; ++j)\r
- {\r
- mof::Animation<mof::Matrix2D>::Handler children[] =\r
- {\r
- mof::makeConstantHandler\r
- ( \r
- mof::Matrix2D::createScaling\r
- (\r
- mof::Vector2D(boundList.at(j).getWidth( ) , boundList.at(j).getHeight( ) )\r
- )\r
- ) ,\r
- m_pImpl->translation , \r
- mof::makeConstantHandler\r
- (\r
- mof::Matrix2D::createTranslation( m_pImpl->pLayout->getPosition(j) )\r
- )\r
- }; // array children\r
-\r
- mof::Animation<mof::Matrix2D>::Handler handler\r
- (\r
- new mof::CascadingAnimation<mof::Matrix2D>( children[0] , mof::lastOf( children ) )\r
- );\r
-\r
- m_pImpl->pages.back().at(j)->setWorldTransform( handler );\r
- m_pImpl->pages.back().at(j)->setColor(mof::Color4f(0 , 1 , 1 , 1));\r
-\r
- } // for \r
-\r
- }\r
-//}}} \r
-//{{{ draw\r
- void Pager::draw( ) const\r
- {\r
- if(m_pImpl->currentPage < 0)return;\r
- \r
- if(m_pImpl->currentPage > 0){\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage-1) ){\r
- pSprite->draw();\r
- }\r
- }\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage) ){\r
- pSprite->draw();\r
- }\r
- }\r
-//}}} \r
-//{{{ update\r
- void Pager::update( )\r
- {\r
- if(m_pImpl->currentPage < 0)return;\r
- if(m_pImpl->currentPage > 0){\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage-1) ){\r
- pSprite->update();\r
- }\r
- }\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage) ){\r
- pSprite->update();\r
- }\r
- m_pImpl->frame++;\r
- }\r
-//}}} \r
-//{{{ hasNextPage\r
- bool Pager::hasNextPage( ) const\r
- { \r
- return m_pImpl->currentPage < static_cast<signed int>(m_pImpl->pages.size()) -1;\r
- }\r
-//}}} \r
-//{{{ hasPreviousPage\r
- bool Pager::hasPreviousPage( ) const\r
- { \r
- return m_pImpl->currentPage >= 0;\r
- }\r
-//}}} \r
-\r
-//{{{ setPosition\r
- void Pager::setPosition( const mof::Animation<mof::Vector2D>::Handler& handler )\r
- {\r
- m_pImpl->translation->set( handler );\r
- }\r
-//}}} \r
-//{{{ setSize\r
- void Pager::setSize( const mof::Animation<mof::Vector2D>::Handler& handler )\r
- {\r
- m_pImpl->scaling->set( handler );\r
- }\r
-//}}} \r
-//{{{ getBounds\r
- mof::Rectangle<int> Pager::getBounds( )\r
- {\r
- mof::Vector2D scaling = m_pImpl->scaling->get( )->getValue( m_pImpl->frame );\r
- mof::Vector2D translation = m_pImpl->translation->get( )->getValue( m_pImpl->frame );\r
- return mof::Rectangle<int>( translation.x , translation.y , translation.x + scaling.x , translation.y + scaling.y );\r
- }\r
-//}}} \r
-} //namepsace mof\r
-\r
+++ /dev/null
-#include "mof/Pager.hpp"\r
-#include "mof/Sprite.hpp"\r
-#include "mof/utilities.hpp"\r
-#include <vector>\r
-#include "mof/widgets.hpp"\r
-#include "mof/mofAnimations.hpp"\r
-#include "mof/mofGraphics.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-\r
-namespace mof\r
-{\r
- struct Pager::Impl\r
- {\r
- std::vector< std::vector<mof::Sprite*> > pages;\r
- mof::FrameNumber frame;\r
- int currentPage;\r
- mof::LayoutManager* pLayout;\r
- mof::TranslationAnimation2D::Handler translation;\r
- mof::ScalingAnimation2D::Handler scaling;\r
-\r
-//{{{ Impl\r
- Impl( const mof::Rectangle<int>& _bounds )\r
- : \r
- currentPage(-1) ,\r
- pLayout(NULL) ,\r
- frame( 0 )\r
- {\r
- translation = mof::TranslationAnimation2D::Handler\r
- (\r
- new mof::TranslationAnimation2D\r
- (\r
- mof::makeConstantHandler\r
- (\r
- mof::Vector2D(_bounds.beginX , _bounds.beginY )\r
- )\r
- )\r
- );\r
-\r
- scaling = mof::ScalingAnimation2D::Handler\r
- (\r
- new mof::ScalingAnimation2D\r
- (\r
- mof::makeConstantHandler\r
- (\r
- mof::Vector2D(_bounds.getWidth( ) , _bounds.getHeight( ) )\r
- )\r
- )\r
- );\r
-\r
- }\r
-//}}}\r
-//{{{ ~Impl\r
- ~Impl(){\r
- delete pLayout;\r
- foreach(std::vector<mof::Sprite*>& page , pages ){\r
- foreach(mof::Sprite*& pSprite , page ){\r
- delete pSprite;\r
- }\r
- }\r
- }\r
-//}}}\r
-//{{{ showPage\r
- void showPage(bool first)\r
- {\r
- mof::KeyFrameAnimation<mof::Color4f>::KeyFrame keyFrames[] = {\r
- mof::makeKeyFrame(first ? 0 : 10*2 , mof::Color4f(0 , 1 , 1 , 1) ) ,\r
- mof::makeKeyFrame(first ? 30*2 : 90 , mof::Color4f(1 , 1 , 1 , 1) ) \r
- };\r
- mof::Animation<mof::Color4f>::Handler handler(new mof::KeyFrameAnimation<mof::Color4f>(keyFrames[0] , keyFrames[1]));\r
- handler = mof::makeOffsetHandler< mof::Color4f >( handler , -frame );\r
- foreach(mof::Sprite*& pSprite , pages.at(currentPage) ){\r
- pSprite->setColor(handler);\r
- }\r
- }\r
-//}}}\r
-//{{{ closePage\r
- void closePage(bool last){\r
- mof::KeyFrameAnimation<mof::Color4f>::KeyFrame keyFrames[] = {\r
- mof::makeKeyFrame(0 , mof::Color4f(1 , 1 , 1 , 1) ) ,\r
- mof::makeKeyFrame(last ? 10*2 : 10*2 , mof::Color4f(0 , 1 , 1 , 1) ) \r
- };\r
- mof::Animation<mof::Color4f>::Handler handler(new mof::KeyFrameAnimation<mof::Color4f>(keyFrames[0] , keyFrames[1]));\r
- DEBUG_PRINT( frame);\r
- handler = mof::makeOffsetHandler< mof::Color4f >( handler , -frame );\r
- foreach(mof::Sprite*& pSprite , pages.at(currentPage) ){\r
- pSprite->setColor(handler);\r
- }\r
- }\r
-\r
-//}}}\r
- };\r
-//{{{ Pager\r
- Pager::Pager\r
- (\r
- const mof::Rectangle<int>& bounds ,\r
- mof::LayoutManager* pLayout\r
- )\r
- : m_pImpl( new Impl( bounds ) )\r
- {\r
- m_pImpl->pLayout = pLayout;\r
- }\r
-//}}} \r
-//{{{ ~Pager\r
- Pager::~Pager( )\r
- {\r
- }\r
-//}}} \r
-//{{{ show\r
- void Pager::show( )\r
- {\r
- m_pImpl->currentPage = -1;\r
- m_pImpl->currentPage++;\r
- m_pImpl->showPage(true);\r
- }\r
-//}}} \r
-//{{{ close \r
- void Pager::close( )\r
- {\r
- if(m_pImpl->currentPage < 0)return;\r
- m_pImpl->closePage(true);\r
- }\r
-//}}} \r
-//{{{ nextPage\r
- void Pager::nextPage( )\r
- {\r
- if(m_pImpl->currentPage < 0){\r
- show();\r
- return;\r
- }\r
- m_pImpl->closePage(false);\r
- if(m_pImpl->currentPage >= static_cast<signed int>(m_pImpl->pages.size()) -1 ){\r
- close();\r
- return;\r
- }\r
- m_pImpl->currentPage++;\r
- m_pImpl->showPage(false);\r
- }\r
-//}}} \r
-//{{{ addPage\r
- void Pager::addPage( const mof::PageRequest& page )\r
- {\r
- m_pImpl->pages.push_back(std::vector<mof::Sprite*>());\r
- mof::compileText( page.message , page.font , m_pImpl->pages.back() );\r
- \r
- std::vector< mof::Rectangle<int> > boundList;\r
- \r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.back() ){\r
- pSprite->setFrameNumber( m_pImpl->frame );\r
- mof::Rectangle<int> bounds = pSprite->getWorldTransform().toBoundingBox(); \r
- boundList.push_back(bounds);\r
- }\r
- \r
- mof::Vector2D scaling = m_pImpl->scaling->get( )->getValue( m_pImpl->frame );\r
- m_pImpl->pLayout->replace\r
- (\r
- scaling.x , scaling.y ,\r
- boundList.front() , boundList.back()\r
- );\r
- \r
- for(unsigned int j = 0 ; j < m_pImpl->pLayout->getLength( ) ; ++j)\r
- {\r
- mof::Animation<mof::Matrix2D>::Handler children[] =\r
- {\r
- mof::makeConstantHandler\r
- ( \r
- mof::Matrix2D::createScaling\r
- (\r
- mof::Vector2D(boundList.at(j).getWidth( ) , boundList.at(j).getHeight( ) )\r
- )\r
- ) ,\r
- m_pImpl->translation , \r
- mof::makeConstantHandler\r
- (\r
- mof::Matrix2D::createTranslation( m_pImpl->pLayout->getPosition(j) )\r
- )\r
- }; // array children\r
-\r
- mof::Animation<mof::Matrix2D>::Handler handler\r
- (\r
- new mof::CascadingAnimation<mof::Matrix2D>( children[0] , mof::lastOf( children ) )\r
- );\r
-\r
- m_pImpl->pages.back().at(j)->setWorldTransform( handler );\r
- m_pImpl->pages.back().at(j)->setColor(mof::Color4f(0 , 1 , 1 , 1));\r
-\r
- } // for \r
-\r
- }\r
-//}}} \r
-//{{{ draw\r
- void Pager::draw( ) const\r
- {\r
- if(m_pImpl->currentPage < 0)return;\r
- \r
- if(m_pImpl->currentPage > 0){\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage-1) ){\r
- pSprite->draw();\r
- }\r
- }\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage) ){\r
- pSprite->draw();\r
- }\r
- }\r
-//}}} \r
-//{{{ update\r
- void Pager::update( )\r
- {\r
- if(m_pImpl->currentPage < 0)return;\r
- if(m_pImpl->currentPage > 0){\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage-1) ){\r
- pSprite->update();\r
- }\r
- }\r
- foreach(mof::Sprite*& pSprite , m_pImpl->pages.at(m_pImpl->currentPage) ){\r
- pSprite->update();\r
- }\r
- m_pImpl->frame++;\r
- }\r
-//}}} \r
-//{{{ hasNextPage\r
- bool Pager::hasNextPage( ) const\r
- { \r
- return m_pImpl->currentPage < static_cast<signed int>(m_pImpl->pages.size()) -1;\r
- }\r
-//}}} \r
-//{{{ hasPreviousPage\r
- bool Pager::hasPreviousPage( ) const\r
- { \r
- return m_pImpl->currentPage >= 0;\r
- }\r
-//}}} \r
-\r
-//{{{ setPosition\r
- void Pager::setPosition( const mof::Animation<mof::Vector2D>::Handler& handler )\r
- {\r
- m_pImpl->translation->set( handler );\r
- }\r
-//}}} \r
-//{{{ setSize\r
- void Pager::setSize( const mof::Animation<mof::Vector2D>::Handler& handler )\r
- {\r
- m_pImpl->scaling->set( handler );\r
- }\r
-//}}} \r
-//{{{ getBounds\r
- mof::Rectangle<int> Pager::getBounds( )\r
- {\r
- mof::Vector2D scaling = m_pImpl->scaling->get( )->getValue( m_pImpl->frame );\r
- mof::Vector2D translation = m_pImpl->translation->get( )->getValue( m_pImpl->frame );\r
- return mof::Rectangle<int>( translation.x , translation.y , translation.x + scaling.x , translation.y + scaling.y );\r
- }\r
-//}}} \r
-} //namepsace mof\r
-\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/tstring.hpp"\r
-#include "mof/Font.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include "mof/stream/Manipulator.hpp"\r
-#include "mof/Vector2D.hpp"\r
-\r
-\r
-namespace mof\r
-{\r
- struct PageRequest; \r
- class LayoutManager;\r
-\r
- /** \83y\81[\83W\82©\82ç\r
- */\r
- class Pager\r
- {\r
- public:\r
- Pager\r
- ( \r
- const mof::Rectangle<int>& bounds ,\r
- mof::LayoutManager* pLayout\r
- );\r
-\r
- ~Pager( );\r
-\r
- void show( );\r
- void close( );\r
- void nextPage( );\r
- void addPage( const mof::PageRequest& page );\r
- void draw( ) const;\r
- void update( );\r
- bool hasNextPage( ) const;\r
- bool hasPreviousPage( ) const;\r
- void setPosition( const mof::Animation<mof::Vector2D>::Handler& handler ); \r
- void setSize( const mof::Animation<mof::Vector2D>::Handler& handler ); \r
- mof::Rectangle<int> getBounds( ); \r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <boost/scoped_ptr.hpp>\r
-#include "mof/tstring.hpp"\r
-#include "mof/Font.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include "mof/Animation.hpp"\r
-#include "mof/Vector2D.hpp"\r
-\r
-\r
-namespace mof\r
-{\r
- struct PageRequest; \r
- class LayoutManager;\r
-\r
- /** \83y\81[\83W\82©\82ç\r
- */\r
- class Pager\r
- {\r
- public:\r
- Pager\r
- ( \r
- const mof::Rectangle<int>& bounds ,\r
- mof::LayoutManager* pLayout\r
- );\r
-\r
- ~Pager( );\r
-\r
- void show( );\r
- void close( );\r
- void nextPage( );\r
- void addPage( const mof::PageRequest& page );\r
- void draw( ) const;\r
- void update( );\r
- bool hasNextPage( ) const;\r
- bool hasPreviousPage( ) const;\r
- void setPosition( const mof::Animation<mof::Vector2D>::Handler& handler ); \r
- void setSize( const mof::Animation<mof::Vector2D>::Handler& handler ); \r
- mof::Rectangle<int> getBounds( ); \r
- private:\r
- struct Impl;\r
- boost::scoped_ptr<Impl> m_pImpl;\r
- };\r
-\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/WidgetView.hpp>\r
-#include <mof/stream/Manipulator.hpp>\r
-#include <boost/utility.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class Widget : public boost::noncopyable \r
- {\r
- public:\r
- virtual ~Widget(){}\r
- virtual FrameNumber show(bool imidiately = false) = 0;\r
- virtual FrameNumber hide(bool imidiately = false) = 0;\r
- virtual const boost::shared_ptr<WidgetView> getView() const = 0;\r
- virtual boost::shared_ptr<WidgetView> getView() = 0;\r
- virtual void update() = 0;\r
- };\r
-\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <mof/widget/WidgetView.hpp>\r
-#include <mof/stream/Manipulator.hpp>\r
-#include <boost/utility.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class Widget : public boost::noncopyable \r
- {\r
- public:\r
- virtual ~Widget(){}\r
- virtual FrameNumber show(bool imidiately = false) = 0;\r
- virtual FrameNumber hide(bool imidiately = false) = 0;\r
- virtual const shared_ptr<WidgetView> getView() const = 0;\r
- virtual shared_ptr<WidgetView> getView() = 0;\r
- virtual void update() = 0;\r
- };\r
-\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/Component2D.hpp"\r
-#include "mof/ColorComponent.hpp"\r
-#include "mof/Drawable.hpp"\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class WidgetView \r
- :\r
- public Component2D ,\r
- public ColorComponent ,\r
- public Drawable \r
- {\r
- public:\r
-\r
- virtual ~WidgetView(){};\r
-\r
- // TODO \83\8c\83C\83A\83E\83g\82Ì\83A\83j\83\81\82Æ\83C\83x\83\93\83g\8e\9e\82Ì\83A\83j\83\81\81A\82»\82ê\82¼\82ê\82Ç\82±\82Å\82Ç\82Ì\82æ\82¤\82É\90Ý\92è\82·\82é\82©\r
- // TODO \83G\83t\83F\83N\83g\82ð\8aO\82©\82ç\90Ý\92è\82Å\82«\82é\82æ\82¤\82É\82·\82é\r
- // TODO \93Á\8eê\82È\83R\83\93\83|\81[\83l\83\93\83g\82à\8aO\82©\82ç\90Ý\92è\82Å\82«\82é\82æ\82¤\82É\r
- // TODO \83X\83v\83\89\83C\83g\82Í\82Ç\82±\82ª\8e\9d\82Â\82©\r
- virtual FrameNumber show( bool imidiately = false ) = 0; \r
- virtual FrameNumber hide( bool imidiately = false ) = 0;\r
- virtual FrameNumber focus( bool imidiately = false ) = 0; \r
- virtual FrameNumber blur( bool imidiately = false ) = 0;\r
- virtual FrameNumber click( bool imidiately = false ) = 0;\r
-\r
- virtual void update() = 0;\r
- virtual void draw() const = 0;\r
- };\r
-\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-#include "mof/Component2D.hpp"\r
-#include "mof/ColorComponent.hpp"\r
-#include "mof/Drawable.hpp"\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
-\r
- class WidgetView \r
- :\r
- public Component2D ,\r
- public ColorComponent ,\r
- public Drawable \r
- {\r
- public:\r
-\r
- virtual ~WidgetView() = 0;\r
-\r
- // TODO \83\8c\83C\83A\83E\83g\82Ì\83A\83j\83\81\82Æ\83C\83x\83\93\83g\8e\9e\82Ì\83A\83j\83\81\81A\82»\82ê\82¼\82ê\82Ç\82±\82Å\82Ç\82Ì\82æ\82¤\82É\90Ý\92è\82·\82é\82©\r
- // TODO \83G\83t\83F\83N\83g\82ð\8aO\82©\82ç\90Ý\92è\82Å\82«\82é\82æ\82¤\82É\82·\82é\r
- // TODO \93Á\8eê\82È\83R\83\93\83|\81[\83l\83\93\83g\82à\8aO\82©\82ç\90Ý\92è\82Å\82«\82é\82æ\82¤\82É\r
- // TODO \83X\83v\83\89\83C\83g\82Í\82Ç\82±\82ª\8e\9d\82Â\82©\r
- virtual FrameNumber show( bool imidiately = false ) = 0; \r
- virtual FrameNumber hide( bool imidiately = false ) = 0;\r
- virtual FrameNumber focus( bool imidiately = false ) = 0; \r
- virtual FrameNumber blur( bool imidiately = false ) = 0;\r
- virtual FrameNumber click( bool imidiately = false ) = 0;\r
-\r
- virtual void update() = 0;\r
- virtual void draw() const = 0;\r
- };\r
-\r
-}\r
-}\r
+++ /dev/null
-#pragma once\r
-\r
-#include "mof/Vector2D.hpp"\r
-#include "mof/Rectangle.hpp"\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace mof\r
-{\r
-namespace widget\r
-{\r
- class WidgetView;\r
-\r
- class Layout\r
- {\r
-\r
- public:\r
- enum DependencyType\r
- {\r
- PARENT_LEADING ,\r
- CHILD_LEADING\r
- };\r
-\r
- virtual ~Layout(){}\r
- //virtual void add(const Vector2D& size) = 0;\r
- //virtual Vector2D getPositionOf(int index) const = 0 ;\r
- //virtual Vector2D getSizeOf(int index) const = 0 ;\r
- //virtual Vector2D getBounds() const = 0;\r
- virtual void add(boost::shared_ptr<WidgetView> pView) = 0;\r
- virtual Vector2D getPreferredSize() = 0;\r
- virtual DependencyType getSizeDependencyType() = 0;\r
- virtual void connect( boost::shared_ptr<WidgetView> pParentView) = 0;\r
- virtual size_t getLength() const = 0;\r
- virtual int getAdjacencyAsUp(int index) const = 0;\r
- virtual int getAdjacencyAsDown(int index) const = 0;\r
- virtual int getAdjacencyAsLeft(int index) const = 0;\r
- virtual int getAdjacencyAsRight(int index) const = 0;\r
- };\r
-}\r
-}\r
+++ /dev/null
-#include "mof/widget/utilities.hpp"\r
-#include "mof/widget/WidgetView.hpp"\r
-#include "mof/Sprite.hpp"\r
-\r
-namespace mof\r
-{\r
-/*\r
- void setStreamAsChild( Sprite* sprite , const WidgetView* view )\r
- {\r
- sprite->getColorStream( ) << view->getColorStream( );\r
- sprite->getPositionStream() << view->getPositionStream( );\r
- }\r
- \r
- void setStreamAsChild( WidgetView* child , const WidgetView* parent )\r
- {\r
- child->getColorStream() << parent->getColorStream( );\r
- child->getPositionStream() << parent->getPositionStream( );\r
- }\r
-*/\r
-}\r
+++ /dev/null
-#include "mof/widget/utilities.hpp"\r
-#include "mof/widget/WidgetView.hpp"\r
-#include "mof/Sprite.hpp"\r
-\r
-namespace mof\r
-{\r
-\r
- void setStreamAsChild( Sprite* sprite , const WidgetView* view )\r
- {\r
- sprite->getColorStream( ) << view->getColorStream( );\r
- sprite->getPositionStream() << view->getPositionStream( );\r
- }\r
- \r
- void setStreamAsChild( WidgetView* child , const WidgetView* parent )\r
- {\r
- child->getColorStream() << parent->getColorStream( );\r
- child->getPositionStream() << parent->getPositionStream( );\r
- }\r
-\r
-}\r
+++ /dev/null
-#pragma once\r
-#include <boost/function.hpp>\r
-#include <mof/widget/WidgetView.hpp>\r
-\r
-\r
-namespace mof\r
-{\r
- class WidgetView;\r
- class Sprite;\r
-/*\r
- void setStreamAsChild( Sprite* spritem , const WidgetView* view );\r
-\r
- void setStreamAsChild( WidgetView* child , const WidgetView* parent );\r
-*/\r
-}\r
-\r
-\r
-\r
-\r
+++ /dev/null
-#pragma once\r
-#include <boost/function.hpp>\r
-#include <mof/widget/WidgetView.hpp>\r
-#include <mof/FactoryMethod.hpp>\r
-\r
-\r
-namespace mof\r
-{\r
- class WidgetView;\r
- class Sprite;\r
- typedef <WidgetView* (void)> WidgetViewFactoryMethod;\r
-/*\r
- void setStreamAsChild( Sprite* spritem , const WidgetView* view );\r
-\r
- void setStreamAsChild( WidgetView* child , const WidgetView* parent );\r
-*/\r
-}\r
-\r
-\r
-\r
-\r
+++ /dev/null
-#pragma once\r
-#include "mof/Message.hpp"\r
-//#include "mof/Pager.hpp"\r
-//#include "mof/Page.hpp"\r
-//#include "mof/PlainWidgetView.hpp"\r
-//#include "mof/TextCompiler.hpp"\r
-#include "mof/widget/Widget.hpp"\r
-#include "mof/widget/Menu.hpp"\r
-#include "mof/widget/Frame.hpp"\r
-#include "mof/widget/FrameBuilder.hpp"\r
-#include "mof/widget/WidgetView.hpp"\r
-#include "mof/widget/ImageView.hpp"\r
-#include "mof/widget/Container.hpp"\r
-#include "mof/widget/Layout.hpp"\r
-#include "mof/widget/GridLayout.hpp"\r
-#include "mof/widget/OverlapLayout.hpp"\r
-#include "mof/widget/Widget.hpp"\r
-#include "mof/widget/utilities.hpp"\r