Ребро грани MbCurveEdge

Класс MbCurveEdge объявлен в файле topology.h.

Ребро MbCurveEdge является наследником ребра MbEdge и представляет собой ребро, построенное на кривой пересечения поверхностей MbSurfaceIntersectionCurve. Ребро MbCurveEdge предназначено для описания участка границы грани. В отличие от ребра MbEdge ребро MbCurveEdge описывает не просто кривую, а участок стыковки двух граней или участок края грани.

Структура данных ребра грани содержит указатель на кривую пересечения поверхностей MbSurfaceIntersectionCurve curve, признак совпадения направления ребра с направлением кривой sameSense, указатель на начальную вершину MbVertex begVertex, указатель на конечную вершину MbVertex endVertex, указатель на грань слева MbFace facePlus и указатель на грань справа MbFace faceMinus от ребра. На рис. 1 приведено ребро, соединяющее две грани.

../../../../_images/O.7.5.1.png

Рис. 1

Ребро грани может описывать участок стыковки двух различных граней. В этом случае указатели на грань слева и грань справа от ребра не равны нулю и не равны друг другу. Поверхности, лежащие в структурах данных соединяемых ребром граней, совпадают с поверхностями, лежащими в структуре данных кривой ребра, а именно:

facePlus→surface→GetSurface() == curve→curveOne.suface и

faceMinus→surface→GetSurface() == curve→curveTwo.suface

или

facePlus→surface→GetSurface() == curve→curveTwo.suface и

faceMinus→surface→GetSurface() == curve→curveOne.suface.

У циклически замкнутой по одному или обоим параметрам поверхности грани присутствуют участки границы, по которым грань стыкуется сама с собой. Такое ребро является швом. В этом случае указатели на грань слева и грань справа от ребра равны друг другу, рис. 2:

../../../../_images/O.7.5.2.png

Рис. 2

Ребро грани может описывать участок края грани. Такое ребро является краевым. В этом случае указатель на грань слева или грань справа от ребра равен нулю, рис. 3.

../../../../_images/O.7.5.3.png

Рис. 3

Ребро, имеющее нулевую длину, является полюсным и описывает полюс грани. Полюсное ребро не является краевым, так как грань в полюсном ребре не имеет края. Как правило, полюсное ребро располагается в особых точках поверхности грани. В области параметров поверхности грани полюсному участку соответствует некоторая кривая. Указатели на начальную и конечную вершину полюсного ребра равны. Полюсное ребро приведено на рис. 4:

../../../../_images/O.7.5.4.png

Рис. 4

У полюсного ребра указатель на грань слева или грань справа от ребра равен нулю. Кривая пересечения полюсного ребра имеет следующие данные:

curve→curveOne.suface == curve→curveTwo.suface, а отрезок

curve→curveOne.curve является дублем отрезка curve→curveTwo.curve.

Ребро грани может быть именовано и может иметь атрибуты. Имя может использоваться для идентификации ребра, атрибуты могут нести дополнительную информацию о ребре грани, например, цвет, стиль, происхождение и так далее.

Ребро грани используется для твердотельного и гибридного моделирования.