gpu-curtains
Version:
gpu-curtains is a 3D WebGPU rendering engine. It can be used as a standalone 3D engine, but also includes extra classes focused on mapping 3d objects to DOM elements; It allows users to synchronize values such as position, sizing, or scale between them.
45 lines (44 loc) • 1.84 kB
TypeScript
import { PlaneGeometry, PlaneGeometryParams } from '../../core/geometries/PlaneGeometry';
import { DOMMesh, DOMMeshBaseParams } from './DOMMesh';
import { GPUCurtainsRenderer } from '../renderers/GPUCurtainsRenderer';
import { GPUCurtains } from '../GPUCurtains';
import { DOMElementParams } from '../../core/DOM/DOMElement';
/**
* Parameters used to create a {@link Plane}
*/
export interface PlaneParams extends DOMMeshBaseParams, PlaneGeometryParams {
/** Optional {@link PlaneGeometry} to use */
geometry?: PlaneGeometry;
}
/**
* Used to create a special {@link DOMMesh} class object using a {@link PlaneGeometry}.
* This means a quad that looks like an ordinary {@link HTMLElement} but with WebGPU rendering capabilities.
*
* @example
* ```javascript
* // set our main GPUCurtains instance
* const gpuCurtains = new GPUCurtains({
* container: '#canvas' // selector of our WebGPU canvas container
* })
*
* // set the GPU device
* // note this is asynchronous
* await gpuCurtains.setDevice()
*
* // create a Plane,
* // assuming there's a HTML element with the "plane" ID in the DOM
* // will use the normals colors as default shading
* const plane = new Plane(gpuCurtains, '#plane', {
* label: 'My plane',
* })
* ```
*/
export declare class Plane extends DOMMesh {
/**
* Plane constructor
* @param renderer - {@link GPUCurtainsRenderer} object or {@link GPUCurtains} class object used to create this {@link Plane}
* @param element - {@link HTMLElement} or string representing an {@link HTMLElement} selector used to scale and position the {@link Plane}
* @param parameters - {@link PlaneParams | parameters} used to create this {@link Plane}
*/
constructor(renderer: GPUCurtainsRenderer | GPUCurtains, element: DOMElementParams['element'], parameters?: PlaneParams);
}