UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

80 lines 2.12 kB
import type { TgdDataset } from "../../dataset"; import { type TgdMaterial } from "../../material"; import { TgdTransfo } from "../../math"; import { TgdPainter } from "../painter"; import { TgdTexture2D } from "../../texture"; import { TgdContext } from "../../context"; type DatasetOption = TgdDataset | (() => TgdDataset); export type TgdPainterSegmentsMorphingOptions = { /** * Number of faces around the cylinder. * Min is 3. * Default to **3**. */ roundness?: number; /** * With orthographic camera, this is a value in pixels. */ minRadius?: number; /** * Multiply all the radii by this value. * * Default to `1`. */ radiusMultiplier?: number; /** * Material to apply to the resulting mesh. */ material?: TgdMaterial; /** * If a `TgdPainterSegments` is given, then the * data will be shared between the painters. */ datasetsPairs: [DatasetOption, DatasetOption][]; }; /** * @example * ``` * const factory = new TgdPainterSegmentsData() * factory.add( * [0, 0, 0, .2], * [1, 0, 0, .1], * ) * factory.add( * [0, 0, 0, .2], * [0, 1, 0, .1], * ) * factory.add( * [0, 0, 0, .2], * [0, 0, 1, .1], * ) * const segments = new TgdPainterSegments( * segment, factory * ) * ``` */ export declare class TgdPainterSegmentsMorphing extends TgdPainter { protected readonly context: TgdContext; readonly transfo: TgdTransfo; colorTexture: TgdTexture2D; minRadius: number; radiusMultiplier: number; radiusConstant: number; radiusSwitch: number; instanceCount: number; /** * Mix between two datasets of a pair. * 0.0 for the first one, 1.0 for the second one. */ mix: number; private readonly vaos; private readonly prg; private readonly vertexCount; private readonly material; constructor(context: TgdContext, options: TgdPainterSegmentsMorphingOptions); delete(): void; paint(time: number, delta: number): void; private get vao(); } export {}; //# sourceMappingURL=segments-morphing.d.ts.map