|
ACF $AcfVersion:0$
|
#include <CShapeBase.h>
Public Types | |
| 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 | |
| CShapeBase () | |
| CShapeBase (const CShapeBase &shape) | |
| virtual | ~CShapeBase () |
| virtual bool | AssignToLayer (int layerType) |
| Assign this shape to same layer. | |
| virtual void | Invalidate () |
| iview::IDisplay * | GetDisplayPtr () 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 IColorSchema * | GetUserColorSchema () 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 ITouchable::TouchState | IsTouched (istd::CIndex2d position) const override |
| Check, if any shape is touched. | |
| 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 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. | |
| 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::IModel * | GetObservedModel () const |
| Get access to observed model. | |
| imod::IModel * | GetModelPtr () 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 |
Public Member Functions inherited from iview::IVisualizable | |
| virtual void | Draw (QPainter &drawContext) const =0 |
| Draw this shape using draw context. | |
Protected Member Functions | |
| double | GetLocalLineWidth (const i2d::CVector2d &screenPosition) const |
| Get line with (in logical coordinates) for single screen position. | |
| virtual bool | IsDisplayChangeImportant (const istd::IChangeable::ChangeSet &changeSet) |
| Get display changes mask. | |
| virtual void | InvalidateBoundingBox () |
| Invalidate bounding box. | |
| bool | IsDisplayConnected () const |
| Check if display is connected. | |
| const IColorSchema & | GetColorSchema () const |
| Get color schema for this shape. | |
| i2d::CRect | GetClientRect () const |
| Get display client rectangle. | |
| bool | IsBoundingBoxValid () const |
| void | DisconnectDisplay () |
| virtual const iview::CScreenTransform & | GetViewToScreenTransform () const |
| virtual i2d::CRect | CalcBoundingBox () const =0 |
| Calculate bounding box. | |
Protected Member Functions inherited from imod::CSingleModelObserverBase | |
| void | SetModelPtr (imod::IModel *modelPtr) |
| Set internal model pointer to specified value. | |
Additional Inherited Members | |
Static Protected Attributes inherited from imod::CSingleModelObserverBase | |
| static const istd::IChangeable::ChangeSet | s_undoChanges |
Definition at line 20 of file CShapeBase.h.
Definition at line 25 of file CShapeBase.h.
Describe how shape tranformation is interpreted.
Definition at line 30 of file CShapeBase.h.
| iview::CShapeBase::CShapeBase | ( | ) |
| iview::CShapeBase::CShapeBase | ( | const CShapeBase & | shape | ) |
|
virtual |
|
virtual |
Assign this shape to same layer.
See iview::IViewLayer::LayerType for layer types.
Referenced by iqt2d::TViewExtenderCompBase< Base >::AddItemsToScene(), and iqt2d::TShapeParamsGuiCompBase< Ui, Shape, ShapeModel >::CreateShape().
|
protectedpure virtual |
Calculate bounding box.
You have to implement this method in your shapes implementations.
Implemented in iview::CAffineTransformation2dShape, iview::CAnnulusShape, iview::CArcShape, iview::CCenterPinShape, iview::CCircleShape, iview::CDistanceToolShape, iview::CGraphPlotShape, iview::CImageShape, iview::CLabelShape, iview::CLineShape, iview::COrientedCircleShape, iview::CParallelogramShape, iview::CPinShape, iview::CPolygonShape, iview::CPolylineShape, iview::CPolypointShape, iview::CRectangleShape, iview::CRectControlledShapeBase, iview::CSplineShape, iview::CStarShape, and iview::CTubePolylineShape.
|
protected |
|
overridevirtual |
Return bounding box in client window coordinates.
You can store this bounding box for optimization, because about every change of transformation you will be informed by calling OnDisplayChange(int) method.
Implements iview::IShape.
|
protected |
Get display client rectangle.
It can be called only when display is connected
|
protected |
Get color schema for this shape.
It can be called only when display is connected
| iview::IDisplay * iview::CShapeBase::GetDisplayPtr | ( | ) | const |
Get access to currently connected display.
Referenced by iview::CInteractiveShapeBase::GetDisplayMode(), iview::CInteractiveShapeBase::GetEditMode(), and iview::CInteractiveShapeBase::GetKeysState().
|
overridevirtual |
|
protected |
Get line with (in logical coordinates) for single screen position.
|
virtual |
Get logical position based on screen position.
Implements iview::IShape.
| i2d::CVector2d iview::CShapeBase::GetScreenPosition | ( | const i2d::CVector2d & | logPosition | ) | const |
Get screen position based on logical position.
|
overridevirtual |
Get description to shape at specified position.
Implements iview::ITouchable.
Reimplemented in iview::CImageShape, iview::CPolygonShape, and iview::CPolylineShape.
|
overridevirtual |
Get tooltip at specified position.
Implements iview::ITouchable.
| ShapeTransformMode iview::CShapeBase::GetTransformMode | ( | ) | const |
Get shape transformation mode.
This mode describes which transformation will be used to display shape.
|
overridevirtual |
Get color schema from view or user defined.
Implements iview::IShape.
|
protectedvirtual |
|
virtual |
|
protectedvirtual |
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 in iview::CLineShape, iview::CParallelogramShape, iview::CRectangleShape, and iview::CRectControlledShapeBase.
|
protected |
|
overridevirtual |
Check if this object can be connected to this display.
Implements iview::IVisualizable.
|
protectedvirtual |
Get display changes mask.
Only changes there are in mask will be accepted, rest will be ignored.
Reimplemented in iview::CInteractiveShapeBase.
Referenced by iview::CInteractiveShapeBase::IsDisplayChangeImportant().
|
protected |
Check if display is connected.
|
overridevirtual |
Implements iview::IShape.
Reimplemented in iview::CPolygonShape.
|
overridevirtual |
Check, if any shape is touched.
When shape is touched, it return also pointer to this shape.
Implements iview::ITouchable.
Reimplemented in iview::CAffineTransformation2dShape, iview::CAnnulusSegmentShape, iview::CAnnulusShape, iview::CArcShape, iview::CCircleShape, iview::CDistanceToolShape, iview::CGraphPlotShape, iview::CImageShape, iview::CLabelShape, iview::CLineShape, iview::CParallelogramShape, iview::CPinShape, iview::CPolygonShape, iview::CPolylineShape, iview::CRectangleShape, iview::CRectControlledShapeBase, and iview::CTubePolylineShape.
|
overridevirtual |
Check, if this object is visible.
Implements iview::IVisualizable.
|
overridevirtual |
Called after display is connected.
It can be called only, when display is accepted (
| displayPtr | an observer object, which should be informed about all shape changes. |
Implements iview::IVisualizable.
|
overridevirtual |
Called after display is disconnected.
Note, that this display must be previously connected.
| displayPtr | a disconnected observer object. |
Implements iview::IVisualizable.
|
overridevirtual |
It informs about changes in display.
It is called e.g. after view transformation change.
Implements iview::IVisualizable.
|
overridevirtual |
Callback invoked when an observable model is about to be attached to this observer.
This method is called by the model when attempting to establish an observer relationship. The implementation should:
| modelPtr | Pointer to the model object being attached. Never nullptr. |
| changeMask | Output parameter where the observer specifies which change types it wants to be notified about. Set the appropriate change flags using changeMask.Set(changeId). An empty mask means the observer wants all changes. |
Reimplemented from imod::CSingleModelObserverBase.
Reimplemented in iqtgui::TGuiObserverWrap< CViewProviderGuiComp, iview::CImageShape >, iview::CAffineTransformation2dShape, iview::CAnnulusSegmentShape, iview::CAnnulusShape, iview::CArcShape, iview::CCircleShape, iview::CDistanceToolShape, iview::CGraphPlotShape, iview::CImageShape, iview::CInteractiveShapeBase, iview::CLabelShape, iview::CLineShape, iview::COrientedCircleShape, iview::CParallelogramShape, iview::CPinShape, iview::CPolygonShape, iview::CPolylineShape, iview::CPolypointShape, iview::CRectangleShape, and iview::CSplineShape.
|
overridevirtual |
Callback invoked when an observable model is about to be detached from this observer.
This method is called when the observer-model relationship is being terminated, either explicitly or because the model is being destroyed. The implementation should clean up any state or resources related to this model.
| modelPtr | Pointer to the model object being detached |
Reimplemented from imod::CSingleModelObserverBase.
Reimplemented in iqtgui::TGuiObserverWrap< CViewProviderGuiComp, iview::CImageShape >, and iview::CInteractiveShapeBase.
|
overridevirtual |
Called on update of observed model.
This method is designed to be overload by derrived classes.
Reimplemented from imod::CSingleModelObserverBase.
|
overridevirtual |
Set default description will be used to display on console.
Implements iview::IShape.
Referenced by iqt2d::TShapeParamsGuiCompBase< Ui, Shape, ShapeModel >::CreateShape().
|
overridevirtual |
Implements iview::IShape.
| void iview::CShapeBase::SetTransformMode | ( | ShapeTransformMode | mode | ) |
Set shape transformation mode.
This mode describes which transformation will be used to display shape.
|
overridevirtual |
Set color schema to draw shape.
Implements iview::IShape.
Referenced by iqt2d::TShapeParamsGuiCompBase< Ui, Shape, ShapeModel >::CreateShape().
|
overridevirtual |
Make shape to be visible or not.
Implements iview::IShape.
Referenced by iqt2d::TShapeParamsGuiCompBase< Ui, Shape, ShapeModel >::CreateShape().