- Timestamp:
- Feb 18, 2013, 2:32:14 PM (11 years ago)
- Location:
- branches/nanovis2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/nanovis2
- Property svn:mergeinfo changed
/trunk merged: 3174,3177-3182,3184-3199,3275-3282,3285,3287
- Property svn:mergeinfo changed
-
branches/nanovis2/packages/vizservers/vtkvis/RpGlyphs.cpp
r3175 r3305 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 2 /* 3 * Copyright (C) 20 11, Purdue Research Foundation3 * Copyright (C) 2004-2012 HUBzero Foundation, LLC 4 4 * 5 5 * Author: Leif Delgass <ldelgass@purdue.edu> … … 9 9 #include <cfloat> 10 10 11 #include <vtkVersion.h> 12 #if (VTK_MAJOR_VERSION >= 6) 13 #define USE_VTK6 14 #endif 11 15 #include <vtkDataSet.h> 12 16 #include <vtkPointData.h> … … 171 175 } 172 176 173 #ifdef HAVE_GLYPH3D_MAPPER174 177 if (_glyphMapper != NULL) { 175 178 _glyphMapper->SetSourceConnection(_glyphSource->GetOutputPort()); 176 179 } 177 #else178 if (_glyphGenerator != NULL) {179 _glyphGenerator->SetSourceConnection(_glyphSource->GetOutputPort());180 }181 #endif182 180 183 181 //setQuality(0.8); … … 211 209 break; 212 210 case CYLINDER: { 213 assert (vtkTransformPolyDataFilter::SafeDownCast(_glyphSource) != NULL); 214 assert (vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInput() != NULL); 215 TRACE("gsource input: %s", vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInput()->GetClassName()); 216 vtkSmartPointer<vtkCylinderSource> csource = vtkCylinderSource::SafeDownCast(vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInput()->GetProducerPort()); 211 assert(vtkTransformPolyDataFilter::SafeDownCast(_glyphSource) != NULL); 212 assert(vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInputConnection(0, 0) != NULL); 213 vtkSmartPointer<vtkCylinderSource> csource = vtkCylinderSource::SafeDownCast(vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInputConnection(0, 0)); 217 214 int res = (int)(quality * 25); 218 215 if (res < 5) res = 5; … … 236 233 vtkDataSet *ds = _dataSet->getVtkDataSet(); 237 234 238 #ifdef HAVE_GLYPH3D_MAPPER239 235 if (_glyphMapper == NULL) { 240 236 _glyphMapper = vtkSmartPointer<vtkGlyph3DMapper>::New(); … … 242 238 _glyphMapper->ScalarVisibilityOn(); 243 239 } 244 #else245 if (_glyphGenerator == NULL) {246 _glyphGenerator = vtkSmartPointer<vtkGlyph3D>::New();247 }248 if (_pdMapper == NULL) {249 _pdMapper = vtkSmartPointer<vtkPolyDataMapper>::New();250 _pdMapper->SetResolveCoincidentTopologyToPolygonOffset();251 _pdMapper->ScalarVisibilityOn();252 _pdMapper->SetInputConnection(_glyphGenerator->GetOutputPort());253 }254 #endif255 240 256 241 initProp(); … … 267 252 cellToPtData = 268 253 vtkSmartPointer<vtkCellDataToPointData>::New(); 254 #ifdef USE_VTK6 255 cellToPtData->SetInputData(ds); 256 #else 269 257 cellToPtData->SetInput(ds); 258 #endif 270 259 //cellToPtData->PassCellDataOn(); 271 260 cellToPtData->Update(); … … 276 265 } 277 266 278 #ifdef HAVE_GLYPH3D_MAPPER 267 #ifdef USE_VTK6 268 _glyphMapper->SetInputData(ds); 269 #else 279 270 _glyphMapper->SetInputConnection(ds->GetProducerPort()); 280 #else281 _glyphGenerator->SetInput(ds);282 271 #endif 283 272 … … 300 289 301 290 // Normalize sizes to [0,1] * ScaleFactor 302 #ifdef HAVE_GLYPH3D_MAPPER303 291 _glyphMapper->SetClamping(_normalizeScale ? 1 : 0); 304 292 _glyphMapper->SetScaleFactor(_scaleFactor * _dataScale); 305 293 _glyphMapper->ScalingOn(); 306 #else307 _glyphGenerator->SetClamping(_normalizeScale ? 1 : 0);308 _glyphGenerator->SetScaleFactor(_scaleFactor * _dataScale);309 _glyphGenerator->ScalingOn();310 #endif311 294 312 295 if (_lut == NULL) { … … 322 305 } 323 306 324 #ifdef HAVE_GLYPH3D_MAPPER325 307 getActor()->SetMapper(_glyphMapper); 326 308 _glyphMapper->Update(); 327 #else328 getActor()->SetMapper(_pdMapper);329 _pdMapper->Update();330 #endif331 309 } 332 310 … … 339 317 if (_normalizeScale != normalize) { 340 318 _normalizeScale = normalize; 341 #ifdef HAVE_GLYPH3D_MAPPER342 319 if (_glyphMapper != NULL) { 343 320 _glyphMapper->SetClamping(_normalizeScale ? 1 : 0); 344 321 } 345 #else 346 if (_glyphGenerator != NULL) { 347 _glyphGenerator->SetClamping(_normalizeScale ? 1 : 0); 348 } 349 #endif 350 } 351 } 352 353 #ifdef HAVE_GLYPH3D_MAPPER 322 } 323 } 324 354 325 /** 355 326 * \brief Turn on/off orienting glyphs from a vector field … … 635 606 } 636 607 637 #else638 639 /**640 * \brief Control how glyphs are scaled641 */642 void Glyphs::setScalingMode(ScalingMode mode)643 {644 _scalingMode = mode;645 if (_glyphGenerator != NULL) {646 switch (mode) {647 case SCALE_BY_SCALAR:648 _glyphGenerator->SetRange(_dataRange);649 _glyphGenerator->SetScaleModeToScaleByScalar();650 break;651 case SCALE_BY_VECTOR_MAGNITUDE:652 _glyphGenerator->SetRange(_vectorMagnitudeRange);653 _glyphGenerator->SetScaleModeToScaleByVector();654 break;655 case SCALE_BY_VECTOR_COMPONENTS: {656 double sizeRange[2];657 sizeRange[0] = _vectorComponentRange[0][0];658 sizeRange[1] = _vectorComponentRange[0][1];659 sizeRange[0] = min2(sizeRange[0], _vectorComponentRange[1][0]);660 sizeRange[1] = max2(sizeRange[1], _vectorComponentRange[1][1]);661 sizeRange[0] = min2(sizeRange[0], _vectorComponentRange[2][0]);662 sizeRange[1] = max2(sizeRange[1], _vectorComponentRange[2][1]);663 _glyphGenerator->SetRange(sizeRange);664 _glyphGenerator->SetScaleModeToScaleByVectorComponents();665 }666 break;667 case SCALING_OFF:668 default:669 _glyphGenerator->SetScaleModeToDataScalingOff();670 }671 }672 }673 674 /**675 * \brief Control how glyphs are colored676 */677 void Glyphs::setColorMode(ColorMode mode)678 {679 _colorMode = mode;680 if (_glyphGenerator != NULL) {681 switch (mode) {682 case COLOR_BY_VECTOR_MAGNITUDE:683 _glyphGenerator->SetColorModeToColorByVector();684 _pdMapper->ScalarVisibilityOn();685 if (_lut != NULL) {686 _lut->SetVectorModeToMagnitude();687 _lut->SetRange(_vectorMagnitudeRange);688 }689 break;690 case COLOR_BY_SCALAR:691 _glyphGenerator->SetColorModeToColorByScalar();692 _pdMapper->ScalarVisibilityOn();693 if (_lut != NULL) {694 _lut->SetRange(_dataRange);695 }696 break;697 case COLOR_CONSTANT:698 _pdMapper->ScalarVisibilityOff();699 break;700 default:701 ERROR("Unsupported ColorMode: %d", mode);702 }703 }704 }705 706 #endif707 708 608 /** 709 609 * \brief Turn on/off orienting glyphs from a vector field … … 711 611 void Glyphs::setOrient(bool state) 712 612 { 713 #ifdef HAVE_GLYPH3D_MAPPER714 613 if (_glyphMapper != NULL) { 715 614 _glyphMapper->SetOrient(state ? 1 : 0); 716 615 } 717 #else718 if (_glyphGenerator != NULL) {719 _glyphGenerator->SetOrient(state ? 1 : 0);720 }721 #endif722 616 } 723 617 … … 728 622 { 729 623 _scaleFactor = scale; 730 #ifdef HAVE_GLYPH3D_MAPPER731 624 if (_glyphMapper != NULL) { 732 625 _glyphMapper->SetScaleFactor(_scaleFactor * _dataScale); 733 626 } 734 #else735 if (_glyphGenerator != NULL) {736 _glyphGenerator->SetScaleFactor(_scaleFactor * _dataScale);737 }738 #endif739 627 } 740 628 … … 767 655 768 656 // Need to update color map ranges and/or active vector field 769 #ifdef HAVE_GLYPH3D_MAPPER770 657 double *rangePtr = _colorFieldRange; 771 658 if (_colorFieldRange[0] > _colorFieldRange[1]) { … … 779 666 } 780 667 setScalingMode(_scalingMode, _scalingFieldName.c_str(), rangePtr); 781 #else782 setColorMode(_colorMode);783 setScalingMode(_scalingMode);784 #endif785 668 } 786 669 … … 805 688 if (_lut == NULL) { 806 689 _lut = vtkSmartPointer<vtkLookupTable>::New(); 807 #ifdef HAVE_GLYPH3D_MAPPER808 690 if (_glyphMapper != NULL) { 809 691 _glyphMapper->UseLookupTableScalarRangeOn(); 810 692 _glyphMapper->SetLookupTable(_lut); 811 693 } 812 #else813 if (_pdMapper != NULL) {814 _pdMapper->UseLookupTableScalarRangeOn();815 _pdMapper->SetLookupTable(_lut);816 }817 #endif818 694 _lut->DeepCopy(cmap->getLookupTable()); 819 695 switch (_colorMode) { … … 872 748 void Glyphs::setClippingPlanes(vtkPlaneCollection *planes) 873 749 { 874 #ifdef HAVE_GLYPH3D_MAPPER875 750 if (_glyphMapper != NULL) { 876 751 _glyphMapper->SetClippingPlanes(planes); 877 752 } 878 #else 879 if (_pdMapper != NULL) { 880 _pdMapper->SetClippingPlanes(planes); 881 } 882 #endif 883 } 753 }
Note: See TracChangeset
for help on using the changeset viewer.