- Timestamp:
- Jul 10, 2011 5:24:36 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/blt4/packages/vizservers/vtkvis/RpVtkDataSet.cpp
r2201 r2302 8 8 #include <vtkCharArray.h> 9 9 #include <vtkDataSetReader.h> 10 #include <vtkDataSetMapper.h> 10 #include <vtkPolyData.h> 11 #include <vtkStructuredPoints.h> 12 #include <vtkStructuredGrid.h> 13 #include <vtkRectilinearGrid.h> 14 #include <vtkUnstructuredGrid.h> 11 15 #include <vtkProperty.h> 12 16 #include <vtkPointData.h> … … 22 26 _visible(true) 23 27 { 24 _name = name;25 28 _dataRange[0] = 0; 26 29 _dataRange[1] = 1; … … 62 65 { 63 66 vtkSmartPointer<vtkDataSetReader> reader = vtkSmartPointer<vtkDataSetReader>::New(); 67 68 #if defined(WANT_TRACE) && defined(DEBUG) 69 reader->DebugOn(); 70 #endif 71 64 72 reader->SetFileName(filename); 73 reader->ReadAllScalarsOn(); 74 reader->ReadAllVectorsOn(); 65 75 return setData(reader); 66 76 } … … 71 81 bool DataSet::setData(char *data, int nbytes) 72 82 { 83 TRACE("Entering"); 84 73 85 vtkSmartPointer<vtkDataSetReader> reader = vtkSmartPointer<vtkDataSetReader>::New(); 74 86 vtkSmartPointer<vtkCharArray> dataSetString = vtkSmartPointer<vtkCharArray>::New(); 87 88 #if defined(WANT_TRACE) && defined(DEBUG) 89 reader->DebugOn(); 90 dataSetString->DebugOn(); 91 #endif 75 92 76 93 dataSetString->SetArray(data, nbytes, 1); 77 94 reader->SetInputArray(dataSetString); 78 95 reader->ReadFromInputStringOn(); 79 return setData(reader); 96 reader->ReadAllScalarsOn(); 97 reader->ReadAllVectorsOn(); 98 99 bool status = setData(reader); 100 101 TRACE("Leaving"); 102 return status; 80 103 } 81 104 82 105 /** 83 106 * \brief Read dataset using supplied reader 107 * 108 * Pipeline information is removed from the resulting 109 * vtkDataSet, so that the reader and its data can be 110 * released 84 111 */ 85 112 bool DataSet::setData(vtkDataSetReader *reader) … … 87 114 // Force reading data set 88 115 reader->SetLookupTableName(""); 116 reader->Update(); 117 89 118 _dataSet = reader->GetOutput(); 90 _dataSet->Update(); 91 _dataSet->GetScalarRange(_dataRange); 92 93 TRACE("Scalar Range: %.12e, %.12e", _dataRange[0], _dataRange[1]); 94 return true; 95 } 96 97 /** 98 * \brief Read dataset using supplied reader 99 */ 100 bool DataSet::setData(vtkDataSet *ds) 101 { 102 _dataSet = ds; 103 _dataSet->Update(); 119 _dataSet->SetPipelineInformation(NULL); 120 104 121 _dataSet->GetScalarRange(_dataRange); 105 122 _dataSet->GetBounds(_bounds); 106 123 124 TRACE("DataSet class: %s", _dataSet->GetClassName()); 107 125 TRACE("Scalar Range: %.12e, %.12e", _dataRange[0], _dataRange[1]); 126 TRACE("DataSet bounds: %g %g %g %g %g %g", 127 _bounds[0], _bounds[1], 128 _bounds[2], _bounds[3], 129 _bounds[4], _bounds[5]); 108 130 return true; 109 131 } 110 132 111 133 /** 134 * \brief Set DataSet from existing vtkDataSet object 135 * 136 * Pipeline information is removed from the supplied vtkDataSet 137 */ 138 bool DataSet::setData(vtkDataSet *ds) 139 { 140 _dataSet = ds; 141 _dataSet->SetPipelineInformation(NULL); 142 _dataSet->GetScalarRange(_dataRange); 143 _dataSet->GetBounds(_bounds); 144 145 TRACE("DataSet class: %s", _dataSet->GetClassName()); 146 TRACE("Scalar Range: %.12e, %.12e", _dataRange[0], _dataRange[1]); 147 TRACE("DataSet bounds: %g %g %g %g %g %g", 148 _bounds[0], _bounds[1], 149 _bounds[2], _bounds[3], 150 _bounds[4], _bounds[5]); 151 return true; 152 } 153 154 /** 155 * \brief Copy an existing vtkDataSet object 156 * 157 * Pipeline information is not copied from the supplied vtkDataSet 158 * into this DataSet, but pipeline information in the supplied 159 * vtkDataSet is not removed 160 */ 161 vtkDataSet *DataSet::copyData(vtkDataSet *ds) 162 { 163 if (vtkPolyData::SafeDownCast(ds) != NULL) { 164 _dataSet = vtkSmartPointer<vtkPolyData>::New(); 165 _dataSet->DeepCopy(vtkPolyData::SafeDownCast(ds)); 166 } else if (vtkStructuredPoints::SafeDownCast(ds) != NULL) { 167 _dataSet = vtkSmartPointer<vtkStructuredPoints>::New(); 168 _dataSet->DeepCopy(vtkStructuredPoints::SafeDownCast(ds)); 169 } else if (vtkStructuredGrid::SafeDownCast(ds) != NULL) { 170 _dataSet = vtkSmartPointer<vtkStructuredGrid>::New(); 171 _dataSet->DeepCopy(vtkStructuredGrid::SafeDownCast(ds)); 172 } else if (vtkRectilinearGrid::SafeDownCast(ds) != NULL) { 173 _dataSet = vtkSmartPointer<vtkRectilinearGrid>::New(); 174 _dataSet->DeepCopy(vtkRectilinearGrid::SafeDownCast(ds)); 175 } else if (vtkUnstructuredGrid::SafeDownCast(ds) != NULL) { 176 _dataSet = vtkSmartPointer<vtkUnstructuredGrid>::New(); 177 _dataSet->DeepCopy(vtkUnstructuredGrid::SafeDownCast(ds)); 178 } else { 179 ERROR("Unknown data type"); 180 return NULL; 181 } 182 _dataSet->GetScalarRange(_dataRange); 183 _dataSet->GetBounds(_bounds); 184 185 TRACE("DataSet class: %s", _dataSet->GetClassName()); 186 TRACE("Scalar Range: %.12e, %.12e", _dataRange[0], _dataRange[1]); 187 return _dataSet; 188 } 189 190 /** 112 191 * \brief Does DataSet lie in the XY plane (z = 0) 113 192 */ … … 134 213 135 214 /** 215 * \brief Get the underlying VTK DataSet subclass class name 216 */ 217 const char *DataSet::getVtkType() 218 { 219 return _dataSet->GetClassName(); 220 } 221 222 /** 136 223 * \brief Get the range of scalar values in the DataSet 137 224 */ 138 225 void DataSet::getDataRange(double minmax[2]) 139 226 { 140 minmax[0] = _dataRange[0]; 141 minmax[1] = _dataRange[1]; 227 memcpy(minmax, _dataRange, sizeof(double)*2); 228 } 229 230 /** 231 * \brief Get the bounds the DataSet 232 */ 233 void DataSet::getBounds(double bounds[6]) 234 { 235 memcpy(bounds, _bounds, sizeof(double)*6); 142 236 } 143 237
Note: See TracChangeset
for help on using the changeset viewer.