init = () ->
@top_node = new PXL.Node()
# A basic Z/X aligned plane
plane = new PXL.Geometry.Plane(8,8)
@plane_node = new PXL.Node()
@plane_node.add plane
# A higher resolution flat plane
@flat_node = new PXL.Node()
flat_plane = new PXL.Geometry.PlaneFlat(128,128)
@flat_node.add(new PXL.Material.BasicColourMaterial(new PXL.Colour.RGB(1,0,0))).add(flat_plane)
@flat_node.matrix.translate(new PXL.Math.Vec3(0,-2.0,0))
# A Hexagon based plane
@hex_node = new PXL.Node()
hex_plane = new PXL.Geometry.PlaneHexagonFlat(12,12)
@hex_node.add(new PXL.Material.BasicColourMaterial(new PXL.Colour.RGB(0,1,0))).add(hex_plane)
@hex_node.matrix.translate(new PXL.Math.Vec3(0,2.0,0))
@top_node.add hex_node
@top_node.add plane_node
@top_node.add flat_node
camera = new PXL.Camera.MousePerspCamera(new PXL.Math.Vec3(0,2.0,20.0))
@top_node.add camera
got_texture = (texture) =>
material = new PXL.Material.TextureMaterial(texture)
@plane_node.add material
uber = new PXL.GL.UberShader(@top_node)
@top_node.add uber
# Example of setting the parameters
params =
min : GL.NEAREST
PXL.GL.textureFromURL("/textures/chessboard.png", got_texture, undefined, params)
GL.enable GL.DEPTH_TEST
draw = () ->
GL.clearColor(0.15, 0.15, 0.15, 1.0)
GL.clear(GL.COLOR_BUFFER_BIT | GL.DEPTH_BUFFER_BIT)
@top_node.draw()
params =
canvas : 'webgl-canvas'
context : @
init : init
draw : draw
cgl = new PXL.App params