|
FUNCTION get_basis_surface (c : curve_on_surface) : SET [0:2] OF surface; LOCAL surfs : SET [ 0 : 2 ] OF surface ; n : INTEGER ; END_LOCAL ; surfs := [ ] ; IF 'geometry_schema.pcurve' IN TYPEOF ( c ) THEN surfs := [ c \ pcurve . basis_surface ] ; ELSE IF 'geometry_schema.surface_curve' IN TYPEOF ( c ) THEN n := SIZEOF ( c \ surface_curve . associated_geometry ) ; REPEAT i := 1 TO n ; surfs := surfs + associated_surface ( c \ surface_curve . associated_geometry [ i ] ) ; END_REPEAT ; END_IF ; END_IF ; IF 'geometry_schema.composite_curve_on_surface' IN TYPEOF ( c ) THEN n := SIZEOF ( c \ composite_curve . segments ) ; surfs := get_basis_surface ( c \ composite_curve . segments [ 1 ] . parent_curve ) ; IF n > 1 THEN REPEAT i := 2 TO n ; surfs := surfs * get_basis_surface ( c \ composite_curve . segments [ i ] . parent_curve ) ; END_REPEAT ; END_IF ; END_IF ; RETURN ( surfs ) ; END_FUNCTION; -- get_basis_surface |
|
public class FGet_basis_surface public static Value run(SdaiContext _context, Value c) |