From b47eff76ae5863633a890fbb8d4c6877e53085e0 Mon Sep 17 00:00:00 2001 From: WandererFan Date: Mon, 29 Aug 2016 11:06:56 -0400 Subject: [PATCH] Changes re const, ref and TopExp per wmayer Refactor debug routines to DrawUtil --- src/Mod/TechDraw/App/DrawUtil.cpp | 72 ++++++++++++++++++++++++++- src/Mod/TechDraw/App/DrawUtil.h | 13 +++++ src/Mod/TechDraw/App/DrawViewPart.cpp | 72 ++------------------------- src/Mod/TechDraw/App/DrawViewPart.h | 25 ++++------ 4 files changed, 99 insertions(+), 83 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawUtil.cpp b/src/Mod/TechDraw/App/DrawUtil.cpp index 8918404162b1..c3e7e4715eb2 100644 --- a/src/Mod/TechDraw/App/DrawUtil.cpp +++ b/src/Mod/TechDraw/App/DrawUtil.cpp @@ -33,10 +33,18 @@ # include # include -//#include + #include #include #include +#include +#include +#include +#include +#include +#include +#include + #endif #include @@ -109,3 +117,65 @@ bool DrawUtil::isSamePoint(TopoDS_Vertex v1, TopoDS_Vertex v2) } return result; } + +//============================ +// various debugging routines. +void DrawUtil::dumpVertexes(const char* text, const TopoDS_Shape& s) +{ + Base::Console().Message("DUMP - %s\n",text); + TopExp_Explorer expl(s, TopAbs_VERTEX); + int i; + for (i = 1 ; expl.More(); expl.Next(),i++) { + const TopoDS_Vertex& v = TopoDS::Vertex(expl.Current()); + gp_Pnt pnt = BRep_Tool::Pnt(v); + Base::Console().Message("v%d: (%.3f,%.3f,%.3f)\n",i,pnt.X(),pnt.Y(),pnt.Z()); + } +} + +void DrawUtil::countFaces(const char* text, const TopoDS_Shape& s) +{ + TopTools_IndexedMapOfShape mapOfFaces; + TopExp::MapShapes(s, TopAbs_FACE, mapOfFaces); + int num = mapOfFaces.Extent(); + Base::Console().Message("COUNT - %s has %d Faces\n",text,num); +} + +//count # of unique Wires in shape. +void DrawUtil::countWires(const char* text, const TopoDS_Shape& s) +{ + TopTools_IndexedMapOfShape mapOfWires; + TopExp::MapShapes(s, TopAbs_WIRE, mapOfWires); + int num = mapOfWires.Extent(); + Base::Console().Message("COUNT - %s has %d wires\n",text,num); +} + +void DrawUtil::countEdges(const char* text, const TopoDS_Shape& s) +{ + TopTools_IndexedMapOfShape mapOfEdges; + TopExp::MapShapes(s, TopAbs_EDGE, mapOfEdges); + int num = mapOfEdges.Extent(); + Base::Console().Message("COUNT - %s has %d edges\n",text,num); +} + +void DrawUtil::dump1Vertex(const char* text, const TopoDS_Vertex& v) +{ + Base::Console().Message("DUMP - dump1Vertex - %s\n",text); + gp_Pnt pnt = BRep_Tool::Pnt(v); + Base::Console().Message("%s: (%.3f,%.3f,%.3f)\n",text,pnt.X(),pnt.Y(),pnt.Z()); +} + +void DrawUtil::dumpEdge(char* label, int i, TopoDS_Edge e) +{ + BRepAdaptor_Curve adapt(e); + double start = BRepLProp_CurveTool::FirstParameter(adapt); + double end = BRepLProp_CurveTool::LastParameter(adapt); + BRepLProp_CLProps propStart(adapt,start,0,Precision::Confusion()); + const gp_Pnt& vStart = propStart.Value(); + BRepLProp_CLProps propEnd(adapt,end,0,Precision::Confusion()); + const gp_Pnt& vEnd = propEnd.Value(); + //Base::Console().Message("%s edge:%d start:(%.3f,%.3f,%.3f)/%0.3f end:(%.2f,%.3f,%.3f)/%.3f\n",label,i, + // vStart.X(),vStart.Y(),vStart.Z(),start,vEnd.X(),vEnd.Y(),vEnd.Z(),end); + Base::Console().Message("%s edge:%d start:(%.3f,%.3f,%.3f) end:(%.2f,%.3f,%.3f)\n",label,i, + vStart.X(),vStart.Y(),vStart.Z(),vEnd.X(),vEnd.Y(),vEnd.Z()); +} +//================================== diff --git a/src/Mod/TechDraw/App/DrawUtil.h b/src/Mod/TechDraw/App/DrawUtil.h index ad930d91bf84..44978b73289a 100644 --- a/src/Mod/TechDraw/App/DrawUtil.h +++ b/src/Mod/TechDraw/App/DrawUtil.h @@ -24,7 +24,12 @@ #define _DrawUtil_h_ #include +#include #include +#include +#include +#include +#include namespace TechDraw { @@ -36,6 +41,14 @@ class TechDrawExport DrawUtil { static std::string getGeomTypeFromName(std::string geomName); static std::string makeGeomName(std::string geomType, int index); static bool isSamePoint(TopoDS_Vertex v1, TopoDS_Vertex v2); + + //debugging routines + static void dumpVertexes(const char* text, const TopoDS_Shape& s); + static void dumpEdge(char* label, int i, TopoDS_Edge e); + static void dump1Vertex(const char* label, const TopoDS_Vertex& v); + static void countFaces(const char* label, const TopoDS_Shape& s); + static void countWires(const char* label, const TopoDS_Shape& s); + static void countEdges(const char* label, const TopoDS_Shape& s); }; } //end namespace TechDraw diff --git a/src/Mod/TechDraw/App/DrawViewPart.cpp b/src/Mod/TechDraw/App/DrawViewPart.cpp index 3e44c1d31a3c..cee03772d267 100644 --- a/src/Mod/TechDraw/App/DrawViewPart.cpp +++ b/src/Mod/TechDraw/App/DrawViewPart.cpp @@ -58,6 +58,7 @@ #include #include #include +#include #endif @@ -358,7 +359,7 @@ void DrawViewPart::extractFaces() } } -double DrawViewPart::simpleMinDist(TopoDS_Shape s1, TopoDS_Shape s2) +double DrawViewPart::simpleMinDist(TopoDS_Shape s1, TopoDS_Shape s2) const { Standard_Real minDist = -1; @@ -511,7 +512,7 @@ QRectF DrawViewPart::getRect() const } //used to project pt (ex SectionOrigin) onto paper plane -Base::Vector3d DrawViewPart::projectPoint(Base::Vector3d pt) const +Base::Vector3d DrawViewPart::projectPoint(const Base::Vector3d& pt) const { Base::Vector3d centeredPoint = pt - shapeCentroid; Base::Vector3d direction = Direction.getValue(); @@ -562,8 +563,8 @@ Base::Vector3d DrawViewPart::getValidXDir() const return xDir; } -void DrawViewPart::saveParamSpace(Base::Vector3d direction, - Base::Vector3d xAxis) +void DrawViewPart::saveParamSpace(const Base::Vector3d& direction, + const Base::Vector3d& xAxis) { gp_Ax2 viewAxis; viewAxis = gp_Ax2(gp_Pnt(0, 0, 0), @@ -589,54 +590,6 @@ DrawViewSection* DrawViewPart::getSectionRef(void) const return result; } -void DrawViewPart::dumpVertexes(const char* text, const TopoDS_Shape& s) -{ - Base::Console().Message("DUMP - %s\n",text); - TopExp_Explorer expl(s, TopAbs_VERTEX); - int i; - for (i = 1 ; expl.More(); expl.Next(),i++) { - const TopoDS_Vertex& v = TopoDS::Vertex(expl.Current()); - gp_Pnt pnt = BRep_Tool::Pnt(v); - Base::Console().Message("v%d: (%.3f,%.3f,%.3f)\n",i,pnt.X(),pnt.Y(),pnt.Z()); - } -} - -void DrawViewPart::countFaces(const char* text, const TopoDS_Shape& s) -{ - TopExp_Explorer expl(s, TopAbs_FACE); - int i; - for (i = 0 ; expl.More(); expl.Next(),i++) { - } - Base::Console().Message("COUNT - %s has %d Faces\n",text,i); -} - -void DrawViewPart::countWires(const char* text, const TopoDS_Shape& s) -{ - TopExp_Explorer expl(s, TopAbs_WIRE); - int i = 0; - for (; expl.More(); expl.Next()) { - i++; - } - Base::Console().Message("COUNT - %s has %d wires\n",text,i); -} - -void DrawViewPart::countEdges(const char* text, const TopoDS_Shape& s) -{ - TopExp_Explorer expl(s, TopAbs_EDGE); - int i = 0; - for (; expl.More(); expl.Next()) { - i++; - } - Base::Console().Message("COUNT - %s has %d edges\n",text,i); -} - -void DrawViewPart::dump1Vertex(const char* text, const TopoDS_Vertex& v) -{ - Base::Console().Message("DUMP - DVP::dump1Vertex - %s\n",text); - gp_Pnt pnt = BRep_Tool::Pnt(v); - Base::Console().Message("%s: (%.3f,%.3f,%.3f)\n",text,pnt.X(),pnt.Y(),pnt.Z()); -} - PyObject *DrawViewPart::getPyObject(void) { if (PythonObject.is(Py::_None())) { @@ -646,21 +599,6 @@ PyObject *DrawViewPart::getPyObject(void) return Py::new_reference_to(PythonObject); } -void DrawViewPart::dumpEdge(char* label, int i, TopoDS_Edge e) -{ - BRepAdaptor_Curve adapt(e); - double start = BRepLProp_CurveTool::FirstParameter(adapt); - double end = BRepLProp_CurveTool::LastParameter(adapt); - BRepLProp_CLProps propStart(adapt,start,0,Precision::Confusion()); - const gp_Pnt& vStart = propStart.Value(); - BRepLProp_CLProps propEnd(adapt,end,0,Precision::Confusion()); - const gp_Pnt& vEnd = propEnd.Value(); - //Base::Console().Message("%s edge:%d start:(%.3f,%.3f,%.3f)/%0.3f end:(%.2f,%.3f,%.3f)/%.3f\n",label,i, - // vStart.X(),vStart.Y(),vStart.Z(),start,vEnd.X(),vEnd.Y(),vEnd.Z(),end); - Base::Console().Message("%s edge:%d start:(%.3f,%.3f,%.3f) end:(%.2f,%.3f,%.3f)\n",label,i, - vStart.X(),vStart.Y(),vStart.Z(),vEnd.X(),vEnd.Y(),vEnd.Z()); -} - // Python Drawing feature --------------------------------------------------------- diff --git a/src/Mod/TechDraw/App/DrawViewPart.h b/src/Mod/TechDraw/App/DrawViewPart.h index 48b3e647e042..fca6389def0f 100644 --- a/src/Mod/TechDraw/App/DrawViewPart.h +++ b/src/Mod/TechDraw/App/DrawViewPart.h @@ -94,14 +94,18 @@ class TechDrawExport DrawViewPart : public DrawView TechDrawGeometry::BaseGeom* getProjEdgeByIndex(int idx) const; //get existing geom for edge idx in projection TechDrawGeometry::Vertex* getProjVertexByIndex(int idx) const; //get existing geom for vertex idx in projection std::vector getProjFaceByIndex(int idx) const; //get edges for face idx in projection + virtual Base::BoundBox3d getBoundingBox() const; double getBoxX(void) const; double getBoxY(void) const; virtual QRectF getRect() const; virtual DrawViewSection* getSectionRef() const; //is there a ViewSection based on this ViewPart? - Base::Vector3d getUDir(void) {return uDir;} //paperspace X - Base::Vector3d getVDir(void) {return vDir;} //paperspace Y - Base::Vector3d getWDir(void) {return wDir;} //paperspace Z + const Base::Vector3d& getUDir(void) const {return uDir;} //paperspace X + const Base::Vector3d& getVDir(void) const {return vDir;} //paperspace Y + const Base::Vector3d& getWDir(void) const {return wDir;} //paperspace Z + const Base::Vector3d& getCentroid(void) const {return shapeCentroid;} + Base::Vector3d getValidXDir() const; + Base::Vector3d projectPoint(const Base::Vector3d& pt) const; short mustExecute() const; @@ -118,15 +122,6 @@ class TechDrawExport DrawViewPart : public DrawView //return PyObject as DrawViewPartPy virtual PyObject *getPyObject(void); - void dumpVertexes(const char* text, const TopoDS_Shape& s); - void dumpEdge(char* label, int i, TopoDS_Edge e); - void dump1Vertex(const char* label, const TopoDS_Vertex& v); - void countFaces(const char* label, const TopoDS_Shape& s); - void countWires(const char* label, const TopoDS_Shape& s); - void countEdges(const char* label, const TopoDS_Shape& s); - Base::Vector3d getValidXDir() const; - Base::Vector3d projectPoint(Base::Vector3d pt) const; - protected: TechDrawGeometry::GeometryObject *geometryObject; Base::BoundBox3d bbox; @@ -137,11 +132,11 @@ class TechDrawExport DrawViewPart : public DrawView bool isOnEdge(TopoDS_Edge e, TopoDS_Vertex v, bool allowEnds = false); std::vector splitEdge(std::vector splitPoints, TopoDS_Edge e); - double simpleMinDist(TopoDS_Shape s1, TopoDS_Shape s2); + double simpleMinDist(TopoDS_Shape s1, TopoDS_Shape s2) const; //probably sb static or DrawUtil //Projection parameter space - void saveParamSpace(Base::Vector3d direction, - Base::Vector3d xAxis); + void saveParamSpace(const Base::Vector3d& direction, + const Base::Vector3d& xAxis); Base::Vector3d uDir; //paperspace X Base::Vector3d vDir; //paperspace Y Base::Vector3d wDir; //paperspace Z