From ae5798434af3adcd03b19b0af35462cbe9c73ccf Mon Sep 17 00:00:00 2001 From: WandererFan Date: Tue, 4 Oct 2016 10:03:07 -0400 Subject: [PATCH] Add options for face detection and cut face edge display --- src/Mod/TechDraw/App/DrawViewPart.cpp | 16 ++++--------- src/Mod/TechDraw/App/DrawViewPart.h | 4 ++-- src/Mod/TechDraw/Gui/QGIViewPart.cpp | 32 +++++++++++++------------ src/Mod/TechDraw/Gui/QGIViewSection.cpp | 6 ++++- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewPart.cpp b/src/Mod/TechDraw/App/DrawViewPart.cpp index bddbd33f99ab..fa57d96b6805 100644 --- a/src/Mod/TechDraw/App/DrawViewPart.cpp +++ b/src/Mod/TechDraw/App/DrawViewPart.cpp @@ -817,28 +817,20 @@ void DrawViewPart::getRunControl() Base::Reference hGrp = App::GetApplication().GetUserParameter() .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/RunControl"); m_interAlgo = hGrp->GetInt("InterAlgo", 2l); - m_sectionEdges = hGrp->GetInt("ShowSectionEdges", 1l); - m_handleFaces = hGrp->GetInt("HandleFaces", 1l); + m_sectionEdges = hGrp->GetBool("ShowSectionEdges", 1l); + m_handleFaces = hGrp->GetBool("HandleFaces", 1l); // Base::Console().Message("TRACE - DVP::getRunControl - interAlgo: %ld sectionFaces: %ld handleFaces: %ld\n", // m_interAlgo,m_sectionEdges,m_handleFaces); } bool DrawViewPart::handleFaces(void) { - bool result = false; - if (m_handleFaces == 1l) { - result = true; - } - return result; + return m_handleFaces; } bool DrawViewPart::showSectionEdges(void) { - bool result = false; - if (m_sectionEdges == 1l) { - result = true; - } - return result; + return m_sectionEdges; } PyObject *DrawViewPart::getPyObject(void) diff --git a/src/Mod/TechDraw/App/DrawViewPart.h b/src/Mod/TechDraw/App/DrawViewPart.h index 75c32f53767a..d3ce69e33ffa 100644 --- a/src/Mod/TechDraw/App/DrawViewPart.h +++ b/src/Mod/TechDraw/App/DrawViewPart.h @@ -156,8 +156,8 @@ class TechDrawExport DrawViewPart : public DrawView void getRunControl(void); long int m_interAlgo; - long int m_sectionEdges; - long int m_handleFaces; + bool m_sectionEdges; + bool m_handleFaces; private: static App::PropertyFloatConstraint::Constraints floatRange; diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index ea37f81efb89..2b3b35fff7cb 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -297,23 +297,25 @@ void QGIViewPart::drawViewPart() removeDecorations(); #if MOD_TECHDRAW_HANDLE_FACES - // Draw Faces - std::vector hatchObjs = viewPart->getHatches(); - const std::vector &faceGeoms = viewPart->getFaceGeometry(); - std::vector::const_iterator fit = faceGeoms.begin(); - for(int i = 0 ; fit != faceGeoms.end(); fit++, i++) { - QGIFace* newFace = drawFace(*fit,i); - TechDraw::DrawHatch* fHatch = faceIsHatched(i,hatchObjs); - if (fHatch) { - if (!fHatch->HatchPattern.isEmpty()) { - App::Color hColor = fHatch->HatchColor.getValue(); - newFace->setHatchColor(hColor.asCSSString()); - newFace->setHatch(fHatch->HatchPattern.getValue()); + if (viewPart->handleFaces()) { + // Draw Faces + std::vector hatchObjs = viewPart->getHatches(); + const std::vector &faceGeoms = viewPart->getFaceGeometry(); + std::vector::const_iterator fit = faceGeoms.begin(); + for(int i = 0 ; fit != faceGeoms.end(); fit++, i++) { + QGIFace* newFace = drawFace(*fit,i); + TechDraw::DrawHatch* fHatch = faceIsHatched(i,hatchObjs); + if (fHatch) { + if (!fHatch->HatchPattern.isEmpty()) { + App::Color hColor = fHatch->HatchColor.getValue(); + newFace->setHatchColor(hColor.asCSSString()); + newFace->setHatch(fHatch->HatchPattern.getValue()); + } } + newFace->setDrawEdges(false); + newFace->setZValue(ZVALUE::FACE); + newFace->setPrettyNormal(); } - newFace->setDrawEdges(false); - newFace->setZValue(ZVALUE::FACE); - newFace->setPrettyNormal(); } #endif //#if MOD_TECHDRAW_HANDLE_FACES diff --git a/src/Mod/TechDraw/Gui/QGIViewSection.cpp b/src/Mod/TechDraw/Gui/QGIViewSection.cpp index 89d3ee8b06db..0a9613e6a486 100644 --- a/src/Mod/TechDraw/Gui/QGIViewSection.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewSection.cpp @@ -79,7 +79,11 @@ void QGIViewSection::drawSectionFace() QGIFace* newFace = drawFace(*fit,-1); //TODO: do we need to know which sectionFace this QGIFace came from? newFace->setZValue(ZVALUE::SECTIONFACE); newFace->setFill(faceColor, Qt::SolidPattern); - newFace->setDrawEdges(false); + if (section->showSectionEdges()) { + newFace->setDrawEdges(true); + } else { + newFace->setDrawEdges(false); + } newFace->setPrettyNormal(); newFace->setAcceptHoverEvents(false); newFace->setFlag(QGraphicsItem::ItemIsSelectable, false);