opencascade:计算点在平面的投影
2022-03-01 本文已影响0人
诸事圆成
#include <GeomAPI_ProjectPointOnSurf.hxx>
//计算三维点到三维平面的投影
//成功:返回投影点
//失败: 返回(0, 0, 0)点
static gp_Pnt calculateOrthoProject(const TopoDS_Face& face, const gp_Pnt& p)
{
gp_Pnt resultPt;
// TopoDS_Face face = BRepBuilderAPI_MakeFace(plane);
const Handle(Geom_Surface)& RefSurf = BRep_Tool::Surface(face);
Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Tree;
GeomAPI_ProjectPointOnSurf generator(p, RefSurf, Algo );
if (generator.NbPoints() > 0)
{
resultPt = generator.NearestPoint();
}
return resultPt;
}