<span style="font-family:arial, sans-serif;font-size:12.5px;border-collapse:collapse">I&#39;ve found it very troublesome not to be able to cast similar typed arrays back and forth.<div>
<br></div><div>For example, vtkIdTypeArray as vtkIntArray, or vtkFloatArray as vtkDoubleArray.<div><br>Here is my usual process:</div><div><br></div><div>1) Use a filter that produces an array on the output</div><div><br>

</div><div>2) Write a file of the filter output</div><div><br></div><div>3) Open Paraview and open the file to figure out what the array name that was created is and what type it is</div><div><br></div><div>4) Note that paraview shows a data array named &quot;RegionId&quot; (I used vtkPolyDataConnectivityFilter) and that its Data Type is &quot;int&quot; (very confusing, because it is actually vtkIdType...)</div>

<div><br></div><div>5) Go back to my VTK code and do this:</div><div><br></div><div>vtkIntArray::SafeDownCast(filter-&gt;GetOutput()-&gt;GetArray(&quot;RegionId&quot;))-&gt;DoSomething();</div><div><br></div><div>6) My program starts crashing unexpectedly.</div>

<div><br></div><div>7) I go back to this line and do</div><div>vtkIntArray* array = vtkIntArray::SafeDownCast(filter-&gt;GetOutput()-&gt;GetArray(&quot;RegionId&quot;));</div><div>std::cout &lt;&lt; array &lt;&lt; std::endl;</div>

<div><br></div><div>and notice that it is NULL.</div><div><br></div><div>8) Look through vtkPolyDataConnectivity.cxx and realize that this array is a vtkIdTypeArray</div><div><br></div><div>It would make a lot of sense from a usability standpoint to allow reasonable casts and if they aren&#39;t exactly right provide a warning of what happened. In this case, &quot;Warning, you have casted a vtkIdTypeArray to a vtkIntArray&quot;, or in other cases, &quot;Warning, you have casted a vtkFloatArray to a vtkDoubleArray&quot;. I would even advocate that it is ok even to do &quot;Warning: You have casted a vtkDoubleArray to a vtkFloatArray, some loss of precision may occur.&quot;</div>

<div><br></div><div><div>Thoughts?<br><br>David</div></div></div></span>