@@ -52,7 +52,12 @@ function vtkWebGPUPolyDataMapper(publicAPI, model) {
52
52
// and they handle the rendering of that cell array
53
53
const cellMappers = [ ] ;
54
54
let cellOffset = 0 ;
55
- for ( let i = PrimitiveTypes . Points ; i <= PrimitiveTypes . Triangles ; i ++ ) {
55
+ // Handle all primitive types including strips
56
+ for (
57
+ let i = PrimitiveTypes . Points ;
58
+ i <= PrimitiveTypes . TriangleStrips ;
59
+ i ++
60
+ ) {
56
61
if ( prims [ i ] . getNumberOfValues ( ) > 0 ) {
57
62
if ( ! model . primitives [ i ] ) {
58
63
model . primitives [ i ] = publicAPI . createCellArrayMapper ( ) ;
@@ -70,26 +75,44 @@ function vtkWebGPUPolyDataMapper(publicAPI, model) {
70
75
}
71
76
}
72
77
78
+ // Handle edge visibility for both triangles and triangle strips
73
79
if ( model . WebGPUActor . getRenderable ( ) . getProperty ( ) . getEdgeVisibility ( ) ) {
74
- for (
75
- let i = PrimitiveTypes . TriangleEdges ;
76
- i <= PrimitiveTypes . TriangleStripEdges ;
77
- i ++
78
- ) {
79
- if ( prims [ i - 2 ] . getNumberOfValues ( ) > 0 ) {
80
- if ( ! model . primitives [ i ] ) {
81
- model . primitives [ i ] = publicAPI . createCellArrayMapper ( ) ;
82
- }
83
- const cellMapper = model . primitives [ i ] ;
84
- cellMapper . setCellArray ( prims [ i - 2 ] ) ;
85
- cellMapper . setCurrentInput ( poly ) ;
86
- cellMapper . setCellOffset ( model . primitives [ i - 2 ] . getCellOffset ( ) ) ;
87
- cellMapper . setPrimitiveType ( i ) ;
88
- cellMapper . setRenderable ( model . renderable ) ;
89
- cellMappers . push ( cellMapper ) ;
90
- } else {
91
- model . primitives [ i ] = null ;
80
+ // Handle triangle edges
81
+ if ( prims [ PrimitiveTypes . Triangles ] . getNumberOfValues ( ) > 0 ) {
82
+ const i = PrimitiveTypes . TriangleEdges ;
83
+ if ( ! model . primitives [ i ] ) {
84
+ model . primitives [ i ] = publicAPI . createCellArrayMapper ( ) ;
92
85
}
86
+ const cellMapper = model . primitives [ i ] ;
87
+ cellMapper . setCellArray ( prims [ PrimitiveTypes . Triangles ] ) ;
88
+ cellMapper . setCurrentInput ( poly ) ;
89
+ cellMapper . setCellOffset (
90
+ model . primitives [ PrimitiveTypes . Triangles ] . getCellOffset ( )
91
+ ) ;
92
+ cellMapper . setPrimitiveType ( i ) ;
93
+ cellMapper . setRenderable ( model . renderable ) ;
94
+ cellMappers . push ( cellMapper ) ;
95
+ } else {
96
+ model . primitives [ PrimitiveTypes . TriangleEdges ] = null ;
97
+ }
98
+
99
+ // Handle triangle strip edges
100
+ if ( prims [ PrimitiveTypes . TriangleStrips ] . getNumberOfValues ( ) > 0 ) {
101
+ const i = PrimitiveTypes . TriangleStripEdges ;
102
+ if ( ! model . primitives [ i ] ) {
103
+ model . primitives [ i ] = publicAPI . createCellArrayMapper ( ) ;
104
+ }
105
+ const cellMapper = model . primitives [ i ] ;
106
+ cellMapper . setCellArray ( prims [ PrimitiveTypes . TriangleStrips ] ) ;
107
+ cellMapper . setCurrentInput ( poly ) ;
108
+ cellMapper . setCellOffset (
109
+ model . primitives [ PrimitiveTypes . TriangleStrips ] . getCellOffset ( )
110
+ ) ;
111
+ cellMapper . setPrimitiveType ( i ) ;
112
+ cellMapper . setRenderable ( model . renderable ) ;
113
+ cellMappers . push ( cellMapper ) ;
114
+ } else {
115
+ model . primitives [ PrimitiveTypes . TriangleStripEdges ] = null ;
93
116
}
94
117
}
95
118
0 commit comments