 
     location:
       default: 0
-      preprocess: (v, oldV) -> pointLayout v, oldV || defaultLocationLayout
+      validate: (v) ->
+        if isString v
+          !!namedLocationLayouts[v]
+        else
+          true
+
+      preprocess: getLocationPointLayout
       postSetter: -> @_locationLayoutDisabled = false
 
     scale:

{isInfiniteResult} = require './EpochLayout/Infinity'

{rgbColor, point, Point, rect, Rectangle, Matrix, matrix, identityMatrix, point0, point1, perimeter0, isPoint, perimeter} = Atomic
{floor, ceil} = Math
{globalEpochCycle} = GlobalEpochCycle
{drawCacheManager} = DrawCacheManager
{PointLayout} = Layout
{pointLayout} = PointLayout


{
  each

  #   ACTION: add a postSetter which checks if @_drawOrder is set, and if so, THEN marks draw/drawArea changed
  @drawLayoutProperty
    size:
      default: "parentSize"
      validate: (v) ->
        if isString v
          !!namedSizeLayouts[v]
        else
          true

      preprocess: getSizePointLayout

  @layoutProperty
    ###
