Implements a base 3D "walk" camera.
You can find more information in comments below.
template<class TYPE>
class TCameraWalk :public virtual ICameraWalk<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;
TYPE getPitch() override;
TYPE getPitchMin() override;
TYPE getPitchMax() override;
TYPE getYaw() override;
bool setPitch(const TYPE value) override;
bool setPitchMin(const TYPE value) override;
bool setPitchMax(const TYPE value) override;
bool setYaw(const TYPE value) override;
bool Rotate(const TYPE pitch, const TYPE yaw) override;
bool TurnPitch(const TYPE delta) override;
bool TurnYaw(const TYPE delta) override;
bool Turn(const TYPE pitch_delta, const TYPE yaw_delta) override;
TCameraWalk(ICameraListener<TYPE> *listener = nullptr); // Create with default parameters
};
Namespace: | nitisa::graphics3d |
Include: | Nitisa/Modules/Graphics3D/Core/CameraWalk.h |