| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef RS_DIMANGULAR_H |
| | #define RS_DIMANGULAR_H |
| |
|
| | #include "rs_constructionline.h" |
| | #include "rs_dimension.h" |
| |
|
| | |
| | |
| | |
| | struct RS_DimAngularData |
| | { |
| | RS_DimAngularData(); |
| | RS_DimAngularData(const RS_DimAngularData& ed); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | RS_DimAngularData(const RS_Vector& definitionPoint1, |
| | const RS_Vector& definitionPoint2, |
| | const RS_Vector& definitionPoint3, |
| | const RS_Vector& definitionPoint4); |
| |
|
| | RS_Vector definitionPoint1; |
| | RS_Vector definitionPoint2; |
| | RS_Vector definitionPoint3; |
| | |
| | RS_Vector definitionPoint4; |
| | }; |
| |
|
| | std::ostream& operator << (std::ostream& os, const RS_DimAngularData& dd); |
| |
|
| | |
| | |
| | |
| | struct LC_DimAngularVars |
| | { |
| | explicit LC_DimAngularVars(const double _dimscale, |
| | const double _dimexo, |
| | const double _dimexe, |
| | const double _dimtxt, |
| | const double _dimgap, |
| | const double _arrowSize, |
| | const double _tickSize); |
| |
|
| | explicit LC_DimAngularVars(const LC_DimAngularVars& av); |
| |
|
| | double scale(void) const { |
| | return dimscale; |
| | } |
| | double exo(void) const { |
| | return dimexo; |
| | } |
| | double exe(void) const { |
| | return dimexe; |
| | } |
| | double txt(void) const { |
| | return dimtxt; |
| | } |
| | double gap(void) const { |
| | return dimgap; |
| | } |
| | double arrow(void) const { |
| | return arrowSize; |
| | } |
| |
|
| | double tickSize() const { |
| | return m_tickSize; |
| | } |
| |
|
| | private: |
| | double dimscale {1.0}; |
| | double dimexo {0.0}; |
| | double dimexe {0.0}; |
| | double dimtxt {0.0}; |
| | double dimgap {0.0}; |
| | double arrowSize {0.0}; |
| | double m_tickSize {0.0}; |
| | }; |
| |
|
| | std::ostream& operator << (std::ostream& os, const LC_DimAngularVars& dd); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | class RS_DimAngular : public RS_Dimension |
| | { |
| | friend std::ostream& operator << (std::ostream& os, const RS_DimAngular& d); |
| |
|
| | public: |
| | RS_DimAngular(RS_EntityContainer* parent, |
| | const RS_DimensionData& d, |
| | const RS_DimAngularData& ed); |
| | RS_DimAngular(const RS_DimAngular& other); |
| |
|
| | RS_Entity* clone() const override; |
| |
|
| | |
| | RS2::EntityType rtti() const override { |
| | return RS2::EntityDimAngular; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | RS_DimAngularData getEData() const { |
| | return m_dimAngularData; |
| | } |
| |
|
| | QString getMeasuredLabel() override; |
| | RS_Vector getCenter() const override; |
| |
|
| |
|
| |
|
| | RS_Vector getDefinitionPoint1() { |
| | return m_dimAngularData.definitionPoint1; |
| | } |
| | RS_Vector getDefinitionPoint2() { |
| | return m_dimAngularData.definitionPoint2; |
| | } |
| | RS_Vector getDefinitionPoint3() { |
| | return m_dimAngularData.definitionPoint3; |
| | } |
| | RS_Vector getDefinitionPoint4() { |
| | return m_dimAngularData.definitionPoint4; |
| | } |
| |
|
| | void update() override; |
| | void move(const RS_Vector& offset) override; |
| | void rotate(const RS_Vector& center, double angle) override; |
| | void rotate(const RS_Vector& center, const RS_Vector& angleVector) override; |
| | void scale(const RS_Vector& center, const RS_Vector& factor) override; |
| | void mirror(const RS_Vector& axisPoint1, const RS_Vector& axisPoint2) override; |
| |
|
| | protected: |
| | |
| | RS_DimAngularData m_dimAngularData; |
| | void doUpdateDim() override; |
| |
|
| | private: |
| | void calcDimension(void); |
| | void fixDimension(void); |
| | void extensionLine(const RS_ConstructionLine& dimLine, |
| | const RS_Vector& dimPoint, |
| | const RS_Vector& dirStart, |
| | const RS_Vector& dirEnd, |
| | const LC_DimAngularVars& av); |
| | void arrow(const RS_Vector& point, |
| | const double angle, |
| | const double direction, |
| | const bool outsideArrows, |
| | const LC_DimAngularVars& av); |
| |
|
| | RS_Vector dimDir1s; |
| | RS_Vector dimDir1e; |
| | RS_Vector dimDir2s; |
| | RS_Vector dimDir2e; |
| | RS_Vector dimDirRad; |
| | RS_ConstructionLine dimLine1; |
| | RS_ConstructionLine dimLine2; |
| | double dimRadius {0.0}; |
| | double dimAngleL1 {0.0}; |
| | double dimAngleL2 {0.0}; |
| | double dimAngle {0.0}; |
| | RS_Vector dimCenter; |
| | }; |
| |
|
| | #endif |
| |
|