@@ -3,89 +3,93 @@ OV.ThreeModelLoader = class
33 constructor ( )
44 {
55 this . importer = new OV . Importer ( ) ;
6- this . importer . AddImporter ( new OV . Importer3dm ( ) ) ;
6+ this . importer . AddImporter ( new OV . Importer3dm ( ) ) ;
77 this . callbacks = null ;
8- this . inProgress = false ;
8+ this . inProgress = false ;
9+ this . hasHighpDriverIssue = OV . HasHighpDriverIssue ( ) ;
910 }
1011
1112 Init ( callbacks )
1213 {
1314 this . callbacks = callbacks ;
1415 }
1516
16- LoadFromUrlList ( urls , settings )
17- {
18- if ( this . inProgress ) {
19- return ;
20- }
17+ LoadFromUrlList ( urls , settings )
18+ {
19+ if ( this . inProgress ) {
20+ return ;
21+ }
2122
22- let obj = this ;
23- this . inProgress = true ;
23+ let obj = this ;
24+ this . inProgress = true ;
2425 this . callbacks . onLoadStart ( ) ;
25- this . importer . LoadFilesFromUrls ( urls , function ( ) {
26- obj . OnFilesLoaded ( settings ) ;
27- } ) ;
28- }
29-
30- LoadFromFileList ( files , settings )
31- {
32- if ( this . inProgress ) {
33- return ;
34- }
26+ this . importer . LoadFilesFromUrls ( urls , function ( ) {
27+ obj . OnFilesLoaded ( settings ) ;
28+ } ) ;
29+ }
30+
31+ LoadFromFileList ( files , settings )
32+ {
33+ if ( this . inProgress ) {
34+ return ;
35+ }
3536
36- let obj = this ;
37- this . inProgress = true ;
37+ let obj = this ;
38+ this . inProgress = true ;
3839 this . callbacks . onLoadStart ( ) ;
39- this . importer . LoadFilesFromFileObjects ( files , function ( ) {
40- obj . OnFilesLoaded ( settings ) ;
41- } ) ;
42- }
40+ this . importer . LoadFilesFromFileObjects ( files , function ( ) {
41+ obj . OnFilesLoaded ( settings ) ;
42+ } ) ;
43+ }
4344
44- ReloadFiles ( settings )
45- {
46- if ( this . inProgress ) {
47- return ;
48- }
45+ ReloadFiles ( settings )
46+ {
47+ if ( this . inProgress ) {
48+ return ;
49+ }
4950
50- this . inProgress = true ;
51+ this . inProgress = true ;
5152 this . callbacks . onLoadStart ( ) ;
52- this . OnFilesLoaded ( settings ) ;
53- }
53+ this . OnFilesLoaded ( settings ) ;
54+ }
5455
55- OnFilesLoaded ( settings )
56- {
57- let obj = this ;
58- this . callbacks . onImportStart ( ) ;
59- OV . RunTaskAsync ( function ( ) {
60- obj . importer . Import ( settings , {
61- onSuccess : function ( importResult ) {
62- obj . OnModelImported ( importResult ) ;
63- } ,
64- onError : function ( importError ) {
65- obj . callbacks . onLoadError ( importError ) ;
66- obj . inProgress = false ;
67- }
68- } ) ;
69- } ) ;
70- }
56+ OnFilesLoaded ( settings )
57+ {
58+ let obj = this ;
59+ this . callbacks . onImportStart ( ) ;
60+ OV . RunTaskAsync ( function ( ) {
61+ obj . importer . Import ( settings , {
62+ onSuccess : function ( importResult ) {
63+ obj . OnModelImported ( importResult ) ;
64+ } ,
65+ onError : function ( importError ) {
66+ obj . callbacks . onLoadError ( importError ) ;
67+ obj . inProgress = false ;
68+ }
69+ } ) ;
70+ } ) ;
71+ }
7172
72- OnModelImported ( importResult )
73- {
74- let obj = this ;
75- this . callbacks . onVisualizationStart ( ) ;
76- OV . ConvertModelToThreeMeshes ( importResult . model , {
77- onTextureLoaded : function ( ) {
78- obj . callbacks . onTextureLoaded ( ) ;
79- } ,
80- onModelLoaded : function ( meshes ) {
81- obj . callbacks . onModelFinished ( importResult , meshes ) ;
82- obj . inProgress = false ;
83- }
84- } ) ;
85- }
73+ OnModelImported ( importResult )
74+ {
75+ let obj = this ;
76+ this . callbacks . onVisualizationStart ( ) ;
77+ let params = new OV . ModelToThreeConversionParams ( ) ;
78+ // https://github.com/kovacsv/Online3DViewer/issues/69
79+ params . forceMediumpForMaterials = this . hasHighpDriverIssue ;
80+ OV . ConvertModelToThreeMeshes ( importResult . model , params , {
81+ onTextureLoaded : function ( ) {
82+ obj . callbacks . onTextureLoaded ( ) ;
83+ } ,
84+ onModelLoaded : function ( meshes ) {
85+ obj . callbacks . onModelFinished ( importResult , meshes ) ;
86+ obj . inProgress = false ;
87+ }
88+ } ) ;
89+ }
8690
87- GetImporter ( )
88- {
89- return this . importer ;
90- }
91+ GetImporter ( )
92+ {
93+ return this . importer ;
94+ }
9195} ;
0 commit comments