Files
Blocks3D/src/include/DataModelV3/InputService.h
2023-11-12 22:12:23 -08:00

46 lines
913 B
C++

//Should potentially make a "Service" class
#pragma once
#include "Instance.h"
#include "PartInstance.h"
namespace B3D{
struct MousePoint{
Vector3 position;
B3D::PartInstance * target;
MousePoint(Vector3 pos, PartInstance * targ)
{
position = pos;
target = targ;
}
};
class InputService : public Instance{
public:
InputService(void);
~InputService(void);
//Polling
int pollKeyState(unsigned char keyCode);
int pollMouseX();
int pollMouseY();
int pollMouseButton(unsigned char button);
bool pollFocus();
//Update Input
void updateMouse(int x, int y);
void updateFocus(bool focus);
//Signal
void signalKeyState(unsigned char keyCode, bool isDown);
void signalMouseButtonState(unsigned char button, bool isDown);
void signalMouseWheelState(int step);
private:
int mouseX, mouseY;
Ray lastRay;
bool hasFocus;
};
}