Field3D
|
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <boost/program_options.hpp>
#include <boost/foreach.hpp>
#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 | |
template<typename Data_T > | |
void | createConcreteScalarField (const Options &options) |
template<typename Data_T > | |
void | createConcreteVectorField (const Options &options) |
void | createField (const Options &options) |
int | main (int argc, char **argv) |
Options | parseOptions (int argc, char **argv) |
void | setCommon (const FieldRes::Ptr field, const Options &options) |
void | writeGlobalMetadata (Field3DOutputFile &out) |
Options parseOptions | ( | int | argc, |
char ** | argv | ||
) |
void createField | ( | const Options & | options | ) |
Definition at line 198 of file main.cpp.
Referenced by main().
{ if (options.isVectorField) { switch (options.bits) { case 64: createConcreteVectorField<double>(options); break; case 32: createConcreteVectorField<float>(options); break; case 16: default: createConcreteVectorField<Field3D::half>(options); break; } } else { switch (options.bits) { case 64: createConcreteScalarField<double>(options); break; case 32: createConcreteScalarField<float>(options); break; case 16: default: createConcreteScalarField<Field3D::half>(options); break; } } }
void writeGlobalMetadata | ( | Field3DOutputFile & | out | ) |
Definition at line 231 of file main.cpp.
References Field3DFileBase::metadata(), FieldMetadata< CallBack_T >::setFloatMetadata(), FieldMetadata< CallBack_T >::setIntMetadata(), FieldMetadata< CallBack_T >::setStrMetadata(), FieldMetadata< CallBack_T >::setVecFloatMetadata(), FieldMetadata< CallBack_T >::setVecIntMetadata(), and Field3DOutputFile::writeGlobalMetadata().
Referenced by createConcreteScalarField(), and createConcreteVectorField().
{ out.metadata().setFloatMetadata("float_global_metadata", 1.0f); out.metadata().setVecFloatMetadata("vec_float_global_metadata", V3f(1.0f)); out.metadata().setIntMetadata("int_global_metadata", 1); out.metadata().setVecIntMetadata("vec_int_global_metadata", V3i(1)); out.metadata().setStrMetadata("str_global_metadata", "string"); out.writeGlobalMetadata(); }
void createConcreteScalarField | ( | const Options & | options | ) |
Definition at line 244 of file main.cpp.
References Field3DOutputFile::create(), setCommon(), writeGlobalMetadata(), and Field3DOutputFile::writeScalarLayer().
{ typedef typename ResizableField<Data_T>::Ptr Ptr; Ptr field; if (options.fieldType == "SparseField") { field = Ptr(new SparseField<Data_T>); } else { field = Ptr(new DenseField<Data_T>); } field->setSize(options.resolution); setCommon(field, options); Field3DOutputFile out; out.create(options.filename); out.writeScalarLayer<Data_T>(field); writeGlobalMetadata(out); }
void createConcreteVectorField | ( | const Options & | options | ) |
Definition at line 267 of file main.cpp.
References Field3DOutputFile::create(), setCommon(), writeGlobalMetadata(), and Field3DOutputFile::writeVectorLayer().
{ typedef typename ResizableField<FIELD3D_VEC3_T<Data_T> >::Ptr Ptr; Ptr field; if (options.fieldType == "SparseField") { field = Ptr(new SparseField<FIELD3D_VEC3_T<Data_T> >); } else if (options.fieldType == "MACField") { field = Ptr(new MACField<FIELD3D_VEC3_T<Data_T> >); } else { field = Ptr(new DenseField<FIELD3D_VEC3_T<Data_T> >); } field->setSize(options.resolution); setCommon(field, options); Field3DOutputFile out; out.create(options.filename); out.writeVectorLayer<Data_T>(field); writeGlobalMetadata(out); }
void setCommon | ( | const FieldRes::Ptr | field, |
const Options & | options | ||
) |
Definition at line 291 of file main.cpp.
Referenced by createConcreteScalarField(), and createConcreteVectorField().
{ field->name = options.name; field->attribute = options.attribute; field->metadata().setFloatMetadata("float_metadata", 1.0f); field->metadata().setVecFloatMetadata("vec_float_metadata", V3f(1.0f)); field->metadata().setIntMetadata("int_metadata", 1); field->metadata().setVecIntMetadata("vec_int_metadata", V3i(1)); field->metadata().setStrMetadata("str_metadata", "string"); M44d localToWorld; localToWorld.setScale(options.resolution); localToWorld *= M44d().setTranslation(V3d(1.0, 2.0, 3.0)); MatrixFieldMapping::Ptr mapping(new MatrixFieldMapping); mapping->setLocalToWorld(localToWorld); field->setMapping(mapping); }
int main | ( | int | argc, |
char ** | argv | ||
) |
Definition at line 99 of file main.cpp.
References createField(), initIO(), and parseOptions().
{ Field3D::initIO(); Options options = parseOptions(argc, argv); createField(options); }