Code clean up

This commit is contained in:
Emilie
2020-07-23 11:23:13 +02:00
parent 99bbf760b7
commit fa5adc178f
4 changed files with 114 additions and 137 deletions
@@ -138,12 +138,12 @@ namespace {
"This value specifies the threshold that will be changed with the flux value."
};
constexpr openspace::properties::Property::PropertyInfo FilteringInfo = {
"filteringlower",
"filteringLower",
"Filtering Lower Value in AU",
"Use filtering to show nodes within a given range."
};
constexpr openspace::properties::Property::PropertyInfo FilteringUpperInfo = {
"filteringupper",
"filteringUpper",
"Filtering Upper Value in AU",
"Use filtering to show nodes within a given range."
};
@@ -218,14 +218,14 @@ namespace {
"The active stream to show"
};
constexpr openspace::properties::Property::PropertyInfo MisalignedIndexInfo = {
"MisalignedIndex",
"misalignedIndex",
"Index to shift sequence number",
"The misalignement number for sequence for streamnodes vs Fieldlines"
};
constexpr openspace::properties::Property::PropertyInfo FlowColorInfo = {
"color",
"Color",
"Color of particles."
"color",
"Color",
"Color of particles."
};
constexpr openspace::properties::Property::PropertyInfo FlowEnabledInfo = {
"flowEnabled",
@@ -251,9 +251,8 @@ namespace {
constexpr openspace::properties::Property::PropertyInfo FlowColoringInfo = {
"coloring",
"Color either by Flowcolor or Flow colortable",
"If set to true the flow will be colored by Flowcolor"
"If set to true the flow will be colored by Flowcolor."
};
constexpr openspace::properties::Property::PropertyInfo TempInfo1 = {
"temp1",
"temp",
@@ -262,7 +261,7 @@ namespace {
constexpr openspace::properties::Property::PropertyInfo MaxNodeDistanceSizeInfo = {
"maxNodeDistanceSize",
"Max Node Distance Size",
"The maximum size of the nodes at a certin distance"
"The maximum size of the nodes at a certin distance."
};
/*constexpr openspace::properties::Property::PropertyInfo MinNodeDistanceSizeInfo = {
"minNodeDistanceSize",
@@ -270,9 +269,9 @@ namespace {
"The minimum size of the nodes at a certin distance"
};*/
constexpr openspace::properties::Property::PropertyInfo NodeDistanceThresholdInfo = {
"NodeDistanceThreshold",
"nodeDistanceThreshold",
"Node Distance Threshold",
"Threshold for where to interpolate between the max and min node distance"
"Threshold for where to interpolate between the max and min node distance."
};
constexpr openspace::properties::Property::PropertyInfo CameraPerspectiveInfo = {
"cameraPerspective",
@@ -282,23 +281,23 @@ namespace {
constexpr openspace::properties::Property::PropertyInfo DrawingCirclesInfo = {
"renderingcircles",
"Render as circles",
"Using fragment shader to draw nodes as circles instead of squares"
"Using fragment shader to draw nodes as circles instead of squares."
};
constexpr openspace::properties::Property::PropertyInfo DrawingHollowInfo = {
"renderingHollowCircles",
"Render as hollow circles",
"Using fragment shader to draw nodes as hollow circles"
"Using fragment shader to draw nodes as hollow circles."
};
constexpr openspace::properties::Property::PropertyInfo GaussiandAlphaFilterInfo = {
"renderingGaussianAlphaFilter",
"Alpha by Gaussian",
"Using fragment shader to draw nodes with Gaussian filter for alpha value"
"Using fragment shader to draw nodes with Gaussian filter for alpha value."
};
constexpr openspace::properties::Property::PropertyInfo RadiusPerspectiveInfo = {
"radiusPerspective",
"Include radius with cameraperspective",
"If false, then nodes closer to the sun will not be larger regardless of distance to camera"
"If false, then nodes closer to the sun will not be larger regardless of distance to camera."
};
enum class SourceFileType : int {
Json = 0,
@@ -400,9 +399,9 @@ RenderableStreamNodes::RenderableStreamNodes(const ghoul::Dictionary& dictionary
, _pMaxNodeDistanceSize(MaxNodeDistanceSizeInfo, 1.f, 1.f, 10.f)
, _pNodeDistanceThreshold(NodeDistanceThresholdInfo, 0.f, 0.f, 40.f)
, _pCameraPerspective(CameraPerspectiveInfo, true)
, _pDrawingCircles(DrawingCirclesInfo, true)
, _pDrawingCircles(DrawingCirclesInfo, false)
, _pCameraPerspectiveGroup({" CameraPerspective"})
, _pDrawingHollow(DrawingHollowInfo, true)
, _pDrawingHollow(DrawingHollowInfo, false)
, _pGaussianAlphaFilter(GaussiandAlphaFilterInfo, false)
, _pRadiusPerspective(RadiusPerspectiveInfo, true)
@@ -1136,10 +1135,10 @@ void RenderableStreamNodes::setupProperties() {
_pScalingmethod.addOption(static_cast<int>(ScalingMethod::log10RFlux), "log10(r) * Flux");
_pScalingmethod.addOption(static_cast<int>(ScalingMethod::lnRFlux), "ln(r) * Flux");
_pNodeskipMethod.addOption(static_cast<int>(NodeskipMethod::Uniform), "Uniform");
_pNodeskipMethod.addOption(static_cast<int>(NodeskipMethod::Flux), "Flux");
_pNodeskipMethod.addOption(static_cast<int>(NodeskipMethod::Radius), "Radius");
_pNodeskipMethod.addOption(static_cast<int>(NodeskipMethod::Streamnumber), "Streamnumber");
_pNodeskipMethod.addOption(static_cast<int>(NodeSkipMethod::Uniform), "Uniform");
_pNodeskipMethod.addOption(static_cast<int>(NodeSkipMethod::Flux), "Flux");
_pNodeskipMethod.addOption(static_cast<int>(NodeSkipMethod::Radius), "Radius");
_pNodeskipMethod.addOption(static_cast<int>(NodeSkipMethod::Streamnumber), "Streamnumber");
_pDistancemethod.addOption(static_cast<int>(DistanceMethod::Eucledian), "Eucledian");
_pDistancemethod.addOption(static_cast<int>(DistanceMethod::x), "x");
@@ -1284,17 +1283,17 @@ void RenderableStreamNodes::render(const RenderData& data, RendererTasks&) {
_shaderProgram->setUniform("ScalingMode", _pScalingmethod);
_shaderProgram->setUniform("colorTableRange", _pColorTableRange.value());
_shaderProgram->setUniform("domainLimZ", _pDomainZ.value());
_shaderProgram->setUniform("Nodeskip", _pAmountofNodes);
_shaderProgram->setUniform("Nodeskipdefault", _pDefaultNodeSkip);
_shaderProgram->setUniform("NodeskipMethod", _pNodeskipMethod);
_shaderProgram->setUniform("NodeskipFluxThreshold", _pFluxNodeskipThreshold);
_shaderProgram->setUniform("NodeskipRadiusThreshold", _pRadiusNodeSkipThreshold);
_shaderProgram->setUniform("nodeSkip", _pAmountofNodes);
_shaderProgram->setUniform("nodeSkipdefault", _pDefaultNodeSkip);
_shaderProgram->setUniform("nodeSkipMethod", _pNodeskipMethod);
_shaderProgram->setUniform("nodeSkipFluxThreshold", _pFluxNodeskipThreshold);
_shaderProgram->setUniform("nodeSkipRadiusThreshold", _pRadiusNodeSkipThreshold);
_shaderProgram->setUniform("fluxColorAlpha", _pFluxColorAlpha);
_shaderProgram->setUniform("earthPos", earthPos);
_shaderProgram->setUniform("DistanceThreshold", _pDistanceThreshold);
_shaderProgram->setUniform("DistanceMethod", _pDistancemethod);
_shaderProgram->setUniform("activestreamnumber", _pActiveStreamNumber);
_shaderProgram->setUniform("EnhanceMethod", _pEnhancemethod);
_shaderProgram->setUniform("distanceThreshold", _pDistanceThreshold);
_shaderProgram->setUniform("distanceMethod", _pDistancemethod);
_shaderProgram->setUniform("activeStreamNumber", _pActiveStreamNumber);
_shaderProgram->setUniform("enhanceMethod", _pEnhancemethod);
_shaderProgram->setUniform("flowColor", _pFlowColor);
_shaderProgram->setUniform("usingParticles", _pFlowEnabled);
_shaderProgram->setUniform("particleSize", _pFlowParticleSize);
@@ -1312,11 +1311,9 @@ void RenderableStreamNodes::render(const RenderData& data, RendererTasks&) {
_shaderProgram->setUniform("drawCircles", _pDrawingCircles);
_shaderProgram->setUniform("drawHollow", _pDrawingHollow);
_shaderProgram->setUniform("useGaussian", _pGaussianAlphaFilter);
_shaderProgram->setUniform("UsingRadiusPerspective", _pRadiusPerspective);
_shaderProgram->setUniform("usingRadiusPerspective", _pRadiusPerspective);
//////// test for camera perspective:
glm::dmat4 modelMatrix =
glm::translate(glm::dmat4(1.0), data.modelTransform.translation) * // Translation
glm::dmat4(data.modelTransform.rotation) * // Spice rotation
@@ -1347,7 +1344,6 @@ void RenderableStreamNodes::render(const RenderData& data, RendererTasks&) {
//the distance between the camera and the nodes.
cameraPos = cameraPos * data.modelTransform.rotation;
//glm::vec3 cameraPos = data.camera.unsynchedPositionVec3();
//LDEBUG("camerapos x: " + std::to_string(cameraPos.x));
//LDEBUG("camerapos y: " + std::to_string(cameraPos.z));
@@ -1361,13 +1357,11 @@ void RenderableStreamNodes::render(const RenderData& data, RendererTasks&) {
// cameraPos.y = cameraPostemp.y;
// cameraPos.z = cameraPostemp.z;
_shaderProgram->setUniform("camerapos", cameraPos);
_shaderProgram->setUniform("scaleFactor", _scaleFactor);
_shaderProgram->setUniform(
"up",
glm::vec3(data.camera.lookUpVectorWorldSpace())
);
);
_shaderProgram->setUniform("modelMatrix", modelMatrix);
_shaderProgram->setUniform(
"cameraViewProjectionMatrix",
@@ -1377,11 +1371,9 @@ void RenderableStreamNodes::render(const RenderData& data, RendererTasks&) {
);
//_shaderProgram->setUniform("minPointSize", 3.f); // in pixels
//_shaderProgram->setUniform("maxPointSize", 30.f); // in pixels
_shaderProgram->setUniform("up", glm::vec3(orthoUp));
_shaderProgram->setUniform("right", glm::vec3(orthoRight));
//_shaderProgram->setUniform(_uniformCache.fadeInValue, fadeInVariable);
_shaderProgram->setUniform(
"correctionSizeEndDistance",
17.f
@@ -1390,7 +1382,6 @@ void RenderableStreamNodes::render(const RenderData& data, RendererTasks&) {
glGetIntegerv(GL_VIEWPORT, viewport);
// _shaderProgram->setUniform("screenSize", glm::vec2(viewport[2], viewport[3]));
//_shaderProgram->setUniform("camerapos", data.camera.)
//data.camera.
//glm::vec3 testvec = data.camera.positionVec3();
@@ -1472,8 +1463,8 @@ void RenderableStreamNodes::render(const RenderData& data, RendererTasks&) {
_lineCount.data(),
static_cast<GLsizei>(_lineStart.size())
);*/
_shaderProgram->setUniform("firstrender", true);
GLint temp = 0;
glDrawArrays(
GL_POINTS,
@@ -1722,7 +1713,6 @@ std::vector<std::string> RenderableStreamNodes::LoadJsonfile(std::string filepat
}
}
LDEBUG("vertPos size:" + std::to_string(_vertexPositions.size()));
LDEBUG("counter for how many times we push back" + std::to_string(counter));
@@ -1821,6 +1811,4 @@ void RenderableStreamNodes::updateVertexStreamNumberBuffer() {
unbindGL();
}*/
} // namespace openspace
@@ -73,7 +73,7 @@ private:
log10RFlux = 3,
lnRFlux = 4
};
enum class NodeskipMethod : int {
enum class NodeSkipMethod : int {
Uniform = 0,
Flux = 1,
Radius = 2,
@@ -287,8 +287,6 @@ private:
// binary files sourcefolder
std::string _binarySourceFilePath;
// --------------------- FUNCTIONS USED DURING INITIALIZATION --------------------- //
bool extractMandatoryInfoFromDictionary(SourceFileType& sourceFileType);
void definePropertyCallbackFunctions();
@@ -43,6 +43,7 @@ Fragment getFragment() {
frag.depth = vs_depth;
frag.color = fragColor;
vec2 coord = gl_PointCoord - vec2(0.5);
if(drawCircles){
if(length(coord) > 0.5){
discard;
@@ -66,18 +67,15 @@ Fragment getFragment() {
*/
//float alphaV = 1 - smoothstep(0, 1, length(coord));
if(useGaussian){
float alphaV = sqrt(pow(1 - length(coord), 3));
alphaV = pow(alphaV, 3);
if(alphaV < 0.1){
discard;
}
float alphaV = sqrt(pow(1 - length(coord), 3));
alphaV = pow(alphaV, 3);
if(alphaV < 0.1){
discard;
}
frag.color.a = alphaV;
//else{
//frag.color.a = alphaV;
}
frag.color.a = 0.3;
}
//vec2 coord = gl_PointCoord;
@@ -105,5 +103,4 @@ Fragment getFragment() {
//frag.gNormal = vec4(0.0, 0.0, -1.0, 1.0);
return frag;
}
@@ -63,18 +63,18 @@ uniform float thresholdFlux;
uniform float filterRadius;
uniform float filterUpper;
uniform int ScalingMode;
uniform int NodeskipMethod;
uniform int Nodeskip;
uniform int Nodeskipdefault;
uniform float NodeskipFluxThreshold;
uniform float NodeskipRadiusThreshold;
uniform int nodeSkipMethod;
uniform int nodeSkip;
uniform int nodeSkipdefault;
uniform float nodeSkipFluxThreshold;
uniform float nodeSkipRadiusThreshold;
uniform float fluxColorAlpha;
uniform vec3 earthPos;
uniform float DistanceThreshold;
uniform int DistanceMethod;
uniform int activestreamnumber;
uniform float distanceThreshold;
uniform int distanceMethod;
uniform int activeStreamNumber;
uniform bool firstrender;
uniform int EnhanceMethod;
uniform int enhanceMethod;
uniform double time;
//uniform float interestingStreams[4];
@@ -83,7 +83,7 @@ uniform double time;
uniform float scaleFactor;
//uniform float minNodeDistanceSize;
uniform float maxNodeDistanceSize;
//uniform float nodeDistanceThreshold;
uniform float nodeDistanceThreshold;
uniform mat4 cameraViewProjectionMatrix;
uniform dmat4 modelMatrix;
@@ -96,7 +96,7 @@ uniform vec3 right;
uniform vec3 cameraLookUp; // in world space (no SGCT View was considered)
//uniform vec2 screenSize;
uniform bool usingCameraPerspective;
uniform bool UsingRadiusPerspective;
uniform bool usingRadiusPerspective;
// Inputs
// Should be provided in meters
@@ -176,31 +176,31 @@ bool CheckvertexIndex(){
int nodeIndex = gl_VertexID;
// nodeIndex = gl_VertexIndex;
//if(EnhanceMethod == 3) return false;
if(NodeskipMethod == uniformskip){
if(mod(nodeIndex, Nodeskip) == 0){
//if(enhanceMethod == 3) return false;
if(nodeSkipMethod == uniformskip){
if(mod(nodeIndex, nodeSkip) == 0){
return true;
}
}
else if(NodeskipMethod == Fluxskip){
if(fluxValue > NodeskipFluxThreshold && mod(nodeIndex, Nodeskip) == 0){
else if(nodeSkipMethod == Fluxskip){
if(fluxValue > nodeSkipFluxThreshold && mod(nodeIndex, nodeSkip) == 0){
return true;
}
if(fluxValue < NodeskipFluxThreshold && mod(nodeIndex, Nodeskipdefault) == 0){
if(fluxValue < nodeSkipFluxThreshold && mod(nodeIndex, nodeSkipdefault) == 0){
return true;
}
}
else if(NodeskipMethod == Radiusskip){
if(rValue < NodeskipRadiusThreshold && mod(nodeIndex, Nodeskip) == 0){
else if(nodeSkipMethod == Radiusskip){
if(rValue < nodeSkipRadiusThreshold && mod(nodeIndex, nodeSkip) == 0){
return true;
}
if(rValue > NodeskipRadiusThreshold && mod(nodeIndex, Nodeskipdefault) == 0){
if(rValue > nodeSkipRadiusThreshold && mod(nodeIndex, nodeSkipdefault) == 0){
return true;
}
}
else if(NodeskipMethod == Streamnumberskip){
else if(nodeSkipMethod == Streamnumberskip){
if(Streamnumber == activestreamnumber){
if(Streamnumber == activeStreamNumber){
//vs_color = vec4(0);
return true;
}
@@ -234,7 +234,7 @@ return false;
//function for showing nodes different depending on distance to earth
void DecidehowtoshowClosetoEarth(){
//Sizescaling
if(EnhanceMethod == 0){
if(enhanceMethod == 0){
float tempR = rValue + 0.4;
if(tempR > 1.5){
tempR = 1.5;
@@ -243,13 +243,13 @@ void DecidehowtoshowClosetoEarth(){
return;
}
//Colortables
if(EnhanceMethod == 1){
if(enhanceMethod == 1){
vec4 fluxColor = getTransferFunctionColor(colorTable);
vs_color = vec4(fluxColor.xyz, fluxColor.a);
return;
}
//Outline
if(EnhanceMethod == 2){
if(enhanceMethod == 2){
if(!firstrender && vs_color.x != 0 && vs_color.y != 0){
gl_PointSize = gl_PointSize + 1;
vs_color = vec4(streamColor.xyz, fluxColorAlpha);
@@ -257,7 +257,7 @@ void DecidehowtoshowClosetoEarth(){
return;
}
//lines
if(EnhanceMethod == 3){
if(enhanceMethod == 3){
// Draw every other line grey
vs_color = vec4(0.18, 0.18, 0.18, 1*fluxColorAlpha);
@@ -302,7 +302,7 @@ void DecidehowtoshowClosetoEarth(){
// }
}
//SizeandColor
if(EnhanceMethod == 4){
if(enhanceMethod == 4){
vec4 fluxColor3 = getTransferFunctionColor(colorTable);
vs_color = vec4(fluxColor3.xyz, fluxColor3.a);
@@ -316,27 +316,27 @@ void DecidehowtoshowClosetoEarth(){
void CheckdistanceMethod() {
//Enhance by distance to Earth
if(EnhanceMethod == 1 || EnhanceMethod == 4){
if(enhanceMethod == 1 || enhanceMethod == 4){
vec4 fluxColor2 = getTransferFunctionColor(colorTableEarth);
vs_color = vec4(fluxColor2.xyz, fluxColor2.a);
}
if(DistanceMethod == 0){
if(distance(earthPos, in_position) < DistanceThreshold){
if(distanceMethod == 0){
if(distance(earthPos, in_position) < distanceThreshold){
DecidehowtoshowClosetoEarth();
}
}
else if(DistanceMethod == 1){
if(distance(earthPos.x, in_position.x) < DistanceThreshold){
else if(distanceMethod == 1){
if(distance(earthPos.x, in_position.x) < distanceThreshold){
DecidehowtoshowClosetoEarth();
}
}
else if(DistanceMethod == 2){
if(distance(earthPos.y, in_position.y) < DistanceThreshold){
else if(distanceMethod == 2){
if(distance(earthPos.y, in_position.y) < distanceThreshold){
DecidehowtoshowClosetoEarth();
}
}
else if(DistanceMethod == 3){
if(distance(earthPos.z, in_position.z) < DistanceThreshold){
else if(distanceMethod == 3){
if(distance(earthPos.z, in_position.z) < distanceThreshold){
DecidehowtoshowClosetoEarth();
}
}
@@ -443,49 +443,43 @@ void main() {
vs_depth = initialPosition.w;
if(usingCameraPerspective){
float rtemp = 1.0;
if(rValue > 1.0){
rtemp = 1.0;
}
else
{
rtemp = rValue;
}
float rtemp = 1.0;
if(rValue > 1.0){
rtemp = 1.0;
}
else{
rtemp = rValue;
}
float maxdist = 600000000000.f;
float distancevec = distance(camerapos, in_position.xyz);
float distScale = 1 - smoothstep(0, maxdist, distancevec);
float factorS = pow(distScale, 9) * rValue * 15.f;
//distancevec = distance(newpos, in_position.xyz);
if(distancevec < maxdist){
float maxdist = 600000000000.f;
float distancevec = distance(camerapos, in_position.xyz);
float distScale = 1 - smoothstep(0, maxdist, distancevec);
//float distMinScale = 1 - smoothstep(0, nodeDistanceThreshold, distancevec);
float factorS = 1.f;
if(UsingRadiusPerspective){
factorS = pow(distScale, 9) * 100.f * pow(rtemp, 2);
}
else{
factorS = pow(distScale, 9) * 100.f;
}
gl_PointSize = factorS * maxNodeDistanceSize * 0.8;
}
else{
gl_PointSize = nodeSize;
}
float factorS = pow(distScale, 9) * rValue * 15.f;
//distancevec = distance(newpos, in_position.xyz);
if(gl_PointSize > 40){
gl_PointSize = 40;
}
if(gl_PointSize < nodeSize){
gl_PointSize = nodeSize;
}
if(distancevec < maxdist){
float distScale = 1 - smoothstep(0, maxdist, distancevec);
//float distMinScale = 1 - smoothstep(0, nodeDistanceThreshold, distancevec);
float factorS = 1.f;
if(usingRadiusPerspective){
factorS = pow(distScale, 9) * 100.f * pow(rtemp, 2);
}
else{
factorS = pow(distScale, 9) * 100.f;
}
gl_PointSize = factorS * maxNodeDistanceSize * 0.8;
}
else{
gl_PointSize = nodeSize;
}
if(gl_PointSize > 40){
gl_PointSize = 40;
}
if(gl_PointSize < nodeSize){
gl_PointSize = nodeSize;
}
}
/*
@@ -510,16 +504,16 @@ void main() {
vs_st = in_st;
}
else{
vs_st = vec2(-1);
vs_st = vec2(-1);
}
*/
//old transformation from in position
//vec4 position_in_meters = vec4(in_position, 1);
vec4 position_in_meters = vec4(in_position, 1);
//vec4 positionClipSpace = modelViewProjection * position_in_meters;
//vs_gPosition = vec4(modelViewTransform * dvec4(in_point_position, 1));
// gl_PointSize = nodeSize;
// gl_Position = vec4(positionClipSpace.xy, 0, positionClipSpace.w);
//gl_Position = vec4(positionClipSpace.xy, 0, positionClipSpace.w);
// vs_depth = gl_Position.w;
// if(distance(positionClipSpace.xyz, camerapos) < 0.f){