     #console.log  "New center at #{showNode newCenter}"
     @rebuildAt @appendRewrite @center, appendArray
         
-  draw: (cells, viewMatrix, context) ->
+  draw: (cells, context) ->
     #first borders
     if @drawEmpty
       context.beginPath()
       for cell, i in @cells
         unless cells.get cell
           cellTfm = @cellTransforms[i]
-          mtx = M.mul viewMatrix, cellTfm
+          mtx = M.mul @tfm, cellTfm
           @tessellation.makeCellShapePoincare mtx, context
       context.stroke()
 

appendRewrite = makeAppendRewrite rewriteRuleset

getNeighbors = mooreNeighborhood tessellation.group.n, tessellation.group.m, appendRewrite
xytFromCell = xyt2cell tessellation.group, appendRewrite

viewCenter = null
#visibleCells = visibleNeighborhood tessellation, appendRewrite, minVisibleSize #farNeighborhood viewCenter, 5, appendRewrite, tessellation.group.n, tessellation.group.m

#observer = new FieldObserver tessellation, appendRewrite, minVisibleSize
# 
observer = new FieldObserverWithRemoreRenderer tessellation, appendRewrite, minVisibleSize
observer.onFinish = -> redraw()

#console.log "Visible field contains #{visibleCells.length} cells"

transitionFunc = parseTransitionFunction "B 3 S 2 3", tessellation.group.n, tessellation.group.m
dragHandler = null

    for cell, i in @cells
      if cells.get cell
        cellTfm = @cellTransforms[i]
        mtx = M.mul @tfm, cellTfm
        @tessellation.makeCellShapePoincare  mtx, context        
    context.fill()
    #true because immediate-mode observer always finishes drawing.
    return true
  
  checkViewMatrix: ->
    #me = [-1,0,0,  0,-1,0, 0,0,-1]
