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

#include <document.h>

Inheritance diagram for lc::Document:

Public Member Functions

 Document ()
 
virtual ~Document ()
 
virtual Nano::Signal< void(const
lc::BeginProcessEvent &)> & 
beginProcessEvent ()
 begins a Process Event More...
 
virtual Nano::Signal< void(const
lc::CommitProcessEvent &)> & 
commitProcessEvent ()
 commits a Process Event More...
 
virtual Nano::Signal< void(const
lc::AddEntityEvent &)> & 
addEntityEvent ()
 Event to add an Entity. More...
 
virtual Nano::Signal< void(const
lc::ReplaceEntityEvent &)> & 
replaceEntityEvent ()
 Event to replace an Entity. More...
 
virtual Nano::Signal< void(const
lc::RemoveEntityEvent &)> & 
removeEntityEvent ()
 Event to remove an Entity. More...
 
virtual Nano::Signal< void(const
lc::RemoveLayerEvent &)> & 
removeLayerEvent ()
 Event to remove an layer. More...
 
virtual Nano::Signal< void(const
lc::AddLayerEvent &)> & 
addLayerEvent ()
 Event to add a layer. More...
 
virtual Nano::Signal< void(const
lc::ReplaceLayerEvent &)> & 
replaceLayerEvent ()
 Event to replace a layer. More...
 
virtual Nano::Signal< void(const
lc::RemoveLinePatternEvent &)> & 
removeLinePatternEvent ()
 Event to remove a line pattern. More...
 
virtual Nano::Signal< void(const
lc::AddLinePatternEvent &)> & 
addLinePatternEvent ()
 Event to add a line pattern. More...
 
virtual Nano::Signal< void(const
lc::ReplaceLinePatternEvent &)> & 
replaceLinePatternEvent ()
 Event to replace a line pattern. More...
 
virtual Nano::Signal< void(const
NewWaitingCustomEntityEvent &)> & 
newWaitingCustomEntityEvent ()
 Event called when an unmanaged entity is added to the document. More...
 
virtual void insertEntity (entity::CADEntity_CSPtr cadEntity)=0
 add an entity to document. More...
 
virtual void removeEntity (entity::CADEntity_CSPtr entity)=0
 removes an entity from the document. More...
 
virtual void addDocumentMetaType (DocumentMetaType_CSPtr dmt)=0
 add a new layer to the document More...
 
virtual void removeDocumentMetaType (DocumentMetaType_CSPtr dmt)=0
 remove a layer from the document More...
 
virtual void replaceDocumentMetaType (DocumentMetaType_CSPtr oldDmt, DocumentMetaType_CSPtr newDmt)=0
 remove a layer from the document More...
 
virtual EntityContainer
< entity::CADEntity_CSPtr > 
entitiesByLayer (Layer_CSPtr layer)=0
 findEntitiesByLayer rturn a entities container with all entities on the given layer More...
 
virtual EntityContainer
< entity::CADEntity_CSPtr > 
entitiesByBlock (Block_CSPtr block)=0
 Search entities in a given block. More...
 
virtual EntityContainer
< entity::CADEntity_CSPtr > & 
entityContainer ()=0
 entityContainer Return a copy of all entities within the document More...
 
virtual std::map< std::string,
Layer_CSPtr > 
allLayers () const =0
 Returns all layers. More...
 
virtual std::map< std::string,
DocumentMetaType_CSPtr,
lc::StringHelper::cmpCaseInsensetive
allMetaTypes ()=0
 
virtual Layer_CSPtr layerByName (const std::string &layerName) const =0
 return a layer by it's name More...
 
virtual DxfLinePatternByValue_CSPtr linePatternByName (const std::string &linePatternName) const =0
 return a line pattern by it's name More...
 
virtual std::vector
< DxfLinePatternByValue_CSPtr > 
linePatterns () const =0
 return all line patterns More...
 
virtual std::vector< Block_CSPtr > blocks () const =0
 
virtual std::unordered_set
< entity::Insert_CSPtr > 
waitingCustomEntities (const std::string &pluginName)=0
 

Protected Member Functions

virtual void execute (operation::DocumentOperation_SPtr operation)=0
 execute the given operations within the document More...
 
virtual void begin (operation::DocumentOperation_SPtr operation)=0
 begins an operation More...
 
virtual void commit (operation::DocumentOperation_SPtr operation)=0
 commits an operation More...
 
