1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- this.getHeight = function( x, y ) {
-
-
-
-
- var minWorldX = this.minWorldX;
- var fractX = ( x - minWorldX ) / ( this.maxWorldX - minWorldX ) *
- this.heightmapWidth;
- var minWorldY = this.minWorldY;
- var fractY = ( 1 - ( y - minWorldY ) / ( this.maxWorldY - minWorldY ) ) *
- this.heightmapHeight;
-
- var x1 = Math.round( fractX );
- var y1 = Math.round( fractY );
-
- var heightValue = this.getHeightmapValue( x1, y1 );
-
-
- var heightPercent = heightValue / 16777215;
- var minWorldZ = this.minWorldZ;
- var zRange = this.maxWorldZ - minWorldZ;
- return minWorldZ + heightPercent * zRange;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
- this.getHeightmapValue = function( x, y ) {
-
-
-
-
- var rIndex = 4 * ( this.heightmapWidth * y + x );
- var gIndex = rIndex + 1;
- var bIndex = gIndex + 1;
- var heightmapData = this.heightmap;
- var rValue = heightmapData[ rIndex ];
- var gValue = heightmapData[ gIndex ];
- var bValue = heightmapData[ bIndex ];
- return rValue + gValue * 256 + bValue * 65280;
- }
|