Ignore:
Timestamp:
Feb 18, 2013, 2:32:14 PM (11 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/RpGlyphs.cpp

    r3175 r3305  
    11/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
    22/*
    3  * Copyright (C) 2011, Purdue Research Foundation
     3 * Copyright (C) 2004-2012  HUBzero Foundation, LLC
    44 *
    55 * Author: Leif Delgass <ldelgass@purdue.edu>
     
    99#include <cfloat>
    1010
     11#include <vtkVersion.h>
     12#if (VTK_MAJOR_VERSION >= 6)
     13#define USE_VTK6
     14#endif
    1115#include <vtkDataSet.h>
    1216#include <vtkPointData.h>
     
    171175    }
    172176
    173 #ifdef HAVE_GLYPH3D_MAPPER
    174177    if (_glyphMapper != NULL) {
    175178        _glyphMapper->SetSourceConnection(_glyphSource->GetOutputPort());
    176179    }
    177 #else
    178     if (_glyphGenerator != NULL) {
    179         _glyphGenerator->SetSourceConnection(_glyphSource->GetOutputPort());
    180     }
    181 #endif
    182180
    183181    //setQuality(0.8);
     
    211209        break;
    212210    case CYLINDER: {
    213         assert (vtkTransformPolyDataFilter::SafeDownCast(_glyphSource) != NULL);
    214         assert (vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInput() != NULL);
    215         TRACE("gsource input: %s", vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInput()->GetClassName());
    216         vtkSmartPointer<vtkCylinderSource> csource = vtkCylinderSource::SafeDownCast(vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInput()->GetProducerPort());
     211        assert(vtkTransformPolyDataFilter::SafeDownCast(_glyphSource) != NULL);
     212        assert(vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInputConnection(0, 0) != NULL);
     213        vtkSmartPointer<vtkCylinderSource> csource = vtkCylinderSource::SafeDownCast(vtkTransformPolyDataFilter::SafeDownCast(_glyphSource)->GetInputConnection(0, 0));
    217214        int res = (int)(quality * 25);
    218215        if (res < 5) res = 5;
     
    236233    vtkDataSet *ds = _dataSet->getVtkDataSet();
    237234
    238 #ifdef HAVE_GLYPH3D_MAPPER
    239235    if (_glyphMapper == NULL) {
    240236        _glyphMapper = vtkSmartPointer<vtkGlyph3DMapper>::New();
     
    242238        _glyphMapper->ScalarVisibilityOn();
    243239    }
    244 #else
    245     if (_glyphGenerator == NULL) {
    246         _glyphGenerator = vtkSmartPointer<vtkGlyph3D>::New();
    247     }
    248     if (_pdMapper == NULL) {
    249         _pdMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    250         _pdMapper->SetResolveCoincidentTopologyToPolygonOffset();
    251         _pdMapper->ScalarVisibilityOn();
    252         _pdMapper->SetInputConnection(_glyphGenerator->GetOutputPort());
    253     }
    254 #endif
    255240
    256241    initProp();
     
    267252            cellToPtData =
    268253                vtkSmartPointer<vtkCellDataToPointData>::New();
     254#ifdef USE_VTK6
     255            cellToPtData->SetInputData(ds);
     256#else
    269257            cellToPtData->SetInput(ds);
     258#endif
    270259            //cellToPtData->PassCellDataOn();
    271260            cellToPtData->Update();
     
    276265    }
    277266
    278 #ifdef HAVE_GLYPH3D_MAPPER
     267#ifdef USE_VTK6
     268    _glyphMapper->SetInputData(ds);
     269#else
    279270    _glyphMapper->SetInputConnection(ds->GetProducerPort());
    280 #else
    281     _glyphGenerator->SetInput(ds);
    282271#endif
    283272
     
    300289
    301290    // Normalize sizes to [0,1] * ScaleFactor
    302 #ifdef HAVE_GLYPH3D_MAPPER
    303291    _glyphMapper->SetClamping(_normalizeScale ? 1 : 0);
    304292    _glyphMapper->SetScaleFactor(_scaleFactor * _dataScale);
    305293    _glyphMapper->ScalingOn();
    306 #else
    307     _glyphGenerator->SetClamping(_normalizeScale ? 1 : 0);
    308     _glyphGenerator->SetScaleFactor(_scaleFactor * _dataScale);
    309     _glyphGenerator->ScalingOn();
    310 #endif
    311294
    312295    if (_lut == NULL) {
     
    322305    }
    323306
    324 #ifdef HAVE_GLYPH3D_MAPPER
    325307    getActor()->SetMapper(_glyphMapper);
    326308    _glyphMapper->Update();
    327 #else
    328     getActor()->SetMapper(_pdMapper);
    329     _pdMapper->Update();
    330 #endif
    331309}
    332310
     
    339317    if (_normalizeScale != normalize) {
    340318        _normalizeScale = normalize;
    341 #ifdef HAVE_GLYPH3D_MAPPER
    342319        if (_glyphMapper != NULL) {
    343320            _glyphMapper->SetClamping(_normalizeScale ? 1 : 0);
    344321        }
    345 #else
    346         if (_glyphGenerator != NULL) {
    347             _glyphGenerator->SetClamping(_normalizeScale ? 1 : 0);
    348         }
    349 #endif
    350     }
    351 }
    352 
    353 #ifdef HAVE_GLYPH3D_MAPPER
     322    }
     323}
     324
    354325/**
    355326 * \brief Turn on/off orienting glyphs from a vector field
     
    635606}
    636607
    637 #else
    638 
    639 /**
    640  * \brief Control how glyphs are scaled
    641  */
    642 void Glyphs::setScalingMode(ScalingMode mode)
    643 {
    644     _scalingMode = mode;
    645     if (_glyphGenerator != NULL) {
    646         switch (mode) {
    647         case SCALE_BY_SCALAR:
    648             _glyphGenerator->SetRange(_dataRange);
    649             _glyphGenerator->SetScaleModeToScaleByScalar();
    650             break;
    651         case SCALE_BY_VECTOR_MAGNITUDE:
    652             _glyphGenerator->SetRange(_vectorMagnitudeRange);
    653             _glyphGenerator->SetScaleModeToScaleByVector();
    654             break;
    655         case SCALE_BY_VECTOR_COMPONENTS: {
    656             double sizeRange[2];
    657             sizeRange[0] = _vectorComponentRange[0][0];
    658             sizeRange[1] = _vectorComponentRange[0][1];
    659             sizeRange[0] = min2(sizeRange[0], _vectorComponentRange[1][0]);
    660             sizeRange[1] = max2(sizeRange[1], _vectorComponentRange[1][1]);
    661             sizeRange[0] = min2(sizeRange[0], _vectorComponentRange[2][0]);
    662             sizeRange[1] = max2(sizeRange[1], _vectorComponentRange[2][1]);
    663             _glyphGenerator->SetRange(sizeRange);
    664             _glyphGenerator->SetScaleModeToScaleByVectorComponents();
    665         }
    666             break;
    667         case SCALING_OFF:
    668         default:
    669             _glyphGenerator->SetScaleModeToDataScalingOff();
    670         }
    671     }
    672 }
    673 
    674 /**
    675  * \brief Control how glyphs are colored
    676  */
    677 void Glyphs::setColorMode(ColorMode mode)
    678 {
    679     _colorMode = mode;
    680     if (_glyphGenerator != NULL) {
    681         switch (mode) {
    682         case COLOR_BY_VECTOR_MAGNITUDE:
    683             _glyphGenerator->SetColorModeToColorByVector();
    684             _pdMapper->ScalarVisibilityOn();
    685             if (_lut != NULL) {
    686                 _lut->SetVectorModeToMagnitude();
    687                 _lut->SetRange(_vectorMagnitudeRange);
    688             }
    689             break;
    690         case COLOR_BY_SCALAR:
    691             _glyphGenerator->SetColorModeToColorByScalar();
    692             _pdMapper->ScalarVisibilityOn();
    693             if (_lut != NULL) {
    694                 _lut->SetRange(_dataRange);
    695             }
    696             break;
    697         case COLOR_CONSTANT:
    698             _pdMapper->ScalarVisibilityOff();
    699             break;
    700         default:
    701             ERROR("Unsupported ColorMode: %d", mode);
    702         }
    703     }
    704 }
    705 
    706 #endif
    707 
    708608/**
    709609 * \brief Turn on/off orienting glyphs from a vector field
     
    711611void Glyphs::setOrient(bool state)
    712612{
    713 #ifdef HAVE_GLYPH3D_MAPPER
    714613    if (_glyphMapper != NULL) {
    715614        _glyphMapper->SetOrient(state ? 1 : 0);
    716615    }
    717 #else
    718     if (_glyphGenerator != NULL) {
    719         _glyphGenerator->SetOrient(state ? 1 : 0);
    720     }
    721 #endif
    722616}
    723617
     
    728622{
    729623    _scaleFactor = scale;
    730 #ifdef HAVE_GLYPH3D_MAPPER
    731624    if (_glyphMapper != NULL) {
    732625        _glyphMapper->SetScaleFactor(_scaleFactor * _dataScale);
    733626    }
    734 #else
    735     if (_glyphGenerator != NULL) {
    736         _glyphGenerator->SetScaleFactor(_scaleFactor * _dataScale);
    737     }
    738 #endif
    739627}
    740628
     
    767655
    768656    // Need to update color map ranges and/or active vector field
    769 #ifdef HAVE_GLYPH3D_MAPPER
    770657    double *rangePtr = _colorFieldRange;
    771658    if (_colorFieldRange[0] > _colorFieldRange[1]) {
     
    779666    }
    780667    setScalingMode(_scalingMode, _scalingFieldName.c_str(), rangePtr);
    781 #else
    782     setColorMode(_colorMode);
    783     setScalingMode(_scalingMode);
    784 #endif
    785668}
    786669
     
    805688    if (_lut == NULL) {
    806689        _lut = vtkSmartPointer<vtkLookupTable>::New();
    807 #ifdef HAVE_GLYPH3D_MAPPER
    808690        if (_glyphMapper != NULL) {
    809691            _glyphMapper->UseLookupTableScalarRangeOn();
    810692            _glyphMapper->SetLookupTable(_lut);
    811693        }
    812 #else
    813         if (_pdMapper != NULL) {
    814             _pdMapper->UseLookupTableScalarRangeOn();
    815             _pdMapper->SetLookupTable(_lut);
    816         }
    817 #endif
    818694        _lut->DeepCopy(cmap->getLookupTable());
    819695        switch (_colorMode) {
     
    872748void Glyphs::setClippingPlanes(vtkPlaneCollection *planes)
    873749{
    874 #ifdef HAVE_GLYPH3D_MAPPER
    875750    if (_glyphMapper != NULL) {
    876751        _glyphMapper->SetClippingPlanes(planes);
    877752    }
    878 #else
    879     if (_pdMapper != NULL) {
    880         _pdMapper->SetClippingPlanes(planes);
    881     }
    882 #endif
    883 }
     753}
Note: See TracChangeset for help on using the changeset viewer.