ГОСТ Р ИСО 10303-521—2008
Формальные утверждения
WR1 — атрибут items объекта manirold_subsurfaco_shape_reprosentation должен содержать
объекты connected_face_sub_set. mappodjtem или axis2_placoment_3d.
WR2 — по крайней мере один из элементов атрибута items должен быть объектом
connected_face_sub_set или mappodjtem.
WR3 — для любого объекта mappodjtem. объект mapped_representation, относящийся к его
объекту mapping_source, должен быть объектом subsurface_shape_roprosentation.
WR4 — любой экземпляр объекта connectedJace_sub_set в атрибуте items должен иметь тип
connectedJace_sub_set AND open_shell.
WR5 — длялюбогоэкземпляраобъектаconnectedJace_sub_setобъектыfaceиз
parentjace_set должны иметь тип advancedJace. либо объект parentjace_set должен быть экзем
пляром объекта connectedJace_sub_sot, грани которого относятся к типу advancedJace.
П р и м е ч а н и е — Объект parentjace_set может быть одним из подтипов open_shell или closed_shell
объекта connectedJace_sub_set.
WR6 — для любого экземпляра объекта connectedJace_sub_set каждый объект face атрибута
cfsjaces должен иметь тип advancedjace или subface и прямо или косвенно ссылаться на
advancedjace.
П р и м е ч а н и е — Это свойство проверяется функцией advanced Jace_propertlee.
WR7 — для любого экземпляра объекта subfaco в атрибуте cfsjaces экземпляра объекта
connectedJace_sub_set ограничивающие его объекты edge должны иметь тип subedgo или
edge_curve.
WR8 — для любого экземпляра объекта subfaco в атрибуте cfsjaces экземпляра объекта
connectedJace_sub_set все вершины, используемые в определении объекта face, должны иметь тип
vertox_point.
WR9 — границы любого объекта subface в атрибуте cfsjaces экземпляра объекта
connectedJace_sub_set должны иметь тип edgejoop или vertexjoop.
WR10 — типами объекта curve, используемогодля определения геометрии объекта edge_curve.
в свою очередь используемого в определении объекта subface, могут быть только line, conic, polyline,
surface_curve или b_spline_curvo.
WR11 — если объект surface_curve используется как часть ограничения грани объекта subface,
то атрибут associated_geometry должен ссылаться на объект pcurve.
WR12 — если объект polyline используется как часть ограничения грани объекта subface, то он
должен содержать не менее трех точек.
П р и м е ч а н и е — Правипас WR8 no WR13 обеспечивают то. что определение границ объекта subface не
противоречиво с определением границ объекта advancedjace.
4.3 Определение функции advancedJace_properties схемы aic_manirold_subsurface
Функция advancedJaco_propertios проверяет свойства объекта face, чтобы определить, имеет
ли он тип advancedjace или является объектом subface, прямо или косвенно ссылающимся наобъект
advancedjace как объект parentJace. Эта проверка осуществляется рекурсивно и возвращает
результат TRUE, если грань является объектом advancedjace либо ссылается на объект
advancedjace через атрибут parentjaco объекта subface. Во всех других случаях возвращается
результат FALSE.
EXPRESS-спецнфикация
*)
FUNCTION advancedJace_properties (testface . face): BOOLEAN:
(* возвращает результат TRUE, если testface имеет тип advancedjace *)
IF •AIC_MANIFOLD_SUBSURFACE.ADVANCED_FACE’ IN TYPEOF(testface) THEN
RETURN (TRUE);
ENDJF;
(* если testface является объектом subface, то рекурсивно проверяется рагепМасе.возвращается
результат FALSE для всех других типов face*)
IF (’AIC_MANIFOLD_SUBSURFACE.SUBFACE’ IN TYPEOF(testface)) THEN
RETURN(advancedJace_properties(testface.parentJace));
ELSE RETURN (FALSE);
END IF:
END_FUNCTlON:
c
8