Isis 3 Programmer Reference
FindSpotGraphicsItem.cpp
1 #include "FindSpotGraphicsItem.h"
2 
3 #include <float.h>
4 #include <iostream>
5 
6 #include <QGraphicsScene>
7 
8 #include "MosaicGraphicsView.h"
9 #include "MosaicSceneWidget.h"
10 
11 using namespace std;
12 
13 namespace Isis {
14  FindSpotGraphicsItem::FindSpotGraphicsItem(QPointF center,
15  MosaicSceneWidget *boundingRectSrc) {
16  m_centerPoint = new QPointF(center);
17  m_mosaicScene = boundingRectSrc;
18  setZValue(DBL_MAX);
19 
20  setPen(Qt::NoPen);
21  setBrush(QBrush(Qt::red, Qt::SolidPattern));
22  setRect(calcRect());
23  }
24 
25 
26  FindSpotGraphicsItem::~FindSpotGraphicsItem() {
27  delete m_centerPoint;
28  m_centerPoint = NULL;
29  }
30 
31 
32  void FindSpotGraphicsItem::paint(QPainter *painter,
33  const QStyleOptionGraphicsItem *style, QWidget * widget) {
34  QRectF findRect = calcRect();
35 
36  if(rect() != findRect)
37  setRect(findRect);
38  else
39  QGraphicsEllipseItem::paint(painter, style, widget);
40  }
41 
42 
43  QRectF FindSpotGraphicsItem::calcRect() const {
44  QRectF findRect;
45 
46  if(m_centerPoint) {
47  static const int size = 8;
48  QPoint findSpotScreen =
49  m_mosaicScene->getView()->mapFromScene(*m_centerPoint);
50  QPoint findSpotTopLeftScreen =
51  findSpotScreen - QPoint(size / 2, size / 2);
52 
53  QRect findRectScreen(findSpotTopLeftScreen, QSize(size, size));
54  findRect =
55  m_mosaicScene->getView()->mapToScene(findRectScreen).boundingRect();
56  }
57 
58  return findRect;
59  }
60 }
Namespace for the standard library.
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31