@needle-tools/engine 3.2.5-alpha.1 → 3.2.6-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/needle-engine.js +5242 -5144
- package/dist/needle-engine.min.js +275 -275
- package/dist/needle-engine.umd.cjs +273 -273
- package/lib/engine/api.d.ts +3 -1
- package/lib/engine/api.js +2 -1
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/engine_context.d.ts +4 -2
- package/lib/engine/engine_context.js +5 -3
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_element_loading.js +0 -1
- package/lib/engine/engine_element_loading.js.map +1 -1
- package/lib/engine/engine_mainloop_utils.js +4 -2
- package/lib/engine/engine_mainloop_utils.js.map +1 -1
- package/lib/engine/engine_scenelighting.d.ts +68 -0
- package/lib/engine/{engine_rendererdata.js → engine_scenelighting.js} +94 -24
- package/lib/engine/engine_scenelighting.js.map +1 -0
- package/lib/engine/engine_serialization_core.d.ts +5 -8
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_lighting_settings.d.ts +3 -1
- package/lib/engine/extensions/NEEDLE_lighting_settings.js +32 -20
- package/lib/engine/extensions/NEEDLE_lighting_settings.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js +3 -3
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
- package/lib/engine/extensions/index.d.ts +5 -0
- package/lib/engine/extensions/index.js +6 -0
- package/lib/engine/extensions/index.js.map +1 -0
- package/lib/engine-components/Component.js +15 -3
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/Renderer.js +1 -1
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/SceneSwitcher.d.ts +2 -0
- package/lib/engine-components/SceneSwitcher.js +16 -4
- package/lib/engine-components/SceneSwitcher.js.map +1 -1
- package/lib/engine-components/api.d.ts +1 -0
- package/lib/engine-components/api.js +1 -0
- package/lib/engine-components/api.js.map +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +1 -1
- package/lib/engine-components/postprocessing/VolumeParameter.d.ts +1 -1
- package/lib/engine-components/postprocessing/VolumeParameter.js +7 -6
- package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -1
- package/lib/engine-components/webxr/index.d.ts +1 -0
- package/lib/engine-components/webxr/index.js +1 -0
- package/lib/engine-components/webxr/index.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/engine/api.ts +3 -1
- package/src/engine/engine_context.ts +5 -3
- package/src/engine/engine_element_loading.ts +0 -1
- package/src/engine/engine_mainloop_utils.ts +4 -2
- package/src/engine/{engine_rendererdata.ts → engine_scenelighting.ts} +95 -24
- package/src/engine/engine_serialization_core.ts +7 -8
- package/src/engine/extensions/NEEDLE_lighting_settings.ts +40 -25
- package/src/engine/extensions/NEEDLE_techniques_webgl.ts +3 -3
- package/src/engine/extensions/index.ts +5 -0
- package/src/engine-components/Component.ts +15 -3
- package/src/engine-components/Renderer.ts +1 -1
- package/src/engine-components/SceneSwitcher.ts +14 -4
- package/src/engine-components/api.ts +1 -0
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
- package/src/engine-components/postprocessing/VolumeParameter.ts +7 -6
- package/src/engine-components/webxr/index.ts +1 -0
- package/lib/engine/engine_rendererdata.d.ts +0 -49
- package/lib/engine/engine_rendererdata.js.map +0 -1
|
@@ -17,7 +17,7 @@ export class VolumeParameter {
|
|
|
17
17
|
set overrideState(val: boolean) {
|
|
18
18
|
if (this._active === val) return;
|
|
19
19
|
this._active = val;
|
|
20
|
-
const value = val ? this.
|
|
20
|
+
const value = val ? this._valueRaw : this._defaultValue;
|
|
21
21
|
this.processValue(value, true);
|
|
22
22
|
}
|
|
23
23
|
private _active: boolean = true;
|
|
@@ -26,13 +26,13 @@ export class VolumeParameter {
|
|
|
26
26
|
|
|
27
27
|
@serializable()
|
|
28
28
|
get value() {
|
|
29
|
-
return this.
|
|
29
|
+
return this._valueRaw;
|
|
30
30
|
}
|
|
31
31
|
set value(val: any) {
|
|
32
32
|
this.processValue(val, false);
|
|
33
33
|
}
|
|
34
34
|
private _value: any;
|
|
35
|
-
private
|
|
35
|
+
private _valueRaw?: any;
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
set defaultValue(val: any) {
|
|
@@ -43,7 +43,7 @@ export class VolumeParameter {
|
|
|
43
43
|
|
|
44
44
|
/** enforce the value to be set and onValueChanged to be called if assigned */
|
|
45
45
|
__init() {
|
|
46
|
-
this.processValue(this.
|
|
46
|
+
this.processValue(this._valueRaw, true);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
/** called to modify a changing value before it is saved */
|
|
@@ -65,9 +65,10 @@ export class VolumeParameter {
|
|
|
65
65
|
// with the value that is expected to received when the parameter is disabled)
|
|
66
66
|
this._value = this._defaultValue;
|
|
67
67
|
val = this._defaultValue;
|
|
68
|
+
this._valueRaw = val;
|
|
68
69
|
}
|
|
69
70
|
else {
|
|
70
|
-
this.
|
|
71
|
+
this._valueRaw = val;
|
|
71
72
|
if (this._active && this.valueProcessor)
|
|
72
73
|
val = this.valueProcessor(val);
|
|
73
74
|
this._value = val;
|
|
@@ -80,7 +81,7 @@ export class VolumeParameter {
|
|
|
80
81
|
|
|
81
82
|
private testIfValueChanged(newValue: any): boolean {
|
|
82
83
|
|
|
83
|
-
if (this.
|
|
84
|
+
if (this._valueRaw === newValue)
|
|
84
85
|
return false;
|
|
85
86
|
|
|
86
87
|
// TODO: may need checks for colors or vectors (check by xyz,rgb because they might come in as anonymous objects via editor modifications)
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Vector4, WebGLCubeRenderTarget, Texture, LightProbe } from "three";
|
|
2
|
-
import { Context } from "./engine_setup";
|
|
3
|
-
import { SceneLightSettings } from "./extensions/NEEDLE_lighting_settings";
|
|
4
|
-
import { SourceIdentifier } from "./engine_types";
|
|
5
|
-
export declare type SphericalHarmonicsData = {
|
|
6
|
-
array: number[];
|
|
7
|
-
texture: WebGLCubeRenderTarget | Texture;
|
|
8
|
-
lightProbe?: LightProbe;
|
|
9
|
-
};
|
|
10
|
-
export declare enum AmbientMode {
|
|
11
|
-
Skybox = 0,
|
|
12
|
-
Trilight = 1,
|
|
13
|
-
Flat = 3,
|
|
14
|
-
Custom = 4
|
|
15
|
-
}
|
|
16
|
-
export declare enum DefaultReflectionMode {
|
|
17
|
-
Skybox = 0,
|
|
18
|
-
Custom = 1
|
|
19
|
-
}
|
|
20
|
-
export declare class RendererData {
|
|
21
|
-
private context;
|
|
22
|
-
constructor(context: Context);
|
|
23
|
-
private _currentReflectionId?;
|
|
24
|
-
private sceneLightSettings?;
|
|
25
|
-
private preUpdate;
|
|
26
|
-
private _timevec4;
|
|
27
|
-
get timeVec4(): Vector4;
|
|
28
|
-
get environmentIntensity(): number;
|
|
29
|
-
registerSceneLightSettings(sceneLightSettings: SceneLightSettings): void;
|
|
30
|
-
registerReflection(sourceId: SourceIdentifier, reflectionTexture: Texture): void;
|
|
31
|
-
getReflection(sourceId: SourceIdentifier): LightData | null | undefined;
|
|
32
|
-
enableReflection(sourceId: SourceIdentifier): void;
|
|
33
|
-
disableReflection(sourceId?: SourceIdentifier): void;
|
|
34
|
-
getSceneLightingData(sourceId: SourceIdentifier): Promise<SphericalHarmonicsData>;
|
|
35
|
-
private _waitPromise?;
|
|
36
|
-
private _lighting;
|
|
37
|
-
}
|
|
38
|
-
export declare class LightData {
|
|
39
|
-
get Source(): Texture;
|
|
40
|
-
get Array(): number[] | undefined;
|
|
41
|
-
private _context;
|
|
42
|
-
private _source;
|
|
43
|
-
private _sphericalHarmonics;
|
|
44
|
-
private _sphericalHarmonicsArray?;
|
|
45
|
-
private _ambientScale;
|
|
46
|
-
private _lightProbe?;
|
|
47
|
-
constructor(context: Context, tex: Texture, ambientScale?: number);
|
|
48
|
-
getSphericalHarmonicsArray(intensityFactor?: number): SphericalHarmonicsData | null;
|
|
49
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine_rendererdata.js","sourceRoot":"","sources":["../../src/engine/engine_rendererdata.ts"],"names":[],"mappings":"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"}
|