ACF $AcfVersion:0$
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
iview::CRectControlledShapeBase Class Referenceabstract

#include <CRectControlledShapeBase.h>

Inheritance diagram for iview::CRectControlledShapeBase:
iview::CInteractiveShapeBase iview::CShapeBase iview::IInteractiveShape iview::IDraggable imod::CSingleModelObserverBase iview::IShape iview::IShape iview::IMouseActionObserver istd::IPolymorphic istd::IPolymorphic iview::ITouchable iview::IVisualizable imod::IObserver iview::ITouchable iview::IVisualizable imod::IObserver imod::IObserver iview::CGraphPlotShape iview::CPolygonShape iview::CPolylineShape iview::CSplineShape iview::CTubePolylineShape

Public Types

typedef CInteractiveShapeBase BaseClass
 
typedef CInteractiveShapeBase ShapeBaseClass
 
- Public Types inherited from iview::CInteractiveShapeBase
typedef CShapeBase BaseClass
 
- Public Types inherited from iview::CShapeBase
enum  ShapeTransformMode { STM_VIEW , STM_SHAPE , STM_COMBINE }
 Describe how shape tranformation is interpreted. More...
 
typedef imod::CSingleModelObserverBase BaseClass
 
- Public Types inherited from imod::CSingleModelObserverBase
typedef imod::IModel ModelType
 
- Public Types inherited from iview::IShape
enum  ChangeFlags { CF_CALIB = 0x3663adf }
 Data model change notification flags. More...
 
- Public Types inherited from iview::ITouchable
enum  TouchState {
  TS_NONE , TS_INACTIVE , TS_TICKER , TS_DRAGGABLE ,
  TS_AREA , TS_OTHER , TS_LAST = TS_OTHER
}
 Enumeration for possible shape touch states. More...
 

Public Member Functions

 CRectControlledShapeBase ()
 
virtual bool IsEditableRotation ()
 Check, if rotation is editable.
 
virtual void SetEditableRotation (bool state=true)
 
virtual bool IsEditableWidth ()
 Check, if width is editable.
 
virtual void SetEditableWidth (bool state=true)
 
virtual bool IsEditableHeight ()
 Check, if height is editable.
 
virtual void SetEditableHeight (bool state=true)
 
virtual bool IsProportionalScaled () const
 Check, if both axis will be scaled proportional.
 
virtual void SetProportionalScaled (bool state=true)
 
virtual void InvalidateBoundingBox () override
 Invalidate bounding box.
 
virtual TouchState IsTouched (istd::CIndex2d position) const override
 Check, if any shape is touched.
 
virtual void Draw (QPainter &drawContext) const override
 Draw this shape using draw context.
 
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.
 
- Public Member Functions inherited from iview::CInteractiveShapeBase
 CInteractiveShapeBase ()
 
 CInteractiveShapeBase (const CInteractiveShapeBase &shape)
 
virtual ~CInteractiveShapeBase ()
 
virtual bool IsEditablePosition () const
 
virtual void SetEditablePosition (bool state=true)
 
virtual bool IsSelected () const override
 Check, if this shape is selected.
 
virtual void SetSelected (bool selectFlag=true) override
 Inform that this object was selected or deselected.
 
virtual bool OnMouseMove (istd::CIndex2d position) override
 It is called, when mouse is moved.
 
virtual bool IsDraggable () const override
 Check if drag is enabled.
 
virtual void BeginDrag (const istd::CIndex2d &position) override
 Called before dragging is begin.
 
virtual void SetDragPosition (const istd::CIndex2d &position) override
 Set new drag position.
 
virtual void EndDrag () override
 Called after dragging.
 
virtual bool OnModelAttached (imod::IModel *modelPtr, istd::IChangeable::ChangeSet &changeMask) override
 Callback invoked when an observable model is about to be attached to this observer.
 
virtual bool OnModelDetached (imod::IModel *modelPtr) override
 Callback invoked when an observable model is about to be detached from this observer.
 
