Ребро грани MbCurveEdge
Класс MbCurveEdge объявлен в файле topology.h.
Ребро MbCurveEdge является наследником ребра MbEdge и представляет собой ребро, построенное на кривой пересечения поверхностей MbSurfaceIntersectionCurve. Ребро MbCurveEdge предназначено для описания участка границы грани. В отличие от ребра MbEdge ребро MbCurveEdge описывает не просто кривую, а участок стыковки двух граней или участок края грани.
Структура данных ребра грани содержит указатель на кривую пересечения поверхностей MbSurfaceIntersectionCurve curve, признак совпадения направления ребра с направлением кривой sameSense, указатель на начальную вершину MbVertex begVertex, указатель на конечную вершину MbVertex endVertex, указатель на грань слева MbFace facePlus и указатель на грань справа MbFace faceMinus от ребра. На рис. 1 приведено ребро, соединяющее две грани.
Рис. 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:
Рис. 2
Ребро грани может описывать участок края грани. Такое ребро является краевым. В этом случае указатель на грань слева или грань справа от ребра равен нулю, рис. 3.
Рис. 3
Ребро, имеющее нулевую длину, является полюсным и описывает полюс грани. Полюсное ребро не является краевым, так как грань в полюсном ребре не имеет края. Как правило, полюсное ребро располагается в особых точках поверхности грани. В области параметров поверхности грани полюсному участку соответствует некоторая кривая. Указатели на начальную и конечную вершину полюсного ребра равны. Полюсное ребро приведено на рис. 4:
Рис. 4
У полюсного ребра указатель на грань слева или грань справа от ребра равен нулю. Кривая пересечения полюсного ребра имеет следующие данные:
curve→curveOne.suface == curve→curveTwo.suface, а отрезок
curve→curveOne.curve является дублем отрезка curve→curveTwo.curve.
Ребро грани может быть именовано и может иметь атрибуты. Имя может использоваться для идентификации ребра, атрибуты могут нести дополнительную информацию о ребре грани, например, цвет, стиль, происхождение и так далее.
Ребро грани используется для твердотельного и гибридного моделирования.