Blender  V2.59
Defines | Functions | Variables
smoke.c File Reference
#include <GL/glew.h>
#include "MEM_guardedalloc.h"
#include <float.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include "BLI_linklist.h"
#include "BLI_rand.h"
#include "BLI_jitter.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_edgehash.h"
#include "BLI_kdtree.h"
#include "BLI_kdopbvh.h"
#include "BLI_utildefines.h"
#include "BKE_bvhutils.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_customdata.h"
#include "BKE_DerivedMesh.h"
#include "BKE_effect.h"
#include "BKE_modifier.h"
#include "BKE_particle.h"
#include "BKE_pointcache.h"
#include "BKE_smoke.h"
#include "DNA_customdata_types.h"
#include "DNA_group_types.h"
#include "DNA_lamp_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
#include "DNA_smoke_types.h"
#include "smoke_API.h"
#include <sys/time.h>

Go to the source code of this file.

Defines

#define TRI_UVOFFSET   (1./4.)

Functions

static void tstart (void)
static void tend (void)
static void get_cell (float *p0, int res[3], float dx, float *pos, int *cell, int correct)
void calcTriangleDivs (Object *ob, MVert *verts, int numverts, MFace *tris, int numfaces, int numtris, int **tridivs, float cell_len)
static void fill_scs_points (Object *ob, DerivedMesh *dm, SmokeCollSettings *scs)
struct WTURBULENCEsmoke_turbulence_init (int *UNUSED(res), int UNUSED(amplify), int UNUSED(noisetype))
struct FLUID_3Dsmoke_init (int *UNUSED(res), float *UNUSED(p0))
void smoke_free (struct FLUID_3D *UNUSED(fluid))
void smoke_turbulence_free (struct WTURBULENCE *UNUSED(wt))
void smoke_initWaveletBlenderRNA (struct WTURBULENCE *UNUSED(wt), float *UNUSED(strength))
void smoke_initBlenderRNA (struct FLUID_3D *UNUSED(fluid), float *UNUSED(alpha), float *UNUSED(beta), float *UNUSED(dt_factor), float *UNUSED(vorticity), int *UNUSED(border_colli))
long long smoke_get_mem_req (int UNUSED(xres), int UNUSED(yres), int UNUSED(zres), int UNUSED(amplify))
void smokeModifier_do (SmokeModifierData *UNUSED(smd), Scene *UNUSED(scene), Object *UNUSED(ob), DerivedMesh *UNUSED(dm))
static int smokeModifier_init (SmokeModifierData *smd, Object *ob, Scene *scene, DerivedMesh *dm)
void calcTriangleDivs (Object *ob, MVert *verts, int UNUSED(numverts), MFace *faces, int numfaces, int numtris, int **tridivs, float cell_len)
static void smokeModifier_freeDomain (SmokeModifierData *smd)
static void smokeModifier_freeFlow (SmokeModifierData *smd)
static void smokeModifier_freeCollision (SmokeModifierData *smd)
void smokeModifier_reset_turbulence (struct SmokeModifierData *smd)
void smokeModifier_reset (struct SmokeModifierData *smd)
void smokeModifier_free (SmokeModifierData *smd)
void smokeModifier_createType (struct SmokeModifierData *smd)
void smokeModifier_copy (struct SmokeModifierData *smd, struct SmokeModifierData *tsmd)
static void smoke_calc_transparency (float *result, float *input, float *p0, float *p1, int res[3], float dx, float *light, bresenham_callback cb, float correct)
static float calc_voxel_transp (float *result, float *input, int res[3], int *pixel, float *tRay, float correct)

Variables

static struct timeval _tstart _tend
static struct timezone tz

Detailed Description

Definition in file smoke.c.


Define Documentation

#define TRI_UVOFFSET   (1./4.)

Definition at line 141 of file smoke.c.

Referenced by fill_scs_points().


Function Documentation

static float calc_voxel_transp ( float *  result,
float *  input,
int  res[3],
int *  pixel,
float *  tRay,
float  correct 
) [static]
void calcTriangleDivs ( Object ob,
MVert verts,
int  numverts,
MFace tris,
int  numfaces,
int  numtris,
int **  tridivs,
float  cell_len 
)

Referenced by fill_scs_points().

void calcTriangleDivs ( Object ob,
MVert verts,
int   UNUSEDnumverts,
MFace faces,
int  numfaces,
int  numtris,
int **  tridivs,
float  cell_len 
)

init triangle divisions

Definition at line 460 of file smoke.c.

References ABS, co, i, INPR, MEM_callocN(), MEM_freeN(), mul_m4_v3(), normalize_v3(), Object::obmat, VECCOPY, and VECSUB.

static void fill_scs_points ( Object ob,
DerivedMesh dm,
SmokeCollSettings scs 
) [static]
static void get_cell ( float *  p0,
int  res[3],
float  dx,
float *  pos,
int *  cell,
int  correct 
) [static]
static void smoke_calc_transparency ( float *  result,
float *  input,
float *  p0,
float *  p1,
int  res[3],
float  dx,
float *  light,
bresenham_callback  cb,
float  correct 
) [static]
void smoke_free ( struct FLUID_3D UNUSEDfluid)

Definition at line 147 of file smoke.c.

Referenced by smokeModifier_freeDomain(), and smokeModifier_reset().

