Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/mantaflow/preprocessed/grid.cpp')
-rw-r--r--extern/mantaflow/preprocessed/grid.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/extern/mantaflow/preprocessed/grid.cpp b/extern/mantaflow/preprocessed/grid.cpp
index cf8e4635462..61672129f37 100644
--- a/extern/mantaflow/preprocessed/grid.cpp
+++ b/extern/mantaflow/preprocessed/grid.cpp
@@ -60,7 +60,7 @@ template<> inline GridBase::GridType typeList<Vec3>()
}
template<class T>
-Grid<T>::Grid(FluidSolver *parent, bool show) : GridBase(parent), externalData(false)
+Grid<T>::Grid(FluidSolver *parent, bool show, bool sparse) : GridBase(parent), mExternalData(false)
{
mType = typeList<T>();
mSize = parent->getGridSize();
@@ -70,22 +70,23 @@ Grid<T>::Grid(FluidSolver *parent, bool show) : GridBase(parent), externalData(f
mDx = 1.0 / mSize.max();
clear();
setHidden(!show);
+
+#if OPENVDB == 1
+ mSaveSparse = sparse;
+#else
+ if (sparse)
+ debMsg("Cannot enable sparse save option without OpenVDB", 1);
+ mSaveSparse = false;
+#endif
}
template<class T>
-Grid<T>::Grid(FluidSolver *parent, T *data, bool show)
- : GridBase(parent), mData(data), externalData(true)
+Grid<T>::Grid(FluidSolver *parent, T *data, bool show) : Grid<T>::Grid(parent, show)
{
- mType = typeList<T>();
- mSize = parent->getGridSize();
-
- mStrideZ = parent->is2D() ? 0 : (mSize.x * mSize.y);
- mDx = 1.0 / mSize.max();
-
- setHidden(!show);
+ mData = data;
}
-template<class T> Grid<T>::Grid(const Grid<T> &a) : GridBase(a.getParent()), externalData(false)
+template<class T> Grid<T>::Grid(const Grid<T> &a) : GridBase(a.getParent()), mExternalData(false)
{
mSize = a.mSize;
mType = a.mType;
@@ -98,7 +99,7 @@ template<class T> Grid<T>::Grid(const Grid<T> &a) : GridBase(a.getParent()), ext
template<class T> Grid<T>::~Grid()
{
- if (!externalData) {
+ if (!mExternalData) {
mParent->freeGridPointer<T>(mData);
}
}
@@ -114,8 +115,8 @@ template<class T> void Grid<T>::swap(Grid<T> &other)
other.getSizeZ() != getSizeZ())
errMsg("Grid::swap(): Grid dimensions mismatch.");
- if (externalData || other.externalData)
- errMsg("Grid::swap(): Cannot swap if one grid stores externalData.");
+ if (mExternalData || other.mExternalData)
+ errMsg("Grid::swap(): Cannot swap if one grid stores mExternalData.");
T *dswap = other.mData;
other.mData = mData;