From 04337034ce0aeff5434d3930cad0db2fb3d2aa36 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Mon, 21 Dec 2020 19:56:38 +0100 Subject: [PATCH] Sketcher: ViewProvider representation of (not)-fully constraint defining points --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 24 +++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index aac96821b8..8b28077b54 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -2792,6 +2792,13 @@ void ViewProviderSketch::updateColor(void) return false; }; + auto isDefinedGeomPoint = [](Sketcher::SketchObject* obj, int GeoId) -> bool { + const Part::Geometry* geom = obj->getGeometry(GeoId); + if (geom) + return geom->getTypeId() == Part::GeomPoint::getClassTypeId() && !Sketcher::GeometryFacade::getConstruction(geom); + return false; + }; + auto isInternalAlignedGeom = [](Sketcher::SketchObject* obj, int GeoId) -> bool { const Part::Geometry* geom = obj->getGeometry(GeoId); if (geom) { @@ -2835,10 +2842,19 @@ void ViewProviderSketch::updateColor(void) pcolor[i] = InternalAlignedGeoColor; } else { - if(constrainedElement) - pcolor[i] = FullyConstraintConstructionPointColor; - else - pcolor[i] = VertexColor; + if(!isDefinedGeomPoint(getSketchObject(), GeoId)) { + + if(constrainedElement) + pcolor[i] = FullyConstraintConstructionPointColor; + else + pcolor[i] = VertexColor; + } + else { // this is a defined GeomPoint + if(constrainedElement) + pcolor[i] = FullyConstraintElementColor; + else + pcolor[i] = CurveColor; + } } } }