ICamera


This interface has been removed in release 10.0.0. Use ICamera interface instead.

Interface describing basic camera to be used in 3D space.

You can find more information in comments below.

template<class TYPE>
    class ICamera
    {
    public:
        virtual ICameraListener<TYPE> *getListener() = 0; // Return assigned change listener 
        virtual math::TVec3<TYPE> getPosition() = 0; // Return camera position 
        virtual PROJECTION_MODE getProjectionMode() = 0; // Return camera projection mode 
        virtual TViewport<TYPE> getViewport() = 0; // Return viewport 
        virtual TYPE getFOV() = 0; // Return field of view 
        virtual TYPE getAspect() = 0; // Return aspect ratio 
        virtual TYPE getNearPlane() = 0; // Return near clip plane 
        virtual TYPE getFarPlane() = 0; // Return far clip plane 
        virtual math::TVec3<TYPE> getDirection() = 0; // Camera look/walk direction 
        virtual math::TVec3<TYPE> getDirectionRight() = 0; // Return direction to the camera right 
        virtual math::TVec3<TYPE> getDirectionUp() = 0; // Return direction to the camera up 
        virtual math::TMat4<TYPE> getProjectionMatrix() = 0; // Return projection matrix 
        virtual math::TMat4<TYPE> getViewMatrix() = 0; // Return camera matrix 
        virtual math::TMat4<TYPE> getMatrix() = 0; // Return combined view-projection matrix 
    
        virtual void setListener(ICameraListener<TYPE> *value) = 0; // Assign new listener 
        virtual bool setPosition(const math::TVec3<TYPE> &value) = 0; // Set camera position 
        virtual bool setProjectionMode(const PROJECTION_MODE value) = 0; // Set projection mode 
        virtual bool setViewport(const TViewport<TYPE> &value) = 0; // Set viewport 
        virtual bool setFOV(const TYPE value) = 0; // Set field of view 
        virtual bool setAspect(const TYPE value) = 0; // Set aspect ratio 
        virtual bool setNearPlane(const TYPE value) = 0; // Set near clip plane 
        virtual bool setFarPlane(const TYPE value) = 0; // Set far clip plane 
    
        virtual void Release() = 0; // Delete camera 
    
        virtual bool Planes(const TYPE near_plane, const TYPE far_plane) = 0; // Set clip planes 
        virtual bool Frustum(const TViewport<TYPE> &viewport) = 0; // Set "frustum" projection mode 
        virtual bool Perspective(const TYPE fov, const TYPE aspect) = 0; // Set "perspective" projection mode 
        virtual bool Ortho(const TViewport<TYPE> &viewport) = 0; // Set orthographical projection mode 
        virtual bool MoveForward(const TYPE delta) = 0; // Move camera forward 
        virtual bool MoveBackward(const TYPE delta) = 0; // Move camera backward 
        virtual bool MoveLeft(const TYPE delta) = 0; // Move camera left 
        virtual bool MoveRight(const TYPE delta) = 0; // Move camera right 
        virtual bool MoveUp(const TYPE delta) = 0; // Move camera up 
        virtual bool MoveDown(const TYPE delta) = 0; // Move camera down 
    };
Namespace: nitisa::graphics3d
Include: Nitisa/Modules/Graphics3D/Interfaces/ICamera.h