1#ifndef MosaicSceneWidget_H
2#define MosaicSceneWidget_H
9template <
typename A>
class QList;
11class QGraphicsPolygonItem;
14class QGraphicsSceneContextMenuEvent;
26 class MosaicGraphicsView;
27 class MosaicSceneItem;
158 bool showTools,
bool internalizeToolBarsAndProgress,
174 QList<MosaicSceneItem *> allMosaicSceneItems() {
175 return *m_mosaicSceneItems;
178 void addTo(
QMenu *menu);
180 void addToPermanent(
QToolBar *toolBar);
183 using QWidget::contextMenuEvent;
188 bool cubesSelectable()
const {
189 return m_cubesSelectable;
192 void enableRubberBand(
bool);
193 bool blockSelectionChange(
bool);
195 bool userHasTools()
const {
196 return m_userToolControl;
202 void save(QXmlStreamWriter &stream,
Project *project,
FileName newProjectRoot)
const;
205 QRectF cubesBoundingRect()
const;
212 QList<QAction *> getExportActions();
213 QList<QAction *> getViewActions();
217 double moveDownOne(
Image *);
221 double moveToBottom(
Image *);
225 double moveUpOne(
Image *);
229 double moveToTop(
Image *);
233 double moveZ(
Image *image,
double newZ,
bool newZValueMightExist =
true);
238 template <
typename DataType>
240 return QList<QAction *>();
243 bool isControlNetToolActive();
245 static QWidget *getControlNetHelp(
QWidget *cnetToolContainer = NULL);
247 static QWidget *getLongHelp(
QWidget *mosaicSceneContainer = NULL);
249 static QWidget *getPreviewHelp(
QWidget *worldViewContainer = NULL);
253 void mouseMove(QPointF);
255 void mouseDoubleClick(QPointF);
256 void mouseButtonPress(QPointF, Qt::MouseButton s);
257 void mouseButtonRelease(QPointF, Qt::MouseButton s);
258 void mouseWheel(QPointF,
int delta);
260 void rubberBandComplete(QRectF r, Qt::MouseButton s);
261 void visibleRectChanged(QRectF);
265 void queueSelectionChanged();
269 void createControlPoint(
double latitude,
double longitude);
274 void controlPointChanged(QString pointId);
275 void controlPointDeleted();
277 void mosCubeClosed(
Image *);
283 void setCubesSelectable(
bool);
285 void setOutlineRect(QRectF);
299 void onSelectionChanged();
300 void onQueuedSelectionChanged();
303 void quickConfigProjectionParameters();
304 void sendVisibleRectChanged();
307 virtual bool eventFilter(
QObject *obj, QEvent *ev);
315 void recalcSceneRect();
329 bool m_cubesSelectable;
330 bool m_customRubberBandEnabled;
331 QRubberBand *m_customRubberBand;
332 QPoint *m_rubberBandOrigin;
336 QList<MosaicSceneItem *> *m_mosaicSceneItems;
337 QMap<DisplayProperties *, MosaicSceneItem *> m_displayPropsToMosaicSceneItemMap;
340 QToolButton *m_mapButton;
343 QList<MosaicTool *> *m_tools;
352 QHash<QString, double> *m_projectImageZOrders;
354 bool m_blockingSelectionChanged;
355 bool m_userToolControl;
356 bool m_ownProjection;
357 bool m_queuedSelectionChanged;
358 bool m_shouldRequeueSelectionChanged;
360 double m_currentMinimumFootprintZ;
361 double m_currentMaximumFootprintZ;
File name manipulation and expansion.
This represents a cube in a project-based GUI interface.
Internalizes a list of images and allows for operations on the entire list.
A graphics view that resizes in a more friendly way.
A single cube in the mosaic scene.
The main project for ipce.
Base class for Map Projections.
Contains multiple PvlContainers.
Container for cube-like labels.
Contains Pvl Groups and Pvl Objects.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.