Blender  V3.3
Classes | Macros | Typedefs | Functions
physics_fluid.c File Reference
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include "MEM_guardedalloc.h"
#include "DNA_action_types.h"
#include "DNA_object_types.h"
#include "BLI_blenlib.h"
#include "BLI_path_util.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_context.h"
#include "BKE_fluid.h"
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_modifier.h"
#include "BKE_report.h"
#include "BKE_screen.h"
#include "DEG_depsgraph.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "PIL_time.h"
#include "WM_api.h"
#include "WM_types.h"
#include "physics_intern.h"
#include "DNA_fluid_types.h"
#include "DNA_scene_types.h"

Go to the source code of this file.

Classes

struct  FluidJob
 

Macros

#define FLUID_JOB_BAKE_ALL   "FLUID_OT_bake_all"
 
#define FLUID_JOB_BAKE_DATA   "FLUID_OT_bake_data"
 
#define FLUID_JOB_BAKE_NOISE   "FLUID_OT_bake_noise"
 
#define FLUID_JOB_BAKE_MESH   "FLUID_OT_bake_mesh"
 
#define FLUID_JOB_BAKE_PARTICLES   "FLUID_OT_bake_particles"
 
#define FLUID_JOB_BAKE_GUIDES   "FLUID_OT_bake_guides"
 
#define FLUID_JOB_FREE_ALL   "FLUID_OT_free_all"
 
#define FLUID_JOB_FREE_DATA   "FLUID_OT_free_data"
 
#define FLUID_JOB_FREE_NOISE   "FLUID_OT_free_noise"
 
#define FLUID_JOB_FREE_MESH   "FLUID_OT_free_mesh"
 
#define FLUID_JOB_FREE_PARTICLES   "FLUID_OT_free_particles"
 
#define FLUID_JOB_FREE_GUIDES   "FLUID_OT_free_guides"
 
#define FLUID_JOB_BAKE_PAUSE   "FLUID_OT_pause_bake"
 

Typedefs

typedef struct FluidJob FluidJob
 

Functions

static bool fluid_is_bake_all (FluidJob *job)
 
static bool fluid_is_bake_data (FluidJob *job)
 
static bool fluid_is_bake_noise (FluidJob *job)
 
static bool fluid_is_bake_mesh (FluidJob *job)
 
static bool fluid_is_bake_particle (FluidJob *job)
 
static bool fluid_is_bake_guiding (FluidJob *job)
 
static bool fluid_is_free_all (FluidJob *job)
 
static bool fluid_is_free_data (FluidJob *job)
 
static bool fluid_is_free_noise (FluidJob *job)
 
static bool fluid_is_free_mesh (FluidJob *job)
 
static bool fluid_is_free_particles (FluidJob *job)
 
static bool fluid_is_free_guiding (FluidJob *job)
 
static bool fluid_initjob (bContext *C, FluidJob *job, wmOperator *op, char *error_msg, int error_size)
 
static bool fluid_validatepaths (FluidJob *job, ReportList *reports)
 
static void fluid_bake_free (void *customdata)
 
static void fluid_bake_sequence (FluidJob *job)
 
static void fluid_bake_endjob (void *customdata)
 
static void fluid_bake_startjob (void *customdata, short *stop, short *do_update, float *progress)
 
static void fluid_free_endjob (void *customdata)
 
static void fluid_free_startjob (void *customdata, short *stop, short *do_update, float *progress)
 
static int fluid_bake_exec (struct bContext *C, struct wmOperator *op)
 
static int fluid_bake_invoke (struct bContext *C, struct wmOperator *op, const wmEvent *UNUSED(_event))
 
