QCAD
Open Source 2D CAD
RDocument.h
Go to the documentation of this file.
1 
20 #ifndef RDOCUMENT_H
21 #define RDOCUMENT_H
22 
23 #include "core_global.h"
24 
25 #include <QString>
26 #include <QSharedPointer>
27 
28 #include "RBlock.h"
29 #include "RBlockReferenceEntity.h"
30 #include "RDocumentVariables.h"
31 #include "REntity.h"
32 #include "RNonCopyable.h"
33 #include "RRequireHeap.h"
34 #include "RSpatialIndex.h"
35 #include "RTransactionStack.h"
36 #include "RUcs.h"
37 #include "RLayer.h"
38 #include "RLayerState.h"
39 #include "RLinetype.h"
40 #include "RView.h"
41 
42 class RVector;
43 class RStorage;
44 
45 #ifndef RDEFAULT_QVARIANT
46 #define RDEFAULT_QVARIANT QVariant()
47 #endif
48 
49 #ifndef RDEFAULT_QLIST_RBOX
50 #define RDEFAULT_QLIST_RBOX QList<RBox>()
51 #endif
52 
53 #ifndef RDEFAULT_MIN1
54 #define RDEFAULT_MIN1 -1
55 #endif
56 
57 #define RDEFAULT_QLIST_RS_ENTITYTYPE QList<RS::EntityType>()
58 
59 
73 public:
74  RDocument(RStorage& storage, RSpatialIndex& spatialIndex);
75  virtual ~RDocument();
76 
77  void init(bool beforeLoad=false);
78  void initLinetypes(RTransaction* transaction=NULL);
79  QList<QSharedPointer<RObject> > getDefaultLinetypes();
80 
81  RStorage& getStorage();
82  const RStorage& getStorage() const;
83  RSpatialIndex& getSpatialIndex();
84  const RSpatialIndex& getSpatialIndex() const;
85  RSpatialIndex* getSpatialIndexForBlock(RBlock::Id blockId) const;
86  RSpatialIndex* getSpatialIndexForCurrentBlock() const;
87  RTransactionStack& getTransactionStack();
88 
89  void clear(bool beforeLoad=false);
90 
91  REntity::Id queryClosestXY(
92  const RVector& wcsPosition,
93  double range,
94  bool draft,
95  double strictRange = RMAXDOUBLE,
96  bool includeLockedLayers = true,
97  bool selectedOnly = false
98  );
99  REntity::Id queryClosestXY(
100  QSet<REntity::Id>& candidates,
101  const RVector& wcsPosition,
102  double range,
103  bool draft,
104  double strictRange = RMAXDOUBLE
105  );
106 
107  QSet<RObject::Id> queryAllObjects() const;
108  QSet<RObject::Id> querySelectedLayers() const;
109  QSet<REntity::Id> queryAllVisibleEntities() const;
110  QSet<REntity::Id> queryAllEntities(bool undone = false, bool allBlocks = false, RS::EntityType type = RS::EntityAll) const;
111  QSet<REntity::Id> queryAllEntities(bool undone, bool allBlocks, QList<RS::EntityType> types) const;
112  QSet<REntity::Id> queryWorkingSetEntities() const;
113  QSet<RUcs::Id> queryAllUcs() const;
114  QSet<RLayer::Id> queryAllLayers() const;
115  QSet<RLayerState::Id> queryAllLayerStates() const;
116  QSet<RBlock::Id> queryAllBlocks() const;
117  QSet<RBlock::Id> queryAllLayoutBlocks(bool includeModelSpace = false) const;
118  QSet<RBlock::Id> queryAllLayouts() const;
119  QSet<RView::Id> queryAllViews() const;
120  QSet<RLinetype::Id> queryAllLinetypes() const;
121 
122  QSet<REntity::Id> queryLayerEntities(RLayer::Id layerId, bool allBlocks = false) const;
123  bool hasBlockEntities(RBlock::Id blockId) const;
124  QSet<REntity::Id> queryBlockEntities(RBlock::Id blockId) const;
125  QSet<REntity::Id> queryLayerBlockEntities(RLayer::Id layerId, RBlock::Id blockId) const;
126  QSet<REntity::Id> queryChildEntities(REntity::Id parentId, RS::EntityType type = RS::EntityAll) const;
127  bool hasChildEntities(REntity::Id parentId) const;
128  QSet<REntity::Id> queryBlockReferences(RBlock::Id blockId) const;
129  QSet<REntity::Id> queryAllBlockReferences() const;
130  QSet<REntity::Id> queryAllViewports() const;
131 
132  QSet<REntity::Id> queryContainedEntities(const RBox& box) const;
133 
134  QSet<REntity::Id> queryInfiniteEntities() const;
135 
136  QSet<REntity::Id> queryIntersectedEntitiesXYFast(const RBox& box);
137  QSet<REntity::Id> queryIntersectedShapesXYFast(const RBox& box, bool noInfiniteEntities = false);
138 
139  QSet<REntity::Id> queryIntersectedEntitiesXY(const RBox& box,
140  bool checkBoundingBoxOnly=false,
141  bool includeLockedLayers=true,
142  RBlock::Id blockId = RBlock::INVALID_ID,
143  const QList<RS::EntityType>& filter = RDEFAULT_QLIST_RS_ENTITYTYPE,
144  bool selectedOnly = false,
145  RLayer::Id layerId = RLayer::INVALID_ID) const;
146 
147  QMap<REntity::Id, QSet<int> > queryIntersectedShapesXY(const RBox& box,
148  bool checkBoundingBoxOnly=false,
149  bool includeLockedLayers=true,
150  RBlock::Id blockId = RBlock::INVALID_ID,
151  const QList<RS::EntityType>& filter = RDEFAULT_QLIST_RS_ENTITYTYPE,
152  bool selectedOnly = false,
153  RLayer::Id layerId = RLayer::INVALID_ID) const;
154 
155  QSet<REntity::Id> queryContainedEntitiesXY(const RBox& box) const;
156 
157  QSet<REntity::Id> querySelectedEntities() const;
158 
159  QSet<REntity::Id> queryConnectedEntities(REntity::Id entityId, double tolerance = RS::PointTolerance, RLayer::Id layerId = RLayer::INVALID_ID);
160 
161  QSet<RObject::Id> queryPropertyEditorObjects();
162 
163  QSharedPointer<RDocumentVariables> queryDocumentVariables() const;
164  QSharedPointer<RDocumentVariables> queryDocumentVariablesDirect() const;
165  QSharedPointer<RObject> queryObject(RObject::Id objectId) const;
166  QSharedPointer<RObject> queryObjectDirect(RObject::Id objectId) const;
167  QSharedPointer<RObject> queryObjectByHandle(RObject::Handle objectHandle) const;
168  QSharedPointer<REntity> queryEntity(REntity::Id entityId) const;
169  QSharedPointer<REntity> queryEntityDirect(REntity::Id entityId) const;
170  QSharedPointer<REntity> queryVisibleEntityDirect(REntity::Id entityId) const;
171  QSharedPointer<RUcs> queryUcs(RUcs::Id ucsId) const;
172  QSharedPointer<RUcs> queryUcs(const QString& ucsName) const;
173  QSharedPointer<RLayer> queryLayer(RLayer::Id layerId) const;
174  QSharedPointer<RLayer> queryLayerDirect(RLayer::Id layerId) const;
175  QSharedPointer<RLayer> queryLayer(const QString& layerName) const;
176  QSharedPointer<RLayerState> queryLayerState(RLayerState::Id layerStateId) const;
177  QSharedPointer<RLayerState> queryLayerStateDirect(RLayerState::Id layerStateId) const;
178  QSharedPointer<RLayerState> queryLayerState(const QString& layerStateName) const;
179  QSharedPointer<RLayout> queryLayout(RLayout::Id layoutId) const;
180  QSharedPointer<RLayout> queryLayoutDirect(RLayout::Id layoutId) const;
181  QSharedPointer<RLayout> queryLayout(const QString& layoutName) const;
182  QSharedPointer<RBlock> queryBlock(RBlock::Id blockId) const;
183  QSharedPointer<RBlock> queryBlockDirect(RBlock::Id blockId) const;
184  QSharedPointer<RBlock> queryBlockDirect(const QString& blockName) const;
185  QSharedPointer<RBlock> queryBlock(const QString& blockName) const;
186  QSharedPointer<RView> queryView(RView::Id viewId) const;
187  QSharedPointer<RView> queryView(const QString& viewName) const;
188  QSharedPointer<RLinetype> queryLinetype(RLinetype::Id linetypeId) const;
189  QSharedPointer<RLinetype> queryLinetype(const QString& linetypeName) const;
190 
191  int countSelectedEntities() const;
192 
193  void clearSelection(
194  QSet<REntity::Id>* affectedEntities=NULL
195  );
196 
197  void selectAllEntities(QSet<REntity::Id>* affectedEntities = NULL);
198 
199  void selectEntity(
200  REntity::Id entityId,
201  bool add=false,
202  QSet<REntity::Id>* affectedEntities=NULL
203  );
204  void deselectEntity(
205  REntity::Id entityId,
206  QSet<REntity::Id>* affectedEntities=NULL
207  );
208  int selectEntities(
209  const QSet<REntity::Id>& entityId,
210  bool add=false,
211  QSet<REntity::Id>* affectedEntities=NULL
212  );
213  int deselectEntities(
214  const QSet<REntity::Id>& entityId,
215  QSet<REntity::Id>* affectedEntities=NULL
216  );
217  bool isSelected(REntity::Id entityId);
218  bool isSelectedWorkingSet(REntity::Id entityId);
219  bool isLayerLocked(RLayer::Id layerId) const;
220  bool isLayerLocked(const RLayer& layer) const;
221  bool isParentLayerLocked(RLayer::Id layerId) const;
222  bool isParentLayerLocked(const RLayer& layer) const;
223 
224  bool isEntityEditable(REntity::Id entityId) const;
225  //bool isEntityLayerLocked(REntity::Id entityId) const;
226 
227  bool isLayerOff(RLayer::Id layerId) const;
228  bool isLayerOff(const RLayer& layer) const;
229 
230  bool isLayerOffOrFrozen(RLayer::Id layerId) const;
231  bool isLayerOffOrFrozen(const RLayer& layer) const;
232 
233  bool isLayerFrozen(RLayer::Id layerId) const;
234  bool isLayerFrozen(const RLayer& layer) const;
235  bool isLayerPlottable(RLayer::Id layerId) const;
236  bool isLayerPlottable(const RLayer& layer) const;
237  bool isLayerSnappable(RLayer::Id layerId) const;
238  bool isLayerSnappable(const RLayer& layer) const;
239  bool isParentLayerFrozen(RLayer::Id layerId) const;
240  bool isParentLayerFrozen(const RLayer& layer) const;
241  bool isBlockFrozen(RBlock::Id blockId) const;
242  bool isLayoutBlock(RBlock::Id blockId) const;
243  bool isEntityLayerFrozen(REntity::Id entityId) const;
244 
245  bool isEntityVisible(const REntity& entity, RBlock::Id blockId = RBlock::INVALID_ID) const;
246 
247  bool isParentLayerSnappable(RLayer::Id layerId) const;
248  bool isParentLayerSnappable(const RLayer& layer) const;
249 
250  bool isParentLayerPlottable(RLayer::Id layerId) const;
251  bool isParentLayerPlottable(const RLayer& layer) const;
252 
253  bool hasSelection() const;
254 
255  RBox getBoundingBox(bool ignoreHiddenLayers = true, bool ignoreEmpty = false) const;
256  RBox getSelectionBox() const;
257  RBox getEntitiesBox(QSet<REntity::Id>& ids) const;
258 
259  //void addToSpatialIndex(RObject& object, bool isNew = false);
260  void clearSpatialIndices();
261  virtual void rebuildSpatialIndex();
262  //void addToSpatialIndex(QSharedPointer<REntity> entity);
263  void addToSpatialIndex(QSharedPointer<REntity> entity);
264 
265  bool blockContainsReferences(RBlock::Id blockId, RBlock::Id referencedBlockId);
266 
267  void removeBlockFromSpatialIndex(RBlock::Id blockId);
268  bool addBlockToSpatialIndex(RBlock::Id blockId, RObject::Id ignoreBlockId);
269  virtual void removeFromSpatialIndex(QSharedPointer<REntity> entity, const QList<RBox>& boundingBoxes = RDEFAULT_QLIST_RBOX);
270  //virtual void removeFromSpatialIndex2(QSharedPointer<REntity> entity);
271 
272  void updateAllEntities();
273 
274  QList<RTransaction> undo();
275  QList<RTransaction> redo();
276  bool isUndoAvailable() const;
277  bool isRedoAvailable() const;
278 
279  void startTransactionGroup();
280  int getTransactionGroup() const;
281 
285  void setAutoTransactionGroup(bool on) {
286  autoTransactionGroup = on;
287  }
288  bool getAutoTransactionGroup() const {
289  return autoTransactionGroup;
290  }
291 
292  void resetTransactionStack();
293 
294  void setFileName(const QString& fn);
295  QString getFileName() const;
296 
297  void setFileVersion(const QString& fv);
298  QString getFileVersion() const;
299 
300  QSharedPointer<RLayer> queryCurrentLayer();
301 // RTransaction setCurrentLayer(RLayer::Id layerId);
302 // RTransaction setCurrentLayer(const QString& layerName);
303 // void setCurrentLayer(RTransaction& transaction, RLayer::Id layerId);
304 // void setCurrentLayer(RTransaction& transaction, const QString& layerName);
305  void setCurrentLayer(RLayer::Id layerId, RTransaction* transaction=NULL);
306  void setCurrentLayer(const QString& layerName, RTransaction* transaction=NULL);
307  RLayer::Id getCurrentLayerId() const;
308  QString getCurrentLayerName() const;
309 
310  void setCurrentColor(const RColor& color);
311  RColor getCurrentColor() const;
312 
313  void setCurrentLineweight(RLineweight::Lineweight lw);
314  RLineweight::Lineweight getCurrentLineweight() const;
315 
316  void setCurrentLinetype(RLinetype::Id ltId);
317  void setCurrentLinetype(const QString& name);
318  void setCurrentLinetypePattern(const RLinetypePattern& p);
319  RLinetype::Id getCurrentLinetypeId() const;
320  RLinetypePattern getCurrentLinetypePattern() const;
321 
322  QSharedPointer<RBlock> queryCurrentBlock();
323  void setCurrentBlock(RBlock::Id blockId);
324  void setCurrentBlock(const QString& blockName);
325  RBlock::Id getCurrentBlockId() const;
326  QString getCurrentBlockName() const;
327 
328  void setCurrentViewport(RObject::Id viewportId);
329  RObject::Id getCurrentViewportId();
330  bool hasCurrentViewport();
331  void unsetCurrentViewport();
332 
333 // void setSelectedBlock(RBlock::Id blockId);
334 // void setSelectedBlock(const QString& blockName);
335 // RBlock::Id getSelectedBlockId() const;
336 
337  QSharedPointer<RView> queryCurrentView();
338  void setCurrentView(RView::Id viewId);
339  void setCurrentView(const QString& viewName);
340  RView::Id getCurrentViewId() const;
341 
342  QString getTempBlockName() const;
343  QString getBlockName(RBlock::Id blockId) const;
344  QString getBlockNameFromLayout(const QString& layoutName) const;
345  QString getBlockNameFromLayout(RLayout::Id layoutId) const;
346  QSet<QString> getBlockNames(const QString& rxStr = RDEFAULT_QSTRING) const;
347  QList<RBlock::Id> sortBlocks(const QList<RBlock::Id>& blockIds) const;
348  QList<RLayer::Id> sortLayers(const QList<RLayer::Id>& layerIds) const;
349  QString getLayerName(RLayer::Id layerId) const;
350  QSet<QString> getLayerNames(const QString& rxStr = RDEFAULT_QSTRING) const;
351  QString getLayerStateName(RLayerState::Id layerStateId) const;
352  QSet<QString> getLayerStateNames(const QString& rxStr = RDEFAULT_QSTRING) const;
353  QString getLayoutName(RLayout::Id layoutId) const;
354  QSet<QString> getViewNames() const;
355 
356  bool hasLayer(const QString& layerName) const;
357  bool hasLayerStates() const;
358  bool hasLayerState(const QString& layerStateName) const;
359  bool hasBlock(const QString& blockName) const;
360  bool hasLayout(const QString& layoutName) const;
361  bool hasView(const QString& viewName) const;
362  bool hasLinetype(const QString& linetypeName) const;
363 
364  RLayer::Id getLayerId(const QString& layerName) const;
365  RLayer::Id getLayer0Id() const;
366 
367  RLayerState::Id getLayerStateId(const QString& layerStateName) const;
368 
369  RBlock::Id getBlockId(const QString& blockName) const;
370  RBlock::Id getBlockIdAuto(const QString& blockLayoutName) const;
371  RBlock::Id getModelSpaceBlockId() const;
372 
373  RLinetype::Id getLinetypeId(const QString& linetypeName) const;
375  return linetypeByLayerId;
376  }
378  return linetypeByBlockId;
379  }
380  QString getLinetypeName(RLinetype::Id linetypeId) const;
381  QString getLinetypeDescription(RLinetype::Id linetypeId) const;
382  QString getLinetypeLabel(RLinetype::Id linetypeId) const;
383  QSet<QString> getLinetypeNames() const;
384  QList<RLinetypePattern> getLinetypePatterns() const;
385  bool isByLayer(RLinetype::Id linetypeId) const;
386  bool isByBlock(RLinetype::Id linetypeId) const;
387 
388  RLineweight::Lineweight getMaxLineweight() const;
389 
390  QStringList getVariables() const;
391  void setVariable(const QString& key, const QVariant& value, bool overwrite=true);
392  QVariant getVariable(const QString& key, const QVariant& defaultValue = RDEFAULT_QVARIANT, bool useSettings = false) const;
393  bool hasVariable(const QString& key) const;
394  void removeVariable(const QString& key);
395 
396  void setKnownVariable(RS::KnownVariable key, const QVariant& value, RTransaction* transaction = NULL);
397  void setKnownVariable(RS::KnownVariable key, const RVector& value, RTransaction* transaction = NULL);
398  QVariant getKnownVariable(RS::KnownVariable key, const QVariant& defaultValue = RDEFAULT_QVARIANT) const;
399 
400  void setUnit(RS::Unit unit, RTransaction* transaction = NULL);
401  RS::Unit getUnit() const;
402 
403  void setMeasurement(RS::Measurement m, RTransaction* transaction = NULL);
404  RS::Measurement getMeasurement() const;
405 
406  bool isMetric() const;
407 
408  void setDimensionFont(const QString& f, RTransaction* transaction = NULL);
409  QString getDimensionFont() const;
410 
411  void setLinetypeScale(double v, RTransaction* transaction = NULL);
412  double getLinetypeScale() const;
413 
414  QString formatLinear(double value);
415  QString formatAngle(double value);
416 
417  void setLinearFormat(RS::LinearFormat f);
418  RS::LinearFormat getLinearFormat() const;
419  int getLinearPrecision();
420  bool showLeadingZeroes();
421  bool showTrailingZeroes();
422  bool showLeadingZeroesAngle();
423  bool showTrailingZeroesAngle();
424  RS::AngleFormat getAngleFormat();
425  int getAnglePrecision();
426  char getDecimalSeparator();
427 
428  bool isModified() const;
429  QDateTime getLastModifiedDateTime() const;
430  QString getLastModified() const;
431  void setModified(bool m);
432 
433  void copyVariablesFrom(const RDocument& other);
434 
435  QString addAutoVariable(double value);
436  QStringList getAutoVariables() const;
437  QString substituteAutoVariables(const QString& expression);
438  double eval(const QString& expression, bool* ok = NULL);
439 
440  bool isEditingWorkingSet() const;
441  void setIgnoreWorkingSet(bool on);
442 
443 // RBlockReferenceEntity::Id getWorkingSetBlockReferenceId() const;
444 // void setWorkingSetBlockReferenceId(RBlockReferenceEntity::Id id, int group = RDEFAULT_MIN1, RTransaction* transaction = NULL);
445 
446  /*
447  void copyToDocument(const RVector& reference, RDocument& other,
448  bool selectionOnly, bool clear, RTransaction& transaction);
449  void copyToDocument(REntity& entity, const RVector& reference,
450  RDocument& other, RTransaction& transaction);
451  */
452 
453  static RDocument& getClipboard();
454 
458  friend QDebug operator<<(QDebug dbg, RDocument& d);
459 
460  void dump();
461 
462 protected:
464 
465 private:
466  QString fileName;
467  QString fileVersion;
468 
470  // spatial index used to spawn new spatial indices for each block:
473  // map of spatial indices (per block):
474  mutable QMap<RBlock::Id, RSpatialIndex*> spatialIndicesByBlock;
476  //RBlock::Id modelSpaceBlockId;
479 
481 };
482 
485 
486 #endif
REntity.h
RNonCopyable
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RNonCopyable.h:32
RRequireHeap.h
RObject::INVALID_ID
static const Id INVALID_ID
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RObject.h:67
RDocument::getLinetypeByLayerId
RLinetype::Id getLinetypeByLayerId() const
Definition: RDocument.h:374
RS::Unit
Unit
Enum of supported units (values correspond to DXF spec).
Definition: RS.h:317
RDocument::spatialIndex
RSpatialIndex & spatialIndex
Definition: RDocument.h:471
RS::LinearFormat
LinearFormat
Format for length values.
Definition: RS.h:362
setCurrentColor
void setCurrentColor(void color)
Sets the current color for newly added entities.
Definition: simple_create.js:190
RS::KnownVariable
KnownVariable
Well established document variables.
Definition: RS.h:393
RS::PointTolerance
static const double PointTolerance
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RS.h:699
RVector
Represents a 3d vector (x/y/z).
Definition: RVector.h:46
RView.h
operator<<
QDebug operator<<(QDebug dbg, const RBox &b)
Stream operator for QDebug.
Definition: RBox.cpp:637
setCurrentLayer
void setCurrentLayer(void layerName)
Sets the current layer to the given layer.
Definition: simple_create.js:56
RS::EntityType
EntityType
Entity types used for property handling / filtering.
Definition: RS.h:125
getClipboard
void getClipboard()
Definition: library.js:259
RDocument::fileVersion
QString fileVersion
Definition: RDocument.h:467
RDEFAULT_QSTRING
#define RDEFAULT_QSTRING
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDebug.h:48
RLayer
Represents a layer in a drawing.
Definition: RLayer.h:48
RTransactionStack.h
RDocument::linetypeByLayerId
RLinetype::Id linetypeByLayerId
Definition: RDocument.h:477
RDocument::autoTransactionGroup
bool autoTransactionGroup
Definition: RDocument.h:480
RNonCopyable.h
RTransactionStack
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RTransactionStack.h:37
RBlock.h
RSpatialIndex
Abstract base class for spatial index implementations.
Definition: RSpatialIndex.h:69
RDEFAULT_QLIST_RBOX
#define RDEFAULT_QLIST_RBOX
Definition: RDocument.h:50
REntity
Base class for all entity classes.
Definition: REntity.h:65
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(RMath *)
RLinetype.h
RUcs.h
RDocument::storage
RStorage & storage
Definition: RDocument.h:469
RDEFAULT_QLIST_RS_ENTITYTYPE
#define RDEFAULT_QLIST_RS_ENTITYTYPE
Definition: RDocument.h:57
RDocumentVariables.h
RS::EntityAll
@ EntityAll
All entities (for filters)
Definition: RS.h:138
RObject::Id
int Id
Definition: RObject.h:66
RObject::Handle
int Handle
Definition: RObject.h:68
core_global.h
RDocument::getLinetypeByBlockId
RLinetype::Id getLinetypeByBlockId() const
Definition: RDocument.h:377
RDocument::clipboard
static RDocument * clipboard
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDocument.h:463
RBlockReferenceEntity.h
RLinetypePattern
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RLinetypePattern.h:45
RDocument
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition: RDocument.h:72
RDEFAULT_QVARIANT
#define RDEFAULT_QVARIANT
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RTextLabel.h:30
RDocument::spatialIndicesByBlock
QMap< RBlock::Id, RSpatialIndex * > spatialIndicesByBlock
Definition: RDocument.h:474
RLayerState.h
RMAXDOUBLE
#define RMAXDOUBLE
Definition: RMath.h:63
RLineweight::Lineweight
Lineweight
Definition: RLineweight.h:46
RS::AngleFormat
AngleFormat
Angle format for printing angles.
Definition: RS.h:346
RDocument::disableSpatialIndicesByBlock
bool disableSpatialIndicesByBlock
Definition: RDocument.h:472
RStorage
This is the abstract base class for all storage implementations.
Definition: RStorage.h:64
RLayer.h
RDocument::fileName
QString fileName
Definition: RDocument.h:466
hasLayer
void hasLayer(void name)
Checks if the given layer exists.
Definition: simple_create.js:66
RDocument::getAutoTransactionGroup
bool getAutoTransactionGroup() const
Definition: RDocument.h:288
RDocument::setAutoTransactionGroup
void setAutoTransactionGroup(bool on)
True: add all operations to the current transaction group.
Definition: RDocument.h:285
RRequireHeap
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RRequireHeap.h:30
init
void init(void basePath)
Definition: AddBlockInit.js:2
RTransaction
Transaction implementation.
Definition: RTransaction.h:74
RDocument::linetypeByBlockId
RLinetype::Id linetypeByBlockId
Definition: RDocument.h:478
RBox
Represents a box e.g.
Definition: RBox.h:43
RS::Measurement
Measurement
Enum of supported measurement systems.
Definition: RS.h:308
QCADCORE_EXPORT
#define QCADCORE_EXPORT
Definition: core_global.h:10
RSpatialIndex.h
RDocument::transactionStack
RTransactionStack transactionStack
Definition: RDocument.h:475
RColor
Color.
Definition: RColor.h:44