Add PrintSummary() for DataSet.

This commit is contained in:
Dave Pugmire 2015-05-20 15:26:10 -04:00
parent c55d764c50
commit e1bbda8cae
11 changed files with 127 additions and 3 deletions

@ -67,6 +67,15 @@ public:
if (index < nodeDims[0]-1)
ids[idx++] = index;
}
virtual void PrintSummary(std::ostream &out)
{
out<<" RegularConnectivity<1> ";
out<<"cellDim["<<cellDims[0]<<"] ";
out<<"nodeDim["<<nodeDims[0]<<"] ";
out<<"\n";
}
vtkm::Id cellDims[1];
vtkm::Id nodeDims[1];
};
@ -122,6 +131,14 @@ public:
if (i < nodeDims[0]-1 && j < nodeDims[1]-1)
ids[idx++] = CalculateCellIndex(i , j );
}
virtual void PrintSummary(std::ostream &out)
{
out<<" RegularConnectivity<2> ";
out<<"cellDim["<<cellDims[0]<<" "<<cellDims[1]<<"] ";
out<<"nodeDim["<<nodeDims[0]<<" "<<nodeDims[1]<<"] ";
out<<"\n";
}
vtkm::Id cellDims[2];
vtkm::Id nodeDims[2];
@ -215,6 +232,14 @@ public:
vtkm::Id cellDims[3];
vtkm::Id nodeDims[3];
virtual void PrintSummary(std::ostream &out)
{
out<<" RegularConnectivity<3> ";
out<<"cellDim["<<cellDims[0]<<" "<<cellDims[1]<<" "<<cellDims[2]<<"] ";
out<<"nodeDim["<<nodeDims[0]<<" "<<nodeDims[1]<<" "<<nodeDims[2]<<"] ";
out<<"\n";
}
private:
VTKM_EXEC_CONT_EXPORT

@ -522,6 +522,29 @@ make_ArrayHandle(const std::vector<T,Allocator> &array)
return make_ArrayHandle(&array.front(), static_cast<vtkm::Id>(array.size()));
}
template<typename T>
VTKM_CONT_EXPORT
void
printSummary_ArrayHandle(const vtkm::cont::ArrayHandle<T> &array,
std::ostream &out)
{
vtkm::Id sz = array.GetNumberOfValues();
out<<"sz= "<<sz<<" [";
if (sz <= 5)
for (vtkm::Id i = 0 ; i < sz; i++)
{
out<<array.GetPortalConstControl().Get(i);
if (i != (sz-1)) out<<" ";
}
else
{
out<<array.GetPortalConstControl().Get(0)<<" "<<array.GetPortalConstControl().Get(1);
out<<" ... ";
out<<array.GetPortalConstControl().Get(sz-2)<<" "<<array.GetPortalConstControl().Get(sz-1);
}
out<<"]";
}
}
}

@ -34,7 +34,7 @@ class CellSet
{
public:
CellSet(const std::string &n, int d)
: name(n), dimensionality(d), structure(NULL)
: name(n), dimensionality(d), logicalStructure(NULL)
{
}
@ -63,10 +63,12 @@ public:
return 0;
}
private:
virtual void PrintSummary(std::ostream&) = 0;
protected:
std::string name;
int dimensionality;
vtkm::cont::LogicalStructure *structure;
vtkm::cont::LogicalStructure *logicalStructure;
};
}

@ -29,6 +29,12 @@ public:
return nodesOfCellsConnectivity;
}
virtual void PrintSummary(std::ostream &out)
{
out<<" ExplicitCellSet: "<<name<<" dim= "<<dimensionality<<std::endl;
nodesOfCellsConnectivity.PrintSummary(out);
}
public:
ExplicitConnectivity nodesOfCellsConnectivity;
};

@ -45,6 +45,12 @@ public:
return regConn;
}
virtual void PrintSummary(std::ostream &out)
{
out<<" StructuredCellSet: "<<name<<" dim= "<<dimensionality<<std::endl;
structure.PrintSummary(out);
}
public:
vtkm::RegularStructure<Dimension> structure;
};