- Public Member Functions inherited from iview::CShapeBase
 CShapeBase ()
 
 CShapeBase (const CShapeBase &shape)
 
virtual ~CShapeBase ()
 
virtual bool AssignToLayer (int layerType)
 Assign this shape to same layer.
 
virtual void Invalidate ()
 
iview::IDisplayGetDisplayPtr () const
 Get access to currently connected display.
 
ShapeTransformMode GetTransformMode () const
 Get shape transformation mode.
 
void SetTransformMode (ShapeTransformMode mode)
 Set shape transformation mode.
 
i2d::CVector2d GetScreenPosition (const i2d::CVector2d &logPosition) const
 Get screen position based on logical position.
 
i2d::CVector2d GetLogPosition (const i2d::CVector2d &screenPosition) const
 Get logical position based on screen position.
 
virtual int GetLayerType () const override
 Get layer type of this shape object.
 
virtual i2d::CRect GetBoundingBox () const override
 Return bounding box in client window coordinates.
 
virtual void SetVisible (bool state=true) override
 Make shape to be visible or not.
 
virtual const IColorSchemaGetUserColorSchema () const override
 Get color schema from view or user defined.
 
virtual void SetUserColorSchema (const IColorSchema *schemaPtr) override
 Set color schema to draw shape.
 
virtual void SetDefaultDescription (const QString &description) override
 Set default description will be used to display on console.
 
virtual void SetToolTip (const QString &toolTip) override
 
virtual bool IsInside (const istd::CIndex2d &screenPosition) const override
 
virtual bool IsVisible () const override
 Check, if this object is visible.
 
virtual bool IsDisplayAccepted (const IDisplay &display) const override
 Check if this object can be connected to this display.
 
virtual void OnConnectDisplay (IDisplay *displayPtr) override
 Called after display is connected.
 
virtual void OnDisconnectDisplay (IDisplay *displayPtr) override
 Called after display is disconnected.
 
virtual bool OnDisplayChange (const istd::IChangeable::ChangeSet &changeSet) override
 It informs about changes in display.
 
virtual QString GetShapeDescriptionAt (istd::CIndex2d position) const override
 Get description to shape at specified position.
 
virtual QString GetToolTipAt (istd::CIndex2d position) const override
 Get tooltip at specified position.
 
virtual void OnUpdate (const istd::IChangeable::ChangeSet &changeSet) override
 Called on update of observed model.
 
- Public Member Functions inherited from imod::CSingleModelObserverBase
 CSingleModelObserverBase ()
 
virtual ~CSingleModelObserverBase ()
 
imod::IModelGetObservedModel () const
 Get access to observed model.
 
imod::IModelGetModelPtr () const
 Get access to observed model.
 
void EnsureModelDetached ()
 Make sure this observer is detached.
 
void SetObservedIds (const istd::IChangeable::ChangeSet &changeMask)
 Set list of ID's beeing observed.
 
virtual bool IsModelAttached (const imod::IModel *modelPtr=NULL) const override
 Checks if the specified model is currently attached to this observer.
 
virtual void BeforeUpdate (imod::IModel *modelPtr) override
 Callback invoked before an update of the observer's content occurs.
 
virtual void AfterUpdate (imod::IModel *modelPtr, const istd::IChangeable::ChangeSet &changeSet) override
 Callback invoked after an update of the observer's content occurs.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 
- Public Member Functions inherited from iview::IShape
virtual bool IsAreaTouchAllowed () const
 
virtual void SetAreaTouchAllowed (bool=true)
 
virtual iview::ISelectable::MousePointerMode UpdateMousePointer (iview::ISelectable::MousePointerMode defaultPointer, ITouchable::TouchState, const istd::CIndex2d &) const
 

Protected Types

enum  EditNode {
  EN_NODE1 = 0 , EN_NODE2 , EN_NODE3 , EN_NODE4 ,
  EN_CENTER , EN_MIDDLE12 , EN_MIDDLE23 , EN_MIDDLE34 ,
  EN_MIDDLE41 , EN_ROTATION1 , EN_ROTATION2 , EN_LAST = EN_ROTATION2
}
 
