Update three.js to version 0.151.3.
This commit is contained in:
parent
ef3817c998
commit
63bc9333c2
14
package-lock.json
generated
14
package-lock.json
generated
@ -15,7 +15,7 @@
|
||||
"fflate": "0.7.4",
|
||||
"occt-import-js": "0.0.18",
|
||||
"rhino3dm": "8.0.0",
|
||||
"three": "0.150.1",
|
||||
"three": "0.151.3",
|
||||
"web-ifc": "0.0.35"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -5190,9 +5190,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/three": {
|
||||
"version": "0.150.1",
|
||||
"resolved": "https://registry.npmjs.org/three/-/three-0.150.1.tgz",
|
||||
"integrity": "sha512-5C1MqKUWaHYo13BX0Q64qcdwImgnnjSOFgBscOzAo8MYCzEtqfQqorEKMcajnA3FHy1yVlIe9AmaMQ0OQracNA=="
|
||||
"version": "0.151.3",
|
||||
"resolved": "https://registry.npmjs.org/three/-/three-0.151.3.tgz",
|
||||
"integrity": "sha512-+vbuqxFy8kzLeO5MgpBHUvP/EAiecaDwDuOPPDe6SbrZr96kccF0ktLngXc7xA7bzyd3N0t2f6mw3Z9y6JCojQ=="
|
||||
},
|
||||
"node_modules/timers-ext": {
|
||||
"version": "0.1.7",
|
||||
@ -9502,9 +9502,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"three": {
|
||||
"version": "0.150.1",
|
||||
"resolved": "https://registry.npmjs.org/three/-/three-0.150.1.tgz",
|
||||
"integrity": "sha512-5C1MqKUWaHYo13BX0Q64qcdwImgnnjSOFgBscOzAo8MYCzEtqfQqorEKMcajnA3FHy1yVlIe9AmaMQ0OQracNA=="
|
||||
"version": "0.151.3",
|
||||
"resolved": "https://registry.npmjs.org/three/-/three-0.151.3.tgz",
|
||||
"integrity": "sha512-+vbuqxFy8kzLeO5MgpBHUvP/EAiecaDwDuOPPDe6SbrZr96kccF0ktLngXc7xA7bzyd3N0t2f6mw3Z9y6JCojQ=="
|
||||
},
|
||||
"timers-ext": {
|
||||
"version": "0.1.7",
|
||||
|
||||
@ -80,7 +80,7 @@
|
||||
"fflate": "0.7.4",
|
||||
"occt-import-js": "0.0.18",
|
||||
"rhino3dm": "8.0.0",
|
||||
"three": "0.150.1",
|
||||
"three": "0.151.3",
|
||||
"web-ifc": "0.0.35"
|
||||
},
|
||||
"eslintConfig": {
|
||||
|
||||
@ -189,7 +189,7 @@ export class Importer3dm extends ImporterBase
|
||||
|
||||
let materialIndex = this.GetMaterialIndex (rhinoDoc, rhinoObject, rhinoInstanceReferences);
|
||||
let threeJson = rhinoMesh.toThreejsJSON ();
|
||||
let mesh = ConvertThreeGeometryToMesh (threeJson.data, materialIndex);
|
||||
let mesh = ConvertThreeGeometryToMesh (threeJson.data, materialIndex, null);
|
||||
mesh.SetName (rhinoAttributes.name);
|
||||
|
||||
let userStrings = rhinoAttributes.getUserStrings ();
|
||||
|
||||
@ -403,7 +403,7 @@ export class ImporterFcstd extends ImporterBase
|
||||
object.color.a
|
||||
);
|
||||
}
|
||||
let mesh = ConvertThreeGeometryToMesh (resultMesh, materialIndex);
|
||||
let mesh = ConvertThreeGeometryToMesh (resultMesh, materialIndex, null);
|
||||
if (object.shapeName !== null) {
|
||||
let indexString = objectMeshIndex.toString ().padStart (3, '0');
|
||||
mesh.SetName (object.shapeName + ' ' + indexString);
|
||||
|
||||
@ -104,7 +104,7 @@ export class ImporterOcct extends ImporterBase
|
||||
let color = RGBColorFromFloatComponents (occtMesh.color[0], occtMesh.color[1], occtMesh.color[2]);
|
||||
materialIndex = colorToMaterial.GetMaterialIndex (color.r, color.g, color.b, null);
|
||||
}
|
||||
let mesh = ConvertThreeGeometryToMesh (occtMesh, materialIndex);
|
||||
let mesh = ConvertThreeGeometryToMesh (occtMesh, materialIndex, null);
|
||||
if (occtMesh.name) {
|
||||
mesh.SetName (occtMesh.name);
|
||||
}
|
||||
|
||||
@ -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 } from '../threejs/threeutils.js';
|
||||
import { ConvertThreeColorToColor, ConvertThreeGeometryToMesh, ThreeLinearToSRGBColorConverter } from '../threejs/threeutils.js';
|
||||
import { ImporterBase } from './importerbase.js';
|
||||
|
||||
import * as THREE from 'three';
|
||||
@ -21,6 +21,8 @@ export class ImporterThreeBase extends ImporterBase
|
||||
constructor ()
|
||||
{
|
||||
super ();
|
||||
|
||||
this.colorConverter = null;
|
||||
}
|
||||
|
||||
CreateLoader (manager)
|
||||
@ -155,7 +157,7 @@ export class ImporterThreeBase extends ImporterBase
|
||||
{
|
||||
let mesh = null;
|
||||
if (Array.isArray (threeMesh.material)) {
|
||||
mesh = ConvertThreeGeometryToMesh (threeMesh.geometry, null);
|
||||
mesh = ConvertThreeGeometryToMesh (threeMesh.geometry, null, this.colorConverter);
|
||||
if (threeMesh.geometry.attributes.color === undefined || threeMesh.geometry.attributes.color === null) {
|
||||
let materialIndices = [];
|
||||
for (let i = 0; i < threeMesh.material.length; i++) {
|
||||
@ -179,7 +181,7 @@ export class ImporterThreeBase extends ImporterBase
|
||||
}
|
||||
} else {
|
||||
const materialIndex = this.FindOrCreateMaterial (threeMesh.material);
|
||||
mesh = ConvertThreeGeometryToMesh (threeMesh.geometry, materialIndex);
|
||||
mesh = ConvertThreeGeometryToMesh (threeMesh.geometry, materialIndex, this.colorConverter);
|
||||
}
|
||||
if (threeMesh.name !== undefined && threeMesh.name !== null) {
|
||||
mesh.SetName (threeMesh.name);
|
||||
@ -252,12 +254,12 @@ export class ImporterThreeBase extends ImporterBase
|
||||
|
||||
let material = new PhongMaterial ();
|
||||
material.name = threeMaterial.name;
|
||||
material.color = ConvertThreeColorToColor (threeMaterial.color);
|
||||
material.color = this.ConvertThreeColor (threeMaterial.color);
|
||||
material.opacity = threeMaterial.opacity;
|
||||
material.transparent = threeMaterial.transparent;
|
||||
material.alphaTest = threeMaterial.alphaTest;
|
||||
if (threeMaterial.type === 'MeshPhongMaterial') {
|
||||
material.specular = ConvertThreeColorToColor (threeMaterial.specular);
|
||||
material.specular = this.ConvertThreeColor (threeMaterial.specular);
|
||||
material.shininess = threeMaterial.shininess / 100.0;
|
||||
}
|
||||
material.diffuseMap = CreateTexture (threeMaterial.map, this.objectUrlToFileName);
|
||||
@ -266,6 +268,14 @@ export class ImporterThreeBase extends ImporterBase
|
||||
|
||||
return material;
|
||||
}
|
||||
|
||||
ConvertThreeColor (threeColor)
|
||||
{
|
||||
if (this.colorConverter !== null) {
|
||||
threeColor = this.colorConverter.Convert (threeColor);
|
||||
}
|
||||
return ConvertThreeColorToColor (threeColor);
|
||||
}
|
||||
}
|
||||
|
||||
export class ImporterThreeFbx extends ImporterThreeBase
|
||||
@ -273,6 +283,7 @@ export class ImporterThreeFbx extends ImporterThreeBase
|
||||
constructor ()
|
||||
{
|
||||
super ();
|
||||
this.colorConverter = new ThreeLinearToSRGBColorConverter ();
|
||||
}
|
||||
|
||||
CanImportExtension (extension)
|
||||
|
||||
@ -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 { HasHighpDriverIssue, GetShadingType, ConvertThreeColorToColor, ConvertColorToThreeColor, ConvertThreeGeometryToMesh, DisposeThreeObjects, ShadingType } from './threejs/threeutils.js';
|
||||
import { ThreeColorConverter, ThreeLinearToSRGBColorConverter, 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';
|
||||
@ -282,6 +282,8 @@ export {
|
||||
ThreeNodeTree,
|
||||
ConvertModelToThreeObject,
|
||||
ThreeModelLoader,
|
||||
ThreeColorConverter,
|
||||
ThreeLinearToSRGBColorConverter,
|
||||
HasHighpDriverIssue,
|
||||
GetShadingType,
|
||||
ConvertThreeColorToColor,
|
||||
|
||||
@ -89,6 +89,22 @@ export function GetShadingType (model)
|
||||
}
|
||||
}
|
||||
|
||||
export class ThreeColorConverter
|
||||
{
|
||||
Convert (color)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export class ThreeLinearToSRGBColorConverter extends ThreeColorConverter
|
||||
{
|
||||
Convert (color)
|
||||
{
|
||||
return new THREE.Color ().copyLinearToSRGB (color);
|
||||
}
|
||||
}
|
||||
|
||||
export function ConvertThreeColorToColor (threeColor)
|
||||
{
|
||||
return RGBColorFromFloatComponents (threeColor.r, threeColor.g, threeColor.b);
|
||||
@ -103,7 +119,7 @@ export function ConvertColorToThreeColor (color)
|
||||
);
|
||||
}
|
||||
|
||||
export function ConvertThreeGeometryToMesh (threeGeometry, materialIndex)
|
||||
export function ConvertThreeGeometryToMesh (threeGeometry, materialIndex, colorConverter)
|
||||
{
|
||||
let mesh = new Mesh ();
|
||||
|
||||
@ -122,6 +138,9 @@ export function ConvertThreeGeometryToMesh (threeGeometry, materialIndex)
|
||||
let colorItemSize = threeGeometry.attributes.color.itemSize || 3;
|
||||
for (let i = 0; i < colors.length; i += colorItemSize) {
|
||||
let threeColor = new THREE.Color (colors[i], colors[i + 1], colors[i + 2]);
|
||||
if (colorConverter !== null) {
|
||||
threeColor = colorConverter.Convert (threeColor);
|
||||
}
|
||||
mesh.AddVertexColor (ConvertThreeColorToColor (threeColor));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user