awayjs-display
Version:
AwayJS displaylist classes
87 lines (86 loc) • 3.13 kB
TypeScript
import AttributesBuffer from "awayjs-core/lib/attributes/AttributesBuffer";
import AttributesView from "awayjs-core/lib/attributes/AttributesView";
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 AssetBase from "awayjs-core/lib/library/AssetBase";
import IPickingCollider from "../pick/IPickingCollider";
import PickingCollision from "../pick/PickingCollision";
import MaterialBase from "../materials/MaterialBase";
/**
* @class away.base.TriangleElements
*/
declare class ElementsBase extends AssetBase {
private _indices;
private _customAttributesNames;
private _customAttributes;
private _numElements;
_concatenatedBuffer: AttributesBuffer;
private _invalidateIndices;
_verticesDirty: Object;
_invalidateVertices: Object;
readonly concatenatedBuffer: AttributesBuffer;
/**
* The raw index data that define the faces.
*/
readonly indices: Short3Attributes;
/**
*
*/
getCustomAtributesNames(): Array<string>;
/**
*
*/
getCustomAtributes(name: string): AttributesView;
/**
* The total amount of triangles in the TriangleElements.
*/
readonly numElements: number;
readonly numVertices: number;
/**
*
*/
constructor(concatenatedBuffer?: AttributesBuffer);
copyTo(elements: ElementsBase): void;
/**
*
*/
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;
/**
* Updates custom attributes.
*/
setCustomAttributes(name: string, array: Array<number>, offset?: number): any;
setCustomAttributes(name: string, arrayBufferView: ArrayBufferView, offset?: number): any;
setCustomAttributes(name: string, attributesView: AttributesView, offset?: number): any;
/**
* Clones the current object
* @return An exact duplicate of the current object.
*/
clone(): ElementsBase;
applyTransformation(transform: Matrix3D): void;
/**
* Scales the geometry.
* @param scale The amount by which to scale.
*/
scale(scale: number): void;
scaleUV(scaleU?: number, scaleV?: number): void;
getBoxBounds(target?: Box): Box;
getSphereBounds(center: Vector3D, target?: Sphere): Sphere;
hitTestPoint(x: number, y: number, z: number, box: Box): boolean;
private invalidateIndicies();
private clearIndices();
invalidateVertices(attributesView: AttributesView): void;
clearVertices(attributesView: AttributesView): void;
_iTestCollision(pickingCollider: IPickingCollider, material: MaterialBase, pickingCollision: PickingCollision): boolean;
}
export default ElementsBase;