52 virtual void Draw(QPainter& drawContext)
const override;
130 bool m_isEditableRotation;
131 bool m_isEditableWidth;
132 bool m_isEditableHeight;
133 bool m_isProportionalScaled;
136 mutable bool m_areNodesValid;
144 return m_isEditableRotation;
150 m_isEditableRotation = state;
156 return m_isEditableWidth;
162 m_isEditableWidth = state;
168 return m_isEditableHeight;
174 m_isEditableHeight = state;
180 return m_isProportionalScaled;
186 m_isProportionalScaled = state;
194 return m_areNodesValid;
This class defines an affine 2D-transformation.
Simple rectangle with integer bounds.
Definition of position or mathematical vector on 2D plane.
Index implementation for addressing elements in 2D-space.
virtual void SetEditableHeight(bool state=true)
bool AreNodesValid() const
i2d::CVector2d m_referencePosition
virtual void BeginLogDrag(const i2d::CVector2d &reference) override
virtual bool IsEditableHeight()
Check, if height is editable.
virtual void EnsureValidNodes() const =0
CRectControlledShapeBase()
virtual i2d::CRect CalcBoundingBox() const override
Calculate bounding box.
virtual void InvalidateBoundingBox() override
Invalidate bounding box.
virtual TouchState IsTouched(istd::CIndex2d position) const override
Check, if any shape is touched.
i2d::CAffine2d CalcMoveTransform(i2d::CVector2d position, const i2d::CAffine2d &transform)
virtual void SetEditableWidth(bool state=true)
virtual bool IsEditableRotation()
Check, if rotation is editable.
virtual bool OnMouseButton(istd::CIndex2d position, Qt::MouseButton buttonType, bool downFlag) override
It is called, when mouse button is pushed down or up on this object.
void CalcNodes(const i2d::CAffine2d ¶llTransform) const
virtual void SetEditableRotation(bool state=true)
virtual void SetLogDragPosition(const i2d::CVector2d &position) override
i2d::CAffine2d CalcScaleTransform(const i2d::CVector2d ¢er, const i2d::CVector2d &isPos, const i2d::CVector2d &shouldPos)
i2d::CAffine2d CalcSizeTransform(const i2d::CVector2d ¢er, const i2d::CVector2d &isPos, const i2d::CVector2d &shouldPos)
virtual bool IsProportionalScaled() const
Check, if both axis will be scaled proportional.
virtual bool IsTickerTouched(istd::CIndex2d position) const
virtual void DrawTickers(QPainter &drawContext) const
i2d::CAffine2d CalcRotatedTransform(const i2d::CVector2d ¢er, const i2d::CVector2d &isPos, const i2d::CVector2d &shouldPos)
virtual void SetProportionalScaled(bool state=true)
virtual bool IsCurveTouched(istd::CIndex2d position) const =0
virtual void DrawFigure(QPainter &drawContext) const
bool IsParallTouched(const i2d::CAffine2d ¶llTransform, istd::CIndex2d position) const
CInteractiveShapeBase BaseClass
CInteractiveShapeBase ShapeBaseClass
virtual bool IsEditableWidth()
Check, if width is editable.
virtual void Draw(QPainter &drawContext) const override
Draw this shape using draw context.
TouchState
Enumeration for possible shape touch states.
In this library is defined 2D view concept and standard visualisation objects.