lyx_mirror/src/Box.h
2024-10-04 20:49:33 +02:00

55 lines
987 B
C++

// -*- C++ -*-
/**
* \file Box.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author John Levon
*
* Full author contact details are available in file CREDITS.
*/
#ifndef BOX_H
#define BOX_H
#include <ostream>
namespace lyx {
/**
* A simple class representing rectangular regions.
* It is expected that the box be constructed in
* normalised form, that is to say : x1,y1 is top-left,
* x2,y2 is bottom-right.
*
* Negative values are allowed.
*/
class Box {
public:
int x1;
int x2;
int y1;
int y2;
/// Zero-initialise the member variables.
Box();
/// Initialise the member variables.
Box(int x1_, int x2_, int y1_, int y2_);
/**
* Returns true if the given co-ordinates are within
* the box. Check is exclusive (point on a border
* returns false).
*/
bool contains(int x, int y) const;
};
std::ostream & operator<<(std::ostream &, Box const &);
} // namespace lyx
#endif // BOX_H