UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

144 lines 4.17 kB
/** * Represents a primitive 3d object, a combination of a material and geometry * This is roughly equivalent to single draw call, note that his is not a hierarchical data structure, if you want that - you will need to combine multiple entities, each with a `ShadedGeometry` component */ export class ShadedGeometry { /** * * @param {THREE.BufferGeometry} geometry * @param {THREE.Material} material * @param {DrawMode} [draw_mode] * @return {ShadedGeometry} */ static from(geometry: THREE.BufferGeometry, material: THREE.Material, draw_mode?: DrawMode): ShadedGeometry; /** * * @type {THREE.BufferGeometry|null} */ geometry: THREE.BufferGeometry | null; /** * * @type {THREE.Material|null} */ material: THREE.Material | null; /** * Optional extra material used for shadowmaps * @type {THREE.Material|null} */ depth_material: THREE.Material | null; __bvh_leaf: BvhClient; /** * Transient, assigned in the system * @type {number} * @private */ private __entity; /** * Transient, cached for convenience. Associated transform component from the same entity * @type {Transform|null} * @private */ private __c_transform; /** * * @type {DrawMode|number} */ mode: DrawMode | number; /** * Transient property signifying how to render object, such as using INSTANCED draw * @type {number} */ draw_method: number; /** * * @type {number} */ flags: number; /** * * @param {number|ShadedGeometryFlags} flag * @returns {void} */ setFlag(flag: number | ShadedGeometryFlags): void; /** * * @param {number|ShadedGeometryFlags} flag * @returns {void} */ clearFlag(flag: number | ShadedGeometryFlags): void; /** * * @param {number|ShadedGeometryFlags} flag * @param {boolean} value */ writeFlag(flag: number | ShadedGeometryFlags, value: boolean): void; /** * * @param {number|ShadedGeometryFlags} flag * @returns {boolean} */ getFlag(flag: number | ShadedGeometryFlags): boolean; /** * * @return {number} */ hash(): number; /** * * @param {ShadedGeometry} other * @returns {boolean} */ equals(other: ShadedGeometry): boolean; /** * * @param {ShadedGeometry} other */ copy(other: ShadedGeometry): void; /** * * @returns {ShadedGeometry} */ clone(): ShadedGeometry; /** * Current cached entity that this component is attached to * @return {number} */ get entity(): number; /** * Global transform matrix * 4x4 matrix * @return {null|number[]} */ get transform(): number[]; /** * * @param {AABB3} destination */ getBoundingBox(destination: AABB3): void; /** * * @param {THREE.BufferGeometry} geometry * @param {THREE.Material} material * @param {DrawMode} [draw_mode] */ from(geometry: THREE.BufferGeometry, material: THREE.Material, draw_mode?: DrawMode): void; updateTransform(): void; update_bounds(): void; /** * * @param {SurfacePoint3} contact if found, contact is written here * @param {ArrayLike<number>|number[]|Float32Array} ray 6-tuple: [origin_x, origin_y, origin_z, direction_x, direction_y, direction_z] * @param {ArrayLike<number>|number[]|Float32Array} transform_matrix4 transform applied to the geometry * @returns {boolean} */ query_raycast_nearest(contact: SurfacePoint3, ray: ArrayLike<number> | number[] | Float32Array, transform_matrix4: ArrayLike<number> | number[] | Float32Array): boolean; } export namespace ShadedGeometry { let typeName: string; let serializable: boolean; } import { BvhClient } from "../../../../core/bvh2/bvh3/BvhClient.js"; import { DrawMode } from "./DrawMode.js"; import { ShadedGeometryFlags } from "./ShadedGeometryFlags.js"; import { AABB3 } from "../../../../core/geom/3d/aabb/AABB3.js"; //# sourceMappingURL=ShadedGeometry.d.ts.map