6#ifndef iview_CRectControlledShapeBase_included
7#define iview_CRectControlledShapeBase_included
57 virtual void Draw(QPainter& drawContext)
const;
135 bool m_isEditableRotation;
136 bool m_isEditableWidth;
137 bool m_isEditableHeight;
138 bool m_isProportionalScaled;
141 mutable bool m_areNodesValid;
149 return m_isEditableRotation;
155 m_isEditableRotation = state;
161 return m_isEditableWidth;
167 m_isEditableWidth = state;
173 return m_isEditableHeight;
179 m_isEditableHeight = state;
185 return m_isProportionalScaled;
191 m_isProportionalScaled = state;
199 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.
Base class of shape implementation with user interaction.
virtual void BeginLogDrag(const i2d::CVector2d &reference)
virtual void SetEditableHeight(bool state=true)
bool AreNodesValid() const
i2d::CVector2d m_referencePosition
virtual bool IsEditableHeight()
Check, if height is editable.
virtual void EnsureValidNodes() const =0
CRectControlledShapeBase()
virtual bool OnMouseButton(istd::CIndex2d position, Qt::MouseButton buttonType, bool downFlag)
It is called, when mouse button is pushed down or up on this object.
virtual void SetLogDragPosition(const i2d::CVector2d &position)
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 i2d::CRect CalcBoundingBox() const
Calculate bounding box.
void CalcNodes(const i2d::CAffine2d ¶llTransform) const
virtual void SetEditableRotation(bool state=true)
virtual void InvalidateBoundingBox()
Invalidate bounding box.
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 TouchState IsTouched(istd::CIndex2d position) const
Check, if any shape is touched.
virtual bool IsTickerTouched(istd::CIndex2d position) const
virtual void DrawTickers(QPainter &drawContext) const
CInteractiveShapeBase BaseClass
i2d::CAffine2d CalcRotatedTransform(const i2d::CVector2d ¢er, const i2d::CVector2d &isPos, const i2d::CVector2d &shouldPos)
virtual void SetProportionalScaled(bool state=true)
virtual void Draw(QPainter &drawContext) const
Draw this shape using draw context.
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 ShapeBaseClass
virtual bool IsEditableWidth()
Check, if width is editable.
TouchState
Enumeration for possible shape touch states.
In this library is defined 2D view concept and standard visualisation objects.