three
Version:
JavaScript 3D library
108 lines (90 loc) • 2.37 kB
TypeScript
import {
Vector3
} from '../../../src/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 {
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 ): LightningStrike;
clone(): LightningStrike;
}