QCAD
Open Source 2D CAD
|
Graphics view. More...
#include <RGraphicsView.h>
Public Types | |
enum | ColorMode { FullColor, GrayScale, BlackWhite } |
Public Member Functions | |
void | addTextLabel (const RTextLabel &textLabel) |
void | autoZoom (int margin=RDEFAULT_MIN1, bool ignoreEmpty=false, bool ignoreLineweight=false) |
virtual void | centerToBox (const RBox &box) |
Centers the view on the given box . More... | |
virtual void | centerToPoint (const RVector &point) |
Centers the view on the given point . More... | |
void | clear () |
void | clearCaches () |
void | clearTextLabels () |
bool | getAntialiasing () const |
QColor | getBackgroundColor () |
virtual RBox | getBox () const |
REntity::Id | getClosestEntity (const RVector &screenPosition, int range, int strictRange, bool includeLockedLayers=true, bool selectedOnly=false) |
Finds the entity that is the closest to the given screen coordinate (in pixels). More... | |
RRefPoint | getClosestReferencePoint (const RVector &screenPosition, int range) |
Finds the reference point that is the closest to the given screen coordinate (in pixels). More... | |
RRefPoint | getClosestReferencePoint (REntity::Id entityId, const RVector &screenPosition) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
RGraphicsView::ColorMode | getColorMode () |
RVector | getCurrentStepOffset () const |
double | getCurrentStepScaleFactor () const |
virtual QCursor | getCursor () |
virtual double | getDevicePixelRatio () const |
RDocument * | getDocument () const |
RDocumentInterface * | getDocumentInterface () const |
double | getFactor (bool includeStepFactor=true) const |
RGrid * | getGrid () |
bool | getHairlineMinimumMode () |
bool | getHairlineMode () |
virtual int | getHeight () const =0 |
RVector | getLastKnownMousePosition () const |
int | getMargin () |
virtual RVector | getMaximum () const |
virtual RVector | getMinimum () const |
RVector | getOffset (bool includeStepOffset=true) const |
RGraphicsScene * | getScene () const |
virtual bool | getSignalsBlocked () const |
int | getTextHeightThresholdOverride () const |
QList< RTextLabel > | getTextLabels () |
int | getViewportNumber () const |
virtual int | getWidth () const =0 |
virtual void | giveFocus ()=0 |
virtual void | handleKeyPressEvent (QKeyEvent &event) |
virtual void | handleKeyReleaseEvent (QKeyEvent &event) |
virtual void | handleMouseDoubleClickEvent (RMouseEvent &event) |
This should be called by the mouse double click event handler of a higher level GUI toolkit. More... | |
virtual void | handleMouseMoveEvent (RMouseEvent &event) |
This should be called by the mouse move event handler of a higher level GUI toolkit. More... | |
virtual void | handleMousePressEvent (RMouseEvent &event) |
This should be called by the mouse press event handler of a higher level GUI toolkit. More... | |
virtual void | handleMouseReleaseEvent (RMouseEvent &event) |
This should be called by the mouse release event handler of a higher level GUI toolkit. More... | |
virtual void | handlePanGestureEvent (QPanGesture &gesture) |
virtual void | handlePinchGestureEvent (QPinchGesture &gesture) |
virtual void | handleSwipeGestureEvent (QSwipeGesture &gesture) |
virtual void | handleTabletEvent (RTabletEvent &event) |
This should be called by the tablet event handler of a higher level GUI toolkit. More... | |
virtual void | handleTerminateEvent (RTerminateEvent &event) |
virtual void | handleWheelEvent (RWheelEvent &event) |
This should be called by the mouse wheel event handler of a higher level GUI toolkit. More... | |
virtual bool | hasFocus ()=0 |
virtual int | isActive () const |
bool | isExporting () const |
bool | isGridVisible () const |
bool | isPathVisible (const RPainterPath &path) const |
bool | isPrinting () const |
bool | isPrintingOrExporting () const |
bool | isPrintPreview () const |
virtual bool | isShared () const |
Reimplementations may return true to prevent this view from being deleted. More... | |
virtual QList< RVector > | mapCornersFromView () const |
virtual double | mapDistanceFromView (double d) const =0 |
Maps the given view distance in pixels to a model distance. More... | |
virtual double | mapDistanceToView (double d) const =0 |
Maps the given model distance to a screen distance in pixels. More... | |
virtual RVector | mapFromView (const RVector &v, double z=0.0) const =0 |
Maps the given view coordinate in pixels to a model coordinate. More... | |
virtual RBox | mapToView (const RBox &box) const |
Finds the entity that is the closest to the given screen coordinate (in pixels) and inside the current UCS (read floor). More... | |
virtual RVector | mapToView (const RVector &v) const =0 |
Maps the given model coordinate to a view coordinate in pixels. More... | |
virtual void | paintGridLine (const RLine &) |
virtual void | paintGridPoint (const RVector &) |
virtual void | pan (const RVector &delta, bool regen=true) |
Pans (scrolls) by the given amount delta which is a vector in screen coordinates (pixels). More... | |
virtual void | regenerate (bool force=false)=0 |
Regenerates the view to show the visible parts of the underlying scene. More... | |
virtual void | regenerate (QSet< REntity::Id > &affectedEntities) |
virtual bool | registerForFocus () const |
Reimplementations may return true to register this view and allow it to be returned by RDocumentInterface::getLastKnownViewWithFocus. More... | |
virtual void | removeFocus ()=0 |
virtual void | repaintView ()=0 |
Repaints the view (widget, etc..). More... | |
void | restoreViewport () |
RGraphicsView (RGraphicsScene *scene=NULL) | |
Copyright (c) 2011-2018 by Andrew Mustun. More... | |
void | saveViewport () |
void | setAntialiasing (bool val) |
virtual void | setBackgroundColor (const QColor &col) |
void | setColorMode (RGraphicsView::ColorMode cm) |
void | setCurrentStepOffset (const RVector &s) |
void | setCurrentStepScaleFactor (double f) |
virtual void | setCursor (const QCursor &) |
virtual void | setCursor (Qt::CursorShape) |
void | setDisplayOnlyCurrentUcs (bool on) |
If on is true, only the current UCS and the entities that are in its range are displayed. More... | |
void | setExporting (bool on) |
void | setFactor (double f, bool regen=true) |
void | setGrid (RGrid *g) |
Sets the current grid. More... | |
void | setGridVisible (bool on) |
void | setHairlineMinimumMode (bool on) |
void | setHairlineMode (bool on) |
void | setMargin (int m) |
void | setNavigationAction (RAction *action) |
Sets an action object that is typically used to handle all navigation interaction (zooming, panning, ...). More... | |
void | setOffset (const RVector &offset, bool regen=true) |
void | setPrinting (bool on) |
void | setPrintPointSize (const RVector &s) |
void | setPrintPreview (bool on) |
virtual void | setScene (RGraphicsScene *scene, bool regen=true) |
virtual void | setSignalsBlocked (bool on) |
void | setTextHeightThresholdOverride (int v) |
void | setViewportNumber (int n) |
virtual void | simulateMouseMoveEvent () |
void | startPan () |
void | updateTextHeightThreshold () |
virtual void | viewportChangeEvent () |
virtual void | zoom (const RVector ¢er, double factor) |
Zooms in / out by the given factor towards / from the given center in scene coordinates. More... | |
void | zoomIn () |
Zooms in by factor 1.2. More... | |
void | zoomIn (const RVector ¢er, double factor=1.2) |
Zooms in by factor 1.2. More... | |
void | zoomOut () |
Zooms out by factor 1.2. More... | |
void | zoomOut (const RVector ¢er, double factor=1.2) |
Zooms out by factor 1.0/1.2. More... | |
void | zoomPrevious () |
virtual void | zoomTo (const RBox &window, int margin=0) |
Zooms the view in a way that the given window is visible and fills the view. More... | |
bool | zoomToEntities (const QSet< REntity::Id > &ids, int margin=RDEFAULT_MIN1) |
bool | zoomToSelection (int margin=RDEFAULT_MIN1) |
virtual | ~RGraphicsView () |
Protected Attributes | |
bool | antialiasing |
bool | autoScalePatterns |
QColor | backgroundColor |
ColorMode | colorMode |
RVector | currentStepOffset |
double | currentStepScaleFactor |
Current scale factor caused by a pinch gesture. More... | |
bool | displayOnlyCurrentUcs |
True to only display entities within the horizontal slice that is defined by the current UCS. More... | |
bool | exporting |
double | factor |
Scale factor from model coordinates to view coordinates. More... | |
RGrid * | grid |
Grid that is currently displayed by this view or NULL. More... | |
int | gridVisible |
bool | hairlineMinimumMode |
bool | hairlineMode |
RVector | lastKnownModelPosition |
RVector | lastKnownScreenPosition |
int | margin |
RAction * | navigationAction |
The navigation action of this view or NULL if no navigation action has been set. More... | |
RVector | offset |
Offset of the zero point from the lower left corner of the view in model coordinates. More... | |
double | previousFactor |
RVector | previousOffset |
bool | printing |
RVector | printPointSize |
bool | printPreview |
RGraphicsScene * | scene |
The scene this view is attached to. More... | |
int | textHeightThreshold |
int | textHeightThresholdOverride |
QList< RTextLabel > | textLabels |
Internal list of text labels that were added to this view. More... | |
int | viewportNumber |
Additional Inherited Members | |
Private Member Functions inherited from RNonCopyable | |
RNonCopyable () | |
~RNonCopyable () | |
Graphics view.
A graphics view displays a (part of a) graphics scene.
RGraphicsView::RGraphicsView | ( | RGraphicsScene * | scene = NULL | ) |
Copyright (c) 2011-2018 by Andrew Mustun.
All rights reserved.
This file is part of the QCAD project.
QCAD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
QCAD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with QCAD.
|
virtual |
void RGraphicsView::addTextLabel | ( | const RTextLabel & | textLabel | ) |
void RGraphicsView::autoZoom | ( | int | margin = RDEFAULT_MIN1 , |
bool | ignoreEmpty = false , |
||
bool | ignoreLineweight = false |
||
) |
|
virtual |
Centers the view on the given box
.
The view is updated.
box | Box to move into the center of the drawing in model coordinates. |
Reimplemented in RGraphicsViewImage.
|
virtual |
Centers the view on the given point
.
The view is updated.
point | Point to move into the center of the drawing in model coordinates. |
Reimplemented in RGraphicsViewImage.
|
inline |
void RGraphicsView::clearCaches | ( | ) |
void RGraphicsView::clearTextLabels | ( | ) |
bool RGraphicsView::getAntialiasing | ( | ) | const |
QColor RGraphicsView::getBackgroundColor | ( | ) |
|
virtual |
Reimplemented in RGraphicsViewImage.
REntity::Id RGraphicsView::getClosestEntity | ( | const RVector & | screenPosition, |
int | range, | ||
int | strictRange, | ||
bool | includeLockedLayers = true , |
||
bool | selectedOnly = false |
||
) |
Finds the entity that is the closest to the given screen coordinate (in pixels).
range | Maximum distance in pixels. |
Finds the reference point that is the closest to the given screen coordinate (in pixels).
range | Maximum distance in pixels. |
RRefPoint RGraphicsView::getClosestReferencePoint | ( | REntity::Id | entityId, |
const RVector & | screenPosition | ||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
RGraphicsView::ColorMode RGraphicsView::getColorMode | ( | ) |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in RGraphicsViewQt.
|
inlinevirtual |
Reimplemented in RGraphicsViewQt.
RDocument * RGraphicsView::getDocument | ( | ) | const |
RDocumentInterface * RGraphicsView::getDocumentInterface | ( | ) | const |
double RGraphicsView::getFactor | ( | bool | includeStepFactor = true | ) | const |
|
inline |
bool RGraphicsView::getHairlineMinimumMode | ( | ) |
bool RGraphicsView::getHairlineMode | ( | ) |
|
pure virtual |
Implemented in RGraphicsViewImage, and RGraphicsViewQt.
|
inline |
int RGraphicsView::getMargin | ( | ) |
|
virtual |
|
virtual |
RVector RGraphicsView::getOffset | ( | bool | includeStepOffset = true | ) | const |
RGraphicsScene * RGraphicsView::getScene | ( | ) | const |
|
inlinevirtual |
Reimplemented in RGraphicsViewQt.
|
inline |
QList< RTextLabel > RGraphicsView::getTextLabels | ( | ) |
|
inline |
|
pure virtual |
Implemented in RGraphicsViewImage, and RGraphicsViewQt.
|
pure virtual |
Implemented in RGraphicsViewImage, and RGraphicsViewQt.
|
virtual |
|
virtual |
|
virtual |
This should be called by the mouse double click event handler of a higher level GUI toolkit.
Events are forwarded to the scene and the navigation action that is attached to this view.
|
virtual |
This should be called by the mouse move event handler of a higher level GUI toolkit.
Events are forwarded to the scene and the navigation action that is attached to this view.
|
virtual |
This should be called by the mouse press event handler of a higher level GUI toolkit.
Events are forwarded to the scene and the navigation action that is attached to this view.
|
virtual |
This should be called by the mouse release event handler of a higher level GUI toolkit.
Events are forwarded to the scene and the navigation action that is attached to this view.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
This should be called by the tablet event handler of a higher level GUI toolkit.
Events are forwarded to the scene and the navigation action that is attached to this view.
|
virtual |
|
virtual |
This should be called by the mouse wheel event handler of a higher level GUI toolkit.
Events are forwarded to the scene and the navigation action that is attached to this view.
|
pure virtual |
Implemented in RGraphicsViewImage, and RGraphicsViewQt.
|
inlinevirtual |
bool RGraphicsView::isExporting | ( | ) | const |
bool RGraphicsView::isGridVisible | ( | ) | const |
bool RGraphicsView::isPathVisible | ( | const RPainterPath & | path | ) | const |
bool RGraphicsView::isPrinting | ( | ) | const |
bool RGraphicsView::isPrintingOrExporting | ( | ) | const |
bool RGraphicsView::isPrintPreview | ( | ) | const |
|
inlinevirtual |
Reimplementations may return true to prevent this view from being deleted.
|
virtual |
|
pure virtual |
Maps the given view distance in pixels to a model distance.
If the view projection is not orthogonal the result is undefined.
Implemented in RGraphicsViewImage.
|
pure virtual |
Maps the given model distance to a screen distance in pixels.
If the view projection is not orthogonal the result is undefined.
Implemented in RGraphicsViewImage.
Maps the given view coordinate in pixels to a model coordinate.
v | view coordinate in pixels, v.z is always 0 |
z | known z coordinate in model units |
Implemented in RGraphicsViewImage.
Finds the entity that is the closest to the given screen coordinate (in pixels) and inside the current UCS (read floor).
range | Maximum distance in pixels. |
box
(e.g. a 3d bounding box) to a 2d box in view coordinates (pixels). Maps the given model coordinate to a view coordinate in pixels.
Implemented in RGraphicsViewImage.
|
inlinevirtual |
Reimplemented in RGraphicsViewImage.
|
inlinevirtual |
Reimplemented in RGraphicsViewImage.
|
virtual |
Pans (scrolls) by the given amount delta
which is a vector in screen coordinates (pixels).
Reimplemented in RGraphicsViewImage.
|
pure virtual |
Regenerates the view to show the visible parts of the underlying scene.
This function is called after the entities have been modified or the view port changed after a zoom or pan or after the window has been resized.
force | True if scene has changed, don't use any optimizations, force regeneration. |
Implemented in RGraphicsViewImage.
|
inlinevirtual |
|
inlinevirtual |
Reimplementations may return true to register this view and allow it to be returned by RDocumentInterface::getLastKnownViewWithFocus.
Reimplemented in RGraphicsViewQt.
|
pure virtual |
Implemented in RGraphicsViewImage, and RGraphicsViewQt.
|
pure virtual |
Repaints the view (widget, etc..).
This differs from regenerate in that it does not require the view to iterate through the scene elements. Instead for example a buffered bitmap might be drawn. This is for example called when the preview changes to restore the view before painting the preview on top of it.
Implemented in RGraphicsViewImage, and RGraphicsViewQt.
void RGraphicsView::restoreViewport | ( | ) |
void RGraphicsView::saveViewport | ( | ) |
void RGraphicsView::setAntialiasing | ( | bool | val | ) |
|
virtual |
Reimplemented in RGraphicsViewImage.
void RGraphicsView::setColorMode | ( | RGraphicsView::ColorMode | cm | ) |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in RGraphicsViewQt.
|
inlinevirtual |
Reimplemented in RGraphicsViewQt.
void RGraphicsView::setDisplayOnlyCurrentUcs | ( | bool | on | ) |
If on
is true, only the current UCS and the entities that are in its range are displayed.
The range of a UCS is defined by the length of its axis vectors. This can be used to display only one floor in an architecture application.
void RGraphicsView::setExporting | ( | bool | on | ) |
void RGraphicsView::setFactor | ( | double | f, |
bool | regen = true |
||
) |
|
inline |
Sets the current grid.
This graphics view takes ownership of the grid. The previous grid is deleted. Setting the grid to NULL disables the grid.
void RGraphicsView::setGridVisible | ( | bool | on | ) |
void RGraphicsView::setHairlineMinimumMode | ( | bool | on | ) |
void RGraphicsView::setHairlineMode | ( | bool | on | ) |
void RGraphicsView::setMargin | ( | int | m | ) |
void RGraphicsView::setNavigationAction | ( | RAction * | action | ) |
Sets an action object that is typically used to handle all navigation interaction (zooming, panning, ...).
All events that are received by this view are first sent to the graphics scene and then to this action if they were not consumed yet.
void RGraphicsView::setOffset | ( | const RVector & | offset, |
bool | regen = true |
||
) |
void RGraphicsView::setPrinting | ( | bool | on | ) |
void RGraphicsView::setPrintPointSize | ( | const RVector & | s | ) |
void RGraphicsView::setPrintPreview | ( | bool | on | ) |
|
virtual |
|
inlinevirtual |
Reimplemented in RGraphicsViewQt.
|
inline |
void RGraphicsView::setViewportNumber | ( | int | n | ) |
|
virtual |
Reimplemented in RGraphicsViewImage, and RGraphicsViewQt.
void RGraphicsView::startPan | ( | ) |
void RGraphicsView::updateTextHeightThreshold | ( | ) |
|
virtual |
Reimplemented in RGraphicsViewQt.
|
virtual |
Zooms in / out by the given factor towards / from the given center in scene coordinates.
Reimplemented in RGraphicsViewImage.
void RGraphicsView::zoomIn | ( | ) |
Zooms in by factor 1.2.
The center point is at the center of the view.
void RGraphicsView::zoomIn | ( | const RVector & | center, |
double | factor = 1.2 |
||
) |
Zooms in by factor 1.2.
The given center
point stays at the same position.
void RGraphicsView::zoomOut | ( | ) |
Zooms out by factor 1.2.
The center point is at the center of the view.
void RGraphicsView::zoomOut | ( | const RVector & | center, |
double | factor = 1.2 |
||
) |
Zooms out by factor 1.0/1.2.
The given center
point stays at the same position.
void RGraphicsView::zoomPrevious | ( | ) |
|
virtual |
Zooms the view in a way that the given window is visible and fills the view.
The view is updated.
Reimplemented in RGraphicsViewImage.
bool RGraphicsView::zoomToEntities | ( | const QSet< REntity::Id > & | ids, |
int | margin = RDEFAULT_MIN1 |
||
) |
bool RGraphicsView::zoomToSelection | ( | int | margin = RDEFAULT_MIN1 | ) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Current scale factor caused by a pinch gesture.
|
protected |
True to only display entities within the horizontal slice that is defined by the current UCS.
|
protected |
|
protected |
Scale factor from model coordinates to view coordinates.
|
protected |
Grid that is currently displayed by this view or NULL.
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
The navigation action of this view or NULL if no navigation action has been set.
|
protected |
Offset of the zero point from the lower left corner of the view in model coordinates.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
The scene this view is attached to.
|
protected |
|
protected |
|
protected |
Internal list of text labels that were added to this view.
|
protected |