Skip to content

Commit 5a03c04

Browse files
committed
Created states and conditionals for cylinder edges.
1 parent 5db9445 commit 5a03c04

File tree

8 files changed

+53
-30
lines changed

8 files changed

+53
-30
lines changed

src/Core/Algorithms/Visualization/RenderFieldState.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class RenderState
5858
USE_SPHERE,
5959

6060
// Edge flags
61+
USE_CYLINDER,
6162

6263
// Face flags
6364
USE_NORMALS,

src/Core/Datatypes/Geometry.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ namespace Datatypes {
7070
{
7171
RENDER_VBO_IBO,
7272
RENDER_RLIST_SPHERE,
73+
RENDER_RLIST_CYLINDER,
7374
};
7475

7576
explicit GeometryObject(DatatypeConstHandle dh);

src/Interface/Modules/Render/ES/SRInterface.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,11 @@ namespace SCIRun {
411411
assetName = "Assets/sphere.geom";
412412
}
413413

414+
if (pass.renderType == Core::Datatypes::GeometryObject::RENDER_RLIST_CYLINDER)
415+
{
416+
assetName = "Assests/arrow.geom";
417+
}
418+
414419
addVBOToEntity(entityID, assetName);
415420
addIBOToEntity(entityID, assetName);
416421
}

src/Interface/Modules/Visualization/ShowField.ui

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@
291291
<item>
292292
<widget class="QGroupBox" name="groupBox_7">
293293
<property name="enabled">
294-
<bool>false</bool>
294+
<bool>true</bool>
295295
</property>
296296
<property name="title">
297297
<string>Edge Display Type</string>
@@ -310,7 +310,7 @@
310310
<item>
311311
<widget class="QRadioButton" name="edgesAsCylindersButton_">
312312
<property name="enabled">
313-
<bool>false</bool>
313+
<bool>true</bool>
314314
</property>
315315
<property name="text">
316316
<string>Cylinders</string>

src/Interface/Modules/Visualization/ShowFieldDialog.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ ShowFieldDialog::ShowFieldDialog(const std::string& name, ModuleStateHandle stat
6767
connect(nodesAsSpheresButton_, SIGNAL(clicked()), this, SLOT(pushNodeType()));
6868

6969
pushNodeType();
70+
pushEdgeType();
7071
pushColor();
7172
pushTransparencyValue();
7273
}
@@ -113,6 +114,12 @@ void ShowFieldDialog::pushNodeType()
113114
state_->setValue(ShowFieldModule::NodeAsSpheres, nodesAsSpheresButton_->isChecked());
114115
}
115116

