Add BoolProperty to SpaceModule to control SpiceManager exception handling (closes #661)

Add debugging indices to SceneGraphNodes
Rename ImGui indices debugging definition
This commit is contained in:
Alexander Bock
2018-07-12 17:48:34 -04:00
parent d20bb6d634
commit 12c87969a7
8 changed files with 51 additions and 21 deletions
+7 -7
View File
@@ -30,7 +30,7 @@
#include <ghoul/misc/misc.h>
#include <algorithm>
//#define Debugging_ImGui_TreeNode
//#define Debugging_ImGui_TreeNode_Indices
namespace {
const ImVec2 Size = ImVec2(350, 500);
@@ -85,26 +85,26 @@ namespace {
struct TreeNode {
TreeNode(std::string p)
: path(std::move(p))
#ifdef Debugging_ImGui_TreeNode
#ifdef Debugging_ImGui_TreeNode_Indices
, index(nextIndex++)
#endif // Debugging_ImGui_TreeNode
#endif // Debugging_ImGui_TreeNode_Indices
{}
std::string path;
std::vector<std::unique_ptr<TreeNode>> children;
std::vector<openspace::SceneGraphNode*> nodes;
#ifdef Debugging_ImGui_TreeNode
#ifdef Debugging_ImGui_TreeNode_Indices
int index = 0;
static int nextIndex;
#endif // Debugging_ImGui_TreeNode
#endif // Debugging_ImGui_TreeNode_Indices
};
#ifdef Debugging_ImGui_TreeNode
#ifdef Debugging_ImGui_TreeNode_Indices
int TreeNode::nextIndex = 0;
#endif // Debugging_ImGui_TreeNode
#endif // Debugging_ImGui_TreeNode_Indices
void addPathToTree(TreeNode& node, const std::vector<std::string>& path,
openspace::SceneGraphNode* owner)
+5 -10
View File
@@ -124,16 +124,11 @@ SpiceRotation::SpiceRotation(const ghoul::Dictionary& dictionary)
}
glm::dmat3 SpiceRotation::matrix(const Time& time) const {
try {
return SpiceManager::ref().positionTransformMatrix(
_sourceFrame,
_destinationFrame,
time.j2000Seconds()
);
}
catch (const SpiceManager::SpiceException&) {
return glm::dmat3(1.0);
}
return SpiceManager::ref().positionTransformMatrix(
_sourceFrame,
_destinationFrame,
time.j2000Seconds()
);
}
} // namespace openspace
+19 -1
View File
@@ -37,14 +37,32 @@
#include <openspace/rendering/renderable.h>
#include <openspace/rendering/screenspacerenderable.h>
#include <openspace/util/factorymanager.h>
#include <openspace/util/spicemanager.h>
#include <ghoul/misc/assert.h>
#include <ghoul/misc/templatefactory.h>
namespace {
constexpr openspace::properties::Property::PropertyInfo SpiceExceptionInfo = {
"ShowExceptions",
"Show Exceptions",
"If enabled, errors from SPICE will be thrown and show up in the log. If "
"disabled, the errors will be ignored silently."
};
} // namespace
namespace openspace {
ghoul::opengl::ProgramObjectManager SpaceModule::ProgramObjectManager;
SpaceModule::SpaceModule() : OpenSpaceModule(Name) {}
SpaceModule::SpaceModule()
: OpenSpaceModule(Name)
, _showSpiceExceptions(SpiceExceptionInfo, true)
{
_showSpiceExceptions.onChange([&t = _showSpiceExceptions](){
SpiceManager::ref().setExceptionHandling(SpiceManager::UseException(t));
});
addProperty(_showSpiceExceptions);
}
void SpaceModule::internalInitialize(const ghoul::Dictionary&) {
FactoryManager::ref().addFactory(
+3
View File
@@ -27,6 +27,7 @@
#include <openspace/util/openspacemodule.h>
#include <openspace/properties/scalar/boolproperty.h>
#include <ghoul/opengl/programobjectmanager.h>
namespace openspace {
@@ -44,6 +45,8 @@ public:
private:
void internalInitialize(const ghoul::Dictionary&) override;
void internalDeinitializeGL() override;
properties::BoolProperty _showSpiceExceptions;
};
} // namespace openspace