Changeset 2459
- Timestamp:
- Sep 2, 2011 1:08:15 AM (13 years ago)
- Location:
- trunk/packages/vizservers/vtkvis
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/vtkvis/RpContour2D.cpp
r2423 r2459 31 31 _numContours(numContours) 32 32 { 33 _edgeColor[0] = _color[0]; 34 _edgeColor[1] = _color[0]; 35 _edgeColor[2] = _color[0]; 36 _lighting = false; 33 37 } 34 38 … … 38 42 _contours(contours) 39 43 { 44 _edgeColor[0] = _color[0]; 45 _edgeColor[1] = _color[0]; 46 _edgeColor[2] = _color[0]; 47 _lighting = false; 40 48 } 41 49 … … 48 56 TRACE("Deleting Contour2D with NULL DataSet"); 49 57 #endif 50 }51 52 /**53 * \brief Create and initialize a VTK Prop to render isolines54 */55 void Contour2D::initProp()56 {57 if (_prop == NULL) {58 _prop = vtkSmartPointer<vtkActor>::New();59 vtkProperty *property = getActor()->GetProperty();60 property->EdgeVisibilityOn();61 property->SetEdgeColor(_edgeColor[0], _edgeColor[1], _edgeColor[2]);62 property->SetLineWidth(_edgeWidth);63 property->SetOpacity(_opacity);64 property->SetAmbient(.2);65 property->LightingOff();66 }67 58 } 68 59 … … 178 169 _contourMapper = vtkSmartPointer<vtkPolyDataMapper>::New(); 179 170 _contourMapper->SetResolveCoincidentTopologyToPolygonOffset(); 171 _contourMapper->ScalarVisibilityOff(); 180 172 vtkSmartPointer<vtkStripper> stripper = vtkSmartPointer<vtkStripper>::New(); 181 173 stripper->SetInputConnection(_contourFilter->GetOutputPort()); -
trunk/packages/vizservers/vtkvis/RpContour2D.h
r2402 r2459 53 53 double vectorComponentRange[3][2]); 54 54 55 virtual void setColor(float color[3]) 56 { 57 VtkGraphicsObject::setColor(color); 58 VtkGraphicsObject::setEdgeColor(color); 59 } 60 61 virtual void setEdgeColor(float color[3]) 62 { 63 setColor(color); 64 } 65 55 66 private: 56 67 Contour2D(); 57 68 58 virtual void initProp();59 69 virtual void update(); 60 70 -
trunk/packages/vizservers/vtkvis/RpContour3D.cpp
r2402 r2459 54 54 TRACE("Deleting Contour3D with NULL DataSet"); 55 55 #endif 56 }57 58 /**59 * \brief Create and initialize a VTK Prop to render isosurfaces60 */61 void Contour3D::initProp()62 {63 if (_prop == NULL) {64 _prop = vtkSmartPointer<vtkActor>::New();65 vtkProperty *property = getActor()->GetProperty();66 property->EdgeVisibilityOff();67 property->SetColor(_color[0], _color[1], _color[2]);68 property->SetEdgeColor(_edgeColor[0], _edgeColor[1], _edgeColor[2]);69 property->SetLineWidth(_edgeWidth);70 property->SetOpacity(_opacity);71 property->SetAmbient(.2);72 if (!_lighting)73 property->LightingOff();74 }75 56 } 76 57 -
trunk/packages/vizservers/vtkvis/RpContour3D.h
r2402 r2459 70 70 Contour3D(); 71 71 72 virtual void initProp();73 72 virtual void update(); 74 73 -
trunk/packages/vizservers/vtkvis/RpHeightMap.cpp
r2457 r2459 138 138 _contourActor = vtkSmartPointer<vtkActor>::New(); 139 139 _contourActor->GetProperty()->SetOpacity(_opacity); 140 _contourActor->GetProperty()->SetColor(_contourEdgeColor[0], 141 _contourEdgeColor[1], 142 _contourEdgeColor[2]); 140 143 _contourActor->GetProperty()->SetEdgeColor(_contourEdgeColor[0], 141 144 _contourEdgeColor[1], 142 145 _contourEdgeColor[2]); 143 146 _contourActor->GetProperty()->SetLineWidth(_contourEdgeWidth); 144 _contourActor->GetProperty()->EdgeVisibilityO n();147 _contourActor->GetProperty()->EdgeVisibilityOff(); 145 148 _contourActor->GetProperty()->SetAmbient(.2); 146 149 _contourActor->GetProperty()->LightingOff(); 150 } 151 if (_prop == NULL) { 152 _prop = vtkSmartPointer<vtkAssembly>::New(); 153 getAssembly()->AddPart(_dsActor); 154 getAssembly()->AddPart(_contourActor); 147 155 } 148 156 } … … 168 176 if (_dsMapper == NULL) { 169 177 _dsMapper = vtkSmartPointer<vtkDataSetMapper>::New(); 178 // Map scalars through lookup table regardless of type 179 _dsMapper->SetColorModeToMapScalars(); 170 180 } 171 181 … … 407 417 if (_contourMapper == NULL) { 408 418 _contourMapper = vtkSmartPointer<vtkPolyDataMapper>::New(); 419 _contourMapper->ScalarVisibilityOff(); 409 420 _contourMapper->SetResolveCoincidentTopologyToPolygonOffset(); 410 421 vtkSmartPointer<vtkStripper> stripper = vtkSmartPointer<vtkStripper>::New(); … … 415 426 416 427 _dsActor->SetMapper(_dsMapper); 417 418 if (_prop == NULL) {419 _prop = vtkSmartPointer<vtkAssembly>::New();420 getAssembly()->AddPart(_dsActor);421 getAssembly()->AddPart(_contourActor);422 }423 428 424 429 _dsMapper->Update(); … … 789 794 _contourEdgeColor[1] = color[1]; 790 795 _contourEdgeColor[2] = color[2]; 791 if (_contourActor != NULL) 796 if (_contourActor != NULL) { 797 _contourActor->GetProperty()->SetColor(_contourEdgeColor[0], 798 _contourEdgeColor[1], 799 _contourEdgeColor[2]); 792 800 _contourActor->GetProperty()->SetEdgeColor(_contourEdgeColor[0], 793 801 _contourEdgeColor[1], 794 802 _contourEdgeColor[2]); 803 } 795 804 } 796 805 -
trunk/packages/vizservers/vtkvis/RpLIC.cpp
r2404 r2459 18 18 #include <vtkPainterPolyDataMapper.h> 19 19 #include <vtkDataSetSurfaceFilter.h> 20 #include <vtkCutter.h> 21 #include <vtkImageMask.h> 22 #include <vtkImageCast.h> 20 23 21 24 #include "RpLIC.h" … … 106 109 } 107 110 111 // Need to convert to vtkImageData 108 112 double bounds[6]; 109 113 ds->GetBounds(bounds); … … 116 120 if (ySize < xSize && ySize < zSize) 117 121 minDir = 1; 118 // Sample a plane within the grid bounding box119 122 if (_probeFilter == NULL) 120 123 _probeFilter = vtkSmartPointer<vtkProbeFilter>::New(); 121 _probeFilter->SetSource(ds); 124 125 if (!_dataSet->is2D()) { 126 // Sample a plane within the grid bounding box 127 vtkSmartPointer<vtkCutter> cutter = vtkSmartPointer<vtkCutter>::New(); 128 if (_cutPlane == NULL) { 129 _cutPlane = vtkSmartPointer<vtkPlane>::New(); 130 } 131 if (minDir == 0) { 132 _cutPlane->SetNormal(1, 0, 0); 133 _cutPlane->SetOrigin(bounds[0] + (bounds[1]-bounds[0])/2., 134 0, 135 0); 136 } else if (minDir == 1) { 137 _cutPlane->SetNormal(0, 1, 0); 138 _cutPlane->SetOrigin(0, 139 bounds[2] + (bounds[3]-bounds[2])/2., 140 0); 141 } else { 142 _cutPlane->SetNormal(0, 0, 1); 143 _cutPlane->SetOrigin(0, 144 0, 145 bounds[4] + (bounds[5]-bounds[4])/2.); 146 } 147 cutter->SetInput(ds); 148 cutter->SetCutFunction(_cutPlane); 149 _probeFilter->SetSourceConnection(cutter->GetOutputPort()); 150 } else { 151 _probeFilter->SetSource(ds); 152 } 153 122 154 vtkSmartPointer<vtkImageData> imageData = vtkSmartPointer<vtkImageData>::New(); 123 155 int xdim, ydim, zdim; … … 165 197 if (_mapper == NULL) { 166 198 _mapper = vtkSmartPointer<vtkDataSetMapper>::New(); 167 } 168 _mapper->SetInputConnection(_lic->GetOutputPort()); 199 _mapper->SetColorModeToMapScalars(); 200 } 201 _lic->Update(); 202 vtkSmartPointer<vtkImageCast> cast = vtkSmartPointer<vtkImageCast>::New(); 203 cast->SetInputConnection(_probeFilter->GetOutputPort()); 204 cast->SetInputArrayToProcess(0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_POINTS, 205 _probeFilter->GetValidPointMaskArrayName()); 206 cast->SetOutputScalarTypeToUnsignedChar(); 207 vtkSmartPointer<vtkImageMask> mask = vtkSmartPointer<vtkImageMask>::New(); 208 mask->SetInputConnection(0, _lic->GetOutputPort()); 209 mask->SetInputConnection(1, cast->GetOutputPort()); 210 _mapper->SetInputConnection(mask->GetOutputPort()); 169 211 } else { 170 212 // DataSet is a PolyData … … 243 285 double bounds[6]; 244 286 assert(vtkDataSet::SafeDownCast(_probeFilter->GetSource()) != NULL); 245 vtkDataSet::SafeDownCast(_probeFilter->GetSource())->GetBounds(bounds);287 _dataSet->getBounds(bounds); 246 288 int dim = 128; 247 289 … … 253 295 (bounds[3]-bounds[2])/((double)(dim-1)), 254 296 (bounds[5]-bounds[4])/((double)(dim-1))); 297 if (_cutPlane != NULL) { 298 _cutPlane->SetNormal(1, 0, 0); 299 _cutPlane->SetOrigin(bounds[0] + (bounds[1]-bounds[0])*ratio, 0, 0); 300 } 255 301 break; 256 302 case Y_AXIS: … … 260 306 0, 261 307 (bounds[5]-bounds[4])/((double)(dim-1))); 308 if (_cutPlane != NULL) { 309 _cutPlane->SetNormal(0, 1, 0); 310 _cutPlane->SetOrigin(0, bounds[2] + (bounds[3]-bounds[2])*ratio, 0); 311 } 262 312 break; 263 313 case Z_AXIS: … … 267 317 (bounds[3]-bounds[2])/((double)(dim-1)), 268 318 0); 319 if (_cutPlane != NULL) { 320 _cutPlane->SetNormal(0, 0, 1); 321 _cutPlane->SetOrigin(0, 0, bounds[4] + (bounds[5]-bounds[4])*ratio); 322 } 269 323 break; 270 324 default: … … 305 359 } 306 360 361 if (_lic != NULL) 362 _lic->Update(); 363 307 364 if (_mapper != NULL) 308 365 _mapper->Update(); … … 330 387 _lut = vtkSmartPointer<vtkLookupTable>::New(); 331 388 if (_mapper != NULL) { 332 _mapper->UseLookupTableScalarRangeO n();389 _mapper->UseLookupTableScalarRangeOff(); 333 390 _mapper->SetLookupTable(_lut); 334 391 } -
trunk/packages/vizservers/vtkvis/RpLIC.h
r2402 r2459 18 18 #include <vtkMapper.h> 19 19 #include <vtkLookupTable.h> 20 #include <vtkPlane.h> 20 21 21 22 #include "ColorMap.h" … … 77 78 vtkSmartPointer<vtkExtractVOI> _volumeSlicer; 78 79 vtkSmartPointer<vtkProbeFilter> _probeFilter; 80 vtkSmartPointer<vtkPlane> _cutPlane; 79 81 vtkSmartPointer<vtkImageDataLIC2D> _lic; 80 82 vtkSmartPointer<vtkSurfaceLICPainter> _painter; -
trunk/packages/vizservers/vtkvis/RpPolyData.cpp
r2423 r2459 47 47 void PolyData::initProp() 48 48 { 49 if (_prop == NULL) { 50 _prop = vtkSmartPointer<vtkActor>::New(); 51 vtkProperty *property = getActor()->GetProperty(); 52 property->EdgeVisibilityOn(); 53 property->SetColor(_color[0], _color[1], _color[2]); 54 property->SetEdgeColor(_edgeColor[0], _edgeColor[1], _edgeColor[2]); 55 property->SetLineWidth(_edgeWidth); 56 property->SetOpacity(_opacity); 57 property->SetAmbient(.2); 58 if (!_lighting) 59 property->LightingOff(); 60 } 49 VtkGraphicsObject::initProp(); 50 getActor()->GetProperty()->EdgeVisibilityOn(); 61 51 } 62 52 -
trunk/packages/vizservers/vtkvis/RpPseudoColor.cpp
r2423 r2459 46 46 47 47 /** 48 * \brief Create and initialize a VTK Prop to render the colormapped dataset49 */50 void PseudoColor::initProp()51 {52 if (_prop == NULL) {53 _prop = vtkSmartPointer<vtkActor>::New();54 vtkProperty *property = getActor()->GetProperty();55 property->SetOpacity(_opacity);56 property->SetEdgeColor(_edgeColor[0], _edgeColor[1], _edgeColor[2]);57 property->SetLineWidth(_edgeWidth);58 property->EdgeVisibilityOff();59 property->SetAmbient(.2);60 if (!_lighting)61 property->LightingOff();62 }63 }64 65 /**66 48 * \brief Internal method to set up pipeline after a state change 67 49 */ … … 76 58 if (_dsMapper == NULL) { 77 59 _dsMapper = vtkSmartPointer<vtkDataSetMapper>::New(); 60 // Map scalars through lookup table regardless of type 61 _dsMapper->SetColorModeToMapScalars(); 78 62 } 79 63 -
trunk/packages/vizservers/vtkvis/RpPseudoColor.h
r2423 r2459 54 54 55 55 private: 56 virtual void initProp();57 56 virtual void update(); 58 57 -
trunk/packages/vizservers/vtkvis/RpVtkGraphicsObject.h
r2423 r2459 590 590 { 591 591 for (int i = 0; i < 3; i++) 592 _ color[i] = color[i];592 _edgeColor[i] = color[i]; 593 593 if (getActor() != NULL) { 594 594 getActor()->GetProperty()->SetEdgeColor(color[0], color[1], color[2]); … … 725 725 _prop = vtkSmartPointer<vtkActor>::New(); 726 726 vtkProperty *property = getActor()->GetProperty(); 727 property->SetColor(_color[0], _color[1], _color[2]); 728 property->SetEdgeColor(_edgeColor[0], _edgeColor[1], _edgeColor[2]); 729 property->SetLineWidth(_edgeWidth); 730 property->SetPointSize(_pointSize); 727 731 property->EdgeVisibilityOff(); 728 732 property->SetOpacity(_opacity); -
trunk/packages/vizservers/vtkvis/RpVtkRenderer.cpp
r2455 r2459 1907 1907 * \brief Set the RGB isoline color for the specified DataSet 1908 1908 */ 1909 void Renderer::setContour2D EdgeColor(const DataSetId& id, float color[3])1909 void Renderer::setContour2DColor(const DataSetId& id, float color[3]) 1910 1910 { 1911 1911 Contour2DHashmap::iterator itr; … … 1925 1925 1926 1926 do { 1927 itr->second->set EdgeColor(color);1927 itr->second->setColor(color); 1928 1928 } while (doAll && ++itr != _contour2Ds.end()); 1929 1929 -
trunk/packages/vizservers/vtkvis/RpVtkRenderer.h
r2455 r2459 273 273 void setContour2DScale(const DataSetId& id, double scale[3]); 274 274 275 void setContour2D EdgeColor(const DataSetId& id, float color[3]);275 void setContour2DColor(const DataSetId& id, float color[3]); 276 276 277 277 void setContour2DEdgeWidth(const DataSetId& id, float edgeWidth); -
trunk/packages/vizservers/vtkvis/RpVtkRendererCmd.cpp
r2455 r2459 752 752 if (objc == 6) { 753 753 const char *name = Tcl_GetString(objv[5]); 754 g_renderer->setContour2D EdgeColor(name, color);755 } else { 756 g_renderer->setContour2D EdgeColor("all", color);754 g_renderer->setContour2DColor(name, color); 755 } else { 756 g_renderer->setContour2DColor("all", color); 757 757 } 758 758 return TCL_OK; … … 870 870 static Rappture::CmdSpec contour2dOps[] = { 871 871 {"add", 1, Contour2DAddOp, 4, 5, "oper value ?dataSetName?"}, 872 {"color", 1, Contour2DLineColorOp, 5, 6, "r g b ?dataSetName?"}, 872 873 {"delete", 1, Contour2DDeleteOp, 2, 3, "?dataSetName?"}, 873 874 {"lighting", 3, Contour2DLightingOp, 3, 4, "bool ?dataSetName?"}, -
trunk/packages/vizservers/vtkvis/protocol.txt
r2456 r2459 109 109 contour2d add contourlist <list> <?datasetName?> 110 110 list = {isoval1 isoval2 isoval3...} 111 contour2d color <r> <g> <b> <?datasetName?> 112 synonym for linecolor 111 113 contour2d delete <?datasetName?> 112 114 contour2d lighting <bool> <?datasetName?> 113 115 contour2d linecolor <r> <g> <b> <?datasetName?> 116 synonym for color 114 117 contour2d linewidth <val> <?datasetName?> 115 118 contour2d opacity <val> <?datasetName?>
Note: See TracChangeset
for help on using the changeset viewer.