diff --git a/src/Mod/TechDraw/App/DrawView.cpp b/src/Mod/TechDraw/App/DrawView.cpp index 7a81652f63..d772a95f21 100644 --- a/src/Mod/TechDraw/App/DrawView.cpp +++ b/src/Mod/TechDraw/App/DrawView.cpp @@ -67,7 +67,9 @@ App::PropertyFloatConstraint::Constraints DrawView::scaleRange = {Precision::Con PROPERTY_SOURCE(TechDraw::DrawView, App::DocumentObject) -DrawView::DrawView(void) +DrawView::DrawView(void): + autoPos(true), + mouseMove(false) { static const char *group = "Base"; diff --git a/src/Mod/TechDraw/App/DrawViewDimension.cpp b/src/Mod/TechDraw/App/DrawViewDimension.cpp index 23be5bcc7d..123a65eb38 100644 --- a/src/Mod/TechDraw/App/DrawViewDimension.cpp +++ b/src/Mod/TechDraw/App/DrawViewDimension.cpp @@ -590,6 +590,11 @@ pointPair DrawViewDimension::getPointsTwoEdges() int idx1 = DrawUtil::getIndexFromName(subElements[1]); TechDrawGeometry::BaseGeom* geom0 = getViewPart()->getProjEdgeByIndex(idx0); TechDrawGeometry::BaseGeom* geom1 = getViewPart()->getProjEdgeByIndex(idx1); + if ((geom0 == nullptr) || + (geom1 == nullptr) ) { + Base::Console().Error("Error: DVD - %s - 2D references are corrupt\n",getNameInDocument()); + return result; + } result = closestPoints(geom0->occEdge,geom1->occEdge); return result; } diff --git a/src/Mod/TechDraw/App/DrawViewDimension.h b/src/Mod/TechDraw/App/DrawViewDimension.h index 9afbee1699..fe1db57de9 100644 --- a/src/Mod/TechDraw/App/DrawViewDimension.h +++ b/src/Mod/TechDraw/App/DrawViewDimension.h @@ -46,12 +46,21 @@ struct DimRef { typedef std::pair pointPair; -struct anglePoints { +struct anglePoints +{ pointPair ends; Base::Vector3d vertex; + + anglePoints() + { + ends.first = Base::Vector3d(0.0,0.0,0.0); + ends.second = Base::Vector3d(0.0,0.0,0.0); + vertex = Base::Vector3d(0.0,0.0,0.0); + } }; -struct arcPoints { +struct arcPoints +{ bool isArc; double radius; Base::Vector3d center; @@ -59,6 +68,20 @@ struct arcPoints { pointPair arcEnds; Base::Vector3d midArc; bool arcCW; + + arcPoints() + { + isArc = false; + radius = 0.0; + center = Base::Vector3d(0.0,0.0,0.0); + onCurve.first = Base::Vector3d(0.0,0.0,0.0); + onCurve.second = Base::Vector3d(0.0,0.0,0.0); + arcEnds.first = Base::Vector3d(0.0,0.0,0.0); + arcEnds.second = Base::Vector3d(0.0,0.0,0.0); + midArc = Base::Vector3d(0.0,0.0,0.0); + arcCW = false; + } + }; class TechDrawExport DrawViewDimension : public TechDraw::DrawView