Implements a base 3D "fly" camera.
You can find more information in comments below.
template<class TYPE>
class TCameraFly :public virtual ICameraFly<TYPE>, public TCamera<TYPE>
{
protected:
void NotifyOnChange() override;
public:
math::TVec3<TYPE> getPosition() override;
math::TVec3<TYPE> getDirection() override;
math::TVec3<TYPE> getDirectionRight() override;
math::TVec3<TYPE> getDirectionUp() override;
math::TMat4<TYPE> getViewMatrix() override;
math::TMat4<TYPE> getMatrix() override;
bool setPosition(const math::TVec3<TYPE> &value) override;
bool MoveForward(const TYPE delta) override;
bool MoveBackward(const TYPE delta) override;
bool MoveLeft(const TYPE delta) override;
bool MoveRight(const TYPE delta) override;
bool MoveUp(const TYPE delta) override;
bool MoveDown(const TYPE delta) override;
bool TurnX(const TYPE angle) override;
bool TurnY(const TYPE angle) override;
bool TurnZ(const TYPE angle) override;
bool Turn(const TYPE angle_x, const TYPE angle_y, const TYPE angle_z) override;
TCameraFly(ICameraListener<TYPE> *listener = nullptr); // Create with default parameters
};
Namespace: | nitisa::graphics3d |
Include: | Nitisa/Modules/Graphics3D/Core/CameraFly.h |