Commit: 757cb5223d19f4c6ed483f06696086705f8f4e01 Author: Sebastián Barschkis Date: Wed Nov 9 22:06:12 2016 +0200 Branches: fluid-mantaflow https://developer.blender.org/rB757cb5223d19f4c6ed483f06696086705f8f4e01
changed obstacle type to int to match manta flag grid type =================================================================== M intern/mantaflow/extern/manta_fluid_API.h M intern/mantaflow/intern/FLUID.cpp M intern/mantaflow/intern/FLUID.h M intern/mantaflow/intern/manta_fluid_API.cpp M source/blender/blenkernel/intern/smoke.c =================================================================== diff --git a/intern/mantaflow/extern/manta_fluid_API.h b/intern/mantaflow/extern/manta_fluid_API.h index 665ca44..42064b7 100644 --- a/intern/mantaflow/extern/manta_fluid_API.h +++ b/intern/mantaflow/extern/manta_fluid_API.h @@ -44,7 +44,7 @@ void smoke_manta_export(struct FLUID* smoke, struct SmokeModifierData *smd); void smoke_step(struct FLUID *smoke, struct SmokeModifierData *smd); void smoke_dissolve(struct FLUID *smoke, int speed, int log); void smoke_dissolve_wavelet(struct FLUID *smoke, int speed, int log); -void smoke_export(struct FLUID *smoke, float *dt, float *dx, float **dens, float **react, float **flame, float **fuel, float **heat, float **smoke_inflow, float **vx, float **vy, float **vz, float **r, float **g, float **b, unsigned char **obstacles); +void smoke_export(struct FLUID *smoke, float *dt, float *dx, float **dens, float **react, float **flame, float **fuel, float **heat, float **smoke_inflow, float **vx, float **vy, float **vz, float **r, float **g, float **b, int **obstacles); void smoke_turbulence_export(struct FLUID *smoke, float **dens, float **react, float **flame, float **fuel, float **r, float **g, float **b , float **tcu, float **tcv, float **tcw, float **tcu2, float **tcv2, float **tcw2); float *smoke_get_density(struct FLUID *smoke); float *smoke_get_fuel(struct FLUID *smoke); @@ -73,7 +73,7 @@ float *smoke_turbulence_get_color_b(struct FLUID *smoke); float *smoke_turbulence_get_flame(struct FLUID *smoke); void smoke_turbulence_get_res(struct FLUID *smoke, int *res); int smoke_turbulence_get_cells(struct FLUID *smoke); -unsigned char *smoke_get_obstacle(struct FLUID *smoke); +int *smoke_get_obstacle(struct FLUID *smoke); void smoke_get_ob_velocity(struct FLUID *smoke, float **x, float **y, float **z); void flame_get_spectrum(unsigned char *spec, int width, float t1, float t2); int smoke_has_heat(struct FLUID *smoke); @@ -86,7 +86,7 @@ void smoke_ensure_fire(struct FLUID *smoke, struct SmokeModifierData *smd); void smoke_ensure_colors(struct FLUID *smoke, struct SmokeModifierData *smd); float *smoke_get_inflow_grid(struct FLUID *smoke); float *smoke_get_fuel_inflow(struct FLUID *smoke); -unsigned char *smoke_turbulence_get_obstacle(struct FLUID *smoke); +int *smoke_turbulence_get_obstacle(struct FLUID *smoke); float *liquid_get_phi(struct FLUID *liquid); float *liquid_get_phiinit(struct FLUID *liquid); diff --git a/intern/mantaflow/intern/FLUID.cpp b/intern/mantaflow/intern/FLUID.cpp index 098bccd..f41faf2 100644 --- a/intern/mantaflow/intern/FLUID.cpp +++ b/intern/mantaflow/intern/FLUID.cpp @@ -899,7 +899,7 @@ void FLUID::updatePointers(SmokeModifierData *smd) { std::cout << "Updating pointers low res" << std::endl; - mObstacle = (unsigned char*) getGridPointer("flags", "s"); + mObstacle = (int*) getGridPointer("flags", "s"); mVelocityX = (float*) getGridPointer("x_vel", "s"); mVelocityY = (float*) getGridPointer("y_vel", "s"); @@ -946,7 +946,7 @@ void FLUID::updatePointersHigh(SmokeModifierData *smd) { std::cout << "Updating pointers high res" << std::endl; - mObstacleHigh = (unsigned char*) getGridPointer("xl_flags", "s"); + mObstacleHigh = (int*) getGridPointer("xl_flags", "s"); // Liquid if (mUsingLiquid) { diff --git a/intern/mantaflow/intern/FLUID.h b/intern/mantaflow/intern/FLUID.h index 59f315b..2dc27bb 100644 --- a/intern/mantaflow/intern/FLUID.h +++ b/intern/mantaflow/intern/FLUID.h @@ -97,7 +97,7 @@ public: inline float* getForceX() { return mForceX; } inline float* getForceY() { return mForceY; } inline float* getForceZ() { return mForceZ; } - inline unsigned char* getObstacle() { return mObstacle; } + inline int* getObstacle() { return mObstacle; } inline unsigned char* getObstaclesAnim() { return mObstaclesAnim; } inline float* getFlame() { return mFlame; } inline float* getFuel() { return mFuel; } @@ -121,7 +121,7 @@ public: inline float* getTextureU2() { return mTextureU2; } inline float* getTextureV2() { return mTextureV2; } inline float* getTextureW2() { return mTextureW2; } - inline unsigned char* getObstacleHigh() { return mObstacleHigh; } + inline int* getObstacleHigh() { return mObstacleHigh; } inline float* getPhi() { return mPhi; } inline float* getPhiInit() { return mPhiInit; } @@ -186,7 +186,7 @@ private: float* mForceX; float* mForceY; float* mForceZ; - unsigned char* mObstacle; /* only used (useful) for static obstacles like domain boundaries */ + int* mObstacle; /* only used (useful) for static obstacles like domain boundaries */ unsigned char* mObstaclesAnim; float *mFlame; float *mFuel; @@ -211,7 +211,7 @@ private: float* mTextureU2; float* mTextureV2; float* mTextureW2; - unsigned char* mObstacleHigh; + int* mObstacleHigh; // Liquids float* mPhi; diff --git a/intern/mantaflow/intern/manta_fluid_API.cpp b/intern/mantaflow/intern/manta_fluid_API.cpp index 90d729b..b860b1e 100644 --- a/intern/mantaflow/intern/manta_fluid_API.cpp +++ b/intern/mantaflow/intern/manta_fluid_API.cpp @@ -135,7 +135,7 @@ extern "C" void smoke_dissolve_wavelet(FLUID *smoke, int speed, int log) } extern "C" void smoke_export(FLUID *smoke, float *dt, float *dx, float **dens, float **react, float **flame, float **fuel, float **heat, - float **smoke_inflow, float **vx, float **vy, float **vz, float **r, float **g, float **b, unsigned char **obstacle) + float **smoke_inflow, float **vx, float **vy, float **vz, float **r, float **g, float **b, int **obstacle) { *dens = smoke->getDensity(); if (fuel) @@ -338,7 +338,7 @@ extern "C" float *smoke_turbulence_get_density(FLUID *smoke) return (smoke && smoke->usingHighRes()) ? smoke->getDensityHigh() : NULL; } -extern "C" unsigned char *smoke_turbulence_get_obstacle(FLUID *smoke) +extern "C" int *smoke_turbulence_get_obstacle(FLUID *smoke) { return (smoke && smoke->usingHighRes()) ? smoke->getObstacleHigh() : NULL; } @@ -393,7 +393,7 @@ extern "C" int smoke_turbulence_get_cells(FLUID *smoke) return (smoke && smoke->usingHighRes()) ? total_cells_high : 0; } -extern "C" unsigned char *smoke_get_obstacle(FLUID *smoke) +extern "C" int *smoke_get_obstacle(FLUID *smoke) { return smoke->getObstacle(); } diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c index dc9bdd8..e8ad6ce 100644 --- a/source/blender/blenkernel/intern/smoke.c +++ b/source/blender/blenkernel/intern/smoke.c @@ -809,7 +809,7 @@ typedef struct ObstaclesFromDMData { const MLoop *mloop; const MLoopTri *looptri; BVHTreeFromMesh *tree; - unsigned char *obstacle_map; + int *obstacle_map; bool has_velocity; float *vert_vel; @@ -879,7 +879,7 @@ static void obstacles_from_derivedmesh_task_cb(void *userdata, const int z) static void obstacles_from_derivedmesh( Object *coll_ob, SmokeDomainSettings *sds, SmokeCollSettings *scs, - unsigned char *obstacle_map, float *distances_map, float *velocityX, float *velocityY, float *velocityZ, int *num_obstacles, float dt) + int *obstacle_map, float *distances_map, float *velocityX, float *velocityY, float *velocityZ, int *num_obstacles, float dt) { if (!scs->dm) return; { @@ -972,7 +972,7 @@ static void update_obstacles(Scene *scene, Object *ob, SmokeDomainSettings *sds, unsigned int numcollobj = 0; unsigned int collIndex; - unsigned char *obstacles = smoke_get_obstacle(sds->fluid); + int *obstacles = smoke_get_obstacle(sds->fluid); float *velx = NULL; float *vely = NULL; float *velz = NULL; @@ -2285,7 +2285,7 @@ static void adjustDomainResolution(SmokeDomainSettings *sds, int new_shift[3], E } } -BLI_INLINE void apply_outflow_fields(int index, float inflow_value, float *density, float *heat, float *fuel, float *react, float *color_r, float *color_g, float *color_b, float *phi, float *phiobsinit, unsigned char *obstacle) +BLI_INLINE void apply_outflow_fields(int index, float inflow_value, float *density, float *heat, float *fuel, float *react, float *color_r, float *color_g, float *color_b, float *phi, float *phiobsinit, int *obstacle) { /* set liquid outflow */ if (phi) { @@ -2636,7 +2636,7 @@ static void update_flowsfluids(Scene *scene, Object *ob, SmokeDomainSettings *sd float *bigcolor_g = smoke_turbulence_get_color_g(sds->fluid); float *bigcolor_b = smoke_turbulence_get_color_b(sds->fluid); float *bigphi = liquid_turbulence_get_phi(sds->fluid); - unsigned char *bigobstacle = smoke_turbulence_get_obstacle(sds->fluid); + int *bigobstacle = smoke_turbulence_get_obstacle(sds->fluid); #endif float *heat = smoke_get_heat(sds->fluid); float *velocity_x = smoke_get_velocity_x(sds->fluid); @@ -2644,7 +2644,7 @@ static void update_flowsfluids(Scene *scene, Object *ob, SmokeDomainSettings *sd float *velocity_z = smoke_get_velocity_z(sds->fluid); float *phiinit = liquid_get_phiinit(sds->fluid); float *phiobsinit = liquid_get_phiobsinit(sds->fluid); - unsigned char *obstacle = smoke_get_obstacle(sds->fluid); + int *obstacle = smoke_get_obstacle(sds->fluid); // DG TODO UNUSED unsigned char *obstacleAnim = smoke_get_obstacle_anim(sds->fluid); int bigres[3]; float *velocity_map = em->velocity; @@ -2813,7 +2813,7 @@ typedef struct UpdateEffectorsData { float *velocity_x; float *velocity_y; float *velocity_z; - unsigned char *obstacle; + int *obstacle; float *phi; } UpdateEffectorsData; @@ -2833,7 +2833,7 @@ static void update_effectors_task_cb(void *userdata, const int x) if ((data->fuel && MAX2(data->density[index], data->fuel[index]) < FLT_EPSILON) || (data->density && data->density[index] < FLT_EPSILON) || (data->phi && data->phi[index] < 0.0f) || - data->obstacle[index]) + data->obstacle[index]) { continue; } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs