#include <Grid3D.h>
Classes | |
struct | Cell |
Public Attributes | |
int | nx |
int | ny |
int | nz |
int | nxny |
int | ncell |
Cell * | fdata |
real * | pressure |
real * | levelset |
real | t |
real | tend |
real | max_pressure |
Cell | bcell |
vec3 | gravity |
int * | fmm_status |
int * | fmm_heap |
int | fmm_heap_size |
Static Public Attributes | |
static const unsigned long * | obstacles = NULL |
Public Member Functions | |
Grid3D () | |
~Grid3D () | |
void | clear (int _nx, int _ny, int _nz) |
int | clamp_x (int x) |
int | clamp_y (int y) |
int | clamp_z (int z) |
int | clamp_in_x (int x) |
int | clamp_in_y (int y) |
int | clamp_in_z (int z) |
int | index (int x, int y, int z) const |
int | index (const vec3 &p) const |
Cell * | get (int x, int y, int z, Cell *base) const |
const Cell * | get (int x, int y, int z, const Cell *base) const |
Cell * | get (int x, int y, int z) |
const Cell * | get (int x, int y, int z) const |
Cell * | get (const vec3 &p) |
const Cell * | get (const vec3 &p) const |
template<int C> | |
real | interp (const Cell *base, real fx, real fy, real fz) const |
template<int C> | |
real | interp (vec3 p) const |
vec3 | interp (vec3 p) const |
template<int C> | |
void | impulse (Cell *base, real fx, real fy, real fz, real i) |
template<int C> | |
void | impulse (vec3 p, real i) |
void | impulse (const vec3 &p, const vec3 &i) |
real * | getpressure (int x, int y, int z) |
real | getpressure (vec3 p) |
real * | getlevelset (int x, int y, int z) |
real | getlevelset (vec3 p) |
void | seed (real height) |
void | seed (real height, vec3 normal) |
void | seed (vec3 p0, vec3 p1, vec3 velocity=vec3(0, 0, 0)) |
void | step (Grid3D *prev, Grid3D *temp, real dt=0.04, real diff=0.00001) |
void | step_init (const Grid3D *prev, Grid3D *temp, real dt, real diff) |
void | step_levelset (Grid3D *prev, Grid3D *temp, real dt, real diff) |
void | step_forces (const Grid3D *prev, Grid3D *temp, real dt, real diff, real scale=1.0) |
void | step_surface (const Grid3D *prev, Grid3D *temp, real dt, real diff) |
void | step_advect (const Grid3D *prev, Grid3D *temp, real dt, real diff) |
void | step_diffuse (const Grid3D *prev, Grid3D *temp, real dt, real diff) |
void | step_project (const Grid3D *prev, Grid3D *temp, real dt, real diff) |
void | step_color (const Grid3D *prev, Grid3D *temp, real dt, real diff) |
int | fmm_pop () |
void | fmm_push (int index) |
void | fmm_swap (int entry1, int entry2) |
Static Public Member Functions | |
template<class T > | |
static T | lerp (T a, T b, real f) |
Cell sofaeulerianfluid::Grid3D::bcell |
Cell* sofaeulerianfluid::Grid3D::fdata |
int* sofaeulerianfluid::Grid3D::fmm_heap |
int sofaeulerianfluid::Grid3D::fmm_heap_size |
int* sofaeulerianfluid::Grid3D::fmm_status |
vec3 sofaeulerianfluid::Grid3D::gravity |
real* sofaeulerianfluid::Grid3D::levelset |
real sofaeulerianfluid::Grid3D::max_pressure |
int sofaeulerianfluid::Grid3D::ncell |
int sofaeulerianfluid::Grid3D::nx |
int sofaeulerianfluid::Grid3D::nxny |
int sofaeulerianfluid::Grid3D::ny |
int sofaeulerianfluid::Grid3D::nz |
|
static |
real* sofaeulerianfluid::Grid3D::pressure |
real sofaeulerianfluid::Grid3D::t |
real sofaeulerianfluid::Grid3D::tend |
sofaeulerianfluid::Grid3D::Grid3D | ( | ) |
sofaeulerianfluid::Grid3D::~Grid3D | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void sofaeulerianfluid::Grid3D::clear | ( | int | _nx, |
int | _ny, | ||
int | _nz | ||
) |
int sofaeulerianfluid::Grid3D::fmm_pop | ( | ) |
void sofaeulerianfluid::Grid3D::fmm_push | ( | int | index | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
void sofaeulerianfluid::Grid3D::seed | ( | real | height | ) |
void sofaeulerianfluid::Grid3D::step | ( | Grid3D * | prev, |
Grid3D * | temp, | ||
real | dt = 0.04 , |
||
real | diff = 0.00001 |
||
) |
void sofaeulerianfluid::Grid3D::step_advect | ( | const Grid3D * | prev, |
Grid3D * | temp, | ||
real | dt, | ||
real | diff | ||
) |
void sofaeulerianfluid::Grid3D::step_color | ( | const Grid3D * | prev, |
Grid3D * | temp, | ||
real | dt, | ||
real | diff | ||
) |
void sofaeulerianfluid::Grid3D::step_diffuse | ( | const Grid3D * | prev, |
Grid3D * | temp, | ||
real | dt, | ||
real | diff | ||
) |
void sofaeulerianfluid::Grid3D::step_forces | ( | const Grid3D * | prev, |
Grid3D * | temp, | ||
real | dt, | ||
real | diff, | ||
real | scale = 1.0 |
||
) |
void sofaeulerianfluid::Grid3D::step_init | ( | const Grid3D * | prev, |
Grid3D * | temp, | ||
real | dt, | ||
real | diff | ||
) |
void sofaeulerianfluid::Grid3D::step_project | ( | const Grid3D * | prev, |
Grid3D * | temp, | ||
real | dt, | ||
real | diff | ||
) |
void sofaeulerianfluid::Grid3D::step_surface | ( | const Grid3D * | prev, |
Grid3D * | temp, | ||
real | dt, | ||
real | diff | ||
) |