#ifndef INTERACTIVE_CAMERA_CONTROLLER_H
#define INTERACTIVE_CAMERA_CONTROLLER_H
#include "CasualCore/Graphics/CameraController.h"
#include "CasualCore.h"
#include "RKCollision.h"
class InteractiveCameraController : public CasualCore::CameraController
{
public:
typedef CasualCore::CameraController Parent;
public:
virtual void Reset() { }
// new virtual function as base class does not provide one
virtual void SetCameraControl(RKCamera* camera) { Parent::ControlCamera(camera); }
virtual void UpdateFromCamera(RKCamera* camera) {}
virtual void LockCameraInput(bool locked) {}
virtual void EnableCameraExtents(bool enabled) {}
// new set of virtual functions as base ones do not provide event contexts
virtual bool OnKeyDown(int keycode) { return false; }
virtual bool OnKeyUp(int keycode) { return false; }
virtual void PinchSet(float x, float y) {}
virtual void PinchStarted(float x, float y) {}
virtual void PinchChanged(float scale, float velocity) {}
virtual void PinchEnded(float x, float y) {}
virtual void Pinch(float x, float y) {}
virtual void OnTap(float x, float y) {}
virtual void PanStarted(float x, float y) {}
virtual void PanChanged(float x, float y) {}
virtual void PanEnded(float x, float y) {}
virtual void RotateStarted(float x, float y) {}
virtual void RotateChanged(float x, float y) {}
virtual void RotateEnded(float x, float y) {}
// convenience methods
virtual void OnPinchGesture(int gestureId, float x, float y);
virtual void OnPanGesture(int gestureId, float x, float y);
virtual void OnRotateGesture(int gestureId, float x, float y);
virtual void OnTwoFingerTapGesture(int gestureId, float x, float y) {}
};
#endif // INTERACTIVE_CAMERA_CONTROLLER_H