12345678910111213141516171819202122232425262728293031323334353637 |
- module BABYLON {
- export class GroundMesh extends Mesh {
- public generateOctree = false;
- private _worldInverse = new BABYLON.Matrix();
- public _subdivisions: number;
- constructor(name: string, scene: Scene) {
- super(name, scene);
- }
- public get subdivisions(): number {
- return this._subdivisions;
- }
- public optimize(chunksCount: number): void {
- this.subdivide(this._subdivisions);
- this.createOrUpdateSubmeshesOctree(32);
- }
- public getHeightAtCoordinates(x: number, z: number): number {
- var ray = new Ray(new Vector3(x, this.getBoundingInfo().boundingBox.maximumWorld.y + 1, z), new BABYLON.Vector3(0, -1, 0));
- this.getWorldMatrix().invertToRef(this._worldInverse);
- ray = Ray.Transform(ray, this._worldInverse);
- var pickInfo = this.intersects(ray);
- if (pickInfo.hit) {
- return pickInfo.pickedPoint.y;
- }
- return 0;
- }
- }
- }
|