LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
metalinewidth.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 
5 #include "cad/const.h"
6 
8 #include "cad/const.h"
9 #include <iostream>
10 
11 namespace lc {
12  class MetaLineWidth : public EntityMetaType {
13  public:
14  static const std::string LCMETANAME();
15 
16  virtual const std::string id() const override;
17 
18  private:
19  friend std::ostream& operator<<(std::ostream& os, const MetaLineWidth& lineWidth) {
20  os << "MetaLineWidth()";
21  return os;
22  }
23  };
24 
26  public:
28  virtual ~MetaLineWidthByBlock() = default;
29 
30  virtual const std::string metaTypeID() const override;
31 
32  private:
33  friend std::ostream& operator<<(std::ostream& os, const MetaLineWidthByBlock& lineWidth) {
34  os << "MetaLineWidthByBlock()";
35  return os;
36  }
37  };
38 
40  public:
41 
43  MetaLineWidthByValue(const double width);
44  virtual ~MetaLineWidthByValue() = default;
45  double width() const;
46 
47  virtual const std::string metaTypeID() const override;
48 
49  virtual const std::string id () const override {
50  return MetaLineWidthByValue::LCMETANAME() + "_" + std::to_string(_width);
51  }
52 
53  const std::string name() const override;
54 
55  private:
56  double _width;
57 
58  private:
59  friend std::ostream& operator<<(std::ostream& os, const MetaLineWidthByValue& lineWidth) {
60  os << "MetaLineWidthByValue(width=" << lineWidth.width() << ")";
61  return os;
62  }
63  };
64 
65  DECLARE_SHORT_SHARED_PTR(MetaLineWidth)
66  DECLARE_SHORT_SHARED_PTR(MetaLineWidthByBlock)
67  DECLARE_SHORT_SHARED_PTR(MetaLineWidthByValue)
68 }
virtual const std::string id() const override
Definition: metalinewidth.h:49
friend std::ostream & operator<<(std::ostream &os, const MetaLineWidth &lineWidth)
Definition: metalinewidth.h:19
virtual ~MetaLineWidthByValue()=default
static const std::string LCMETANAME()
DECLARE_SHORT_SHARED_PTR(Document)
Definition: cadentity.h:12
virtual const std::string metaTypeID() const override
const std::string name() const override
friend std::ostream & operator<<(std::ostream &os, const MetaLineWidthByValue &lineWidth)
Definition: metalinewidth.h:59
virtual const std::string id() const override
virtual ~MetaLineWidthByBlock()=default
friend std::ostream & operator<<(std::ostream &os, const MetaLineWidthByBlock &lineWidth)
Definition: metalinewidth.h:33
virtual const std::string metaTypeID() const override