在创建尺寸线的过程当中,须要实现鼠标点击选择曲面上任一点的功能,对于这个问题OCC文档中没有找到响应的解决方案,参考网上给的一些思路,最终实现这个功能。web
// 肯定一条垂直于屏幕的线 用到的函数有: void Convert (const Standard_Integer Xp, // 输入鼠标坐标 const Standard_Integer Yp, Standard_Real& X, // 输出X,Y,Z Standard_Real& Y, Standard_Real& Z) const; void Proj (Standard_Real& Vx, Standard_Real& Vy, Standard_Real& Vz) const; // 当前投影方向 // 根据一点及其方向能够肯定该线 // 至于肯定线和曲面的交点 // 能够用OCC的IntCurvesFace_ShapeIntersector类来实现
以OCC给的一个brep的data为例,实现功能以下。
svg