Ignore:
Timestamp:
Sep 20, 2012, 12:46:32 PM (12 years ago)
Author:
ldelgass
Message:

sync with trunk

Location:
branches/nanovis2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/nanovis2

  • branches/nanovis2/packages/vizservers/vtkvis/RpVtkRendererGraphicsObjs.h

    r2612 r3175  
    6060        if (gobj->getProp())
    6161            _renderer->RemoveViewProp(gobj->getProp());
     62        if (gobj->getOverlayProp())
     63            _renderer->RemoveViewProp(gobj->getOverlayProp());
    6264        delete gobj;
    6365
     
    6769    initCamera();
    6870    _needsRedraw = true;
     71}
     72
     73template<class GraphicsObject>
     74void Renderer::deleteAllGraphicsObjects()
     75{
     76    std::tr1::unordered_map<DataSetId, GraphicsObject *>& hashmap =
     77        getGraphicsObjectHashmap<GraphicsObject>();
     78    typename std::tr1::unordered_map<DataSetId, GraphicsObject *>::iterator itr;
     79
     80    itr = hashmap.begin();
     81    if (itr == hashmap.end())
     82        return;
     83
     84    TRACE("Deleting all %s objects", itr->second->getClassName());
     85
     86    for (; itr != hashmap.end(); ++itr) {
     87        delete itr->second;
     88    }
     89    hashmap.clear();
    6990}
    7091
     
    100121        gobj->setDataSet(ds, this);
    101122
    102         if (gobj->getProp() == NULL) {
     123        if (gobj->getProp() == NULL &&
     124            gobj->getOverlayProp() == NULL) {
    103125            delete gobj;
    104126            return false;
    105127        } else {
    106             _renderer->AddViewProp(gobj->getProp());
     128            if (gobj->getProp())
     129                _renderer->AddViewProp(gobj->getProp());
     130            if (gobj->getOverlayProp())
     131                _renderer->AddViewProp(gobj->getOverlayProp());
    107132        }
    108133
     
    233258    do {
    234259        itr->second->setPosition(pos);
     260    } while (doAll && ++itr != hashmap.end());
     261
     262    resetAxes();
     263    _needsRedraw = true;
     264}
     265
     266/**
     267 * \brief Set the prop scaling by 2D aspect ratio
     268 */
     269template<class GraphicsObject>
     270void Renderer::setGraphicsObjectAspect(const DataSetId& id, double aspect)
     271{
     272    std::tr1::unordered_map<DataSetId, GraphicsObject *>& hashmap =
     273        getGraphicsObjectHashmap<GraphicsObject>();
     274    typename std::tr1::unordered_map<DataSetId, GraphicsObject *>::iterator itr;
     275
     276    bool doAll = false;
     277
     278    if (id.compare("all") == 0) {
     279        itr = hashmap.begin();
     280        doAll = true;
     281    } else {
     282        itr = hashmap.find(id);
     283    }
     284    if (itr == hashmap.end()) {
     285        ERROR("%s not found: %s", typeid(GraphicsObject).name(), id.c_str());
     286        return;
     287    }
     288
     289    do {
     290        itr->second->setAspect(aspect);
    235291    } while (doAll && ++itr != hashmap.end());
    236292
     
    709765}
    710766
     767template<class GraphicsObject>
     768void Renderer::updateGraphicsObjectColorMap(ColorMap *cmap)
     769{
     770    std::tr1::unordered_map<DataSetId, GraphicsObject *>& hashmap =
     771        getGraphicsObjectHashmap<GraphicsObject>();
     772    typename std::tr1::unordered_map<DataSetId, GraphicsObject *>::iterator itr;
     773
     774    for (itr = hashmap.begin(); itr != hashmap.end(); ++itr) {
     775        if (itr->second->getColorMap() == cmap) {
     776            itr->second->updateColorMap();
     777            _needsRedraw = true;
     778        }
     779    }
     780}
     781
     782template<class GraphicsObject>
     783bool Renderer::graphicsObjectColorMapUsed(ColorMap *cmap)
     784{
     785    std::tr1::unordered_map<DataSetId, GraphicsObject *>& hashmap =
     786        getGraphicsObjectHashmap<GraphicsObject>();
     787    typename std::tr1::unordered_map<DataSetId, GraphicsObject *>::iterator itr;
     788
     789    for (itr = hashmap.begin(); itr != hashmap.end(); ++itr) {
     790        if (itr->second->getColorMap() == cmap)
     791            return true;
     792    }
     793    return false;
     794}
     795
     796template<class GraphicsObject>
     797void Renderer::mergeGraphicsObjectBounds(double *bounds, bool onlyVisible)
     798{
     799    std::tr1::unordered_map<DataSetId, GraphicsObject *>& hashmap =
     800        getGraphicsObjectHashmap<GraphicsObject>();
     801    typename std::tr1::unordered_map<DataSetId, GraphicsObject *>::iterator itr;
     802
     803    for (itr = hashmap.begin(); itr != hashmap.end(); ++itr) {
     804        if ((!onlyVisible || itr->second->getVisibility()) &&
     805            itr->second->getProp() != NULL)
     806            mergeBounds(bounds, bounds, itr->second->getBounds());
     807    }
     808}
     809
     810template<class GraphicsObject>
     811void Renderer::mergeGraphicsObjectUnscaledBounds(double *bounds, bool onlyVisible)
     812{
     813    std::tr1::unordered_map<DataSetId, GraphicsObject *>& hashmap =
     814        getGraphicsObjectHashmap<GraphicsObject>();
     815    typename std::tr1::unordered_map<DataSetId, GraphicsObject *>::iterator itr;
     816
     817    for (itr = hashmap.begin(); itr != hashmap.end(); ++itr) {
     818        if ((!onlyVisible || itr->second->getVisibility()) &&
     819            itr->second->getProp() != NULL)
     820            mergeBounds(bounds, bounds, itr->second->getUnscaledBounds());
     821    }
     822}
     823
     824template<class GraphicsObject>
     825void Renderer::updateGraphicsObjectFieldRanges()
     826{
     827    std::tr1::unordered_map<DataSetId, GraphicsObject *>& hashmap =
     828        getGraphicsObjectHashmap<GraphicsObject>();
     829    typename std::tr1::unordered_map<DataSetId, GraphicsObject *>::iterator itr;
     830
     831    for (itr = hashmap.begin(); itr != hashmap.end(); ++itr) {
     832        itr->second->updateRanges(this);
     833    }
     834}
     835
     836template<class GraphicsObject>
     837void Renderer::setGraphicsObjectClippingPlanes(vtkPlaneCollection *planes)
     838{
     839    std::tr1::unordered_map<DataSetId, GraphicsObject *>& hashmap =
     840        getGraphicsObjectHashmap<GraphicsObject>();
     841    typename std::tr1::unordered_map<DataSetId, GraphicsObject *>::iterator itr;
     842
     843    for (itr = hashmap.begin(); itr != hashmap.end(); ++itr) {
     844        itr->second->setClippingPlanes(planes);
     845    }
     846}
     847
     848template<class GraphicsObject>
     849void Renderer::setGraphicsObjectAspect(double aspectRatio)
     850{
     851    std::tr1::unordered_map<DataSetId, GraphicsObject *>& hashmap =
     852        getGraphicsObjectHashmap<GraphicsObject>();
     853    typename std::tr1::unordered_map<DataSetId, GraphicsObject *>::iterator itr;
     854
     855    for (itr = hashmap.begin(); itr != hashmap.end(); ++itr) {
     856        itr->second->setAspect(aspectRatio);
     857    }
     858}
     859
    711860}
    712861}
Note: See TracChangeset for help on using the changeset viewer.