virtual void operationStart (operation::DocumentOperation_SPtr operation)
 operationStart Starts the operation. More...
 
virtual void operationFinnish (operation::DocumentOperation_SPtr operation)
 operationFinnish Finishes the operation. More...
 
virtual void operationProcess (operation::DocumentOperation_SPtr operation)
 operationProcess process the operation. More...
 

Private Attributes

Nano::Signal< void(const
lc::BeginProcessEvent &)> 
_beginProcessEvent
 
Nano::Signal< void(const
lc::CommitProcessEvent &)> 
_commitProcessEvent
 
Nano::Signal< void(const
lc::AddEntityEvent &)> 
_addEntityEvent
 
Nano::Signal< void(const
lc::ReplaceEntityEvent &)> 
_replaceEntityEvent
 
Nano::Signal< void(const
lc::RemoveEntityEvent &)> 
_removeEntityEvent
 
Nano::Signal< void(const
lc::AddLayerEvent &)> 
_addLayerEvent
 
Nano::Signal< void(const
lc::ReplaceLayerEvent &)> 
_replaceLayerEvent
 
Nano::Signal< void(const
lc::RemoveLayerEvent &)> 
_removeLayerEvent
 
Nano::Signal< void(const
lc::AddLinePatternEvent &)> 
_addLinePatternEvent
 
Nano::Signal< void(const
lc::ReplaceLinePatternEvent &)> 
_replaceLinePatternEvent
 
Nano::Signal< void(const
lc::RemoveLinePatternEvent &)> 
_removeLinePatternEvent
 
Nano::Signal< void(const
lc::NewWaitingCustomEntityEvent &)> 
_newWaitingCustomEntityEvent
 

Friends

class lc::operation::DocumentOperation
 

Detailed Description

Definition at line 40 of file document.h.

Constructor & Destructor Documentation

Document::Document ( )

Definition at line 13 of file document.cpp.

13  {
15 }
void addDocument(Document *document)
Definition: documentlist.cpp:9
static DocumentList & getInstance()
Definition: documentlist.h:12
Document::~Document ( )
virtual

Definition at line 17 of file document.cpp.

17  {
19 }
void removeDocument(Document *document)
static DocumentList & getInstance()
Definition: documentlist.h:12

Member Function Documentation

virtual void lc::Document::addDocumentMetaType ( DocumentMetaType_CSPtr  dmt)
pure virtual

add a new layer to the document

Parameters
layerlayer to be added.

Implemented in lc::DocumentImpl.

Nano::Signal< void(const lc::AddEntityEvent &)> & Document::addEntityEvent ( )
virtual

Event to add an Entity.

Definition at line 38 of file document.cpp.

38  {
39  return this->_addEntityEvent;
40 }
Nano::Signal< void(const lc::AddEntityEvent &)> _addEntityEvent
Definition: document.h:235
Nano::Signal< void(const lc::AddLayerEvent &)> & Document::addLayerEvent ( )
virtual

Event to add a layer.

Definition at line 54 of file document.cpp.

54  {
55  return this->_addLayerEvent;
56 }
Nano::Signal< void(const lc::AddLayerEvent &)> _addLayerEvent
Definition: document.h:239
Nano::Signal< void(const lc::AddLinePatternEvent &)> & Document::addLinePatternEvent ( )
virtual

Event to add a line pattern.

Definition at line 66 of file document.cpp.

66  {
67  return this->_addLinePatternEvent;
68 }
Nano::Signal< void(const lc::AddLinePatternEvent &)> _addLinePatternEvent
Definition: document.h:243
virtual std::map<std::string, Layer_CSPtr> lc::Document::allLayers ( ) const
pure virtual

Returns all layers.

Implemented in lc::DocumentImpl.

virtual std::map<std::string, DocumentMetaType_CSPtr, lc::StringHelper::cmpCaseInsensetive> lc::Document::allMetaTypes ( )
pure virtual

Implemented in lc::DocumentImpl.

virtual void lc::Document::begin ( operation::DocumentOperation_SPtr  operation)
protectedpure virtual

begins an operation

Parameters
operation

Implemented in lc::DocumentImpl.

Nano::Signal< void(const lc::BeginProcessEvent &)> & Document::beginProcessEvent ( )
virtual

begins a Process Event

Definition at line 30 of file document.cpp.

30  {
31  return _beginProcessEvent;
32 }
Nano::Signal< void(const lc::BeginProcessEvent &)> _beginProcessEvent
Definition: document.h:232
virtual std::vector<Block_CSPtr> lc::Document::blocks ( ) const
pure virtual
Returns
all blocks

