00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GLUON_ENGINE_CAMERACONTROLLERCOMPONENT_H
00021 #define GLUON_ENGINE_CAMERACONTROLLERCOMPONENT_H
00022
00023 #include <engine/gluon_engine_export.h>
00024 #include <engine/component.h>
00025
00026 class QSizeF;
00027 namespace GluonEngine
00028 {
00029 class GLUON_ENGINE_EXPORT CameraControllerComponent : public Component
00030 {
00031 Q_OBJECT
00032 GLUON_OBJECT( GluonEngine::CameraControllerComponent )
00033 Q_PROPERTY( bool active READ isActive WRITE setActive )
00034 Q_PROPERTY( QSizeF visibleArea READ visibleArea WRITE setVisibleArea )
00035 Q_PROPERTY( float nearPlane READ nearPlane WRITE setNearPlane )
00036 Q_PROPERTY( float farPlane READ farPlane WRITE setFarPlane )
00037 Q_INTERFACES( GluonEngine::Component )
00038
00039 public:
00040 Q_INVOKABLE CameraControllerComponent( QObject* parent = 0 );
00041 CameraControllerComponent( const CameraControllerComponent& other );
00042 virtual ~CameraControllerComponent();
00043 virtual QString category() const;
00044
00045 virtual void initialize();
00046 virtual void start();
00047 virtual void draw( int timeLapse = 0 );
00048 virtual void cleanup();
00049
00050 virtual bool isActive();
00051 virtual QSizeF visibleArea();
00052 virtual float nearPlane();
00053 virtual float farPlane();
00054
00055 public slots:
00056 virtual void setActive( bool active );
00057 virtual void setVisibleArea( const QSizeF& area );
00058 virtual void setNearPlane( float near );
00059 virtual void setFarPlane( float far );
00060
00061 private:
00062 class CameraControllerComponentPrivate;
00063 CameraControllerComponentPrivate* const d;
00064 };
00065
00066 }
00067
00068 Q_DECLARE_METATYPE( GluonEngine::CameraControllerComponent )
00069 Q_DECLARE_METATYPE( GluonEngine::CameraControllerComponent* )
00070
00071 #endif // GLUON_ENGINE_SPRITERENDERERCOMPONENT_H