# File vtk/util/vtkImageImportFromArray.rb, line 49
      def SetArray(imArray)
        @Array = imArray
        numComponents = 1
        dim = imArray.shape

        if (dim.length == 4)
          numComponents = dim[3]
          dim = [dim[0],dim[1],dim[2]]
        end
            
        type = @@typeDict[imArray.typecode]

        if (@ConvertIntToUnsignedShort && imArray.typecode == NArray::INT)
            imTmpArr = imArray.astype(Numeric.Int16).to_s
            type = VTK_UNSIGNED_SHORT
        else
            imTmpArr = imArray.to_s
        end

        size = imTmpArr.len*@@sizeDict[type]
        @import.CopyImportVoidPointer(imTmpArr, size)
        @import.SetDataScalarType(type)
        @import.SetNumberOfScalarComponents(numComponents)
        extent = @import.GetDataExtent
        @import.SetDataExtent(extent[0],extent[0]+dim[2]-1,
                              extent[2],extent[2]+dim[1]-1,
                              extent[4],extent[4]+dim[0]-1)
        @import.SetWholeExtent(extent[0],extent[0]+dim[2]-1,
                               extent[2],extent[2]+dim[1]-1,
                               extent[4],extent[4]+dim[0]-1)
      end