forked from bartvdbraak/blender
Default cache file paths for ocean and fluidsim modifiers are now "<temp folder>/ocean_cache/" and "<temp_folder>/fluid_cache/" when the file is not saved yet at the time the modifiers are created.
If it has been saved, the file paths are relative to the .blend: "//ocean_cache/" and "//fluid_cache/". This should at least partially fix bug #29273. Particle external point caches are not changed. http://projects.blender.org/tracker/?func=detail&atid=498&aid=29273&group_id=9
This commit is contained in:
parent
eff7e18dc5
commit
391f40e8c9
@ -69,6 +69,7 @@ void fluidsim_init(FluidsimModifierData *fluidmd)
|
|||||||
if(fluidmd)
|
if(fluidmd)
|
||||||
{
|
{
|
||||||
FluidsimSettings *fss = MEM_callocN(sizeof(FluidsimSettings), "fluidsimsettings");
|
FluidsimSettings *fss = MEM_callocN(sizeof(FluidsimSettings), "fluidsimsettings");
|
||||||
|
int surfdataPathMax = FILE_MAX;
|
||||||
|
|
||||||
fluidmd->fss = fss;
|
fluidmd->fss = fss;
|
||||||
|
|
||||||
@ -104,7 +105,22 @@ void fluidsim_init(FluidsimModifierData *fluidmd)
|
|||||||
|
|
||||||
/* elubie: changed this to default to the same dir as the render output
|
/* elubie: changed this to default to the same dir as the render output
|
||||||
to prevent saving to C:\ on Windows */
|
to prevent saving to C:\ on Windows */
|
||||||
BLI_strncpy(fss->surfdataPath, BLI_temporary_dir(), FILE_MAX);
|
if (G.relbase_valid) { /* is the .blend saved? */
|
||||||
|
/* subfolder next to saved file */
|
||||||
|
BLI_strncpy(fss->surfdataPath, "//fluid_cache", surfdataPathMax);
|
||||||
|
BLI_add_slash(fss->surfdataPath);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* subfolder in temp. directory */
|
||||||
|
BLI_strncpy(fss->surfdataPath, BLI_temporary_dir(), surfdataPathMax);
|
||||||
|
surfdataPathMax -= strlen(fss->surfdataPath);
|
||||||
|
if (surfdataPathMax > 1) {
|
||||||
|
BLI_strncpy(fss->surfdataPath+strlen(fss->surfdataPath), "fluid_cache", surfdataPathMax);
|
||||||
|
surfdataPathMax -= strlen("fluid_cache");
|
||||||
|
if (surfdataPathMax > 1)
|
||||||
|
BLI_add_slash(fss->surfdataPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// first init of bounding box
|
// first init of bounding box
|
||||||
// no bounding box needed
|
// no bounding box needed
|
||||||
|
@ -34,10 +34,12 @@
|
|||||||
#include "DNA_scene_types.h"
|
#include "DNA_scene_types.h"
|
||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_global.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_ocean.h"
|
#include "BKE_ocean.h"
|
||||||
#include "BKE_utildefines.h"
|
#include "BKE_utildefines.h"
|
||||||
|
|
||||||
|
#include "BLI_blenlib.h"
|
||||||
#include "BLI_math.h"
|
#include "BLI_math.h"
|
||||||
#include "BLI_math_inline.h"
|
#include "BLI_math_inline.h"
|
||||||
#include "BLI_utildefines.h"
|
#include "BLI_utildefines.h"
|
||||||
@ -95,6 +97,7 @@ static void initData(ModifierData *md)
|
|||||||
{
|
{
|
||||||
#ifdef WITH_OCEANSIM
|
#ifdef WITH_OCEANSIM
|
||||||
OceanModifierData *omd = (OceanModifierData*) md;
|
OceanModifierData *omd = (OceanModifierData*) md;
|
||||||
|
int cachepathmax = sizeof(omd->cachepath);
|
||||||
|
|
||||||
omd->resolution = 7;
|
omd->resolution = 7;
|
||||||
omd->spatial_size = 50;
|
omd->spatial_size = 50;
|
||||||
@ -122,7 +125,22 @@ static void initData(ModifierData *md)
|
|||||||
omd->repeat_x = 1;
|
omd->repeat_x = 1;
|
||||||
omd->repeat_y = 1;
|
omd->repeat_y = 1;
|
||||||
|
|
||||||
BLI_strncpy(omd->cachepath, "//ocean_cache", sizeof(omd->cachepath));
|
if (G.relbase_valid) { /* is the .blend saved? */
|
||||||
|
/* subfolder next to saved file */
|
||||||
|
BLI_strncpy(omd->cachepath, "//ocean_cache", cachepathmax);
|
||||||
|
BLI_add_slash(omd->cachepath);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* subfolder in temp. directory */
|
||||||
|
BLI_strncpy(omd->cachepath, BLI_temporary_dir(), cachepathmax);
|
||||||
|
cachepathmax -= strlen(omd->cachepath);
|
||||||
|
if (cachepathmax > 1) {
|
||||||
|
BLI_strncpy(omd->cachepath+strlen(omd->cachepath), "ocean_cache", cachepathmax);
|
||||||
|
cachepathmax -= strlen("ocean_cache");
|
||||||
|
if (cachepathmax > 1)
|
||||||
|
BLI_add_slash(omd->cachepath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
omd->cached = 0;
|
omd->cached = 0;
|
||||||
omd->bakestart = 1;
|
omd->bakestart = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user