/*
* EtherPix config file generator
*
* Copyright 2010-2017 Stefan Schuermans <stefan schuermans info>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef INC_LAYER_H
#define INC_LAYER_H
#include <vector>
#include "box.h"
#include "line.h"
#include "object.h"
#include "point.h"
class Layer {
public:
struct Intersection {
Point pt;
const Object *pObj;
};
~Layer();
void getBounds(Box &bounds) const;
bool isIntersecting(const Object *pObject) const;
bool getIntersection(const Object *pObject, Point *pIntersect) const;
void getIntersections(const Object *pObject,
std::vector<Intersection> &intersections) const;
void add(Object *pObject);
void build(const Line *pLine);
void build(Object *pObject);
void merge(Layer *pLayer);
std::vector<Object *> mObjects;
};
#endif // #ifndef INC_LAYER_H