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)
|
||||
{
|
||||
FluidsimSettings *fss = MEM_callocN(sizeof(FluidsimSettings), "fluidsimsettings");
|
||||
int surfdataPathMax = FILE_MAX;
|
||||
|
||||
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
|
||||
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
|
||||
// no bounding box needed
|
||||
|
@ -34,10 +34,12 @@
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_ocean.h"
|
||||
#include "BKE_utildefines.h"
|
||||
|
||||
#include "BLI_blenlib.h"
|
||||
#include "BLI_math.h"
|
||||
#include "BLI_math_inline.h"
|
||||
#include "BLI_utildefines.h"
|
||||
@ -95,6 +97,7 @@ static void initData(ModifierData *md)
|
||||
{
|
||||
#ifdef WITH_OCEANSIM
|
||||
OceanModifierData *omd = (OceanModifierData*) md;
|
||||
int cachepathmax = sizeof(omd->cachepath);
|
||||
|
||||
omd->resolution = 7;
|
||||
omd->spatial_size = 50;
|
||||
@ -122,7 +125,22 @@ static void initData(ModifierData *md)
|
||||
omd->repeat_x = 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->bakestart = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user