[cig-commits] r13707 - cs/cigma/trunk/src
luis at geodynamics.org
luis at geodynamics.org
Wed Dec 17 02:31:40 PST 2008
Author: luis
Date: 2008-12-17 02:31:40 -0800 (Wed, 17 Dec 2008)
New Revision: 13707
Modified:
cs/cigma/trunk/src/core_list_op.cpp
cs/cigma/trunk/src/io_vtk.cpp
cs/cigma/trunk/src/io_vtk.h
cs/cigma/trunk/src/io_vtk_reader.cpp
cs/cigma/trunk/src/io_vtk_reader.h
Log:
Updated cigma::ListOp class
Modified: cs/cigma/trunk/src/core_list_op.cpp
===================================================================
--- cs/cigma/trunk/src/core_list_op.cpp 2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/core_list_op.cpp 2008-12-17 10:31:40 UTC (rev 13707)
@@ -2,12 +2,9 @@
#include "Common.h"
#include "Filesystem.h"
-//#include "io_hdf5_reader.h"
-//#include "io_vtk_reader.h"
+#include "io_hdf5_reader.h"
+#include "io_vtk_reader.h"
-#include "io_vtk.h"
-#include "io_hdf5.h"
-
// std
#include <iostream>
#include <cstdlib>
Modified: cs/cigma/trunk/src/io_vtk.cpp
===================================================================
--- cs/cigma/trunk/src/io_vtk.cpp 2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/io_vtk.cpp 2008-12-17 10:31:40 UTC (rev 13707)
@@ -22,7 +22,6 @@
template <> int vtk_datatype_from<unsigned long>() { return VTK_UNSIGNED_LONG; }
template <> int vtk_datatype_from<float>() { return VTK_FLOAT; }
template <> int vtk_datatype_from<double>() { return VTK_DOUBLE; }
-template <> int vtk_datatype_from<vtkIdType>() { return VTK_ID_TYPE; }
/* convert datatype to a string */
std::string vtk_datatype_name(int datatype)
@@ -190,6 +189,7 @@
return -1;
}
+/*
int vtk_print_contents(const char *filename)
{
TRI_LOG_STR("vtk_print_contents()");
@@ -258,14 +258,18 @@
return 0;
}
+*/
#else
+/*
int vtk_print_contents(const char *filename)
{
throw cigma::Exception("vtk_print_contents", "Error: Cigma not configured with VTK library", 1);
return -1;
}
+*/
+
#endif /* HAVE_VTK */
Modified: cs/cigma/trunk/src/io_vtk.h
===================================================================
--- cs/cigma/trunk/src/io_vtk.h 2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/io_vtk.h 2008-12-17 10:31:40 UTC (rev 13707)
@@ -18,10 +18,6 @@
} vtkGridType;
-int vtk_print_contents(const char *filename);
-
-
-
#ifdef HAVE_VTK
#include <string>
@@ -31,6 +27,7 @@
#include "tri_logger.hpp"
#include "Exception.h"
+#include "vtkDataSetReader.h"
#include "vtkRectilinearGridReader.h"
#include "vtkStructuredGridReader.h"
#include "vtkUnstructuredGridReader.h"
@@ -50,6 +47,11 @@
#include "vtkDataArray.h"
#include "vtkDataArraySelection.h"
+#include "vtkIntArray.h"
+#include "vtkLongArray.h"
+#include "vtkFloatArray.h"
+#include "vtkDoubleArray.h"
+
#include "vtkIdList.h"
#include "vtkCell.h"
#include "vtkGenericCell.h"
@@ -63,6 +65,7 @@
throw cigma::Exception("vtk_datatype_from", "no mapping available for this VTK datatype");
}
+
std::string vtk_datatype_name(int datatype);
vtkDataSetReader* vtk_read_legacy(const char *filename, vtkGridType& gridType);
@@ -71,8 +74,6 @@
int vtk_celldim(int cellType);
-int vtk_print_contents(const char *filename);
-
template <typename T>
int vtk_read_pointdata(vtkDataSet* dataset, const char *loc, T** data, int *num, int *dim)
{
@@ -116,11 +117,11 @@
if (datatype != vtk_datatype_from<T>())
{
std::ostringstream stream;
- string name = vtk_datatype_name(datatype);
- string expected = vtk_datatype_name(vtk_datatype_from<T>());
- stream << "Invalid vtk datatype (got "
- << name << " array, expected "
- << expected << " array)"
+ std::string name = vtk_datatype_name(datatype);
+ std::string expected = vtk_datatype_name(vtk_datatype_from<T>());
+ stream << "Invalid vtk datatype "
+ << "(got " << name << " array, "
+ << "expected " << expected << " array)"
<< std::ends;
throw cigma::Exception("vtk_read_pointdata", stream.str(), 3);
}
@@ -229,6 +230,8 @@
int npts;
int ndims;
+ CoordType* array = 0;
+
int cellType = dataset->GetCellType(0); // XXX: assumes uniform cell types
npts = dataset->GetNumberOfPoints();
@@ -285,6 +288,8 @@
int ncells;
int nverts;
+ IdType* array = 0;
+
// XXX: write function to check that the entire array of cell types is uniform
vtkCell *firstCell = dataset->GetCell(0); // XXX: assumes uniform cell types
Modified: cs/cigma/trunk/src/io_vtk_reader.cpp
===================================================================
--- cs/cigma/trunk/src/io_vtk_reader.cpp 2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/io_vtk_reader.cpp 2008-12-17 10:31:40 UTC (rev 13707)
@@ -40,8 +40,8 @@
VtkReader::VtkReader()
{
dataset = 0;
- legacy_reader = 0;
- xml_reader = 0;
+ legacyReader = 0;
+ xmlReader = 0;
gridType = GRID_NULL;
}
@@ -361,7 +361,7 @@
*/
TRI_LOG_STR("VtkReader::getCoordinates()");
- return vtk_read_coordinates(this->dataset, loc, coords, nno, nsd);
+ return vtk_read_coordinates(this->dataset, loc, coordinates, nno, nsd);
}
int VtkReader::getConnectivity(const char *loc, int **connectivity, int *nel, int *ndofs)
@@ -410,6 +410,76 @@
}
+int vtk_print_contents(const char *filename)
+{
+ TRI_LOG_STR("vtk_print_contents()");
+ TRI_LOG(filename);
+
+ cout << "Listing contents of VTK file '" << filename << "'" << endl;
+
+ VtkReader reader;
+ reader.open(filename, "r");
+
+ if (reader.dataset == 0)
+ {
+ return -1;
+ }
+
+ vtkDataSet* dataset = reader.dataset;
+ vtkPointData* pointData = dataset->GetPointData();
+ vtkCellData* cellData = dataset->GetCellData();
+
+ if (false)
+ {
+ pointData->PrintSelf(cout, 0);
+ cellData->PrintSelf(cout, 0);
+ }
+
+ int nno = dataset->GetNumberOfPoints();
+ int nel = dataset->GetNumberOfCells();
+
+ if (nno > 0) { cout << "Points = " << nno << endl; }
+ if (nel > 0) { cout << "Cells = " << nel << endl; }
+
+ int i,n;
+ int numArrays, numTuples, numComponents;
+
+ numArrays = pointData->GetNumberOfArrays();
+ if (numArrays > 0)
+ {
+ for (i = 0; i < numArrays; i++)
+ {
+ vtkDataArray* dataArray = pointData->GetArray(i);
+ const char *name = pointData->GetArrayName(i);
+ numTuples = dataArray->GetNumberOfTuples();
+ numComponents = dataArray->GetNumberOfComponents();
+ cout << "PointDataArray[" << i << "] = " << name;
+ //cout << " " << dataArray->GetClassName();
+ cout << " (" << numTuples << " x " << numComponents << ")";
+ cout << endl;
+ }
+ }
+
+ numArrays = cellData->GetNumberOfArrays();
+ if (numArrays > 0)
+ {
+ for (i = 0; i < numArrays; i++)
+ {
+ vtkDataArray* dataArray = cellData->GetArray(i);
+ const char *name = cellData->GetArrayName(i);
+ numTuples = dataArray->GetNumberOfTuples();
+ numComponents = dataArray->GetNumberOfComponents();
+ cout << "CellDataArray[" << i << "] = " << name;
+ //cout << " " << dataArray->GetClassName();
+ cout << " (" << numTuples << " x " << numComponents << ")";
+ cout << endl;
+ }
+ }
+
+ return 0;
+}
+
+
#else
//
@@ -455,5 +525,11 @@
return -1;
}
+int vtk_print_contents(const char *filename)
+{
+ throw cigma::Exception("vtk_print_contents", "Error: Cigma not configured with VTK library", 1);
+ return -1;
+}
+
#endif
Modified: cs/cigma/trunk/src/io_vtk_reader.h
===================================================================
--- cs/cigma/trunk/src/io_vtk_reader.h 2008-12-17 10:31:38 UTC (rev 13706)
+++ cs/cigma/trunk/src/io_vtk_reader.h 2008-12-17 10:31:40 UTC (rev 13707)
@@ -41,5 +41,8 @@
#endif
};
+/* XXX: keep here for now */
+int vtk_print_contents(const char *filename);
+
#endif /* __CIGMA_VTK_READER_H__ */
More information about the CIG-COMMITS
mailing list