|
Blender
V2.59
|
#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 WTURBULENCE * | smoke_turbulence_init (int *UNUSED(res), int UNUSED(amplify), int UNUSED(noisetype)) |
| struct FLUID_3D * | smoke_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 |
Definition in file smoke.c.
| #define TRI_UVOFFSET (1./4.) |
Definition at line 141 of file smoke.c.
Referenced by fill_scs_points().
| 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] |
Definition at line 324 of file smoke.c.
References calcTriangleDivs(), co, cross_v3_v3v3(), DerivedMesh::getFaceArray, DerivedMesh::getNumFaces, DerivedMesh::getNumVerts, DerivedMesh::getVertArray, i, MEM_callocN(), MEM_freeN(), mul_m4_v3(), mul_v3_fl(), normalize_v3(), NULL, SmokeCollSettings::numpoints, Object::obmat, p, SmokeCollSettings::points, TRI_UVOFFSET, VECADD, VECCOPY, and VECSUB.
Referenced by smokeModifier_init().
| 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 | ||
| ) |
| struct FLUID_3D* smoke_init | ( | int * | UNUSEDres, |
| float * | UNUSEDp0 | ||
| ) | [read] |
| 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] |
| void smokeModifier_copy | ( | struct SmokeModifierData * | smd, |
| struct SmokeModifierData * | tsmd | ||
| ) |
Definition at line 778 of file smoke.c.
References SmokeDomainSettings::alpha, SmokeDomainSettings::amplify, SmokeDomainSettings::beta, SmokeDomainSettings::border_collisions, SmokeModifierData::coll, SmokeDomainSettings::coll_group, SmokeFlowSettings::density, SmokeDomainSettings::diss_speed, SmokeModifierData::domain, SmokeDomainSettings::effector_weights, SmokeDomainSettings::flags, SmokeFlowSettings::flags, SmokeModifierData::flow, SmokeDomainSettings::fluid_group, SmokeDomainSettings::maxres, MEM_dupallocN(), MEM_freeN(), SmokeDomainSettings::noise, SmokeDomainSettings::omega, SmokeFlowSettings::psys, smokeModifier_createType(), SmokeDomainSettings::strength, SmokeFlowSettings::temp, SmokeModifierData::time, SmokeDomainSettings::time_scale, SmokeFlowSettings::type, SmokeModifierData::type, SmokeFlowSettings::vel_multi, SmokeDomainSettings::viewsettings, and SmokeDomainSettings::vorticity.
Referenced by copyData().
| 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 | ||
| ) |
| 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] |
Definition at line 602 of file smoke.c.
References BLI_bvhtree_free(), SmokeCollSettings::bvhtree, SmokeModifierData::coll, SmokeCollSettings::dm, MEM_freeN(), NULL, SmokeCollSettings::points, and DerivedMesh::release.
Referenced by smokeModifier_createType(), and smokeModifier_free().
| static void smokeModifier_freeDomain | ( | SmokeModifierData * | smd | ) | [static] |
Definition at line 559 of file smoke.c.
References BKE_ptcache_free_list(), SmokeModifierData::domain, SmokeDomainSettings::effector_weights, SmokeDomainSettings::fluid, MEM_freeN(), NULL, SmokeDomainSettings::point_cache, SmokeDomainSettings::ptcaches, SmokeDomainSettings::shadow, smoke_free(), smoke_turbulence_free(), and SmokeDomainSettings::wt.
Referenced by smokeModifier_createType(), and smokeModifier_free().
| 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] |
Definition at line 156 of file smoke.c.
References SmokeDomainSettings::alpha, SmokeDomainSettings::amplify, SmokeDomainSettings::beta, SmokeDomainSettings::border_collisions, SmokeCollSettings::bvhtree, RenderData::cfra, co, SmokeModifierData::coll, copy_m4_m4(), SmokeModifierData::domain, SmokeDomainSettings::dx, SmokeDomainSettings::dx_wt, fill_scs_points(), SmokeDomainSettings::flags, SmokeModifierData::flow, FLT_MAX, SmokeDomainSettings::fluid, DerivedMesh::getNumVerts, DerivedMesh::getVertArray, i, SmokeCollSettings::mat, SmokeCollSettings::mat_old, max, MAX2, SmokeDomainSettings::maxres, MEM_callocN(), min, MIN2, MOD_SMOKE_HIGHRES, MOD_SMOKE_TYPE_COLL, MOD_SMOKE_TYPE_DOMAIN, MOD_SMOKE_TYPE_FLOW, mul_m4_v3(), SmokeDomainSettings::noise, NULL, Object::obmat, SmokeDomainSettings::p0, SmokeDomainSettings::p1, SmokeCollSettings::points, Scene::r, SmokeDomainSettings::res, SmokeDomainSettings::res_wt, SmokeDomainSettings::shadow, size(), smoke_init(), smoke_initBlenderRNA(), smoke_initWaveletBlenderRNA(), smoke_turbulence_init(), smokeModifier_createType(), SmokeDomainSettings::strength, SmokeModifierData::time, SmokeDomainSettings::time_scale, SmokeModifierData::type, VECCOPY, VECSUB, SmokeDomainSettings::vorticity, and SmokeDomainSettings::wt.
| void smokeModifier_reset | ( | struct SmokeModifierData * | smd | ) |
Definition at line 636 of file smoke.c.
References BLI_bvhtree_free(), SmokeCollSettings::bvhtree, SmokeModifierData::coll, SmokeCollSettings::dm, SmokeModifierData::domain, SmokeModifierData::flow, SmokeDomainSettings::fluid, MEM_freeN(), NULL, SmokeCollSettings::points, DerivedMesh::release, SmokeDomainSettings::shadow, smoke_free(), smokeModifier_reset_turbulence(), and SmokeModifierData::time.
Referenced by BKE_ptcache_id_reset().
| void smokeModifier_reset_turbulence | ( | struct SmokeModifierData * | smd | ) |
Definition at line 627 of file smoke.c.
References SmokeModifierData::domain, NULL, smoke_turbulence_free(), and SmokeDomainSettings::wt.
Referenced by BKE_ptcache_id_reset(), and smokeModifier_reset().
| static void tend | ( | void | ) | [static] |