QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RDimStyleProxyBasic.h
Go to the documentation of this file.
1
20#ifndef RDIMSTYLEPROXYBASIC_H
21#define RDIMSTYLEPROXYBASIC_H
22
23#include "entity_global.h"
24
25#include <QList>
26#include <QSharedPointer>
27
28#include "RDimStyleProxy.h"
29#include "RMath.h"
30#include "RPolyline.h"
31
33class RDocument;
34class RShape;
35class RTextData;
36class RVector;
37class RDimensionData;
38class RArc;
39class RLine;
40
48public:
50 document(NULL), dimensionData(NULL), dimStyle(NULL), preview(false), forceSelected(false), outsideArrow1(false), outsideArrow2(false) {}
51
53
54 virtual void render(const RDimStyle& dimStyle, const REntityData& entity, bool preview, bool forceSelected);
55
56protected:
57 virtual void renderPrivate(const RDimStyle& dimStyle, const REntityData& entity, bool preview, bool forceSelected);
58
59 virtual void renderDimRotated();
60 virtual void renderDimAligned();
61 virtual void renderDimOrdinate();
62 virtual void renderDimRadial();
63 virtual void renderDimDiametric();
64 virtual void renderDimAngular();
65
66 virtual void breakUpDimArc(QList<QSharedPointer<RShape> >& shapes, QSharedPointer<RArc> dimArc) {
67 Q_UNUSED(shapes)
68 Q_UNUSED(dimArc)
69 }
70
71 virtual RPolyline getTextBox(const RDimensionData& dimensionData, double* width = NULL) const {
72 //Q_UNUSED(dimensionData)
73 Q_UNUSED(width)
74
75 return RPolyline();
76 }
77
78 virtual void updateTextPosition(const QString& text, double textWidth, const RVector& dimLine1, const RVector& dimLine2, bool corrected, double angleHint = RNANDOUBLE);
79
80 virtual void updateOutsideArrow(const RVector& p1, const RVector& p2);
81 virtual QList<QSharedPointer<RShape> > getDimensionLineShapes(const RVector& p1, const RVector& p2, bool arrow1, bool arrow2, double angleHint = RNANDOUBLE) const;
82 virtual bool hasSpaceForArrows(double dimLineLength) const;
83 virtual QList<QSharedPointer<RShape> > getArrow(const RVector& position, double direction) const;
84 virtual void adjustExtensionLineFixLength(RLine& extLine1, RLine& extLine2, bool addDimExe = true) const;
85
86protected:
90 bool preview;
92 mutable bool outsideArrow1;
93 mutable bool outsideArrow2;
94};
95
96#endif
#define RNANDOUBLE
Definition RMath.h:74
Low-level mathematical representation of an arc.
Definition RArc.h:42
Rotated, linear dimension entity class.
Definition RDimRotatedEntity.h:38
Dimension style class.
Definition RDimStyle.h:42
Proxy for advanced dimension style functionality and rendering.
Definition RDimStyleProxyBasic.h:47
virtual void breakUpDimArc(QList< QSharedPointer< RShape > > &shapes, QSharedPointer< RArc > dimArc)
Definition RDimStyleProxyBasic.h:66
bool outsideArrow1
Definition RDimStyleProxyBasic.h:92
virtual ~RDimStyleProxyBasic()
Definition RDimStyleProxyBasic.h:52
const RDimensionData * dimensionData
Definition RDimStyleProxyBasic.h:88
const RDimStyle * dimStyle
Definition RDimStyleProxyBasic.h:89
virtual RPolyline getTextBox(const RDimensionData &dimensionData, double *width=NULL) const
Definition RDimStyleProxyBasic.h:71
RDimStyleProxyBasic()
Definition RDimStyleProxyBasic.h:49
bool forceSelected
Definition RDimStyleProxyBasic.h:91
const RDocument * document
Definition RDimStyleProxyBasic.h:87
bool preview
Definition RDimStyleProxyBasic.h:90
bool outsideArrow2
Definition RDimStyleProxyBasic.h:93
Proxy for advanced dimension style functionality and rendering.
Definition RDimStyleProxy.h:35
virtual void render(const RDimStyle &dimStyle, const REntityData &entityData, bool preview, bool forceSelected)=0
Base class for dimension entity data classes.
Definition RDimensionData.h:44
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Base class for all entity data classes.
Definition REntityData.h:65
Low-level mathematical representation of a line.
Definition RLine.h:41
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition RPolyline.h:50
Interface for geometrical shape classes.
Definition RShape.h:72
Text entity data class.
Definition RTextData.h:38
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADENTITY_EXPORT
Definition entity_global.h:10
#define NULL
Definition opennurbs_system.h:256
#define false
Definition opennurbs_system.h:252