30#include <QXmlDefaultHandler>
35class QXmlStreamWriter;
47 class BundleSolutionInfo;
51 class CorrelationMatrix;
335 QString
name()
const;
360 QList<ImageList *>
images();
364 QList<ShapeList *>
shapes();
403 void save(
FileName projectPath,
bool verifyPathDoesntExist =
true);
407 template<
typename Data>
void warn(QString text, Data relevantData);
409 void warn(QString text);
562 void targetBodyClosed(
QObject *targetBodyObj);
566 void checkActiveControlAndImageList();
567 void checkControlsAndImagesAvailable();
572 void createFolders();
574 ControlList *createOrRetrieveControlList(QString
name, QString path =
"");
575 ImageList *createOrRetrieveImageList(QString
name, QString path =
"");
576 ShapeList *createOrRetrieveShapeList(QString
name, QString path =
"");
581 QString nextImageListGroupName();
585 void saveHistory(QXmlStreamWriter &stream)
const;
586 void saveWarnings(QXmlStreamWriter &stream)
const;
588 void storeWarning(QString text);
589 void storeWarning(QString text,
const ImageList &relevantData);
601 virtual bool startElement(
const QString &namespaceURI,
const QString &localName,
602 const QString &qName,
const QXmlAttributes &atts);
603 virtual bool endElement(
const QString &namespaceURI,
const QString &localName,
604 const QString &qName);
607 Q_DISABLE_COPY(XmlHandler);
610 QList<ImageList *> m_imageLists;
611 QList<ShapeList *> m_shapeLists;
612 QList<ControlList *> m_controls;
613 QList<BundleSolutionInfo *> m_bundleSolutionInfos;
614 QList<TemplateList *> m_mapTemplateLists;
615 QList<TemplateList *> m_regTemplateLists;
621 static const int m_maxRecentProjects = 5;
623 QString m_newProjectRoot;
625 QDir m_currentCnetFolder;
626 QPointer<Directory> m_directory;
627 QList<ImageList *> *m_images;
628 QList<ControlList *> *m_controls;
629 QList<ShapeList *> *m_shapes;
631 QList<TemplateList *> *m_mapTemplates;
632 QList<TemplateList *> *m_regTemplates;
634 QList<BundleSolutionInfo *> *m_bundleSolutionInfo;
636 QPointer<Control> m_activeControl;
637 QPointer<ImageList> m_activeImageList;
651 QMap<QString, Control *> *m_idToControlMap;
652 QMap<QString, Image *> *m_idToImageMap;
653 QMap<QString, Shape *> *m_idToShapeMap;
654 QMap<QString, BundleSolutionInfo *> *m_idToBundleSolutionInfoMap;
655 QMap<QString, TargetBody *> *m_idToTargetBodyMap;
656 QMap<QString, GuiCamera *> *m_idToGuiCameraMap;
660 QList< QPointer<WorkOrder> > *m_workOrderHistory;
662 QPointer<ImageReader> m_imageReader;
664 bool m_isTemporaryProject;
668 int m_numImagesCurrentlyReading;
671 QMutex *m_workOrderMutex;
672 QMutex *m_imageReadingMutex;
674 int m_numShapesCurrentlyReading;
675 QMutex *m_shapeMutex;
676 QPointer<ShapeReader> m_shapeReader;
677 QMutex *m_shapeReadingMutex;
679 QUndoStack m_undoStack;
Q_DECLARE_METATYPE(Isis::Project *)
Container class for BundleAdjustment settings.
Definition BundleSettings.h:125
Container class for BundleAdjustment results.
Definition BundleSolutionInfo.h:162
This represents an ISIS control net in a project-based GUI interface.
Definition Control.h:66
Maintains a list of Controls so that control nets can easily be copied from one Project to another,...
Definition ControlList.h:44
Definition Directory.h:271
File name manipulation and expansion.
Definition FileName.h:100
List of GuiCameras saved as QSharedPointers.
Definition GuiCameraList.h:35
This represents a cube in a project-based GUI interface.
Definition Image.h:107
Internalizes a list of images and allows for operations on the entire list.
Definition ImageList.h:55
The main project for ipce.
Definition Project.h:289
void activeControlSet(bool boolean)
Emitted when an active control is set.
void setActiveImageList(QString displayName)
Set the Active ImageList from the displayName which is saved in project.xml.
Definition Project.cpp:1954
void addBundleSolutionInfo(BundleSolutionInfo *bundleSolutionInfo)
Add the given BundleSolutionInfo to the current project.
Definition Project.cpp:1193
void activeImageListSet()
Emitted when an active image list is set.
Shape * shape(QString id)
Return a shape given its id.
Definition Project.cpp:1538
QString targetBodyRoot() const
Accessor for the root directory of the target body data.
Definition Project.cpp:2185
QMutex * mutex()
Return mutex used for Naif calls.
Definition Project.cpp:1657
ImageList * imageList(QString name)
Return an imagelist given its name.
Definition Project.cpp:1519
void workOrderStarting(WorkOrder *)
Emitted when work order starts.
QList< TemplateList * > templates()
Return all template FileNames.
Definition Project.cpp:2144
bool isTemporaryProject() const
Returns if the project is a temp project or not.
Definition Project.cpp:1566
void bundleSolutionInfoAdded(BundleSolutionInfo *bundleSolutionInfo)
Emitted when new BundleSolutionInfo available from jigsaw receivers: ProjectTreeWidget (TODO: should ...
void setName(QString newName)
Change the project's name (GUI only, doesn't affect location on disk).
Definition Project.cpp:1683
void imagesAdded(ImageList *images)
Emitted when new images are available.
void projectSaved(Project *)
Emitted when project is saved.
QDir addCnetFolder(QString prefix)
Create and return the name of a folder for placing control networks.
Definition Project.cpp:925
void controlListAdded(ControlList *controls)
apparently not used?
void addControl(Control *control)
Add the given Control's to the current project.
Definition Project.cpp:957
WorkOrder * lastNotUndoneWorkOrder()
Return the last not undone workorder.
Definition Project.cpp:1604
QDir addTemplateFolder(QString prefix)
Create and navigate to the appropriate template type folder in the project directory.
Definition Project.cpp:1133
void allControlsRemoved()
Emitted when all controls have been removed from the Project.
QString bundleSolutionInfoRoot() const
Accessor for the root directory of the results data.
Definition Project.cpp:2242
void projectRelocated(Project *)
Emitted when project location moved receivers: Control, BundleSolutionInfo, Image,...
void deleteAllProjectFiles()
Delete all of the files, that this project stores, from disk.
Definition Project.cpp:2250
QString newProjectRoot() const
Get the top-level folder of the new project.
Definition Project.cpp:1674
void setActiveControl(QString displayName)
Set the Active Control (control network)
Definition Project.cpp:1818
QDir addBundleSolutionInfoFolder(QString folder)
Create and return the name of a folder for placing BundleSolutionInfo.
Definition Project.cpp:1173
QList< TemplateList * > regTemplates()
Return registration template FileNames.
Definition Project.cpp:2165
void projectLoaded(Project *)
Emitted when project loaded receivers: IpceMainWindow, Directory, HistoryTreeWidget.
QString templateRoot() const
Accessor for the root directory of the template data.
Definition Project.cpp:2134
QUndoStack * undoStack()
Returns the Projects stack of QUndoCommands.
Definition Project.cpp:1693
void workOrderFinished(WorkOrder *)
Emitted when work order ends.
bool hasCamera(QString id)
This method checks for the existence of a camera based on InstrumentId.
Definition Project.cpp:2744
QList< WorkOrder * > workOrderHistory()
Get the entire list of work orders that have executed.
Definition Project.cpp:1747
void templatesAdded(TemplateList *newTemplates)
QString resultsRoot() const
Accessor for the root directory of the results data.
Definition Project.cpp:2213
void addImagesToIdMap(ImageList images)
Add images to the id map which are not under the projects main data area, the Images node on the proj...
Definition Project.cpp:2777
void waitForShapeReaderFinished()
Locks program if another spot in code is still running and called this function.
Definition Project.cpp:1739
TargetBodyList targetBodies()
Return TargetBodyList in Project.
Definition Project.cpp:2193
void waitForImageReaderFinished()
Locks program if another spot in code is still running and called this function.
Definition Project.cpp:1731
ShapeList * shapeList(QString name)
Return a shapelist given its name.
Definition Project.cpp:1548
bool clearing()
Definition Project.cpp:665
BundleSettings * bundleSettings()
Return BundleSettings objects in Project.
Definition Project.h:390
bool hasTarget(QString id)
This method checks for the existence of a target based on TargetName.
Definition Project.cpp:2714
void controlAdded(Control *control)
Emitted when new Control added to Project receivers: ProjectTreeWidget.
QList< ShapeList * > shapes()
Return the projects shapelist.
Definition Project.cpp:2105
QMutex * workOrderMutex()
This function returns a QMutex.
Definition Project.cpp:2985
~Project()
Clean up the project.
Definition Project.cpp:256
QList< QAction * > userPreferenceActions()
Get a list of configuration/settings actions related to reading images into this Project.
Definition Project.cpp:915
void clear()
Function to clear out all values in a project essentially making it a new project object.
Definition Project.cpp:458
void addToProject(WorkOrder *)
This executes the WorkOrder and stores it in the project.
Definition Project.cpp:2597
void warn(QString text, Data relevantData)
Definition Project.cpp:2642
void activeControlAndImageListSet()
Emitted when both an active control and active image list have been set.
void activeControlModified()
Emmited in cnetModified() when the actice control is modified.
void addTarget(Target *target)
Adds a new target to the project.
Definition Project.cpp:2729
QList< TemplateList * > mapTemplates()
Return map template FileNames.
Definition Project.cpp:2155
Control * control(QString id)
Accessor for if the project is clearing or not.
Definition Project.cpp:1162
void cnetModified()
When a cnet is modified, set the project state to not clean.
Definition Project.cpp:1923
void guiCamerasAdded(GuiCameraList *targets)
Emitted when new GuiCamera objects added to project receivers: Directory.
QString imageDataRoot() const
Accessor for the root directory of the image data.
Definition Project.cpp:2076
void shapesAdded(ShapeList *shapes)
Emitted when new shape model images are available.
void cnetSaved(bool value)
Emmited in save() when the project is being saved Connected to Directory so that ControlPointEditWidg...
QString cnetRoot() const
Get where control networks ought to be stored inside the project.
Definition Project.cpp:2028
QList< ControlList * > controls()
Return controls in project.
Definition Project.cpp:2037
Directory * directory() const
Returns the directory associated with this Project.
Definition Project.cpp:1228
void targetsAdded(TargetBodyList *targets)
Emitted when new TargetBody objects added to project receivers: Directory.
bool isClean()
Accessor to determine whether the current project is Unsaved.
Definition Project.cpp:1583
void open(QString)
Open the project at the given path.
Definition Project.cpp:1344
ImageList * activeImageList()
Returns the active ImageList.
Definition Project.cpp:2002
QList< BundleSolutionInfo * > bundleSolutionInfo()
Return BundleSolutionInfo objects in Project.
Definition Project.cpp:2222
void writeSettings(FileName projName) const
QString projectRoot() const
Get the top-level folder of the project.
Definition Project.cpp:1665
void removeImages(ImageList &imageList)
Definition Project.cpp:2785
QString name() const
Get the project's GUI name.
Definition Project.cpp:1624
void setClean(bool value)
Function to change the clean state of the project.
Definition Project.cpp:1594
Control * activeControl()
Return the Active Control (control network)
Definition Project.cpp:1902
void loadBundleSolutionInfo(BundleSolutionInfo *bundleSolutionInfo)
Loads bundle solution info into project.
Definition Project.cpp:1209
void addCamera(Camera *camera)
Adds a new camera to the project.
Definition Project.cpp:2760
QDir addImageFolder(QString prefix)
Create and return the name of a folder for placing images.
Definition Project.cpp:1002
void discardActiveControlEdits()
void nameChanged(QString newName)
Emitted when project name is changed receivers: ProjectTreeWidget.
void relocateProjectRoot(QString newRoot)
This is called when the project is moved.
Definition Project.cpp:2304
void imageListAdded(ImageList *images)
Emitted when new ImageList added to Project receivers: ProjectTreeWidget.
static int maxRecentProjects()
Return max number of recent projects to be displayed.
Definition Project.h:396
static QStringList shapes(QStringList)
QString shapeDataRoot() const
Accessor for the root directory of the shape model data.
Definition Project.cpp:2096
bool isOpen()
Accessor to determine whether a current project is Open.
Definition Project.cpp:1574
QList< ImageList * > images()
Return projects imagelist.
Definition Project.cpp:2114
void controlsAndImagesAvailable()
Emitted when at least one cnet and image have been added to the project.
Image * image(QString id)
Return an image given its id.
Definition Project.cpp:1508
void addTemplates(TemplateList *templateFiles)
Add new templates to m_mapTemplates or m_regTemplates and update project item model.
Definition Project.cpp:1112
void addShapes(QStringList shapeFiles)
Read the given shape model cube file names as Images and add them to the project.
Definition Project.cpp:1088
QProgressBar * progress()
Definition Project.cpp:1498
Project(Directory &directory, QObject *parent=0)
Create a new Project.
Definition Project.cpp:87
void addImages(QStringList imageFiles)
Read the given cube file names as Images and add them to the project.
Definition Project.cpp:1031
bool save()
Generic save method to save the state of the project.
Definition Project.cpp:2323
QDir addShapeFolder(QString prefix)
Create and return the name of a folder for placing shape models.
Definition Project.cpp:1059
ControlList * controlList(QString name)
Return controlslist matching name in Project.
Definition Project.cpp:2047
void removeTemplate(FileName file)
This represents a shape in a project-based GUI interface.
Definition Shape.h:68
Internalizes a list of shapes and allows for operations on the entire list.
Definition ShapeList.h:33
List for holding TargetBodies.
Definition TargetBodyList.h:33
This class is used to create and store valid Isis targets.
Definition Target.h:63
Definition TemplateList.h:35
Provide Undo/redo abilities, serialization, and history for an operation.
Definition WorkOrder.h:311
XML Handler that parses XMLs in a stack-oriented way.
Definition XmlStackedHandler.h:118
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16