Fix handling of BezierCurves

Replace custom bbox code with OCC/Base code
Refactor duplicate code Geometry/DrawProjectSplit
This commit is contained in:
WandererFan
2016-11-18 09:52:55 -05:00
committed by wmayer
parent 2dfd521c87
commit dd13cb2534
9 changed files with 152 additions and 370 deletions

View File

@@ -46,8 +46,7 @@ class BaseGeom;
namespace TechDraw
{
struct splitPoint
{
struct splitPoint {
int i;
Base::Vector3d v;
double param;
@@ -69,8 +68,6 @@ public:
static bool edgeEqual(const edgeSortItem& e1, const edgeSortItem& e2);
std::string dump(void);
};
class TechDrawExport DrawProjectSplit
{
public:
@@ -84,16 +81,13 @@ public:
static bool isOnEdge(TopoDS_Edge e, TopoDS_Vertex v, double& param, bool allowEnds = false);
static std::vector<TopoDS_Edge> splitEdges(std::vector<TopoDS_Edge> orig, std::vector<splitPoint> splits);
static std::vector<TopoDS_Edge> split1Edge(TopoDS_Edge e, std::vector<splitPoint> splitPoints);
static double simpleMinDist(TopoDS_Shape s1, TopoDS_Shape s2);
static std::vector<splitPoint> sortSplits(std::vector<splitPoint>& s, bool ascend);
static bool splitCompare(const splitPoint& p1, const splitPoint& p2);
static bool splitEqual(const splitPoint& p1, const splitPoint& p2);
static std::vector<TopoDS_Edge> removeDuplicateEdges(std::vector<TopoDS_Edge>& inEdges);
static std::vector<edgeSortItem> sortEdges(std::vector<edgeSortItem>& e, bool ascend);
protected:
static std::vector<TopoDS_Edge> getEdges(TechDrawGeometry::GeometryObject* geometryObject);