From eef093f24a902fe360d92f7f7ab11298f7befa8d Mon Sep 17 00:00:00 2001 From: Yaski Date: Tue, 7 Aug 2012 15:49:52 +0600 Subject: [PATCH] SkyBox refactoring --- src/alternativa/engine3d/objects/SkyBox.as | 107 ++++++++++----------- 1 file changed, 52 insertions(+), 55 deletions(-) diff --git a/src/alternativa/engine3d/objects/SkyBox.as b/src/alternativa/engine3d/objects/SkyBox.as index e047a1e..9f2299f 100644 --- a/src/alternativa/engine3d/objects/SkyBox.as +++ b/src/alternativa/engine3d/objects/SkyBox.as @@ -80,7 +80,7 @@ package alternativa.engine3d.objects { private var bottomSurface:Surface; private var topSurface:Surface; - private var size:Number; + private var halfSize:Number; /** * Creates a new SkyBox instance. @@ -95,10 +95,7 @@ package alternativa.engine3d.objects { * @see alternativa.engine3d.materials.Material */ public function SkyBox(size:Number, left:Material = null, right:Material = null, back:Material = null, front:Material = null, bottom:Material = null, top:Material = null, uvPadding:Number = 0) { - - size *= 0.5; - - this.size = size; + this.halfSize = size*0.5; geometry = new Geometry(24); @@ -111,35 +108,35 @@ package alternativa.engine3d.objects { geometry.addVertexStream(attributes); geometry.setAttributeValues(VertexAttributes.POSITION, Vector.([ - -size, -size, size, - -size, -size, -size, - -size, size, -size, - -size, size, size, + -halfSize, -halfSize, halfSize, + -halfSize, -halfSize, -halfSize, + -halfSize, halfSize, -halfSize, + -halfSize, halfSize, halfSize, + + halfSize, halfSize, halfSize, + halfSize, halfSize, -halfSize, + halfSize, -halfSize, -halfSize, + halfSize, -halfSize, halfSize, + + halfSize, -halfSize, halfSize, + halfSize, -halfSize, -halfSize, + -halfSize, -halfSize, -halfSize, + -halfSize, -halfSize, halfSize, - size, size, size, - size, size, -size, - size, -size, -size, - size, -size, size, + -halfSize, halfSize, halfSize, + -halfSize, halfSize, -halfSize, + halfSize, halfSize, -halfSize, + halfSize, halfSize, halfSize, - size, -size, size, - size, -size, -size, - -size, -size, -size, - -size, -size, size, + -halfSize, halfSize, -halfSize, + -halfSize, -halfSize, -halfSize, + halfSize, -halfSize, -halfSize, + halfSize, halfSize, -halfSize, - -size, size, size, - -size, size, -size, - size, size, -size, - size, size, size, - - -size, size, -size, - -size, -size, -size, - size, -size, -size, - size, size, -size, - - -size, -size, size, - -size, size, size, - size, size, size, - size, -size, size + -halfSize, -halfSize, halfSize, + -halfSize, halfSize, halfSize, + halfSize, halfSize, halfSize, + halfSize, -halfSize, halfSize ])); geometry.setAttributeValues(VertexAttributes.TEXCOORDS[0], Vector.([ @@ -214,44 +211,44 @@ package alternativa.engine3d.objects { var dy:Number; var dz:Number; var len:Number; - dx = -size - cameraToLocalTransform.d; - dy = -size - cameraToLocalTransform.h; - dz = -size - cameraToLocalTransform.l; + dx = -halfSize - cameraToLocalTransform.d; + dy = -halfSize - cameraToLocalTransform.h; + dz = -halfSize - cameraToLocalTransform.l; len = dx*dx + dy*dy + dz*dz; if (len > max) max = len; - dx = size - cameraToLocalTransform.d; - dy = -size - cameraToLocalTransform.h; - dz = -size - cameraToLocalTransform.l; + dx = halfSize - cameraToLocalTransform.d; + dy = -halfSize - cameraToLocalTransform.h; + dz = -halfSize - cameraToLocalTransform.l; len = dx*dx + dy*dy + dz*dz; if (len > max) max = len; - dx = size - cameraToLocalTransform.d; - dy = size - cameraToLocalTransform.h; - dz = -size - cameraToLocalTransform.l; + dx = halfSize - cameraToLocalTransform.d; + dy = halfSize - cameraToLocalTransform.h; + dz = -halfSize - cameraToLocalTransform.l; len = dx*dx + dy*dy + dz*dz; if (len > max) max = len; - dx = -size - cameraToLocalTransform.d; - dy = size - cameraToLocalTransform.h; - dz = -size - cameraToLocalTransform.l; + dx = -halfSize - cameraToLocalTransform.d; + dy = halfSize - cameraToLocalTransform.h; + dz = -halfSize - cameraToLocalTransform.l; len = dx*dx + dy*dy + dz*dz; if (len > max) max = len; - dx = -size - cameraToLocalTransform.d; - dy = -size - cameraToLocalTransform.h; - dz = size - cameraToLocalTransform.l; + dx = -halfSize - cameraToLocalTransform.d; + dy = -halfSize - cameraToLocalTransform.h; + dz = halfSize - cameraToLocalTransform.l; len = dx*dx + dy*dy + dz*dz; if (len > max) max = len; - dx = size - cameraToLocalTransform.d; - dy = -size - cameraToLocalTransform.h; - dz = size - cameraToLocalTransform.l; + dx = halfSize - cameraToLocalTransform.d; + dy = -halfSize - cameraToLocalTransform.h; + dz = halfSize - cameraToLocalTransform.l; len = dx*dx + dy*dy + dz*dz; if (len > max) max = len; - dx = size - cameraToLocalTransform.d; - dy = size - cameraToLocalTransform.h; - dz = size - cameraToLocalTransform.l; + dx = halfSize - cameraToLocalTransform.d; + dy = halfSize - cameraToLocalTransform.h; + dz = halfSize - cameraToLocalTransform.l; len = dx*dx + dy*dy + dz*dz; if (len > max) max = len; - dx = -size - cameraToLocalTransform.d; - dy = size - cameraToLocalTransform.h; - dz = size - cameraToLocalTransform.l; + dx = -halfSize - cameraToLocalTransform.d; + dy = halfSize - cameraToLocalTransform.h; + dz = halfSize - cameraToLocalTransform.l; len = dx*dx + dy*dy + dz*dz; if (len > max) max = len; drawUnit.setVertexConstantsFromNumbers(0, cameraToLocalTransform.d, cameraToLocalTransform.h, cameraToLocalTransform.l, camera.farClipping/Math.sqrt(max));