UNPKG

awayjs-display

Version:
167 lines (166 loc) 5.78 kB
import AttributesView from "awayjs-core/lib/attributes/AttributesView"; import Float4Attributes from "awayjs-core/lib/attributes/Float4Attributes"; import Float3Attributes from "awayjs-core/lib/attributes/Float3Attributes"; import Short3Attributes from "awayjs-core/lib/attributes/Short3Attributes"; import Box from "awayjs-core/lib/geom/Box"; import Sphere from "awayjs-core/lib/geom/Sphere"; import Matrix3D from "awayjs-core/lib/geom/Matrix3D"; import Vector3D from "awayjs-core/lib/geom/Vector3D"; import ElementsBase from "../graphics/ElementsBase"; import MaterialBase from "../materials/MaterialBase"; import IPickingCollider from "../pick/IPickingCollider"; import PickingCollision from "../pick/PickingCollision"; /** * @class away.base.TriangleElements */ declare class TriangleElements extends ElementsBase { static assetType: string; private _numVertices; private _faceNormalsDirty; private _faceTangentsDirty; private _positions; private _normals; private _tangents; private _uvs; private _jointIndices; private _jointWeights; private _useCondensedIndices; private _condensedIndexLookUp; private _jointsPerVertex; private _autoDeriveNormals; private _autoDeriveTangents; private _faceNormals; private _faceTangents; cells: Array<Array<number>>; lastCollisionIndex: number; divisions: number; readonly assetType: string; readonly numVertices: number; /** * Offers the option of enabling GPU accelerated animation on skeletons larger than 32 joints * by condensing the number of joint index values required per sprite. Only applicable to * skeleton animations that utilise more than one sprite object. Defaults to false. */ useCondensedIndices: boolean; /** * */ jointsPerVertex: number; /** * True if the vertex normals should be derived from the geometry, false if the vertex normals are set * explicitly. */ autoDeriveNormals: boolean; /** * True if the vertex tangents should be derived from the geometry, false if the vertex normals are set * explicitly. */ autoDeriveTangents: boolean; /** * */ readonly positions: AttributesView; /** * */ readonly normals: Float3Attributes; /** * */ readonly tangents: Float3Attributes; /** * The raw data of the face normals, in the same order as the faces are listed in the index list. */ readonly faceNormals: Float4Attributes; /** * The raw data of the face tangets, in the same order as the faces are listed in the index list. */ readonly faceTangents: Float3Attributes; /** * */ readonly uvs: AttributesView; /** * */ readonly jointIndices: AttributesView; /** * */ readonly jointWeights: AttributesView; readonly condensedIndexLookUp: Array<number>; getBoxBounds(target?: Box): Box; getSphereBounds(center: Vector3D, target?: Sphere): Sphere; hitTestPoint(x: number, y: number, z: number): boolean; /** * */ setPositions(array: Array<number>, offset?: number): any; setPositions(arrayBufferView: ArrayBufferView, offset?: number): any; setPositions(attributesView: AttributesView, offset?: number): any; /** * Updates the vertex normals based on the geometry. */ setNormals(array: Array<number>, offset?: number): any; setNormals(float32Array: Float32Array, offset?: number): any; setNormals(float3Attributes: Float3Attributes, offset?: number): any; /** * Updates the vertex tangents based on the geometry. */ setTangents(array: Array<number>, offset?: number): any; setTangents(float32Array: Float32Array, offset?: number): any; setTangents(float3Attributes: Float3Attributes, offset?: number): any; /** * Updates the uvs based on the geometry. */ setUVs(array: Array<number>, offset?: number): any; setUVs(arrayBufferView: ArrayBufferView, offset?: number): any; setUVs(attributesView: AttributesView, offset?: number): any; /** * Updates the joint indices */ setJointIndices(array: Array<number>, offset?: number): any; setJointIndices(float32Array: Float32Array, offset?: number): any; setJointIndices(attributesView: AttributesView, offset?: number): any; /** * Updates the joint weights. */ setJointWeights(array: Array<number>, offset?: number): any; setJointWeights(float32Array: Float32Array, offset?: number): any; setJointWeights(attributesView: AttributesView, offset?: number): any; /** * */ dispose(): void; /** * Updates the face indices of the TriangleElements. * * @param indices The face indices to upload. */ setIndices(array: Array<number>, offset?: number): any; setIndices(uint16Array: Uint16Array, offset?: number): any; setIndices(short3Attributes: Short3Attributes, offset?: number): any; copyTo(elements: TriangleElements): void; /** * Clones the current object * @return An exact duplicate of the current object. */ clone(): TriangleElements; scaleUV(scaleU?: number, scaleV?: number): void; /** * Scales the geometry. * @param scale The amount by which to scale. */ scale(scale: number): void; applyTransformation(transform: Matrix3D): void; /** * Updates the tangents for each face. */ private updateFaceTangents(); /** * Updates the normals for each face. */ private updateFaceNormals(); _iTestCollision(pickingCollider: IPickingCollider, material: MaterialBase, pickingCollision: PickingCollision): boolean; } export default TriangleElements;