Update three.js to version 0.152.2.

This commit is contained in:
kovacsv 2023-05-07 11:59:54 +02:00
parent 104983ef6e
commit b93581c1bc
9 changed files with 400 additions and 365 deletions

724
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -58,6 +58,7 @@
"update_engine_exports": "run-python3 tools/update_engine_exports.py"
},
"devDependencies": {
"@types/node": "^20.1.0",
"esbuild": "^0.17.0",
"eslint": "^8.29.0",
"eslint-plugin-unused-imports": "^2.0.0",
@ -73,12 +74,11 @@
},
"dependencies": {
"@simonwep/pickr": "1.8.2",
"@types/node": "^18.11.18",
"draco3d": "1.5.6",
"fflate": "0.7.4",
"occt-import-js": "0.0.18",
"rhino3dm": "8.0.0",
"three": "0.151.3",
"three": "0.152.2",
"web-ifc": "0.0.39"
},
"eslintConfig": {

View File

@ -6,7 +6,7 @@ import { Base64DataURIToArrayBuffer, CreateObjectUrl, GetFileExtensionFromMimeTy
import { GetFileExtension, GetFileName } from '../io/fileutils.js';
import { PhongMaterial, TextureMap } from '../model/material.js';
import { Node, NodeType } from '../model/node.js';
import { ConvertThreeColorToColor, ConvertThreeGeometryToMesh, ThreeLinearToSRGBColorConverter } from '../threejs/threeutils.js';
import { ConvertThreeColorToColor, ConvertThreeGeometryToMesh, ThreeLinearToSRGBColorConverter, ThreeSRGBToLinearColorConverter } from '../threejs/threeutils.js';
import { ImporterBase } from './importerbase.js';
import * as THREE from 'three';
@ -386,6 +386,7 @@ export class ImporterThree3mf extends ImporterThreeBase
constructor ()
{
super ();
this.colorConverter = new ThreeSRGBToLinearColorConverter ();
}
CanImportExtension (extension)

View File

@ -63,7 +63,7 @@ import { Triangle } from './model/triangle.js';
import { ParameterListBuilder, ParameterListParser, CreateUrlBuilder, CreateUrlParser, CreateModelUrlParameters, ParameterConverter } from './parameters/parameterlist.js';
import { ModelToThreeConversionParams, ModelToThreeConversionOutput, ThreeConversionStateHandler, ThreeNodeTree, ConvertModelToThreeObject } from './threejs/threeconverter.js';
import { ThreeModelLoader } from './threejs/threemodelloader.js';
import { ThreeColorConverter, ThreeLinearToSRGBColorConverter, HasHighpDriverIssue, GetShadingType, ConvertThreeColorToColor, ConvertColorToThreeColor, ConvertThreeGeometryToMesh, DisposeThreeObjects, ShadingType } from './threejs/threeutils.js';
import { ThreeColorConverter, ThreeLinearToSRGBColorConverter, ThreeSRGBToLinearColorConverter, HasHighpDriverIssue, GetShadingType, ConvertThreeColorToColor, ConvertColorToThreeColor, ConvertThreeGeometryToMesh, DisposeThreeObjects, ShadingType } from './threejs/threeutils.js';
import { Camera, CameraIsEqual3D, CameraMode } from './viewer/camera.js';
import { GetIntegerFromStyle, GetDomElementExternalWidth, GetDomElementExternalHeight, GetDomElementInnerDimensions, GetDomElementClientCoordinates, CreateDomElement, AddDomElement, AddDiv, ClearDomElement, InsertDomElementBefore, InsertDomElementAfter, ShowDomElement, IsDomElementVisible, SetDomElementWidth, SetDomElementHeight, GetDomElementOuterWidth, GetDomElementOuterHeight, SetDomElementOuterWidth, SetDomElementOuterHeight, CreateDiv } from './viewer/domutils.js';
import { EmbeddedViewer, Init3DViewerFromUrlList, Init3DViewerFromFileList, Init3DViewerElements } from './viewer/embeddedviewer.js';
@ -284,6 +284,7 @@ export {
ThreeModelLoader,
ThreeColorConverter,
ThreeLinearToSRGBColorConverter,
ThreeSRGBToLinearColorConverter,
HasHighpDriverIssue,
GetShadingType,
ConvertThreeColorToColor,

View File

@ -21,6 +21,7 @@ export function HasHighpDriverIssue ()
};
let renderer = new THREE.WebGLRenderer (parameters);
renderer.outputColorSpace = THREE.LinearSRGBColorSpace;
renderer.setClearColor ('#ffffff', 1);
renderer.setSize (10, 10);
@ -105,6 +106,14 @@ export class ThreeLinearToSRGBColorConverter extends ThreeColorConverter
}
}
export class ThreeSRGBToLinearColorConverter extends ThreeColorConverter
{
Convert (color)
{
return new THREE.Color ().copySRGBToLinear (color);
}
}
export function ConvertThreeColorToColor (threeColor)
{
return RGBColorFromFloatComponents (threeColor.r, threeColor.g, threeColor.b);

View File

@ -1,6 +1,6 @@
import { SubCoord3D } from '../geometry/coord3d.js';
import { CameraMode } from '../viewer/camera.js';
import { ShadingType } from '../threejs/threeutils.js';
import { ConvertColorToThreeColor, ShadingType } from '../threejs/threeutils.js';
import * as THREE from 'three';
@ -104,12 +104,12 @@ export class ShadingModel
let material = null;
if (this.type === ShadingType.Phong) {
material = new THREE.MeshPhongMaterial ({
color : highlightColor,
color : ConvertColorToThreeColor (highlightColor),
side : THREE.DoubleSide
});
} else if (this.type === ShadingType.Physical) {
material = new THREE.MeshStandardMaterial ({
color : highlightColor,
color : ConvertColorToThreeColor (highlightColor),
side : THREE.DoubleSide
});
}

View File

@ -159,6 +159,8 @@ export class Viewer
{
constructor ()
{
THREE.ColorManagement.enabled = false;
this.canvas = null;
this.renderer = null;
this.scene = null;
@ -186,6 +188,8 @@ export class Viewer
};
this.renderer = new THREE.WebGLRenderer (parameters);
this.renderer.outputColorSpace = THREE.LinearSRGBColorSpace;
if (window.devicePixelRatio) {
this.renderer.setPixelRatio (window.devicePixelRatio);
}

View File

@ -2,6 +2,7 @@ import { GetFileExtension, TransformFileHostUrls } from '../engine/io/fileutils.
import { InputFilesFromFileObjects, InputFilesFromUrls } from '../engine/import/importerfiles.js';
import { ImportErrorCode, ImportSettings } from '../engine/import/importer.js';
import { CameraMode } from '../engine/viewer/camera.js';
import { RGBColor } from '../engine/model/color.js';
import { Viewer } from '../engine/viewer/viewer.js';
import { AddDiv, AddDomElement, ShowDomElement, SetDomElementOuterHeight, CreateDomElement, GetDomElementOuterWidth } from '../engine/viewer/domutils.js';
import { CalculatePopupPositionToScreen, ShowListPopup } from './dialogs.js';
@ -25,8 +26,6 @@ import { MeasureTool } from './measuretool.js';
import { CloseAllDialogs } from './dialog.js';
import { CreateVerticalSplitter } from './splitter.js';
import { EnumeratePlugins, PluginType } from './pluginregistry.js';
import * as THREE from 'three';
import { EnvironmentSettings } from '../engine/viewer/shadingmodel.js';
const WebsiteUIState =
@ -192,7 +191,7 @@ export class Website
this.sidebar = new Sidebar (this.parameters.sidebarDiv, this.settings);
this.modelLoaderUI = new ThreeModelLoaderUI ();
this.themeHandler = new ThemeHandler ();
this.highlightColor = new THREE.Color (0x8ec9f0);
this.highlightColor = new RGBColor (142, 201, 240);
this.uiState = WebsiteUIState.Undefined;
this.layouter = new WebsiteLayouter (this.parameters, this.navigator, this.sidebar, this.viewer, this.measureTool);
this.model = null;

View File

@ -2,12 +2,6 @@ import os
import sys
import shutil
pickrFileMap = [
[os.path.join ('@simonwep', 'pickr', 'LICENSE'), os.path.join ('pickr.license.md')],
[os.path.join ('@simonwep', 'pickr', 'dist', 'pickr.es5.min.js'), os.path.join ('pickr.es5.min.js')],
[os.path.join ('@simonwep', 'pickr', 'dist', 'themes', 'monolith.min.css'), os.path.join ('pickr.monolith.min.css')]
]
dracoFileMap = [
[os.path.join ('draco3d', 'draco_decoder_nodejs.js'), os.path.join ('loaders', 'draco_decoder.js')],
[os.path.join ('draco3d', 'draco_decoder.wasm'), os.path.join ('loaders', 'draco_decoder.wasm')],
@ -51,7 +45,6 @@ def Main (argv):
nodeModulesDir = os.path.join (rootDir, 'node_modules')
libsDir = os.path.join (rootDir, 'libs')
UpdateModule (pickrFileMap, nodeModulesDir, libsDir)
UpdateModule (dracoFileMap, nodeModulesDir, libsDir)
UpdateModule (rhino3dmFileMap, nodeModulesDir, libsDir)
UpdateModule (webIfcFileMap, nodeModulesDir, libsDir)