import { BoundingBox, BoundingSphere } from '@gglib/math'; import { BufferOptions } from '../resources'; import { VertexAttribute } from '../VertexLayout'; import { PrimitiveType, FrontFace } from '../enums'; import { ModelBuilderChannel } from './ModelBuilderChannel'; export declare class ModelMeshPartUtil { readonly indexBuffer: BufferOptions; readonly vertexBuffer: BufferOptions[]; readonly primitiveType: PrimitiveType; channels: Map; private get indices(); boundingBox: BoundingBox; boundingSphere: BoundingSphere; channelNames: string[]; constructor(indexBuffer: BufferOptions, vertexBuffer: BufferOptions[], primitiveType: PrimitiveType); /** * Checks if vertex buffer channel with given semantic exists * * @param semantic */ hasChannel(semantic: string): boolean; /** * Returns a vertex buffer channel with given semantic * * @param semantic */ getChannel(semantic: string): ModelBuilderChannel | null; /** * Creates a channel in vertex buffer * * @param semantic - the semantic channel name * @param attribute - the attribute specification * @param defaults - default vertex values */ createChannel(semantic: string, attribute: VertexAttribute, defaults?: number[]): void; /** * Gets the number of vertices * * @remarks * This is defined by the number vertices in the `position` channel */ getVertexCount(): number; getIndexCount(): number; /** * In current state it reads through the vertex buffer and eliminates redundant vertices * * @remarks * This does not operate on already closed mesh parts. When building a model with multiple * meshes or parts, this must be called each time before closing a part. */ mergeDublicates(): this; calculateBoundings(): this; calculateNormals(create?: boolean, frontFace?: FrontFace): this; calculateTangents(create?: boolean, frontFace?: FrontFace): this; calculateNormalsAndTangents(create?: boolean, frontFace?: FrontFace): this; } //# sourceMappingURL=ModelMeshPartUtil.d.ts.map