1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| template < typename T >
class Box {
public:
Box(const std::vector<T>& A, const std::vector<T>& B):_A(A),_B(B){};
Box(T ax, T ay, T bx, T by):_A(2),_B(2){
_A[0]=ax; _A[1]=ay; _B[0]=bx; _B[1]=by; };
Box(const Box& box):_A(box.GetA()),_B(box.GetB()){};
std::vector<T> GetA() const {return _A; };
std::vector<T> GetB() const {return _B; };
T size(int i) const { return _B[i]-_A[i]; };
T sizeX() const { return _B[0]-_A[0]; };
T sizeY() const { return _B[1]-_A[1]; };
protected:
std::vector<T> _A,_B;
};
class Mask {
public:
//Mask() {};
Mask(int sizex, int sizey, int originX=0, int originY=0):_sx(sizex),_sy(sizey),_ox(originX),_oy(originY){};
Mask(const Box<int>& box):_sx(box.sizeX()),_sy(box.sizeY()),_ox(box.GetA()[0]),_oy(box.GetA()[1]){};
//Mask(const std::vector<int>& A,const std::vector<int>& B){
// Box<int> box(A,B);
// Mask(box);
// };
~Mask(){};
protected:
int _sx,_sy,_ox,_oy;
}; |
Partager