long long smoke_get_mem_req ( int   UNUSEDxres,
int   UNUSEDyres,
int   UNUSEDzres,
int   UNUSEDamplify 
)

Definition at line 151 of file smoke.c.

struct FLUID_3D* smoke_init ( int *  UNUSEDres,
float *  UNUSEDp0 
) [read]

Definition at line 146 of file smoke.c.

References NULL.

Referenced by smokeModifier_init().

void smoke_initBlenderRNA ( struct FLUID_3D UNUSEDfluid,
float *  UNUSEDalpha,
float *  UNUSEDbeta,
float *  UNUSEDdt_factor,
float *  UNUSEDvorticity,
int *  UNUSEDborder_colli 
)

Definition at line 150 of file smoke.c.

Referenced by smokeModifier_init().

void smoke_initWaveletBlenderRNA ( struct WTURBULENCE UNUSEDwt,
float *  UNUSEDstrength 
)

Definition at line 149 of file smoke.c.

Referenced by smokeModifier_init().

void smoke_turbulence_free ( struct WTURBULENCE UNUSEDwt)

Definition at line 148 of file smoke.c.

Referenced by smokeModifier_freeDomain(), and smokeModifier_reset_turbulence().

struct WTURBULENCE* smoke_turbulence_init ( int *  UNUSEDres,
int   UNUSEDamplify,
int   UNUSEDnoisetype 
) [read]

Definition at line 145 of file smoke.c.

References NULL.

Referenced by smokeModifier_init().

void smokeModifier_copy ( struct SmokeModifierData smd,
struct SmokeModifierData tsmd 
)
void smokeModifier_createType ( struct SmokeModifierData smd)

Definition at line 701 of file smoke.c.

References SmokeDomainSettings::alpha, SmokeDomainSettings::amplify, SmokeDomainSettings::beta, BKE_add_effector_weights(), BKE_ptcache_add(), SmokeDomainSettings::border_collisions, SmokeCollSettings::bvhtree, SmokeModifierData::coll, SmokeDomainSettings::coll_group, SmokeFlowSettings::density, SmokeDomainSettings::diss_speed, SmokeCollSettings::dm, SmokeModifierData::domain, SmokeDomainSettings::eff_group, SmokeDomainSettings::effector_weights, ListBase::first, PointCache::flag, SmokeDomainSettings::flags, SmokeFlowSettings::flags, SmokeModifierData::flow, SmokeDomainSettings::fluid, SmokeDomainSettings::fluid_group, ListBase::last, SmokeDomainSettings::maxres, MEM_callocN(), MOD_SMOKE_DISSOLVE_LOG, MOD_SMOKE_FLOW_ABSOLUTE, MOD_SMOKE_HIGH_SMOOTH, MOD_SMOKE_NOISEWAVE, MOD_SMOKE_TYPE_COLL, MOD_SMOKE_TYPE_DOMAIN, MOD_SMOKE_TYPE_FLOW, MOD_SMOKE_VIEW_SHOWBIG, SmokeDomainSettings::noise, NULL, SmokeCollSettings::numpoints, SmokeDomainSettings::omega, SmokeDomainSettings::point_cache, SmokeCollSettings::points, SmokeFlowSettings::psys, PTCACHE_DISK_CACHE, SmokeDomainSettings::ptcaches, SmokeDomainSettings::smd, SmokeFlowSettings::smd, SmokeCollSettings::smd, smokeModifier_freeCollision(), smokeModifier_freeDomain(), smokeModifier_freeFlow(), PointCache::step, SmokeDomainSettings::strength, SmokeFlowSettings::temp, SmokeDomainSettings::time_scale, SmokeModifierData::type, SmokeFlowSettings::vel_multi, SmokeDomainSettings::viewsettings, SmokeDomainSettings::vorticity, and SmokeDomainSettings::wt.

Referenced by smokeModifier_copy(), and smokeModifier_init().

void smokeModifier_do ( SmokeModifierData UNUSEDsmd,
Scene UNUSEDscene,
Object UNUSEDob,
DerivedMesh UNUSEDdm 
)

Definition at line 152 of file smoke.c.

void smokeModifier_free ( SmokeModifierData smd)

Definition at line 691 of file smoke.c.

References smokeModifier_freeCollision(), smokeModifier_freeDomain(), and smokeModifier_freeFlow().

Referenced by freeData().

static void smokeModifier_freeCollision ( SmokeModifierData smd) [static]
static void smokeModifier_freeDomain ( SmokeModifierData smd) [static]
static void smokeModifier_freeFlow ( SmokeModifierData smd) [static]

Definition at line 585 of file smoke.c.

References SmokeModifierData::flow, MEM_freeN(), and NULL.

Referenced by smokeModifier_createType(), and smokeModifier_free().

static int smokeModifier_init ( SmokeModifierData smd,
Object ob,
Scene scene,
DerivedMesh dm 
) [static]
void smokeModifier_reset ( struct SmokeModifierData smd)
void smokeModifier_reset_turbulence ( struct SmokeModifierData smd)
static void tend ( void  ) [static]

Definition at line 115 of file smoke.c.

References _tend, and tz.

static void tstart ( void  ) [static]

Definition at line 111 of file smoke.c.

References tz.


Variable Documentation

struct timeval _tstart _tend [static]

Definition at line 109 of file smoke.c.

Referenced by tend().

struct timezone tz [static]

Definition at line 110 of file smoke.c.

Referenced by tend(), and tstart().