Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

ICameraSceneNode.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2010 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_CAMERA_SCENE_NODE_H_INCLUDED__
00006 #define __I_CAMERA_SCENE_NODE_H_INCLUDED__
00007 
00008 #include "ISceneNode.h"
00009 #include "IEventReceiver.h"
00010 
00011 namespace irr
00012 {
00013 namespace scene
00014 {
00015         struct SViewFrustum;
00016 
00018 
00023         class ICameraSceneNode : public ISceneNode, public IEventReceiver
00024         {
00025         public:
00026 
00028                 ICameraSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id,
00029                         const core::vector3df& position = core::vector3df(0,0,0),
00030                         const core::vector3df& rotation = core::vector3df(0,0,0),
00031                         const core::vector3df& scale = core::vector3df(1.0f,1.0f,1.0f))
00032                         : ISceneNode(parent, mgr, id, position, rotation, scale), IsOrthogonal(false) {}
00033 
00035 
00045                 virtual void setProjectionMatrix(const core::matrix4& projection, bool isOrthogonal=false) =0;
00046 
00048 
00049                 virtual const core::matrix4& getProjectionMatrix() const =0;
00050 
00052 
00053                 virtual const core::matrix4& getViewMatrix() const =0;
00054 
00056 
00060                 virtual void setViewMatrixAffector(const core::matrix4& affector) =0;
00061 
00063 
00064                 virtual const core::matrix4& getViewMatrixAffector() const =0;
00065 
00067 
00073                 virtual bool OnEvent(const SEvent& event) =0;
00074 
00076 
00080                 virtual void setTarget(const core::vector3df& pos) =0;
00081 
00083 
00088                 virtual void setRotation(const core::vector3df& rotation) =0;
00089 
00091 
00092                 virtual const core::vector3df& getTarget() const =0;
00093 
00095 
00096                 virtual void setUpVector(const core::vector3df& pos) =0;
00097 
00099 
00100                 virtual const core::vector3df& getUpVector() const =0;
00101 
00103 
00104                 virtual f32 getNearValue() const =0;
00105 
00107 
00108                 virtual f32 getFarValue() const =0;
00109 
00111 
00112                 virtual f32 getAspectRatio() const =0;
00113 
00115 
00116                 virtual f32 getFOV() const =0;
00117 
00119 
00120                 virtual void setNearValue(f32 zn) =0;
00121 
00123 
00124                 virtual void setFarValue(f32 zf) =0;
00125 
00127 
00128                 virtual void setAspectRatio(f32 aspect) =0;
00129 
00131 
00132                 virtual void setFOV(f32 fovy) =0;
00133 
00135 
00137                 virtual const SViewFrustum* getViewFrustum() const =0;
00138 
00140 
00142                 virtual void setInputReceiverEnabled(bool enabled) =0;
00143 
00145                 virtual bool isInputReceiverEnabled() const =0;
00146 
00148                 virtual bool isOrthogonal() const
00149                 {
00150                         _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
00151                         return IsOrthogonal;
00152                 }
00153 
00155 
00163                 virtual void bindTargetAndRotation(bool bound) =0;
00164 
00166 
00167                 virtual bool getTargetAndRotationBinding(void) const =0;
00168 
00169         protected:
00170 
00171                 bool IsOrthogonal;
00172         };
00173 
00174 } // end namespace scene
00175 } // end namespace irr
00176 
00177 #endif
00178 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Oct 24 12:41:56 2010 by Doxygen (1.6.2)