MCPcopy Create free account
hub / github.com/Kitware/VTK / DeSerializeToSubExtent

Method DeSerializeToSubExtent

Parallel/Core/vtkFieldDataSerializer.cxx:201–249  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

199
200//------------------------------------------------------------------------------
201void vtkFieldDataSerializer::DeSerializeToSubExtent(
202 int subext[6], int gridExtent[6], vtkFieldData* fieldData, vtkMultiProcessStream& bytestream)
203{
204 assert("pre: sub-extent outside grid-extent" && vtkStructuredExtent::Smaller(subext, gridExtent));
205
206 if (fieldData == nullptr)
207 {
208 vtkGenericWarningMacro("Field data is nullptr!");
209 return;
210 }
211
212 int numArrays = 0;
213 bytestream >> numArrays;
214 assert("post: numArrays mismatch!" && (numArrays == fieldData->GetNumberOfArrays()));
215
216 int ijk[3];
217 for (int array = 0; array < numArrays; ++array)
218 {
219 vtkDataArray* dataArray = nullptr;
220 bytestream.Pop(dataArray);
221 assert("post: dataArray is nullptr!" && (dataArray != nullptr));
222 assert("post: fieldData does not have array!" && fieldData->HasArray(dataArray->GetName()));
223
224 vtkDataArray* targetArray = fieldData->GetArray(dataArray->GetName());
225 assert("post: ncomp mismatch!" &&
226 (dataArray->GetNumberOfComponents() == targetArray->GetNumberOfComponents()));
227
228 for (ijk[0] = subext[0]; ijk[0] <= subext[1]; ++ijk[0])
229 {
230 for (ijk[1] = subext[2]; ijk[1] <= subext[3]; ++ijk[1])
231 {
232 for (ijk[2] = subext[4]; ijk[2] <= subext[5]; ++ijk[2])
233 {
234 vtkIdType sourceIdx = vtkStructuredData::ComputePointIdForExtent(subext, ijk);
235 assert("post: sourceIdx out-of-bounds!" && (sourceIdx >= 0) &&
236 (sourceIdx < dataArray->GetNumberOfTuples()));
237
238 vtkIdType targetIdx = vtkStructuredData::ComputePointIdForExtent(gridExtent, ijk);
239 assert("post: targetIdx out-of-bounds!" && (targetIdx >= 0) &&
240 (targetIdx < targetArray->GetNumberOfTuples()));
241
242 targetArray->SetTuple(targetIdx, sourceIdx, dataArray);
243 } // END for all k
244 } // END for all j
245 } // END for all i
246
247 dataArray->Delete();
248 } // END for all arrays
249}
250
251//------------------------------------------------------------------------------
252vtkDataArray* vtkFieldDataSerializer::ExtractSubExtentData(

Callers

nothing calls this directly

Calls 10

DeleteMethod · 0.65
assertFunction · 0.50
GetNumberOfArraysMethod · 0.45
PopMethod · 0.45
HasArrayMethod · 0.45
GetNameMethod · 0.45
GetArrayMethod · 0.45
GetNumberOfComponentsMethod · 0.45
GetNumberOfTuplesMethod · 0.45
SetTupleMethod · 0.45

Tested by

no test coverage detected