LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
layer.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include <cad/meta/color.h>
6 
7 namespace lc {
8  class Layer;
10 
11  namespace builder {
12  class LayerBuilder {
13  public:
14  LayerBuilder();
15 
16  virtual ~LayerBuilder();
17 
18  const std::string& name() const;
19  const MetaLineWidthByValue& lineWidth() const;
20  const Color& color() const;
21  DxfLinePatternByValue_CSPtr linePattern() const;
22  bool isFrozen() const;
23 
24  LayerBuilder* setName(const std::string& name);
25  LayerBuilder* setLineWidth(const MetaLineWidthByValue& lineWidth);
26  LayerBuilder* setColor(const Color& color);
27  LayerBuilder* setLinePattern(const DxfLinePatternByValue_CSPtr& linepattern);
28  LayerBuilder* setIsFrozen(bool isFrozen);
29 
30  Layer_CSPtr build();
31 
32  private:
33  bool checkValues();
34 
35  std::string _name;
38  lc::DxfLinePatternByValue_CSPtr _linePattern;
39  bool _isFrozen;
40  };
41  }
42 }
lc::DxfLinePatternByValue_CSPtr _linePattern
Definition: layer.h:38
DECLARE_SHORT_SHARED_PTR(Document)
Definition: cadentity.h:12
std::string _name
Definition: layer.h:35
MetaLineWidthByValue _lineWidth
Definition: layer.h:36