28 #include <QStringList>
30 #include <QXmlDefaultHandler>
35 class QXmlStreamWriter;
46 class BundleSolutionInfo;
50 class CorrelationMatrix;
137 QString
name()
const;
151 static QString
cnetRoot(QString projectRoot);
184 void save(
FileName newPath,
bool verifyPathDoesntExist =
true);
188 template<
typename Data>
void warn(QString text, Data relevantData);
190 void warn(QString text);
265 void controlClosed(
QObject *control);
266 void controlListDeleted(
QObject *controlList);
268 void addTargetsFromImportedImagesToProject(
ImageList *imageList);
269 void addCamerasFromImportedImagesToProject(
ImageList *imageList);
270 void imageClosed(
QObject *image);
271 void imageListDeleted(
QObject *imageList);
272 void bundleSolutionInfoClosed(
QObject *bundleSolutionInfo);
273 void targetBodyClosed(
QObject *targetBodyObj);
275 void shapeClosed(
QObject *shape);
276 void shapeListDeleted(
QObject *shapeList);
281 void createFolders();
282 ControlList *createOrRetrieveControlList(QString name);
283 ImageList *createOrRetrieveImageList(QString name);
284 ShapeList *createOrRetrieveShapeList(QString name);
287 QString nextImageListGroupName();
290 void save(QXmlStreamWriter &stream,
FileName newProjectRoot)
const;
291 void saveHistory(QXmlStreamWriter &stream)
const;
292 void saveWarnings(QXmlStreamWriter &stream)
const;
294 void storeWarning(QString text);
295 void storeWarning(QString text,
const ImageList &relevantData);
307 virtual bool startElement(
const QString &namespaceURI,
const QString &localName,
308 const QString &qName,
const QXmlAttributes &atts);
309 virtual bool endElement(
const QString &namespaceURI,
const QString &localName,
310 const QString &qName);
313 Q_DISABLE_COPY(XmlHandler);
325 QDir m_currentCnetFolder;
326 QPointer<Directory> m_directory;
330 TargetBodyList *m_targets;
331 GuiCameraList *m_guiCameras;
333 QPointer<Control> m_activeControl;
334 QPointer<ImageList> m_activeImageList;
339 BundleSettings *m_bundleSettings;
360 QPointer<ImageReader> m_imageReader;
362 bool m_isTemporaryProject;
364 int m_numImagesCurrentlyReading;
367 QMutex *m_imageReadingMutex;
369 int m_numShapesCurrentlyReading;
370 QMutex *m_shapeMutex;
371 QPointer<ShapeReader> m_shapeReader;
372 QMutex *m_shapeReadingMutex;
374 QUndoStack m_undoStack;
This represents an ISIS control net in a project-based GUI interface.
Definition: Control.h:57
Internalizes a list of shapes and allows for operations on the entire list.
Definition: ShapeList.h:33
QString targetBodyRoot() const
Accessor for the root directory of the target body data.
Definition: Project.cpp:1320
void waitForImageReaderFinished()
Definition: Project.cpp:1136
QDir addImageFolder(QString prefix)
Create and return the name of a folder for placing images.
Definition: Project.cpp:686
Internalizes a list of images and allows for operations on the entire list.
Definition: ImageList.h:44
BundleSettings * bundleSettings()
Definition: Project.h:177
QList< ShapeList * > shapes()
Definition: Project.cpp:1295
The main project for cnetsuite.
Definition: Project.h:105
void removeImages(ImageList &imageList)
Definition: Project.cpp:1717
~Project()
Clean up the project.
Definition: Project.cpp:219
QString name() const
Get the project's GUI name.
Definition: Project.cpp:1050
File name manipulation and expansion.
Definition: FileName.h:111
QList< WorkOrder * > workOrderHistory()
Get the entire list of work orders that have executed.
Definition: Project.cpp:1149
Container class for BundleAdjustment results.
Definition: BundleSolutionInfo.h:98
Control * control(QString id)
Definition: Project.cpp:779
QMutex * mutex()
Return mutex used for Naif calls.
Definition: Project.cpp:1079
WorkOrder * lastNotUndoneWorkOrder()
Definition: Project.cpp:1030
QString bundleSolutionInfoRoot() const
Accessor for the root directory of the results data.
Definition: Project.cpp:1370
Shape * shape(QString id)
Definition: Project.cpp:1006
Maintains a list of Controls so that control nets can easily be copied from one Project to another...
Definition: ControlList.h:34
void open(QString)
Open the project at the given path.
Definition: Project.cpp:838
void addControl(Control *control)
Add the given Control's to the current project.
Definition: Project.cpp:646
void controlListAdded(ControlList *controls)
apparently not used?
Definition: moc_Project.cpp:360
ControlList * controlList(QString name)
Definition: Project.cpp:1241
Q_DECLARE_METATYPE(Isis::Cube *)
This allows Cube *'s to be stored in a QVariant.
QUndoStack * undoStack()
Definition: Project.cpp:1101
List for holding TargetBodies.
Definition: TargetBodyList.h:33
ShapeList * shapeList(QString name)
Definition: Project.cpp:1011
Control * activeControl()
Return the Active Control (control network)
Definition: Project.cpp:1182
QString cnetRoot() const
Get where control networks ought to be stored inside the project.
Definition: Project.cpp:1230
void projectLoaded(Project *)
Emitted when project loaded receivers: CNetSuiteMainWindow, Directory, HistoryTreeWidget.
Definition: moc_Project.cpp:416
QString resultsRoot() const
Accessor for the root directory of the results data.
Definition: Project.cpp:1345
QList< ImageList * > images()
Definition: Project.cpp:1300
void workOrderStarting(WorkOrder *)
Definition: moc_Project.cpp:430
void waitForShapeReaderFinished()
Definition: Project.cpp:1141
void relocateProjectRoot(QString newRoot)
This is called when the project is moved.
Definition: Project.cpp:1413
void addBundleSolutionInfo(BundleSolutionInfo *bundleSolutionInfo)
Add the given BundleSolutionInfo to the current project.
Definition: Project.cpp:789
QString shapeDataRoot() const
Accessor for the root directory of the shape model data.
Definition: Project.cpp:1290
void addToProject(WorkOrder *)
Run the work order and stores it in the project.
Definition: Project.cpp:1546
Parent class for anything that performs an action in Project.
Definition: WorkOrder.h:104
void bundleSolutionInfoAdded(BundleSolutionInfo *bundleSolutionInfo)
Emitted when new BundleSolutionInfo available from jigsaw receivers: ProjectTreeWidget (TODO: should ...
Definition: moc_Project.cpp:388
void deleteAllProjectFiles()
Delete all of the files, that this project stores, from disk.
Definition: Project.cpp:1378
Container class for BundleAdjustment settings.
Definition: BundleSettings.h:119
void loadBundleSolutionInfo(BundleSolutionInfo *bundleSolutionInfo)
Definition: Project.cpp:809
TargetBodyList targetBodies()
Definition: Project.cpp:1325
XML Handler that parses XMLs in a stack-oriented way.
Definition: XmlStackedHandler.h:47
void guiCamerasAdded(GuiCameraList *targets)
Emitted when new GuiCamera objects added to project receivers: Directory.
Definition: moc_Project.cpp:402
ImageList * activeImageList()
Returns the active ImageList.
Definition: Project.cpp:1210
void controlAdded(Control *control)
Emitted when new Control added to Project receivers: ProjectTreeWidget.
Definition: moc_Project.cpp:367
This represents a cube in a project-based GUI interface.
Definition: Image.h:91
QDir addBundleSolutionInfoFolder(QString folder)
Create and return the name of a folder for placing BundleSolutionInfo.
Definition: Project.cpp:594
void projectRelocated(Project *)
Emitted when project location moved receivers: Control, BundleSolutionInfo, Image, TargetBody.
Definition: moc_Project.cpp:423
Directory * directory() const
Returns the directory associated with this Project.
Definition: Project.cpp:824
void addShapes(QStringList shapeFiles)
Read the given shape model cube file names as Images and add them to the project. ...
Definition: Project.cpp:764
void save()
Definition: Project.cpp:1419
QList< QAction * > userPreferenceActions()
Get a list of configuration/settings actions related to reading images into this Project.
Definition: Project.cpp:583
QList< ControlList * > controls()
Definition: Project.cpp:1235
Image * image(QString id)
Definition: Project.cpp:987
void shapesAdded(ShapeList *shapes)
Emitted when new shape model images are available.
Definition: moc_Project.cpp:381
void addImages(QStringList imageFiles)
Read the given cube file names as Images and add them to the project.
Definition: Project.cpp:714
void warn(QString text, Data relevantData)
Definition: Project.cpp:1581
QDir addShapeFolder(QString prefix)
Create and return the name of a folder for placing shape models.
Definition: Project.cpp:736
List of GuiCameras saved as QSharedPointers.
Definition: GuiCameraList.h:35
void nameChanged(QString newName)
Emitted when project name is changed receivers: ProjectTreeWidget.
Definition: moc_Project.cpp:409
void imagesAdded(ImageList *images)
Emitted when new images are available.
Definition: moc_Project.cpp:374
QList< BundleSolutionInfo * > bundleSolutionInfo()
Definition: Project.cpp:1350
void setName(QString newName)
Change the project's name (GUI only, doesn't affect location on disk).
Definition: Project.cpp:1095
This represents a shape in a project-based GUI interface.
Definition: Shape.h:70
bool isTemporaryProject() const
Definition: Project.cpp:1025
void workOrderFinished(WorkOrder *)
Definition: moc_Project.cpp:437
void targetsAdded(TargetBodyList *targets)
Emitted when new TargetBody objects added to project receivers: Directory.
Definition: moc_Project.cpp:395
Definition: Directory.h:106
QString projectRoot() const
Get the top-level folder of the project.
Definition: Project.cpp:1087
QDir addCnetFolder(QString prefix)
Create and return the name of a folder for placing control networks.
Definition: Project.cpp:614
Definition: CubeIoHandler.h:38
void setActiveImageList(ImageList *)
Set the Active ImageList.
Definition: Project.cpp:1196
void setActiveControl(Control *)
Set the Active Control (control network)
Definition: Project.cpp:1168
QString imageDataRoot() const
Accessor for the root directory of the image data.
Definition: Project.cpp:1270
QProgressBar * progress()
Definition: Project.cpp:982
ImageList * imageList(QString name)
Definition: Project.cpp:992
Project(Directory &directory, QObject *parent=0)
Create a new Project.
Definition: Project.cpp:73