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) |