FUNCTION valid_advanced_csg_tree

(* SCHEMA plant_spatial_configuration; *)
   FUNCTION valid_advanced_csg_tree
      (tree_element : boolean_operand ) : BOOLEAN;
      IF SIZEOF(TYPEOF(tree_element) * [ 
'PLANT_SPATIAL_CONFIGURATION.BLOCK', 
'PLANT_SPATIAL_CONFIGURATION.TORUS', 
'PLANT_SPATIAL_CONFIGURATION.RIGHT_CIRCULAR_CYLINDER', 
'PLANT_SPATIAL_CONFIGURATION.SPHERE', 
'PLANT_SPATIAL_CONFIGURATION.RIGHT_CIRCULAR_CONE', 
'PLANT_SPATIAL_CONFIGURATION.ECCENTRIC_CONE', 
'PLANT_SPATIAL_CONFIGURATION.PLANT_DESIGN_CSG_PRIMITIVE', 
'PLANT_SPATIAL_CONFIGURATION.CYCLIDE_SEGMENT_SOLID', 
'PLANT_SPATIAL_CONFIGURATION.RECTANGULAR_PYRAMID', 
'PLANT_SPATIAL_CONFIGURATION.EXTRUDED_AREA_SOLID', 
'PLANT_SPATIAL_CONFIGURATION.REVOLVED_AREA_SOLID', 
'PLANT_SPATIAL_CONFIGURATION.HALF_SPACE_SOLID' ]) = 1 THEN
         RETURN (TRUE);
      ELSE
         IF 'PLANT_SPATIAL_CONFIGURATION.BOOLEAN_RESULT' IN 
TYPEOF(tree_element) THEN
            IF NOT (tree_element\boolean_result.operator IN [ 
boolean_operator.union, boolean_operator.difference ]) THEN
               RETURN (FALSE);
            END_IF;
            IF 'PLANT_SPATIAL_CONFIGURATION.HALF_SPACE_SOLID' IN 
TYPEOF(tree_element\boolean_result.first_operand) THEN
               IF 'PLANT_SPATIAL_CONFIGURATION.ELEMENTARY_SURFACE' IN 
TYPEOF(tree_element\boolean_result.first_operand\half_space_solid.
base_surface) THEN
                  IF 'PLANT_SPATIAL_CONFIGURATION.HALF_SPACE_SOLID' IN 
TYPEOF(tree_element\boolean_result.second_operand) THEN
                     IF 
'PLANT_SPATIAL_CONFIGURATION.ELEMENTARY_SURFACE' IN 
TYPEOF(tree_element\boolean_result.second_operand\half_space_solid.
base_surface) THEN
                        RETURN (TRUE);
                     ELSE
                        RETURN (FALSE);
                     END_IF;
                  ELSE
                     RETURN 
(valid_advanced_csg_tree(tree_element\boolean_result.second_operand));
                  END_IF;
               ELSE
                  RETURN (FALSE);
               END_IF;
            ELSE
               IF 'PLANT_SPATIAL_CONFIGURATION.HALF_SPACE_SOLID' IN 
TYPEOF(tree_element\boolean_result.second_operand) THEN
                  IF 'PLANT_SPATIAL_CONFIGURATION.ELEMENTARY_SURFACE' 
IN 
TYPEOF(tree_element\boolean_result.second_operand\half_space_solid.
base_surface) THEN
                     RETURN 
(valid_advanced_csg_tree(tree_element\boolean_result.first_operand));
                  ELSE
                     RETURN (FALSE);
                  END_IF;
               ELSE
                  RETURN 
(valid_advanced_csg_tree(tree_element\boolean_result.first_operand) AND 
valid_advanced_csg_tree(tree_element\boolean_result.second_operand));
               END_IF;
            END_IF;
         END_IF;
      END_IF;
      RETURN (FALSE);
   END_FUNCTION;

Referenced By

Defintion valid_advanced_csg_tree is references by the following definitions:
DefinitionType
 plant_csg_shape_representation ENTITY


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:18:24-04:00