mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-24 04:58:59 -05:00
abstracted cygnet properties to DataCygnet
This commit is contained in:
@@ -34,25 +34,12 @@ namespace openspace {
|
||||
|
||||
DataSphere::DataSphere(const ghoul::Dictionary& dictionary)
|
||||
:DataCygnet(dictionary)
|
||||
,_useLog("useLog","Use Logarithm", false)
|
||||
,_useHistogram("useHistogram", "Auto Contrast", false)
|
||||
,_autoFilter("autoFilter", "Auto Filter", false)
|
||||
,_normValues("normValues", "Normalize Values", glm::vec2(1.0,1.0), glm::vec2(0), glm::vec2(5.0))
|
||||
,_backgroundValues("backgroundValues", "Background Values", glm::vec2(0.0), glm::vec2(0), glm::vec2(1.0))
|
||||
,_transferFunctionsFile("transferfunctions", "Transfer Functions", "${SCENE}/iswa/tfs/default.tf")
|
||||
,_sphere(nullptr)
|
||||
{
|
||||
float radius;
|
||||
dictionary.getValue("Radius", radius);
|
||||
_radius = radius;
|
||||
|
||||
addProperty(_useLog);
|
||||
addProperty(_useHistogram);
|
||||
addProperty(_autoFilter);
|
||||
addProperty(_normValues);
|
||||
addProperty(_backgroundValues);
|
||||
addProperty(_transferFunctionsFile);
|
||||
|
||||
_programName = "DataSphereProgram";
|
||||
_vsPath = "${MODULE_ISWA}/shaders/datasphere_vs.glsl";
|
||||
_fsPath = "${MODULE_ISWA}/shaders/datasphere_fs.glsl";
|
||||
@@ -91,33 +78,7 @@ bool DataSphere::initialize(){
|
||||
|
||||
readTransferFunctions(_transferFunctionsFile.value());
|
||||
|
||||
_normValues.onChange([this](){
|
||||
_dataProcessor->normValues(_normValues.value());
|
||||
updateTexture();
|
||||
});
|
||||
|
||||
_useLog.onChange([this](){
|
||||
_dataProcessor->useLog(_useLog.value());
|
||||
updateTexture();
|
||||
});
|
||||
|
||||
_useHistogram.onChange([this](){
|
||||
_dataProcessor->useHistogram(_useHistogram.value());
|
||||
updateTexture();
|
||||
if(_autoFilter.value())
|
||||
_backgroundValues.setValue(_dataProcessor->filterValues());
|
||||
});
|
||||
|
||||
_dataOptions.onChange([this](){
|
||||
if(_dataOptions.value().size() > MAX_TEXTURES)
|
||||
LWARNING("Too many options chosen, max is " + std::to_string(MAX_TEXTURES));
|
||||
updateTexture();
|
||||
});
|
||||
|
||||
_transferFunctionsFile.onChange([this](){
|
||||
readTransferFunctions(_transferFunctionsFile.value());
|
||||
});
|
||||
|
||||
setPropertyCallbacks();
|
||||
_useHistogram.setValue(true);
|
||||
_autoFilter.setValue(true);
|
||||
|
||||
@@ -169,60 +130,4 @@ void DataSphere::setUniforms(){
|
||||
_shader->setUniform("backgroundValues", _backgroundValues.value());
|
||||
_shader->setUniform("transparency", _alpha.value());
|
||||
}
|
||||
|
||||
void DataSphere::subscribeToGroup(){
|
||||
auto groupEvent = _group->groupEvent();
|
||||
groupEvent->subscribe(name(), "useLogChanged", [&](const ghoul::Dictionary& dict){
|
||||
LDEBUG(name() + " Event useLogChanged");
|
||||
_useLog.setValue(dict.value<bool>("useLog"));
|
||||
});
|
||||
|
||||
groupEvent->subscribe(name(), "normValuesChanged", [&](ghoul::Dictionary dict){
|
||||
LDEBUG(name() + " Event normValuesChanged");
|
||||
glm::vec2 values;
|
||||
bool success = dict.getValue("normValues", values);
|
||||
if(success){
|
||||
_normValues.setValue(values);
|
||||
}
|
||||
});
|
||||
|
||||
groupEvent->subscribe(name(), "useHistogramChanged", [&](ghoul::Dictionary dict){
|
||||
LDEBUG(name() + " Event useHistogramChanged");
|
||||
_useHistogram.setValue(dict.value<bool>("useHistogram"));
|
||||
});
|
||||
|
||||
groupEvent->subscribe(name(), "dataOptionsChanged", [&](ghoul::Dictionary dict){
|
||||
LDEBUG(name() + " Event dataOptionsChanged");
|
||||
std::vector<int> values;
|
||||
bool success = dict.getValue<std::vector<int> >("dataOptions", values);
|
||||
if(success){
|
||||
_dataOptions.setValue(values);
|
||||
}
|
||||
});
|
||||
|
||||
groupEvent->subscribe(name(), "transferFunctionsChanged", [&](ghoul::Dictionary dict){
|
||||
LDEBUG(name() + " Event transferFunctionsChanged");
|
||||
_transferFunctionsFile.setValue(dict.value<std::string>("transferFunctions"));
|
||||
});
|
||||
|
||||
groupEvent->subscribe(name(), "backgroundValuesChanged", [&](ghoul::Dictionary dict){
|
||||
LDEBUG(name() + " Event backgroundValuesChanged");
|
||||
glm::vec2 values;
|
||||
bool success = dict.getValue("backgroundValues", values);
|
||||
if(success){
|
||||
_backgroundValues.setValue(values);
|
||||
}
|
||||
});
|
||||
|
||||
groupEvent->subscribe(name(), "autoFilterChanged", [&](ghoul::Dictionary dict){
|
||||
LDEBUG(name() + " Event autoFilterChanged");
|
||||
_autoFilter.setValue(dict.value<bool>("autoFilter"));
|
||||
});
|
||||
|
||||
groupEvent->subscribe(name(), "updateGroup", [&](ghoul::Dictionary dict){
|
||||
LDEBUG(name() + " Event updateGroup");
|
||||
updateTexture();
|
||||
});
|
||||
}
|
||||
|
||||
} //namespace openspace
|
||||
Reference in New Issue
Block a user