@threlte/extras
Version:
Utilities, abstractions and plugins for your Threlte apps
82 lines (81 loc) • 1.53 kB
TypeScript
import type { Props } from '@threlte/core';
import type { ColorRepresentation, Mesh, Side, Vector3 } from 'three';
export type GridProps = Props<Mesh> & {
/**
* @default 'xz'
*/
plane?: 'xz' | 'xy' | 'zy';
/**
* @default '#000000'
*/
cellColor?: ColorRepresentation;
/**
* @default 1
*/
cellSize?: number;
/**
* @default 1
*/
cellThickness?: number;
/**
* @default '#0000ee'
*/
sectionColor?: ColorRepresentation;
/**
* @default 10
*/
sectionSize?: number;
/**
* @default 2
*/
sectionThickness?: number;
/**
* @default '#dadada'
*/
backgroundColor?: ColorRepresentation;
/**
* @default 0
*/
backgroundOpacity?: number;
/**
* @default [20, 20]
*/
gridSize?: number | [number, number];
/**
* @default false
*/
followCamera?: boolean;
/**
* @default false
*/
infiniteGrid?: boolean;
/**
* @default 100
*/
fadeDistance?: number;
/**
* @default 1
*/
fadeStrength?: number;
/**
* @default undefined, uses camera.current.position
*/
fadeOrigin?: Vector3;
/**
* @default Three.DoubleSide
*/
side?: Side;
} & ({
type?: 'grid';
} | {
type?: 'lines';
axis: 'x' | 'y' | 'z';
} | {
type?: 'circular';
maxRadius?: number;
} | {
type?: 'polar';
maxRadius?: number;
cellDividers?: number;
sectionDividers?: number;
});