27 #include "../../../dataaccess/dataset/ObjectId.h" 
   28 #include "../../../qt/widgets/canvas/MapDisplay.h" 
   29 #include "../../../qt/widgets/Utils.h" 
   30 #include "../../Feature.h" 
   31 #include "../../RepositoryManager.h" 
   32 #include "../../Utils.h" 
   33 #include "../Renderer.h" 
   38 #include <QMessageBox> 
   39 #include <QMouseEvent> 
   48   : AbstractTool(display, parent),
 
   68   if(e->button() != Qt::LeftButton)
 
   88   QPointF currentPosition = m_display->transform(
GetPosition(e));
 
   91   m_delta = currentPosition - m_origin;
 
   94   MoveGeometry(m_feature->getGeometry(), m_delta.x(), m_delta.y());
 
  100   m_origin = currentPosition;
 
  107   m_moveStarted = 
false;
 
  122   m_moveStarted = 
false;
 
  136     m_feature = 
PickFeature(m_layer, env, m_display->getSRID());
 
  140   catch(std::exception& e)
 
  142     QMessageBox::critical(m_display, tr(
"Error"), QString(tr(
"The geometry cannot be selected from the layer. Details:") + 
" %1.").arg(e.what()));
 
  148   QPointF pixelOffset(4.0, 4.0);
 
  150   QRectF rect(pos - pixelOffset, pos + pixelOffset);
 
  153   QPointF ll(rect.left(), rect.bottom());
 
  154   QPointF ur(rect.right(), rect.top());
 
  155   ll = m_display->transform(ll);
 
  156   ur = m_display->transform(ur);
 
  170   QPixmap* draft = m_display->getDraftPixmap();
 
  171   draft->fill(Qt::transparent);
 
  175   renderer.
begin(draft, env, m_display->getSRID());
 
  178   renderer.
drawRepository(m_layer->getId(), env, m_display->getSRID());
 
  183     m_display->repaint();
 
  189     renderer.
draw(m_feature->getGeometry(), 
true);
 
  195   m_display->repaint();
 
  200   m_display->setCursor(Qt::ArrowCursor);
 
void addGeometry(const std::string &source, te::gm::Geometry *geom)
 
static Renderer & getInstance()
It returns a reference to the singleton instance. 
 
An Envelope defines a 2D rectangular region. 
 
TEEDITEXPORT Feature * PickFeature(const te::map::AbstractLayerPtr &layer, const te::gm::Envelope &env, int srid)
 
TEEDITQTEXPORT QPointF GetPosition(QMouseEvent *e)
 
void draw(te::gm::Geometry *geom, bool showVertexes=false)
 
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards. 
 
TEEDITEXPORT void MoveGeometry(te::gm::Geometry *geom, const double &deltax, const double &deltay)
 
This is a singleton for rendering geometries and features. 
 
void drawVertexes(te::gm::Geometry *geom)
 
void begin(QPaintDevice *device, const te::gm::Envelope &e, int srid)
 
void drawRepository(const std::string &source, const te::gm::Envelope &e, int srid)
 
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
 
bool isValid() const 
It tells if the rectangle is valid or not.