Merge branch 'develop' into feature/remote

* develop: (72 commits)
  Disable blackout on startup
  Fixed path bug
  Remove the rendering method override
  Fix crash that happens when SpiceManager is deinitialized
  Adding convenient scripts for showing 67P and changing coordinate system to 67P
  Adding hybrid read method for Pluto Cleanups + logical changes to parsing and sequencing
  Adding the possibility to project to arbitrary bodies model files
  Adding support for imageplanes for multiple instruments
  Fixing bug in model magnification
  Made destination optional in data specifications
  Renamed OpenSpaceModule's initialize method to create Created new initialize method that gets called in OpenSpaceEngine initialize
  Remove setName function from OpenSpaceModule and move naming into constructor
  Always build libtorrent as a static library
  Set Launcher as default application Don't copy curl.dll on non-windows system
  Correct CURL cmake specification
  Add the FindCurl module from CMake into the support directory
  Fix method renaming error in volume module
  Updated data folder reference
  Make SpiceManager derive from Singleton
  Allow left-aligned and right-aligned messages in Launcher
  ...

Conflicts:
	modules/kameleon/CMakeLists.txt
	openspace.cfg
	src/engine/openspaceengine.cpp
This commit is contained in:
Joakim Kilby
2015-07-01 14:38:33 +02:00
367 changed files with 146303 additions and 1554 deletions
@@ -49,7 +49,9 @@ public:
static const std::string KeyLogLevel;
static const std::string KeyLogImmediateFlush;
static const std::string KeyLogs;
static const std::string KeyCapabilitiesVerbosity;
static const std::string KeyDisableMasterRendering;
static const std::string KeyDownloadRequestURL;
bool loadFromFile(const std::string& filename);
+103
View File
@@ -0,0 +1,103 @@
/*****************************************************************************************
* *
* OpenSpace *
* *
* Copyright (c) 2014-2015 *
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
* software and associated documentation files (the "Software"), to deal in the Software *
* without restriction, including without limitation the rights to use, copy, modify, *
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to *
* permit persons to whom the Software is furnished to do so, subject to the following *
* conditions: *
* *
* The above copyright notice and this permission notice shall be included in all copies *
* or substantial portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A *
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT *
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF *
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
****************************************************************************************/
#ifndef __DOWNLOADMANAGER_H__
#define __DOWNLOADMANAGER_H__
#include <ghoul/designpattern/singleton.h>
#include <ghoul/filesystem/file.h>
#include <ghoul/filesystem/directory.h>
#include <cstdint>
#include <functional>
#include <string>
namespace openspace {
// Multithreaded
class DownloadManager : public ghoul::Singleton<DownloadManager> {
public:
struct FileFuture {
// Since the FileFuture object will be used from multiple threads, we have to be
// careful about the access pattern, that is, no values should be read and written
// by both the DownloadManager and the outside threads.
FileFuture(std::string file);
// Values that are written by the DownloadManager to be consumed by others
long long currentSize;
long long totalSize;
float progress; // [0,1]
float secondsRemaining;
bool isFinished;
bool isAborted;
std::string filePath;
std::string errorMessage;
// Values set by others to be consumed by the DownloadManager
bool abortDownload;
};
typedef std::function<void(const FileFuture&)> DownloadProgressCallback;
typedef std::function<void(const FileFuture&)> DownloadFinishedCallback;
typedef std::function<void(const std::vector<FileFuture*>&)> AsyncDownloadFinishedCallback;
DownloadManager(std::string requestURL, int applicationVersion);
// callers responsibility to delete
// callbacks happen on a different thread
FileFuture* downloadFile(
const std::string& url,
const ghoul::filesystem::File& file,
bool overrideFile = true,
DownloadFinishedCallback finishedCallback = DownloadFinishedCallback(),
DownloadProgressCallback progressCallback = DownloadProgressCallback()
);
std::vector<FileFuture*> downloadRequestFiles(
const std::string& identifier,
const ghoul::filesystem::Directory& destination,
int version,
bool overrideFiles = true,
DownloadFinishedCallback finishedCallback = DownloadFinishedCallback(),
DownloadProgressCallback progressCallback = DownloadProgressCallback()
);
void downloadRequestFilesAsync(
const std::string& identifier,
const ghoul::filesystem::Directory& destination,
int version,
bool overrideFiles,
AsyncDownloadFinishedCallback callback
);
private:
std::string _requestURL;
int _applicationVersion;
};
#define DlManager (openspace::DownloadManager::ref())
} // namespace openspace
#endif // __DOWNLOADMANAGER_H__
+3
View File
@@ -33,6 +33,9 @@ class OpenSpaceModule;
class ModuleEngine {
public:
bool create();
bool destroy();
bool initialize();
bool deinitialize();