Ignore:
Timestamp:
Oct 2, 2013, 1:50:08 AM (11 years ago)
Author:
ldelgass
Message:

Updates to image slicer

Location:
trunk/packages/vizservers/vtkvis
Files:
2 edited

Legend:

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

    r3773 r3981  
    99#include <vtkImageData.h>
    1010#include <vtkImageActor.h>
     11#include <vtkImageSlice.h>
    1112#include <vtkImageProperty.h>
    1213#include <vtkImageMapper3D.h>
     14#include <vtkImageResliceMapper.h>
    1315#include <vtkLookupTable.h>
    1416
     
    1719
    1820using namespace VtkVis;
     21
     22#define USE_RESLICE_MAPPER
    1923
    2024Image::Image() :
     
    3236{
    3337    if (_prop == NULL) {
     38#ifdef USE_RESLICE_MAPPER
     39        _prop = vtkSmartPointer<vtkImageSlice>::New();
     40#else
    3441        _prop = vtkSmartPointer<vtkImageActor>::New();
     42#endif
    3543        vtkImageProperty *property = getImageProperty();
    3644        property->SetInterpolationTypeToLinear();
     
    6472
    6573    vtkImageActor *actor = getImageActor();
    66     actor->SetInputData(imageData);
    67     actor->InterpolateOn();
     74    vtkImageMapper3D *mapper = getImageMapper();
     75    if (mapper == NULL) {
     76        TRACE("Creating mapper");
     77        vtkSmartPointer<vtkImageResliceMapper> newMapper = vtkSmartPointer<vtkImageResliceMapper>::New();
     78        getImageSlice()->SetMapper(newMapper);
     79        mapper = getImageMapper();
     80        assert(mapper != NULL);
     81    }
     82    if (actor != NULL) {
     83        TRACE("Have actor");
     84        actor->SetInputData(imageData);
     85        actor->InterpolateOn();
     86    } else {
     87        TRACE("No actor");
     88        mapper->SetInputData(imageData);
     89    }
    6890
    69     vtkImageMapper3D *mapper = getImageMapper();
     91    mapper->SliceAtFocalPointOn();
     92    mapper->SliceFacesCameraOn();
     93
     94    vtkImageResliceMapper *resliceMapper = getImageResliceMapper();
     95    if (resliceMapper) {
     96        TRACE("Mapper is a vtkImageResliceMapper");
     97        resliceMapper->AutoAdjustImageQualityOff();
     98        resliceMapper->ResampleToScreenPixelsOff();
     99    } else {
     100        TRACE("Mapper is a %s", mapper->GetClassName());
     101    }
     102
    70103    mapper->Update();
    71104}
  • trunk/packages/vizservers/vtkvis/Image.h

    r3961 r3981  
    1010
    1111#include <vtkSmartPointer.h>
     12#include <vtkImageSlice.h>
    1213#include <vtkImageActor.h>
    1314#include <vtkImageMapper3D.h>
     15#include <vtkImageResliceMapper.h>
     16#include <vtkImageSliceMapper.h>
    1417#include <vtkLookupTable.h>
    1518#include <vtkPlaneCollection.h>
     
    141144    vtkImageProperty *getImageProperty()
    142145    {
    143         if (getImageActor() != NULL) {
    144             return getImageActor()->GetProperty();
     146        if (getImageSlice() != NULL) {
     147            return getImageSlice()->GetProperty();
    145148        } else {
    146149            return NULL;
     
    150153    vtkImageMapper3D *getImageMapper()
    151154    {
    152         if (getImageActor() != NULL) {
    153             return getImageActor()->GetMapper();
     155        if (getImageSlice() != NULL) {
     156            return getImageSlice()->GetMapper();
     157        } else {
     158            return NULL;
     159        }
     160    }
     161
     162    vtkImageResliceMapper *getImageResliceMapper()
     163    {
     164        if (getImageSlice() != NULL) {
     165            return vtkImageResliceMapper::SafeDownCast(getImageSlice()->GetMapper());
     166        } else {
     167            return NULL;
     168        }
     169    }
     170
     171    vtkImageSliceMapper *getImageSliceMapper()
     172    {
     173        if (getImageSlice() != NULL) {
     174            return vtkImageSliceMapper::SafeDownCast(getImageSlice()->GetMapper());
    154175        } else {
    155176            return NULL;
Note: See TracChangeset for help on using the changeset viewer.