enum  MouseMode {
  MM_NONE , MM_ROTATION1 , MM_ROTATION2 , MM_WIDTH1 ,
  MM_WIDTH2 , MM_HEIGHT1 , MM_HEIGHT2 , MM_SIZE1 ,
  MM_SIZE2 , MM_SIZE3 , MM_SIZE4
}
 

Protected Member Functions

void CalcNodes (const i2d::CAffine2d &parallTransform) const
 
void ResetNodes () const
 
bool AreNodesValid () const
 
i2d::CAffine2d CalcMoveTransform (i2d::CVector2d position, const i2d::CAffine2d &transform)
 
virtual bool IsTickerTouched (istd::CIndex2d position) const
 
virtual void DrawTickers (QPainter &drawContext) const
 
virtual void DrawFigure (QPainter &drawContext) const
 
bool IsParallTouched (const i2d::CAffine2d &parallTransform, istd::CIndex2d position) const
 
i2d::CAffine2d CalcScaleTransform (const i2d::CVector2d &center, const i2d::CVector2d &isPos, const i2d::CVector2d &shouldPos)
 
i2d::CAffine2d CalcSizeTransform (const i2d::CVector2d &center, const i2d::CVector2d &isPos, const i2d::CVector2d &shouldPos)
 
i2d::CAffine2d CalcRotatedTransform (const i2d::CVector2d &center, const i2d::CVector2d &isPos, const i2d::CVector2d &shouldPos)
 
virtual void BeginLogDrag (const i2d::CVector2d &reference) override
 
virtual void SetLogDragPosition (const i2d::CVector2d &position) override
 
virtual i2d::CRect CalcBoundingBox () const override
 Calculate bounding box.
 
virtual void EnsureValidNodes () const =0
 
virtual bool IsCurveTouched (istd::CIndex2d position) const =0
 
- Protected Member Functions inherited from iview::CInteractiveShapeBase
void BeginTickerDrag ()
 
void EndTickerDrag ()
 
void UpdateModelChanges ()
 
int GetKeysState () const
 Get actual keys state.
 
int GetEditMode () const
 Get actual edit mode.
 
int GetDisplayMode () const
 Get actual display mode.
 
void DrawText (QPainter &drawContext, istd::CIndex2d point, const QString &text) const
 Draw text on a given position.
 
virtual bool IsDisplayChangeImportant (const istd::IChangeable::ChangeSet &changeSet) override
 Get display changes mask.
 
- Protected Member Functions inherited from iview::CShapeBase
double GetLocalLineWidth (const i2d::CVector2d &screenPosition) const
 Get line with (in logical coordinates) for single screen position.
 
bool IsDisplayConnected () const
 Check if display is connected.
 
const IColorSchemaGetColorSchema () const
 Get color schema for this shape.
 
i2d::CRect GetClientRect () const
 Get display client rectangle.
 
bool IsBoundingBoxValid () const
 
void DisconnectDisplay ()
 
virtual const iview::CScreenTransformGetViewToScreenTransform () const
 
- Protected Member Functions inherited from imod::CSingleModelObserverBase
void SetModelPtr (imod::IModel *modelPtr)
 Set internal model pointer to specified value.
 

Protected Attributes

MouseMode m_mouseMode
 
i2d::CVector2d m_referencePosition
 

Additional Inherited Members

- Static Protected Attributes inherited from imod::CSingleModelObserverBase
static const istd::IChangeable::ChangeSet s_undoChanges
 

Detailed Description

Definition at line 13 of file CRectControlledShapeBase.h.

Member Typedef Documentation

◆ BaseClass

Definition at line 16 of file CRectControlledShapeBase.h.

◆ ShapeBaseClass

Definition at line 17 of file CRectControlledShapeBase.h.

Member Enumeration Documentation

◆ EditNode

Enumerator
EN_NODE1 
EN_NODE2 
EN_NODE3 
EN_NODE4 
EN_CENTER 
EN_MIDDLE12 
EN_MIDDLE23 
EN_MIDDLE34 
EN_MIDDLE41 
EN_ROTATION1 
EN_ROTATION2 
EN_LAST 

