asteroids-cs165/include/point.h

50 lines
1.3 KiB
C
Raw Permalink Normal View History

2020-06-30 22:04:55 -04:00
/***********************************************************************
* Header File:
* Point : The representation of a position on the screen
* Author:
* Br. Helfrich
* Summary:
* Everything we need to know about a location on the screen, including
* the location and the bounds.
************************************************************************/
#ifndef POINT_H
#define POINT_H
#include <iostream>
/*********************************************
* POINT
* A single position.
*********************************************/
class Point
{
public:
// constructors
Point() : x(0.0), y(0.0) {}
Point(bool check) : x(0.0), y(0.0) {}
Point(float x, float y);
// getters
float getX() const { return x; }
float getY() const { return y; }
// setters
void setX(float x);
void setY(float y);
void addX(float dx) { setX(getX() + dx); }
void addY(float dy) { setY(getY() + dy); }
bool inRange ( const Point &p , const float range );
private:
float x; // horizontal position
float y; // vertical position
};
// stream I/O useful for debugging
std::ostream & operator << (std::ostream & out, const Point & pt);
std::istream & operator >> (std::istream & in, Point & pt);
#endif // POINT_H