ScreenSpaceRenderabled enabled propery in GUI

This commit is contained in:
Sebastian Piwell
2016-03-10 11:19:22 -05:00
parent bdaf8dd956
commit 07d6662957
8 changed files with 60 additions and 22 deletions
+18 -12
View File
@@ -30,6 +30,7 @@
#include <openspace/rendering/renderable.h>
#include <openspace/scene/scene.h>
#include <openspace/scene/scenegraphnode.h>
#include <openspace/rendering/screenspacerenderable.h>
namespace openspace {
@@ -59,24 +60,29 @@ properties::Property* property(const std::string& uri) {
else {
// The URI consists of the following form at this stage:
// <node name>.{<property owner>.}^(0..n)<property id>
const size_t nodeNameSeparator = uri.find(properties::PropertyOwner::URISeparator);
if (nodeNameSeparator == std::string::npos) {
LERROR("Malformed URI '" << uri << "': At least one '" << nodeNameSeparator
const size_t nameSeparator = uri.find(properties::PropertyOwner::URISeparator);
if (nameSeparator == std::string::npos) {
LERROR("Malformed URI '" << uri << "': At least one '" << nameSeparator
<< "' separator must be present.");
return nullptr;
}
const std::string nodeName = uri.substr(0, nodeNameSeparator);
const std::string remainingUri = uri.substr(nodeNameSeparator + 1);
const std::string nameUri = uri.substr(0, nameSeparator);
const std::string remainingUri = uri.substr(nameSeparator + 1);
SceneGraphNode* node = sceneGraphNode(nodeName);
if (!node) {
LERROR("Node '" << nodeName << "' did not exist");
return nullptr;
SceneGraphNode* node = sceneGraphNode(nameUri);
if (node) {
properties::Property* property = node->property(remainingUri);
return property;
}
std::shared_ptr<ScreenSpaceRenderable> ssr = OsEng.renderEngine().screenSpaceRenderable(nameUri);
if(ssr){
properties::Property* property = ssr->property(remainingUri);
return property;
}
properties::Property* property = node->property(remainingUri);
return property;
LERROR("Node or ScreenSpaceRenderable'" << nameUri << "' did not exist");
return nullptr;
}
}