Blender  V3.3
StrokeLayer.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
10 #include <deque>
11 
12 #ifdef WITH_CXX_GUARDEDALLOC
13 # include "MEM_guardedalloc.h"
14 #endif
15 
16 namespace Freestyle {
17 
18 class Stroke;
19 class StrokeRenderer;
20 class StrokeLayer {
21  public:
22  typedef std::deque<Stroke *> stroke_container;
23 
24  protected:
26 
27  public:
29  {
30  }
31 
32  StrokeLayer(const stroke_container &iStrokes)
33  {
34  _strokes = iStrokes;
35  }
36 
37  StrokeLayer(const StrokeLayer &iBrother)
38  {
39  _strokes = iBrother._strokes;
40  }
41 
42  virtual ~StrokeLayer();
43 
45  void ScaleThickness(float iFactor);
46  void Render(const StrokeRenderer *iRenderer);
47  void RenderBasic(const StrokeRenderer *iRenderer);
48 
50  void clear();
51 
53  inline stroke_container::iterator strokes_begin()
54  {
55  return _strokes.begin();
56  }
57 
58  inline stroke_container::iterator strokes_end()
59  {
60  return _strokes.end();
61  }
62 
63  inline int strokes_size() const
64  {
65  return _strokes.size();
66  }
67 
68  inline bool empty() const
69  {
70  return _strokes.empty();
71  }
72 
74  inline void setStrokes(stroke_container &iStrokes)
75  {
76  _strokes = iStrokes;
77  }
78 
79  inline void AddStroke(Stroke *iStroke)
80  {
81  _strokes.push_back(iStroke);
82  }
83 
84 #ifdef WITH_CXX_GUARDEDALLOC
85  MEM_CXX_CLASS_ALLOC_FUNCS("Freestyle:StrokeLayer")
86 #endif
87 };
88 
89 } /* namespace Freestyle */
Read Guarded memory(de)allocation.
void Render(const StrokeRenderer *iRenderer)
Definition: StrokeLayer.cpp:28
bool empty() const
Definition: StrokeLayer.h:68
stroke_container _strokes
Definition: StrokeLayer.h:25
stroke_container::iterator strokes_begin()
Definition: StrokeLayer.h:53
StrokeLayer(const StrokeLayer &iBrother)
Definition: StrokeLayer.h:37
void setStrokes(stroke_container &iStrokes)
Definition: StrokeLayer.h:74
StrokeLayer(const stroke_container &iStrokes)
Definition: StrokeLayer.h:32
int strokes_size() const
Definition: StrokeLayer.h:63
std::deque< Stroke * > stroke_container
Definition: StrokeLayer.h:22
void AddStroke(Stroke *iStroke)
Definition: StrokeLayer.h:79
stroke_container::iterator strokes_end()
Definition: StrokeLayer.h:58
void RenderBasic(const StrokeRenderer *iRenderer)
Definition: StrokeLayer.cpp:37
void ScaleThickness(float iFactor)
Definition: StrokeLayer.cpp:19
inherits from class Rep
Definition: AppCanvas.cpp:18