+ //================================================================================
+ /*!
+ * \brief Checks if the common vertex between LinEdge's lies inside the circle
+ * and not outside
+ * \param [in] CircEdge -
+ * \param [in] LinEdge1 -
+ * \param [in] LinEdge2 -
+ * \return bool - false if there are 3 EDGEs and the corner is outside
+ */
+ //================================================================================
+
+ bool isCornerInsideCircle(const TopoDS_Edge& CircEdge,
+ const TopoDS_Edge& LinEdge1,
+ const TopoDS_Edge& LinEdge2)
+ {
+ if ( !CircEdge.IsNull() &&
+ !LinEdge1.IsNull() &&
+ !LinEdge2.IsNull() )
+ {
+ Handle(Geom_Circle) aCirc = Handle(Geom_Circle)::DownCast( getCurve( CircEdge ));
+ TopoDS_Vertex aCommonV;
+ if ( !aCirc.IsNull() &&
+ TopExp::CommonVertex( LinEdge1, LinEdge2, aCommonV ))
+ {
+ gp_Pnt aCommonP = BRep_Tool::Pnt( aCommonV );
+ gp_Pnt aCenter = aCirc->Location();
+ double dist = aCenter.Distance( aCommonP );
+ return dist < 0.1 * aCirc->Radius();
+ }
+ }
+ return true;
+ }