COMPASSi/trunk/code/inc/OCC/OCCLib/GridFaces.h

60 lines
2.1 KiB
C
Raw Permalink Normal View History

2025-06-25 15:06:42 +08:00
#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
};