Implemented in lc::DocumentImpl.

virtual void lc::Document::commit ( operation::DocumentOperation_SPtr  operation)
protectedpure virtual

commits an operation

Parameters
operation

Implemented in lc::DocumentImpl.

Nano::Signal< void(const lc::CommitProcessEvent &)> & Document::commitProcessEvent ( )
virtual

commits a Process Event

Definition at line 34 of file document.cpp.

34  {
35  return _commitProcessEvent;
36 }
Nano::Signal< void(const lc::CommitProcessEvent &)> _commitProcessEvent
Definition: document.h:233
virtual EntityContainer<entity::CADEntity_CSPtr> lc::Document::entitiesByBlock ( Block_CSPtr  block)
pure virtual

Search entities in a given block.

Parameters
block
Returns
EntityContainer

Implemented in lc::DocumentImpl.

virtual EntityContainer<entity::CADEntity_CSPtr> lc::Document::entitiesByLayer ( Layer_CSPtr  layer)
pure virtual

findEntitiesByLayer rturn a entities container with all entities on the given layer

Parameters
layer
Returns

Implemented in lc::DocumentImpl.

virtual EntityContainer<entity::CADEntity_CSPtr>& lc::Document::entityContainer ( )
pure virtual

entityContainer Return a copy of all entities within the document

Returns

Implemented in lc::DocumentImpl.

virtual void lc::Document::execute ( operation::DocumentOperation_SPtr  operation)
protectedpure virtual

execute the given operations within the document

Parameters
operation

Implemented in lc::DocumentImpl.

virtual void lc::Document::insertEntity ( entity::CADEntity_CSPtr  cadEntity)
pure virtual

add an entity to document.

Parameters
layerNameName of layer to which entity is to be added
cadEntityEntity to be added

Implemented in lc::DocumentImpl.

virtual Layer_CSPtr lc::Document::layerByName ( const std::string &  layerName) const
pure virtual

return a layer by it's name

Implemented in lc::DocumentImpl.

virtual DxfLinePatternByValue_CSPtr lc::Document::linePatternByName ( const std::string &  linePatternName) const
pure virtual

return a line pattern by it's name

Implemented in lc::DocumentImpl.

virtual std::vector<DxfLinePatternByValue_CSPtr> lc::Document::linePatterns ( ) const
pure virtual

return all line patterns

Implemented in lc::DocumentImpl.

Nano::Signal< void(const NewWaitingCustomEntityEvent &)> & Document::newWaitingCustomEntityEvent ( )
virtual

Event called when an unmanaged entity is added to the document.

Definition at line 74 of file document.cpp.

74  {
76 }
Nano::Signal< void(const lc::NewWaitingCustomEntityEvent &)> _newWaitingCustomEntityEvent
Definition: document.h:247
void Document::operationFinnish ( operation::DocumentOperation_SPtr  operation)
protectedvirtual

operationFinnish Finishes the operation.

Parameters
operation

Definition at line 24 of file document.cpp.

24  {
25  operation->finnish();
26 }
void Document::operationProcess ( operation::DocumentOperation_SPtr  operation)
protectedvirtual

operationProcess process the operation.

Parameters
operation

Definition at line 27 of file document.cpp.

27  {
28  operation->process();
29 }
void Document::operationStart ( operation::DocumentOperation_SPtr  operation)
protectedvirtual

operationStart Starts the operation.

Parameters
operation

Definition at line 21 of file document.cpp.

21  {
22  operation->start();
23 }
virtual void lc::Document::removeDocumentMetaType ( DocumentMetaType_CSPtr  dmt)
pure virtual

remove a layer from the document

Parameters
layerlayer to be added.

Implemented in lc::DocumentImpl.

virtual void lc::Document::removeEntity ( entity::CADEntity_CSPtr  entity)
pure virtual

removes an entity from the document.

Parameters
idID of the entity to be removed.

Implemented in lc::DocumentImpl.

Nano::Signal< void(const lc::RemoveEntityEvent &)> & Document::removeEntityEvent ( )
virtual

Event to remove an Entity.

Definition at line 46 of file document.cpp.

46  {
47  return this->_removeEntityEvent;
48 }
Nano::Signal< void(const lc::RemoveEntityEvent &)> _removeEntityEvent
Definition: document.h:237
Nano::Signal< void(const lc::RemoveLayerEvent &)> & Document::removeLayerEvent ( )
virtual

