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-2009 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 Documentation © 2003-2009 by Nikolaus Gebhardt. Generated on Sun Jan 10 09:24:03 2010 by Doxygen (1.5.6)