15 #include "vtkPolyData.h" 16 #include <vtkCellArray.h> 17 #include "vtkIdList.h" 41 return std::vector<DataPtr>();
61 QFile exportFile(filename);
62 exportFile.open(QIODevice::WriteOnly);
63 QDataStream out(&exportFile);
64 this->writeToStream(data, out);
70 QDataStream out(&retval, QIODevice::WriteOnly);
71 this->writeToStream(data, out);
76 void CgeoReaderWriter::writeToStream(
DataPtr data, QDataStream &out)
78 MeshPtr mesh = boost::dynamic_pointer_cast<
Mesh>(data);
84 vtkPolyDataPtr polyData = mesh->getTransformedPolyDataCopy(mesh->get_rMd());
87 out.setByteOrder(QDataStream::LittleEndian);
88 out.setFloatingPointPrecision(QDataStream::SinglePrecision);
90 out << (qint32) 12072001;
95 out << (qint32) 53672537;
97 out << (qint32) polyData->GetNumberOfPoints();
100 out << (qint32) polys->GetNumberOfCells();
103 for (
int i=0; i<polyData->GetNumberOfPoints(); i++)
106 polyData->GetPoint(i,p);
113 vtkSmartPointer<vtkIdList> idlist = vtkSmartPointer<vtkIdList>::New();
114 polys->InitTraversal();
116 while(polys->GetNextCell(idlist))
118 n_ids = idlist->GetNumberOfIds();
121 out << (qint32) idlist->GetId(0);
122 out << (qint32) idlist->GetId(1);
123 out << (qint32) idlist->GetId(2);
126 std::cout <<
"Warning in .cgeo export: Skipped polygon not containing exactly 3 points." << std::endl;
bool canWrite(const QString &type, const QString &filename) const
bool readInto(DataPtr data, QString path)
QString canWriteDataType() const
vtkSmartPointer< class vtkCellArray > vtkCellArrayPtr
QByteArray convertToQByteArray(DataPtr data)
bool canRead(const QString &type, const QString &filename)
boost::shared_ptr< class Data > DataPtr
std::vector< DataPtr > read(const QString &filename)
boost::shared_ptr< class PatientModelService > PatientModelServicePtr
CgeoReaderWriter(PatientModelServicePtr patientModelService)
QString canReadDataType() const
void write(DataPtr data, const QString &filename)
vtkSmartPointer< vtkPolyData > vtkPolyDataPtr
static QString getTypeName()
boost::shared_ptr< class Mesh > MeshPtr
bool canWriteInternal(const QString &type, const QString &filename) const
Namespace for all CustusX production code.