// DO NOT EDIT ! // This file is generated using the MantaFlow preprocessor (prep generate). /****************************************************************************** * * MantaFlow fluid solver framework * Copyright 2011 Tobias Pfaff, Nils Thuerey * * This program is free software, distributed under the terms of the * Apache License, Version 2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Loading and writing grids and meshes to disk * ******************************************************************************/ #ifndef _FILEIO_H #define _FILEIO_H #include #include "manta.h" // OpenVDB compression flags #define COMPRESSION_NONE 0 #define COMPRESSION_ZIP 1 #define COMPRESSION_BLOSC 2 namespace Manta { // Forward declations class Mesh; class FlagGrid; class GridBase; template class Grid; template class Grid4d; class BasicParticleSystem; template class ParticleDataImpl; template class MeshDataImpl; // Obj format int writeObjFile(const std::string &name, Mesh *mesh); int writeBobjFile(const std::string &name, Mesh *mesh); int readObjFile(const std::string &name, Mesh *mesh, bool append); int readBobjFile(const std::string &name, Mesh *mesh, bool append); // Other formats (Raw, Uni, Vol) template int readGridUni(const std::string &name, Grid *grid); template int readGridRaw(const std::string &name, Grid *grid); template int readGridVol(const std::string &name, Grid *grid); int readGridsRaw(const std::string &name, std::vector *grids); int readGridsUni(const std::string &name, std::vector *grids); int readGridsVol(const std::string &name, std::vector *grids); int readGridsTxt(const std::string &name, std::vector *grids); template int writeGridRaw(const std::string &name, Grid *grid); template int writeGridUni(const std::string &name, Grid *grid); template int writeGridVol(const std::string &name, Grid *grid); template int writeGridTxt(const std::string &name, Grid *grid); int writeGridsRaw(const std::string &name, std::vector *grids); int writeGridsUni(const std::string &name, std::vector *grids); int writeGridsVol(const std::string &name, std::vector *grids); int writeGridsTxt(const std::string &name, std::vector *grids); // OpenVDB int writeObjectsVDB(const std::string &filename, std::vector *objects, float scale = 1.0, bool skipDeletedParts = false, int compression = COMPRESSION_ZIP, bool precisionHalf = true); int readObjectsVDB(const std::string &filename, std::vector *objects, float scale = 1.0); // Numpy template int writeGridNumpy(const std::string &name, Grid *grid); template int readGridNumpy(const std::string &name, Grid *grid); int writeGridsNumpy(const std::string &name, std::vector *grids); int readGridsNumpy(const std::string &name, std::vector *grids); // 4D Grids template int writeGrid4dUni(const std::string &name, Grid4d *grid); template int readGrid4dUni(const std::string &name, Grid4d *grid, int readTslice = -1, Grid4d *slice = NULL, void **fileHandle = NULL); void readGrid4dUniCleanup(void **fileHandle); template int writeGrid4dRaw(const std::string &name, Grid4d *grid); template int readGrid4dRaw(const std::string &name, Grid4d *grid); // Particles + particle data int writeParticlesUni(const std::string &name, const BasicParticleSystem *parts); int readParticlesUni(const std::string &name, BasicParticleSystem *parts); template int writePdataUni(const std::string &name, ParticleDataImpl *pdata); template int readPdataUni(const std::string &name, ParticleDataImpl *pdata); // Mesh data template int writeMdataUni(const std::string &name, MeshDataImpl *mdata); template int readMdataUni(const std::string &name, MeshDataImpl *mdata); // Helpers void getUniFileSize( const std::string &name, int &x, int &y, int &z, int *t = NULL, std::string *info = NULL); void *safeGzopen(const char *filename, const char *mode); #if OPENVDB == 1 template void convertFrom(S &in, T *out); template void convertTo(S *out, T &in); #endif } // namespace Manta #endif