24#ifndef vtkAMRResampleFilter_h
25#define vtkAMRResampleFilter_h
27#include "vtkFiltersAMRModule.h"
31VTK_ABI_NAMESPACE_BEGIN
56 vtkSetVector3Macro(NumberOfSamples,
int);
57 vtkGetVector3Macro(NumberOfSamples,
int);
73 vtkSetMacro(DemandDrivenMode,
int);
74 vtkGetMacro(DemandDrivenMode,
int);
81 vtkSetMacro(NumberOfPartitions,
int);
82 vtkGetMacro(NumberOfPartitions,
int);
89 vtkSetVector3Macro(Min,
double);
90 vtkGetVector3Macro(Min,
double);
97 vtkSetVector3Macro(Max,
double);
98 vtkGetVector3Macro(Max,
double);
105 vtkSetMacro(UseBiasVector,
bool);
106 vtkGetMacro(UseBiasVector,
bool);
115 vtkSetVector3Macro(BiasVector,
double);
116 vtkGetVector3Macro(BiasVector,
double);
151 int NumberOfSamples[3];
152 int GridNumberOfSamples[3];
163 double BiasVector[3];
224 unsigned int& gridId,
int& donorCellIdx);
290 double h[3],
int dims[3],
double& rf);
296 double domainMin[3],
double domainMax[3],
double regionMin[3],
double regionMax[3]);
317 void SnapBounds(
const double h0[3],
const double domainMin[3],
const double domainMax[3],
318 const int dims[3],
bool outside[6]);
356 unsigned int& level,
unsigned int& gridId,
int&
id);
363 double q[3],
vtkOverlappingAMR* amrds,
unsigned int& level,
unsigned int& gridId,
int&
id);
Encloses a rectangular region of voxel like cells.
This filter is a concrete instance of vtkMultiBlockDataSetAlgorithm and provides functionality for ex...
bool IsBlockWithinBounds(double *grd)
Checks if the AMR block, described by a uniform grid, is within the bounds of the ROI perscribed by t...
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
void SearchGridDecendants(double q[3], vtkOverlappingAMR *amrds, unsigned int maxLevel, unsigned int &level, unsigned int &gridId, int &id)
Writes a uniform grid to a file.
int NumberOfBlocksVisSkipped
void TransferToGridNodes(vtkUniformGrid *g, vtkOverlappingAMR *amrds)
Transfer the solution from the AMR dataset to the nodes of the given uniform grid.
static vtkAMRResampleFilter * New()
void ComputeCellCentroid(vtkUniformGrid *g, vtkIdType cellIdx, double c[3])
Given a cell index and a grid, this method computes the cell centroid.
void ExtractRegion(vtkOverlappingAMR *amrds, vtkMultiBlockDataSet *mbds, vtkOverlappingAMR *metadata)
Extract the region (as a multiblock) from the given AMR dataset.
vtkOverlappingAMR * AMRMetaData
vtkTypeBool TransferToNodes
bool IsParallel()
Checks if this filter instance is running on more than one processes.
bool GridsIntersect(double *g1, double *g2)
Checks if two uniform grids intersect.
bool IsRegionMine(int regionIdx)
Given the Region ID this function returns whether or not the region belongs to this process or not.
void ComputeLevelOfResolution(const int N[3], const double h0[3], const double L[3], double rf)
This method computes the level of resolution based on the number of samples requested,...
void TransferToCellCenters(vtkUniformGrid *g, vtkOverlappingAMR *amrds)
Transfers the solution from the AMR dataset to the cell-centers of the given uniform grid.
int ProbeGridPointInAMR(double q[3], unsigned int &donorLevel, unsigned int &donorGridId, vtkOverlappingAMR *amrds, unsigned int maxLevel, bool hadDonorGrid)
Finds the AMR grid that contains the point q.
bool RegionIntersectsWithAMR(double domainMin[3], double domainMax[3], double regionMin[3], double regionMax[3])
Checks if the domain and requested region intersect.
int GetRegionProcessId(int regionIdx)
Given the Region ID, this method computes the corresponding process ID that owns the region based on ...
vtkMultiBlockDataSet * ROI
void CopyData(vtkFieldData *target, vtkIdType targetIdx, vtkCellData *src, vtkIdType srcIdx)
Copies the data to the target from the given source.
vtkUniformGrid * GetReferenceGrid(vtkOverlappingAMR *amrds)
Returns a reference grid from the amrdataset.
void AdjustNumberOfSamplesInRegion(const double Rh[3], const bool outside[6], int N[3])
This method adjust the numbers of samples in the region, N, if the requested region falls outside,...
void ComputeAMRBlocksToLoad(vtkOverlappingAMR *metadata)
Given a user-supplied region of interest and the metadata by a module upstream, this method generates...
void ComputeRegionParameters(vtkOverlappingAMR *amrds, int N[3], double min[3], double max[3], double h[3])
Computes the region parameters.
void PrintSelf(ostream &oss, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void InitializeFields(vtkFieldData *f, vtkIdType size, vtkCellData *src)
Given the source cell data of an AMR grid, this method initializes the field values,...
void SnapBounds(const double h0[3], const double domainMin[3], const double domainMax[3], const int dims[3], bool outside[6])
This method snaps the bounds s.t.
bool SearchForDonorGridAtLevel(double q[3], vtkOverlappingAMR *amrds, unsigned int level, unsigned int &gridId, int &donorCellIdx)
Given a query point q and a target level, this method finds a suitable grid at the given level that c...
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Performs upstream requests to the reader.
int NumberOfTimesFoundOnDonorLevel
int NumberOfBlocksTestedForLevel
void GetDomainParameters(vtkOverlappingAMR *amr, double domainMin[3], double domainMax[3], double h[3], int dims[3], double &rf)
This method accesses the domain boundaries.
virtual void SetController(vtkMultiProcessController *)
Set & Get macro for the multi-process controller.
~vtkAMRResampleFilter() override
int NumberOfTimesLevelDown
void TransferSolution(vtkUniformGrid *g, vtkOverlappingAMR *amrds)
Transfers the solution.
vtkMultiProcessController * Controller
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
bool FoundDonor(double q[3], vtkUniformGrid *&donorGrid, int &cellIdx)
Given a query point q and a candidate donor grid, this method checks for the corresponding donor cell...
void GetRegion(double h[3])
This method gets the region of interest as perscribed by the user.
int RequestInformation(vtkInformation *rqst, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Gets the metadata from upstream module and determines which blocks should be loaded by this instance.
int ProbeGridPointInAMRGraph(double q[3], unsigned int &donorLevel, unsigned int &donorGridId, vtkOverlappingAMR *amrds, unsigned int maxLevel, bool useCached)
Finds the AMR grid that contains the point q.
std::vector< int > BlocksToLoad
void ComputeAndAdjustRegionParameters(vtkOverlappingAMR *amrds, double h[3])
This method computes and adjusts the region parameters s.t.
bool SearchGridAncestors(double q[3], vtkOverlappingAMR *amrds, unsigned int &level, unsigned int &gridId, int &id)
Find an ancestor of the specified grid that contains the point.
represent and manipulate cell attribute data
represent and manipulate fields of data
a simple class to control print indentation
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Composite dataset that organizes datasets into blocks.
Multiprocessing communication superclass.
a multi-resolution dataset based on vtkUniformGrid allowing overlaps
represent and manipulate point attribute data
Computes the portion of a dataset which is inside a selection.
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)