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"); } }
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; }