00001
00002
00003 #ifndef _PHOTO_H_INCLUDED_
00004 #define _PHOTO_H_INCLUDED_
00005
00006 #include "error.h"
00007
00008
00009
00010 class NxActor;
00011 class irr::scene::IAnimatedMeshSceneNode;
00012 class irr::video::ITexture;
00013 class VideoTexture;
00014 class irr::scene::IParticleSystemSceneNode;
00015 class irr::scene::IParticleEmitter;
00016 class irr::scene::IParticleAffector;
00017
00018
00019 class Photo
00020 {
00021 public:
00022 Photo();
00023 ~Photo();
00024
00025 ERR_TYPE load( irr::core::stringc meshFileName, irr::core::stringc textureFileName, vector3df scale );
00026 ERR_TYPE update( irr::u32 timeMS );
00027 ERR_TYPE zoomStart( NxVec3 destinationPos, NxU32 timeForWayMS );
00028 ERR_TYPE zoomEnd();
00029 ERR_TYPE particelStart( irr::core::stringc particelFileName );
00030 ERR_TYPE particelEnd();
00031
00032 ERR_TYPE applyForce( NxVec3 forceVector );
00033 ERR_TYPE setPosition( NxVec3 newPosition );
00034 ERR_TYPE getPosition( NxVec3* outPosition );
00035
00036 private:
00037 ERR_TYPE createNxActor( vector3df size );
00038 ERR_TYPE createTextureWithBoarder( irr::core::stringc imageFileName );
00039
00040 NxActor* nxActor;
00041 irr::scene::IAnimatedMeshSceneNode* node;
00042 irr::video::ITexture* texture;
00043 VideoTexture* videoTexture;
00044 irr::scene::IParticleSystemSceneNode* particelNode;
00045 irr::scene::IParticleEmitter* particelEmitter;
00046 irr::scene::IParticleAffector* particelAffector;
00047 NxVec3 zoomStartPosition;
00048 NxVec3 zoomDirection;
00049 NxU32 zoomTimeForWay;
00050 NxU32 zoomTimeStart;
00051 NxF32 zoomTimeStep;
00052
00053 enum PHOTO_ZOOM_STATE
00054 {
00055 PZS_ZOOMING_TO_CAMERA = 0,
00056 PZS_ZOOMING_TO_TABLE,
00057 PZS_ZOOMING_FINISHED,
00058 };
00059
00060 PHOTO_ZOOM_STATE zoomState;
00061 };
00062
00063
00064 #endif // #ifndef _PHOTO_H_INCLUDED_