look
This commit is contained in:
parent
d5833e237b
commit
910ba6d2fa
201
coffee/cage.coffee
Normal file
201
coffee/cage.coffee
Normal file
|
@ -0,0 +1,201 @@
|
||||||
|
# 0000000 0000000 0000000 00000000
|
||||||
|
# 000 000 000 000 000
|
||||||
|
# 000 000000000 000 0000 0000000
|
||||||
|
# 000 000 000 000 000 000
|
||||||
|
# 0000000 000 000 0000000 00000000
|
||||||
|
|
||||||
|
class Cage
|
||||||
|
|
||||||
|
constructor: (@size, @gap) ->
|
||||||
|
|
||||||
|
cageMat = new THREE.MeshPhongMaterial
|
||||||
|
color: 0x880000
|
||||||
|
side: THREE.FrontSide
|
||||||
|
shading: THREE.SmoothShading
|
||||||
|
shininess: 10
|
||||||
|
emissive: 0x880000
|
||||||
|
emissiveIntensity: 0.02
|
||||||
|
|
||||||
|
rasterMat = new THREE.MeshPhongMaterial
|
||||||
|
color: 0x880000
|
||||||
|
side: THREE.FrontSide
|
||||||
|
shading: THREE.SmoothShading
|
||||||
|
shininess: 20
|
||||||
|
|
||||||
|
geom = @wallTiles @gap
|
||||||
|
|
||||||
|
@cage = new THREE.Mesh geom, cageMat
|
||||||
|
@cage.translateX -0.5
|
||||||
|
@cage.translateY -0.5
|
||||||
|
@cage.translateZ -0.5
|
||||||
|
world.scene.add @cage
|
||||||
|
|
||||||
|
geom = @wallTiles 0
|
||||||
|
|
||||||
|
@raster = new THREE.Mesh geom, rasterMat
|
||||||
|
@raster.translateX -0.5
|
||||||
|
@raster.translateY -0.5
|
||||||
|
@raster.translateZ -0.5
|
||||||
|
world.scene.add @raster
|
||||||
|
|
||||||
|
del: ->
|
||||||
|
world.scene.remove @raster
|
||||||
|
world.scene.remove @cage
|
||||||
|
|
||||||
|
wallTiles: (raster=0) ->
|
||||||
|
|
||||||
|
faces = @size.x * @size.y * 2 + @size.x * @size.z * 2 + @size.y * @size.z * 2
|
||||||
|
triangles = faces * 2
|
||||||
|
positions = new Float32Array triangles * 3 * 3
|
||||||
|
normals = new Float32Array triangles * 3 * 3
|
||||||
|
|
||||||
|
s = 1-raster
|
||||||
|
o = raster
|
||||||
|
i = -1
|
||||||
|
offset = raster/10
|
||||||
|
|
||||||
|
z = offset
|
||||||
|
n = 1
|
||||||
|
for x in [0...@size.x]
|
||||||
|
for y in [0...@size.y]
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
|
||||||
|
z = @size.z - offset
|
||||||
|
n = -1
|
||||||
|
for x in [0...@size.x]
|
||||||
|
for y in [0...@size.y]
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z ; normals[i] = n
|
||||||
|
|
||||||
|
y = offset
|
||||||
|
n = 1
|
||||||
|
for x in [0...@size.x]
|
||||||
|
for z in [0...@size.z]
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
|
||||||
|
y = @size.y - offset
|
||||||
|
n = -1
|
||||||
|
for x in [0...@size.x]
|
||||||
|
for z in [0...@size.z]
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
positions[i+=1] = x+o; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
positions[i+=1] = x+s; normals[i] = 0
|
||||||
|
positions[i+=1] = y ; normals[i] = n
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
|
||||||
|
x = offset
|
||||||
|
n = 1
|
||||||
|
for y in [0...@size.y]
|
||||||
|
for z in [0...@size.z]
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
|
||||||
|
x = @size.x-offset
|
||||||
|
n = -1
|
||||||
|
for y in [0...@size.y]
|
||||||
|
for z in [0...@size.z]
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z+o; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+o; normals[i] = 0
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
positions[i+=1] = x ; normals[i] = n
|
||||||
|
positions[i+=1] = y+s; normals[i] = 0
|
||||||
|
positions[i+=1] = z+s; normals[i] = 0
|
||||||
|
|
||||||
|
geom = new THREE.BufferGeometry
|
||||||
|
geom.addAttribute 'position', new THREE.BufferAttribute positions, 3
|
||||||
|
geom.addAttribute 'normal', new THREE.BufferAttribute normals, 3
|
||||||
|
geom
|
||||||
|
|
||||||
|
module.exports = Cage
|
|
@ -76,15 +76,18 @@ class Player extends Bot
|
||||||
# smooth camera movement a little bit
|
# smooth camera movement a little bit
|
||||||
posDelta = world.getSpeed() / 10.0
|
posDelta = world.getSpeed() / 10.0
|
||||||
playerDir = @getCurrentDir()
|
playerDir = @getCurrentDir()
|
||||||
camPos = @current_position.plus playerDir.mul 0.4
|
|
||||||
@projection.setPosition @projection.getPosition().mul(1.0 - posDelta).plus camPos.mul posDelta
|
|
||||||
playerUp = @current_orientation.rotate(new Vector(0,1,0)).normal()
|
playerUp = @current_orientation.rotate(new Vector(0,1,0)).normal()
|
||||||
|
camPos = @current_position.plus playerDir.mul 0.4*(1-Math.abs(@look_angle)/90)
|
||||||
|
if @look_angle < 0
|
||||||
|
camPos.add playerUp.mul -2*@look_angle/90
|
||||||
|
@projection.setPosition @projection.getPosition().mul(1.0-posDelta).plus camPos.mul posDelta
|
||||||
|
|
||||||
if @look_angle # player is looking up or down
|
if @look_angle # player is looking up or down
|
||||||
@projection.setXVector playerUp.cross(playerDir).normal()
|
log "look_angle #{@look_angle}"
|
||||||
@look_rot = Quaternion.rotationAroundVector @look_angle, @projection.getXVector()
|
@projection.setXVector playerDir.cross(playerUp).normal()
|
||||||
@projection.setYVector @look_rot.rotate playerUp
|
rot = Quaternion.rotationAroundVector @look_angle, @projection.getXVector()
|
||||||
@projection.setZVector @look_rot.rotate playerDir.neg()
|
@projection.setYVector rot.rotate playerUp
|
||||||
|
@projection.setZVector rot.rotate playerDir #.neg()
|
||||||
else
|
else
|
||||||
# smooth camera rotation a little bit
|
# smooth camera rotation a little bit
|
||||||
lookDelta = (2.0 - @projection.getZVector().dot playerDir) * world.getSpeed() / 50.0
|
lookDelta = (2.0 - @projection.getZVector().dot playerDir) * world.getSpeed() / 50.0
|
||||||
|
@ -113,18 +116,22 @@ class Player extends Bot
|
||||||
botToCamera.normalize()
|
botToCamera.normalize()
|
||||||
|
|
||||||
min_f = Math.min world.getWallDistanceForRay(@current_position, botToCamera), min_f
|
min_f = Math.min world.getWallDistanceForRay(@current_position, botToCamera), min_f
|
||||||
cameraPos = @current_position.plus botToCamera.mul Math.max min_f, 0.72
|
camPos = @current_position.plus botToCamera.mul Math.max(min_f, 0.72) * (1-Math.abs(@look_angle)/90)
|
||||||
cameraPos = world.getInsideWallPosWithDelta cameraPos, 0.2
|
if @look_angle < 0
|
||||||
|
camPos.add playerUp.mul -2*@look_angle/90
|
||||||
|
|
||||||
|
camPos = world.getInsideWallPosWithDelta camPos, 0.2
|
||||||
|
|
||||||
# smooth camera movement a little bit
|
# smooth camera movement a little bit
|
||||||
posDelta = 0.2
|
posDelta = 0.2
|
||||||
@projection.setPosition @projection.getPosition().mul(1.0 - posDelta).plus cameraPos.mul posDelta
|
@projection.setPosition @projection.getPosition().mul(1.0 - posDelta).plus camPos.mul posDelta
|
||||||
|
|
||||||
if @look_angle
|
if @look_angle
|
||||||
@projection.setXVector playerUp.cross(playerDir).normal()
|
log "look_angle #{@look_angle}"
|
||||||
look_rot = Quaternion.rotationAroundVector @look_angle, @projection.getXVector()
|
@projection.setXVector playerDir.cross(playerUp).normal()
|
||||||
@projection.setYVector look_rot.rotate playerUp
|
rot = Quaternion.rotationAroundVector @look_angle, @projection.getXVector()
|
||||||
@projection.setZVector look_rot.rotate playerDir.neg()
|
@projection.setYVector rot.rotate playerUp
|
||||||
|
@projection.setZVector rot.rotate playerDir #.neg()
|
||||||
else
|
else
|
||||||
# smooth camera rotation a little bit
|
# smooth camera rotation a little bit
|
||||||
lookDelta = 0.3
|
lookDelta = 0.3
|
||||||
|
|
|
@ -15,6 +15,7 @@ Size = require './lib/size'
|
||||||
Cell = require './cell'
|
Cell = require './cell'
|
||||||
Light = require './light'
|
Light = require './light'
|
||||||
Player = require './player'
|
Player = require './player'
|
||||||
|
Cage = require './cage'
|
||||||
Timer = require './timer'
|
Timer = require './timer'
|
||||||
Actor = require './actor'
|
Actor = require './actor'
|
||||||
TmpObject = require './tmpobject'
|
TmpObject = require './tmpobject'
|
||||||
|
@ -109,54 +110,6 @@ class World extends Actor
|
||||||
@size = new Pos()
|
@size = new Pos()
|
||||||
@depth = -Number.MAX_SAFE_INTEGER
|
@depth = -Number.MAX_SAFE_INTEGER
|
||||||
|
|
||||||
# 0000000 0000000 0000000 00000000
|
|
||||||
# 000 000 000 000 000
|
|
||||||
# 000 000000000 000 0000 0000000
|
|
||||||
# 000 000 000 000 000 000
|
|
||||||
# 0000000 000 000 0000000 00000000
|
|
||||||
|
|
||||||
initCage: ->
|
|
||||||
boxMat = new THREE.MeshPhongMaterial
|
|
||||||
color: 0x333333
|
|
||||||
side: THREE.BackSide
|
|
||||||
shading: THREE.SmoothShading
|
|
||||||
transparent: true
|
|
||||||
opacity: 0.5
|
|
||||||
shininess: 20
|
|
||||||
|
|
||||||
boxGeom = new THREE.BoxGeometry @size.x*1.01, @size.y*1.01, @size.z*1.01
|
|
||||||
|
|
||||||
mat = new THREE.MeshPhongMaterial
|
|
||||||
color: 0x880000
|
|
||||||
side: THREE.FrontSide
|
|
||||||
shading: THREE.SmoothShading
|
|
||||||
transparent: false
|
|
||||||
opacity: 0.5
|
|
||||||
shininess: 10
|
|
||||||
|
|
||||||
geom = new THREE.BufferGeometry
|
|
||||||
|
|
||||||
faces = @size.x * @size.y * 2 + @size.x * @size.z * 2 + @size.y * @size.z * 2
|
|
||||||
triangles = faces * 2
|
|
||||||
positions = new Float32Array triangles * 3 * 3
|
|
||||||
normals = new Float32Array triangles * 3 * 3
|
|
||||||
@wallTiles positions, normals, @raster_size
|
|
||||||
geom.addAttribute 'position', new THREE.BufferAttribute positions, 3
|
|
||||||
geom.addAttribute 'normal', new THREE.BufferAttribute normals, 3
|
|
||||||
|
|
||||||
@cage = new THREE.Mesh geom, mat
|
|
||||||
@cage.translateX -0.5
|
|
||||||
@cage.translateY -0.5
|
|
||||||
@cage.translateZ -0.5
|
|
||||||
@scene.add @cage
|
|
||||||
|
|
||||||
# @box = new THREE.Mesh boxGeom, boxMat
|
|
||||||
# @box.translateX @size.x/2-0.5
|
|
||||||
# @box.translateY @size.y/2-0.5
|
|
||||||
# @box.translateZ @size.z/2-0.5
|
|
||||||
# @scene.add @box
|
|
||||||
|
|
||||||
|
|
||||||
@init: (view) ->
|
@init: (view) ->
|
||||||
return if world?
|
return if world?
|
||||||
|
|
||||||
|
@ -572,7 +525,8 @@ class World extends Actor
|
||||||
@size = new Pos size
|
@size = new Pos size
|
||||||
# calcuate max distance (for position relative sound)
|
# calcuate max distance (for position relative sound)
|
||||||
@max_distance = Math.max(@size.x, Math.max(@size.y, @size.z)) # heuristic of a heuristic :-)
|
@max_distance = Math.max(@size.x, Math.max(@size.y, @size.z)) # heuristic of a heuristic :-)
|
||||||
@initCage()
|
@cage?.del()
|
||||||
|
@cage = new Cage @size, @raster_size
|
||||||
|
|
||||||
getCellAtPos: (pos) -> return @cells[@posToIndex(pos)] if @isValidPos pos
|
getCellAtPos: (pos) -> return @cells[@posToIndex(pos)] if @isValidPos pos
|
||||||
getBotAtPos: (pos) -> @getObjectOfTypeAtPos KikiBot, new Pos pos
|
getBotAtPos: (pos) -> @getObjectOfTypeAtPos KikiBot, new Pos pos
|
||||||
|
@ -990,149 +944,4 @@ class World extends Actor
|
||||||
modKeyComboEventDown: (mod, key, combo, event) ->
|
modKeyComboEventDown: (mod, key, combo, event) ->
|
||||||
@player?.modKeyComboEventDown mod, key, combo, event
|
@player?.modKeyComboEventDown mod, key, combo, event
|
||||||
|
|
||||||
wallTiles: (positions, normals, raster=0) ->
|
|
||||||
s = 1-raster
|
|
||||||
o = raster
|
|
||||||
i = -1
|
|
||||||
|
|
||||||
z = 0
|
|
||||||
n = 1
|
|
||||||
for x in [0...@size.x]
|
|
||||||
for y in [0...@size.y]
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
|
|
||||||
z = @size.z
|
|
||||||
n = -1
|
|
||||||
for x in [0...@size.x]
|
|
||||||
for y in [0...@size.y]
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z ; normals[i] = n
|
|
||||||
|
|
||||||
y = 0
|
|
||||||
n = 1
|
|
||||||
for x in [0...@size.x]
|
|
||||||
for z in [0...@size.z]
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
|
|
||||||
y = @size.y
|
|
||||||
n = -1
|
|
||||||
for x in [0...@size.x]
|
|
||||||
for z in [0...@size.z]
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
positions[i+=1] = x+o; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
positions[i+=1] = x+s; normals[i] = 0
|
|
||||||
positions[i+=1] = y ; normals[i] = n
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
|
|
||||||
x = 0
|
|
||||||
n = 1
|
|
||||||
for y in [0...@size.y]
|
|
||||||
for z in [0...@size.z]
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
|
|
||||||
x = @size.x
|
|
||||||
n = -1
|
|
||||||
for y in [0...@size.y]
|
|
||||||
for z in [0...@size.z]
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z+o; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+o; normals[i] = 0
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
positions[i+=1] = x ; normals[i] = n
|
|
||||||
positions[i+=1] = y+s; normals[i] = 0
|
|
||||||
positions[i+=1] = z+s; normals[i] = 0
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = World
|
module.exports = World
|
||||||
|
|
Loading…
Reference in New Issue
Block a user