mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-12 14:40:17 -06:00
Merge branch 'feature/iSWA' of github.com:OpenSpace/OpenSpace-Development into feature/iSWA
This commit is contained in:
@@ -40,12 +40,12 @@ namespace openspace{
|
||||
DataCygnet::DataCygnet(const ghoul::Dictionary& dictionary)
|
||||
:IswaCygnet(dictionary)
|
||||
,_dataProcessor(nullptr)
|
||||
,_dataOptions("dataOptions", "Data Options")
|
||||
,_useHistogram("useHistogram", "Auto Contrast", false)
|
||||
,_autoFilter("autoFilter", "Auto Filter", true)
|
||||
,_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", "${OPENSPACE_DATA}/iswa/transferfunctions/tfs/default.tf")
|
||||
,_transferFunctionsFile("04transferfunctions", "Transfer Functions", "${OPENSPACE_DATA}/iswa/transferfunctions/tfs/default.tf")
|
||||
,_autoFilter("05autoFilter", "Auto Filter", true)
|
||||
,_backgroundValues("06backgroundValues", "Filter Values", glm::vec2(0.0), glm::vec2(0), glm::vec2(1.0))
|
||||
,_useHistogram("07useHistogram", "Auto Contrast", false)
|
||||
,_normValues("08normValues", "Normalize Values", glm::vec2(1.0,1.0), glm::vec2(0), glm::vec2(5.0))
|
||||
,_dataOptions("99dataOptions", "Data Options")
|
||||
{
|
||||
addProperty(_dataOptions);
|
||||
addProperty(_useHistogram);
|
||||
@@ -54,6 +54,10 @@ DataCygnet::DataCygnet(const ghoul::Dictionary& dictionary)
|
||||
addProperty(_backgroundValues);
|
||||
addProperty(_transferFunctionsFile);
|
||||
registerProperties();
|
||||
|
||||
if(_autoFilter.value()){
|
||||
_backgroundValues.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
DataCygnet::~DataCygnet(){}
|
||||
@@ -259,10 +263,13 @@ void DataCygnet::setPropertyCallbacks(){
|
||||
});
|
||||
|
||||
_autoFilter.onChange([this](){
|
||||
if(_autoFilter.value())
|
||||
if(_autoFilter.value()){
|
||||
_backgroundValues.setValue(_dataProcessor->filterValues());
|
||||
else
|
||||
_backgroundValues.setVisible(false);
|
||||
} else {
|
||||
_backgroundValues.setValue(glm::vec2(0.f));
|
||||
_backgroundValues.setVisible(true);
|
||||
}
|
||||
updateTexture();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -48,8 +48,6 @@ bool DataPlane::initialize(){
|
||||
_dataProcessor = _group->dataProcessor();
|
||||
subscribeToGroup();
|
||||
}else{
|
||||
// if(!_autoFilter.value())
|
||||
// _backgroundValues.setVisible(false);
|
||||
_dataProcessor = std::make_shared<DataProcessorText>();
|
||||
|
||||
//If autofiler is on, background values property should be hidden
|
||||
|
||||
@@ -40,9 +40,9 @@ namespace {
|
||||
|
||||
namespace openspace {
|
||||
IswaBaseGroup::IswaBaseGroup(std::string name, IswaManager::CygnetType type)
|
||||
:_enabled("enabled", "Enabled", true)
|
||||
,_alpha("alpha", "Alpha", 0.9f, 0.0f, 1.0f)
|
||||
,_delete("delete", "Delete")
|
||||
:_enabled("01enabled", "Enabled", true)
|
||||
,_delete("02delete", "Delete")
|
||||
,_alpha("03alpha", "Alpha", 0.9f, 0.0f, 1.0f)
|
||||
,_type(type)
|
||||
,_dataProcessor(nullptr)
|
||||
{
|
||||
|
||||
@@ -36,8 +36,8 @@ namespace openspace{
|
||||
|
||||
IswaCygnet::IswaCygnet(const ghoul::Dictionary& dictionary)
|
||||
: Renderable(dictionary)
|
||||
, _delete("delete", "Delete")
|
||||
, _alpha("alpha", "Alpha", 0.9f, 0.0f, 1.0f)
|
||||
, _delete("02delete", "Delete")
|
||||
, _alpha("03alpha", "Alpha", 0.9f, 0.0f, 1.0f)
|
||||
, _shader(nullptr)
|
||||
, _group(nullptr)
|
||||
, _textureDirty(false)
|
||||
|
||||
@@ -41,12 +41,12 @@ namespace {
|
||||
namespace openspace{
|
||||
IswaDataGroup::IswaDataGroup(std::string name, IswaManager::CygnetType type, std::shared_ptr<DataProcessor> dataProcessor)
|
||||
:IswaBaseGroup(name, type)
|
||||
,_useHistogram("useHistogram", "Auto Contrast", false)
|
||||
,_autoFilter("autoFilter", "Auto Filter", true)
|
||||
,_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", "${OPENSPACE_DATA}/iswa/transferfunctions/tfs/default.tf")
|
||||
,_dataOptions("dataOptions", "Data Options")
|
||||
,_transferFunctionsFile("04transferfunctions", "Transfer Functions", "${OPENSPACE_DATA}/iswa/transferfunctions/tfs/default.tf")
|
||||
,_autoFilter("05autoFilter", "Auto Filter", true)
|
||||
,_backgroundValues("06backgroundValues", "Filter Values", glm::vec2(0.0), glm::vec2(0), glm::vec2(1.0))
|
||||
,_useHistogram("07useHistogram", "Auto Contrast", false)
|
||||
,_normValues("08normValues", "Normalize Values", glm::vec2(1.0,1.0), glm::vec2(0), glm::vec2(5.0))
|
||||
,_dataOptions("99dataOptions", "Data Options")
|
||||
{
|
||||
addProperty(_useHistogram);
|
||||
addProperty(_autoFilter);
|
||||
@@ -57,6 +57,9 @@ IswaDataGroup::IswaDataGroup(std::string name, IswaManager::CygnetType type, std
|
||||
|
||||
_dataProcessor = dataProcessor;
|
||||
registerProperties();
|
||||
if(_autoFilter.value()){
|
||||
_backgroundValues.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
IswaDataGroup::~IswaDataGroup(){}
|
||||
|
||||
@@ -40,9 +40,9 @@ namespace {
|
||||
namespace openspace{
|
||||
|
||||
IswaKameleonGroup::IswaKameleonGroup(std::string name, IswaManager::CygnetType type, std::shared_ptr<DataProcessor> dataProcessor)
|
||||
:IswaDataGroup(name, type, dataProcessor)
|
||||
,_resolution("resolution", "Resolution%", 50.0f, 10.0f, 200.0f)
|
||||
,_fieldlines("fieldlineSeedsIndexFile", "Fieldline Seedpoints")
|
||||
:IswaDataGroup(name, type, dataProcessor)
|
||||
,_resolution("09resolution", "Resolution%", 50.0f, 10.0f, 200.0f)
|
||||
,_fieldlines("11fieldlineSeedsIndexFile", "Fieldline Seedpoints")
|
||||
,_fieldlineIndexFile("")
|
||||
,_kameleonPath("")
|
||||
{
|
||||
|
||||
@@ -43,9 +43,9 @@ namespace openspace {
|
||||
|
||||
KameleonPlane::KameleonPlane(const ghoul::Dictionary& dictionary)
|
||||
:DataCygnet(dictionary)
|
||||
,_fieldlines("fieldlineSeedsIndexFile", "Fieldline Seedpoints")
|
||||
,_resolution("resolution", "Resolution%", 50.0f, 10.0f, 200.0f)
|
||||
,_slice("slice", "Slice", 0.0, 0.0, 1.0)
|
||||
,_fieldlines("11fieldlineSeedsIndexFile", "Fieldline Seedpoints")
|
||||
,_resolution("09resolution", "Resolution%", 50.0f, 10.0f, 200.0f)
|
||||
,_slice("10slice", "Slice", 0.0, 0.0, 1.0)
|
||||
{
|
||||
|
||||
addProperty(_resolution);
|
||||
|
||||
@@ -55,9 +55,16 @@
|
||||
double ephemerisTime) const
|
||||
{
|
||||
#ifdef OPENSPACE_MODULE_KAMELEON_ENABLED
|
||||
ccmc::Position in0 = {1.f, 0.f, 0.f};
|
||||
ccmc::Position in1 = {0.f, 1.f, 0.f};
|
||||
ccmc::Position in2 = {0.f, 0.f, 1.f};
|
||||
|
||||
ccmc::Position inOrig = {0.f, 0.f, 0.f};
|
||||
ccmc::Position outOrig;
|
||||
_kameleon->_cxform(from.c_str(), to.c_str(), ephemerisTime, &inOrig, &outOrig);
|
||||
glm::vec3 outOrigVec(outOrig.c0, outOrig.c1, outOrig.c2);
|
||||
|
||||
//100.0 to get enough distance between the points
|
||||
ccmc::Position in0 = {100.f, 0.f, 0.f};
|
||||
ccmc::Position in1 = {0.f, 100.f, 0.f};
|
||||
ccmc::Position in2 = {0.f, 0.f, 100.f};
|
||||
|
||||
ccmc::Position out0;
|
||||
ccmc::Position out1;
|
||||
@@ -67,14 +74,22 @@
|
||||
_kameleon->_cxform(from.c_str(), to.c_str(), ephemerisTime, &in1, &out1);
|
||||
_kameleon->_cxform(from.c_str(), to.c_str(), ephemerisTime, &in2, &out2);
|
||||
|
||||
float size0 = sqrt(out0.c0*out0.c0 + out0.c1*out0.c1 + out0.c2*out0.c2);
|
||||
float size1 = sqrt(out1.c0*out1.c0 + out1.c1*out1.c1 + out1.c2*out1.c2);
|
||||
float size2 = sqrt(out2.c0*out2.c0 + out2.c1*out2.c1 + out2.c2*out2.c2);
|
||||
glm::vec3 out0Vec(out0.c0, out0.c1, out0.c2);
|
||||
glm::vec3 out1Vec(out1.c0, out1.c1, out1.c2);
|
||||
glm::vec3 out2Vec(out2.c0, out2.c1, out2.c2);
|
||||
|
||||
out0Vec -= outOrigVec;
|
||||
out1Vec -= outOrigVec;
|
||||
out2Vec -= outOrigVec;
|
||||
|
||||
out0Vec = glm::normalize(out0Vec);
|
||||
out1Vec = glm::normalize(out1Vec);
|
||||
out2Vec = glm::normalize(out2Vec);
|
||||
|
||||
return glm::dmat3(
|
||||
out0.c0/size0 , out0.c1/size0 , out0.c2/size0,
|
||||
out1.c0/size1 , out1.c1/size1 , out1.c2/size1,
|
||||
out2.c0/size2 , out2.c1/size2 , out2.c2/size2
|
||||
out0Vec.x, out0Vec.y, out0Vec.z,
|
||||
out1Vec.x, out1Vec.y, out1Vec.z,
|
||||
out2Vec.x, out2Vec.y, out2Vec.z
|
||||
);
|
||||
#else
|
||||
return glm::dmat3(0.0);
|
||||
|
||||
Reference in New Issue
Block a user