60 lines
2.1 KiB
C++
60 lines
2.1 KiB
C++
#pragma once
|
||
#include "BaseAlgo.h"
|
||
|
||
|
||
class GridFaces : BaseAlgo
|
||
{
|
||
public:
|
||
GridFaces(void);
|
||
GridFaces(map<int, vector<TopoDS_Edge>> wires);
|
||
GridFaces(vector<TopoDS_Edge> wires);
|
||
GridFaces(vector<TopoDS_Edge> wires,vector<std::string> seqNo); //20180101 modified by czb, 增加序号作为参数
|
||
|
||
// ADDED BY XUEFENG 20180731
|
||
// FOR CODES COMBINE
|
||
// XUEFENG ADDED 201805
|
||
GridFaces(vector<TopoDS_Edge> wires,vector<std::string> seqNo,vector<int> expSeqNo);
|
||
// END ADDED
|
||
// END ADDED
|
||
|
||
~GridFaces(void);
|
||
public:
|
||
//将网格生成面
|
||
void Build();
|
||
//返回网格面
|
||
TopoDS_Shape GetResult();
|
||
//边围面
|
||
//TopoDS_Face MakeFace(vector<TopoDS_Edge> edgeSet); // DELETE BY XUEFENG 201803
|
||
TopoDS_Shape MakeFace(vector<TopoDS_Edge> edgeSet); // ADDED BY XUEFENG 201803
|
||
//边围面
|
||
//边围面
|
||
//TopoDS_Face MakeFace(vector<Handle(Geom_BSplineCurve)> vctBSplineCurves); // DELETE BY XUEFENG 201803
|
||
TopoDS_Shape MakeFace(vector<Handle(Geom_BSplineCurve)> vctBSplineCurves); // ADDED BY XUEFENG 201803
|
||
//返回wireSet
|
||
map<int, vector<TopoDS_Edge>> GetWires();
|
||
public:
|
||
//网格结果,每个格子边数不超过4
|
||
map<int, vector<TopoDS_Edge>> wireSet;
|
||
//网格结果,没有边数限制
|
||
map<int, vector<TopoDS_Edge>> 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<gp_Pnt> 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
|
||
};
|
||
|