From 6c4409ba3438385a3fcfe8b54d5fabbe172bcf4a Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Mon, 22 Apr 2019 08:20:47 -0700 Subject: [PATCH] Fix missing definition of GridVisual::isDisplayed() (#1280) --- CHANGELOG.md | 2 +- dart/gui/osg/GridVisual.cpp | 6 + examples/osgExamples/osgPointCloud/main.cpp | 196 ++++++++++---------- 3 files changed, 109 insertions(+), 95 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f65546c53b922..dc65ec0fb371d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,7 +40,7 @@ * Updated ImGui to 1.69: [#1274](https://github.com/dartsim/dart/pull/1274) * Added VoxelGridShape support to OSG renderer: [#1276](https://github.com/dartsim/dart/pull/1276) * Added PointCloudShape and its OSG rendering: [#1277](https://github.com/dartsim/dart/pull/1277) - * Added grid visual to OSG renderer: [#1278](https://github.com/dartsim/dart/pull/1278) + * Added grid visual to OSG renderer: [#1278](https://github.com/dartsim/dart/pull/1278), [#1280](https://github.com/dartsim/dart/pull/1280) * Build System diff --git a/dart/gui/osg/GridVisual.cpp b/dart/gui/osg/GridVisual.cpp index db1aafc1c29cf..e61750f2dcba4 100644 --- a/dart/gui/osg/GridVisual.cpp +++ b/dart/gui/osg/GridVisual.cpp @@ -145,6 +145,12 @@ void GridVisual::display(bool display) removeChild(mGeode); } +//============================================================================== +bool GridVisual::isDisplayed() const +{ + return mDisplayGrid; +} + //============================================================================== void GridVisual::setMajorLineColor(const Eigen::Vector4d& color) { diff --git a/examples/osgExamples/osgPointCloud/main.cpp b/examples/osgExamples/osgPointCloud/main.cpp index ff77a04c7a605..f90aeb2717053 100644 --- a/examples/osgExamples/osgPointCloud/main.cpp +++ b/examples/osgExamples/osgPointCloud/main.cpp @@ -276,108 +276,116 @@ class PointCloudWidget : public dart::gui::osg::ImGuiWidget { assert(mGrid); ImGui::Text("Grid"); - int e = static_cast(mGrid->getPlaneType()); - if (mViewer->isAllowingSimulation()) - { - if (ImGui::RadioButton("XY-Plane", &e, 0)) - mGrid->setPlaneType(gui::osg::GridVisual::PlaneType::XY); - ImGui::SameLine(); - if (ImGui::RadioButton("YZ-Plane", &e, 1)) - mGrid->setPlaneType(gui::osg::GridVisual::PlaneType::YZ); - ImGui::SameLine(); - if (ImGui::RadioButton("ZX-Plane", &e, 2)) - mGrid->setPlaneType(gui::osg::GridVisual::PlaneType::ZX); - } - static Eigen::Vector3f offset; - ImGui::Columns(3); - offset = mGrid->getOffset().cast(); - if (ImGui::InputFloat("X", &offset[0], 0.1f, 0.5f, "%.1f")) - mGrid->setOffset(offset.cast()); - ImGui::NextColumn(); - if (ImGui::InputFloat("Y", &offset[1], 0.1f, 0.5f, "%.1f")) - mGrid->setOffset(offset.cast()); - ImGui::NextColumn(); - if (ImGui::InputFloat("Z", &offset[2], 0.1f, 0.5f, "%.1f")) - mGrid->setOffset(offset.cast()); - ImGui::Columns(1); - - static int cellCount; - cellCount = static_cast(mGrid->getNumCells()); - if (ImGui::InputInt("Line Count", &cellCount, 1, 5)) - { - if (cellCount < 0) - cellCount = 0; - mGrid->setNumCells(static_cast(cellCount)); - } + bool display = mGrid->isDisplayed(); + if (ImGui::Checkbox("Show", &display)) + mGrid->display(display); - static float cellStepSize; - cellStepSize = static_cast(mGrid->getMinorLineStepSize()); - if (ImGui::InputFloat("Line Step Size", &cellStepSize, 0.001f, 0.1f)) + if (display) { - mGrid->setMinorLineStepSize(static_cast(cellStepSize)); - } - - static int minorLinesPerMajorLine; - minorLinesPerMajorLine - = static_cast(mGrid->getNumMinorLinesPerMajorLine()); - if (ImGui::InputInt( + int e = static_cast(mGrid->getPlaneType()); + if (mViewer->isAllowingSimulation()) + { + if (ImGui::RadioButton("XY-Plane", &e, 0)) + mGrid->setPlaneType(gui::osg::GridVisual::PlaneType::XY); + ImGui::SameLine(); + if (ImGui::RadioButton("YZ-Plane", &e, 1)) + mGrid->setPlaneType(gui::osg::GridVisual::PlaneType::YZ); + ImGui::SameLine(); + if (ImGui::RadioButton("ZX-Plane", &e, 2)) + mGrid->setPlaneType(gui::osg::GridVisual::PlaneType::ZX); + } + + static Eigen::Vector3f offset; + ImGui::Columns(3); + offset = mGrid->getOffset().cast(); + if (ImGui::InputFloat("X", &offset[0], 0.1f, 0.5f, "%.1f")) + mGrid->setOffset(offset.cast()); + ImGui::NextColumn(); + if (ImGui::InputFloat("Y", &offset[1], 0.1f, 0.5f, "%.1f")) + mGrid->setOffset(offset.cast()); + ImGui::NextColumn(); + if (ImGui::InputFloat("Z", &offset[2], 0.1f, 0.5f, "%.1f")) + mGrid->setOffset(offset.cast()); + ImGui::Columns(1); + + static int cellCount; + cellCount = static_cast(mGrid->getNumCells()); + if (ImGui::InputInt("Line Count", &cellCount, 1, 5)) + { + if (cellCount < 0) + cellCount = 0; + mGrid->setNumCells(static_cast(cellCount)); + } + + static float cellStepSize; + cellStepSize = static_cast(mGrid->getMinorLineStepSize()); + if (ImGui::InputFloat("Line Step Size", &cellStepSize, 0.001f, 0.1f)) + { + mGrid->setMinorLineStepSize(static_cast(cellStepSize)); + } + + static int minorLinesPerMajorLine; + minorLinesPerMajorLine + = static_cast(mGrid->getNumMinorLinesPerMajorLine()); + if (ImGui::InputInt( "Minor Lines per Major Line", &minorLinesPerMajorLine, 1, 5)) - { - if (minorLinesPerMajorLine < 0) - minorLinesPerMajorLine = 0; - mGrid->setNumMinorLinesPerMajorLine( - static_cast(minorLinesPerMajorLine)); - } - - static float axisLineWidth; - axisLineWidth = mGrid->getAxisLineWidth(); - if (ImGui::InputFloat( + { + if (minorLinesPerMajorLine < 0) + minorLinesPerMajorLine = 0; + mGrid->setNumMinorLinesPerMajorLine( + static_cast(minorLinesPerMajorLine)); + } + + static float axisLineWidth; + axisLineWidth = mGrid->getAxisLineWidth(); + if (ImGui::InputFloat( "Axis Line Width", &axisLineWidth, 1.f, 2.f, "%.0f")) - { - mGrid->setAxisLineWidth(axisLineWidth); - } + { + mGrid->setAxisLineWidth(axisLineWidth); + } - static float majorLineWidth; - majorLineWidth = mGrid->getMajorLineWidth(); - if (ImGui::InputFloat( + static float majorLineWidth; + majorLineWidth = mGrid->getMajorLineWidth(); + if (ImGui::InputFloat( "Major Line Width", &majorLineWidth, 1.f, 2.f, "%.0f")) - { - mGrid->setMajorLineWidth(majorLineWidth); - } - - static float majorColor[3]; - auto internalmajorColor = mGrid->getMajorLineColor(); - majorColor[0] = static_cast(internalmajorColor.x()); - majorColor[1] = static_cast(internalmajorColor.y()); - majorColor[2] = static_cast(internalmajorColor.z()); - if (ImGui::ColorEdit3("Major Line Color", majorColor)) - { - internalmajorColor[0] = static_cast(majorColor[0]); - internalmajorColor[1] = static_cast(majorColor[1]); - internalmajorColor[2] = static_cast(majorColor[2]); - mGrid->setMajorLineColor(internalmajorColor); - } - - static float minorLineWidth; - minorLineWidth = mGrid->getMinorLineWidth(); - if (ImGui::InputFloat( + { + mGrid->setMajorLineWidth(majorLineWidth); + } + + static float majorColor[3]; + auto internalmajorColor = mGrid->getMajorLineColor(); + majorColor[0] = static_cast(internalmajorColor.x()); + majorColor[1] = static_cast(internalmajorColor.y()); + majorColor[2] = static_cast(internalmajorColor.z()); + if (ImGui::ColorEdit3("Major Line Color", majorColor)) + { + internalmajorColor[0] = static_cast(majorColor[0]); + internalmajorColor[1] = static_cast(majorColor[1]); + internalmajorColor[2] = static_cast(majorColor[2]); + mGrid->setMajorLineColor(internalmajorColor); + } + + static float minorLineWidth; + minorLineWidth = mGrid->getMinorLineWidth(); + if (ImGui::InputFloat( "Minor Line Width", &minorLineWidth, 1.f, 2.f, "%.0f")) - { - mGrid->setMinorLineWidth(minorLineWidth); - } - - float minorColor[3]; - auto internalMinorColor = mGrid->getMinorLineColor(); - minorColor[0] = static_cast(internalMinorColor.x()); - minorColor[1] = static_cast(internalMinorColor.y()); - minorColor[2] = static_cast(internalMinorColor.z()); - if (ImGui::ColorEdit3("Minor Line Color", minorColor)) - { - internalMinorColor[0] = static_cast(minorColor[0]); - internalMinorColor[1] = static_cast(minorColor[1]); - internalMinorColor[2] = static_cast(minorColor[2]); - mGrid->setMinorLineColor(internalMinorColor); + { + mGrid->setMinorLineWidth(minorLineWidth); + } + + float minorColor[3]; + auto internalMinorColor = mGrid->getMinorLineColor(); + minorColor[0] = static_cast(internalMinorColor.x()); + minorColor[1] = static_cast(internalMinorColor.y()); + minorColor[2] = static_cast(internalMinorColor.z()); + if (ImGui::ColorEdit3("Minor Line Color", minorColor)) + { + internalMinorColor[0] = static_cast(minorColor[0]); + internalMinorColor[1] = static_cast(minorColor[1]); + internalMinorColor[2] = static_cast(minorColor[2]); + mGrid->setMinorLineColor(internalMinorColor); + } } } }