[vtk-developers] Casting vtkIntArray vs vtkIdTypeArray

David Cole david.cole at kitware.com
Fri Sep 17 15:57:29 EDT 2010


You cannot cast from one sibling class to another. It's not an is-a
relationship. You can only cast up or down the hierarchy according to what
the class of the object actually is.

To go from vtkDoubleArray to vtkFloatArray, you'd have to create a new
vtkFloatArray and then copy its elements over one by one, casting each
element.

Casting only works up and down the parent class chain.

If casting is required, then there is a flaw in a design somewhere. In
general, it shouldn't be required for well-designed programs.


On Fri, Sep 17, 2010 at 3:53 PM, David Doria <daviddoria at gmail.com> wrote:

> On Fri, Sep 17, 2010 at 3:50 PM, David Cole <david.cole at kitware.com>wrote:
>
>> That's not a C++ cast, that's a transformation operation....
>>
>> All the array classes are siblings of each other, aren't they?
>>
>>
> Maybe my terminology is off, but whatever it is called I feel that it
> should work and it currently doesn't :)
>
> Yes, they are all siblings. Are you recommending first SafeDownCasting to a
> vtkDataArray, checking the type, and then performing the appropriate
> SafeDownCast? That seems like a lot of trouble, no?
>
> David
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtk-developers/attachments/20100917/65c404a3/attachment.htm>


More information about the vtk-developers mailing list