32#ifndef RCSC_GEOM_COMPOSITE_REGION2D_H
33#define RCSC_GEOM_COMPOSITE_REGION2D_H
37#include <boost/shared_ptr.hpp>
50 std::vector< boost::shared_ptr< const Region2D > > M_regions;
67 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
68 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
81 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
82 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
83 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
98 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
99 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
100 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
101 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
118 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
119 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
120 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
121 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
122 M_regions.push_back( boost::shared_ptr< const Region2D >( r5 ) );
141 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
142 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
143 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
144 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
145 M_regions.push_back( boost::shared_ptr< const Region2D >( r5 ) );
146 M_regions.push_back( boost::shared_ptr< const Region2D >( r6 ) );
167 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
168 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
169 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
170 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
171 M_regions.push_back( boost::shared_ptr< const Region2D >( r5 ) );
172 M_regions.push_back( boost::shared_ptr< const Region2D >( r6 ) );
173 M_regions.push_back( boost::shared_ptr< const Region2D >( r7 ) );
196 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
197 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
198 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
199 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
200 M_regions.push_back( boost::shared_ptr< const Region2D >( r5 ) );
201 M_regions.push_back( boost::shared_ptr< const Region2D >( r6 ) );
202 M_regions.push_back( boost::shared_ptr< const Region2D >( r7 ) );
203 M_regions.push_back( boost::shared_ptr< const Region2D >( r8 ) );
213 M_regions.push_back( boost::shared_ptr< const Region2D >( r ) );
242 std::vector< boost::shared_ptr< const Region2D > > M_regions;
253 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
254 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
267 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
268 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
269 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
284 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
285 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
286 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
287 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
304 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
305 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
306 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
307 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
308 M_regions.push_back( boost::shared_ptr< const Region2D >( r5 ) );
327 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
328 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
329 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
330 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
331 M_regions.push_back( boost::shared_ptr< const Region2D >( r5 ) );
332 M_regions.push_back( boost::shared_ptr< const Region2D >( r6 ) );
353 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
354 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
355 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
356 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
357 M_regions.push_back( boost::shared_ptr< const Region2D >( r5 ) );
358 M_regions.push_back( boost::shared_ptr< const Region2D >( r6 ) );
359 M_regions.push_back( boost::shared_ptr< const Region2D >( r7 ) );
382 M_regions.push_back( boost::shared_ptr< const Region2D >( r1 ) );
383 M_regions.push_back( boost::shared_ptr< const Region2D >( r2 ) );
384 M_regions.push_back( boost::shared_ptr< const Region2D >( r3 ) );
385 M_regions.push_back( boost::shared_ptr< const Region2D >( r4 ) );
386 M_regions.push_back( boost::shared_ptr< const Region2D >( r5 ) );
387 M_regions.push_back( boost::shared_ptr< const Region2D >( r6 ) );
388 M_regions.push_back( boost::shared_ptr< const Region2D >( r7 ) );
389 M_regions.push_back( boost::shared_ptr< const Region2D >( r8 ) );
399 M_regions.push_back( boost::shared_ptr< const Region2D >( r ) );
IntersectedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4, const Region2D *r5, const Region2D *r6, const Region2D *r7)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:345
IntersectedRegion2D & add(const Region2D *r)
add new region.
Definition composite_region_2d.h:397
IntersectedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4, const Region2D *r5)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:298
IntersectedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:263
IntersectedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:279
virtual bool contains(const Vector2D &point) const
check if union region contains 'point'.
Definition composite_region_2d.cpp:89
virtual double area() const
not implemented yet.
Definition composite_region_2d.cpp:79
IntersectedRegion2D(const Region2D *r1, const Region2D *r2)
construct with 2 regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:250
IntersectedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4, const Region2D *r5, const Region2D *r6)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:320
IntersectedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4, const Region2D *r5, const Region2D *r6, const Region2D *r7, const Region2D *r8)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:373
Region2D()
accessible only from derived classes
Definition region_2d.h:49
UnitedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4, const Region2D *r5, const Region2D *r6, const Region2D *r7)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:159
UnitedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4, const Region2D *r5, const Region2D *r6)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:134
virtual bool contains(const Vector2D &point) const
check if union region contains 'point'.
Definition composite_region_2d.cpp:57
virtual double area() const
not implemented yet.
Definition composite_region_2d.cpp:47
UnitedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:77
UnitedRegion2D(const Region2D *r1, const Region2D *r2)
construct with 2 regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:64
UnitedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4, const Region2D *r5)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:112
UnitedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4, const Region2D *r5, const Region2D *r6, const Region2D *r7, const Region2D *r8)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:187
UnitedRegion2D()
create empty region set
Definition composite_region_2d.h:56
UnitedRegion2D(const Region2D *r1, const Region2D *r2, const Region2D *r3, const Region2D *r4)
construct with regions. all arguments must be a dynamically allocated object.
Definition composite_region_2d.h:93
UnitedRegion2D & add(const Region2D *r)
add new region.
Definition composite_region_2d.h:211
2D point vector class
Definition vector_2d.h:47
abstract 2D region class Header File.