[Bf-blender-cvs] [82d75a46ce3] fluid-mantaflow: Mantaflow: Fixed issues raised in part 2 of the review (D3851)
Sebastián Barschkis
noreply at git.blender.org
Tue Dec 10 18:25:40 CET 2019
Commit: 82d75a46ce37ddd6276e2cc811fdfd30aaf755fc
Author: Sebastián Barschkis
Date: Tue Dec 10 18:25:17 2019 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rB82d75a46ce37ddd6276e2cc811fdfd30aaf755fc
Mantaflow: Fixed issues raised in part 2 of the review (D3851)
===================================================================
M CMakeLists.txt
M extern/mantaflow/CMakeLists.txt
M intern/mantaflow/CMakeLists.txt
M intern/mantaflow/extern/manta_python_API.h
M intern/mantaflow/intern/MANTA_main.h
M intern/mantaflow/intern/manta_fluid_API.cpp
M intern/mantaflow/intern/manta_python_API.cpp
M source/blender/blenkernel/intern/manta.c
===================================================================
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6959f0e15ae..444366c4736 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -313,7 +313,6 @@ endif()
# Modifiers
option(WITH_MOD_MANTA "Enable Mantaflow Fluid Simulation Framework" ON)
-option(WITH_MANTA_OMP "Enable Mantaflow OpenMP support (instead of default TBB support)" OFF)
option(WITH_MOD_REMESH "Enable Remesh Modifier" ON)
option(WITH_MOD_OCEANSIM "Enable Ocean Modifier" OFF)
@@ -1262,13 +1261,6 @@ if(WITH_PYTHON_MODULE)
add_definitions(-DPy_ENABLE_SHARED)
endif()
-#-----------------------------------------------------------------------------
-# Configure mantaflow.
-
-if(WITH_MOD_MANTA)
- add_definitions(-DWITH_MANTA)
-endif()
-
#-----------------------------------------------------------------------------
# Configure GLog/GFlags
diff --git a/extern/mantaflow/CMakeLists.txt b/extern/mantaflow/CMakeLists.txt
index a667eb114fc..3bad53afc6c 100644
--- a/extern/mantaflow/CMakeLists.txt
+++ b/extern/mantaflow/CMakeLists.txt
@@ -25,6 +25,8 @@
set(MANTAVERSION "0.12")
+add_definitions(-DWITH_MANTA=1)
+
set(MANTA_DEP
dependencies
)
@@ -35,9 +37,7 @@ set(MANTA_PP
preprocessed
)
-if(WITH_OPENMP AND WITH_MANTA_OMP)
- add_definitions(-DOPENMP=1)
-else()
+if(WITH_TBB)
add_definitions(-DTBB=1)
endif()
@@ -60,7 +60,7 @@ set(INC_SYS
${ZLIB_INCLUDE_DIRS}
)
-if(NOT WITH_OPENMP OR NOT WITH_MANTA_OMP)
+if(WITH_TBB)
list(APPEND INC_SYS
${TBB_INCLUDE_DIRS}
)
diff --git a/intern/mantaflow/CMakeLists.txt b/intern/mantaflow/CMakeLists.txt
index ff42efd8a4c..b40319188a2 100644
--- a/intern/mantaflow/CMakeLists.txt
+++ b/intern/mantaflow/CMakeLists.txt
@@ -23,12 +23,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-
-if(WITH_OPENMP AND WITH_MANTA_OMP)
- add_definitions(-DOPENMP=1)
-else()
- add_definitions(-DTBB=1)
-endif()
+add_definitions(-DWITH_MANTA=1)
if(WITH_OPENVDB)
add_definitions(-DOPENVDB=1)
diff --git a/intern/mantaflow/extern/manta_python_API.h b/intern/mantaflow/extern/manta_python_API.h
index 2b250f2658a..9ed795bedaf 100644
--- a/intern/mantaflow/extern/manta_python_API.h
+++ b/intern/mantaflow/extern/manta_python_API.h
@@ -30,6 +30,8 @@
#ifndef MANTA_PYTHON_API_H
#define MANTA_PYTHON_API_H
+#include "Python.h"
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/intern/mantaflow/intern/MANTA_main.h b/intern/mantaflow/intern/MANTA_main.h
index 7188e803b6f..db929758583 100644
--- a/intern/mantaflow/intern/MANTA_main.h
+++ b/intern/mantaflow/intern/MANTA_main.h
@@ -33,6 +33,7 @@
#include <string>
#include <vector>
#include <atomic>
+#include <cassert>
struct MANTA {
public:
@@ -416,174 +417,246 @@ struct MANTA {
inline float getVertexXAt(int i)
{
- return (mMeshNodes && !mMeshNodes->empty() && mMeshNodes->size() > i) ?
- mMeshNodes->at(i).pos[0] :
- 0.f;
+ assert(i >= 0);
+ if (mMeshNodes && !mMeshNodes->empty()) {
+ assert(i < mMeshNodes->size());
+ return (*mMeshNodes)[i].pos[0];
+ }
+ return 0.0f;
}
inline float getVertexYAt(int i)
{
- return (mMeshNodes && !mMeshNodes->empty() && mMeshNodes->size() > i) ?
- mMeshNodes->at(i).pos[1] :
- 0.f;
+ assert(i >= 0);
+ if (mMeshNodes && !mMeshNodes->empty()) {
+ assert(i < mMeshNodes->size());
+ return (*mMeshNodes)[i].pos[1];
+ }
+ return 0.0f;
}
inline float getVertexZAt(int i)
{
- return (mMeshNodes && !mMeshNodes->empty() && mMeshNodes->size() > i) ?
- mMeshNodes->at(i).pos[2] :
- 0.f;
+ assert(i >= 0);
+ if (mMeshNodes && !mMeshNodes->empty()) {
+ assert(i < mMeshNodes->size());
+ return (*mMeshNodes)[i].pos[2];
+ }
+ return 0.0f;
}
inline float getNormalXAt(int i)
{
- return (mMeshNodes && !mMeshNodes->empty() && mMeshNodes->size() > i) ?
- mMeshNodes->at(i).normal[0] :
- 0.f;
+ assert(i >= 0);
+ if (mMeshNodes && !mMeshNodes->empty()) {
+ assert(i < mMeshNodes->size());
+ return (*mMeshNodes)[i].normal[0];
+ }
+ return 0.0f;
}
inline float getNormalYAt(int i)
{
- return (mMeshNodes && !mMeshNodes->empty() && mMeshNodes->size() > i) ?
- mMeshNodes->at(i).normal[1] :
- 0.f;
+ assert(i >= 0);
+ if (mMeshNodes && !mMeshNodes->empty()) {
+ assert(i < mMeshNodes->size());
+ return (*mMeshNodes)[i].normal[1];
+ }
+ return 0.0f;
}
inline float getNormalZAt(int i)
{
- return (mMeshNodes && !mMeshNodes->empty() && mMeshNodes->size() > i) ?
- mMeshNodes->at(i).normal[2] :
- 0.f;
+ assert(i >= 0);
+ if (mMeshNodes && !mMeshNodes->empty()) {
+ assert(i < mMeshNodes->size());
+ return (*mMeshNodes)[i].normal[2];
+ }
+ return 0.0f;
}
inline int getTriangleXAt(int i)
{
- return (mMeshTriangles && !mMeshTriangles->empty() && mMeshTriangles->size() > i) ?
- mMeshTriangles->at(i).c[0] :
- 0;
+ assert(i >= 0);
+ if (mMeshTriangles && !mMeshTriangles->empty()) {
+ assert(i < mMeshTriangles->size());
+ return (*mMeshTriangles)[i].c[0];
+ }
+ return 0;
}
inline int getTriangleYAt(int i)
{
- return (mMeshTriangles && !mMeshTriangles->empty() && mMeshTriangles->size() > i) ?
- mMeshTriangles->at(i).c[1] :
- 0;
+ assert(i >= 0);
+ if (mMeshTriangles && !mMeshTriangles->empty()) {
+ assert(i < mMeshTriangles->size());
+ return (*mMeshTriangles)[i].c[1];
+ }
+ return 0;
}
inline int getTriangleZAt(int i)
{
- return (mMeshTriangles && !mMeshTriangles->empty() && mMeshTriangles->size() > i) ?
- mMeshTriangles->at(i).c[2] :
- 0;
+ assert(i >= 0);
+ if (mMeshTriangles && !mMeshTriangles->empty()) {
+ assert(i < mMeshTriangles->size());
+ return (*mMeshTriangles)[i].c[2];
+ }
+ return 0;
}
inline float getVertVelXAt(int i)
{
- return (mMeshVelocities && !mMeshVelocities->empty() && mMeshVelocities->size() > i) ?
- mMeshVelocities->at(i).pos[0] :
- 0.f;
+ assert(i >= 0);
+ if (mMeshVelocities && !mMeshVelocities->empty()) {
+ assert(i < mMeshVelocities->size());
+ return (*mMeshVelocities)[i].pos[0];
+ }
+ return 0.0f;
}
inline float getVertVelYAt(int i)
{
- return (mMeshVelocities && !mMeshVelocities->empty() && mMeshVelocities->size() > i) ?
- mMeshVelocities->at(i).pos[1] :
- 0.f;
+ assert(i >= 0);
+ if (mMeshVelocities && !mMeshVelocities->empty()) {
+ assert(i < mMeshVelocities->size());
+ return (*mMeshVelocities)[i].pos[1];
+ }
+ return 0.0f;
}
inline float getVertVelZAt(int i)
{
- return (mMeshVelocities && !mMeshVelocities->empty() && mMeshVelocities->size() > i) ?
- mMeshVelocities->at(i).pos[2] :
- 0.f;
+ assert(i >= 0);
+ if (mMeshVelocities && !mMeshVelocities->empty()) {
+ assert(i < mMeshVelocities->size());
+ return (*mMeshVelocities)[i].pos[2];
+ }
+ return 0.0f;
}
// Particle getters
inline int getFlipParticleFlagAt(int i)
{
- return (mFlipParticleData && !mFlipParticleData->empty() && mFlipParticleData->size() > i) ?
- ((std::vector<pData> *)mFlipParticleData)->at(i).flag :
- 0;
+ assert(i >= 0);
+ if (mFlipParticleData && !mFlipParticleData->empty()) {
+ assert(i < mFlipParticleData->size());
+ return (*mFlipParticleData)[i].flag;
+ }
+ return 0;
}
inline int getSndParticleFlagAt(int i)
{
- return (mSndParticleData && !mSndParticleData->empty() && mSndParticleData->size() > i) ?
- ((std::vector<pData> *)mSndParticleData)->at(i).flag :
- 0;
+ assert(i >= 0);
+ if (mSndParticleData && !mSndParticleData->empty()) {
+ assert(i < mSndParticleData->size());
+ return (*mSndParticleData)[i].flag;
+ }
+ return 0;
}
inline float getFlipParticlePositionXAt(int i)
{
- return (mFlipParticleData && !mFlipParticleData->empty() && mFlipParticleData->size() > i) ?
- mFlipParticleData->at(i).pos[0] :
- 0.f;
+ assert(i >= 0);
+ if (mFlipParticleData && !mFlipParticleData->empty()) {
+ assert(i < mFlipParticleData->size());
+ return (*mFlipParticleData)[i].pos[0];
+ }
+ return 0.0f;
}
inline float getFlipParticlePositionYAt(int i)
{
- return (mFlipParticleData && !mFlipParticleData->empty() && mFlipParticleData->size() > i) ?
- mFlipParticleData->at(i).pos[1] :
- 0.f;
+ assert(i >= 0);
+ if (mFlipParticleData && !mFlipParticleData->empty()) {
+ assert(i < mFlipParticleData->size());
+ return (*mFlipParticleData)[i].pos[1];
+ }
+ return 0.0f;
}
inline float getFlipParticlePositionZAt(int i)
{
- return (mFlipParticleData && !mFlipParticleData->empty() && mFlipParticleData->size() > i) ?
- mFlipParticleData->at(i).pos[2] :
- 0.f;
+ assert(i >= 0);
+ if (mFlipParticleData && !mFlipParticleData->empty()) {
+ assert(i < mFlipParticleData->size());
+ return (*mFlipParticleData)[i].pos[2];
+ }
+ return 0.0f;
}
inline float getSndParticlePositionXAt(int i)
{
- return (mSndParticleData && !mSndParticleData->empty() && mSndParticleData->size() > i) ?
- mSndParticleData->at(i).pos[0] :
- 0.f;
+ assert(i >= 0);
+ if (mSndParticleData && !mSndParticleData->empty()) {
+ assert(i < mSndParticleData->size());
+ return (*mSndParticleData)[i].pos[0];
+ }
+ return 0.0f;
}
inline float getSndParticlePositionYAt(int i)
{
- return (mSndParticleData && !mSndParticleData->empty() && mSndParticleData->size() > i) ?
- mSndParticleData->at(i).pos[1] :
- 0.f;
+ assert(i >= 0);
+ if (mSndParticleData && !mSndParticleData->empty()) {
+ assert(i < mSndParticleData->size());
+ return (*mSndParticleData)[i].pos[1];
+ }
+ return 0.0
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list