Change lua function to be set with "setPropertyValueSingle" instead

This commit is contained in:
Ylva Selling
2022-04-04 10:16:51 -04:00
parent f14e482ff1
commit 1eb4fc5879
6 changed files with 13 additions and 25 deletions

View File

@@ -63,7 +63,7 @@ public:
// Copies rendered
void addRenderCopy(const glm::vec3& raePosition, int nCopies);
void removeRenderCopy();
std::vector<glm::dvec3> renderCopies();
std::vector<std::pair<std::string, glm::dvec3>> renderCopies();
void moveRenderCopy(int i, glm::vec3 raePosition);
private:

View File

@@ -64,7 +64,7 @@ public:
// Browser
void sendIdToBrowser();
void updateBrowserSize();
std::vector<glm::dvec3> renderCopies();
std::vector<std::pair<std::string, glm::dvec3>> renderCopies();
// Target
void centerTargetOnScreen();

View File

@@ -565,7 +565,6 @@ scripting::LuaLibrary SkyBrowserModule::luaLibrary() const {
codegen::lua::AddRenderCopy,
codegen::lua::SetScreenSpaceSize,
codegen::lua::RemoveRenderCopy,
codegen::lua::MoveRenderCopy
}
};
}

View File

@@ -325,10 +325,10 @@ namespace {
target.setValue("dec", spherical.y);
target.setValue("color", pair->borderColor());
target.setValue("size", glm::dvec2(pair->size()));
std::vector<glm::dvec3> copies = pair->renderCopies();
std::vector<std::pair<std::string, glm::dvec3>> copies = pair->renderCopies();
ghoul::Dictionary copiesData;
for (int i = 0; i < copies.size(); i++) {
copiesData.setValue("Copy" + std::to_string(i), copies[i]);
copiesData.setValue(copies[i].first, copies[i].second);
}
// Set table for the current target
target.setValue("renderCopies", copiesData);
@@ -623,22 +623,7 @@ namespace {
pair->browser()->removeRenderCopy();
}
}
/**
* Takes an identifier to a sky browser and the index to a render copy, and sets its RAE
* position.
* \param id Identifier
* \param i Index to the render copy
* \param raePosition Position in [Radius, Azimuth, Elevation] to move the render copy to
*/
[[codegen::luawrap]] void moveRenderCopy(std::string id, int i, glm::vec3 raePosition) {
// Get module
SkyBrowserModule* module = global::moduleEngine->module<SkyBrowserModule>();
TargetBrowserPair* pair = module->getPair(id);
if (pair) {
pair->browser()->moveRenderCopy(i, raePosition);
}
}
#include "skybrowsermodule_lua_codegen.cpp"
} // namespace

View File

@@ -184,7 +184,7 @@ void ScreenSpaceSkyBrowser::addRenderCopy(const glm::vec3& raePosition, int nCop
openspace::properties::Property::PropertyInfo info = RenderCopyInfo;
float azimuth = i * glm::two_pi<float>() / nCopies;
glm::vec3 position = raePosition + glm::vec3(0.f, azimuth, 0.f);
std::string id = "Rendercopy" + std::to_string(start + i);
std::string id = "RenderCopy" + std::to_string(start + i);
info.identifier = id.c_str();
_renderCopies.push_back(
std::make_unique<properties::Vec3Property>(
@@ -205,14 +205,18 @@ void ScreenSpaceSkyBrowser::removeRenderCopy() {
}
}
std::vector<glm::dvec3> ScreenSpaceSkyBrowser::renderCopies()
std::vector<std::pair<std::string, glm::dvec3>> ScreenSpaceSkyBrowser::renderCopies()
{
std::vector<glm::dvec3> vec;
std::vector<std::pair<std::string, glm::dvec3>> vec;
std::for_each(
_renderCopies.begin(),
_renderCopies.end(),
[&](const std::unique_ptr<properties::Vec3Property>& copy) {
vec.push_back(glm::dvec3(copy.get()->value()));
std::pair<std::string, glm::dvec3> pair = {
copy.get()->identifier(),
glm::dvec3(copy.get()->value())
};
vec.push_back(pair);
});
return vec;
}

View File

@@ -259,7 +259,7 @@ void TargetBrowserPair::updateBrowserSize() {
_browser->updateBrowserSize();
}
std::vector<glm::dvec3> TargetBrowserPair::renderCopies()
std::vector<std::pair<std::string, glm::dvec3>> TargetBrowserPair::renderCopies()
{
return _browser->renderCopies();
}