// Copyright (C) 2002-2006 Nikolaus Gebhardt // This file is part of the "Irrlicht Engine". // For conditions of distribution and use, see copyright notice in irrlicht.h #pragma once #using using namespace System; #pragma unmanaged #include "..\\..\\include\\irrlicht.h" #pragma managed #include "Event.h" #include "ISceneNode.h" #include "ViewFrustum.h" namespace Irrlicht { namespace Scene { public __gc class ICameraSceneNode : public ISceneNode { public: /// /// Creates a scene node from a native C++ scene node. Don't use this, its better to create /// scene nodes using the SceneManager with its addSceneNode() methods. /// ICameraSceneNode(irr::scene::ICameraSceneNode* realSceneNode); /// Destructor ~ICameraSceneNode(); /// /// Sets or gets the projection matrix of the camera. The core::matrix4 class has some methods /// to build a projection matrix. e.g: core::matrix4::buildProjectionMatrixPerspectiveFovLH. /// Note that the matrix will only stay as set by this method until one of /// the following Methods are called: setNearValue, setFarValue, setAspectRatio, setFOV. /// /// The new projection matrix of the camera. __property void set_ProjectionMatrix(Core::Matrix4 projection); /// /// Sets or gets the projection matrix of the camera. The core::matrix4 class has some methods /// to build a projection matrix. e.g: core::matrix4::buildProjectionMatrixPerspectiveFovLH. /// Note that the matrix will only stay as set by this method until one of /// the following Methods are called: setNearValue, setFarValue, setAspectRatio, setFOV. /// /// The new projection matrix of the camera. __property Core::Matrix4 get_ProjectionMatrix(); /// Gets the current view matrix of the camera. /// Returns the current view matrix of the camera. __property Core::Matrix4 get_ViewMatrix(); /// /// It is possible to send mouse and key events to the camera. Most cameras /// may ignore this input, but camera scene nodes which are created for /// example with ISceneManager::addMayaCameraSceneNode or /// ISceneManager::addMeshViewerCameraSceneNode, may want to get this input /// for changing their position, look at target or whatever. /// bool OnEvent(Event event); /// /// Sets or gets the look at target of the camera /// __property void set_Target(Core::Vector3D pos); /// /// Sets or gets the look at target of the camera /// __property Core::Vector3D get_Target(); /// /// Sets or gets the up vector of the camera. /// __property void set_UpVector(Core::Vector3D pos); /// /// Sets or gets the up vector of the camera. /// __property Core::Vector3D get_UpVector(); /// /// Sets or gets the value of the near plane of the camera. /// __property float get_NearValue(); /// /// Sets or gets the value of the near plane of the camera. /// __property void set_NearValue(float value); /// /// Sets or gets the value of the far plane of the camera. /// __property float get_FarValue(); /// /// Sets or gets the value of the far plane of the camera. /// __property void set_FarValue(float value); /// /// Sets or gets the value of the aspect ratio of the camera. /// __property float get_AspectRatio(); /// /// Sets or gets the value of the aspect ratio of the camera. /// __property void set_AspectRatio(float f); /// /// Sets or gets the value of the field of view of the camera. /// __property float get_FOV(); /// /// Sets or gets the value of the field of view of the camera. /// __property void set_FOV(float value); /// /// Returns the current view frustum. Needed sometimes by bspTree or LOD render nodes. /// __property ViewFrustum get_ViewFrustum(); /// /// Disables or enables the camera to get key or mouse inputs. /// If this is set to true, the camera will respond to key inputs /// otherwise not. /// __property void set_InputReceiverEnabled(bool enabled); /// /// Disables or enables the camera to get key or mouse inputs. /// If this is set to true, the camera will respond to key inputs /// otherwise not. /// __property bool get_InputReceiverEnabled(); inline irr::scene::ICameraSceneNode* get_NativeCameraSceneNode() { return (irr::scene::ICameraSceneNode*)SceneNode; } /// /// Returns if a camera is orthogonal. /// This setting does not change anything of the view or projection matrix. However /// it influences how collision detection and picking is done with this camera. */ /// __property void set_IsOrthogonal(bool enabled); /// /// Returns if a camera is orthogonal. /// This setting does not change anything of the view or projection matrix. However /// it influences how collision detection and picking is done with this camera. */ /// __property bool get_IsOrthogonal(); protected: }; } }