Fire Core  8.0.0.alpha
GIS framework per tutti gli usi
 Tutto Classi Namespace Funzioni Variabili Ridefinizioni di tipo (typedef) Tipi enumerati (enum) Valori del tipo enumerato Friend
EnvelopeSh.hpp
1 // Copyright © 2015 GEOSYSTEMS SRL
2 // All Rights Reserved.
3 
4 #ifndef FIRE_GEAR_GEOM_SHARED_ENVELOPESH_HPP_INCLUDED
5 #define FIRE_GEAR_GEOM_SHARED_ENVELOPESH_HPP_INCLUDED
6 
7 #include <string>
8 #include <exception>
9 
10 #include "fire/shared/Shared.hpp"
11 #include "fire/gear/geom/Envelope.hpp"
12 
13 namespace fire {
14 namespace gear {
15 namespace geom {
16 namespace shared {
17 
18 class EnvelopeSh : public fire::shared::Shared< Envelope > {
19  public:
20  EnvelopeSh(): Shared(NULL) {
21  Envelope* env = new Envelope();
22  _ptr.reset(env);
23  }
24 
25  explicit EnvelopeSh(Envelope* ptr): Shared(ptr) {
26  }
27 
28  explicit EnvelopeSh(const Envelope & e): Shared(NULL) {
29  Envelope* env = new Envelope(e);
30  _ptr.reset(env);
31  }
32 
33  EnvelopeSh(EnvelopeSh const & c): Shared(c) {
34  }
35 
36  /*
37  explicit EnvelopeSh(int const & srid = 0): Shared(NULL) {
38  Envelope* env = new Envelope(srid);
39  _ptr.reset(env);
40  }
41  */
42 
43  EnvelopeSh(const double& x1, const double& x2, const double& y1, const double& y2, int const & srid = 0) {
44  Envelope* env = new Envelope(x1, x2, y1, y2, srid);
45  _ptr.reset(env);
46  }
47 
48  EnvelopeSh(const Coordinate& c1, const Coordinate& c2, int const & srid = 0) {
49  Envelope* env = new Envelope(c1, c2, srid);
50  _ptr.reset(env);
51  }
52 
53  explicit EnvelopeSh(const Coordinate& c, int const & srid = 0) {
54  Envelope* env = new Envelope(c, srid);
55  _ptr.reset(env);
56  }
57 
58  inline EnvelopeSh clone() const {
59  EnvelopeSh ret(*_getPtr());
60  return ret;
61  }
62 
63  inline bool operator!=(EnvelopeSh const & r) const {
64  return !(this->operator ==(r));
65  }
66 
67  inline bool operator==(EnvelopeSh const & r) const {
68  if (!r)
69  return false;
70 
71  if (Shared::operator ==(r))
72  return true;
73 
74  const Envelope& lEnv = *this;
75  const Envelope& rEnv = r;
76  return lEnv.equals(rEnv);
77  }
78 
79  void init(int const & srid = 0) {
80  _ptr->init(srid);
81  }
82 
83  void init(const double& x1, const double& x2, const double& y1, const double& y2, int const & srid = 0) {
84  _ptr->init(x1, x2, y1, y2, srid);
85  }
86 
87  void init(const Coordinate& c1, const Coordinate& c2, int const & srid = 0) {
88  _ptr->init(c1, c2, srid);
89  }
90 
91  void init(const Coordinate& c, int const & srid = 0) {
92  _ptr->init(c, srid);
93  }
94 
95  void setToNull() {
96  _ptr->setToNull();
97  }
98 
99  bool isNull() const {
100  return _ptr->isNull();
101  }
102 
103  double getWidth() const {
104  return _ptr->getWidth();
105  }
106 
107  double getHeight() const {
108  return _ptr->getHeight();
109  }
110 
111  double getArea() const {
112  return _ptr->getArea();
113  }
114 
115  double getMaxX() const {
116  return _ptr->getMaxX();
117  }
118 
119  double getMaxY() const {
120  return _ptr->getMaxY();
121  }
122 
123  double getMinX() const {
124  return _ptr->getMinX();
125  }
126 
127  double getMinY() const {
128  return _ptr->getMinY();
129  }
130 
131  int getSrid() const {
132  return _ptr->getSrid();
133  }
134 
135  bool centre(Coordinate & c) const {
136  return _ptr->centre(c);
137  }
138 
139  void translate(const double& dx, const double& dy) {
140  return _ptr->translate(dx, dy);
141  }
142 
143  void expandBy(const double& dx, const double& dy) {
144  _ptr->expandBy(dx, dy);
145  }
146 
147  void expandBy(const double& distance) {
148  _ptr->expandBy(distance);
149  }
150 
151  void expandToInclude(const double& x, const double& y) {
152  _ptr->expandToInclude(x, y);
153  }
154 
155  void expandToInclude(const Coordinate& c) {
156  _ptr->expandToInclude(c);
157  }
158 
159  void expandToInclude(const Envelope& e) {
160  _ptr->expandToInclude(e);
161  }
162 
163  void setSrid(int const & srid) {
164  _ptr->setSrid(srid);
165  }
166 
167  bool contains(const double& x, const double& y) const {
168  return _ptr->contains(x, y);
169  }
170 
171  bool contains(const Coordinate& c) const {
172  return _ptr->contains(c);
173  }
174 
175  bool contains(const Envelope& e) const {
176  return _ptr->contains(e);
177  }
178 
179  bool intersects(const double& x, const double& y) const {
180  return _ptr->intersects(x, y);
181  }
182 
183  bool intersects(const Coordinate& c) const {
184  return _ptr->intersects(c);
185  }
186 
187  bool intersects(const Envelope& e) const {
188  return _ptr->intersects(e);
189  }
190 
191  bool intersection(const Envelope& e, Envelope& r) const {
192  return _ptr->intersection(e, r);
193  }
194 
195  fire::gear::geom::Geometry* toGeometry() const {
196  return _ptr->toGeometry();
197  }
198 
199  bool isPoint() const {
200  return _ptr->isPoint();
201  }
202 
203  bool isLine() const {
204  return _ptr->isLine();
205  }
206 
207  bool covers(const double& x, const double& y) const {
208  return _ptr->covers(x, y);
209  }
210 
211  bool covers(const Coordinate& c) const {
212  return _ptr->covers(c);
213  }
214 
215  bool covers(const Envelope& e) const {
216  return _ptr->covers(e);
217  }
218 
219  bool equals(const fire::gear::geom::Envelope& e) const {
220  return _ptr->equals(e);
221  }
222 
223  std::string toString() const {
224  return _ptr->toString();
225  }
226 
227  double distance(const Envelope& e) const {
228  return _ptr->distance(e);
229  }
230 };
231 } // namespace shared
232 } // namespace geom
233 } // namespace gear
234 } // namespace fire
235 
236 #endif
Definition: Coordinate.hpp:48
Definition: EnvelopeSh.hpp:18
Definition: Envelope.hpp:31
Definition: Geometry.hpp:69
Definition: Shared.hpp:17
bool equals(const fire::gear::geom::Envelope &envelope) const