Definition at line 58 of file CRectControlledShapeBase.h.

◆ MouseMode

Enumerator
MM_NONE 
MM_ROTATION1 
MM_ROTATION2 
MM_WIDTH1 
MM_WIDTH2 
MM_HEIGHT1 
MM_HEIGHT2 
MM_SIZE1 
MM_SIZE2 
MM_SIZE3 
MM_SIZE4 

Definition at line 74 of file CRectControlledShapeBase.h.

Constructor & Destructor Documentation

◆ CRectControlledShapeBase()

iview::CRectControlledShapeBase::CRectControlledShapeBase ( )

Member Function Documentation

◆ AreNodesValid()

bool iview::CRectControlledShapeBase::AreNodesValid ( ) const
inlineprotected

Definition at line 192 of file CRectControlledShapeBase.h.

◆ BeginLogDrag()

virtual void iview::CRectControlledShapeBase::BeginLogDrag ( const i2d::CVector2d reference)
overrideprotectedvirtual

Implements iview::CInteractiveShapeBase.

Reimplemented in iview::CPolygonShape.

◆ CalcBoundingBox()

virtual i2d::CRect iview::CRectControlledShapeBase::CalcBoundingBox ( ) const
overrideprotectedvirtual

Calculate bounding box.

You have to implement this method in your shapes implementations.

Implements iview::CShapeBase.

Reimplemented in iview::CGraphPlotShape, iview::CPolygonShape, iview::CPolylineShape, iview::CSplineShape, and iview::CTubePolylineShape.

◆ CalcMoveTransform()

i2d::CAffine2d iview::CRectControlledShapeBase::CalcMoveTransform ( i2d::CVector2d  position,
const i2d::CAffine2d transform 
)
protected

◆ CalcNodes()

void iview::CRectControlledShapeBase::CalcNodes ( const i2d::CAffine2d parallTransform) const
protected

◆ CalcRotatedTransform()

i2d::CAffine2d iview::CRectControlledShapeBase::CalcRotatedTransform ( const i2d::CVector2d center,
const i2d::CVector2d isPos,
const i2d::CVector2d shouldPos 
)
protected

◆ CalcScaleTransform()

i2d::CAffine2d iview::CRectControlledShapeBase::CalcScaleTransform ( const i2d::CVector2d center,
const i2d::CVector2d isPos,
const i2d::CVector2d shouldPos 
)
protected

◆ CalcSizeTransform()

i2d::CAffine2d iview::CRectControlledShapeBase::CalcSizeTransform ( const i2d::CVector2d center,
const i2d::CVector2d isPos,
const i2d::CVector2d shouldPos 
)
protected

◆ Draw()

virtual void iview::CRectControlledShapeBase::Draw ( QPainter &  drawContext) const
overridevirtual

Draw this shape using draw context.

Implements iview::IVisualizable.

Reimplemented in iview::CPolygonShape.

◆ DrawFigure()

virtual void iview::CRectControlledShapeBase::DrawFigure ( QPainter &  drawContext) const
protectedvirtual

Reimplemented in iview::CGraphPlotShape.

◆ DrawTickers()

virtual void iview::CRectControlledShapeBase::DrawTickers ( QPainter &  drawContext) const
protectedvirtual

◆ EnsureValidNodes()

virtual void iview::CRectControlledShapeBase::EnsureValidNodes ( ) const
protectedpure virtual

◆ InvalidateBoundingBox()

virtual void iview::CRectControlledShapeBase::InvalidateBoundingBox ( )
overridevirtual

Invalidate bounding box.

You can overload this method to provide validation of your internal attributes, because this method is called from Invalidate and OnDisplayChange methods. Please don't forget base method call in your implementations.

Reimplemented from iview::CShapeBase.

◆ IsCurveTouched()

virtual bool iview::CRectControlledShapeBase::IsCurveTouched ( istd::CIndex2d  position) const
protectedpure virtual

