@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
80 lines • 2.12 kB
TypeScript
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