9 #include <nano-signal-slot/nano_signal_slot.hpp>
15 #include <unordered_set>
57 virtual Nano::Signal<void(const lc::AddEntityEvent&)>&
addEntityEvent();
77 virtual Nano::Signal<void(const lc::AddLayerEvent&)>&
addLayerEvent();
110 virtual void execute(operation::DocumentOperation_SPtr operation) = 0;
116 virtual void begin(operation::DocumentOperation_SPtr operation) = 0;
122 virtual void commit(operation::DocumentOperation_SPtr operation) = 0;
129 virtual void operationStart(operation::DocumentOperation_SPtr operation);
149 virtual void insertEntity(entity::CADEntity_CSPtr cadEntity) = 0;
154 virtual void removeEntity(entity::CADEntity_CSPtr entity) = 0;
199 virtual std::map<std::string, Layer_CSPtr>
allLayers()
const = 0;
201 virtual std::map<std::string, DocumentMetaType_CSPtr, lc::StringHelper::cmpCaseInsensetive>
allMetaTypes() = 0;
206 virtual Layer_CSPtr
layerByName(
const std::string& layerName)
const = 0;
211 virtual DxfLinePatternByValue_CSPtr
linePatternByName(
const std::string& linePatternName)
const = 0;
216 virtual std::vector<DxfLinePatternByValue_CSPtr>
linePatterns()
const = 0;
221 virtual std::vector<Block_CSPtr>
blocks()
const = 0;
226 virtual std::unordered_set<entity::Insert_CSPtr>
waitingCustomEntities(
const std::string& pluginName) = 0;
virtual Nano::Signal< void(const lc::ReplaceLayerEvent &)> & replaceLayerEvent()
Event to replace a layer.
virtual void operationFinnish(operation::DocumentOperation_SPtr operation)
operationFinnish Finishes the operation.
virtual Nano::Signal< void(const lc::RemoveLayerEvent &)> & removeLayerEvent()
Event to remove an layer.
virtual Layer_CSPtr layerByName(const std::string &layerName) const =0
return a layer by it's name
virtual Nano::Signal< void(const lc::AddEntityEvent &)> & addEntityEvent()
Event to add an Entity.
Nano::Signal< void(const lc::NewWaitingCustomEntityEvent &)> _newWaitingCustomEntityEvent
virtual void removeEntity(entity::CADEntity_CSPtr entity)=0
removes an entity from the document.
virtual void operationStart(operation::DocumentOperation_SPtr operation)
operationStart Starts the operation.
virtual void operationProcess(operation::DocumentOperation_SPtr operation)
operationProcess process the operation.
virtual void execute(operation::DocumentOperation_SPtr operation)=0
execute the given operations within the document
virtual Nano::Signal< void(const lc::AddLinePatternEvent &)> & addLinePatternEvent()
Event to add a line pattern.
virtual EntityContainer< entity::CADEntity_CSPtr > & entityContainer()=0
entityContainer Return a copy of all entities within the document
Nano::Signal< void(const lc::ReplaceEntityEvent &)> _replaceEntityEvent
Nano::Signal< void(const lc::AddLayerEvent &)> _addLayerEvent
virtual void insertEntity(entity::CADEntity_CSPtr cadEntity)=0
add an entity to document.
Nano::Signal< void(const lc::BeginProcessEvent &)> _beginProcessEvent
virtual std::unordered_set< entity::Insert_CSPtr > waitingCustomEntities(const std::string &pluginName)=0
virtual void begin(operation::DocumentOperation_SPtr operation)=0
begins an operation
virtual EntityContainer< entity::CADEntity_CSPtr > entitiesByLayer(Layer_CSPtr layer)=0
findEntitiesByLayer rturn a entities container with all entities on the given layer ...
Nano::Signal< void(const lc::AddLinePatternEvent &)> _addLinePatternEvent
virtual std::map< std::string, Layer_CSPtr > allLayers() const =0
Returns all layers.
virtual DxfLinePatternByValue_CSPtr linePatternByName(const std::string &linePatternName) const =0
return a line pattern by it's name
DECLARE_SHORT_SHARED_PTR(Document)
virtual std::vector< Block_CSPtr > blocks() const =0
virtual EntityContainer< entity::CADEntity_CSPtr > entitiesByBlock(Block_CSPtr block)=0
Search entities in a given block.
virtual Nano::Signal< void(const lc::BeginProcessEvent &)> & beginProcessEvent()
begins a Process Event
Nano::Signal< void(const lc::RemoveLayerEvent &)> _removeLayerEvent
Nano::Signal< void(const lc::ReplaceLayerEvent &)> _replaceLayerEvent
virtual void removeDocumentMetaType(DocumentMetaType_CSPtr dmt)=0
remove a layer from the document
virtual std::vector< DxfLinePatternByValue_CSPtr > linePatterns() const =0
return all line patterns
virtual Nano::Signal< void(const lc::RemoveLinePatternEvent &)> & removeLinePatternEvent()
Event to remove a line pattern.
Nano::Signal< void(const lc::AddEntityEvent &)> _addEntityEvent
Nano::Signal< void(const lc::ReplaceLinePatternEvent &)> _replaceLinePatternEvent
Nano::Signal< void(const lc::RemoveEntityEvent &)> _removeEntityEvent
virtual void addDocumentMetaType(DocumentMetaType_CSPtr dmt)=0
add a new layer to the document
virtual Nano::Signal< void(const lc::RemoveEntityEvent &)> & removeEntityEvent()
Event to remove an Entity.
virtual Nano::Signal< void(const lc::ReplaceLinePatternEvent &)> & replaceLinePatternEvent()
Event to replace a line pattern.
virtual std::map< std::string, DocumentMetaType_CSPtr, lc::StringHelper::cmpCaseInsensetive > allMetaTypes()=0
Nano::Signal< void(const lc::CommitProcessEvent &)> _commitProcessEvent
virtual Nano::Signal< void(const lc::CommitProcessEvent &)> & commitProcessEvent()
commits a Process Event
Nano::Signal< void(const lc::RemoveLinePatternEvent &)> _removeLinePatternEvent
virtual Nano::Signal< void(const lc::ReplaceEntityEvent &)> & replaceEntityEvent()
Event to replace an Entity.
virtual Nano::Signal< void(const lc::AddLayerEvent &)> & addLayerEvent()
Event to add a layer.
virtual Nano::Signal< void(const NewWaitingCustomEntityEvent &)> & newWaitingCustomEntityEvent()
Event called when an unmanaged entity is added to the document.
virtual void commit(operation::DocumentOperation_SPtr operation)=0
commits an operation
virtual void replaceDocumentMetaType(DocumentMetaType_CSPtr oldDmt, DocumentMetaType_CSPtr newDmt)=0
remove a layer from the document