import type { ClonableMixin } from "../../core/Clonable.js"; import type { JSONSupport } from "../../core/JSONSupport.js"; /** @since 5.0 */ export interface MeshVertexAttributesProperties extends Partial> {} /** @since 5.0 */ export default class MeshVertexAttributes extends MeshVertexAttributesSuperclass { constructor(properties?: MeshVertexAttributesProperties); /** * A flat array of the vertex colors (4 elements per vertex ranging from 0 to 255). * Vertex colors are multiplied by the component material color (if any is defined). */ accessor color: MeshVertexColor | null | undefined; /** * A flat array of the vertex normals (3 elements per vertex ranging from -1 to 1). * * @since 5.0 */ accessor normal: MeshVertexNormal | null | undefined; /** * A flat array of vertex position values. * * Every three numbers define one x, y, z position. The [Mesh.vertexSpace](https://developers.arcgis.com/javascript/latest/references/core/geometry/Mesh/#vertexSpace) property * of the `Mesh` geometry that owns these attributes defines how the SDK interprets those numbers: as local model * coordinates, as offsets from an origin, or as absolute coordinates in the coordinate system identified by * [Mesh.spatialReference](https://developers.arcgis.com/javascript/latest/references/core/geometry/Mesh/#spatialReference). * * @since 5.0 */ accessor position: MeshVertexPosition; /** * A flat array of the vertex tangents (4 elements per vertex ranging from -1 to 1. The 4th element is a sign value * (-1 or +1) indicating handedness of the tangent basis). An array of 4-component vectors specifying per-vertex tangents. * Tangents are used (and currently required) for normal mapping—see [MeshMaterial.normalTexture](https://developers.arcgis.com/javascript/latest/references/core/geometry/support/MeshMaterial/#normalTexture). * For more details on the expected encoding of these, see the [glTF 2.0 spec](https://github.com/KhronosGroup/glTF/tree/master/specification/2.0). * * @since 5.0 */ accessor tangent: MeshVertexTangent | null | undefined; /** * A flat array of vertex uv coordinates (2 elements per vertex). * * @since 5.0 */ accessor uv: MeshVertexUV | null | undefined; } declare const MeshVertexAttributesSuperclass: typeof JSONSupport & typeof ClonableMixin /** @since 5.0 */ export type MeshVertexPosition = Float64Array; /** @since 5.0 */ export type MeshVertexUV = Float32Array; /** @since 5.0 */ export type MeshVertexNormal = Float32Array; /** @since 5.0 */ export type MeshVertexTangent = Float32Array; /** @since 5.0 */ export type MeshVertexColor = Uint8Array;