(* ERROR_METRIC.sml Seth Porter Signature for an abstract error metric which can be updated by a merging operation when two vertices are merged. examples are Garland's quadrics, and Ronfard & Rossignac's sets of planes *) signature ERROR_METRIC = sig structure Geometry : GEOMETRY type metric (* point sequence (of length three) defines a plane, which determines a metric over space *) val init : Geometry.Point.point Sequence.seq -> metric val zero : metric val plus : metric * metric -> metric val evaluate : metric * Geometry.Point.point -> Geometry.Number.t val optimal : metric -> Geometry.Point.point option val toString : metric -> string end