Schema: aic_csg

Source : ISO 10303-515



SCHEMA aic_csg;

USE FROM aic_advanced_brep;    -- ISO 10303-514

USE FROM aic_faceted_brep;    -- ISO 10303-512

USE FROM geometric_model_schema   -- ISO 10303-42
  (block,
   boolean_operand,
   boolean_operator,
   boolean_result,
   box_domain,
   boxed_half_space,
   convex_hexahedron,
   csg_primitive,
   csg_select,
   csg_solid,
   cyclide_segment_solid,
   eccentric_cone,
   ellipsoid,
   extruded_face_solid,
   faceted_primitive,
   half_space_solid,
   rectangular_pyramid,
   revolved_face_solid,
   right_angular_wedge,
   right_circular_cone,
   right_circular_cylinder,
   solid_replica,
   sphere,
   tetrahedron,
   torus);


ENTITY csg_shape_representation
  SUBTYPE OF (shape_representation);
WHERE
  WR1: SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3;
  WR2: SIZEOF(QUERY(it <* SELF.items | (SIZEOF(['AIC_CSG.CSG_SOLID', 'AIC_CSG.MAPPED_ITEM', 'AIC_CSG.AXIS2_PLACEMENT_3D', 'AIC_CSG.SOLID_REPLICA', 'AIC_CSG.REVOLVED_FACE_SOLID', 'AIC_CSG.EXTRUDED_FACE_SOLID'] * TYPEOF(it)) <> 1))) = 0;
  WR3: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AIC_CSG.MAPPED_ITEM' IN TYPEOF(it))) | NOT ('AIC_CSG.CSG_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0;
  WR4: SIZEOF(QUERY(sr <* QUERY(it <* SELF.items | ('AIC_CSG.SOLID_REPLICA' IN TYPEOF(it))) | (SIZEOF(['AIC_CSG.CSG_SOLID', 'AIC_CSG.REVOLVED_FACE_SOLID', 'AIC_CSG.EXTRUDED_FACE_SOLID'] * TYPEOF(sr\solid_replica.parent_solid)) = 0))) = 0;
  WR5: SIZEOF(QUERY(it <* SELF.items | NOT ('AIC_CSG.AXIS2_PLACEMENT_3D' IN TYPEOF(it)))) > 0;
END_ENTITY;

END_SCHEMA;  -- aic_csg