◆ IsEditableHeight()

bool iview::CRectControlledShapeBase::IsEditableHeight ( )
inlinevirtual

Check, if height is editable.

Definition at line 166 of file CRectControlledShapeBase.h.

◆ IsEditableRotation()

bool iview::CRectControlledShapeBase::IsEditableRotation ( )
inlinevirtual

Check, if rotation is editable.

Definition at line 142 of file CRectControlledShapeBase.h.

◆ IsEditableWidth()

bool iview::CRectControlledShapeBase::IsEditableWidth ( )
inlinevirtual

Check, if width is editable.

Definition at line 154 of file CRectControlledShapeBase.h.

◆ IsParallTouched()

bool iview::CRectControlledShapeBase::IsParallTouched ( const i2d::CAffine2d parallTransform,
istd::CIndex2d  position 
) const
protected

◆ IsProportionalScaled()

bool iview::CRectControlledShapeBase::IsProportionalScaled ( ) const
inlinevirtual

Check, if both axis will be scaled proportional.

Definition at line 178 of file CRectControlledShapeBase.h.

◆ IsTickerTouched()

virtual bool iview::CRectControlledShapeBase::IsTickerTouched ( istd::CIndex2d  position) const
protectedvirtual

◆ IsTouched()

virtual TouchState iview::CRectControlledShapeBase::IsTouched ( istd::CIndex2d  position) const
overridevirtual

Check, if any shape is touched.

When shape is touched, it return also pointer to this shape.

Returns
touch state for the shape, or iview::IInteractiveShape::TS_NONE, when nothing found.

Reimplemented from iview::CShapeBase.

Reimplemented in iview::CGraphPlotShape, iview::CPolygonShape, iview::CPolylineShape, and iview::CTubePolylineShape.

◆ OnMouseButton()

virtual bool iview::CRectControlledShapeBase::OnMouseButton ( istd::CIndex2d  position,
Qt::MouseButton  buttonType,
bool  downFlag 
)
overridevirtual

It is called, when mouse button is pushed down or up on this object.

Parameters
position- position of mouse pointer on client area (picture coords).
downFlag- true, if mouse button is pushed down, false if pushed up.
Returns
true if this shape should get focus to catch all mouse movements.

Reimplemented from iview::CInteractiveShapeBase.

Reimplemented in iview::CPolygonShape, iview::CPolylineShape, and iview::CTubePolylineShape.

◆ ResetNodes()

void iview::CRectControlledShapeBase::ResetNodes ( ) const
protected

◆ SetEditableHeight()

void iview::CRectControlledShapeBase::SetEditableHeight ( bool  state = true)
inlinevirtual

Definition at line 172 of file CRectControlledShapeBase.h.

◆ SetEditableRotation()

void iview::CRectControlledShapeBase::SetEditableRotation ( bool  state = true)
inlinevirtual

Definition at line 148 of file CRectControlledShapeBase.h.

◆ SetEditableWidth()

void iview::CRectControlledShapeBase::SetEditableWidth ( bool  state = true)
inlinevirtual

Definition at line 160 of file CRectControlledShapeBase.h.

◆ SetLogDragPosition()

virtual void iview::CRectControlledShapeBase::SetLogDragPosition ( const i2d::CVector2d position)
overrideprotectedvirtual

Implements iview::CInteractiveShapeBase.

Reimplemented in iview::CPolygonShape.

◆ SetProportionalScaled()

void iview::CRectControlledShapeBase::SetProportionalScaled ( bool  state = true)
inlinevirtual

Definition at line 184 of file CRectControlledShapeBase.h.

Member Data Documentation

◆ m_mouseMode

MouseMode iview::CRectControlledShapeBase::m_mouseMode
protected

Definition at line 126 of file CRectControlledShapeBase.h.

◆ m_referencePosition

i2d::CVector2d iview::CRectControlledShapeBase::m_referencePosition
protected

Definition at line 127 of file CRectControlledShapeBase.h.


The documentation for this class was generated from the following file: