- Timestamp:
- Sep 21, 2011 9:00:24 AM (13 years ago)
- Location:
- trunk/packages/vizservers/vtkvis
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/vtkvis/Makefile.in
r2514 r2533 47 47 DEBUG = #yes 48 48 TRACE = #yes 49 HAVE_GLYPH3D_MAPPER = #yes50 49 USE_CUSTOM_AXES = yes 51 50 USE_GPU_RAYCASTING = yes … … 61 60 ifdef TRACE 62 61 DEFINES += -DWANT_TRACE 63 endif64 ifdef HAVE_GLYPH3D_MAPPER65 DEFINES += -DHAVE_GLYPH3D_MAPPER66 62 endif 67 63 ifdef USE_CUSTOM_AXES -
trunk/packages/vizservers/vtkvis/RpGlyphs.h
r2492 r2533 14 14 #include <vtkProp.h> 15 15 #include <vtkActor.h> 16 #ifdef HAVE_GLYPH3D_MAPPER 16 #include <vtkVersion.h> 17 #if ((VTK_MAJOR_VERSION > 5) || (VTK_MAJOR_VERSION == 5 && VTK_MINOR_VERSION >= 8)) 18 #define HAVE_GLYPH3D_MAPPER 17 19 #include <vtkGlyph3DMapper.h> 18 20 #else -
trunk/packages/vizservers/vtkvis/RpStreamlines.cpp
r2513 r2533 262 262 int cell = rand() % numCells; 263 263 int type = ds->GetCellType(cell); 264 if (type == VTK_VERTEX) { 264 switch (type) { 265 case VTK_VERTEX: { 265 266 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); 266 267 ds->GetCellPoints(cell, ptIds); 267 268 assert(ptIds->GetNumberOfIds() == 1); 268 269 ds->GetPoint(ptIds->GetId(0), pt); 269 } else if (type == VTK_POLY_VERTEX) { 270 } 271 break; 272 case VTK_POLY_VERTEX: { 270 273 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); 271 274 ds->GetCellPoints(cell, ptIds); … … 273 276 int id = rand() % ptIds->GetNumberOfIds(); 274 277 ds->GetPoint(ptIds->GetId(id), pt); 275 } else if (type == VTK_LINE) { 278 } 279 break; 280 case VTK_LINE: { 276 281 double v[2][3]; 277 282 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); … … 282 287 } 283 288 getRandomPointOnLineSegment(pt, v[0], v[1]); 284 } else if (type == VTK_POLY_LINE) { 289 } 290 break; 291 case VTK_POLY_LINE: { 285 292 double v[2][3]; 286 293 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); … … 292 299 } 293 300 getRandomPointOnLineSegment(pt, v[0], v[1]); 294 } else if (type == VTK_TRIANGLE) { 301 } 302 break; 303 case VTK_TRIANGLE: { 295 304 double v[3][3]; 296 305 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); … … 301 310 } 302 311 getRandomPointInTriangle(pt, v[0], v[1], v[2]); 303 } else if (type == VTK_TRIANGLE_STRIP) { 312 } 313 break; 314 case VTK_TRIANGLE_STRIP: { 304 315 double v[3][3]; 305 316 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); … … 311 322 } 312 323 getRandomPointInTriangle(pt, v[0], v[1], v[2]); 313 } else if (type == VTK_POLYGON) { 324 } 325 break; 326 case VTK_POLYGON: { 314 327 vtkPolygon *poly = vtkPolygon::SafeDownCast(ds->GetCell(cell)); 315 328 assert (poly != NULL); … … 323 336 } 324 337 getRandomPointInTriangle(pt, v[0], v[1], v[2]); 325 } else if (type == VTK_QUAD) { 338 } 339 break; 340 case VTK_QUAD: { 326 341 double v[4][3]; 327 342 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); … … 337 352 getRandomPointInTriangle(pt, v[0], v[2], v[3]); 338 353 } 339 } else if (type == VTK_TETRA) { 354 } 355 break; 356 case VTK_TETRA: { 340 357 double v[4][3]; 341 358 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); … … 346 363 } 347 364 getRandomPointInTetrahedron(pt, v[0], v[1], v[2], v[3]); 348 } else if (type == VTK_HEXAHEDRON) { 349 double v[8][3]; 350 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); 351 ds->GetCellPoints(cell, ptIds); 352 assert(ptIds->GetNumberOfIds() == 8); 353 for (int i = 0; i < 8; i++) { 354 ds->GetPoint(ptIds->GetId(i), v[i]); 355 } 356 int tetra = rand() % 5; 357 switch (tetra) { 358 case 0: 359 getRandomPointInTetrahedron(pt, v[0], v[1], v[2], v[5]); 360 break; 361 case 1: 362 getRandomPointInTetrahedron(pt, v[0], v[2], v[7], v[3]); 363 break; 364 case 2: 365 getRandomPointInTetrahedron(pt, v[0], v[5], v[7], v[4]); 366 break; 367 case 3: 368 getRandomPointInTetrahedron(pt, v[5], v[2], v[7], v[6]); 369 break; 370 case 4: 371 default: 372 getRandomPointInTetrahedron(pt, v[0], v[2], v[7], v[5]); 373 break; 374 } 375 } else if (type == VTK_WEDGE) { 365 } 366 break; 367 case VTK_WEDGE: { 376 368 double v[6][3]; 377 369 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); … … 386 378 getRandomPointOnLineSegment(vv[2], v[2], v[5]); 387 379 getRandomPointInTriangle(pt, vv[0], vv[1], vv[2]); 388 } else if (type == VTK_PYRAMID) { 380 } 381 break; 382 case VTK_PYRAMID: { 389 383 double v[5][3]; 390 384 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); … … 400 394 getRandomPointInTetrahedron(pt, v[0], v[2], v[3], v[4]); 401 395 } 402 } else { 396 } 397 break; 398 case VTK_PIXEL: 399 case VTK_VOXEL: { 403 400 double bounds[6]; 404 401 ds->GetCellBounds(cell, bounds); 405 // Note: For pixel/voxel cells, this is exact. However, if the cell is406 // not an axis aligned box, the point may be outside the cell407 402 getRandomPoint(pt, bounds); 403 } 404 break; 405 default: { 406 vtkSmartPointer<vtkIdList> ptIds = vtkSmartPointer<vtkIdList>::New(); 407 vtkSmartPointer<vtkPoints> pts = vtkSmartPointer<vtkPoints>::New(); 408 ds->GetCell(cell)->Triangulate(0, ptIds, pts); 409 if (ptIds->GetNumberOfIds() % 4 == 0) { 410 int tetra = rand() % (ptIds->GetNumberOfIds()/4); 411 double v[4][3]; 412 for (int i = 0; i < 4; i++) { 413 ds->GetPoint(ptIds->GetId(i + tetra * 4), v[i]); 414 } 415 getRandomPointInTetrahedron(pt, v[0], v[1], v[2], v[4]); 416 } else { 417 assert(ptIds->GetNumberOfIds() % 3 == 0); 418 int tri = rand() % (ptIds->GetNumberOfIds()/3); 419 double v[3][3]; 420 for (int i = 0; i < 3; i++) { 421 ds->GetPoint(ptIds->GetId(i + tri * 3), v[i]); 422 } 423 getRandomPointInTriangle(pt, v[0], v[1], v[2]); 424 } 425 } 408 426 } 409 427 } -
trunk/packages/vizservers/vtkvis/RpVtkRenderer.cpp
r2521 r2533 40 40 #include <vtkTextProperty.h> 41 41 #include <vtkOpenGLRenderWindow.h> 42 #include <vtkVersion.h> 42 43 43 44 #include "RpVtkRenderer.h" … … 869 870 double newBounds[6]; 870 871 collectBounds(newBounds, false); 872 #if ((VTK_MAJOR_VERSION > 5) || (VTK_MAJOR_VERSION == 5 && VTK_MINOR_VERSION >= 8)) 873 _cubeAxesActor->SetXAxisRange(newBounds[0], newBounds[1]); 874 _cubeAxesActor->SetYAxisRange(newBounds[2], newBounds[3]); 875 _cubeAxesActor->SetZAxisRange(newBounds[4], newBounds[5]); 876 #endif 871 877 _cubeAxesActor->SetBounds(newBounds); 872 878 TRACE("Bounds (computed): %g %g %g %g %g %g", … … 878 884 newBounds[5]); 879 885 } else { 886 #if ((VTK_MAJOR_VERSION > 5) || (VTK_MAJOR_VERSION == 5 && VTK_MINOR_VERSION >= 8)) 887 _cubeAxesActor->SetXAxisRange(bounds[0], bounds[1]); 888 _cubeAxesActor->SetYAxisRange(bounds[2], bounds[3]); 889 _cubeAxesActor->SetZAxisRange(bounds[4], bounds[5]); 890 #endif 880 891 _cubeAxesActor->SetBounds(bounds); 881 892 TRACE("Bounds (supplied): %g %g %g %g %g %g",
Note: See TracChangeset
for help on using the changeset viewer.