16#include "libmesh/bounding_box.h"
17#include "libmesh/mesh_base.h"
20#ifdef LIBMESH_HAVE_VTK
24#include "libmesh/ignore_warnings.h"
33#ifndef MOOSE_VTK_UNDEF_NLOHMANNJSON_HEADER_GUARDS
34#define MOOSE_VTK_UNDEF_NLOHMANNJSON_HEADER_GUARDS 0
37#if __has_include("vtk_nlohmannjson.h")
38#include "vtk_nlohmannjson.h"
39#if !VTK_MODULE_USE_EXTERNAL_vtknlohmannjson
40#undef MOOSE_VTK_UNDEF_NLOHMANNJSON_HEADER_GUARDS
41#define MOOSE_VTK_UNDEF_NLOHMANNJSON_HEADER_GUARDS 1
45#error "Could not auto-detect whether VTK built with external nlohmann json. \
46Define MOOSE_VTK_UNDEF_NLOHMANNJSON_HEADER_GUARDS=1 if built with vendored nlohmann \
47, otherwise define MOOSE_VTK_UNDEF_NLOHMANNJSON_HEADER_GUARDS=0"
51#if MOOSE_VTK_UNDEF_NLOHMANNJSON_HEADER_GUARDS && !defined(MOOSE_VTK_NLOHMANN_INCLUDED)
52#undef INCLUDE_NLOHMANN_JSON_FWD_HPP_
53#define MOOSE_VTK_NLOHMANN_INCLUDED
56#include "vtkSmartPointer.h"
57#include "vtkPNGReader.h"
58#include "vtkTIFFReader.h"
59#include "vtkImageData.h"
60#include "vtkStringArray.h"
61#include "vtkImageBinaryThreshold.h"
62#include "vtkImageNormalize.h"
63#include "vtkImageCast.h"
64#include "vtkImageShiftScale.h"
65#include "vtkImageMagnitude.h"
66#include "vtkImageFlip.h"
74#include "libmesh/restore_warnings.h"
133#ifdef LIBMESH_HAVE_VTK
165#ifdef LIBMESH_HAVE_VTK
166 vtkSmartPointer<vtkImageFlip>
imageFlip(
const int & axis);
182#ifdef LIBMESH_HAVE_VTK
A helper class for re-directing output streams to Console output objects form MooseObjects.
To be called in the validParams functions of classes that need to operate on ranges of files.
A helper class for reading and sampling images using VTK, but with a Meshbase object.
std::vector< int > _dims
Pixel dimension of image.
virtual libMesh::Real sample(const libMesh::Point &p)
Return the pixel value for the given point.
libMesh::Point _physical_dims
Physical dimensions of image.
std::vector< double > _voxel
Physical pixel size.
static InputParameters validParams()
Constructor.
vtkAlgorithmOutput * _algorithm
VTK-6 seems to work better in terms of "algorithm outputs" rather than vtkImageData pointers....
virtual void setupImageSampler(libMesh::MeshBase &mesh)
Perform initialization of image data.
vtkSmartPointer< vtkImageShiftScale > _shift_scale_filter
Pointer to the shift and scaling filter.
vtkSmartPointer< vtkImageReader2 > _image
Complete image data.
const InputParameters & _is_pars
Parameters for interface.
unsigned int _component
Component to extract.
vtkSmartPointer< vtkStringArray > _files
List of file names to extract data.
vtkSmartPointer< vtkImageMagnitude > _magnitude_filter
Pointer to the magnitude filter.
libMesh::Point _origin
Origin of image.
ConsoleStream _is_console
Create a console stream object for this helper class.
void vtkThreshold()
Perform thresholding.
vtkImageData * _data
Complete image data.
vtkSmartPointer< vtkImageFlip > _flip_filter
Pointers to image flipping filter. May be used for x, y, or z.
void vtkMagnitude()
Convert the image to greyscale.
void vtkFlip()
Perform image flipping.
vtkSmartPointer< vtkImageFlip > imageFlip(const int &axis)
Helper method for flipping image.
void vtkShiftAndScale()
Apply image re-scaling using the vtkImageShiftAndRescale object.
vtkSmartPointer< vtkImageBinaryThreshold > _image_threshold
Pointer to thresholding filter.
libMesh::BoundingBox _bounding_box
Bounding box for testing points.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real