56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
#ifndef _OWLPS_POSITIONING_AREA_HH_
|
|
#define _OWLPS_POSITIONING_AREA_HH_
|
|
|
|
class Area ;
|
|
|
|
#include "building.hh"
|
|
#include "point3d.hh"
|
|
|
|
#include <vector>
|
|
#include <iostream>
|
|
#include <string>
|
|
|
|
using namespace std ;
|
|
|
|
class Area
|
|
{
|
|
protected:
|
|
Building *building ;
|
|
string name ;
|
|
Point3D p_min ;
|
|
Point3D p_max ;
|
|
|
|
public:
|
|
Area(const Building &_building, const string &_name = "Unnamed area",
|
|
const float &_x1 = 0, const float &_y1 = 0, const float &_z1 = 0,
|
|
const float &_x2 = 0, const float &_y2 = 0, const float &_z2 = 0) ;
|
|
Area(const Area &a) ;
|
|
|
|
~Area() {}
|
|
|
|
Building* get_building(void) const ;
|
|
string get_name(void) const ;
|
|
Point3D get_p_min(void) const ;
|
|
Point3D get_p_max(void) const ;
|
|
|
|
void set_building(const Building &_building) ;
|
|
void set_name(const string &_name) ;
|
|
void set_x_min(const float &v) ;
|
|
void set_y_min(const float &v) ;
|
|
void set_z_min(const float &v) ;
|
|
void set_x_max(const float &v) ;
|
|
void set_y_max(const float &v) ;
|
|
void set_z_max(const float &v) ;
|
|
void set_p_min(const Point3D &p) ;
|
|
void set_p_max(const Point3D &p) ;
|
|
|
|
bool contains_point(const Point3D &p) const ;
|
|
|
|
bool operator==(const Area &a) const ;
|
|
inline bool operator!=(const Area &a) const ;
|
|
|
|
friend ostream &operator<<(ostream &os, const Area &a) ;
|
|
} ;
|
|
|
|
#endif // _OWLPS_POSITIONING_AREA_HH_
|