<div dir="ltr">Hi Lars,<div><br></div><div>The vtkArrayIterator class is very different from the vtkTypedDataArrayIterator. See the APIs in vtkTypedDataArrayIterator.h and vtkArrayIteratorTemplate.h. The former is an STL style iterator, while the latter uses a custom API for retrieving data.</div><div><br></div><div>At this point, you'd need to write a new iterator implementation that matches the vtkArrayIterator API and somehow shoehorn some extra logic into vtkArrayIteratorTemplateMacro in vtkSetGet.h. This would be hacky, and to properly fix this the writer would likely need to be rewritten, since the vtkArrayIterator plumbing seems intrinsically tied to the vtkArrayIteratorTemplate class, which relies heavily on the horrible vtkDataArray::GetVoidPointer method.</div><div><br></div><div>Is ascii mode required for your use case? If not, it would likely be much simpler to just use binary mode.</div><div><br></div><div>Hope this helps,</div><div>Dave</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 28, 2014 at 4:20 AM, Lars Bilke <span dir="ltr"><<a href="mailto:lars.bilke@ufz.de" target="_blank">lars.bilke@ufz.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I have a similar implementation of a vtkMappedDataArray as in<br>
<br>
vtkCPExodusIIResultsArrayTemplate (<a href="https://github.com/Kitware/VTK/blob/master/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.txx" target="_blank">https://github.com/Kitware/VTK/blob/master/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.txx</a>).<br>
<br>
The mapped data array is part of a vtkMappedUnstructuredGrid as in<br>
<br>
<a href="https://github.com/gahansen/Albany/blob/master/src/disc/catalyst/Albany_Catalyst_Grid.hpp" target="_blank">https://github.com/gahansen/Albany/blob/master/src/disc/catalyst/Albany_Catalyst_Grid.hpp</a><br>
<br>
and so on. It works fine. Now I try to write the unstructured grid to a file which also works fine in binary mode. But when I switch the vtkXMLUnstructuredGridWriter to ascii mode the member vtkArrayIterator* NewIterator() of my vtkMappedDataArray needs to be implemented. I did not found an example of such an implementation. For now I came up with this:<br>
<br>
template <class Scalar> vtkArrayIterator*<br>
VtkMappedElementDataArrayTemplate<Scalar>::NewIterator()<br>
{<br>
        vtkTypedDataArrayIterator<Scalar> tdaBegin = vtkTypedDataArray<Scalar>::FastDownCast(this)->Begin();<br>
        return tdaBegin;<br>
}<br>
<br>
But compilation fails with<br>
<br>
error: no viable conversion from 'vtkTypedDataArrayIterator<unsigned int>' to 'vtkArrayIterator *‘<br>
<br>
If you want to have a look at my code:<br>
<br>
<a href="https://github.com/ufz/ogs/tree/master/InSituLib" target="_blank">https://github.com/ufz/ogs/tree/master/InSituLib</a><br>
<br>
Thanks,<br>
Lars<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
</blockquote></div><br></div>