react-ngl
Version:
React wrapper for ngl
147 lines (146 loc) • 3.88 kB
TypeScript
/**
* @file Wide Line Buffer
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @private
*/
import { Vector3, Matrix4 } from 'three';
import '../shader/WideLine.vert';
import '../shader/WideLine.frag';
import MappedQuadBuffer from './mappedquad-buffer';
import { BufferData } from './buffer';
export interface WideLineBufferData extends BufferData {
position1: Float32Array;
position2: Float32Array;
color2: Float32Array;
}
export declare const WideLineBufferDefaultParameters: {
linewidth: number;
} & {
opaqueBack: boolean;
side: import("./buffer").BufferSide;
opacity: number;
depthWrite: boolean;
clipNear: number;
clipRadius: number;
clipCenter: Vector3;
flatShaded: boolean;
wireframe: boolean;
roughness: number;
metalness: number;
diffuse: number;
diffuseInterior: boolean;
useInteriorColor: boolean;
interiorColor: number;
interiorDarkening: number;
forceTransparent: boolean;
matrix: Matrix4;
disablePicking: boolean;
sortParticles: boolean;
background: boolean;
};
export declare type WideLineBufferParameters = typeof WideLineBufferDefaultParameters;
/**
* Wide Line buffer. Draws lines with a fixed width in pixels.
*
* @example
* var lineBuffer = new WideLineBuffer({
* position1: new Float32Array([ 0, 0, 0 ]),
* position2: new Float32Array([ 1, 1, 1 ]),
* color: new Float32Array([ 1, 0, 0 ]),
* color2: new Float32Array([ 0, 1, 0 ])
* });
*/
declare class WideLineBuffer extends MappedQuadBuffer {
parameterTypes: {
linewidth: {
uniform: boolean;
};
} & {
opaqueBack: {
updateShader: boolean;
};
side: {
updateShader: boolean;
property: boolean;
};
opacity: {
uniform: boolean;
};
depthWrite: {
property: boolean;
};
clipNear: {
updateShader: boolean;
property: boolean;
};
clipRadius: {
updateShader: boolean;
uniform: boolean;
};
clipCenter: {
uniform: boolean;
};
flatShaded: {
updateShader: boolean;
};
background: {
updateShader: boolean;
};
wireframe: {
updateVisibility: boolean;
};
roughness: {
uniform: boolean;
};
metalness: {
uniform: boolean;
};
diffuse: {
uniform: boolean;
};
diffuseInterior: {
updateShader: boolean;
};
useInteriorColor: {
updateShader: boolean;
};
interiorColor: {
uniform: boolean;
};
interiorDarkening: {
uniform: boolean;
};
matrix: {};
};
get defaultParameters(): {
linewidth: number;
} & {
opaqueBack: boolean;
side: import("./buffer").BufferSide;
opacity: number;
depthWrite: boolean;
clipNear: number;
clipRadius: number;
clipCenter: Vector3;
flatShaded: boolean;
wireframe: boolean;
roughness: number;
metalness: number;
diffuse: number;
diffuseInterior: boolean;
useInteriorColor: boolean;
interiorColor: number;
interiorDarkening: number;
forceTransparent: boolean;
matrix: Matrix4;
disablePicking: boolean;
sortParticles: boolean;
background: boolean;
};
parameters: WideLineBufferParameters;
vertexShader: string;
fragmentShader: string;
constructor(data: Partial<WideLineBufferData>, params?: Partial<WideLineBufferParameters>);
setParameters(params: Partial<WideLineBufferParameters>): void;
}
export default WideLineBuffer;