/[geocaml]/geocaml/src/geom.ml
ViewVC logotype

Diff of /geocaml/src/geom.ml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by gmariano, Wed Feb 12 10:45:27 2003 UTC revision 1.3 by adoniec, Mon Mar 31 07:37:49 2003 UTC
# Line 64  let get_circle name fig = Line 64  let get_circle name fig =
64    
65  let add_point p name fig = fig.point_list := (name,p)::!(fig.point_list)  let add_point p name fig = fig.point_list := (name,p)::!(fig.point_list)
66    
67    let rec point_depend_of abr name =
68      match abr with
69          Point s -> s = name
70        | Inter_line_line (s,(l1,l2)) -> (s = name) || (line_depend_of l1 name) || (line_depend_of l2 name)
71        | Point_on_line (s,l) -> (s = name) || (line_depend_of l name)
72        | Point_on_circle (s,c) -> (s = name) || (circle_depend_of c name)
73        | Middle (s,(p1,p2)) -> (s = name) || (point_depend_of p1 name) || (point_depend_of p2 name)
74        | Inter_circle_line (s1,s2,(c,l)) -> (s1 = name) || (s2 = name) || (circle_depend_of c name) || (line_depend_of l name)
75        | Inter_circle_circle (s1,s2,(c1,c2)) -> (s1 = name) || (s2 = name) || (circle_depend_of c1 name) || (circle_depend_of c2 name)
76        | Construct_point p -> point_depend_of p name
77    
78    and line_depend_of abr name =
79      match abr with
80          Line (s,(p1,p2)) -> (s = name) || (point_depend_of p1 name) || (point_depend_of p2 name)
81        | Ruler l -> (line_depend_of l name)
82        | Segment (s,(p1,p2)) -> (s = name) || (point_depend_of p1 name) || (point_depend_of p2 name)
83        | Perpendicular (s,(l,p)) -> (s = name) || (line_depend_of l name) || (point_depend_of p name)
84        | Perpendicular_segment (s,(l,p1,(p2,p3))) -> (s = name) || (line_depend_of l name) || (point_depend_of p1 name) || (point_depend_of p2 name) || (point_depend_of p3 name)
85        | Perpendicular_bissector (s,l) -> (s = name) || (line_depend_of l name)
86        | Parallel (s,(l,p)) -> (s = name) || (line_depend_of l name) || (point_depend_of p name)
87        | Parallel_segment (s,(l,p1,(p2,p3))) -> (s = name) || (line_depend_of l name) || (point_depend_of p1 name) || (point_depend_of p2 name) || (point_depend_of p3 name)
88        | Bissecting (s,(p1,p2,p3)) -> (s = name) || (point_depend_of p1 name) || (point_depend_of p2 name) || (point_depend_of p3 name)
89    
90    and circle_depend_of abr name =
91      match abr with
92        | Circle (s,(p1,p2)) -> (s = name) || (point_depend_of p1 name) || (point_depend_of p2 name)
93        | Compass c -> circle_depend_of c name
94    
95    let suppr_obj name fig =
96      begin
97        fig.point_list := List.filter (fun (_,a) -> not(point_depend_of a name)) !(fig.point_list);
98        fig.line_list := List.filter (fun (_,a) -> not(line_depend_of a name)) !(fig.line_list);
99        fig.circle_list := List.filter (fun (_,a) -> not(circle_depend_of a name)) !(fig.circle_list)
100      end
101        
102  let add_line l name fig = fig.line_list := (name,l)::!(fig.line_list)  let add_line l name fig = fig.line_list := (name,l)::!(fig.line_list)
103    
104  let add_circle c name fig = fig.circle_list := (name,c)::!(fig.circle_list)  let add_circle c name fig = fig.circle_list := (name,c)::!(fig.circle_list)
# Line 341  let write_figure2 abstract_figure channe Line 376  let write_figure2 abstract_figure channe
376    List.iter (fun (_,l) -> (write_line2 l "black" 0) channel;()) (List.rev !(abstract_figure.line_list));    List.iter (fun (_,l) -> (write_line2 l "black" 0) channel;()) (List.rev !(abstract_figure.line_list));
377    List.iter (fun (_,c) -> (write_circle2 c "black" 0) channel;()) (List.rev !(abstract_figure.circle_list))    List.iter (fun (_,c) -> (write_circle2 c "black" 0) channel;()) (List.rev !(abstract_figure.circle_list))
378  ;;  ;;
379    
380    
381    
382    
383    
384    
385    
386    
387    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26