- Timestamp:
- Mar 24, 2008, 1:04:03 PM (17 years ago)
- Location:
- trunk/vizservers/nanovis
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/vizservers/nanovis/RpDX.cpp
r956 r961 18 18 #include <stdio.h> 19 19 #include <stdlib.h> 20 #include <float.h> 20 21 21 22 using namespace Rappture; 22 23 23 24 DX::DX(const char* filename) : 24 _dataMin( 1e21),25 _dataMax( 1e-21),26 _nzero_min( 1e21),25 _dataMin(FLT_MAX), 26 _dataMax(-FLT_MAX), 27 _nzero_min(FLT_MAX), 27 28 _numAxis(0), 28 29 _axisLen(NULL), … … 65 66 66 67 fprintf(stdout, "_n = %d\n",_n); 68 if (type != 7) { 69 fprintf(stderr, "WARNING: positions is not type float (type=%d)\n" 70 type); 71 fflush(stderr); 72 } 67 73 fprintf(stdout, "_rank = %d\n",_rank); 68 74 fprintf(stdout, "_shape = %d\n",_shape); … … 138 144 139 145 // grab the data array from the dx object and store it in _data 140 float *data = NULL;141 146 dxdata = (Array) DXGetComponentValue((Field) _dxobj, (char *)"data"); 142 data = (float*) DXGetArrayData(dxdata);147 DXGetArrayInfo(dxdata, NULL, &type, NULL, NULL, NULL); 143 148 _data = new float[_n]; 144 149 if (_data == NULL) { … … 147 152 fflush(stdout); 148 153 } 149 memcpy(_data,data,sizeof(float)*_n); 154 155 switch (type) { 156 case TYPE_FLOAT: 157 float *float_data; 158 159 float_data = (float*) DXGetArrayData(dxdata); 160 memcpy(_data, float_data, sizeof(float)*_n); 161 break; 162 case TYPE_DOUBLE: 163 double *double_data; 164 double_data = (double*) DXGetArrayData(dxdata); 165 for (i = 0; i < _n; i++) { 166 fprintf(stderr, "data[%d]=%g\n", i, double_data[i]); 167 _data[i] = double_data[i]; 168 } 169 default: 170 fprintf(stdout, "don't know how to handle data of type %d\n", type); 171 fflush(stdout); 172 } 150 173 151 174 // print debug info 152 for (int lcv = 0, pt = 0; lcv < _n; lcv +=3,pt+=9) {175 for (int lcv = 0, pt = 0; lcv < _n; lcv +=3, pt+=9) { 153 176 fprintf(stdout, 154 177 "(%f,%f,%f)|->% 8e\n(%f,%f,%f)|->% 8e\n(%f,%f,%f)|->% 8e\n", … … 158 181 fflush(stdout); 159 182 } 160 161 183 __collectDataStats(); 162 163 184 } 164 185 … … 195 216 DX::__collectDataStats() 196 217 { 197 _dataMin = 1e21;198 _dataMax = 1e-21;199 _nzero_min = 1e21;218 _dataMin = FLT_MAX; 219 _dataMax = -FLT_MAX; 220 _nzero_min = FLT_MAX; 200 221 201 222 // populate _dataMin, _dataMax, _nzero_min 202 for (int lcv = 0; lcv < _n; lcv =lcv+3) {223 for (int lcv = 0; lcv < _n; lcv++) { 203 224 if (_data[lcv] < _dataMin) { 204 225 _dataMin = _data[lcv]; … … 207 228 _dataMax = _data[lcv]; 208 229 } 209 if ((_data[lcv] != 0) && (_data[lcv] < _nzero_min)) {230 if ((_data[lcv] > 0.0f) && (_data[lcv] < _nzero_min)) { 210 231 _nzero_min = _data[lcv]; 211 232 } 233 } 234 if (_nzero_min == FLT_MAX) { 235 fprintf(stderr, "could not find a positive minimum value\n"); 236 fflush(stderr); 212 237 } 213 238 } -
trunk/vizservers/nanovis/dxReader.cpp
r959 r961 199 199 volPtr->yAxis.SetRange(y0, y0 + (ny * dy)); 200 200 volPtr->zAxis.SetRange(z0, z0 + (nz * dz)); 201 volPtr->wAxis.SetRange( y0, y0 + (ny * dy));201 volPtr->wAxis.SetRange(vmin, vmax); 202 202 volPtr->update_pending = true; 203 203 delete [] data; … … 416 416 volPtr->yAxis.SetRange(y0, y0 + (ny * dy)); 417 417 volPtr->zAxis.SetRange(z0, z0 + (nz * dz)); 418 volPtr->wAxis.SetRange( z0, z0 + (nz * dz));418 volPtr->wAxis.SetRange(vmin, vmax); 419 419 volPtr->update_pending = true; 420 420 delete [] data; … … 560 560 volPtr->zAxis.SetRange(field.rangeMin(Rappture::zaxis), 561 561 field.rangeMax(Rappture::zaxis)); 562 volPtr->wAxis.SetRange(field.rangeMin(Rappture::zaxis), 563 field.rangeMax(Rappture::zaxis)); 562 volPtr->wAxis.SetRange(field.valueMin(), field.valueMax()); 564 563 volPtr->update_pending = true; 565 564 delete [] data; … … 801 800 volPtr->zAxis.SetRange(field.rangeMin(Rappture::zaxis), 802 801 field.rangeMax(Rappture::zaxis)); 803 volPtr->wAxis.SetRange(field.rangeMin(Rappture::zaxis), 804 field.rangeMax(Rappture::zaxis)); 802 volPtr->wAxis.SetRange(field.valueMin(), field.valueMax()); 805 803 volPtr->update_pending = true; 806 804 // TBD.. … … 950 948 volPtr->zAxis.SetRange(field.rangeMin(Rappture::zaxis), 951 949 field.rangeMax(Rappture::zaxis)); 952 volPtr->wAxis.SetRange(field.rangeMin(Rappture::zaxis), 953 field.rangeMax(Rappture::zaxis)); 950 volPtr->wAxis.SetRange(field.valueMin(), field.valueMax()); 954 951 volPtr->update_pending = true; 955 952 // TBD.. -
trunk/vizservers/nanovis/dxReader2.cpp
r959 r961 95 95 volPtr->yAxis.SetRange(origin[1], max[1]); 96 96 volPtr->zAxis.SetRange(origin[2], max[2]); 97 volPtr->wAxis.SetRange( origin[2], max[2]);97 volPtr->wAxis.SetRange(dxObj.dataMin(), dxObj.dataMax()); 98 98 volPtr->update_pending = true; 99 99 100 delete [] data; 100 delete [] data; 101 101 102 102 //
Note: See TracChangeset
for help on using the changeset viewer.