UNPKG

three-stdlib

Version:

stand-alone library of threejs examples

109 lines (93 loc) 2.38 kB
import { BufferGeometry, Vector3 } from 'three' export interface RandomGenerator { random(): number getSeed(): number setSeed(seed: number): void } export interface LightningSegment { iteration: number pos0: Vector3 pos1: Vector3 linPos0: Vector3 linPos1: Vector3 up0: Vector3 up1: Vector3 radius0: number radius1: number fraction0: number fraction1: number positionVariationFactor: number } export interface LightningSubray { seed: number maxIterations: number recursion: number pos0: Vector3 pos1: Vector3 linPos0: Vector3 linPos1: Vector3 up0: Vector3 up1: Vector3 radius0: number radius1: number birthTime: number deathTime: number timeScale: number roughness: number straightness: number propagationTimeFactor: number vanishingTimeFactor: number endPropagationTime: number beginVanishingTime: number } export interface RayParameters { sourceOffset?: Vector3 destOffset?: Vector3 timeScale?: number roughness?: number straightness?: number up0?: Vector3 up1?: Vector3 radius0?: number radius1?: number radius0Factor?: number radius1Factor?: number minRadius?: number isEternal?: boolean birthTime?: number deathTime?: number propagationTimeFactor?: number vanishingTimeFactor?: number subrayPeriod?: number subrayDutyCycle?: number maxIterations?: number isStatic?: boolean ramification?: number maxSubrayRecursion?: number recursionProbability?: number generateUVs?: boolean randomGenerator?: RandomGenerator noiseSeed?: number onDecideSubrayCreation?: (segment: LightningSegment, lightningStrike: LightningStrike) => void onSubrayCreation?: ( segment: LightningSegment, parentSubray: LightningSubray, childSubray: LightningSubray, lightningStrike: LightningStrike, ) => void } export class LightningStrike extends BufferGeometry { constructor(rayParameters?: RayParameters) copyParameters(dest?: RayParameters, source?: RayParameters): RayParameters // Ray states static readonly RAY_INITIALIZED: number static readonly RAY_UNBORN: number static readonly RAY_PROPAGATING: number static readonly RAY_STEADY: number static readonly RAY_VANISHING: number static readonly RAY_EXTINGUISHED: number state: number update(time: number): void copy(source: LightningStrike): this clone(): this }