1 #ifndef COMPLICATED_RECTANGLE_HPP 2 #define COMPLICATED_RECTANGLE_HPP 9 #include "interface.hpp" 37 bool leaf()
const {
return false;};
38 size_t size()
const {
return 2;};
41 typedef STD_TR1::shared_ptr< std::vector<int> > mat_index_ref;
42 const char* name()
const {
return "rotated_rect";};
46 Rectangle::const_ref am_no_leaf_get_R(
size_t pos)
const {
47 return (pos == 0) ? left_rect : right_rect;};
48 Rectangle::ref am_no_leaf_get_R(
size_t pos) {
49 return (pos == 0) ? left_rect : right_rect;};
57 Rectangle::ref left_rect;
58 Rectangle::ref right_rect;
61 Interface_const_ref get_I(
size_t pos)
const {
return inter;};
63 mutable mat_index_ref matrix_indizes;
64 mutable STD_TR1::shared_ptr<Vector> Lambda;
66 STD_TR1::shared_ptr<rotated_matrix> my_mat;
68 void set_coordinates()
const;
69 void set_coordinates_upwards(std::vector<point>&)
const;
70 void set_coordinates_not_upwards(std::vector<point>&)
const;
72 void createH(
Matrix&)
const;
82 size_t layers_()
const;
83 size_t drawing_layers_()
const;
85 size_t nx_(
size_t)
const;
86 size_t grid_points_()
const;
108 size_t size()
const {
return 1;};
109 bool leaf()
const {
return false;};
114 Rectangle::ref my_rect;
116 Interface::ref my_inter;
118 Interface_const_ref get_I(
size_t pos)
const {
return my_inter;};
120 const char* name()
const {
return "cylinder";};
123 Rectangle::const_ref am_no_leaf_get_R(
size_t pos)
const {
return my_rect;};
124 Rectangle::ref am_no_leaf_get_R(
size_t pos) {
return my_rect;};
128 void createH(
Matrix&)
const;
137 size_t layers_()
const;
138 size_t drawing_layers_()
const;
140 size_t grid_points_()
const;
141 size_t nx_(
size_t)
const;
183 typedef STD_TR1::shared_ptr<many_Rects> ref;
184 typedef STD_TR1::shared_ptr<const many_Rects> const_ref;
198 bool randomize_rects;
199 bool use_generic_Interface;
201 typedef std::vector<Interface::ref> Interface_Vec;
202 typedef STD_TR1::shared_ptr<Interface_Vec> Interface_Vec_p;
203 Interface_Vec_p Interfaces;
205 typedef std::list<Rectangle::ref> Rect_List;
206 typedef STD_TR1::shared_ptr<Rect_List> Rect_List_p;
209 Rectangle::ref actual_Rect;
213 Rectangle::ref combine();
214 Rectangle::ref combine(
const Rect_List&);
216 Interface::ref get_Interface();
218 Rect_List_p generate(Rect_List_p)
const;
220 const char* name()
const {
return "Fibonacci_rectangles";};
222 void init_from_clone(loadable_Object::const_ref);
226 Interface_const_ref get_I(
size_t pos)
const;
228 Rectangle::const_ref am_no_leaf_get_R(
size_t pos)
const;
229 Rectangle::ref am_no_leaf_get_R(
size_t pos);
231 void createH(
Matrix&)
const;
241 size_t layers_()
const;
242 size_t drawing_layers_()
const;
244 size_t grid_points_()
const;
245 size_t nx_(
size_t)
const;
Create a sequence of random rects using a Fibonacci-like algorithm.
Definition: complicated_rectangle.hpp:181
Definitions of abstract Rectangle base class.
Definition: iterators.hpp:13
Definition: noiseless.hpp:11
Definition: complicated_rectangle.cpp:29
Wrap contained geometry together with periodic boundary conditions.
Definition: complicated_rectangle.hpp:101
Definition: simple_rectangles.hpp:168
Abstract class that defines a geomeetry.
Definition: rectangle.hpp:31
Definition: rectangle_visitor.hpp:21
Base Matrix class for access to 2D number grids.
Definition: matrix.hpp:82
Definition: complicated_rectangle.hpp:30