Rogue: Savage Rats, a retro-themed dungeon crawler
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
rogue-savage-rats/src/mightypork/utils/math/rect/Rect.java

152 lines
2.0 KiB

package mightypork.utils.math.rect;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.num.Num;
import mightypork.utils.math.vect.Vect;
/**
* Common methods for all kinds of Rects
*
* @author MightyPork
*/
public interface Rect extends RectBound {
Rect ZERO = new RectVal(0, 0, 0, 0);
Rect ONE = new RectVal(0, 0, 1, 1);
/**
* Get a copy of current value
*
* @return copy
*/
RectVal copy();
/**
* Get a proxying view
*
* @return proxy
*/
RectView view();
/**
* Origin (top left).
*
* @return origin (top left)
*/
Vect origin();
/**
* Size (spanning right down from Origin).
*
* @return size vector
*/
Vect size();
/**
* @return current width
*/
public abstract Num width();
/**
* @return current height
*/
public abstract Num height();
/**
* @return origin X
*/
public abstract Num x();
/**
* @return origin Y
*/
public abstract Num y();
/**
* @return left X (low)
*/
public abstract Num left();
/**
* @return right X (high)
*/
public abstract Num right();
/**
* @return top Y (low)
*/
public abstract Num top();
/**
* @return bottom Y (high)
*/
public abstract Num bottom();
/**
* @return top left corner position
*/
public abstract Vect topLeft();
/**
* @return top center position
*/
public abstract Vect topCenter();
/**
* @return top right corner position
*/
public abstract Vect topRight();
/**
* @return left center position
*/
public abstract Vect centerLeft();
/**
* @return center position
*/
public abstract Vect center();
/**
* @return right center position
*/
public abstract Vect centerRight();
/**
* @return bottom left corner position
*/
public abstract Vect bottomLeft();
/**
* @return bottom center position
*/
public abstract Vect bottomCenter();
/**
* @return bottom right corner position
*/
public abstract Vect bottomRight();
}