9.2#
Released on 2022-09-27.
9.2.0 Release Notes#
Changes made since VTK 9.1.0 include the following.
Changes#
Build#
The
VTK_USE_MPI
andVTK_USE_TK
options are more lenient and will not force any modules in theMPI
orTk
group, respectively, to be built. Instead, affected modules may be disabled if they are unwanted.VTK’s packages now hint OpenVR locations (for the build tree or
VTK_RELOCATABLE_INSTALL=OFF
installations).Installation destinations for Python modules is now fixed under MinGW.
Compile fixes for older compilers, mainly GCC 4.8.
Core#
vtkVector
’s+=
and-=
operators now return avtkVector&
as expected. Previously they returned uninitializedvtkVector
instances which is of little use to anyone.vtkSetGet.h
macros which create setters now have*Override
variants to use theoverride
keyword instead of repeatingvirtual
.vtkObject
instances may now be assigned a name used in reporting. It is not copied byShallowCopy
orDeepCopy
copies.vtkAbstractArray::CreateArray
now prefers creating sized integer arrays rather than arrays of basic C types. This is intended to help readers get the correct size instead of having to remember whetherlong
is 32 or 64 bits on the given platform.
Data#
The
vtkArrayListTemplate
helper class forvtkDataSetAttributes
incorrectly held avtkDataArray*
. This meant that filters using the class could not support other arrays such asvtkStringArray
. Now, it holds avtkAbstractArray*
to support these types. Users may adapt by usingvtkArrayDownCast
to obtain avtkDataArray*
if needed.
Filters#
vtkArrayCalculator
,vtkmodules.numpy_interface.dataset_adapter
, andvtkProgrammableFilter
support forvtkHyperTreeGrid
has been improved.vtkUnstructuredGridQuadricDecimation::NO_ERROR
has been renamed to::NON_ERROR
to avoid conflicts with Microsoft Windows SDK headers.vtkImprintFilter::ABSOLUTE
has been renamed to::ABSOLUTE_TOLERANCE
to avoid conflicts with Microsoft Windows SDK headers.vtkMeshQuality
andvtkCellTypes
now use aenum class QualityMeasureTypes
instead of#define
symbols for metrics.vtkCheckerboardSplatter
no longer has nested parallelism.vtkmProbe
filters now return probed fields as point data rather than cell data.vtkDescriptiveStatistics
’s Kurtosis formula had a mistake which is now corrected.vtkDescriptiveStatistics
previously supported toggling kurtosis, skewness, and variance over sample or population individually. Now, sample or population can be selected using theSampleEstimate
boolean (on by default). This simplifies interactions with the filter and avoids confusion by mixing and matching. The previous APIs still exist, but do not do anything.vtkPlaneCutter
now frees the sphere trees if the input changes and can handlevtkUniformGridAMR
inputs.vtkPlaneCutter
now usesvtkAppendPolyData
internally to merge internal results. This avoids complexvtkMultiBlockDataSet
inputs from creating complicated sets ofvtkMultiPieceDataSet
. Inputs and outputs are now transformed as follows:vtkMultiBlockDataSet
input becomesvtkMultiBlockDataSet
vtkUniformGridAMR
input becomesvtkPartitionedDataSetCollection
(previouslyvtkMultiBlockDataSet
)vtkPartitionedDataSetCollection
input becomesvtkPartitionedDataSetCollection
vtkPartitionedDataSet
input becomesvtkPartitionedDataSet
vtkDataSet
input becomesvtkPolyData
(previouslyvtkPartitionedDataSet
)
vtkCellTreeLocator
has moved fromVTK::FiltersGeneral
toVTK::CommonDataModel
vtkArrayCalculator
no longer callsModified()
on any value setting because it causes multi-threaded contention.The
vtkArrayRename
filter may be used to rename data arrays within a data set.vtkGeometryFilter
no longer supports thevtkUnstructuredGrid::FastMode
using theDegree
flag.vtkTemporalDataSetCache
no longer crashes when a nonexistent timestep is requested.vtkTableFFT
no longer prefixes output array names with “FFT_” like it was in 9.1 and just keep the same name as the input like it was doing before 9.1. A new API has been added to keep 9.1 behavior when needed.vtkContourTriangulator
polygon bounds checking now factors in the tolerance.vtkImageDifference
calculations have been fixed. Note that this may affect testing results.vtkLagrangianParticleTracker
caching invalidation logic fixed.
Interaction#
vtkFrustumSelection
has been optimized.Selection extraction on
vtkUniformGridAMR
has been fixed.
I/O#
The
vtkIOSSReader
now providesDisplacementMagnitude
to scale point displacement.The
vtkIOSSReader
now turns off theLOWER_CASE_VARIABLE_NAMES
IOSS property.vtkIOSSReader
now reads side sets correctly by avoiding a false positive hit in its internal cache.FFmpeg 5.0 is now supported.
vtkXdmfReader
no longer caches internalXdmfGrid
instances to avoid wasting memory. See #19633.vtkJSONSceneExporter
no longer overwrites existing files.vtkGLTFExporter
now exports the correct camera transformation matrix. Imported scenes may usevtkGLTFImporter::SetCamera(0)
prior toUpdate()
to use the original camera location.vtkPLYWriter
may now write the point normals of input meshes, if present.vtkPIOReader
now requires dump files to begin with the problem name. This avoids using an unrelated file for partially written dumps.vtkNetCDFCAMReader
now properly extracts level data.
Rendering#
vtkProp3D
actors may now be added using different coordinate frames:WORLD
(the default),PHYSICAL
(in VR, the physical room’s coordinates, in meters), andDEVICE
(relative to the device). When usingPHYSICAL
orDEVICE
, a renderer must be provided via the newSetCoordinateSystemRenderer()
andSetCoordinateSystemDevice()
methods. Such props should typically useUseBoundsOff()
to ignore their bounds when resetting the camera.Unstable volume rendering configurations are detected.
Volume rendering now supports more than 6 lights.
vtkXOpenGLRenderWindow
andvtkXRenderWindowInteractor
now properly disconnects from the display when it is not owned.Add a missing GIL lock in
vtkMatplotlibMathTextUtilities
.Avoid a hard-coded translation when resetting the camera in VR.
Python#
SDKs for each weekly wheels are now available on
vtk.org
. Releases will also have them available.vtkmodules.qt
now supports PyQt6.Python 3.10 is now supported by
vtkpython
.Python 3.10 wheels are now supported.
VTK’s wrapped classes may now be interposed by using the class’
override
decorator:
from vtkmodules.vtkCommonCore import vtkPoints
@vtkPoints.override
class foo(vtkPoints):
pass
o = vtkPoints() # o is actually an instance of foo
Note that Python subclasses still cannot override C++
virtual
functions, cannot alter the C++ class hierarchy, is global, and is ignored when the class usesvtkObjectFactory
to provide a subclass from its::New()
method..pyi
files for autocompletion and hinting in editors are now available in VTK builds and wheels. Note that Windows wheels older than 3.8 do not provide.pyi
files for platform-specific reasons.Starting with 9.2.3, Python 3.11 is supported and newly-deprecated APIs are avoided.
Starting with 9.2.3, Matplotlib 3.6 is now supported.
Starting with 9.2.3,
vtk[web]
is required to get web dependencies with the wheels.
Web#
Fix a memory leak in
vtkWebApplication
.The render window serializers were updated to better map VTK options to VTK.js options. This includes font coloring for scalar bars and color transfer function discretization.
vtkDataSetSurfaceFilter
is used in place ofvtkGeometryFilter
The generic mapper serializer now uses
vtkDataSetSurfaceFilter
to always extract a surface from the input dataset.Python
print
statements were changed to DEBUG logging statements.
Third Party#
VTK’s vendored HDF5 library has been updated to 1.13.1.
VTK’s vendored
verdict
library has been updated.VTK’s vendored
freetype
library has been updated to 2.12.0.VTK’s vendored
mpi4py
’s Cython updated to support Python 3.11.Avoidance of deprecated APIs in new FFmpeg releases.
VTK’s vendored
libproj
better supports cross-compilation.
Infrastructure#
Modules may now specify license files for the module in their
vtk.module
file. It will automatically be installed.
New Features#
Animation#
Animations may now be played in reverse using
vtkAnimationCue
’s direction tovtkAnimationCue::PlayDirection::BACKWARD
Build#
When
VTK::AcceleratorsVTKmFilters
is enabled, theVTK_ENABLE_VTKM_OVERRIDES
option may be turned on to provide factory overrides for other VTK filters. Note that for these overrides to be used, the relevant VTKm modules must be linked (for C++) or imported (for Python) to be effective.
Core#
vtkMath::Convolve1D
can be used to compute the convolution of two 1D signals usingfull
,same
, orvalid
boundary conditions.vtkReservoirSampler
may be used to perform reservoir sampling. It is intended for selecting random fixed-size subsets of integer sequences (e.g., array indices or element IDs).
Charts#
The parallel coordinates chart now supports multiple selections on the same axis. This includes addition, subtraction, and toggle actions.
Filters#
The
vtkGenerateTimeSteps
filter may be used to add timesteps to shallow-copied data within a pipeline.The
vtkHyperTreeGridGradient
filter may be used to compute a gradient over a scalar field. The edges of the dual is used, so all neighbors are considered, but coarse cells are ignored.The
vtkExtractParticlesOverTime
filter may extract particles over time that pass through a given volumetric dataset.vtkMultiObjectMassProperties
now also computes the centroids of each object. Centroids are calculated using tetrahedron centroids and uniform density.vtkJoinTables
may perform a SQL-styleJOIN
operation on twovtkTable
objects. The columns to keep depend on the mode:intersection
(keep columns common to both tables),union
(keeps columns present in either table), andleft
andright
(keeping the keys present in the respective input table).vtkComputeQuantiles
has been split out ofvtkComputeQuartiles
as a new superclass. It supports arbitrary numbers of buckets.vtkMeshQuality
andvtkCellQuality
have:been multithreaded
improved documentation
no longer supports the
AspectBeta
tetrahedron metricimproved pyramid cell metrics:
EquiangleSkew
Jacobian
ScaledJacobian
Shape
Volume
improved wedge cell metrics:
Condition
Distortion
EdgeRatio
EquiangleSkew
Jacobian
MaxAspectFrobenius
MaxStretch
MeanAspectFrobenius
ScaledJacobian
Shape
Volume
new triangle cell metrics:
EquiangleSkew
NormalizedInradius
new quadrilateral cell metrics:
EquiangleSkew
new tetrahedron cell metrics:
EquiangleSkew
EquivolumeSkew
MeanRatio
NormalizedInradius
SquishIndex
new hexahedron cell metrics:
EquiangleSkew
NodalJacobianRatio
The new
vtkLinearTransformCellLocator
is a cell locator adaptor which can calculate a transformation matrix from a base dataset to another dataset. This matrix is then used to perform cell locator operations. TheUseAllPoints()
method may be used to use either all dataset points (if the transformation might not be linear) or, at most, 100 sample points sampled uniformly from the dataset’s point array.vtkCellLocator
,vtkStaticCellLocator
,vtkCellTreeLocator
,vtkModifiedBSPTree
, andvtkLinearTransformCellLocator
each have numerous improvements:support for
ShallowCopy()
caching cell bounds has been multithreaded
InsideCellBounds
checks are now cachednew
IntersectWithLine
methods sorted by a parametrict
; this also providesFindCellsAlongLine
for each locatorthe
tolerance
parameter may be used to check cell bound intersectionsThe
UseExistingSearchStructure
parameter may be used to not rebuild locators when component data changes, but the geometry stays the same; useForceBuildLocator
to rebuild as needed in this case
vtkCellTreeLocator
supports 64bit IDs.vtkCellTreeLocator::IntersectWithLine()
andvtkModifiedBSPTree::IntersectWithLine()
are now thread-safe.vtkCellLocator
is now fully thread-safe.The
vtkAlignImageDataSetFilter
has been added which can align image datasets to share a single global origin and offset extents in each component image accordingly. All images must use the same spacing.The new
vtkLengthDistribution
filter may be used to estimate the range of geometric length scales preset in avtkDataSet
.vtkImageMathematics
can now perform operations on more than two images. Rather than connecting a second image to port 1, all connections are made to port 0 instead. This unifies behavior with other repeatable image filters such asvtkImageAppend
.VTKm’s
vtkmContour
filter may be used as a factory override forvtkContourFilter
.VTKm filter factory overrides may be toggled using
vtkmFilterOverrides::SetEnabled()
.The
vtkExtractHistogram
filter has been moved from ParaView into VTK.vtkPointDataToCellData
now handles categorical data using multiple threads.vtkSuperquadricSource
now creates pieces using multiple threads.Particle traces now support
vtkDataObjectTree
objects to define seed points rather than onlyvtkDataSet
objects.vtkStreamTracer
now uses SMP when multiprocessing is not in use.vtkStreamTracer
performance and quality have been improved.vtkFindCellStrategy::FindClosestPointWithinRadius()
has been added.vtkCompositeInterpolatedVelocityField::SnapPointOnCell()
has been refactored from thevtkInterpolatedVelocityField
andvtkCellLocatorInterpolatedVelocityField
subclasses.vtkParticleTracerBase
is now multithreaded (with one MPI rank or more than 100 particles).vtkParticleTracerBase
can now use either use a cell locator (the default) or point locator for interpolation.vtkParticleTracerBase
supports different levels of mesh changes over time:DIFFERENT
: the mesh changes on every timestep.SAME
: the mesh is the same on every timestep.LINEAR_TRANSFORMATION
: the mesh is a linear transformation of the prior timesteps (partially applies to point locators as only cell links are preserved).SAME_TOPOLOGY
: the mesh data changes, but its topology is the same every timestep (only applies to point locators).
vtkTemporalInterpolatedVelocityField
can now use theFindCellStrategy
because it now preserves higher numerical accuracy internally.vtkGeometryFilter
is now multi-threaded over more data types including:vtkUnstructuredGrid
vtkUnstructuredGridBase
vtkImageData
(3D)vtkRectilinearGrid
vtkStructuredGrid
vtkGeometryFilter
can now handle ghost and blank cells and points.vtkGeometryFilter
can now remove ghost interfaces using theRemoveGhostInterfaces
flag (default on).The
vtkFiniteElementFieldDistributor
filter can now visualize Discontinuous Galerkin (DG) finite element fields of typeH(Grad)
,H(Curl)
, andH(Div)
.Note that all cells must be of the same type and the field data must contain a
vtkStringArray
describing the DG fields, basis types, and reference cells.
Interaction#
vtkDisplaySizedImplicitPlaneWidget
is now provided. Compared tovtkImplicitPlaneWidget2
:the outline is not drawn by default
the intersection edges of the outline and the plane may be drawn
the normal arrow and plane size are relative to the viewport
their sizes may be bounded by the widget bounds
the origin may be moved freely rather than constrained to the bounding box
the handle sizes are larger
the plane is represented as a disc
the only option for the perimeter is to be tubed or not
the perimeter may be selected and resized to change the disc radius
the actors are highlighted only when hovered
except the plane surface which is highlighted when any actor is hovered over
a new plane origin may be picked using
P
orp
the
ctrl
modifier will snap to the closest point on an object or the camera plane focal point otherwise
a new plane normal may be picked using
N
orn
the
ctrl
modifier will snap to the closest normal on an object or the camera plane normal otherwise
picking tolerance is relative to the viewport size
vtkResliceImageViewer
may now apply a factor when scrolling.vtkResliceCursorWidgetLineRepresentation
supportsalt+leftclick
to translate along a single axis.vtkVRInteractorStyle
now supports theGrounded
movement style. The existing movement style is calledFlying
.Grounded
movement is constrained to anxy
plane in four directions on one joystick. The other joystick changes elevation.vtkSelection
now supports thexor
boolean operator.vtkSelectionSource
now supports multiple selection nodes.vtkSelectionSource
may now define the field option using eitherFieldType
orElementType
.vtkSelectionSource
now defines theProcessId
of the selection.vtkAppendSelection
can now append multiple selections through an expression using selection input names.vtkConvertSelection
may now convertBLOCK
andBLOCK_SELECTORS
nodes toINDICES
.
I/O#
vtkFidesReader
reader can now use theInline
engine for in-situ processing.vtkCatalystConduit
may be used to adapt Conduit datasets via the Catalyst library’s conduit interactions. This module requires an externalcatalyst
library to be provided. This module includes:vtkConduitSource
: a source filter which generates avtkPartionedDataSet
orvtkPartitionedDataSetCollection
from a Conduit node (it may also generatevtkMultiBlockDataSet
if needed for historical reasons).vtkDataObjectToConduit
to convert anyvtkDataObject
into a Conduit nodea Catalyst implementation
The
vtkHDFReader
filter now supports overlapping AMR datasets. The specification can be found in the VTK File Formats documentation.vtkCGNSReader
now support reading cell- or face-centered data arrays for meshes with 3D cells. Note that connectivity must be defined usingNGON_n
in face-based meshes. Data arrays are then defined with aGridLocation_t
of eitherCellCenter
orFaceCenter
. The behavior may be selected by settingvtkCGNSReader::DataLocation
tovtkCGNSReader::CELL_DATA
(the default and previous behavior) orvtkCGNSReader::FACE_DATA
.vtkPIOReader
can now read restart block and even/odd dumps.vtkPIOReader
will now add thexdt
,ydt
,zdt
, andrho
derived variables and calculate them if they are not already present in the restart file.vtkIOSSReader
now caches time values internally to avoid filesystem contention on HPC systems.The new
vtkIOSSWriter
can write Exodus files using the IOSS library. For now, only element blocks, node sets, and side sets are supported.
Qt#
QVTKTableModelAdapter
may be used to provide aQAbstractItemModel
model as avtkTable
to use in a pipeline.
Rendering#
Basic OpenXR support is supported for virtual reality rendering.
The
vtkHyperTreeGridMapper
mapper may be used to render only visible parts of avtkHyperTreeGrid
in 2D.Rendering point sets may now use OSPRay’s “Particle Volume” when using
vtkPointGaussianMapper
’s ray tracing backend.vtkColorTransferFunction::AddRGBPoints
may now be called with points and colors in batches for much better performance.The
WindowLocation
API has moved fromvtkTextRepresentation
tovtkBorderRepresentation
so that it can be used by more classes.Volumetric shadows is now supported which allows for a volumetric model to cast shadows on itself. Requires volumetric shading to be enabled. An illumination reach parameter controls how accurate the shadows will be,
0
meaning only local shadows and1
for shadows across the entire volume.
Interactive rendering of most widgets are now supported with OSPRay.
Widgets#
The
vtkCoordinateFrameWidget
controls 3 orthogonal right-handed planes. Axes are rendered proportionally to the viewport size (and is configurable). Interaction may pick a basis point and choose alignment with a surface normal or another point. See this Discourse thread for discussion.vtkHardwarePicker
may be used to pick a point and normal by intersection with a mesh cell or nearest mesh point.
Testing#
The
vtkHyperTreeGridPreConfiguredSource
may be used to generate differentvtkHyperTreeGrid
datasets for testing purposes instead of hand-crafting them.
Wrapping#
Wrapping tools now support Unicode command line arguments.
vtkSmartPointer<T>
parameters and return values are now supported in wrapped Python APIs.std::vector<vtkSmartPointer<T>>
is also supported by appearing as atuple
in Python and conversion from any sequence when converting to C++.
Module System#
vtk_module_sources
is now provided as a wrapper aroundtarget_sources
for VTK module targets.vtk_module_add_module
now supports aNOWRAP_TEMPLATE_CLASSES
keyword for template classes which should not be wrapped.
Deprecated and Removed Features#
Legacy#
The following APIs were deprecated in 9.0 or earlier and are now removed:
vtkPlot::GetNearestPoint(const vtkVector2f&, const vtkVector2f&, vtkVector2f*)
vtkPlot::LegacyRecursionFlag
(used to help subclasses implement the replacement for the prior method)The following APIs have been replaced by
vtkOutputWindow::SetDisplayMode()
:vtkOutputWindow::SetUseStdErrorForAllMessages()
vtkOutputWindow::GetUseStdErrorForAllMessages()
vtkOutputWindow::UseStdErrorForAllMessagesOn()
vtkOutputWindow::UseStdErrorForAllMessagesOff()
vtkWin32OutputWindow::SetSendToStdErr()
vtkWin32OutputWindow::GetSendToStdErr()
vtkWin32OutputWindow::SendToStdErrOn()
vtkWin32OutputWindow::SendToStdErrOff()
vtkArrayDispatcher
,vtkDispatcher
,vtkDoubleDispatcher
have been replaced byvtkArrayDispatch
Fetching edge and face points via
int
rather thanvtkIdType
:vtkConvexPointSet::GetEdgePoints(int, int*&)
vtkConvexPointSet::GetFacePoints(int, int*&)
vtkHexagonalPrism::GetEdgePoints(int, int*&)
vtkHexagonalPrism::GetFacePoints(int, int*&)
vtkHexahedron::GetEdgePoints(int, int*&)
vtkHexahedron::GetFacePoints(int, int*&)
vtkPentagonalPrism::GetEdgePoints(int, int*&)
vtkPentagonalPrism::GetFacePoints(int, int*&)
vtkPolyhedron::GetEdgePoints(int, int*&)
vtkPolyhedron::GetFacePoints(int, int*&)
vtkPyramid::GetEdgePoints(int, int*&)
vtkPyramid::GetFacePoints(int, int*&)
vtkTetra::GetEdgePoints(int, int*&)
vtkTetra::GetFacePoints(int, int*&)
vtkVoxel::GetEdgePoints(int, int*&)
vtkVoxel::GetFacePoints(int, int*&)
vtkWedge::GetEdgePoints(int, int*&)
vtkWedge::GetFacePoints(int, int*&)
Querying point cells with an
unsigned short
count of cells:vtkPolyData::GetPointCells(vtkIdType, unsigned short&, vtkIdType*&)
vtkUnstructuredGrid::GetPointCells(vtkIdType, unsigned short&, vtkIdType*&)
vtkAlgorithm::SetProgress()
has been replaced byvtkAlgorithm::UpdateProgress()
The following APIs have been replaced by
vtkResourceFileLocator::SetLogVerbosity()
:vtkResourceFileLocator::SetPrintDebugInformation()
vtkResourceFileLocator::GetPrintDebugInformation()
vtkResourceFileLocator::PrintDebugInformationOn()
vtkResourceFileLocator::PrintDebugInformationOff()
vtkIdFilter::SetIdsArrayName()
has been replaced byvtkIdFilter::SetPointIdsArrayName()
andvtkIdFilter::SetCellIdsArrayName()
vtkExtractTemporalFieldData
has been replaced byvtkExtractExodusGlobalTemporalVariables
vtkTemporalStreamTracer
andvtkPTemporalStreamTracer
have been replaced byvtkParticleTracerBase
,vtkParticleTracer
,vtkParticlePathFilter
, orvtkStreaklineFilter
vtkHyperTreeGridSource::GetMaximumLevel()
andvtkHyperTreeGridSource::SetMaximumLevel()
have been replaced byvtkHyperTreeGridSource::GetMaxDepth()
andvtkHyperTreeGridSource::SetMaxDepth()
QVTKOpenGLNativeWidget
,QVTKOpenGLStereoWidget
,QVTKOpenGLWindow
methods have been removed:::SetRenderWindow()
is now::setRenderWindow()
::GetRenderWindow()
is now::renderWindow()
::GetInteractor()
andGetInteractorAdaptor()
have been removed::setQVTKCursor()
is nowQWidget::setCursor()
::setDefaultQVTKCursor()
is nowQWidget::setDefaultCursor()
QVTKOpenGLWidget
is replaced byQVTKOpenGLStereoWidget
vtkJSONDataSetWriter::{Get,Set}FileName()
is nowvtkJSONDataSetWriter::{Get,Set}ArchiveName()
vtkLineRepresentation::SetRestrictFlag()
has been removedThe following
vtkRenderWindow
methods have been removed:GetIsPicking()
SetIsPicking()
IsPickingOn()
IsPickingOff()
The following APIs have been replaced by
vtkShaderProperty
methods of the same names:vtkOpenGLPolyDataMapper::AddShaderReplacement()
vtkOpenGLPolyDataMapper::ClearShaderReplacement()
vtkOpenGLPolyDataMapper::ClearAllShaderReplacements()
vtkOpenGLPolyDataMapper::ClearAllShaderReplacements()
vtkOpenGLPolyDataMapper::SetVertexShaderCode()
vtkOpenGLPolyDataMapper::GetVertexShaderCode()
vtkOpenGLPolyDataMapper::SetFragmentShaderCode()
vtkOpenGLPolyDataMapper::GetFragmentShaderCode()
vtkOpenGLPolyDataMapper::SetGeometryShaderCode()
vtkOpenGLPolyDataMapper::GetGeometryShaderCode()
The following APIs have been removed (they supported the legacy shader replacements):
vtkOpenGLPolyDataMapper::GetLegacyShaderProperty()
vtkOpenGLPolyDataMapper::LegacyShaderProperty
The following APIs have been removed since only
FLOATING_POINT
mode is now supported:vtkValuePass::SetRenderingMode()
vtkValuePass::GetRenderingMode()
vtkValuePass::SetInputArrayToProcess()
vtkValuePass::SetInputComponentToProcess()
vtkValuePass::SetScalarRange()
vtkValuePass::IsFloatingPointModeSupported()
vtkValuePass::ColorToValue()
vtkPythonInterpreter::GetPythonVerboseFlag()
has been replaced byvtkPythonInterpreter::GetLogVerbosity()
vtkUnicodeString
andvtkUnicodeStringArray
have been removed. ThevtkString
andvtkStringArray
classes are now fully UTF-8 aware. UTF-16 conversion is no longer possible through VTK APIs.vtkVariant
support for__int64
andunsigned __int64
has been removed. They have returnedfalse
for years.
Core#
vtkCellTypes
no longer usesLocationArray
. It was used forvtkUnstructuredGrid
but is now stored with the class instead. As of this deprecation, all supported APIs are now onlystatic
methods.vtkUnstructuredGrid::GetCellTypes
is deprecated. Instead,vtkUnstructuredGrid::GetDistinctCellTypesArray
should be used to access the set of cell types present in the grid.vtkHyperTreeGrid::GetNumberOfVertices()
is nowvtkHyperTreeGrid::GetNumberOfCells()
to align with VTK’s usage of the terminology.Classes may now opt into the garbage collection mechanism by overriding the
UsesGarbageCollector()
method to returntrue
instead of via theRegister()
andUnRegister()
methods.vtkCriticalSection
is deprecated.vtkCriticalSection
was intended to be deprecated in VTK 9.1.0, but a warning was never added to it. VTK now has the warning present as it was originally intended.
Filters#
vtkChemistryConfigure.h
has been deprecated. It previously only provided information to VTK’s test suite which is now routed internally instead. There is no replacement and any usage can simply be removed.vtkMFCConfigure.h
has been deprecated. It used to provide information used during the module’s build that is now passed through command line flags instead. There is no replacement and any usage can simply be removed.vtkMeshQuality
’s mechanism to run the filter in legacy mode is deprecated. In particular theCompatibilityMode
andVolume
members are no longer necessary with the new mode and should not be used anymore.vtkMeshQuality
method renames:SetQuadQualityMeasureToMaxEdgeRatios
toSetQuadQualityMeasureToMaxEdgeRatio
SetHexQualityMeasureToMaxEdgeRatios
toSetHexQualityMeasureToMaxEdgeRatio
QuadMaxEdgeRatios
toQuadMaxEdgeRatio
TetShapeandSize
toTetShapeAndSize
vtkDescriptiveStatistics::UnbiasedVariance
,vtkDescriptiveStatistics::G1Skewness
, andvtkDescriptiveStatistics::G2Kurtosis
are now deprecated in favor of a singlevtkDescriptiveStatistics::SampleEstimate
instead.vtkCellLocator
,vtkStaticCellLocator
,vtkCellTreeLocator
,vtkModifiedBSPTree
, andvtkLinearTransformCellLocator
all have deprecated theirLazyEvaluation
flag due to thread-safety issues.BuildLocatorIfNeeded
is also deprecated for those that supported it.vtkStaticCellLocator:UseDiagonalLengthTolerance()
has been deprecated because it no longer usesTolerance
.vtkParticleTracerBase::StaticMesh
is deprecated in preference tovtkParticleTracerBase::SetMeshOverTime
(an enumeration rather than a boolean).vtkCachingInterpolatedVelocityField
,vtkCellLocatorInterpolatedVelocityField
, andvtkInterpolatedVelocityField
filters have been deprecated. Instead, use:vtkCellLocatorInterpolatedVelocityField
becomesvtkCompositeInterpolatedVelocityField
withvtkCellLocatorStrategy
.vtkInterpolatedVelocityField
becomesvtkCompositeInterpolatedVelocityField
withvtkClosestPointStrategy
.vtkCachingInterpolatedVelocityField
becomesvtkCompositeInterpolatedVelocityField
with the appropriate strategy.
Interaction#
vtkExtractSelectedThresholds
,vtkExtractSelectedPolyDataIds
,vtkExtractSelectedLocations
,vtkExtractSelectedIds
, andvtkExtractSelectedBlock
can now be replaced byvtkExtractSelection
.vtkHierarchicalBoxDataIterator
is now deprecated in favor ofvtkUniformGridAMRDataIterator
.
Rendering#
vtkOSPRayRendererNode::VOLUME_ANISOTROPY
,vtkOSPRayRendererNode::GetVolumeAnisotropy()
, andvtkOSPRayRendererNode::SetVolumeAnistropy()
are deprecated in favor ofvtkVolumeProperty::SetScatteringAnisotropy()
andvtkVolumeProperty::GetScatteringAnisotropy()
.