27#ifndef vtkAMRResampleFilter_h 
   28#define vtkAMRResampleFilter_h 
   30#include "vtkFiltersAMRModule.h"  
   34VTK_ABI_NAMESPACE_BEGIN
 
   59  vtkSetVector3Macro(NumberOfSamples, 
int);
 
   60  vtkGetVector3Macro(NumberOfSamples, 
int);
 
   76  vtkSetMacro(DemandDrivenMode, 
int);
 
   77  vtkGetMacro(DemandDrivenMode, 
int);
 
   84  vtkSetMacro(NumberOfPartitions, 
int);
 
   85  vtkGetMacro(NumberOfPartitions, 
int);
 
   92  vtkSetVector3Macro(Min, 
double);
 
   93  vtkGetVector3Macro(Min, 
double);
 
  100  vtkSetVector3Macro(Max, 
double);
 
  101  vtkGetVector3Macro(Max, 
double);
 
  108  vtkSetMacro(UseBiasVector, 
bool);
 
  109  vtkGetMacro(UseBiasVector, 
bool);
 
  118  vtkSetVector3Macro(BiasVector, 
double);
 
  119  vtkGetVector3Macro(BiasVector, 
double);
 
  154  int NumberOfSamples[3];
 
  155  int GridNumberOfSamples[3];
 
  166  double BiasVector[3];
 
  227    unsigned int& gridId, 
int& donorCellIdx);
 
  293    double h[3], 
int dims[3], 
double& rf);
 
  299    double domainMin[3], 
double domainMax[3], 
double regionMin[3], 
double regionMax[3]);
 
  320  void SnapBounds(
const double h0[3], 
const double domainMin[3], 
const double domainMax[3],
 
  321    const int dims[3], 
bool outside[6]);
 
  359    unsigned int& level, 
unsigned int& gridId, 
int& 
id);
 
  366    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
 
Represents and manipulates a collection of data arrays.
 
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 vtkCartesianGrid 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 *)