63 lines
2.5 KiB
Plaintext
63 lines
2.5 KiB
Plaintext
on.draw = function()
|
|
love.graphics.setColor(1,0,0)
|
|
for y=0,1000,100 do
|
|
love.graphics.line(vx(-5),vy(y), vx(5),vy(y))
|
|
end
|
|
for x=0,1000,100 do
|
|
love.graphics.line(vx(x),vy(-5), vx(x),vy(5))
|
|
end
|
|
for _,obj in ipairs(Surface) do
|
|
love.graphics.setColor(obj.r or 0, obj.g or 0, obj.b or 0)
|
|
if obj.type == 'rectangle' then
|
|
love.graphics.rectangle(obj.drawmode or 'fill', vx(obj.x),vy(obj.y), scale(obj.w),scale(obj.h))
|
|
elseif obj.type == 'line' then
|
|
if obj.saved_zoom ~= Viewport.zoom or obj.saved_x ~= Viewport.x or obj.saved_y ~= Viewport.y then
|
|
obj.saved_zoom = Viewport.zoom
|
|
obj.saved_x = Viewport.x
|
|
obj.saved_y = Viewport.y
|
|
obj.zdata = {}
|
|
for i=1,#obj.data,2 do
|
|
table.insert(obj.zdata, vx(obj.data[i]))
|
|
table.insert(obj.zdata, vy(obj.data[i+1]))
|
|
end
|
|
end
|
|
love.graphics.line(unpack(obj.zdata))
|
|
elseif obj.type == 'circle' then
|
|
love.graphics.circle(obj.drawmode or 'fill', vx(obj.x), vy(obj.y), scale(obj.radius))
|
|
elseif obj.type == 'arc' then
|
|
love.graphics.arc(obj.drawmode or 'line', obj.arctype or 'open', vx(obj.x), vy(obj.y), scale(obj.radius), obj.angle1, obj.angle2, obj.segments)
|
|
elseif obj.type == 'ellipse' then
|
|
love.graphics.ellipse(obj.drawmode or 'fill', vx(obj.x), vy(obj.y), scale(obj.radiusx), scale(obj.radiusy))
|
|
elseif obj.type == 'bezier' then
|
|
if obj.saved_zoom ~= Viewport.zoom or obj.saved_x ~= Viewport.x or obj.saved_y ~= Viewport.y then
|
|
obj.saved_zoom = Viewport.zoom
|
|
obj.saved_x = Viewport.x
|
|
obj.saved_y = Viewport.y
|
|
zdata = {}
|
|
for i=1,#obj.data,2 do
|
|
table.insert(zdata, vx(obj.data[i]))
|
|
table.insert(zdata, vy(obj.data[i+1]))
|
|
end
|
|
obj.zdata = love.math.newBezierCurve(zdata):render()
|
|
end
|
|
love.graphics.line(unpack(obj.zdata))
|
|
elseif obj.type == 'text' then
|
|
local scaled_fontsize = scale(obj.fontsize or 20)
|
|
if obj.saved_zoom ~= Viewport.zoom or obj.saved_x ~= Viewport.x or obj.saved_y ~= Viewport.y or obj.scaled_fontsize ~= scaled_fontsize then
|
|
obj.saved_zoom = Viewport.zoom
|
|
obj.saved_x = Viewport.x
|
|
obj.saved_y = Viewport.y
|
|
obj.scaled_fontsize = scaled_fontsize
|
|
print('setting font', scaled_fontsize)
|
|
love.graphics.setFont(font(scaled_fontsize))
|
|
obj.text = love.graphics.newText(love.graphics.getFont(), obj.data)
|
|
initialize_editor(obj)
|
|
end
|
|
if obj.w == nil then
|
|
love.graphics.draw(obj.text, vx(obj.x), vy(obj.y))
|
|
else
|
|
edit.draw(obj.editor, obj.fg or {r=0,g=0,b=0}, not obj.show_cursor)
|
|
end
|
|
end
|
|
end
|
|
end |