|
FUNCTION get_plane_of_implicit_geometry (ps : positioned_sketch) : plane; LOCAL sb : sketch_basis_select := ps . sketch_basis ; result : plane := ? ; END_LOCAL ; IF ( 'topology_schema.face_surface' IN TYPEOF ( sb ) ) THEN result := sb . face_geometry ; ELSE IF ( 'geometry_schema.curve_bounded_surface' IN TYPEOF ( sb ) ) THEN result := sb . basis_surface ; ELSE IF ( 'sketch_schema.planar_curve_select' IN TYPEOF ( sb ) ) THEN BEGIN IF ( 'geometry_schema.conic' IN TYPEOF ( sb ) ) THEN result := dummy_gri || surface ( ) || elementary_surface ( sb . position ) || plane ( ) ; END_IF ; IF ( 'geometry_schema.trimmed_curve' IN TYPEOF ( sb ) ) THEN BEGIN result := get_plane_of_implicit_geometry ( dummy_gri || positioned_sketch ( sb . basis_curve , [ ] ) ) ; END ; END_IF ; IF ( 'geometry_schema.pcurve' IN TYPEOF ( sb ) ) THEN result := sb . basis_surface ; END_IF ; IF ( 'geometry_schema.surface_curve' IN TYPEOF ( sb ) ) THEN BEGIN IF ( ( SIZEOF ( sb . basis_surface ) = 1 ) AND ( 'geometry_schema.plane' IN TYPEOF ( sb . basis_surface [ 1 ] ) ) ) THEN result := sb . basis_surface [ 1 ] ; ELSE IF ( ( 'geometry_schema.plane' IN TYPEOF ( sb . basis_surface [ 1 ] ) ) AND ( 'geometry_schema.plane' IN TYPEOF ( sb . basis_surface [ 2 ] ) ) ) THEN result := ? ; ELSE IF ( 'geometry_schema.plane' IN TYPEOF ( sb . basis_surface [ 1 ] ) ) THEN result := sb . basis_surface [ 1 ] ; ELSE result := sb . basis_surface [ 2 ] ; END_IF ; END_IF ; END_IF ; END ; END_IF ; END ; END_IF ; END_IF ; END_IF ; RETURN ( result ) ; END_FUNCTION; -- get_plane_of_implicit_geometry |
|
public class FGet_plane_of_implicit_geometry public static Value run(SdaiContext _context, Value ps) |