This class implements a concrete tool to measure operation (distance, area, and angle). More...
#include <Measure.h>
Public Types | |
enum | MeasureType { Distance, Area, Angle } |
Defines the measure type measured by this tool. More... | |
Public Member Functions | |
virtual void | setCursor (const QCursor &cursor) |
It sets the tool cursor. More... | |
Initializer Methods | |
Methods related to instantiation and destruction. | |
Measure (MapDisplay *display, const MeasureType &measureType, const QCursor &cursor, QObject *parent=0) | |
It constructs a measure tool associated with the given map display. More... | |
~Measure () | |
Destructor. More... | |
AbstractTool Methods | |
Methods related with tool behavior. | |
bool | mousePressEvent (QMouseEvent *e) |
This event handler can be reimplemented in a concrete tool class to receive mouse press events for the watched object. More... | |
bool | mouseMoveEvent (QMouseEvent *e) |
This event handler can be reimplemented in a concrete tool class to receive mouse move events for the watched object. More... | |
bool | mouseReleaseEvent (QMouseEvent *e) |
This event handler can be reimplemented in a concrete tool class to receive mouse release events for the watched object. More... | |
bool | mouseDoubleClickEvent (QMouseEvent *e) |
This event handler can be reimplemented in a concrete tool class to receive mouse double click events for the watched object. More... | |
AbstractTool Methods | |
Methods related with tool behavior. | |
virtual bool | eventFilter (QObject *watched, QEvent *e) |
Filters events if this object has been installed as an event filter for the watched object. More... | |
Protected Attributes | |
QBrush | m_brush |
The brush used to draw the path. More... | |
std::vector< te::gm::Coord2D > | m_coords |
The coord list managed by the measure tool. More... | |
QCursor | m_cursor |
The default tool cursor. More... | |
MapDisplay * | m_display |
The map display associated with the tool. More... | |
bool | m_isFinished |
A flag that indicates if the operations was finished. More... | |
te::gm::Coord2D | m_lastPos |
The last position captured on mouse move event. More... | |
MeasureType | m_measureType |
The measure type. More... | |
QPen | m_pen |
The pen used to draw the path. More... | |
std::string | m_unit |
The unit symbol for the measure. More... | |
Private Slots | |
void | onExtentChanged () |
Private Member Functions | |
double | calculateAngle (te::gm::LineString *line) const |
double | calculateLength (te::gm::LineString *line) const |
void | clear () |
void | drawGeometry () |
void | drawLine (Canvas &canvas) |
void | drawPolygon (Canvas &canvas) |
void | drawText (Canvas &canvas, const std::string &text, te::gm::Point *p) |
This class implements a concrete tool to measure operation (distance, area, and angle).
te::qt::widgets::Measure::Measure | ( | MapDisplay * | display, |
const MeasureType & | measureType, | ||
const QCursor & | cursor, | ||
QObject * | parent = 0 |
||
) |
It constructs a measure tool associated with the given map display.
display | The map display associated with the tool. |
parent | The tool's parent. |
Definition at line 48 of file Measure.cpp.
References te::common::Singleton< SpatialReferenceSystemManager >::getInstance(), te::map::MapDisplay::getSRID(), m_brush, te::qt::widgets::AbstractTool::m_display, m_pen, m_unit, onExtentChanged(), te::qt::widgets::AbstractTool::setCursor(), and TE_UNKNOWN_SRS.
te::qt::widgets::Measure::~Measure | ( | ) |
Destructor.
Definition at line 71 of file Measure.cpp.
|
private |
Definition at line 266 of file Measure.cpp.
References te::gm::LineString::getNPoints(), te::gm::LineString::getPointN(), te::gm::Point::getX(), and te::gm::Point::getY().
|
private |
Definition at line 256 of file Measure.cpp.
References te::gm::Geometry::distance(), te::gm::LineString::getNPoints(), and te::gm::LineString::getPointN().
|
private |
Definition at line 246 of file Measure.cpp.
|
private |
Definition at line 141 of file Measure.cpp.
References te::common::Angle, te::common::Area, te::gm::Envelope::isValid(), te::gm::Envelope::m_llx, te::gm::Envelope::m_lly, te::gm::Envelope::m_urx, te::gm::Envelope::m_ury, and te::qt::widgets::Canvas::setDevice().
|
private |
Definition at line 175 of file Measure.cpp.
References te::common::Angle, te::qt::widgets::Canvas::draw(), te::gm::LineString::getEndPoint(), te::gm::LineString::getNPoints(), te::gm::LineString::getPointN(), te::gm::LineStringType, te::qt::widgets::Canvas::setLineColor(), te::qt::widgets::Canvas::setLineWidth(), and te::gm::LineString::setPoint().
|
private |
Definition at line 203 of file Measure.cpp.
References te::qt::widgets::Canvas::draw(), te::gm::CurvePolygon::getArea(), te::gm::Envelope::getCenter(), te::gm::Geometry::getMBR(), te::gm::LineStringType, te::gm::PolygonType, te::gm::LineString::setPoint(), te::qt::widgets::Canvas::setPolygonContourColor(), te::qt::widgets::Canvas::setPolygonContourWidth(), te::qt::widgets::Canvas::setPolygonFillColor(), te::gm::CurvePolygon::setRingN(), te::gm::Coord2D::x, and te::gm::Coord2D::y.
|
private |
Definition at line 233 of file Measure.cpp.
References te::at::Bold, te::qt::widgets::Canvas::drawText(), te::qt::widgets::Canvas::setFontFamily(), te::qt::widgets::Canvas::setTextColor(), te::qt::widgets::Canvas::setTextContourColor(), te::qt::widgets::Canvas::setTextContourEnabled(), te::qt::widgets::Canvas::setTextContourWidth(), te::qt::widgets::Canvas::setTextPointSize(), te::qt::widgets::Canvas::setTextWeight(), and TE_OPAQUE.
|
virtualinherited |
Filters events if this object has been installed as an event filter for the watched object.
watched | The watched object. |
event | The last event sent to watched object. |
Reimplemented in te::qt::widgets::ZoomKeyboard, and te::qt::widgets::ZoomWheel.
Definition at line 50 of file AbstractTool.cpp.
Referenced by te::qt::widgets::ZoomKeyboard::eventFilter(), and te::qt::widgets::ZoomWheel::eventFilter().
|
virtual |
This event handler can be reimplemented in a concrete tool class to receive mouse double click events for the watched object.
e | The mouse event. |
Reimplemented from te::qt::widgets::AbstractTool.
Definition at line 128 of file Measure.cpp.
References te::common::Area.
|
virtual |
This event handler can be reimplemented in a concrete tool class to receive mouse move events for the watched object.
e | The mouse event. |
Reimplemented from te::qt::widgets::AbstractTool.
Definition at line 98 of file Measure.cpp.
|
virtual |
This event handler can be reimplemented in a concrete tool class to receive mouse press events for the watched object.
e | The mouse event. |
Reimplemented from te::qt::widgets::AbstractTool.
Definition at line 77 of file Measure.cpp.
References te::common::Angle.
|
virtual |
This event handler can be reimplemented in a concrete tool class to receive mouse release events for the watched object.
e | The mouse event. |
Reimplemented from te::qt::widgets::AbstractTool.
Definition at line 123 of file Measure.cpp.
|
privateslot |
Definition at line 281 of file Measure.cpp.
References te::common::Singleton< SpatialReferenceSystemManager >::getInstance(), and TE_UNKNOWN_SRS.
Referenced by Measure().
|
virtualinherited |
It sets the tool cursor.
cursor | The cursor that will be used during the tool operation. |
Definition at line 98 of file AbstractTool.cpp.
Referenced by te::edit::CreateLineTool::CreateLineTool(), te::edit::CreatePolygonTool::CreatePolygonTool(), te::qt::widgets::ExtentAcquire::ExtentAcquire(), te::qt::widgets::Info::Info(), Measure(), te::qt::widgets::Pan::Pan(), te::qt::widgets::PanExtent::PanExtent(), te::qt::widgets::PointPicker::PointPicker(), te::qt::widgets::Selection::Selection(), te::qt::widgets::ZoomArea::ZoomArea(), and te::qt::widgets::ZoomClick::ZoomClick().
|
protected |
|
protected |
|
protectedinherited |
The default tool cursor.
Definition at line 161 of file AbstractTool.h.
|
protectedinherited |
The map display associated with the tool.
Definition at line 160 of file AbstractTool.h.
Referenced by te::qt::widgets::AbstractTool::AbstractTool(), te::qt::widgets::CoordTracking::CoordTracking(), te::edit::CreateLineTool::CreateLineTool(), te::edit::CreatePolygonTool::CreatePolygonTool(), Measure(), te::edit::MoveGeometryTool::MoveGeometryTool(), te::qt::widgets::PolygonAcquire::PolygonAcquire(), te::edit::VertexTool::VertexTool(), and te::qt::widgets::ZoomKeyboard::ZoomKeyboard().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |