30 #include "vtkPVFoamReader.h"
38 #include "vtkDataArraySelection.h"
39 #include "vtkDataSet.h"
40 #include "vtkMultiBlockDataSet.h"
41 #include "vtkInformation.h"
48 inline word getFirstWord(
const char* str)
57 return word(str,
n,
true);
71 void Foam::vtkPVFoam::AddToBlock
73 vtkMultiBlockDataSet* output,
75 const arrayRange&
range,
76 const label datasetNo,
77 const std::string& datasetName
80 const int blockNo =
range.block();
82 vtkDataObject* blockDO = output->GetBlock(blockNo);
83 vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
90 <<
"Block already has a vtkDataSet assigned to it"
95 output->SetBlock(blockNo, block);
99 block->SetBlock(datasetNo, dataset);
104 output->GetMetaData(blockNo)->Set
106 vtkCompositeDataSet::NAME(),
111 if (datasetName.size())
113 block->GetMetaData(datasetNo)->Set
115 vtkCompositeDataSet::NAME(),
122 vtkDataSet* Foam::vtkPVFoam::GetDataSetFromBlock
124 vtkMultiBlockDataSet* output,
125 const arrayRange&
range,
126 const label datasetNo
129 const int blockNo =
range.block();
131 vtkDataObject* blockDO = output->GetBlock(blockNo);
132 vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
136 return vtkDataSet::SafeDownCast(block->GetBlock(datasetNo));
145 vtkMultiBlockDataSet* output,
146 const arrayRange&
range
149 const int blockNo =
range.block();
151 vtkDataObject* blockDO = output->GetBlock(blockNo);
152 vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
155 return block->GetNumberOfBlocks();
162 Foam::word Foam::vtkPVFoam::getPartName(
const int partId)
164 return getFirstWord(reader_->GetPartArrayName(partId));
170 vtkDataArraySelection* select
173 int nElem = select->GetNumberOfArrays();
176 for (
int elemI=0; elemI < nElem; ++elemI)
178 if (select->GetArraySetting(elemI))
180 selections.insert(getFirstWord(select->GetArrayName(elemI)));
190 vtkDataArraySelection* select,
191 const arrayRange&
range
194 int nElem = select->GetNumberOfArrays();
197 for (
int elemI =
range.start(); elemI <
range.end(); ++elemI)
199 if (select->GetArraySetting(elemI))
201 selections.insert(getFirstWord(select->GetArrayName(elemI)));
211 vtkDataArraySelection* select,
215 stringList selections(select->GetNumberOfArrays());
221 if (select->GetArraySetting(elemI))
223 selections[nElem++] = select->GetArrayName(elemI);
227 selections.setSize(nElem);
230 const label nAvailableElem = select->GetNumberOfArrays();
232 for (
int elemI = 0; elemI < nAvailableElem; ++elemI)
234 DebugInfo<<
" \"" << select->GetArrayName(elemI) <<
"\"";
249 vtkDataArraySelection* select,
250 const arrayRange&
range,
258 for (
int elemI =
range.start(); elemI <
range.end(); ++elemI)
260 if (select->GetArraySetting(elemI))
262 selections[nElem++] = select->GetArrayName(elemI);
266 selections.setSize(nElem);
270 for (
int elemI =
range.start(); elemI <
range.end(); ++elemI)
272 DebugInfo<<
" \"" << select->GetArrayName(elemI) <<
"\"";
285 void Foam::vtkPVFoam::setSelectedArrayEntries
287 vtkDataArraySelection* select,
291 const int nElem = select->GetNumberOfArrays();
292 select->DisableAllArrays();
295 for (
int elemI=0; elemI < nElem; ++elemI)
297 string arrayName(select->GetArrayName(elemI));
301 if (selections[elemI] == arrayName)
303 select->EnableArray(arrayName.c_str());
#define forAll(list, i)
Loop across all elements in list.
A HashTable with keys but without contents.
A class for handling words, derived from string.
static bool valid(char)
Is this character valid for a word.
static const word null
An empty word.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define DebugInfo
Report an information message using Foam::Info.
#define DebugInFunction
Report an information message using Foam::Info.
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
HashSet wordHashSet
A HashSet with word keys.
List< string > stringList
A List of strings.