64 lines
1.7 KiB
C
64 lines
1.7 KiB
C
|
//////////////////////////////////////
|
||
|
// Created by Pontus Fransson 2014 //
|
||
|
//////////////////////////////////////
|
||
|
|
||
|
#ifndef MISC_EVENT_BUTTON_CIRCLE_H
|
||
|
#define MISC_EVENT_BUTTON_CIRCLE_H
|
||
|
|
||
|
#include "EventButton.h"
|
||
|
#include "../../Input/L_inputClass.h"
|
||
|
|
||
|
namespace Oyster
|
||
|
{
|
||
|
namespace Event
|
||
|
{
|
||
|
template <typename Owner>
|
||
|
class EventButtonCircle : public EventButton<Owner>
|
||
|
{
|
||
|
public:
|
||
|
EventButtonCircle()
|
||
|
: EventButton(), xPos(0), yPos(0), radius(0)
|
||
|
{}
|
||
|
EventButtonCircle(Owner owner, float xPos, float yPos, float radius)
|
||
|
: EventButton(owner), xPos(xPos), yPos(yPos), radius(radius)
|
||
|
{}
|
||
|
EventButtonCircle(void (*EventFunc)( Oyster::Event::ButtonEvent<Owner>& e), float xPos, float yPos, float radius)
|
||
|
: EventButton(EventFunc), xPos(xPos), yPos(yPos), radius(radius)
|
||
|
{}
|
||
|
EventButtonCircle(void (*EventFunc)( Oyster::Event::ButtonEvent<Owner>& e), Owner owner, float xPos, float yPos, float radius)
|
||
|
: EventButton(EventFunc, owner), xPos(xPos), yPos(yPos), radius(radius)
|
||
|
{}
|
||
|
EventButtonCircle(void (*EventFunc)( Oyster::Event::ButtonEvent<Owner>& e), Owner owner, void* userData, float xPos, float yPos, float radius)
|
||
|
: EventButton(EventFunc, owner, userData), xPos(xPos), yPos(yPos), radius(radius)
|
||
|
{}
|
||
|
~EventButtonCircle()
|
||
|
{}
|
||
|
|
||
|
//Circle vs point collision
|
||
|
bool Collision(InputClass* inputObject)
|
||
|
{
|
||
|
//Should come from the InputClass
|
||
|
float xMouse = 2, yMouse = 2;
|
||
|
|
||
|
float xDiff = xMouse - xPos;
|
||
|
float yDiff = yMouse - yPos;
|
||
|
|
||
|
float length = (xDiff * xDiff) + (yDiff * yDiff);
|
||
|
|
||
|
if(length <= radius*radius)
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
float xPos, yPos;
|
||
|
float radius;
|
||
|
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|