You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							485 lines
						
					
					
						
							16 KiB
						
					
					
				
			
		
		
	
	
							485 lines
						
					
					
						
							16 KiB
						
					
					
				/*=========================================================================
 | 
						|
 | 
						|
  Program:   Visualization Toolkit
 | 
						|
  Module:    $RCSfile: vtkDataSetReader.cxx,v $
 | 
						|
 | 
						|
  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
 | 
						|
  All rights reserved.
 | 
						|
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
 | 
						|
 | 
						|
     This software is distributed WITHOUT ANY WARRANTY; without even
 | 
						|
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 | 
						|
     PURPOSE.  See the above copyright notice for more information.
 | 
						|
 | 
						|
=========================================================================*/
 | 
						|
#include "vtkDataSetReader.h"
 | 
						|
 | 
						|
#include "vtkInformation.h"
 | 
						|
#include "vtkInformationVector.h"
 | 
						|
#include "vtkObjectFactory.h"
 | 
						|
#include "vtkPolyData.h"
 | 
						|
#include "vtkPolyDataReader.h"
 | 
						|
#include "vtkRectilinearGrid.h"
 | 
						|
#include "vtkRectilinearGridReader.h"
 | 
						|
#include "vtkStreamingDemandDrivenPipeline.h"
 | 
						|
#include "vtkStructuredGrid.h"
 | 
						|
#include "vtkStructuredGridReader.h"
 | 
						|
#include "vtkStructuredPoints.h"
 | 
						|
#include "vtkStructuredPointsReader.h"
 | 
						|
#include "vtkUnstructuredGrid.h"
 | 
						|
#include "vtkUnstructuredGridReader.h"
 | 
						|
 | 
						|
vtkCxxRevisionMacro(vtkDataSetReader, "$Revision: 1.70 $");
 | 
						|
vtkStandardNewMacro(vtkDataSetReader);
 | 
						|
 | 
						|
vtkDataSetReader::vtkDataSetReader()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
vtkDataSetReader::~vtkDataSetReader()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
int vtkDataSetReader::RequestDataObject(
 | 
						|
  vtkInformation *,
 | 
						|
  vtkInformationVector** vtkNotUsed(inputVector) , 
 | 
						|
  vtkInformationVector* outputVector)
 | 
						|
{
 | 
						|
  if (this->GetFileName() == NULL &&
 | 
						|
      (this->GetReadFromInputString() == 0 ||
 | 
						|
       (this->GetInputArray() == NULL && this->GetInputString() == NULL)))
 | 
						|
    {
 | 
						|
    vtkWarningMacro(<< "FileName must be set");
 | 
						|
    return 0;
 | 
						|
    }
 | 
						|
 | 
						|
  int outputType = this->ReadOutputType();
 | 
						|
 | 
						|
  vtkInformation* info = outputVector->GetInformationObject(0);
 | 
						|
  vtkDataSet *output = vtkDataSet::SafeDownCast(
 | 
						|
    info->Get(vtkDataObject::DATA_OBJECT()));
 | 
						|
 | 
						|
  if (output && (output->GetDataObjectType() == outputType))
 | 
						|
    {
 | 
						|
    return 1;
 | 
						|
    }
 | 
						|
 | 
						|
  if (!output || output->GetDataObjectType() != outputType) 
 | 
						|
    {
 | 
						|
    switch (outputType)
 | 
						|
      {
 | 
						|
      case VTK_POLY_DATA:
 | 
						|
        output = vtkPolyData::New();
 | 
						|
        break;
 | 
						|
      case VTK_STRUCTURED_POINTS:
 | 
						|
        output = vtkStructuredPoints::New();
 | 
						|
        break;
 | 
						|
      case VTK_STRUCTURED_GRID:
 | 
						|
        output = vtkStructuredGrid::New();
 | 
						|
        break;
 | 
						|
      case VTK_RECTILINEAR_GRID:
 | 
						|
        output = vtkRectilinearGrid::New();
 | 
						|
        break;
 | 
						|
      case VTK_UNSTRUCTURED_GRID:
 | 
						|
        output = vtkUnstructuredGrid::New();
 | 
						|
        break;
 | 
						|
      default:
 | 
						|
        return 0;
 | 
						|
      }
 | 
						|
    
 | 
						|
    this->GetExecutive()->SetOutputData(0, output);
 | 
						|
    output->Delete();
 | 
						|
    this->GetOutputPortInformation(0)->Set(
 | 
						|
      vtkDataObject::DATA_EXTENT_TYPE(), output->GetExtentType());
 | 
						|
    }
 | 
						|
 | 
						|
  return 1;
 | 
						|
}
 | 
						|
 | 
						|
