Changeset - 3bb58b74c9c1
[Not reviewed]
default
0 2 0
Drew Perttula - 8 years ago 2017-04-12 06:04:18
drewp@bigasterisk.com
timeline: add cache of floats between graph updates for smoother redraws
Ignore-this: dbdc4782855087f4ec12f1d24d440484
2 files changed with 16 insertions and 3 deletions:
0 comments (0 inline, 0 general)
light9/web/graph.coffee
Show inline comments
 
@@ -136,6 +136,7 @@ class window.SyncedGraph
 
    # if we had a Store already, this lets N3.Store free all its indices/etc
 
    @graph = N3.Store()
 
    @_addPrefixes(@prefixes)
 
    @cachedFloatValues = new Map();
 
    
 
      
 
  _addPrefixes: (prefixes) ->
 
@@ -179,6 +180,7 @@ class window.SyncedGraph
 
    # In most cases you want applyAndSendPatch.
 
    # 
 
    # This is the only method that writes to @graph!
 
    @cachedFloatValues.clear()
 
    for quad in patch.delQuads
 
      @graph.removeTriple(quad)
 
    for quad in patch.addQuads
 
@@ -233,7 +235,13 @@ class window.SyncedGraph
 
        throw new Error("too many values: " + JSON.stringify(quads))
 

	
 
  floatValue: (s, p) ->
 
    parseFloat(N3.Util.getLiteralValue(@_singleValue(s, p)))
 
    key = s + '|' + p
 
    hit = @cachedFloatValues.get(key)
 
    return hit if hit != undefined
 

	
 
    ret = parseFloat(N3.Util.getLiteralValue(@_singleValue(s, p)))
 
    @cachedFloatValues.set(key, ret)
 
    return ret
 
    
 
  stringValue: (s, p) ->
 
    N3.Util.getLiteralValue(@_singleValue(s, p))
light9/web/timeline/timeline.coffee
Show inline comments
 
@@ -433,7 +433,12 @@ Polymer
 
      @graph.subjects(@uri, @uri, @uri)
 
      return
 
    if @isDetached?
 
      return 
 
      return
 
 
 
    @updateDisplay()
 

	
 
  updateDisplay: ->
 
      
 
    # update our note DOM and SVG elements based on the graph
 
    U = (x) -> @graph.Uri(x)
 

	
 
@@ -559,6 +564,7 @@ Polymer
 
    
 
  addHandler: ->
 
    @graph.runHandler(@update.bind(@))
 
    
 
  update: ->
 
    U = (x) -> @graph.Uri(x)
 
    @effect = @graph.uriValue(@uri, U(':effectClass'))
 
@@ -735,7 +741,6 @@ Polymer
 
      _line(@ctx, @cursorPath.bot0, @cursorPath.bot1, '#ff0303', '3px')
 
      @ctx.stroke()
 
    
 
    
 
Polymer
 
  is: 'light9-adjusters-canvas'
 
  behaviors: [ Polymer.IronResizableBehavior ]
0 comments (0 inline, 0 general)