|
ENTITY advanced_face SUBTYPE OF (face_surface); WHERE wr1: SIZEOF ( [ 'aic_topologically_bounded_surface.elementary_surface' , 'aic_topologically_bounded_surface.b_spline_surface' , 'aic_topologically_bounded_surface.swept_surface' ] * TYPEOF ( face_geometry ) ) = 1 ; wr2: SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'aic_topologically_bounded_surface.edge_loop' IN TYPEOF ( bnds . bound ) ) ) | NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds . bound \ path . edge_list | NOT ( 'aic_topologically_bounded_surface.edge_curve' IN TYPEOF ( oe \ oriented_edge . edge_element ) ) ) ) = 0 ) ) ) = 0 ; wr3: SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'aic_topologically_bounded_surface.edge_loop' IN TYPEOF ( bnds . bound ) ) ) | NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds . bound \ path . edge_list | NOT ( SIZEOF ( [ 'aic_topologically_bounded_surface.line' , 'aic_topologically_bounded_surface.conic' , 'aic_topologically_bounded_surface.polyline' , 'aic_topologically_bounded_surface.surface_curve' , 'aic_topologically_bounded_surface.b_spline_curve' ] * TYPEOF ( oe . edge_element \ edge_curve . edge_geometry ) ) = 1 ) ) ) = 0 ) ) ) = 0 ; wr4: SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'aic_topologically_bounded_surface.edge_loop' IN TYPEOF ( bnds . bound ) ) ) | NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds . bound \ path . edge_list | NOT ( ( ( 'aic_topologically_bounded_surface.vertex_point' IN TYPEOF ( oe \ edge . edge_start ) ) AND ( 'aic_topologically_bounded_surface.cartesian_point' IN TYPEOF ( oe \ edge . edge_start \ vertex_point . vertex_geometry ) ) ) AND ( ( 'aic_topologically_bounded_surface.vertex_point' IN TYPEOF ( oe \ edge . edge_end ) ) AND ( 'aic_topologically_bounded_surface.cartesian_point' IN TYPEOF ( oe \ edge . edge_end \ vertex_point . vertex_geometry ) ) ) ) ) ) = 0 ) ) ) = 0 ; wr5: SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'aic_topologically_bounded_surface.edge_loop' IN TYPEOF ( bnds . bound ) ) ) | ( 'aic_topologically_bounded_surface.oriented_path' IN TYPEOF ( elp_fbnds . bound ) ) ) ) = 0 ; wr6: NOT ( 'aic_topologically_bounded_surface.swept_surface' IN TYPEOF ( face_geometry ) ) OR ( SIZEOF ( [ 'aic_topologically_bounded_surface.line' , 'aic_topologically_bounded_surface.conic' , 'aic_topologically_bounded_surface.polyline' , 'aic_topologically_bounded_surface.b_spline_curve' ] * TYPEOF ( face_geometry \ swept_surface . swept_curve ) ) = 1 ) ; wr7: SIZEOF ( QUERY ( vlp_fbnds <* QUERY ( bnds <* bounds | ( 'aic_topologically_bounded_surface.vertex_loop' IN TYPEOF ( bnds . bound ) ) ) | NOT ( ( 'aic_topologically_bounded_surface.vertex_point' IN TYPEOF ( vlp_fbnds \ face_bound . bound \ vertex_loop . loop_vertex ) ) AND ( 'aic_topologically_bounded_surface.cartesian_point' IN TYPEOF ( vlp_fbnds \ face_bound . bound \ vertex_loop . loop_vertex \ vertex_point . vertex_geometry ) ) ) ) ) = 0 ; wr8: SIZEOF ( QUERY ( bnd <* bounds | NOT ( SIZEOF ( [ 'aic_topologically_bounded_surface.edge_loop' , 'aic_topologically_bounded_surface.vertex_loop' ] * TYPEOF ( bnd . bound ) ) = 1 ) ) ) = 0 ; wr9: SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'aic_topologically_bounded_surface.edge_loop' IN TYPEOF ( bnds . bound ) ) ) | NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds . bound \ path . edge_list | ( 'aic_topologically_bounded_surface.surface_curve' IN TYPEOF ( oe \ oriented_edge . edge_element \ edge_curve . edge_geometry ) ) AND NOT ( SIZEOF ( QUERY ( sc_ag <* oe . edge_element \ edge_curve . edge_geometry \ surface_curve . associated_geometry | NOT ( 'aic_topologically_bounded_surface.pcurve' IN TYPEOF ( sc_ag ) ) ) ) = 0 ) ) ) = 0 ) ) ) = 0 ; wr10: ( NOT ( 'aic_topologically_bounded_surface.swept_surface' IN TYPEOF ( face_geometry ) ) OR ( NOT ( 'aic_topologically_bounded_surface.polyline' IN TYPEOF ( face_geometry \ swept_surface . swept_curve ) ) OR ( SIZEOF ( face_geometry \ swept_surface . swept_curve \ polyline . points ) >= 3 ) ) ) AND ( SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'aic_topologically_bounded_surface.edge_loop' IN TYPEOF ( bnds . bound ) ) ) | NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds . bound \ path . edge_list | ( 'aic_topologically_bounded_surface.polyline' IN TYPEOF ( oe \ oriented_edge . edge_element \ edge_curve . edge_geometry ) ) AND NOT ( SIZEOF ( oe \ oriented_edge . edge_element \ edge_curve . edge_geometry \ polyline . points ) >= 3 ) ) ) = 0 ) ) ) = 0 ) ; END_ENTITY; -- advanced_face |
Entity data types and their attributesrepresentation_itemname: label; topological_representation_item - face bounds: SET [1:?] OF face_bound; geometric_representation_item (DER) dim: dimension_count; face_surface face_geometry: surface; same_sense: BOOLEAN; advanced_face - |
Global rules for this entity data type- |
public interface EAdvanced_face extends EFace_surface |
public class CAdvanced_face implements EAdvanced_face |
public class AAdvanced_face extends AEntitypublic EAdvanced_face getByIndex(int index)public EAdvanced_face getCurrentMember(SdaiIterator it) |