@ -62,6 +62,17 @@ class CoordinateSystem
axes.push_back(CoordinateAxis(nx));
}
void PrintSummary(std::ostream &out)
{
out<<" {";
for (vtkm::Id i = 0; i < axes.size(); i++)
{
out<<axes[i].FieldName<<"["<<axes[i].FieldComponent<<"]";
if (i < axes.size()-1) out<<", ";
}
out<<"}\n";
}
private:
std::vector<CoordinateAxis> axes;
};

@ -92,6 +92,20 @@ public:
return static_cast<vtkm::Id>(this->Fields.size());
}
void PrintSummary(std::ostream &out)
{
out<<"DataSet:\n";
out<<" CoordSystems["<<CoordSystems.size()<<"]\n";
for (vtkm::Id i = 0; i < CoordSystems.size(); i++)
CoordSystems[i].PrintSummary(out);
out<<" CellSets["<<GetNumberOfCellSets()<<"]\n";
for (vtkm::Id i = 0; i < GetNumberOfCellSets(); i++)
GetCellSet(i)->PrintSummary(out);
out<<" Fields["<<GetNumberOfFields()<<"]\n";
for (vtkm::Id i = 0; i < GetNumberOfFields(); i++)
GetField(i).PrintSummary(out);
}
private:
std::vector<vtkm::cont::CoordinateSystem> CoordSystems;
std::vector<vtkm::cont::Field> Fields;

@ -129,6 +129,20 @@ public:
return obj;
}
virtual void PrintSummary(std::ostream &out)
{
out<<" ExplicitConnectivity: #shapes= "<<NumShapes<<" #connectivity= "<<ConnectivityLength<<"\n";
out<<" Shapes: ";
printSummary_ArrayHandle(Shapes, out);
out<<"\n";
out<<" NumIndices: ";
printSummary_ArrayHandle(NumIndices, out);
out<<"\n";
out<<" Connectivity: ";
printSummary_ArrayHandle(Connectivity, out);
out<<"\n";
}
private:
vtkm::Id ConnectivityLength;

@ -178,6 +178,24 @@ public:
Copy(tmp1, tmp2);
data = tmp2;
}
virtual void PrintSummary(std::ostream &out)
{
out<<" "<<name;
out<<" assoc= ";
switch (GetAssociation())
{
case ASSOC_WHOLE_MESH: out<<"Mesh "; break;
case ASSOC_POINTS: out<<"Points "; break;
case ASSOC_CELL_SET: out<<"Cells "; break;
case ASSOC_LOGICAL_DIM: out<<"LogicalDim "; break;
}
vtkm::cont::ArrayHandle<vtkm::Float32> vals;
vals = data.CastToArrayHandle(vtkm::Float32(), VTKM_DEFAULT_STORAGE_TAG());
printSummary_ArrayHandle(vals, out);
//out<<" order= "<<order;
out<<"\n";
}
private:
std::string name; ///< name of field

@ -30,6 +30,8 @@ void TestDataSet_Explicit()
vtkm::cont::testing::MakeTestDataSet tds;
vtkm::cont::DataSet *ds = tds.Make3DExplicitDataSet1();
ds->PrintSummary(std::cout);
VTKM_TEST_ASSERT(ds->GetNumberOfCellSets() == 1,
"Incorrect number of cell sets");

@ -45,6 +45,7 @@ TwoDimRegularTest()
vtkm::cont::testing::MakeTestDataSet tds;
vtkm::cont::DataSet *ds = tds.Make2DRegularDataSet0();
ds->PrintSummary(std::cout);
vtkm::cont::CellSetStructured<2> *cs;
cs = dynamic_cast<vtkm::cont::CellSetStructured<2> *>(ds->GetCellSet(0));
@ -111,6 +112,8 @@ ThreeDimRegularTest()
vtkm::cont::testing::MakeTestDataSet tds;
vtkm::cont::DataSet *ds = tds.Make3DRegularDataSet0();
ds->PrintSummary(std::cout);
vtkm::cont::CellSetStructured<3> *cs;
cs = dynamic_cast<vtkm::cont::CellSetStructured<3> *>(ds->GetCellSet(0));
VTKM_TEST_ASSERT(cs, "Invalid Cell Set");