mylingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
30 lines (29 loc) • 1.46 kB
TypeScript
import { Reactive } from "@lincode/reactivity";
import { DirectionalLightHelper, Group, Light, PointLightHelper, SpotLightHelper } from "three";
import { RectAreaLightHelper } from "three/examples/jsm/helpers/RectAreaLightHelper";
import ILightBase from "../../interface/ILightBase";
import ObjectManager from "./ObjectManager";
export default abstract class LightBase<T extends typeof Light> extends ObjectManager<Group> implements ILightBase {
protected lightState: Reactive<InstanceType<T> | undefined>;
protected defaultShadowResolution: number;
protected defaultShadowBias: number;
protected shadowResolutionComputedState: Reactive<number | undefined>;
protected shadowBiasComputedState: Reactive<number | undefined>;
constructor(Light: T, Helper?: typeof DirectionalLightHelper | typeof SpotLightHelper | typeof PointLightHelper | typeof RectAreaLightHelper);
private helperState;
get helper(): boolean;
set helper(val: boolean);
private castShadowState;
get castShadow(): boolean;
set castShadow(val: boolean);
private shadowResolutionState;
get shadowResolution(): number | undefined;
set shadowResolution(val: number | undefined);
private shadowBiasState;
get shadowBias(): number | undefined;
set shadowBias(val: number | undefined);
get color(): string;
set color(val: string);
get intensity(): number;
set intensity(val: number);
}