117+
void ShowFieldDialog::pushEdgeType()
118+
{
119+
state_->setValue(ShowFieldModule::EdgesAsLines, edgesAsLinesButton_->isChecked());
120+
state_->setValue(ShowFieldModule::EdgesAsCylinders, edgesAsCylindersButton_->isChecked());
121+
}
122+
116123
void ShowFieldDialog::pushTransparencyValue()
117124
{
118125
state_->setValue(ShowFieldModule::FaceTransparencyValue, transparencyDoubleSpinBox_->value());

src/Interface/Modules/Visualization/ShowFieldDialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ namespace SCIRun {
5454
void push();
5555
void pushColor();
5656
void pushNodeType();
57+
void pushEdgeType();
5758
void pushTransparencyValue();
5859
void assignDefaultMeshColor();
5960
private:

src/Modules/Visualization/ShowField.cc

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ void ShowFieldModule::setStateDefaults()
7575
state->setValue(DefaultMeshColor, ColorRGB(1.0, 1.0, 1.0).toString());
7676
state->setValue(NodeAsPoints, true);
7777
state->setValue(NodeAsSpheres, false);
78+
state->setValue(EdgesAsLines, true);
79+
state->setValue(EdgesAsCylinders, false);
7880
state->setValue(FaceTransparency, 0.75f);
7981
transparencyValue_ = 0.75f;
8082

@@ -128,6 +130,8 @@ RenderState ShowFieldModule::getEdgeRenderState(
128130
renState.set(RenderState::IS_ON, state->getValue(ShowFieldModule::ShowEdges).toBool());
129131
renState.set(RenderState::USE_TRANSPARENCY, state->getValue(ShowFieldModule::EdgeTransparency).toBool());
130132

133+
renState.set(RenderState::USE_CYLINDER, state->getValue(ShowFieldModule::EdgesAsCylinders).toBool());
134+
131135
renState.defaultColor = ColorRGB(state->getValue(ShowFieldModule::DefaultMeshColor).toString());
132136

133137
if (colorMap)
@@ -1571,28 +1575,28 @@ void ShowFieldModule::renderEdges(
15711575
ColorRGB defaultColor = state.defaultColor;
15721576

15731577
/// \todo Use cylinders...
1574-
// if (state.get(RenderState::USE_SPHERE))
1575-
// {
1576-
// shader = "Shaders/DirPhong";
1577-
// uniforms.push_back(GeometryObject::SpireSubPass::Uniform("uAmbientColor",
1578-
// glm::vec4(0.1f, 0.1f, 0.1f, 1.0f)));
1579-
// uniforms.push_back(GeometryObject::SpireSubPass::Uniform("uSpecularColor",
1580-
// glm::vec4(1.0f, 1.0f, 1.0f, 1.0f)));
1581-
// uniforms.push_back(GeometryObject::SpireSubPass::Uniform("uSpecularPower", 32.0f));
1582-
//
1583-
// if (state.get(RenderState::USE_TRANSPARENCY))
1584-
// {
1585-
// uniforms.push_back(GeometryObject::SpireSubPass::Uniform(
1586-
// "uDiffuseColor", glm::vec4(defaultColor.r(), defaultColor.g(), defaultColor.b(), 0.7f)));
1587-
// }
1588-
// else
1589-
// {
1590-
// uniforms.push_back(GeometryObject::SpireSubPass::Uniform(
1591-
// "uDiffuseColor", glm::vec4(defaultColor.r(), defaultColor.g(), defaultColor.b(), 1.0f)));
1592-
// }
1593-
// }
1594-
// else
1595-
// {
1578+
if (state.get(RenderState::USE_CYLINDER))
1579+
{
1580+
shader = "Shaders/DirPhong";
1581+
uniforms.push_back(GeometryObject::SpireSubPass::Uniform("uAmbientColor",
1582+
glm::vec4(0.1f, 0.1f, 0.1f, 1.0f)));
1583+
uniforms.push_back(GeometryObject::SpireSubPass::Uniform("uSpecularColor",
1584+
glm::vec4(1.0f, 1.0f, 1.0f, 1.0f)));
1585+
uniforms.push_back(GeometryObject::SpireSubPass::Uniform("uSpecularPower", 32.0f));
1586+
1587+
if (state.get(RenderState::USE_TRANSPARENCY))
1588+
{
1589+
uniforms.push_back(GeometryObject::SpireSubPass::Uniform(
1590+
"uDiffuseColor", glm::vec4(defaultColor.r(), defaultColor.g(), defaultColor.b(), 0.7f)));
1591+
}
1592+
else
1593+
{
1594+
uniforms.push_back(GeometryObject::SpireSubPass::Uniform(
1595+
"uDiffuseColor", glm::vec4(defaultColor.r(), defaultColor.g(), defaultColor.b(), 1.0f)));
1596+
}
1597+
}
1598+
else
1599+
{
15961600
shader = "Shaders/UniformColor";
15971601

15981602
if (state.get(RenderState::USE_TRANSPARENCY))
@@ -1606,15 +1610,15 @@ void ShowFieldModule::renderEdges(
16061610
uniforms.push_back(GeometryObject::SpireSubPass::Uniform(
16071611
"uColor", glm::vec4(defaultColor.r(), defaultColor.g(), defaultColor.b(), 1.0f)));
16081612
}
1609-
// }
1613+
}
16101614
}
16111615

16121616
/// \todo Use cylinders...
1613-
// if (state.get(RenderState::USE_SPHERE))
1614-
// {
1615-
// renderType = GeometryObject::RENDER_RLIST_SPHERE;
1616-
// vboOnGPU = false;
1617-
// }
1617+
if (state.get(RenderState::USE_CYLINDER))
1618+
{
1619+
renderType = GeometryObject::RENDER_RLIST_CYLINDER;
1620+
vboOnGPU = false;
1621+
}
16181622

16191623
GeometryObject::SpireVBO geomVBO = GeometryObject::SpireVBO(vboName, attribs, vboBufferSPtr,
16201624
numVBOElements, mesh->get_bounding_box(), vboOnGPU);
@@ -1665,6 +1669,8 @@ AlgorithmParameterName ShowFieldModule::FaceTransparency("FaceTransparency");
16651669
AlgorithmParameterName ShowFieldModule::FaceInvertNormals("FaceInvertNormals");
16661670
AlgorithmParameterName ShowFieldModule::NodeAsPoints("NodeAsPoints");
16671671
AlgorithmParameterName ShowFieldModule::NodeAsSpheres("NodeAsSpheres");
1672+
AlgorithmParameterName ShowFieldModule::EdgesAsLines("EdgesAsLines");
1673+
AlgorithmParameterName ShowFieldModule::EdgesAsCylinders("EdgesAsCylinders");
16681674
AlgorithmParameterName ShowFieldModule::DefaultMeshColor("DefaultMeshColor");
16691675
AlgorithmParameterName ShowFieldModule::FaceTransparencyValue("FaceTransparencyValue");
16701676

src/Modules/Visualization/ShowField.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ namespace Visualization {
5757
static Core::Algorithms::AlgorithmParameterName FaceInvertNormals;
5858
static Core::Algorithms::AlgorithmParameterName NodeAsPoints;
5959
static Core::Algorithms::AlgorithmParameterName NodeAsSpheres;
60+
static Core::Algorithms::AlgorithmParameterName EdgesAsLines;
61+
static Core::Algorithms::AlgorithmParameterName EdgesAsCylinders;
6062
static Core::Algorithms::AlgorithmParameterName DefaultMeshColor;
6163
static Core::Algorithms::AlgorithmParameterName FaceTransparencyValue;
6264

0 commit comments

Comments
 (0)