ShapeGroupElement.h
Go to the documentation of this file.
1 #ifndef __SHAPEGROUPELEMENT_H__
2 #define __SHAPEGROUPELEMENT_H__
3 #include <boost/optional.hpp>
4 #include <boost/function.hpp>
5 #include <vector>
6 
7 #include "ShapeInfo.h"
9 
10 namespace libmspub
11 {
13 {
14  boost::optional<ShapeInfo> m_shapeInfo;
16  std::vector<ShapeGroupElement *> m_children;
17  unsigned m_seqNum;
18  ShapeGroupElement &operator=(const ShapeGroupElement &); //not implemented
19  ShapeGroupElement(const ShapeGroupElement &); //not implemented
21 public:
23  ShapeGroupElement(ShapeGroupElement *parent, unsigned seqNum);
24  void setShapeInfo(const ShapeInfo &shapeInfo);
25  void setup(boost::function<void(ShapeGroupElement &self)> visitor);
26  void visit(boost::function<
27  boost::function<void(void)>
28  (const ShapeInfo &info, const Coordinate &relativeTo, const VectorTransformation2D &foldedTransform, bool isGroup, const VectorTransformation2D &thisTransform)> visitor,
29  const Coordinate &relativeTo, const VectorTransformation2D &foldedTransform) const;
30  void visit(boost::function<
31  boost::function<void(void)>
32  (const ShapeInfo &info, const Coordinate &relativeTo, const VectorTransformation2D &foldedTransform, bool isGroup, const VectorTransformation2D &thisTransform)> visitor) const;
33  bool isGroup() const;
35  const ShapeGroupElement *getParent() const;
36  void setSeqNum(unsigned seqNum);
37  void setTransform(const VectorTransformation2D &transform);
38  unsigned getSeqNum() const;
39 };
40 }
41 
42 #endif
43 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */

Generated for libmspub by doxygen 1.8.1.2