VTK  9.1.0
vtkAMRBaseParticlesReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAMRBaseParticlesReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14  =========================================================================*/
21 #ifndef vtkAMRBaseParticlesReader_h
22 #define vtkAMRBaseParticlesReader_h
23 
24 #include "vtkIOAMRModule.h" // For export macro
26 
27 class vtkInformation;
29 class vtkIndent;
31 class vtkPolyData;
33 class vtkCallbackCommand;
34 
36 {
37 public:
39  void PrintSelf(ostream& os, vtkIndent indent) override;
40 
42 
45  vtkGetMacro(Frequency, int);
46  vtkSetMacro(Frequency, int);
48 
50 
53  vtkGetMacro(Controller, vtkMultiProcessController*);
54  vtkSetMacro(Controller, vtkMultiProcessController*);
56 
58 
61  vtkSetMacro(FilterLocation, vtkTypeBool);
62  vtkGetMacro(FilterLocation, vtkTypeBool);
63  vtkBooleanMacro(FilterLocation, vtkTypeBool);
65 
67 
71  vtkGetObjectMacro(ParticleDataArraySelection, vtkDataArraySelection);
73 
78 
83  const char* GetParticleArrayName(int index);
84 
86 
89  int GetParticleArrayStatus(const char* name);
90  void SetParticleArrayStatus(const char* name, int status);
92 
93  virtual void SetFileName(VTK_FILEPATH const char* fileName);
95 
97 
100  inline void SetMinLocation(const double minx, const double miny, const double minz)
101  {
102  this->MinLocation[0] = minx;
103  this->MinLocation[1] = miny;
104  this->MinLocation[2] = minz;
105  }
107 
109 
112  inline void SetMaxLocation(const double maxx, const double maxy, const double maxz)
113  {
114  this->MaxLocation[0] = maxx;
115  this->MaxLocation[1] = maxy;
116  this->MaxLocation[2] = maxz;
117  }
119 
123  virtual int GetTotalNumberOfParticles() = 0;
124 
125 protected:
128 
135  virtual void ReadMetaData() = 0;
136 
141  virtual vtkPolyData* ReadParticles(const int blkIdx) = 0;
142 
149  bool CheckLocation(const double x, const double y, const double z);
150 
154  bool IsParallel();
155 
160  bool IsBlockMine(const int blkIdx);
161 
169  int GetBlockProcessId(const int blkIdx);
170 
175  void Initialize();
176 
178 
184 
191 
196  virtual void SetupParticleDataSelections() = 0;
197 
203  vtkObject* caller, unsigned long eid, void* clientdata, void* calldata);
204 
206 
209  int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
210  vtkInformationVector* outputVector) override;
213 
215 
217  double MinLocation[3];
218  double MaxLocation[3];
219 
222 
225  char* FileName;
226 
227 private:
229  void operator=(const vtkAMRBaseParticlesReader&) = delete;
230 };
231 
232 #endif /* vtkAMRBaseParticlesReader_h */
vtkAMRBaseParticlesReader::FileName
char * FileName
Definition: vtkAMRBaseParticlesReader.h:225
vtkAMRBaseParticlesReader::SetMaxLocation
void SetMaxLocation(const double maxx, const double maxy, const double maxz)
Sets the max location.
Definition: vtkAMRBaseParticlesReader.h:112
vtkAMRBaseParticlesReader::Controller
vtkMultiProcessController * Controller
Definition: vtkAMRBaseParticlesReader.h:221
vtkAMRBaseParticlesReader::ParticleDataArraySelection
vtkDataArraySelection * ParticleDataArraySelection
Standard Array selection variables & methods.
Definition: vtkAMRBaseParticlesReader.h:181
vtkAMRBaseParticlesReader::IsBlockMine
bool IsBlockMine(const int blkIdx)
Determines if the block associated with the given block index belongs to the process that executes th...
vtkAMRBaseParticlesReader::RequestData
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Standard pipeline operations.
vtkAMRBaseParticlesReader::NumberOfBlocks
int NumberOfBlocks
Definition: vtkAMRBaseParticlesReader.h:214
vtkAMRBaseParticlesReader::IsParallel
bool IsParallel()
Determines whether this reader instance is running in parallel or not.
vtkAMRBaseParticlesReader::SelectionObserver
vtkCallbackCommand * SelectionObserver
Standard Array selection variables & methods.
Definition: vtkAMRBaseParticlesReader.h:182
vtkAMRBaseParticlesReader::ReadParticles
virtual vtkPolyData * ReadParticles(const int blkIdx)=0
Reads the particles corresponding to the block associated with the given supplied block index.
vtkAMRBaseParticlesReader::SelectionModifiedCallback
static void SelectionModifiedCallback(vtkObject *caller, unsigned long eid, void *clientdata, void *calldata)
Call-back registered with the SelectionObserver for selecting/deselecting particles.
VTK_FILEPATH
#define VTK_FILEPATH
Definition: vtkWrappingHints.h:46
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:145
vtkAMRBaseParticlesReader::GetBlockProcessId
int GetBlockProcessId(const int blkIdx)
Given the block index, this method determines the process Id.
vtkAMRBaseParticlesReader::~vtkAMRBaseParticlesReader
~vtkAMRBaseParticlesReader() override
vtkAMRBaseParticlesReader::vtkGetFilePathMacro
vtkGetFilePathMacro(FileName)
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:82
vtkAMRBaseParticlesReader::GetParticleArrayStatus
int GetParticleArrayStatus(const char *name)
Get/Set whether the particle array status.
vtkAMRBaseParticlesReader::Initialized
bool Initialized
Definition: vtkAMRBaseParticlesReader.h:224
vtkAMRBaseParticlesReader::Initialize
void Initialize()
Initializes the AMR Particles reader NOTE: must be called in the constructor of concrete classes.
vtkAMRBaseParticlesReader::Frequency
int Frequency
Definition: vtkAMRBaseParticlesReader.h:220
vtkAMRBaseParticlesReader::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkAMRBaseParticlesReader::FillOutputPortInformation
int FillOutputPortInformation(int port, vtkInformation *info) override
Standard pipeline operations.
vtkDataArraySelection
Store on/off settings for data arrays for a vtkSource.
Definition: vtkDataArraySelection.h:35
vtkX3D::port
@ port
Definition: vtkX3D.h:453
vtkAMRBaseParticlesReader::ReadMetaData
virtual void ReadMetaData()=0
Reads the metadata, e.g., the number of blocks in the file.
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:77
vtkAMRBaseParticlesReader
An abstract base class that implements all the common functionality for all particle readers.
Definition: vtkAMRBaseParticlesReader.h:36
vtkAMRBaseParticlesReader::GetNumberOfParticleArrays
int GetNumberOfParticleArrays()
Get the number of particles arrays available in the input.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkMultiBlockDataSetAlgorithm.h
vtkAMRBaseParticlesReader::CheckLocation
bool CheckLocation(const double x, const double y, const double z)
Filters particles by their location.
vtkAMRBaseParticlesReader::SetMinLocation
void SetMinLocation(const double minx, const double miny, const double minz)
Sets the min location.
Definition: vtkAMRBaseParticlesReader.h:100
vtkAMRBaseParticlesReader::GetTotalNumberOfParticles
virtual int GetTotalNumberOfParticles()=0
Returns the total number of particles.
vtkX3D::name
@ name
Definition: vtkX3D.h:225
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:183
vtkAMRBaseParticlesReader::InitializeParticleDataSelections
void InitializeParticleDataSelections()
Initializes the ParticleDataArraySelection object.
vtkX3D::info
@ info
Definition: vtkX3D.h:382
vtkAMRBaseParticlesReader::vtkAMRBaseParticlesReader
vtkAMRBaseParticlesReader()
vtkAMRBaseParticlesReader::SetupParticleDataSelections
virtual void SetupParticleDataSelections()=0
Sets up the ParticleDataArraySelection.
vtkAMRBaseParticlesReader::SetFileName
virtual void SetFileName(VTK_FILEPATH const char *fileName)
vtkAMRBaseParticlesReader::FilterLocation
vtkTypeBool FilterLocation
Definition: vtkAMRBaseParticlesReader.h:216
vtkAMRBaseParticlesReader::InitialRequest
bool InitialRequest
Definition: vtkAMRBaseParticlesReader.h:223
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
vtkCallbackCommand
supports function callbacks
Definition: vtkCallbackCommand.h:154
vtkAMRBaseParticlesReader::SetParticleArrayStatus
void SetParticleArrayStatus(const char *name, int status)
Get/Set whether the particle array status.
vtkX3D::index
@ index
Definition: vtkX3D.h:252
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkAMRBaseParticlesReader::GetParticleArrayName
const char * GetParticleArrayName(int index)
Get the particle array name of the array associated with the given index.
vtkMultiBlockDataSetAlgorithm
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Definition: vtkMultiBlockDataSetAlgorithm.h:33