Changeset 2459 for trunk/packages/vizservers/vtkvis/RpLIC.cpp
- Timestamp:
- Sep 2, 2011 1:08:15 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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 }
Note: See TracChangeset
for help on using the changeset viewer.