def ReadFile(self, filename, name=None, forsequence=False):
        '''
        Only method to get a sequence of the manager from its index.
         returns NULL pointer if out of range.
         @param filename: str
         @param name: str
         @param forsequence: bool
         @rtype: vtkMetaDataSet
        '''
        if os.path.isdir(filename):
            return self.ScanDirectoryForSequence(filename)
        type=vtkPythonMetaDataSet.VTK_META_UNKNOWN
        
        if type==vtkPythonMetaDataSet.VTK_META_UNKNOWN:
            metadataset=vtkPythonMetaVolumeMesh()
            if metadataset.CanReadFile(filename):
                type=vtkPythonMetaDataSet.VTK_META_VOLUME_MESH
        if type==vtkPythonMetaDataSet.VTK_META_UNKNOWN:
            metadataset=vtkPythonMetaSurfaceMesh()
            if metadataset.CanReadFile(filename):
                type=vtkPythonMetaDataSet.VTK_META_SURFACE_MESH
        if type==vtkPythonMetaDataSet.VTK_META_UNKNOWN:
            metadataset=vtkPythonMetaImageData()
            if metadataset.CanReadFile(filename):
                type=vtkPythonMetaDataSet.VTK_META_IMAGE_DATA
        if type==vtkPythonMetaDataSet.VTK_META_UNKNOWN:
            metadataset=vtkPythonMetaDataSetSequence()
            if metadataset.CanReadFile(filename):
                type=vtkPythonMetaDataSet.VTK_META_IMAGE_DATA
        if type==vtkPythonMetaDataSet.VTK_META_UNKNOWN:
            print "unknown file format : %s"%(filename)
            raise IOError, "Unrecognized File Type!"
        
        try:
            metadataset.Read(filename)
            if name==None:
                metadataset.setName(os.path.splitext(os.path.split(filename)[1])[0])
            else:
                metadataset.setName(name)
            self.AddMetaDataSet(metadataset)
#            del metadataset
            
            return metadataset
        except:
#            del metadataset
            raise IOError
        return None
    def ScanDirectoryForSequence(self, dirname, duration):
        '''
        Call this method to scan an entire directory where files belong to a sequence.
         This will add every dataset that is readable in a sequence, set it to the given duration
         and add the sequence to the manager.
         @param dirname: str
         @param duration: double
         @rtype: vtkMetaDataSetSequence
        '''
        Sequence = vtkPythonMetaDataSetSequence()
        try:
            Sequence.SetSequenceDuration(duration)
            Sequence.Read(dirname)
            Sequence.setName(os.path.split(dirname)[1])
            self.AddMetaDataSet(Sequence)
#            del Sequence
        except:
#            del Sequence
            raise IOError
        
        return Sequence