# walkmap/polygon.clj

001 (ns walkmap.polygon
002 "Essentially the specification for things we shall consider to be polygons."
003 (:require [walkmap.vertex :refer [vertex?]]))
004
005 (defn polygon?
006 "True if `o` satisfies the conditions for a polygon. A polygon shall be a
007 map which has a value for the key `:vertices`, where that value is a sequence
008 of vertices."
009 [o]
010 (let
011 [v (:vertices o)]
012 (and
013 (coll? v)
014 (> (count v) 2)
015 (every? vertex? v)
016 (:id o)
017 (or (nil? (:kind o)) (= (:kind o) :polygon)))))
018
019