int vtkDataSetReader::RequestInformation(
 | 
						|
  vtkInformation *,
 | 
						|
  vtkInformationVector **,
 | 
						|
  vtkInformationVector *outputVector)
 | 
						|
{
 | 
						|
  vtkInformation *outInfo = outputVector->GetInformationObject(0);
 | 
						|
  if (this->GetFileName() == NULL &&
 | 
						|
      (this->GetReadFromInputString() == 0 ||
 | 
						|
       (this->GetInputArray() == NULL && this->GetInputString() == NULL)))
 | 
						|
    {
 | 
						|
    vtkWarningMacro(<< "FileName must be set");
 | 
						|
    return 0;
 | 
						|
    }
 | 
						|
 | 
						|
  vtkDataReader *reader = 0;
 | 
						|
  int retVal;
 | 
						|
  switch (this->ReadOutputType())
 | 
						|
    {
 | 
						|
    case VTK_POLY_DATA:
 | 
						|
      reader = vtkPolyDataReader::New();
 | 
						|
      break;
 | 
						|
    case VTK_STRUCTURED_POINTS:
 | 
						|
      reader = vtkStructuredPointsReader::New();
 | 
						|
      break;
 | 
						|
    case VTK_STRUCTURED_GRID:
 | 
						|
      reader = vtkStructuredGridReader::New();
 | 
						|
      break;
 | 
						|
    case VTK_RECTILINEAR_GRID:
 | 
						|
      reader = vtkRectilinearGridReader::New();
 | 
						|
      break;
 | 
						|
    case VTK_UNSTRUCTURED_GRID:
 | 
						|
      reader = vtkUnstructuredGridReader::New();
 | 
						|
      break;
 | 
						|
    default:
 | 
						|
      reader = NULL;
 | 
						|
    }
 | 
						|
 | 
						|
  if (reader)
 | 
						|
    {
 | 
						|
    reader->SetFileName(this->GetFileName());
 | 
						|
    reader->SetReadFromInputString(this->GetReadFromInputString());
 | 
						|
    reader->SetInputArray(this->GetInputArray());
 | 
						|
    reader->SetInputString(this->GetInputString());
 | 
						|
    retVal = reader->ReadMetaData(outInfo);
 | 
						|
    reader->Delete();
 | 
						|
    return retVal;
 | 
						|
    }
 | 
						|
  return 1;
 | 
						|
}
 | 
						|
 | 
						|
