Field3D
|
#include <iostream>
#include <string>
#include <Field3D/DenseField.h>
#include <Field3D/MACField.h>
#include <Field3D/SparseField.h>
#include <Field3D/InitIO.h>
#include <Field3D/Field3DFile.h>
Go to the source code of this file.
Functions | |
int | main (int argc, char **argv) |
template<typename Data_T > | |
void | readLayersAndPrintInfo (Field3DInputFile &in, const std::string &name) |
void readLayersAndPrintInfo | ( | Field3DInputFile & | in, |
const std::string & | name | ||
) |
Definition at line 65 of file main.cpp.
References field_dynamic_cast(), Field3DInputFile::readScalarLayers(), and Field3DInputFile::readVectorLayers().
{ typedef FIELD3D_VEC3_T<Data_T> VecData_T; typedef typename Field<Data_T>::Vec SFieldList; typedef typename Field<FIELD3D_VEC3_T<Data_T> >::Vec VFieldList; // Note that both scalar and vector calls take the scalar type as argument SFieldList sFields = in.readScalarLayers<Data_T>(name); VFieldList vFields = in.readVectorLayers<Data_T>(name); // Print info about the found fields --- if (sFields.size() > 0) { for (typename SFieldList::const_iterator i = sFields.begin(); i != sFields.end(); ++i) { if (field_dynamic_cast<DenseField<Data_T> >(*i)) { cout << " DenseField" << endl; } else if (field_dynamic_cast<SparseField<Data_T> >(*i)) { cout << " SparseField" << endl; } cout << " Name: " << (**i).name << endl; cout << " Attribute: " << (**i).attribute << endl; } } else { cout << " Found no scalar fields" << endl; } if (vFields.size() > 0) { for (typename VFieldList::const_iterator i = vFields.begin(); i != vFields.end(); ++i) { if (field_dynamic_cast<DenseField<VecData_T> >(*i)) { cout << " DenseField" << endl; } else if (field_dynamic_cast<SparseField<VecData_T> >(*i)) { cout << " SparseField" << endl; } else if (field_dynamic_cast<MACField<VecData_T> >(*i)) { cout << " MACField" << endl; } cout << " Name: " << (**i).name << endl; cout << " Attribute: " << (**i).attribute << endl; } } else { cout << " Found no vector fields" << endl; } }
int main | ( | int | argc, |
char ** | argv | ||
) |
Definition at line 126 of file main.cpp.
References half, initIO(), and Field3DInputFile::open().
{ typedef Field3D::half half; // Call initIO() to initialize standard I/O methods and load plugins --- Field3D::initIO(); // Process command line --- if (argc < 2) { cout << "Usage: read <file> [name]" << endl; return 1; } string filename = string(argv[1]); string name; if (argc == 3) { name = string(argv[2]); } // Load file --- Field3DInputFile in; if (!in.open(filename)) { cout << "Aborting because of errors" << endl; return 1; } cout << "Reading <half> layers" << endl; readLayersAndPrintInfo<half>(in, name); cout << "Reading <float> layers" << endl; readLayersAndPrintInfo<float>(in, name); cout << "Reading <double> layers" << endl; readLayersAndPrintInfo<double>(in, name); }