Fix lights
This commit is contained in:
parent
13843f87a8
commit
e44be0c5ee
1 changed files with 180 additions and 118 deletions
|
|
@ -1,39 +1,33 @@
|
|||
import { mat2d, vec2, vec3 } from 'gl-matrix';
|
||||
import { Drawable } from '../drawable';
|
||||
import { DrawableDescriptor } from '../drawable-descriptor';
|
||||
import { LightDrawable } from './light-drawable';
|
||||
|
||||
export class Flashlight extends Drawable {
|
||||
export class Flashlight extends LightDrawable {
|
||||
public static readonly descriptor: DrawableDescriptor = {
|
||||
uniformName: 'flashlights',
|
||||
uniformCountMacroName: 'FLASHLIGHT_COUNT',
|
||||
shaderCombinationSteps: [0, 1, 2, 4],
|
||||
empty: new Flashlight(
|
||||
vec2.fromValues(0, 0),
|
||||
vec2.fromValues(0, 0),
|
||||
vec3.fromValues(0, 0, 0),
|
||||
0
|
||||
0,
|
||||
vec2.fromValues(0, 0)
|
||||
),
|
||||
};
|
||||
|
||||
public constructor(
|
||||
public center: vec2,
|
||||
public direction: vec2,
|
||||
public color: vec3,
|
||||
public intensity: number
|
||||
center: vec2,
|
||||
color: vec3,
|
||||
intensity: number,
|
||||
public direction: vec2
|
||||
) {
|
||||
super();
|
||||
}
|
||||
|
||||
public distance(_: vec2): number {
|
||||
return 0;
|
||||
super(center, color, intensity);
|
||||
}
|
||||
|
||||
protected getObjectToSerialize(transform2d: mat2d, transform1d: number): any {
|
||||
return {
|
||||
center: vec2.transformMat2d(vec2.create(), this.center, transform2d),
|
||||
...super.getObjectToSerialize(transform2d, transform1d),
|
||||
direction: this.direction,
|
||||
intensity: this.intensity,
|
||||
color: this.color,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue