diff options
Diffstat (limited to 'extern/mantaflow/preprocessed/mesh.cpp')
-rw-r--r-- | extern/mantaflow/preprocessed/mesh.cpp | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/extern/mantaflow/preprocessed/mesh.cpp b/extern/mantaflow/preprocessed/mesh.cpp index d93c2ac04c0..6a9b0283bef 100644 --- a/extern/mantaflow/preprocessed/mesh.cpp +++ b/extern/mantaflow/preprocessed/mesh.cpp @@ -213,34 +213,36 @@ Mesh &Mesh::operator=(const Mesh &o) return *this; } -void Mesh::load(string name, bool append) +int Mesh::load(string name, bool append) { if (name.find_last_of('.') == string::npos) errMsg("file '" + name + "' does not have an extension"); string ext = name.substr(name.find_last_of('.')); if (ext == ".gz") // assume bobj gz - readBobjFile(name, this, append); + return readBobjFile(name, this, append); else if (ext == ".obj") - readObjFile(name, this, append); + return readObjFile(name, this, append); else errMsg("file '" + name + "' filetype not supported"); // dont always rebuild... // rebuildCorners(); // rebuildLookup(); + return 0; } -void Mesh::save(string name) +int Mesh::save(string name) { if (name.find_last_of('.') == string::npos) errMsg("file '" + name + "' does not have an extension"); string ext = name.substr(name.find_last_of('.')); if (ext == ".obj") - writeObjFile(name, this); + return writeObjFile(name, this); else if (ext == ".gz") - writeBobjFile(name, this); + return writeBobjFile(name, this); else errMsg("file '" + name + "' filetype not supported"); + return 0; } void Mesh::fromShape(Shape &shape, bool append) @@ -1339,8 +1341,8 @@ template<class T> void MeshDataImpl<T>::setSource(Grid<T> *grid, bool isMAC) { mpGridSource = grid; mGridSourceMAC = isMAC; - if (isMAC) - assertMsg(dynamic_cast<MACGrid *>(grid) != NULL, "Given grid is not a valid MAC grid"); + if (grid && isMAC) + assertMsg(grid->getType() & GridBase::TypeMAC, "Given grid is not a valid MAC grid"); } template<class T> void MeshDataImpl<T>::initNewValue(IndexInt idx, Vec3 pos) @@ -1371,38 +1373,40 @@ void Mesh::updateDataFields() for (size_t i = 0; i < mNodes.size(); ++i) { Vec3 pos = mNodes[i].pos; for (IndexInt md = 0; md < (IndexInt)mMdataReal.size(); ++md) - mMdataReal[md]->initNewValue(i, mNodes[i].pos); + mMdataReal[md]->initNewValue(i, pos); for (IndexInt md = 0; md < (IndexInt)mMdataVec3.size(); ++md) - mMdataVec3[md]->initNewValue(i, mNodes[i].pos); + mMdataVec3[md]->initNewValue(i, pos); for (IndexInt md = 0; md < (IndexInt)mMdataInt.size(); ++md) - mMdataInt[md]->initNewValue(i, mNodes[i].pos); + mMdataInt[md]->initNewValue(i, pos); } } -template<typename T> void MeshDataImpl<T>::load(string name) +template<typename T> int MeshDataImpl<T>::load(string name) { if (name.find_last_of('.') == string::npos) errMsg("file '" + name + "' does not have an extension"); string ext = name.substr(name.find_last_of('.')); if (ext == ".uni") - readMdataUni<T>(name, this); + return readMdataUni<T>(name, this); else if (ext == ".raw") // raw = uni for now - readMdataUni<T>(name, this); + return readMdataUni<T>(name, this); else errMsg("mesh data '" + name + "' filetype not supported for loading"); + return 0; } -template<typename T> void MeshDataImpl<T>::save(string name) +template<typename T> int MeshDataImpl<T>::save(string name) { if (name.find_last_of('.') == string::npos) errMsg("file '" + name + "' does not have an extension"); string ext = name.substr(name.find_last_of('.')); if (ext == ".uni") - writeMdataUni<T>(name, this); + return writeMdataUni<T>(name, this); else if (ext == ".raw") // raw = uni for now - writeMdataUni<T>(name, this); + return writeMdataUni<T>(name, this); else errMsg("mesh data '" + name + "' filetype not supported for saving"); + return 0; } // specializations |