int vtkDataSetReader::RequestData(
 | 
						|
  vtkInformation *,
 | 
						|
  vtkInformationVector **,
 | 
						|
  vtkInformationVector *outputVector)
 | 
						|
{
 | 
						|
  vtkInformation *outInfo = outputVector->GetInformationObject(0);
 | 
						|
  vtkDataObject *output = outInfo->Get(vtkDataObject::DATA_OBJECT());
 | 
						|
  
 | 
						|
  vtkDebugMacro(<<"Reading vtk dataset...");
 | 
						|
 | 
						|
  switch (this->ReadOutputType())
 | 
						|
    {
 | 
						|
    case VTK_POLY_DATA:
 | 
						|
      {
 | 
						|
      vtkPolyDataReader *preader = vtkPolyDataReader::New();
 | 
						|
      preader->SetFileName(this->GetFileName());
 | 
						|
      preader->SetInputArray(this->GetInputArray());
 | 
						|
      preader->SetInputString(this->GetInputString(),
 | 
						|
                              this->GetInputStringLength());
 | 
						|
      preader->SetReadFromInputString(this->GetReadFromInputString());
 | 
						|
      preader->SetScalarsName(this->GetScalarsName());
 | 
						|
      preader->SetVectorsName(this->GetVectorsName());
 | 
						|
      preader->SetNormalsName(this->GetNormalsName());
 | 
						|
      preader->SetTensorsName(this->GetTensorsName());
 | 
						|
      preader->SetTCoordsName(this->GetTCoordsName());
 | 
						|
      preader->SetLookupTableName(this->GetLookupTableName());
 | 
						|
      preader->SetFieldDataName(this->GetFieldDataName());
 | 
						|
      preader->SetReadAllScalars(this->GetReadAllScalars());
 | 
						|
      preader->SetReadAllVectors(this->GetReadAllVectors());
 | 
						|
      preader->SetReadAllNormals(this->GetReadAllNormals());
 | 
						|
      preader->SetReadAllTensors(this->GetReadAllTensors());
 | 
						|
      preader->SetReadAllColorScalars(this->GetReadAllColorScalars());
 | 
						|
      preader->SetReadAllTCoords(this->GetReadAllTCoords());
 | 
						|
      preader->SetReadAllFields(this->GetReadAllFields());
 | 
						|
      preader->Update();
 | 
						|
      // Can we use the old output?
 | 
						|
      if(!(output && strcmp(output->GetClassName(), "vtkPolyData") == 0))
 | 
						|
        {
 | 
						|
        // Hack to make sure that the object is not modified
 | 
						|
        // with SetNthOutput. Otherwise, extra executions occur.
 | 
						|
        vtkTimeStamp ts = this->MTime;
 | 
						|
        output = vtkPolyData::New();
 | 
						|
        this->GetExecutive()->SetOutputData(0, output);
 | 
						|
        output->Delete();
 | 
						|
        this->MTime = ts;
 | 
						|
        }
 | 
						|
      output->ShallowCopy(preader->GetOutput());
 | 
						|
      preader->Delete();
 | 
						|
      return 1;
 | 
						|
      }
 | 
						|
    case VTK_STRUCTURED_POINTS:
 | 
						|
      {
 | 
						|
      vtkStructuredPointsReader *preader = vtkStructuredPointsReader::New();
 | 
						|
      preader->SetFileName(this->GetFileName());
 | 
						|
      preader->SetInputArray(this->GetInputArray());
 | 
						|
      preader->SetInputString(this->GetInputString(),
 | 
						|
                              this->GetInputStringLength());
 | 
						|
      preader->SetReadFromInputString(this->GetReadFromInputString());
 | 
						|
      preader->SetScalarsName(this->GetScalarsName());
 | 
						|
      preader->SetVectorsName(this->GetVectorsName());
 | 
						|
      preader->SetNormalsName(this->GetNormalsName());
 | 
						|
      preader->SetTensorsName(this->GetTensorsName());
 | 
						|
      preader->SetTCoordsName(this->GetTCoordsName());
 | 
						|
      preader->SetLookupTableName(this->GetLookupTableName());
 | 
						|
      preader->SetFieldDataName(this->GetFieldDataName());
 | 
						|
      preader->SetReadAllScalars(this->GetReadAllScalars());
 | 
						|
      preader->SetReadAllVectors(this->GetReadAllVectors());
 | 
						|
      preader->SetReadAllNormals(this->GetReadAllNormals());
 | 
						|
      preader->SetReadAllTensors(this->GetReadAllTensors());
 | 
						|
      preader->SetReadAllColorScalars(this->GetReadAllColorScalars());
 | 
						|
      preader->SetReadAllTCoords(this->GetReadAllTCoords());
 | 
						|
      preader->SetReadAllFields(this->GetReadAllFields());
 | 
						|
      preader->Update();
 | 
						|
      // Can we use the old output?
 | 
						|
      if(!(output && strcmp(output->GetClassName(), "vtkStructuredPoints") == 0))
 | 
						|
        {
 | 
						|
        // Hack to make sure that the object is not modified
 | 
						|
        // with SetNthOutput. Otherwise, extra executions occur.
 | 
						|
        vtkTimeStamp ts = this->MTime;
 | 
						|
        output = vtkStructuredPoints::New();
 | 
						|
        this->GetExecutive()->SetOutputData(0, output);
 | 
						|
        output->Delete();
 | 
						|
        this->MTime = ts;
 | 
						|
        }
 | 
						|
      output->ShallowCopy(preader->GetOutput());
 | 
						|
      output->GetPipelineInformation()->CopyEntry(
 | 
						|
        preader->GetOutput()->GetPipelineInformation(),
 | 
						|
        vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT());
 | 
						|
      preader->Delete();
 | 
						|
      return 1;
 | 
						|
      }
 | 
						|
    case VTK_STRUCTURED_GRID:
 | 
						|
      {
 | 
						|
      vtkStructuredGridReader *preader = vtkStructuredGridReader::New();
 | 
						|
      preader->SetFileName(this->GetFileName());
 | 
						|
      preader->SetInputArray(this->GetInputArray());
 | 
						|
      preader->SetInputString(this->GetInputString(),
 | 
						|
                              this->GetInputStringLength());
 | 
						|
      preader->SetReadFromInputString(this->GetReadFromInputString());
 | 
						|
      preader->SetScalarsName(this->GetScalarsName());
 | 
						|
      preader->SetVectorsName(this->GetVectorsName());
 | 
						|
      preader->SetNormalsName(this->GetNormalsName());
 | 
						|
      preader->SetTensorsName(this->GetTensorsName());
 | 
						|
      preader->SetTCoordsName(this->GetTCoordsName());
 | 
						|
      preader->SetLookupTableName(this->GetLookupTableName());
 | 
						|
      preader->SetFieldDataName(this->GetFieldDataName());
 | 
						|
      preader->SetReadAllScalars(this->GetReadAllScalars());
 | 
						|
      preader->SetReadAllVectors(this->GetReadAllVectors());
 | 
						|
      preader->SetReadAllNormals(this->GetReadAllNormals());
 | 
						|
      preader->SetReadAllTensors(this->GetReadAllTensors());
 | 
						|
      preader->SetReadAllColorScalars(this->GetReadAllColorScalars());
 | 
						|
      preader->SetReadAllTCoords(this->GetReadAllTCoords());
 | 
						|
      preader->SetReadAllFields(this->GetReadAllFields());
 | 
						|
      preader->Update();
 | 
						|
      // Can we use the old output?
 | 
						|
      if(!(output && strcmp(output->GetClassName(), "vtkStructuredGrid") == 0))
 | 
						|
        {
 | 
						|
        // Hack to make sure that the object is not modified
 | 
						|
        // with SetNthOutput. Otherwise, extra executions occur.
 | 
						|
        vtkTimeStamp ts = this->MTime;
 | 
						|
        output = vtkStructuredGrid::New();
 | 
						|
        this->GetExecutive()->SetOutputData(0, output);
 | 
						|
        output->Delete();
 | 
						|
        this->MTime = ts;
 | 
						|
        }
 | 
						|
      output->ShallowCopy(preader->GetOutput());
 | 
						|
      preader->Delete();
 | 
						|
      return 1;
 | 
						|
      }
 | 
						|
    case VTK_RECTILINEAR_GRID:
 | 
						|
      {
 | 
						|
      vtkRectilinearGridReader *preader = vtkRectilinearGridReader::New();
 | 
						|
      preader->SetFileName(this->GetFileName());
 | 
						|
      preader->SetInputArray(this->GetInputArray());
 | 
						|
      preader->SetInputString(this->GetInputString(),
 | 
						|
                              this->GetInputStringLength());
 | 
						|
      preader->SetReadFromInputString(this->GetReadFromInputString());
 | 
						|
      preader->SetScalarsName(this->GetScalarsName());
 | 
						|
      preader->SetVectorsName(this->GetVectorsName());
 | 
						|
      preader->SetNormalsName(this->GetNormalsName());
 | 
						|
      preader->SetTensorsName(this->GetTensorsName());
 | 
						|
      preader->SetTCoordsName(this->GetTCoordsName());
 | 
						|
      preader->SetLookupTableName(this->GetLookupTableName());
 | 
						|
      preader->SetFieldDataName(this->GetFieldDataName());
 | 
						|
      preader->SetReadAllScalars(this->GetReadAllScalars());
 | 
						|
      preader->SetReadAllVectors(this->GetReadAllVectors());
 | 
						|
      preader->SetReadAllNormals(this->GetReadAllNormals());
 | 
						|
      preader->SetReadAllTensors(this->GetReadAllTensors());
 | 
						|
      preader->SetReadAllColorScalars(this->GetReadAllColorScalars());
 | 
						|
      preader->SetReadAllTCoords(this->GetReadAllTCoords());
 | 
						|
      preader->SetReadAllFields(this->GetReadAllFields());
 | 
						|
      preader->Update();
 | 
						|
      // Can we use the old output?
 | 
						|
      if(!(output && strcmp(output->GetClassName(), "vtkRectilinearGrid") == 0))
 | 
						|
        {
 | 
						|
        // Hack to make sure that the object is not modified
 | 
						|
        // with SetNthOutput. Otherwise, extra executions occur.
 | 
						|
        vtkTimeStamp ts = this->MTime;
 | 
						|
        output = vtkRectilinearGrid::New();
 | 
						|
        this->GetExecutive()->SetOutputData(0, output);
 | 
						|
        output->Delete();
 | 
						|
        this->MTime = ts;
 | 
						|
        }
 | 
						|
      output->ShallowCopy(preader->GetOutput());
 | 
						|
      preader->Delete();
 | 
						|
      return 1;
 | 
						|
      }
 | 
						|
    case VTK_UNSTRUCTURED_GRID:
 | 
						|
      {
 | 
						|
      vtkUnstructuredGridReader *preader = vtkUnstructuredGridReader::New();
 | 
						|
      preader->SetFileName(this->GetFileName());
 | 
						|
      preader->SetInputArray(this->GetInputArray());
 | 
						|
      preader->SetInputString(this->GetInputString(),
 | 
						|
                              this->GetInputStringLength());
 | 
						|
      preader->SetReadFromInputString(this->GetReadFromInputString());
 | 
						|
      preader->SetScalarsName(this->GetScalarsName());
 | 
						|
      preader->SetVectorsName(this->GetVectorsName());
 | 
						|
      preader->SetNormalsName(this->GetNormalsName());
 | 
						|
      preader->SetTensorsName(this->GetTensorsName());
 | 
						|
      preader->SetTCoordsName(this->GetTCoordsName());
 | 
						|
      preader->SetLookupTableName(this->GetLookupTableName());
 | 
						|
      preader->SetFieldDataName(this->GetFieldDataName());
 | 
						|
      preader->SetReadAllScalars(this->GetReadAllScalars());
 | 
						|
      preader->SetReadAllVectors(this->GetReadAllVectors());
 | 
						|
      preader->SetReadAllNormals(this->GetReadAllNormals());
 | 
						|
      preader->SetReadAllTensors(this->GetReadAllTensors());
 | 
						|
      preader->SetReadAllColorScalars(this->GetReadAllColorScalars());
 | 
						|
      preader->SetReadAllTCoords(this->GetReadAllTCoords());
 | 
						|
      preader->SetReadAllFields(this->GetReadAllFields());
 | 
						|
      preader->Update();
 | 
						|
      // Can we use the old output?
 | 
						|
      if(!(output && strcmp(output->GetClassName(), "vtkUnstructuredGrid") == 0))
 | 
						|
        {
 | 
						|
        // Hack to make sure that the object is not modified
 | 
						|
        // with SetNthOutput. Otherwise, extra executions occur.
 | 
						|
        vtkTimeStamp ts = this->MTime;
 | 
						|
        output = vtkUnstructuredGrid::New();
 | 
						|
        this->GetExecutive()->SetOutputData(0, output);
 | 
						|
        output->Delete();
 | 
						|
        this->MTime = ts;
 | 
						|
        }
 | 
						|
      output->ShallowCopy(preader->GetOutput());
 | 
						|
      preader->Delete();
 | 
						|
      return 1;
 | 
						|
      }
 | 
						|
    default:
 | 
						|
        vtkErrorMacro("Could not read file " << this->FileName);
 | 
						|
    }
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
int vtkDataSetReader::ReadOutputType()
 | 
						|
{
 | 
						|
  char line[256];
 | 
						|
  
 | 
						|
  vtkDebugMacro(<<"Reading vtk dataset...");
 | 
						|
 | 
						|
  if (!this->OpenVTKFile() || !this->ReadHeader())
 | 
						|
    {
 | 
						|
    return -1;
 | 
						|
    }
 | 
						|
 | 
						|
  // Determine dataset type
 | 
						|
  //
 | 
						|
  if (!this->ReadString(line))
 | 
						|
    {
 | 
						|
    vtkDebugMacro(<< "Premature EOF reading dataset keyword");
 | 
						|
    return -1;
 | 
						|
    }
 | 
						|
 | 
						|
  if ( !strncmp(this->LowerCase(line),"dataset",(unsigned long)7) )
 | 
						|
    {
 | 
						|
    // See if type is recognized.
 | 
						|
    //
 | 
						|
    if (!this->ReadString(line))
 | 
						|
      {
 | 
						|
      vtkDebugMacro(<< "Premature EOF reading type");
 | 
						|
      this->CloseVTKFile ();
 | 
						|
      return -1;
 | 
						|
      }
 | 
						|
 | 
						|
    this->CloseVTKFile();
 | 
						|
    if ( ! strncmp(this->LowerCase(line),"polydata",8) )
 | 
						|
      {
 | 
						|
      return VTK_POLY_DATA;
 | 
						|
      }
 | 
						|
    else if ( ! strncmp(line,"structured_points",17) )
 | 
						|
      {
 | 
						|
      return VTK_STRUCTURED_POINTS;
 | 
						|
      }
 | 
						|
    else if ( ! strncmp(line,"structured_grid",15) )
 | 
						|
      {
 | 
						|
      return VTK_STRUCTURED_GRID;
 | 
						|
      }
 | 
						|
    else if ( ! strncmp(line,"rectilinear_grid",16) )
 | 
						|
      {
 | 
						|
      return VTK_RECTILINEAR_GRID;
 | 
						|
      }
 | 
						|
    else if ( ! strncmp(line,"unstructured_grid",17) )
 | 
						|
      {
 | 
						|
      return VTK_UNSTRUCTURED_GRID;
 | 
						|
      }
 | 
						|
    else
 | 
						|
      {
 | 
						|
      vtkDebugMacro(<< "Cannot read dataset type: " << line);
 | 
						|
      return -1;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  else if ( !strncmp(this->LowerCase(line),"field",(unsigned long)5) )
 | 
						|
    {
 | 
						|
    vtkDebugMacro(<<"This object can only read datasets, not fields");
 | 
						|
    }
 | 
						|
  else
 | 
						|
    {
 | 
						|
    vtkDebugMacro(<<"Expecting DATASET keyword, got " << line << " instead");
 | 
						|
    }
 | 
						|
 | 
						|
  return -1;
 | 
						|
}
 | 
						|
 | 
						|
vtkPolyData *vtkDataSetReader::GetPolyDataOutput()
 | 
						|
{
 | 
						|
  return vtkPolyData::SafeDownCast(this->GetOutput());
 | 
						|
}
 | 
						|
 | 
						|
vtkStructuredPoints *vtkDataSetReader::GetStructuredPointsOutput() 
 | 
						|
{
 | 
						|
  return vtkStructuredPoints::SafeDownCast(this->GetOutput());
 | 
						|
}
 | 
						|
 | 
						|
vtkStructuredGrid *vtkDataSetReader::GetStructuredGridOutput() 
 | 
						|
{
 | 
						|
  return vtkStructuredGrid::SafeDownCast(this->GetOutput());
 | 
						|
}
 | 
						|
 | 
						|
vtkUnstructuredGrid *vtkDataSetReader::GetUnstructuredGridOutput() 
 | 
						|
{
 | 
						|
  return vtkUnstructuredGrid::SafeDownCast(this->GetOutput());
 | 
						|
}
 | 
						|
 | 
						|
vtkRectilinearGrid *vtkDataSetReader::GetRectilinearGridOutput() 
 | 
						|
{
 | 
						|
  return vtkRectilinearGrid::SafeDownCast(this->GetOutput());
 | 
						|
}
 | 
						|
 | 
						|
void vtkDataSetReader::PrintSelf(ostream& os, vtkIndent indent)
 | 
						|
{
 | 
						|
  this->Superclass::PrintSelf(os,indent);
 | 
						|
}
 | 
						|
 | 
						|
vtkDataSet *vtkDataSetReader::GetOutput(int idx)
 | 
						|
{
 | 
						|
  return vtkDataSet::SafeDownCast(this->GetOutputDataObject(idx));
 | 
						|
}
 | 
						|
 | 
						|
vtkDataSet *vtkDataSetReader::GetOutput()
 | 
						|
{
 | 
						|
  return vtkDataSet::SafeDownCast(this->GetOutputDataObject(0));
 | 
						|
}
 | 
						|
 | 
						|
int vtkDataSetReader::FillOutputPortInformation(int, vtkInformation *info)
 | 
						|
{
 | 
						|
  info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkDataSet");
 | 
						|
  return 1;
 | 
						|
}
 | 
						|
 | 
						|
int vtkDataSetReader::ProcessRequest(vtkInformation* request,
 | 
						|
                                     vtkInformationVector** inputVector,
 | 
						|
                                     vtkInformationVector* outputVector)
 | 
						|
{
 | 
						|
  // generate the data
 | 
						|
  if(request->Has(vtkDemandDrivenPipeline::REQUEST_DATA_OBJECT()))
 | 
						|
    {
 | 
						|
    return this->RequestDataObject(request, inputVector, outputVector);
 | 
						|
    }
 | 
						|
  return this->Superclass::ProcessRequest(request, inputVector, outputVector);
 | 
						|
}
 | 
						|
 |