@@ -181,3 +181,59 @@ test.onlyIfWebGL('Test vtkTubeFilter rendering', (t) => {
181
181
} ) ;
182
182
renderWindow . render ( ) ;
183
183
} ) ;
184
+
185
+ test ( 'Test vtkTubeFilter numberOfPoints' , ( t ) => {
186
+ const numberOfSides = 3 ;
187
+ const numberOfLines = 2 ;
188
+ const sidesShareVertices = 1 ;
189
+
190
+ const polyData = vtkPolyData . newInstance ( ) ;
191
+
192
+ const points = new Uint32Array ( [
193
+ 0 , 0 , 0 , 1 , 1 , 1 , 2 , 2 , 2 , 3 , 3 , 3 , 4 , 4 , 4 , 5 , 5 , 5 ,
194
+ ] ) ;
195
+ const lines = new Uint32Array ( [ 2 , 0 , 1 , 4 , 2 , 3 , 4 , 5 ] ) ;
196
+
197
+ polyData . getPoints ( ) . setData ( points ) ;
198
+ polyData . getLines ( ) . setData ( lines ) ;
199
+
200
+ const tubeFilter = vtkTubeFilter . newInstance ( ) ;
201
+ tubeFilter . setCapping ( false ) ;
202
+ tubeFilter . setNumberOfSides ( numberOfSides ) ;
203
+
204
+ tubeFilter . setInputData ( polyData ) ;
205
+
206
+ const tubeOutput = tubeFilter . getOutputData ( ) ;
207
+
208
+ // Each segment should have numberOfPoints * sidesShareVertices * numberOfSides
209
+ // sidesShareVertices = 1
210
+ // numberOfSides = 3
211
+ // 2 * 1 * 3 + 4 * 1 * 3
212
+ t . ok (
213
+ tubeOutput . getPoints ( ) . getNumberOfPoints ( ) ===
214
+ 2 * sidesShareVertices * numberOfSides +
215
+ 4 * sidesShareVertices * numberOfSides ,
216
+ 'Make sure the output number of points is correct.'
217
+ ) ;
218
+
219
+ tubeFilter . setCapping ( true ) ;
220
+
221
+ tubeFilter . setInputData ( polyData ) ;
222
+
223
+ const tubeOutputCapping = tubeFilter . getOutputData ( ) ;
224
+
225
+ // Each segment should have numberOfPoints * sidesShareVertices * numberOfSides
226
+ // sidesShareVertices = 1
227
+ // numberOfSides = 3
228
+ // 2 * 1 * 3 + 4 * 1 * 3
229
+ // Caps should have numberOfSides * 2 (each end) * numberOfLines
230
+ t . ok (
231
+ tubeOutputCapping . getPoints ( ) . getNumberOfPoints ( ) ===
232
+ 2 * sidesShareVertices * numberOfSides +
233
+ 4 * sidesShareVertices * numberOfSides +
234
+ numberOfLines * numberOfSides * 2 ,
235
+ 'Make sure the output number of points is correct with capping.'
236
+ ) ;
237
+
238
+ t . end ( ) ;
239
+ } ) ;
0 commit comments