Changeset 2121 for trunk


Ignore:
Timestamp:
Mar 8, 2011 11:41:01 AM (13 years ago)
Author:
ldelgass
Message:
  • Fix crash bug on changing camera type: set vtkPlaneCollection to NULL in

graphics objecst instead of removing planes from shared collection.

  • Add method to collect cumulative data range of all loaded DataSets?
  • Fix potential crash in DataSet::getDataValue if no scalars present
  • Don't compute normals,gradients for 2d contours, turn of lighting by default
  • Use clip planes in image camera mode for PolyData? objects
Location:
trunk/packages/vizservers/vtkvis
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/vtkvis/RpContour2D.cpp

    r2114 r2121  
    5959        _contourActor->GetProperty()->SetLineWidth(_edgeWidth);
    6060        _contourActor->GetProperty()->SetOpacity(_opacity);
     61        _contourActor->GetProperty()->LightingOff();
    6162    }
    6263}
     
    7677    vtkSmartPointer<vtkContourFilter> contourFilter = vtkSmartPointer<vtkContourFilter>::New();
    7778    contourFilter->SetInput(_dataSet->getVtkDataSet());
     79
     80    contourFilter->ComputeNormalsOff();
     81    contourFilter->ComputeGradientsOff();
    7882
    7983    // Speed up multiple contour computation at cost of extra memory use
     
    193197{
    194198    if (_contourMapper != NULL) {
    195         if (planes == NULL)
    196             _contourMapper->RemoveAllClippingPlanes();
    197         else
    198             _contourMapper->SetClippingPlanes(planes);
     199        _contourMapper->SetClippingPlanes(planes);
    199200    }
    200201}
  • trunk/packages/vizservers/vtkvis/RpPolyData.cpp

    r2114 r2121  
    201201{
    202202    if (_pdMapper != NULL) {
    203         if (planes == NULL)
    204             _pdMapper->RemoveAllClippingPlanes();
    205         else
    206             _pdMapper->SetClippingPlanes(planes);
     203        _pdMapper->SetClippingPlanes(planes);
    207204    }
    208205}
  • trunk/packages/vizservers/vtkvis/RpPseudoColor.cpp

    r2114 r2121  
    149149    }
    150150    if (_dsMapper != NULL) {
     151        _dsMapper->UseLookupTableScalarRangeOn();
    151152        _dsMapper->SetLookupTable(_lut);
    152         if (_dataSet != NULL) {
    153             _dsMapper->SetScalarRange(dataRange);
    154         }
    155153    }
    156154}
     
    230228{
    231229    if (_dsMapper != NULL) {
    232         if (planes == NULL)
    233             _dsMapper->RemoveAllClippingPlanes();
    234         else
    235             _dsMapper->SetClippingPlanes(planes);
     230        _dsMapper->SetClippingPlanes(planes);
    236231    }
    237232}
  • trunk/packages/vizservers/vtkvis/RpVtkDataSet.cpp

    r2112 r2121  
    6969
    7070/**
     71 * \brief Read dataset using supplied reader
     72 */
     73bool DataSet::setData(vtkDataSet *ds)
     74{
     75    _dataSet = ds;
     76    _dataSet->Update();
     77    _dataSet->GetScalarRange(_dataRange);
     78
     79    TRACE("Scalar Range: %.12e, %.12e", _dataRange[0], _dataRange[1]);
     80    return true;
     81}
     82
     83/**
    7184 * \brief Get the name/id of this dataset
    7285 */
     
    97110 *
    98111 * Note: no interpolation is performed on data
     112 *
     113 * \return the value of the nearest point or 0 if no scalar data available
    99114 */
    100115double DataSet::getDataValue(double x, double y, double z)
     
    102117    if (_dataSet == NULL)
    103118        return 0;
     119    if (_dataSet->GetPointData() == NULL ||
     120        _dataSet->GetPointData()->GetScalars() == NULL) {
     121        return 0.0;
     122    }
    104123    vtkIdType pt = _dataSet->FindPoint(x, y, z);
    105124    return _dataSet->GetPointData()->GetScalars()->GetComponent(pt, 0);
  • trunk/packages/vizservers/vtkvis/RpVtkDataSet.h

    r2112 r2121  
    2929    bool setData(char *data, int nbytes);
    3030
     31    bool setData(vtkDataSet *ds);
     32
     33    bool setData(vtkDataSetReader *reader);
     34
    3135    bool setDataFile(const char *filename);
    3236
     
    4246    DataSet();
    4347
    44     bool setData(vtkDataSetReader *reader);
    45 
    4648    std::string _name;
    4749    vtkSmartPointer<vtkDataSet> _dataSet;
  • trunk/packages/vizservers/vtkvis/RpVtkRenderer.cpp

    r2115 r2121  
    217217        TRACE("After deleting graphics objects");
    218218
     219        // Update cumulative data range
     220        collectDataRanges(_cumulativeDataRange);
     221
    219222        delete itr->second;
    220223        _dataSets.erase(itr);
     
    265268        _needsRedraw = true;
    266269        return ds->setData(data, nbytes);
     270        collectDataRanges(_cumulativeDataRange);
    267271    } else
    268272        return false;
     
    12911295}
    12921296
     1297/**
     1298 * \brief Collect cumulative data range of all DataSets
     1299 *
     1300 * \param[inout] range Data range of all DataSets
     1301 */
     1302void Renderer::collectDataRanges(double *range)
     1303{
     1304    range[0] = DBL_MAX;
     1305    range[1] = -DBL_MAX;
     1306
     1307    for (DataSetHashmap::iterator itr = _dataSets.begin();
     1308         itr != _dataSets.end(); ++itr) {
     1309        double r[2];
     1310        itr->second->getDataRange(r);
     1311        range[0] = min2(range[0], r[0]);
     1312        range[1] = max2(range[1], r[1]);
     1313    }
     1314    if (range[0] == DBL_MAX)
     1315        range[0] = 0;
     1316    if (range[1] == -DBL_MAX)
     1317        range[1] = 1;
     1318}
     1319
    12931320#ifdef notdef
    12941321void Renderer::setPerspectiveCameraByBounds(double bounds[6])
     
    14041431                itr->second->setClippingPlanes(_clippingPlanes);
    14051432            }
     1433            for (PolyDataHashmap::iterator itr = _polyDatas.begin();
     1434                 itr != _polyDatas.end(); ++itr) {
     1435                itr->second->setClippingPlanes(_clippingPlanes);
     1436            }
    14061437        } else {
    14071438            for (PseudoColorHashmap::iterator itr = _pseudoColors.begin();
     
    14131444                itr->second->setClippingPlanes(NULL);
    14141445            }
     1446            for (PolyDataHashmap::iterator itr = _polyDatas.begin();
     1447                 itr != _polyDatas.end(); ++itr) {
     1448                itr->second->setClippingPlanes(NULL);
     1449            }
    14151450        }
    14161451        _renderWindow->Render();
  • trunk/packages/vizservers/vtkvis/RpVtkRenderer.h

    r2115 r2121  
    220220    void collectBounds(double *bounds, bool onlyVisible);
    221221
     222    void collectDataRanges(double *range);
     223
    222224    void storeCameraOrientation();
    223225    void restoreCameraOrientation();
     
    234236    double _cameraUp[3];
    235237    float _bgColor[3];
     238    double _cumulativeDataRange[2];
    236239
    237240    ColorMapHashmap _colorMaps;
Note: See TracChangeset for help on using the changeset viewer.