static int fluid_bake_modal (bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
 
static int fluid_free_exec (struct bContext *C, struct wmOperator *op)
 
static int fluid_pause_exec (struct bContext *C, struct wmOperator *op)
 
void FLUID_OT_bake_all (wmOperatorType *ot)
 
void FLUID_OT_free_all (wmOperatorType *ot)
 
void FLUID_OT_bake_data (wmOperatorType *ot)
 
void FLUID_OT_free_data (wmOperatorType *ot)
 
void FLUID_OT_bake_noise (wmOperatorType *ot)
 
void FLUID_OT_free_noise (wmOperatorType *ot)
 
void FLUID_OT_bake_mesh (wmOperatorType *ot)
 
void FLUID_OT_free_mesh (wmOperatorType *ot)
 
void FLUID_OT_bake_particles (wmOperatorType *ot)
 
void FLUID_OT_free_particles (wmOperatorType *ot)
 
void FLUID_OT_bake_guides (wmOperatorType *ot)
 
void FLUID_OT_free_guides (wmOperatorType *ot)
 
void FLUID_OT_pause_bake (wmOperatorType *ot)
 

Macro Definition Documentation

◆ FLUID_JOB_BAKE_ALL

#define FLUID_JOB_BAKE_ALL   "FLUID_OT_bake_all"

Definition at line 47 of file physics_fluid.c.

◆ FLUID_JOB_BAKE_DATA

#define FLUID_JOB_BAKE_DATA   "FLUID_OT_bake_data"

Definition at line 48 of file physics_fluid.c.

◆ FLUID_JOB_BAKE_GUIDES

#define FLUID_JOB_BAKE_GUIDES   "FLUID_OT_bake_guides"

Definition at line 52 of file physics_fluid.c.

◆ FLUID_JOB_BAKE_MESH

#define FLUID_JOB_BAKE_MESH   "FLUID_OT_bake_mesh"

Definition at line 50 of file physics_fluid.c.

◆ FLUID_JOB_BAKE_NOISE

#define FLUID_JOB_BAKE_NOISE   "FLUID_OT_bake_noise"

Definition at line 49 of file physics_fluid.c.

◆ FLUID_JOB_BAKE_PARTICLES

#define FLUID_JOB_BAKE_PARTICLES   "FLUID_OT_bake_particles"

Definition at line 51 of file physics_fluid.c.

◆ FLUID_JOB_BAKE_PAUSE

#define FLUID_JOB_BAKE_PAUSE   "FLUID_OT_pause_bake"

Definition at line 59 of file physics_fluid.c.

◆ FLUID_JOB_FREE_ALL

#define FLUID_JOB_FREE_ALL   "FLUID_OT_free_all"

Definition at line 53 of file physics_fluid.c.

◆ FLUID_JOB_FREE_DATA

#define FLUID_JOB_FREE_DATA   "FLUID_OT_free_data"

Definition at line 54 of file physics_fluid.c.

◆ FLUID_JOB_FREE_GUIDES

#define FLUID_JOB_FREE_GUIDES   "FLUID_OT_free_guides"

Definition at line 58 of file physics_fluid.c.

◆ FLUID_JOB_FREE_MESH

#define FLUID_JOB_FREE_MESH   "FLUID_OT_free_mesh"

Definition at line 56 of file physics_fluid.c.

◆ FLUID_JOB_FREE_NOISE

#define FLUID_JOB_FREE_NOISE   "FLUID_OT_free_noise"

Definition at line 55 of file physics_fluid.c.

◆ FLUID_JOB_FREE_PARTICLES

#define FLUID_JOB_FREE_PARTICLES   "FLUID_OT_free_particles"

Definition at line 57 of file physics_fluid.c.

Typedef Documentation

◆ FluidJob

typedef struct FluidJob FluidJob

Function Documentation

◆ fluid_bake_endjob()

static void fluid_bake_endjob ( void customdata)
static

◆ fluid_bake_exec()

static int fluid_bake_exec ( struct bContext C,
struct wmOperator op 
)
static

◆ fluid_bake_free()

static void fluid_bake_free ( void customdata)
static

Definition at line 224 of file physics_fluid.c.

References MEM_freeN.

Referenced by fluid_bake_exec(), fluid_bake_invoke(), and fluid_free_exec().

◆ fluid_bake_invoke()

static int fluid_bake_invoke ( struct bContext C,
struct wmOperator op,
const wmEvent UNUSED_event 
)
static

◆ fluid_bake_modal()

static int fluid_bake_modal ( bContext C,
wmOperator UNUSEDop,
const wmEvent event 
)
static

◆ fluid_bake_sequence()

static void fluid_bake_sequence ( FluidJob job)
static

◆ fluid_bake_startjob()

static void fluid_bake_startjob ( void customdata,
short *  stop,
short *  do_update,
float progress 
)
static

Definition at line 352 of file physics_fluid.c.

References BKE_modifier_path_relbase_from_global(), BKE_spacedata_draw_locks(), BLI_dir_create_recursive(), BLI_path_abs(), BLI_path_join(), FluidDomainSettings::cache_directory, FluidDomainSettings::cache_flag, FluidDomainSettings::cache_frame_pause_data, FluidDomainSettings::cache_frame_pause_guide, FluidDomainSettings::cache_frame_pause_mesh, FluidDomainSettings::cache_frame_pause_noise, FluidDomainSettings::cache_frame_pause_particles, DEG_id_tag_update(), FluidJob::do_update, FluidModifierData::domain, FILE_MAX, FluidDomainSettings::flags, fluid_bake_sequence(), FLUID_DOMAIN_BAKED_DATA, FLUID_DOMAIN_BAKED_GUIDE, FLUID_DOMAIN_BAKED_MESH, FLUID_DOMAIN_BAKED_NOISE, FLUID_DOMAIN_BAKED_PARTICLES, FLUID_DOMAIN_BAKING_DATA, FLUID_DOMAIN_BAKING_GUIDE, FLUID_DOMAIN_BAKING_MESH, FLUID_DOMAIN_BAKING_NOISE, FLUID_DOMAIN_BAKING_PARTICLES, FLUID_DOMAIN_DIR_CONFIG, FLUID_DOMAIN_DIR_DATA, FLUID_DOMAIN_DIR_GUIDE, FLUID_DOMAIN_DIR_MESH, FLUID_DOMAIN_DIR_NOISE, FLUID_DOMAIN_DIR_PARTICLES, FLUID_DOMAIN_DIR_SCRIPT, FLUID_DOMAIN_EXPORT_MANTA_SCRIPT, FLUID_DOMAIN_OUTDATED_DATA, FLUID_DOMAIN_OUTDATED_GUIDE, FLUID_DOMAIN_OUTDATED_MESH, FLUID_DOMAIN_OUTDATED_NOISE, FLUID_DOMAIN_OUTDATED_PARTICLES, fluid_is_bake_all(), fluid_is_bake_data(), fluid_is_bake_guiding(), fluid_is_bake_mesh(), fluid_is_bake_noise(), fluid_is_bake_particle(), FluidJob::fmd, G, Object::id, ID_RECALC_GEOMETRY, NULL, FluidJob::ob, FluidJob::pause_frame, PIL_check_seconds_timer(), FluidJob::progress, FluidJob::start, FluidJob::stop, and FluidJob::success.

Referenced by fluid_bake_exec(), and fluid_bake_invoke().

◆ fluid_free_endjob()

static void fluid_free_endjob ( void customdata)
static

◆ fluid_free_exec()

static int fluid_free_exec ( struct bContext C,
struct wmOperator op 
)
static

◆ fluid_free_startjob()

static void fluid_free_startjob ( void customdata,
short *  stop,
short *  do_update,
float progress 
)
static

◆ fluid_initjob()

static bool fluid_initjob ( bContext C,
FluidJob job,
wmOperator op,
char *  error_msg,
int  error_size 
)
static

◆ fluid_is_bake_all()

static bool fluid_is_bake_all ( FluidJob job)
inlinestatic

Definition at line 82 of file physics_fluid.c.

References FLUID_JOB_BAKE_ALL, STREQ, and FluidJob::type.

Referenced by fluid_bake_endjob(), and fluid_bake_startjob().

◆ fluid_is_bake_data()

static bool fluid_is_bake_data ( FluidJob job)
inlinestatic

Definition at line 86 of file physics_fluid.c.

References FLUID_JOB_BAKE_DATA, STREQ, and FluidJob::type.

Referenced by fluid_bake_endjob(), and fluid_bake_startjob().

◆ fluid_is_bake_guiding()

static bool fluid_is_bake_guiding ( FluidJob job)
inlinestatic

Definition at line 102 of file physics_fluid.c.

References FLUID_JOB_BAKE_GUIDES, STREQ, and FluidJob::type.

Referenced by fluid_bake_endjob(), and fluid_bake_startjob().

◆ fluid_is_bake_mesh()

static bool fluid_is_bake_mesh ( FluidJob job)
inlinestatic

Definition at line 94 of file physics_fluid.c.

References FLUID_JOB_BAKE_MESH, STREQ, and FluidJob::type.

Referenced by fluid_bake_endjob(), and fluid_bake_startjob().

◆ fluid_is_bake_noise()

static bool fluid_is_bake_noise ( FluidJob job)
inlinestatic

Definition at line 90 of file physics_fluid.c.

References FLUID_JOB_BAKE_NOISE, STREQ, and FluidJob::type.

Referenced by fluid_bake_endjob(), and fluid_bake_startjob().

◆ fluid_is_bake_particle()

static bool fluid_is_bake_particle ( FluidJob job)
inlinestatic

Definition at line 98 of file physics_fluid.c.

References FLUID_JOB_BAKE_PARTICLES, STREQ, and FluidJob::type.

Referenced by fluid_bake_endjob(), and fluid_bake_startjob().

◆ fluid_is_free_all()

static bool fluid_is_free_all ( FluidJob job)
inlinestatic

Definition at line 106 of file physics_fluid.c.

References FLUID_JOB_FREE_ALL, STREQ, and FluidJob::type.

Referenced by fluid_free_startjob().

◆ fluid_is_free_data()

static bool fluid_is_free_data ( FluidJob job)
inlinestatic

Definition at line 110 of file physics_fluid.c.

References FLUID_JOB_FREE_DATA, STREQ, and FluidJob::type.

Referenced by fluid_free_startjob().

◆ fluid_is_free_guiding()

static bool fluid_is_free_guiding ( FluidJob job)
inlinestatic

Definition at line 126 of file physics_fluid.c.

References FLUID_JOB_FREE_GUIDES, STREQ, and FluidJob::type.

Referenced by fluid_free_startjob().

◆ fluid_is_free_mesh()

static bool fluid_is_free_mesh ( FluidJob job)
inlinestatic

Definition at line 118 of file physics_fluid.c.

References FLUID_JOB_FREE_MESH, STREQ, and FluidJob::type.

Referenced by fluid_free_startjob().

◆ fluid_is_free_noise()

static bool fluid_is_free_noise ( FluidJob job)
inlinestatic

Definition at line 114 of file physics_fluid.c.

References FLUID_JOB_FREE_NOISE, STREQ, and FluidJob::type.

Referenced by fluid_free_startjob().

◆ fluid_is_free_particles()

static bool fluid_is_free_particles ( FluidJob job)
inlinestatic

Definition at line 122 of file physics_fluid.c.

References FLUID_JOB_FREE_PARTICLES, STREQ, and FluidJob::type.

Referenced by fluid_free_startjob().

◆ FLUID_OT_bake_all()

void FLUID_OT_bake_all ( wmOperatorType ot)

◆ FLUID_OT_bake_data()

void FLUID_OT_bake_data ( wmOperatorType ot)

◆ FLUID_OT_bake_guides()

void FLUID_OT_bake_guides ( wmOperatorType ot)

◆ FLUID_OT_bake_mesh()

void FLUID_OT_bake_mesh ( wmOperatorType ot)

◆ FLUID_OT_bake_noise()

void FLUID_OT_bake_noise ( wmOperatorType ot)

◆ FLUID_OT_bake_particles()

void FLUID_OT_bake_particles ( wmOperatorType ot)

◆ FLUID_OT_free_all()

void FLUID_OT_free_all ( wmOperatorType ot)

◆ FLUID_OT_free_data()

void FLUID_OT_free_data ( wmOperatorType ot)

◆ FLUID_OT_free_guides()

void FLUID_OT_free_guides ( wmOperatorType ot)

◆ FLUID_OT_free_mesh()

void FLUID_OT_free_mesh ( wmOperatorType ot)

◆ FLUID_OT_free_noise()

void FLUID_OT_free_noise ( wmOperatorType ot)

◆ FLUID_OT_free_particles()

void FLUID_OT_free_particles ( wmOperatorType ot)

◆ FLUID_OT_pause_bake()

void FLUID_OT_pause_bake ( wmOperatorType ot)

◆ fluid_pause_exec()

static int fluid_pause_exec ( struct bContext C,
struct wmOperator op 
)
static

◆ fluid_validatepaths()

static bool fluid_validatepaths ( FluidJob job,
ReportList reports 
)
static