LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lc::Layer Class Reference

#include <layer.h>

Inheritance diagram for lc::Layer:
Collaboration diagram for lc::Layer:

Public Member Functions

 Layer ()
 
 Layer (const std::string name, const MetaLineWidthByValue lineWidth, const Color color)
 
 Layer (const std::string name, const MetaLineWidthByValue lineWidth, const Color color, DxfLinePatternByValue_CSPtr linepattern, const bool frozen)
 
 Layer (const std::string name, const Color color)
 
 Layer (const std::string name, const MetaLineWidthByValue lineWidth)
 
virtual ~Layer ()=default
 
virtual const std::string id () const
 
virtual const std::string metaTypeID () const
 
MetaLineWidthByValue lineWidth () const
 
Color color () const
 
DxfLinePatternByValue_CSPtr linePattern () const
 
bool isFrozen () const
 
virtual const std::string name () const
 
bool operator== (const Layer &layer) const
 
- Public Member Functions inherited from lc::MetaType
 MetaType ()
 
virtual ~MetaType ()=default
 

Static Public Member Functions

static const std::string LCMETANAME ()
 

Private Member Functions

 Layer (const builder::LayerBuilder &builder)
 

Private Attributes

std::string _name
 
MetaLineWidthByValue _lineWidth
 
Color _color
 
DxfLinePatternByValue_CSPtr _linepattern
 
bool _isFrozen
 

Friends

class builder::LayerBuilder
 
std::ostream & operator<< (std::ostream &os, const Layer &layer)
 

Detailed Description

Definition at line 13 of file layer.h.

Constructor & Destructor Documentation

Layer::Layer ( )

Definition at line 7 of file layer.cpp.

7  {
8 }
Layer::Layer ( const std::string  name,
const MetaLineWidthByValue  lineWidth,
const Color  color 
)

Definition at line 10 of file layer.cpp.

10  :
13  _name(name),
14  _lineWidth(lineWidth),
15  _color(color),
16  _linepattern(nullptr),
17  _isFrozen(false) {
18  assert(!StringHelper::isBlank(name) && "Name cannot be blank");
19 }
DxfLinePatternByValue_CSPtr _linepattern
Definition: layer.h:58
bool _isFrozen
Definition: layer.h:59
Color _color
Definition: layer.h:57
virtual const std::string name() const
Definition: layer.cpp:81
MetaLineWidthByValue _lineWidth
Definition: layer.h:56
std::string _name
Definition: layer.h:55
static bool isBlank(const std::string str)
Definition: string_helper.h:49
Layer::Layer ( const std::string  name,
const MetaLineWidthByValue  lineWidth,
const Color  color,
DxfLinePatternByValue_CSPtr  linepattern,
const bool  frozen 
)

Definition at line 21 of file layer.cpp.

25  :
28  _name(name),
29  _lineWidth(lineWidth),
30  _color(color),
31  _linepattern(linepattern),
32  _isFrozen(frozen) {
33  assert(!StringHelper::isBlank(name) && "Name cannot be blank");
34 }
DxfLinePatternByValue_CSPtr _linepattern
Definition: layer.h:58
bool _isFrozen
Definition: layer.h:59
Color _color
Definition: layer.h:57
virtual const std::string name() const
Definition: layer.cpp:81
MetaLineWidthByValue _lineWidth
Definition: layer.h:56
std::string _name
Definition: layer.h:55
static bool isBlank(const std::string str)
Definition: string_helper.h:49
Layer::Layer ( const std::string  name,
const Color  color 
)

Definition at line 46 of file layer.cpp.

46  :
49  _name(name),
50  _color(color),
51  _linepattern(nullptr),
52  _isFrozen(false) {
53  assert(!StringHelper::isBlank(name) && "Name cannot be blank"); // Name must be set
54 }
DxfLinePatternByValue_CSPtr _linepattern
Definition: layer.h:58
bool _isFrozen
Definition: layer.h:59
Color _color
Definition: layer.h:57
virtual const std::string name() const
Definition: layer.cpp:81
std::string _name
Definition: layer.h:55
static bool isBlank(const std::string str)
Definition: string_helper.h:49
Layer::Layer ( const std::string  name,
const MetaLineWidthByValue  lineWidth 
)

Definition at line 36 of file layer.cpp.

