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

Function ConvertDataArrayToMCArray

IO/CatalystConduit/vtkDataObjectToConduit.cxx:231–348  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

229
230//----------------------------------------------------------------------------
231bool ConvertDataArrayToMCArray(vtkDataArray* dataArray, int offset, int stride,
232 conduit_cpp::Node& conduitNode, int arraySize = -1, bool external = true)
233{
234 stride = std::max(stride, 1);
235
236 conduit_index_t numberOfElements;
237 if (arraySize == -1)
238 {
239 numberOfElements = dataArray->GetNumberOfValues() / stride;
240 }
241 else
242 {
243 numberOfElements = arraySize / stride;
244 }
245
246 int dataType = dataArray->GetDataType();
247 int dataTypeSize = dataArray->GetDataTypeSize();
248 int arrayType = dataArray->GetArrayType();
249
250 if (arrayType != vtkArrayTypes::VTK_AOS_DATA_ARRAY &&
251 arrayType != vtkArrayTypes::VTK_SOA_DATA_ARRAY)
252 {
253 vtkLog(ERROR,
254 "Unsupported data array type: " << dataArray->GetArrayTypeAsString() << " for array "
255 << dataArray->GetName());
256 return false;
257 }
258
259 // The code below uses the legacy GetVoidPointer on purpose to get zero copy.
260 bool is_supported = true;
261 if (::IsSignedIntegralType(dataType))
262 {
263 switch (dataType)
264 {
265 vtkTemplateMacro(switch (dataTypeSize) {
266 case 1:
267 conduit_set_array(
268 conduitNode, dataArray, int8, VTK_TT, numberOfElements, offset, stride, external);
269 break;
270
271 case 2:
272 conduit_set_array(
273 conduitNode, dataArray, int16, VTK_TT, numberOfElements, offset, stride, external);
274 break;
275
276 case 4:
277 conduit_set_array(
278 conduitNode, dataArray, int32, VTK_TT, numberOfElements, offset, stride, external);
279 break;
280
281 case 8:
282 conduit_set_array(
283 conduitNode, dataArray, int64, VTK_TT, numberOfElements, offset, stride, external);
284 break;
285
286 default:
287 is_supported = false;
288 });

Callers 4

FillMixedShapeFunction · 0.85
FillTopologyFunction · 0.85
FillFieldArrayValuesFunction · 0.85
FillFieldsFunction · 0.85

Calls 13

IsSignedIntegralTypeFunction · 0.85
IsUnsignedIntegralTypeFunction · 0.85
IsFloatTypeFunction · 0.85
GetArrayTypeMethod · 0.80
GetArrayTypeAsStringMethod · 0.80
maxFunction · 0.50
to_stringFunction · 0.50
GetNumberOfValuesMethod · 0.45
GetDataTypeMethod · 0.45
GetDataTypeSizeMethod · 0.45
GetNameMethod · 0.45
GetNumberOfComponentsMethod · 0.45

Tested by

no test coverage detected