Changeset 2492 for trunk/packages/vizservers/vtkvis
- Timestamp:
- Sep 8, 2011 4:33:52 PM (13 years ago)
- Location:
- trunk/packages/vizservers/vtkvis
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/vtkvis/CmdProc.cpp
r2123 r2492 3 3 * Copyright (C) 2011, Purdue Research Foundation 4 4 * 5 * Author: ?5 * Author: George A. Howlett <gah@purdue.edu> 6 6 */ 7 7 -
trunk/packages/vizservers/vtkvis/CmdProc.h
r2123 r2492 3 3 * Copyright (C) 2011, Purdue Research Foundation 4 4 * 5 * Author: ?5 * Author: George A. Howlett <gah@purdue.edu> 6 6 */ 7 7 -
trunk/packages/vizservers/vtkvis/PPMWriter.cpp
r2260 r2492 3 3 * Copyright (C) 2011, Purdue Research Foundation 4 4 * 5 * Author: ?5 * Author: George A. Howlett <gah@purdue.edu> 6 6 */ 7 7 -
trunk/packages/vizservers/vtkvis/PPMWriter.h
r2100 r2492 3 3 * Copyright (C) 2011, Purdue Research Foundation 4 4 * 5 * Author: ?5 * Author: George A. Howlett <gah@purdue.edu> 6 6 */ 7 7 -
trunk/packages/vizservers/vtkvis/RpGlyphs.cpp
r2467 r2492 35 35 _dataScale(1.0), 36 36 _scaleFactor(1.0), 37 _normalizeScale(true), 37 38 _colorMode(COLOR_BY_SCALAR), 38 39 _colorMap(NULL) … … 230 231 // Normalize sizes to [0,1] * ScaleFactor 231 232 #ifdef HAVE_GLYPH3D_MAPPER 232 _glyphMapper-> ClampingOn();233 _glyphMapper->SetClamping(_normalizeScale ? 1 : 0); 233 234 _glyphMapper->SetScaleFactor(_scaleFactor * _dataScale); 234 235 _glyphMapper->ScalingOn(); 235 236 #else 236 _glyphGenerator-> ClampingOn();237 _glyphGenerator->SetClamping(_normalizeScale ? 1 : 0); 237 238 _glyphGenerator->SetScaleFactor(_scaleFactor * _dataScale); 238 239 _glyphGenerator->ScalingOn(); … … 258 259 _pdMapper->Update(); 259 260 #endif 261 } 262 263 /** 264 * \brief Control if field data range is normalized to [0,1] before 265 * applying scale factor 266 */ 267 void Glyphs::setNormalizeScale(bool normalize) 268 { 269 if (_normalizeScale != normalize) { 270 _normalizeScale = normalize; 271 #ifdef HAVE_GLYPH3D_MAPPER 272 if (_glyphMapper != NULL) { 273 _glyphMapper->SetClamping(_normalizeScale ? 1 : 0); 274 } 275 #else 276 if (_glyphGenerator != NULL) { 277 _glyphGenerator->SetClamping(_normalizeScale ? 1 : 0); 278 } 279 #endif 280 } 260 281 } 261 282 -
trunk/packages/vizservers/vtkvis/RpGlyphs.h
r2467 r2492 77 77 void setScalingMode(ScalingMode mode); 78 78 79 void setNormalizeScale(bool normalize); 80 79 81 void setColorMode(ColorMode mode); 80 82 … … 116 118 double _dataScale; 117 119 double _scaleFactor; 120 bool _normalizeScale; 118 121 ColorMode _colorMode; 119 122 ColorMap *_colorMap; -
trunk/packages/vizservers/vtkvis/RpPseudoColor.cpp
r2459 r2492 31 31 PseudoColor::PseudoColor() : 32 32 VtkGraphicsObject(), 33 _colorMode(COLOR_BY_SCALAR), 33 34 _colorMap(NULL) 34 35 { … … 45 46 } 46 47 48 void PseudoColor::setDataSet(DataSet *dataSet, 49 bool useCumulative, 50 double scalarRange[2], 51 double vectorMagnitudeRange[2], 52 double vectorComponentRange[3][2]) 53 { 54 if (_dataSet != dataSet) { 55 _dataSet = dataSet; 56 57 if (useCumulative) { 58 _dataRange[0] = scalarRange[0]; 59 _dataRange[1] = scalarRange[1]; 60 _vectorMagnitudeRange[0] = vectorMagnitudeRange[0]; 61 _vectorMagnitudeRange[1] = vectorMagnitudeRange[1]; 62 for (int i = 0; i < 3; i++) { 63 _vectorComponentRange[i][0] = vectorComponentRange[i][0]; 64 _vectorComponentRange[i][1] = vectorComponentRange[i][1]; 65 } 66 } else { 67 _dataSet->getScalarRange(_dataRange); 68 _dataSet->getVectorRange(_vectorMagnitudeRange); 69 for (int i = 0; i < 3; i++) { 70 _dataSet->getVectorRange(_vectorComponentRange[i], i); 71 } 72 } 73 74 update(); 75 } 76 } 77 47 78 /** 48 79 * \brief Internal method to set up pipeline after a state change … … 60 91 // Map scalars through lookup table regardless of type 61 92 _dsMapper->SetColorModeToMapScalars(); 93 //_dsMapper->InterpolateScalarsBeforeMappingOn(); 62 94 } 63 95 … … 150 182 setColorMap(ColorMap::getDefault()); 151 183 } 152 //_dsMapper->InterpolateScalarsBeforeMappingOn(); 184 185 setColorMode(_colorMode); 153 186 154 187 initProp(); … … 165 198 _dataRange[0] = scalarRange[0]; 166 199 _dataRange[1] = scalarRange[1]; 200 _vectorMagnitudeRange[0] = vectorMagnitudeRange[0]; 201 _vectorMagnitudeRange[1] = vectorMagnitudeRange[1]; 202 for (int i = 0; i < 3; i++) { 203 _vectorComponentRange[i][0] = vectorComponentRange[i][0]; 204 _vectorComponentRange[i][1] = vectorComponentRange[i][1]; 205 } 167 206 } else if (_dataSet != NULL) { 168 207 _dataSet->getScalarRange(_dataRange); 169 } 170 171 if (_lut != NULL) { 172 _lut->SetRange(_dataRange); 208 _dataSet->getVectorRange(_vectorMagnitudeRange); 209 for (int i = 0; i < 3; i++) { 210 _dataSet->getVectorRange(_vectorComponentRange[i], i); 211 } 212 } 213 214 // Need to update color map ranges and/or active vector field 215 setColorMode(_colorMode); 216 } 217 218 void PseudoColor::setColorMode(ColorMode mode) 219 { 220 _colorMode = mode; 221 if (_dataSet == NULL || _dsMapper == NULL) 222 return; 223 224 vtkDataSet *ds = _dataSet->getVtkDataSet(); 225 226 switch (mode) { 227 case COLOR_BY_SCALAR: { 228 _dsMapper->ScalarVisibilityOn(); 229 _dsMapper->SetScalarModeToDefault(); 230 if (_lut != NULL) { 231 _lut->SetRange(_dataRange); 232 } 233 } 234 break; 235 case COLOR_BY_VECTOR_MAGNITUDE: { 236 _dsMapper->ScalarVisibilityOn(); 237 _dsMapper->SetScalarModeToUsePointFieldData(); 238 if (ds->GetPointData() != NULL && 239 ds->GetPointData()->GetVectors() != NULL) { 240 _dsMapper->SelectColorArray(ds->GetPointData()->GetVectors()->GetName()); 241 } 242 if (_lut != NULL) { 243 _lut->SetRange(_vectorMagnitudeRange); 244 _lut->SetVectorModeToMagnitude(); 245 } 246 } 247 break; 248 case COLOR_BY_VECTOR_X: 249 _dsMapper->ScalarVisibilityOn(); 250 _dsMapper->SetScalarModeToUsePointFieldData(); 251 if (ds->GetPointData() != NULL && 252 ds->GetPointData()->GetVectors() != NULL) { 253 _dsMapper->SelectColorArray(ds->GetPointData()->GetVectors()->GetName()); 254 } 255 if (_lut != NULL) { 256 _lut->SetRange(_vectorComponentRange[0]); 257 _lut->SetVectorModeToComponent(); 258 _lut->SetVectorComponent(0); 259 } 260 break; 261 case COLOR_BY_VECTOR_Y: 262 _dsMapper->ScalarVisibilityOn(); 263 _dsMapper->SetScalarModeToUsePointFieldData(); 264 if (ds->GetPointData() != NULL && 265 ds->GetPointData()->GetVectors() != NULL) { 266 _dsMapper->SelectColorArray(ds->GetPointData()->GetVectors()->GetName()); 267 } 268 if (_lut != NULL) { 269 _lut->SetRange(_vectorComponentRange[1]); 270 _lut->SetVectorModeToComponent(); 271 _lut->SetVectorComponent(1); 272 } 273 break; 274 case COLOR_BY_VECTOR_Z: 275 _dsMapper->ScalarVisibilityOn(); 276 _dsMapper->SetScalarModeToUsePointFieldData(); 277 if (ds->GetPointData() != NULL && 278 ds->GetPointData()->GetVectors() != NULL) { 279 _dsMapper->SelectColorArray(ds->GetPointData()->GetVectors()->GetName()); 280 } 281 if (_lut != NULL) { 282 _lut->SetRange(_vectorComponentRange[2]); 283 _lut->SetVectorModeToComponent(); 284 _lut->SetVectorComponent(2); 285 } 286 break; 287 case COLOR_CONSTANT: 288 default: 289 _dsMapper->ScalarVisibilityOff(); 290 break; 173 291 } 174 292 } … … 201 319 202 320 _lut->DeepCopy(cmap->getLookupTable()); 203 _lut->SetRange(_dataRange); 321 322 switch (_colorMode) { 323 case COLOR_CONSTANT: 324 case COLOR_BY_SCALAR: 325 _lut->SetRange(_dataRange); 326 break; 327 case COLOR_BY_VECTOR_MAGNITUDE: 328 _lut->SetVectorModeToMagnitude(); 329 _lut->SetRange(_vectorMagnitudeRange); 330 break; 331 case COLOR_BY_VECTOR_X: 332 _lut->SetVectorModeToComponent(); 333 _lut->SetVectorComponent(0); 334 _lut->SetRange(_vectorComponentRange[0]); 335 break; 336 case COLOR_BY_VECTOR_Y: 337 _lut->SetVectorModeToComponent(); 338 _lut->SetVectorComponent(1); 339 _lut->SetRange(_vectorComponentRange[1]); 340 break; 341 case COLOR_BY_VECTOR_Z: 342 _lut->SetVectorModeToComponent(); 343 _lut->SetVectorComponent(2); 344 _lut->SetRange(_vectorComponentRange[2]); 345 break; 346 default: 347 break; 348 } 204 349 } 205 350 -
trunk/packages/vizservers/vtkvis/RpPseudoColor.h
r2459 r2492 26 26 class PseudoColor : public VtkGraphicsObject { 27 27 public: 28 enum ColorMode { 29 COLOR_BY_SCALAR, 30 COLOR_BY_VECTOR_MAGNITUDE, 31 COLOR_BY_VECTOR_X, 32 COLOR_BY_VECTOR_Y, 33 COLOR_BY_VECTOR_Z, 34 COLOR_CONSTANT 35 }; 36 28 37 PseudoColor(); 29 38 virtual ~PseudoColor(); … … 34 43 } 35 44 45 virtual void setDataSet(DataSet *dataSet, 46 bool useCumulative, 47 double scalarRange[2], 48 double vectorMagnitudeRange[2], 49 double vectorComponentRange[3][2]); 50 36 51 virtual void setClippingPlanes(vtkPlaneCollection *planes); 52 53 void setColorMode(ColorMode mode); 37 54 38 55 void setColorMap(ColorMap *colorMap); … … 56 73 virtual void update(); 57 74 75 ColorMode _colorMode; 58 76 ColorMap *_colorMap; 77 double _vectorMagnitudeRange[2]; 78 double _vectorComponentRange[3][2]; 59 79 60 80 vtkSmartPointer<vtkLookupTable> _lut; -
trunk/packages/vizservers/vtkvis/RpVtkRenderer.cpp
r2480 r2492 3001 3001 3002 3002 /** 3003 * \brief Controls if field data range is normalized to [0,1] before 3004 * applying scale factor for the given DataSet 3005 */ 3006 void Renderer::setGlyphsNormalizeScale(const DataSetId& id, bool normalize) 3007 { 3008 GlyphsHashmap::iterator itr; 3009 3010 bool doAll = false; 3011 3012 if (id.compare("all") == 0) { 3013 itr = _glyphs.begin(); 3014 doAll = true; 3015 } else { 3016 itr = _glyphs.find(id); 3017 } 3018 if (itr == _glyphs.end()) { 3019 ERROR("Glyphs not found: %s", id.c_str()); 3020 return; 3021 } 3022 3023 do { 3024 itr->second->setNormalizeScale(normalize); 3025 } while (doAll && ++itr != _glyphs.end()); 3026 3027 _renderer->ResetCameraClippingRange(); 3028 _needsRedraw = true; 3029 } 3030 3031 /** 3003 3032 * \brief Set the shape of Glyphs for the given DataSet 3004 3033 */ … … 5554 5583 5555 5584 /** 5585 * \brief Set the RGB color for the specified DataSet 5586 */ 5587 void Renderer::setPseudoColorColor(const DataSetId& id, float color[3]) 5588 { 5589 PseudoColorHashmap::iterator itr; 5590 5591 bool doAll = false; 5592 5593 if (id.compare("all") == 0) { 5594 itr = _pseudoColors.begin(); 5595 doAll = true; 5596 } else { 5597 itr = _pseudoColors.find(id); 5598 } 5599 if (itr == _pseudoColors.end()) { 5600 ERROR("PseudoColor not found: %s", id.c_str()); 5601 return; 5602 } 5603 5604 do { 5605 itr->second->setColor(color); 5606 } while (doAll && ++itr != _pseudoColors.end()); 5607 5608 _needsRedraw = true; 5609 } 5610 5611 /** 5556 5612 * \brief Associate an existing named color map with a PseudoColor for the given DataSet 5557 5613 */ … … 5585 5641 5586 5642 itr->second->setColorMap(cmap); 5643 } while (doAll && ++itr != _pseudoColors.end()); 5644 5645 _needsRedraw = true; 5646 } 5647 5648 /** 5649 * \brief Set the color mode for the specified DataSet 5650 */ 5651 void Renderer::setPseudoColorColorMode(const DataSetId& id, PseudoColor::ColorMode mode) 5652 { 5653 PseudoColorHashmap::iterator itr; 5654 5655 bool doAll = false; 5656 5657 if (id.compare("all") == 0) { 5658 itr = _pseudoColors.begin(); 5659 doAll = true; 5660 } else { 5661 itr = _pseudoColors.find(id); 5662 } 5663 if (itr == _pseudoColors.end()) { 5664 ERROR("PseudoColor not found: %s", id.c_str()); 5665 return; 5666 } 5667 5668 do { 5669 itr->second->setColorMode(mode); 5587 5670 } while (doAll && ++itr != _pseudoColors.end()); 5588 5671 -
trunk/packages/vizservers/vtkvis/RpVtkRenderer.h
r2478 r2492 375 375 void setGlyphsScalingMode(const DataSetId& id, Glyphs::ScalingMode mode); 376 376 377 void setGlyphsNormalizeScale(const DataSetId& id, bool normalize); 378 377 379 void setGlyphsScaleFactor(const DataSetId& id, double scale); 378 380 … … 557 559 void setPseudoColorScale(const DataSetId& id, double scale[3]); 558 560 561 void setPseudoColorColor(const DataSetId& id, float color[3]); 562 559 563 void setPseudoColorEdgeVisibility(const DataSetId& id, bool state); 560 564 … … 572 576 573 577 void setPseudoColorColorMap(const DataSetId& id, const ColorMapId& colorMapId); 578 579 void setPseudoColorColorMode(const DataSetId& id, PseudoColor::ColorMode mode); 574 580 575 581 // Streamlines -
trunk/packages/vizservers/vtkvis/RpVtkRendererCmd.cpp
r2478 r2492 1834 1834 1835 1835 static int 1836 GlyphsNormalizeScaleOp(ClientData clientData, Tcl_Interp *interp, int objc, 1837 Tcl_Obj *const *objv) 1838 { 1839 bool normalize; 1840 if (GetBooleanFromObj(interp, objv[2], &normalize) != TCL_OK) { 1841 return TCL_ERROR; 1842 } 1843 if (objc == 4) { 1844 const char *name = Tcl_GetString(objv[3]); 1845 g_renderer->setGlyphsNormalizeScale(name, normalize); 1846 } else { 1847 g_renderer->setGlyphsNormalizeScale("all", normalize); 1848 } 1849 return TCL_OK; 1850 } 1851 1852 static int 1836 1853 GlyphsOpacityOp(ClientData clientData, Tcl_Interp *interp, int objc, 1837 1854 Tcl_Obj *const *objv) … … 2040 2057 {"linecolor", 5, GlyphsLineColorOp, 5, 6, "r g b ?dataSetName?"}, 2041 2058 {"linewidth", 5, GlyphsLineWidthOp, 3, 4, "width ?dataSetName?"}, 2059 {"normscale", 1, GlyphsNormalizeScaleOp, 3, 4, "bool ?dataSetName?"}, 2042 2060 {"opacity", 2, GlyphsOpacityOp, 3, 4, "value ?dataSetName?"}, 2043 2061 {"orient", 2, GlyphsOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, … … 3532 3550 3533 3551 static int 3552 PseudoColorColorOp(ClientData clientData, Tcl_Interp *interp, int objc, 3553 Tcl_Obj *const *objv) 3554 { 3555 float color[3]; 3556 if (GetFloatFromObj(interp, objv[2], &color[0]) != TCL_OK || 3557 GetFloatFromObj(interp, objv[3], &color[1]) != TCL_OK || 3558 GetFloatFromObj(interp, objv[4], &color[2]) != TCL_OK) { 3559 return TCL_ERROR; 3560 } 3561 if (objc == 6) { 3562 const char *name = Tcl_GetString(objv[5]); 3563 g_renderer->setPseudoColorColor(name, color); 3564 } else { 3565 g_renderer->setPseudoColorColor("all", color); 3566 } 3567 return TCL_OK; 3568 } 3569 3570 static int 3534 3571 PseudoColorColorMapOp(ClientData clientData, Tcl_Interp *interp, int objc, 3535 3572 Tcl_Obj *const *objv) … … 3541 3578 } else { 3542 3579 g_renderer->setPseudoColorColorMap("all", colorMapName); 3580 } 3581 return TCL_OK; 3582 } 3583 3584 static int 3585 PseudoColorColorModeOp(ClientData clientData, Tcl_Interp *interp, int objc, 3586 Tcl_Obj *const *objv) 3587 { 3588 PseudoColor::ColorMode mode; 3589 const char *str = Tcl_GetString(objv[2]); 3590 if (str[0] == 'c' && strcmp(str, "ccolor") == 0) { 3591 mode = PseudoColor::COLOR_CONSTANT; 3592 } else if (str[0] == 's' && strcmp(str, "scalar") == 0) { 3593 mode = PseudoColor::COLOR_BY_SCALAR; 3594 } else if (str[0] == 'v' && strcmp(str, "vmag") == 0) { 3595 mode = PseudoColor::COLOR_BY_VECTOR_MAGNITUDE; 3596 } else if (str[0] == 'v' && strcmp(str, "vx") == 0) { 3597 mode = PseudoColor::COLOR_BY_VECTOR_X; 3598 } else if (str[0] == 'v' && strcmp(str, "vy") == 0) { 3599 mode = PseudoColor::COLOR_BY_VECTOR_Y; 3600 } else if (str[0] == 'v' && strcmp(str, "vz") == 0) { 3601 mode = PseudoColor::COLOR_BY_VECTOR_Z; 3602 } else { 3603 Tcl_AppendResult(interp, "bad color mode option \"", str, 3604 "\": should be one of: 'scalar', 'vmag', 'vx', 'vy', 'vz', 'ccolor'", (char*)NULL); 3605 return TCL_ERROR; 3606 } 3607 if (objc == 4) { 3608 const char *name = Tcl_GetString(objv[3]); 3609 g_renderer->setPseudoColorColorMode(name, mode); 3610 } else { 3611 g_renderer->setPseudoColorColorMode("all", mode); 3543 3612 } 3544 3613 return TCL_OK; … … 3739 3808 static Rappture::CmdSpec pseudoColorOps[] = { 3740 3809 {"add", 1, PseudoColorAddOp, 2, 3, "?dataSetName?"}, 3741 {"colormap", 1, PseudoColorColorMapOp, 3, 4, "colorMapName ?dataSetName?"}, 3810 {"ccolor", 2, PseudoColorColorOp, 5, 6, "r g b ?dataSetName?"}, 3811 {"colormap", 7, PseudoColorColorMapOp, 3, 4, "colorMapName ?dataSetNme?"}, 3812 {"colormode", 7, PseudoColorColorModeOp, 3, 4, "mode ?dataSetNme?"}, 3742 3813 {"delete", 1, PseudoColorDeleteOp, 2, 3, "?dataSetName?"}, 3743 3814 {"edges", 1, PseudoColorEdgeVisibilityOp, 3, 4, "bool ?dataSetName?"}, -
trunk/packages/vizservers/vtkvis/vtkRpCubeAxesActor2D.cpp
r2423 r2492 2 2 3 3 Program: Visualization Toolkit 4 Module: vtkCubeAxesActor2D.c xx4 Module: vtkCubeAxesActor2D.cpp 5 5 6 6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
Note: See TracChangeset
for help on using the changeset viewer.