 
   defaultSizeLayout = new PointLayout ps: 1
   defaultLocationLayout = new PointLayout 0
+
+
+  namedSizeLayoutsRaw =
+    parentSize:                               ps:1
+    childrenSize:                             cs:1
+    parentHeightSquare:                       hh:1, wh:1
+    childrenSizeMaxParentWidth:               cs:1, max: ww: 1
+    parentHeightChildrenWidth:                hh:1, wcw:1
+    parentWidthChildrenHeight:                ww:1, hch:1
+    parentHeightChildrenWidthMaxParentWidth:  wcw:1, hh:1, max: ww:1
+
+  namedSizeLayouts = object namedSizeLayoutsRaw, (v) -> pointLayout v
+
+  @getSizePointLayout: getSizePointLayout = (v, previousValue) ->
+    if (isString(v) && l = namedSizeLayouts[v])
+      if previousValue
+        pointLayout namedSizeLayoutsRaw[v], previousValue
+      else l
+    else pointLayout v, previousValue || defaultSizeLayout
+
+  namedLocationLayoutsRaw = object namedPoints, (ps) -> {ps}
+  namedLocationLayoutsRaw[0] = 0
+  # NOTE! I am not supporting ".5" and "1" location layout values
+  #   - interpreted as ps: .5 and ps: 1 respectively
+  #   - because for size-layout, values of 1 should be x:1, y:1
+  #   - since we already have "centerCenteR" and "bottomRight" alternatives,
+  #   - I'm arguing for total consistency between size and location layouts
+  namedLocationLayouts = object namedLocationLayoutsRaw, (v) -> pointLayout v
+
+  @getLocationPointLayout: getLocationPointLayout = (v, previousValue) ->
+    if ((isNumber(v) || isString(v)) && l = namedLocationLayouts[v])
+      if previousValue
+        pointLayout namedLocationLayoutsRaw[v], previousValue
+      else l
+    else pointLayout v, previousValue || defaultLocationLayout
+
+    # wcw:1, hh:1, max: ww:1
 
   # TODO: size only is a draw/drawArea property IF drawOrder is set.
   #   NOTES:

{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

  defineModule
  isArray
  formattedInspect
  object
} = require 'art-standard-lib'

stats = clone zeroedStats =
