Catmull–Clark subdivision surface: Difference between revisions

Content added Content deleted
Line 429: Line 429:
| a :: b :: c -> f a b; next (b::c) in
| a :: b :: c -> f a b; next (b::c) in
next pl;;
next pl;;

module EdgeSet = Set.Make(struct type t = edge let compare = ecmp end)


let catmull_clark faces =
let catmull_clark faces =
let module EdgeSet = Set.Make(struct type t = edge let compare = ecmp end) in
let eset = ref EdgeSet.empty in
let eset = ref EdgeSet.empty in
let add_edge a b = eset := EdgeSet.add (make_edge a b) !eset in
let add_edge a b = eset := EdgeSet.add (make_edge a b) !eset in