#include "Circle.h"
ofEvent<glm::vec2> Circle::clickedInsideGlobal = ofEvent<glm::vec2>();
Circle::Circle() {
bRegisteredEvents = false;
}
Circle::~Circle() {
clear();
}
void Circle::setup(int radius, int x, int y, ofColor color){
this->radius = radius;
this->x = x;
this->y = y;
this->color = color;
if(!bRegisteredEvents) {
ofRegisterMouseEvents(this);
bRegisteredEvents = true;
}
}
void Circle::draw(){
ofPushStyle();
ofSetColor(color);
ofDrawCircle(x,y, radius);
ofPopStyle();
}
void Circle::clear() {
if(bRegisteredEvents) {
ofUnregisterMouseEvents(this);
bRegisteredEvents = false;
}
}
void Circle::mouseMoved(ofMouseEventArgs & args){}
void Circle::mouseDragged(ofMouseEventArgs & args){}
void Circle::mousePressed(ofMouseEventArgs & args){}
void Circle::mouseReleased(ofMouseEventArgs & args){
if (inside(args.x, args.y)) {
glm::vec2 mousePos = glm::vec2(args.x, args.y);
ofNotifyEvent(clickedInside, mousePos, this);
ofNotifyEvent(clickedInsideGlobal, mousePos);
}
}
void Circle::mouseScrolled(ofMouseEventArgs & args){}
void Circle::mouseEntered(ofMouseEventArgs & args){}
void Circle::mouseExited(ofMouseEventArgs & args){}
bool Circle::inside(float _x, float _y ){
return (glm::distance(glm::vec2(_x, _y), glm::vec2(x, y)) < radius);
}
Comments