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:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:18:24-04:00