@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
137 lines • 4.2 kB
TypeScript
export default TerrainTile;
/**
* terrain tile is a part of a 2d array
*/
declare class TerrainTile {
gridPosition: Vector2;
scale: Vector2;
size: Vector2;
position: Vector2;
resolution: ObservedInteger;
/**
*
* @type {Material}
*/
material: Material;
mesh: import("three").Mesh<ThreeBufferGeometry, import("three").Material | import("three").Material[]>;
/**
*
* @type {THREE.BufferGeometry}
*/
geometry: THREE.BufferGeometry;
/**
*
* @type {boolean}
*/
enableBVH: boolean;
/**
*
* @type {BvhClient}
*/
external_bvh: BvhClient;
/**
*
* @type {BinaryUint32BVH}
*/
bvh: BinaryUint32BVH;
/**
*
* @type {boolean}
*/
isBuilt: boolean;
/**
*
* @type {boolean}
*/
isBuildInProgress: boolean;
referenceCount: number;
/**
*
* @type {Signal<TerrainTile>}
*/
onBuilt: Signal<TerrainTile>;
onDestroyed: Signal<any, any, any, any, any, any, any, any>;
/**
* Encodes whether stitching has been performed on per-neighbour basis
* @private
* @type {{bottomLeft: boolean, top: boolean, left: boolean, bottom: boolean, bottomRight: boolean, topLeft: boolean, topRight: boolean, right: boolean}}
*/
private stitching;
/**
* Initial estimate of height bounds for this tile
* Untransformed by transform matrix
* @type {NumericInterval}
* @private
*/
private __initial_height_range;
/**
* Used to track number of times tile was built
* @type {number}
*/
version: number;
/**
*
* @param {number[]|Float32Array|mat4} m4
*/
set transform(m4: number[] | Float32Array | mat4);
/**
*
* @return {number[]}
*/
get transform(): number[];
/**
*
* @param {SurfacePoint3} result
* @param {number} originX
* @param {number} originY
* @param {number} originZ
* @param {number} directionX
* @param {number} directionY
* @param {number} directionZ
* @return {boolean}
*/
raycastFirstSync(result: SurfacePoint3, originX: number, originY: number, originZ: number, directionX: number, directionY: number, directionZ: number): boolean;
getVertexNormal(index: any, result: any): void;
setVertexNormal(index: any, value: any): void;
/**
* Stitch vertex normals along the edges of the tile set
* @param {TerrainTile|undefined} top
* @param {TerrainTile|undefined} bottom
* @param {TerrainTile|undefined} left
* @param {TerrainTile|undefined} right
* @param {TerrainTile|undefined} topLeft
* @param {TerrainTile|undefined} topRight
* @param {TerrainTile|undefined} bottomLeft
* @param {TerrainTile|undefined} bottomRight
*/
stitchNormals(top: TerrainTile | undefined, bottom: TerrainTile | undefined, left: TerrainTile | undefined, right: TerrainTile | undefined, topLeft: TerrainTile | undefined, topRight: TerrainTile | undefined, bottomLeft: TerrainTile | undefined, bottomRight: TerrainTile | undefined): void;
computeBoundingBox(): void;
/**
*
* @param {number} min_height
* @param {number} max_height
*/
setInitialHeightBounds(min_height: number, max_height: number): void;
dispose(): void;
/**
*
* @param {{geometry, bvh?:{leaf_count:number, data:ArrayBuffer}}} tileData
* @returns {Mesh}
*/
build(tileData: {
geometry: any;
bvh?: {
leaf_count: number;
data: ArrayBuffer;
};
}): Mesh;
}
import Vector2 from '../../../../core/geom/Vector2.js';
import ObservedInteger from "../../../../core/model/ObservedInteger.js";
import { BufferGeometry as ThreeBufferGeometry } from 'three';
import { BvhClient } from "../../../../core/bvh2/bvh3/BvhClient.js";
import { BinaryUint32BVH } from "../../../../core/bvh2/binary/2/BinaryUint32BVH.js";
import Signal from "../../../../core/events/signal/Signal.js";
import { mat4 } from "gl-matrix";
import { SurfacePoint3 } from "../../../../core/geom/3d/SurfacePoint3.js";
//# sourceMappingURL=TerrainTile.d.ts.map