30 #include "vtkPVblockMeshReader.h" 33 #include "vtkDataArraySelection.h" 34 #include "vtkDataSet.h" 35 #include "vtkMultiBlockDataSet.h" 36 #include "vtkInformation.h" 44 inline word getFirstWord(
const char* str)
53 return word(str, n,
true);
69 void Foam::vtkPVblockMesh::AddToBlock
71 vtkMultiBlockDataSet* output,
73 const arrayRange& range,
74 const label datasetNo,
75 const std::string& datasetName
78 const int blockNo = range.block();
80 vtkDataObject* blockDO = output->GetBlock(blockNo);
81 vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
88 <<
"Block already has a vtkDataSet assigned to it" 94 output->SetBlock(blockNo, block);
100 Info<<
"block[" << blockNo <<
"] has " 101 << block->GetNumberOfBlocks()
102 <<
" datasets prior to adding set " << datasetNo
103 <<
" with name: " << datasetName <<
endl;
106 block->SetBlock(datasetNo, dataset);
111 output->GetMetaData(blockNo)->Set
113 vtkCompositeDataSet::NAME(),
118 if (datasetName.size())
120 block->GetMetaData(datasetNo)->Set
122 vtkCompositeDataSet::NAME(),
129 vtkDataSet* Foam::vtkPVblockMesh::GetDataSetFromBlock
131 vtkMultiBlockDataSet* output,
132 const arrayRange& range,
133 const label datasetNo
136 const int blockNo = range.block();
138 vtkDataObject* blockDO = output->GetBlock(blockNo);
139 vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
143 return vtkDataSet::SafeDownCast(block->GetBlock(datasetNo));
151 Foam::label Foam::vtkPVblockMesh::GetNumberOfDataSets
153 vtkMultiBlockDataSet* output,
154 const arrayRange& range
157 const int blockNo = range.block();
159 vtkDataObject* blockDO = output->GetBlock(blockNo);
160 vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
163 return block->GetNumberOfBlocks();
172 vtkDataArraySelection* select
175 int nElem = select->GetNumberOfArrays();
178 for (
int elemI=0; elemI < nElem; ++elemI)
180 if (select->GetArraySetting(elemI))
182 selections.insert(getFirstWord(select->GetArrayName(elemI)));
192 vtkDataArraySelection* select,
193 const arrayRange& range
196 int nElem = select->GetNumberOfArrays();
199 for (
int elemI = range.start(); elemI < range.end(); ++elemI)
201 if (select->GetArraySetting(elemI))
203 selections.insert(getFirstWord(select->GetArrayName(elemI)));
213 vtkDataArraySelection* select
216 stringList selections(select->GetNumberOfArrays());
221 if (select->GetArraySetting(elemI))
223 selections[nElem++] = select->GetArrayName(elemI);
226 selections.setSize(nElem);
231 label nElem = select->GetNumberOfArrays();
233 for (
int elemI = 0; elemI < nElem; ++elemI)
235 Info<<
" \"" << select->GetArrayName(elemI) <<
"\"";
237 Info<<
" )\nselected(";
241 Info<<
" " << selections[elemI];
252 vtkDataArraySelection* select,
253 const arrayRange& range
259 for (
int elemI = range.start(); elemI < range.end(); ++elemI)
261 if (select->GetArraySetting(elemI))
263 selections[nElem++] = select->GetArrayName(elemI);
266 selections.setSize(nElem);
272 for (
int elemI = range.start(); elemI < range.end(); ++elemI)
274 Info<<
" \"" << select->GetArrayName(elemI) <<
"\"";
276 Info<<
" )\nselected(";
280 Info<<
" " << selections[elemI];
289 void Foam::vtkPVblockMesh::setSelectedArrayEntries
291 vtkDataArraySelection* select,
295 const int nElem = select->GetNumberOfArrays();
296 select->DisableAllArrays();
299 for (
int elemI=0; elemI < nElem; ++elemI)
301 string arrayName(select->GetArrayName(elemI));
305 if (selections[elemI] == arrayName)
307 select->EnableArray(arrayName.c_str());
315 void Foam::vtkPVblockMesh::updateBoolListStatus
318 vtkDataArraySelection* selection
323 Info<<
"<beg> Foam::vtkPVblockMesh::updateBoolListStatus" <<
endl;
326 const label nElem = selection->GetNumberOfArrays();
327 if (status.size() != nElem)
329 status.setSize(nElem);
335 const int setting = selection->GetArraySetting(elemI);
337 status[elemI] = setting;
341 Info<<
" part[" << elemI <<
"] = " 343 <<
" : " << selection->GetArrayName(elemI) <<
endl;
348 Info<<
"<end> Foam::vtkPVblockMesh::updateBoolListStatus" <<
endl;
static bool valid(char)
Is this character valid for a word.
A HashTable with keys but without contents.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
List< bool > boolList
Bool container classes.
static const word null
An empty word.
HashSet wordHashSet
A HashSet with word keys.
List< string > stringList
A List of strings.