#pragma once #include "BaseAlgo.h" class GridFaces : BaseAlgo { public: GridFaces(void); GridFaces(map> wires); GridFaces(vector wires); GridFaces(vector wires,vector seqNo); //20180101 modified by czb, 增加序号作为参数 // ADDED BY XUEFENG 20180731 // FOR CODES COMBINE // XUEFENG ADDED 201805 GridFaces(vector wires,vector seqNo,vector expSeqNo); // END ADDED // END ADDED ~GridFaces(void); public: //将网格生成面 void Build(); //返回网格面 TopoDS_Shape GetResult(); //边围面 //TopoDS_Face MakeFace(vector edgeSet); // DELETE BY XUEFENG 201803 TopoDS_Shape MakeFace(vector edgeSet); // ADDED BY XUEFENG 201803 //边围面 //边围面 //TopoDS_Face MakeFace(vector vctBSplineCurves); // DELETE BY XUEFENG 201803 TopoDS_Shape MakeFace(vector vctBSplineCurves); // ADDED BY XUEFENG 201803 //返回wireSet map> GetWires(); public: //网格结果,每个格子边数不超过4 map> wireSet; //网格结果,没有边数限制 map> wireOldSet; //网格面结果 TopoDS_Shape result; //是否完成 bool isDone; // XUEFENG ADDED FOR 5 CURVES FACE 201810 public: Handle(Geom_BSplineCurve) getBSplineCurveMultiPoints(gp_Pnt points[], int len); void formFiveCurvesSeq(Handle(Geom_BSplineCurve) SPLs[], gp_Pnt startPoints[]); int chooseSmoothPoint(gp_Pnt startPoints[], Handle(Geom_BSplineCurve) SPLs[], int divNum); double getAngleSum(gp_Pnt startPoints[], Handle(Geom_BSplineCurve) SPLs[], int divNum); Handle(Geom_Surface) getBSplineSurface(Handle(Geom_BSplineCurve) SPL[]); Handle(Geom_BSplineCurve) getBSplineCurveFromVectorPnt(std::vector points, int len); //Handle(Geom_Surface) getSurfaceFromFiveCurves(Handle(Geom_BSplineCurve) SPLs[], int divNum, BRep_Builder myBuilder); //TopoDS_Face getSurfaceFromFiveCurves( Handle(Geom_BSplineCurve) SPLs[], int divNum ); TopoDS_Shape getSurfaceFromFiveCurves( Handle(Geom_BSplineCurve) SPLs[], int divNum ); // END ADDED };