36  :
39  _name(name),
40  _lineWidth(lineWidth),
41  _linepattern(nullptr),
42  _isFrozen(false) {
43  assert(!StringHelper::isBlank(name) && "Name cannot be blank");
44 }
DxfLinePatternByValue_CSPtr _linepattern
Definition: layer.h:58
bool _isFrozen
Definition: layer.h:59
virtual const std::string name() const
Definition: layer.cpp:81
MetaLineWidthByValue _lineWidth
Definition: layer.h:56
std::string _name
Definition: layer.h:55
static bool isBlank(const std::string str)
Definition: string_helper.h:49
virtual lc::Layer::~Layer ( )
virtualdefault
Layer::Layer ( const builder::LayerBuilder builder)
private

Definition at line 56 of file layer.cpp.

56  :
59  _name(builder.name()),
60  _lineWidth(builder.lineWidth()),
61  _color(builder.color()),
62  _linepattern(builder.linePattern()),
63  _isFrozen(builder.isFrozen()) {
64 }
DxfLinePatternByValue_CSPtr _linepattern
Definition: layer.h:58
DxfLinePatternByValue_CSPtr linePattern() const
Definition: layer.cpp:32
bool _isFrozen
Definition: layer.h:59
bool isFrozen() const
Definition: layer.cpp:36
Color _color
Definition: layer.h:57
const MetaLineWidthByValue & lineWidth() const
Definition: layer.cpp:24
MetaLineWidthByValue _lineWidth
Definition: layer.h:56
std::string _name
Definition: layer.h:55
const std::string & name() const
Definition: layer.cpp:20
const Color & color() const
Definition: layer.cpp:28

Member Function Documentation

Color Layer::color ( ) const

Definition at line 66 of file layer.cpp.

66  {
67  return _color;
68 }
Color _color
Definition: layer.h:57
virtual const std::string lc::Layer::id ( ) const
inlinevirtual

ID or primary key of this MetaType. This can be used in a storage manager to identify each individual meta type.

Implements lc::MetaType.

Definition at line 31 of file layer.h.

31  {
32  return Layer::LCMETANAME() + "_" + _name;
33  }
static const std::string LCMETANAME()
Definition: layer.h:38
std::string _name
Definition: layer.h:55
bool Layer::isFrozen ( ) const

Definition at line 77 of file layer.cpp.

77  {
78  return _isFrozen;
79 }
bool _isFrozen
Definition: layer.h:59
static const std::string lc::Layer::LCMETANAME ( )
inlinestatic

Definition at line 38 of file layer.h.

38  {
39  return "_LAYER";
40  }
DxfLinePatternByValue_CSPtr Layer::linePattern ( ) const

Definition at line 73 of file layer.cpp.

73  {
74  return _linepattern;
75 }
DxfLinePatternByValue_CSPtr _linepattern
Definition: layer.h:58
MetaLineWidthByValue Layer::lineWidth ( ) const

Definition at line 69 of file layer.cpp.

69  {
70  return _lineWidth;
71 }
MetaLineWidthByValue _lineWidth
Definition: layer.h:56
virtual const std::string lc::Layer::metaTypeID ( ) const
inlinevirtual

metaTypeName, for example '_LAYER' this method isn't meant to be used for RTTI purpose, do use dynamic_casts or static_casts for that.

Implements lc::EntityMetaType.

Definition at line 35 of file layer.h.

35  {
36  return Layer::LCMETANAME();
37  }
static const std::string LCMETANAME()
Definition: layer.h:38
const std::string Layer::name ( ) const
virtual

Name of this meta type, for layer this can be '0' 'My Layer' etc, for LineStyles this can be 'DASHDOT' .

Implements lc::DocumentMetaType.

Definition at line 81 of file layer.cpp.

81  {
82  return _name;
83 }
std::string _name
Definition: layer.h:55
bool lc::Layer::operator== ( const Layer layer) const
inline

Definition at line 48 of file layer.h.

48  {
49  return (layer._name == _name);
50  }
std::string _name
Definition: layer.h:55

Friends And Related Function Documentation

friend class builder::LayerBuilder
friend

Definition at line 14 of file layer.h.

std::ostream& operator<< ( std::ostream &  os,
const Layer layer 
)
friend

Definition at line 61 of file layer.h.

61  {
62  os << "Layer(name" << layer.name() << " lineWidth=" << layer.lineWidth() << " color=" << layer.color() << ")" << std::endl;
63  return os;
64  }

Member Data Documentation

Color lc::Layer::_color
private

Definition at line 57 of file layer.h.

bool lc::Layer::_isFrozen
private

Definition at line 59 of file layer.h.

DxfLinePatternByValue_CSPtr lc::Layer::_linepattern
private

Definition at line 58 of file layer.h.

MetaLineWidthByValue lc::Layer::_lineWidth
private

Definition at line 56 of file layer.h.

std::string lc::Layer::_name
private

Definition at line 55 of file layer.h.


The documentation for this class was generated from the following files: