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
|
|||
|
};
|
|||
|
|