Skip to content

Commit

Permalink
Add initial scaledScreenFrame etc.
Browse files Browse the repository at this point in the history
  • Loading branch information
koenbok committed Oct 8, 2014
1 parent 5afa23f commit 0f0a7fe
Showing 1 changed file with 47 additions and 14 deletions.
61 changes: 47 additions & 14 deletions framer/Layer.coffee
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -271,20 +271,6 @@ class exports.Layer extends BaseClass
else else
@frame = Utils.convertPoint(frame, null, @superLayer) @frame = Utils.convertPoint(frame, null, @superLayer)


screenScaleX: ->
if @superLayer
return @superLayer.screenScaleX()
else if @_context._parentLayer
return @_context._parentLayer.screenScaleX()
return @scale * @scaleX

screenScaleY: ->
if @superLayer
return @superLayer.screenScaleY()
else if @_context._parentLayer
return @_context._parentLayer.screenScaleY()
return @scale * @scaleY

contentFrame: -> contentFrame: ->
Utils.frameMerge(_.pluck(@subLayers, "frame")) Utils.frameMerge(_.pluck(@subLayers, "frame"))


Expand Down Expand Up @@ -323,6 +309,53 @@ class exports.Layer extends BaseClass
@y = parseInt @y @y = parseInt @y




##############################################################
# SCREEN GEOMETRY

# TODO: Account for rotation
# TODO: I don't think this is correct yet because you have to account
# for scale+origin and rotation+origin each step in the layer hierarchy.

_superOrParentLayer: ->
if @superLayer
return @superLayer
if @_context._parentLayer
return @_context._parentLayer

screenOriginX = ->
if @_superOrParentLayer()
return @_superOrParentLayer().screenOriginX()
return @originX

screenOriginY = ->
if @_superOrParentLayer()
return @_superOrParentLayer().screenOriginY()
return @originY

screenScaleX: ->
if @_superOrParentLayer()
return @_superOrParentLayer().screenScaleX()
return @scale * @scaleX

screenScaleY: ->
if @_superOrParentLayer()
return @_superOrParentLayer().screenScaleY()
return @scale * @scaleY

screenRotationX: ->
screenRotationY: ->
screenRotationZ: ->

scaledScreenFrame = ->
frame = @screenFrame
frame.width *= @screenScaleX()
frame.height *= @screenScaleY()

frame.x += (@width - frame.width) * @screenOriginX
frame.y += (@height - frame.height) * @screenOriginY

return frame

############################################################## ##############################################################
# CSS # CSS


Expand Down

0 comments on commit 0f0a7fe

Please sign in to comment.