Event to remove an layer.

Definition at line 50 of file document.cpp.

50  {
51  return this->_removeLayerEvent;
52 }
Nano::Signal< void(const lc::RemoveLayerEvent &)> _removeLayerEvent
Definition: document.h:241
Nano::Signal< void(const lc::RemoveLinePatternEvent &)> & Document::removeLinePatternEvent ( )
virtual

Event to remove a line pattern.

Definition at line 62 of file document.cpp.

62  {
63  return this->_removeLinePatternEvent;
64 }
Nano::Signal< void(const lc::RemoveLinePatternEvent &)> _removeLinePatternEvent
Definition: document.h:245
virtual void lc::Document::replaceDocumentMetaType ( DocumentMetaType_CSPtr  oldDmt,
DocumentMetaType_CSPtr  newDmt 
)
pure virtual

remove a layer from the document

Implemented in lc::DocumentImpl.

Nano::Signal< void(const lc::ReplaceEntityEvent &)> & Document::replaceEntityEvent ( )
virtual

Event to replace an Entity.

Definition at line 42 of file document.cpp.

42  {
43  return this->_replaceEntityEvent;
44 }
Nano::Signal< void(const lc::ReplaceEntityEvent &)> _replaceEntityEvent
Definition: document.h:236
Nano::Signal< void(const lc::ReplaceLayerEvent &)> & Document::replaceLayerEvent ( )
virtual

Event to replace a layer.

Definition at line 58 of file document.cpp.

58  {
59  return this->_replaceLayerEvent;
60 }
Nano::Signal< void(const lc::ReplaceLayerEvent &)> _replaceLayerEvent
Definition: document.h:240
Nano::Signal< void(const lc::ReplaceLinePatternEvent &)> & Document::replaceLinePatternEvent ( )
virtual

Event to replace a line pattern.

Definition at line 70 of file document.cpp.

70  {
71  return this->_replaceLinePatternEvent;
72 }
Nano::Signal< void(const lc::ReplaceLinePatternEvent &)> _replaceLinePatternEvent
Definition: document.h:244
virtual std::unordered_set<entity::Insert_CSPtr> lc::Document::waitingCustomEntities ( const std::string &  pluginName)
pure virtual
Returns
all the custom entities which aren't managed by a plugin

Implemented in lc::DocumentImpl.

Friends And Related Function Documentation

friend class lc::operation::DocumentOperation
friend

Definition at line 229 of file document.h.

Member Data Documentation

Nano::Signal<void(const lc::AddEntityEvent&)> lc::Document::_addEntityEvent
private

Definition at line 235 of file document.h.

Nano::Signal<void(const lc::AddLayerEvent&)> lc::Document::_addLayerEvent
private

Definition at line 239 of file document.h.

Nano::Signal<void(const lc::AddLinePatternEvent&)> lc::Document::_addLinePatternEvent
private

Definition at line 243 of file document.h.

Nano::Signal<void(const lc::BeginProcessEvent&)> lc::Document::_beginProcessEvent
private

Definition at line 232 of file document.h.

Nano::Signal<void(const lc::CommitProcessEvent&)> lc::Document::_commitProcessEvent
private

Definition at line 233 of file document.h.

Nano::Signal<void(const lc::NewWaitingCustomEntityEvent&)> lc::Document::_newWaitingCustomEntityEvent
private

Definition at line 247 of file document.h.

Nano::Signal<void(const lc::RemoveEntityEvent&)> lc::Document::_removeEntityEvent
private

Definition at line 237 of file document.h.

Nano::Signal<void(const lc::RemoveLayerEvent&)> lc::Document::_removeLayerEvent
private

Definition at line 241 of file document.h.

Nano::Signal<void(const lc::RemoveLinePatternEvent&)> lc::Document::_removeLinePatternEvent
private

Definition at line 245 of file document.h.

Nano::Signal<void(const lc::ReplaceEntityEvent&)> lc::Document::_replaceEntityEvent
private

Definition at line 236 of file document.h.

Nano::Signal<void(const lc::ReplaceLayerEvent&)> lc::Document::_replaceLayerEvent
private

Definition at line 240 of file document.h.

Nano::Signal<void(const lc::ReplaceLinePatternEvent&)> lc::Document::_replaceLinePatternEvent
private

Definition at line 244 of file document.h.


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