Merge branch 'feature/iSWA' of github.com:OpenSpace/OpenSpace-Development into feature/iSWA

This commit is contained in:
Michael Nilsson
2016-07-05 18:53:10 -04:00
8 changed files with 59 additions and 36 deletions

View File

@@ -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();
});
}

View File

@@ -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

View File

@@ -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)
{

View File

@@ -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)

View File

@@ -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(){}

View File

@@ -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("")
{

View File

@@ -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);

View File

@@ -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);