Go to the documentation of this file.
26 #ifndef BOARD_SHAPE_VISITOR_H
27 #define BOARD_SHAPE_VISITOR_H
39 struct ShapeWithStyle;
54 virtual void visit(
Shape & shape) = 0;
55 virtual void visit(
Shape & shape)
const = 0;
58 virtual void visit(
Dot &);
59 virtual void visit(
Dot &)
const;
60 virtual void visit(
Line &);
61 virtual void visit(
Line &)
const;
62 virtual void visit(
Arrow &);
63 virtual void visit(
Arrow & arrow)
const;
65 virtual void visit(
Polyline &)
const;
67 virtual void visit(
Ellipse &)
const;
68 virtual void visit(
Text &);
69 virtual void visit(
Text &)
const;
70 virtual void visit(
Bezier &);
71 virtual void visit(
Bezier &)
const;
79 virtual void visit(
const Shape & shape) = 0;
80 virtual void visit(
const Shape & shape)
const = 0;
83 virtual void visit(
const Dot &);
84 virtual void visit(
const Dot &)
const;
85 virtual void visit(
const Line &);
86 virtual void visit(
const Line &)
const;
87 virtual void visit(
const Arrow &);
88 virtual void visit(
const Arrow & arrow)
const;
89 virtual void visit(
const Polyline &);
90 virtual void visit(
const Polyline &)
const;
91 virtual void visit(
const Ellipse &);
92 virtual void visit(
const Ellipse &)
const;
93 virtual void visit(
const Text &);
94 virtual void visit(
const Text &)
const;
95 virtual void visit(
const Bezier &);
96 virtual void visit(
const Bezier &)
const;
107 virtual Shape * map(
const Dot &)
const;
129 void visit(
const Shape &)
override;
130 void visit(
const Shape &)
const override;
142 void visit(
const Shape &)
override;
143 void visit(
const Shape &)
const override;
153 std::size_t value()
const;
154 void visit(
const Shape &)
override;
155 void visit(
const Shape &)
const override;
168 void visit(
const Shape &)
override;
169 void visit(
const Shape &)
const override;
170 void visit(
const Dot & d)
override;
171 void visit(
const Line &)
override;
172 void visit(
const Arrow &)
override;
173 void visit(
const Polyline &)
override;
174 void visit(
const Ellipse &)
override;
175 void visit(
const Text &)
override;
176 void visit(
const Bezier &)
override;
177 const std::set<Color> & colors()
const;
180 std::set<Color> _colors;
189 void visit(
const Shape &)
override;
190 void visit(
const Shape &)
const override;
191 void visit(
const Dot &)
override;
192 void visit(
const Line &)
override;
193 void visit(
const Arrow &)
override;
194 void visit(
const Polyline &)
override;
195 void visit(
const Ellipse &)
override;
196 void visit(
const Text &)
override;
197 void visit(
const Bezier &)
override;
198 const std::set<Color> & colors()
const;
201 std::set<Color> _colors;
208 typedef std::function<void(
const Shape &)> Function;
210 void visit(
const Shape &)
override;
211 void visit(
const Shape &)
const override;
212 void visit(
const Dot &)
override;
213 void visit(
const Line &)
override;
214 void visit(
const Arrow &)
override;
215 void visit(
const Polyline &)
override;
216 void visit(
const Ellipse &)
override;
217 void visit(
const Text &)
override;
218 void visit(
const Bezier &)
override;
228 typedef std::function<void(
Shape &)> Function;
230 void visit(
Shape &)
override;
231 void visit(
Shape &)
const override;
232 void visit(
Dot &)
override;
233 void visit(
Line &)
override;
234 void visit(
Arrow &)
override;
236 void visit(
Ellipse &)
override;
237 void visit(
Text &)
override;
238 void visit(
Bezier &)
override;
248 enum ColorSpecification
262 void visit(
Shape &)
override;
263 void visit(
Shape &)
const override;
266 void visit(
Dot &)
override;
267 void visit(
Dot &)
const override;
268 void visit(
Line &)
override;
269 void visit(
Line &)
const override;
270 void visit(
Arrow &)
override;
271 void visit(
Arrow &)
const override;
273 void visit(
Polyline &)
const override;
274 void visit(
Ellipse &)
override;
275 void visit(
Ellipse &)
const override;
276 void visit(
Text &)
override;
277 void visit(
Text &)
const override;
278 void visit(
Bezier &)
override;
279 void visit(
Bezier &)
const override;
Leaf visitor may be used to apply a function on each leaf, in back-to-front order.
Definition: ShapeVisitor.h:207
@copyright This source code is part of the Board project, a C++ library whose purpose is to allow sim...
The BoundingBoxViewer struct may be used to display the bounding boxes of the shapes in a composite t...
Definition: ShapeVisitor.h:141
A polygonal line described by a series of 2D points.
Definition: Polyline.h:38
A line between two points with an arrow at one extremity.
Definition: Arrow.h:38
Leaf visitor may be used to apply a function on each leaf, in back-to-front order.
Definition: ShapeVisitor.h:227
A line between two points.
Definition: Dot.h:42
A piece of text.
Definition: Text.h:40
The ShapeCounter struct may be used to count shapes in the composite shapes tree.
Definition: ShapeVisitor.h:150
A line between two points.
Definition: Line.h:38
A cubice polygonal line described by a series of 2D points.
Definition: Bezier.h:40
Abstract structure for a 2D shape.
Definition: Shape.h:63
A ConstShapeVisitor may visit const shapes of a composite shape tree in back-to-front order.
Definition: ShapeVisitor.h:78
An ellipse.
Definition: Ellipse.h:38
A group of shapes.
Definition: ShapeList.h:46
The Color structure. @copyright This source code is part of the Board project, a C++ library whose pu...
Leaf visitor may be used to apply a function on each Shape with style, in back-to-front order.
Definition: ShapeVisitor.h:247
A ShapeVisitor visits all shapes in a composite shape tree in back-to-front order.
Definition: ShapeVisitor.h:53
Structure representing an RGB triple.
Definition: Color.h:43
Abstract structure for a 2D shape.
Definition: ShapeWithStyle.h:38