Ejemplo n.º 1
0
void read_matrix(idx *nv, idx *ne,idx **xadj, idx **adj, wt **ew, const char *filename){

  std::string strfilename(filename);
  if (endswith(strfilename, ".mtx")){
    read_mtx (
        filename,
        nv, ne,
        xadj, adj, ew,false,false,false);
  }

  else if (endswith(strfilename, ".bin")){
    read_graph_bin(nv, ne,xadj, adj, ew, filename);
  }
  else {
    throw std::runtime_error ("Reader is not available\n");
  }
}
Ejemplo n.º 2
0
bool CScalarUnstructuredGrid::SetFilename(const char* filename){
	std::string strfilename(filename);
	
	std::string basename, suffix, tmpname;
	std::string::size_type pos = strfilename.rfind(".");
	if (pos != std::string::npos){
		basename = strfilename.substr(0, pos);
		suffix = strfilename.substr(pos);
	} else {
		std::cout << "error in filename" << std::endl;
		return false;
	}
	
	if (suffix == std::string(".vts")){
		std::cout << "attempt to read structured grid from xml file" << std::endl;
		std::cout << "attempt to read unstructured grid form xml file" << std::endl;
		m_pvtkXMLReader = vtkXMLStructuredGridReader::New();
		m_pvtkXMLReader->SetFileName(filename);
		m_pvtkXMLReader->Update();
		m_pvtkDataSet = (vtkDataSet*) m_pvtkXMLReader->GetOutputAsDataSet();
		std::cout << ".... done" << std::endl;
	} else if (suffix == std::string(".vtu")){
		std::cout << "attempt to read unstructured grid form xml file" << std::endl;
		m_pvtkXMLReader = vtkXMLUnstructuredGridReader::New();
		m_pvtkXMLReader->SetFileName(filename);
		m_pvtkXMLReader->Update();
		m_pvtkDataSet = (vtkDataSet*) m_pvtkXMLReader->GetOutputAsDataSet();
		std::cout << ".... done" << std::endl;
	} else if (suffix == std::string(".vtk")){
		std::cout << "attempt to read grid from legacy vtk file" << std::endl;	
		vtkDataReader *helpReader = vtkDataReader::New();
		helpReader->SetFileName(filename);
	
		if (helpReader->IsFileStructuredGrid()){
			std::cout << "file contains structured grid" << std::endl;
			m_pvtkDataReader = vtkStructuredGridReader::New();
			m_pvtkDataReader->ReadAllScalarsOn();
			m_pvtkDataReader->SetFileName(filename);
			m_pvtkDataReader->Update();
			m_pvtkDataSet = (vtkDataSet*) ((vtkStructuredGridReader*) m_pvtkDataReader)->GetOutput();
		} else if (helpReader->IsFileUnstructuredGrid()){
			std::cout << "file contains unstructured grid" << std::endl;
			m_pvtkDataReader = vtkUnstructuredGridReader::New();
			m_pvtkDataReader->ReadAllScalarsOn();
			m_pvtkDataReader->SetFileName(filename);
			m_pvtkDataReader->Update();
			m_pvtkDataSet = (vtkDataSet*) ((vtkUnstructuredGridReader*) m_pvtkDataReader)->GetOutput();
		} else if (helpReader->IsFileStructuredPoints()){
			std::cout << "file contains structured points" << std::endl;
			m_pvtkDataReader = vtkStructuredPointsReader::New();
			m_pvtkDataReader->ReadAllScalarsOn();
			m_pvtkDataReader->SetFileName(filename);
			m_pvtkDataReader->Update();
			m_pvtkDataSet = (vtkDataSet*) ((vtkStructuredPointsReader*) m_pvtkDataReader)->GetOutput();
		} else {
			std::cout << "unsupported legacy vtk format" << std::endl;
			return false;
		}
	} else {
		std::cout << "CVectorGrid: could not read file" << filename << std::endl;
		return false;
	}

	if (m_pvtkDataSet == NULL){
		std::cout << "resulting dataset was NULL" << std::endl;
		return false;
	}

	const char* attrName;
	vtkPointData *pointData = m_pvtkDataSet->GetPointData();
	if (pointData == NULL){
		std::cout << "dataset contains no point data" << std::endl;
		return false;
	}
	
	vtkDataArray *dataArray = pointData->GetScalars(0);
	
	if (dataArray == NULL){
		std::list<std::string> attributeNames = GetAvailableScalars();
		if (attributeNames.size() == 0){
			std::cout << "data set contains no point data" << std::endl;
			return false;
		} else {
			std::list<std::string>::iterator iter;
			iter = attributeNames.begin();
			pointData->SetActiveScalars((*iter).c_str());
			dataArray = pointData->GetScalars();
		}
	}
	
	if (dataArray == NULL){
		std::cout << "Problems with reading data" << std::endl;
		return false;
	}
	
	if (! SetStateForAttributeName(std::string(dataArray->GetName()))){
		std::cout << "Could not set appropriate state" << std::endl;
		return false;
	}
	
	
	/*
	dataArray->GetRange(scalarRange);
	attrName = dataArray->GetName();
	
	m_state.m_stdstrAttributeName = std::string(attrName);
	m_state.m_dValMin = scalarRange[0];
	m_state.m_dValMax = scalarRange[1];
		
	double *bounds = m_pvtkDataSet->GetBounds();
	m_state.m_dXMin = bounds[0];
	m_state.m_dXMax = bounds[1];
	m_state.m_dYMin = bounds[2];
	m_state.m_dYMax = bounds[3];
	m_state.m_dZMin = bounds[4];
	m_state.m_dZMax = bounds[5];
	*/
		
	this->InitContourPipeline();
	this->InitXCutPlanePipeline();
	this->InitYCutPlanePipeline();
	this->InitZCutPlanePipeline();
	
	std::cout << "dataset has been loaded successfully" << std::endl;
		
	return true;
}