|
RULE cartesian_coordinate_system_constraint FOR (global_unit_assigned_context, geometric_representation_context); LOCAL guac_inst : SET OF global_unit_assigned_context := QUERY ( guac <* global_unit_assigned_context | ( 'geometry_schema.' + 'geometric_representation_context' IN TYPEOF ( guac ) ) ) ; END_LOCAL ; WHERE wr1: SIZEOF ( QUERY ( guac <* guac_inst | NOT ( SIZEOF ( guac . units ) <= 3 ) ) ) = 0 ; wr2: SIZEOF ( QUERY ( guac <* guac_inst | ( NOT ( ( SIZEOF ( QUERY ( u <* guac . units | ( 'measure_schema.length_unit' IN TYPEOF ( u ) ) ) ) = 1 ) AND ( SIZEOF ( QUERY ( u <* guac . units | ( 'measure_schema.' + 'plane_angle_unit' IN TYPEOF ( u ) ) ) ) = 1 ) AND ( SIZEOF ( QUERY ( u <* guac . units | ( 'measure_schema.' + 'solid_angle_unit' IN TYPEOF ( u ) ) ) ) <= 1 ) ) ) ) ) = 0 ; wr3: SIZEOF ( QUERY ( grc <* guac_inst | NOT ( ( grc . coordinate_space_dimension = 2 ) OR ( grc . coordinate_space_dimension = 3 ) ) ) ) = 0 ; wr4: SIZEOF ( QUERY ( guac <* guac_inst | NOT ( SIZEOF ( QUERY ( u <* guac . units | NOT ( NOT ( ( 'measure_schema.' + 'plane_angle_unit' IN TYPEOF ( u ) ) AND ( 'measure_schema.' + 'conversion_based_unit' IN TYPEOF ( u ) ) AND ( u \ conversion_based_unit . name = 'degree' ) ) OR ( ( ABS ( u \ conversion_based_unit . conversion_factor \ measure_with_unit . value_component - 0.0174532925 ) <= 0.001 ) AND ( 'measure_schema.' + 'plane_angle_measure_with_unit' IN TYPEOF ( u \ conversion_based_unit . conversion_factor ) ) ) ) ) ) = 0 ) ) ) = 0 ; END_RULE; -- cartesian_coordinate_system_constraint |
|
public class RCartesian_coordinate_system_constraint public int rWr4(SdaiContext _context) public int rWr3(SdaiContext _context) public int rWr2(SdaiContext _context) public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |