|
FUNCTION edge_curve_pcurves (an_edge : edge_curve, the_surface_curves : SET [0:?] OF surface_curve) : SET [0:?] OF pcurve; LOCAL a_curve : curve ; result : SET OF pcurve ; the_geometry : LIST [ 1 : 2 ] OF pcurve_or_surface ; END_LOCAL ; a_curve := an_edge . edge_geometry ; result := [ ] ; IF 'geometry_schema.pcurve' IN TYPEOF ( a_curve ) THEN result := result + a_curve ; ELSE IF 'geometry_schema.surface_curve' IN TYPEOF ( a_curve ) THEN the_geometry := a_curve \ surface_curve . associated_geometry ; REPEAT k := 1 TO SIZEOF ( the_geometry ) ; IF 'geometry_schema.pcurve' IN TYPEOF ( the_geometry [ k ] ) THEN result := result + the_geometry [ k ] ; END_IF ; END_REPEAT ; ELSE REPEAT j := 1 TO SIZEOF ( the_surface_curves ) ; the_geometry := the_surface_curves [ j ] . associated_geometry ; IF the_surface_curves [ j ] . curve_3d :=: a_curve THEN REPEAT k := 1 TO SIZEOF ( the_geometry ) ; IF 'geometry_schema.pcurve' IN TYPEOF ( the_geometry [ k ] ) THEN result := result + the_geometry [ k ] ; END_IF ; END_REPEAT ; END_IF ; END_REPEAT ; END_IF ; END_IF ; RETURN ( result ) ; END_FUNCTION; -- edge_curve_pcurves |
|
public class FEdge_curve_pcurves public static Value run(SdaiContext _context, Value an_edge, Value the_surface_curves) |