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

60 lines
2.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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