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 
3 #include <string>
4 
5 #include "cad/const.h"
6 
7 #include "metalinewidth.h"
8 #include "dxflinepattern.h"
9 #include "cad/meta/color.h"
10 #include <cad/builders/layer.h>
11 
12 namespace lc {
13  class Layer : public EntityMetaType, public DocumentMetaType {
14  friend class builder::LayerBuilder;
15 
16  public:
17  Layer();
18  Layer(const std::string name, const MetaLineWidthByValue lineWidth, const Color color);
19  Layer(const std::string name,
21  const Color color,
22  DxfLinePatternByValue_CSPtr linepattern,
23  const bool frozen
24  );
25 
26  // Change this to meta data?
27  Layer(const std::string name, const Color color);
28  Layer(const std::string name, const MetaLineWidthByValue lineWidth);
29  virtual ~Layer() = default;
30 
31  virtual const std::string id() const {
32  return Layer::LCMETANAME() + "_" + _name;
33  }
34 
35  virtual const std::string metaTypeID() const {
36  return Layer::LCMETANAME();
37  }
38  static const std::string LCMETANAME() {
39  return "_LAYER";
40  }
41 
43  Color color() const;
44  DxfLinePatternByValue_CSPtr linePattern() const;
45  bool isFrozen() const;
46  virtual const std::string name() const;
47 
48  bool operator == (const Layer& layer) const {
49  return (layer._name == _name);
50  }
51 
52  private:
53  Layer(const builder::LayerBuilder& builder);
54 
55  std::string _name;
58  DxfLinePatternByValue_CSPtr _linepattern;
59  bool _isFrozen;
60 
61  friend std::ostream& operator<<(std::ostream& os, const Layer& layer) {
62  os << "Layer(name" << layer.name() << " lineWidth=" << layer.lineWidth() << " color=" << layer.color() << ")" << std::endl;
63  return os;
64  }
65  };
66 
68 }
69 
DxfLinePatternByValue_CSPtr _linepattern
Definition: layer.h:58
bool _isFrozen
Definition: layer.h:59
static const std::string LCMETANAME()
Definition: layer.h:38
MetaLineWidthByValue lineWidth() const
Definition: layer.cpp:69
Color color() const
Definition: layer.cpp:66
bool operator==(const Layer &layer) const
Definition: layer.h:48
Color _color
Definition: layer.h:57
DECLARE_SHORT_SHARED_PTR(Document)
Definition: cadentity.h:12
virtual const std::string metaTypeID() const
Definition: layer.h:35
virtual const std::string id() const
Definition: layer.h:31
virtual const std::string name() const
Definition: layer.cpp:81
friend std::ostream & operator<<(std::ostream &os, const Layer &layer)
Definition: layer.h:61
Layer()
Definition: layer.cpp:7
MetaLineWidthByValue _lineWidth
Definition: layer.h:56
std::string _name
Definition: layer.h:55
bool isFrozen() const
Definition: layer.cpp:77
virtual ~Layer()=default
DxfLinePatternByValue_CSPtr linePattern() const
Definition: layer.cpp:73