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

Method TransformDataArray

Filters/Parallel/vtkAngularPeriodicFilter.cxx:244–308  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

242
243//------------------------------------------------------------------------------
244vtkDataArray* vtkAngularPeriodicFilter::TransformDataArray(
245 vtkDataArray* inputArray, double angle, bool useCenter, bool normalize)
246{
247 vtkDataArray* periodicArray = nullptr;
248 switch (inputArray->GetDataType())
249 {
250 case VTK_FLOAT:
251 {
252 vtkAngularPeriodicDataArray<float>* pArray = vtkAngularPeriodicDataArray<float>::New();
253 pArray->SetAxis(this->RotationAxis);
254 pArray->SetAngle(angle);
255 if (useCenter)
256 {
257 pArray->SetCenter(this->Center);
258 }
259 pArray->SetNormalize(normalize);
260 pArray->InitializeArray(vtkArrayDownCast<vtkFloatArray>(inputArray));
261 if (this->ComputeRotationsOnTheFly)
262 {
263 periodicArray = pArray;
264 }
265 else
266 {
267 vtkFloatArray* concrete = vtkFloatArray::New();
268 concrete->DeepCopy(pArray); // instantiate the array
269 periodicArray = concrete;
270 pArray->Delete();
271 }
272 break;
273 }
274 case VTK_DOUBLE:
275 {
276 vtkAngularPeriodicDataArray<double>* pArray = vtkAngularPeriodicDataArray<double>::New();
277 pArray->SetAxis(this->RotationAxis);
278 pArray->SetAngle(angle);
279 if (useCenter)
280 {
281 pArray->SetCenter(this->Center);
282 }
283 pArray->SetNormalize(normalize);
284 pArray->InitializeArray(vtkArrayDownCast<vtkDoubleArray>(inputArray));
285 if (this->ComputeRotationsOnTheFly)
286 {
287 periodicArray = pArray;
288 }
289 else
290 {
291 vtkDoubleArray* concrete = vtkDoubleArray::New();
292 concrete->DeepCopy(pArray); // instantiate the array
293 periodicArray = concrete;
294 pArray->Delete();
295 }
296 break;
297 }
298 default:
299 {
300 vtkErrorMacro("Unknown data type " << inputArray->GetDataType());
301 periodicArray = vtkDataArray::CreateDataArray(inputArray->GetDataType());

Callers 2

ComputePeriodicMeshMethod · 0.95

Calls 10

SetNormalizeMethod · 0.80
DeleteMethod · 0.65
NewFunction · 0.50
CreateDataArrayFunction · 0.50
GetDataTypeMethod · 0.45
SetAxisMethod · 0.45
SetAngleMethod · 0.45
SetCenterMethod · 0.45
InitializeArrayMethod · 0.45
DeepCopyMethod · 0.45

Tested by

no test coverage detected