comparison Framework/Scene2D/Scene2D.h @ 602:03c4b998fcd0

display scene positions in the basic sample
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 29 Apr 2019 14:40:01 +0200
parents 6129b1e5ba42
children d9c0a66304cb
comparison
equal deleted inserted replaced
600:6129b1e5ba42 602:03c4b998fcd0
37 virtual ~IVisitor() 37 virtual ~IVisitor()
38 { 38 {
39 } 39 }
40 40
41 virtual void Visit(const ISceneLayer& layer, 41 virtual void Visit(const ISceneLayer& layer,
42 uint64_t layerIdentifier,
42 int depth) = 0; 43 int depth) = 0;
43 }; 44 };
44 45
45 private: 46 private:
46 typedef std::map<int, ISceneLayer*> Content; 47 class Item;
48
49 typedef std::map<int, Item*> Content;
47 50
48 Content content_; 51 Content content_;
49
50 AffineTransform2D sceneToCanvas_; 52 AffineTransform2D sceneToCanvas_;
51 AffineTransform2D canvasToScene_; 53 AffineTransform2D canvasToScene_;
54 uint64_t layerCounter_;
52 55
53 Scene2D(const Scene2D& other); 56 Scene2D(const Scene2D& other);
54 57
55 public: 58 public:
56 Scene2D() 59 Scene2D() :
60 layerCounter_(0)
57 { 61 {
58 } 62 }
59 63
60 ~Scene2D(); 64 ~Scene2D();
61 65
66 70
67 void SetLayer(int depth, 71 void SetLayer(int depth,
68 ISceneLayer* layer); // Takes ownership 72 ISceneLayer* layer); // Takes ownership
69 73
70 void DeleteLayer(int depth); 74 void DeleteLayer(int depth);
75
76 bool HasLayer(int depth) const;
77
78 ISceneLayer& GetLayer(int depth) const;
71 79
72 void Apply(IVisitor& visitor) const; 80 void Apply(IVisitor& visitor) const;
73 81
74 const AffineTransform2D& GetSceneToCanvasTransform() const 82 const AffineTransform2D& GetSceneToCanvasTransform() const
75 { 83 {