1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
/*=========================================================================
Program: Visualization Toolkit
Module: vtkOSPRayVolumeNode.cxx
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include "vtkOSPRayVolumeNode.h"
#include "vtkAbstractVolumeMapper.h"
#include "vtkActor.h"
#include "vtkCompositeDataIterator.h"
#include "vtkCompositeDataSet.h"
#include "vtkDataArray.h"
#include "vtkInformation.h"
#include "vtkInformationIntegerKey.h"
#include "vtkInformationObjectBaseKey.h"
#include "vtkInformationStringKey.h"
#include "vtkMapper.h"
#include "vtkObjectFactory.h"
#include "vtkPiecewiseFunction.h"
#include "vtkPolyData.h"
#include "vtkVolume.h"
#include "vtkVolumeProperty.h"
#include "RTWrapper/RTWrapper.h"
//============================================================================
VTK_ABI_NAMESPACE_BEGIN
vtkStandardNewMacro(vtkOSPRayVolumeNode);
//------------------------------------------------------------------------------
vtkOSPRayVolumeNode::vtkOSPRayVolumeNode() = default;
//------------------------------------------------------------------------------
vtkOSPRayVolumeNode::~vtkOSPRayVolumeNode() = default;
//------------------------------------------------------------------------------
void vtkOSPRayVolumeNode::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os, indent);
}
//------------------------------------------------------------------------------
vtkMTimeType vtkOSPRayVolumeNode::GetMTime()
{
vtkMTimeType mtime = this->Superclass::GetMTime();
vtkVolume* vol = (vtkVolume*)this->GetRenderable();
if (!vol)
{
return mtime;
}
if (vol->GetMTime() > mtime)
{
mtime = vol->GetMTime();
}
if (vol->GetProperty())
{
mtime = std::max(mtime, vol->GetProperty()->GetMTime());
}
vtkAbstractVolumeMapper* mapper = vol->GetMapper();
if (mapper)
{
vtkDataObject* dobj = mapper->GetDataSetInput();
if (dobj)
{
mtime = std::max(mtime, dobj->GetMTime());
}
if (mapper->GetMTime() > mtime)
{
mtime = mapper->GetMTime();
}
if (mapper->GetInformation()->GetMTime() > mtime)
{
mtime = mapper->GetInformation()->GetMTime();
}
}
return mtime;
}
VTK_ABI_NAMESPACE_END
|