@@ -45,14 +45,16 @@ function vtkIFCImporter(publicAPI, model) {
4545 const pointValues = new Float32Array ( vertices . length / 2 ) ;
4646 const normalsArray = new Float32Array ( vertices . length / 2 ) ;
4747
48- for ( let i = 0 ; i < vertices . length ; i += 6 ) {
49- pointValues [ i / 2 ] = vertices [ i ] ;
50- pointValues [ i / 2 + 1 ] = vertices [ i + 1 ] ;
51- pointValues [ i / 2 + 2 ] = vertices [ i + 2 ] ;
52-
53- normalsArray [ i / 2 ] = vertices [ i + 3 ] ;
54- normalsArray [ i / 2 + 1 ] = vertices [ i + 4 ] ;
55- normalsArray [ i / 2 + 2 ] = vertices [ i + 5 ] ;
48+ for ( let i = 0 , p = 0 ; i < vertices . length ; ) {
49+ pointValues [ p ] = vertices [ i ++ ] ;
50+ pointValues [ p + 1 ] = vertices [ i ++ ] ;
51+ pointValues [ p + 2 ] = vertices [ i ++ ] ;
52+
53+ normalsArray [ p ] = vertices [ i ++ ] ;
54+ normalsArray [ p + 1 ] = vertices [ i ++ ] ;
55+ normalsArray [ p + 2 ] = vertices [ i ++ ] ;
56+
57+ p += 3 ;
5658 }
5759
5860 const nCells = indices . length ;
@@ -91,48 +93,46 @@ function vtkIFCImporter(publicAPI, model) {
9193 const colorArray = new Float32Array ( vertices . length / 2 ) ;
9294
9395 if ( userMatrix ) {
94- const transformMatrix = vtkMatrixBuilder
95- . buildFromRadian ( )
96- . setMatrix ( userMatrix ) ;
96+ for ( let i = 0 , p = 0 ; i < vertices . length ; ) {
97+ pointValues [ p ] = vertices [ i ++ ] ;
98+ pointValues [ p + 1 ] = vertices [ i ++ ] ;
99+ pointValues [ p + 2 ] = vertices [ i ++ ] ;
97100
98- const normalMatrix = vtkMatrixBuilder
99- . buildFromRadian ( )
100- . multiply3x3 ( mat3 . fromMat4 ( mat3 . create ( ) , userMatrix ) ) ;
101-
102- for ( let i = 0 ; i < vertices . length ; i += 6 ) {
103- const point = [ vertices [ i ] , vertices [ i + 1 ] , vertices [ i + 2 ] ] ;
104- const normal = [ vertices [ i + 3 ] , vertices [ i + 4 ] , vertices [ i + 5 ] ] ;
101+ normalsArray [ p ] = vertices [ i ++ ] ;
102+ normalsArray [ p + 1 ] = vertices [ i ++ ] ;
103+ normalsArray [ p + 2 ] = vertices [ i ++ ] ;
105104
106- transformMatrix . apply ( point ) ;
107- normalMatrix . apply ( normal ) ;
105+ colorArray [ p ] = color . x ;
106+ colorArray [ p + 1 ] = color . y ;
107+ colorArray [ p + 2 ] = color . z ;
108108
109- pointValues [ i / 2 ] = point [ 0 ] ;
110- pointValues [ i / 2 + 1 ] = point [ 1 ] ;
111- pointValues [ i / 2 + 2 ] = point [ 2 ] ;
109+ p += 3 ;
110+ }
112111
113- normalsArray [ i / 2 ] = normal [ 0 ] ;
114- normalsArray [ i / 2 + 1 ] = normal [ 1 ] ;
115- normalsArray [ i / 2 + 2 ] = normal [ 2 ] ;
112+ vtkMatrixBuilder
113+ . buildFromRadian ( )
114+ . setMatrix ( userMatrix )
115+ . apply ( pointValues ) ;
116116
117- const colorIndex = i / 2 ;
118- colorArray [ colorIndex ] = color . x ;
119- colorArray [ colorIndex + 1 ] = color . y ;
120- colorArray [ colorIndex + 2 ] = color . z ;
121- }
117+ vtkMatrixBuilder
118+ . buildFromRadian ( )
119+ . multiply3x3 ( mat3 . fromMat4 ( mat3 . create ( ) , userMatrix ) )
120+ . apply ( normalsArray ) ;
122121 } else {
123- for ( let i = 0 ; i < vertices . length ; i += 6 ) {
124- pointValues [ i / 2 ] = vertices [ i ] ;
125- pointValues [ i / 2 + 1 ] = vertices [ i + 1 ] ;
126- pointValues [ i / 2 + 2 ] = vertices [ i + 2 ] ;
127-
128- normalsArray [ i / 2 ] = vertices [ i + 3 ] ;
129- normalsArray [ i / 2 + 1 ] = vertices [ i + 4 ] ;
130- normalsArray [ i / 2 + 2 ] = vertices [ i + 5 ] ;
131-
132- const colorIndex = i / 2 ;
133- colorArray [ colorIndex ] = color . x ;
134- colorArray [ colorIndex + 1 ] = color . y ;
135- colorArray [ colorIndex + 2 ] = color . z ;
122+ for ( let i = 0 , p = 0 ; i < vertices . length ; ) {
123+ pointValues [ p ] = vertices [ i ++ ] ;
124+ pointValues [ p + 1 ] = vertices [ i ++ ] ;
125+ pointValues [ p + 2 ] = vertices [ i ++ ] ;
126+
127+ normalsArray [ p ] = vertices [ i ++ ] ;
128+ normalsArray [ p + 1 ] = vertices [ i ++ ] ;
129+ normalsArray [ p + 2 ] = vertices [ i ++ ] ;
130+
131+ colorArray [ p ] = color . x ;
132+ colorArray [ p + 1 ] = color . y ;
133+ colorArray [ p + 2 ] = color . z ;
134+
135+ p += 3 ;
136136 }
137137 }
138138
0 commit comments