Blender V4.3
ocean.cc File Reference
#include <cmath>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_modifier_types.h"
#include "DNA_scene_types.h"
#include "BLI_math_vector.h"
#include "BLI_path_utils.hh"
#include "BLI_rand.h"
#include "BLI_task.h"
#include "BLI_utildefines.h"
#include "BKE_image.hh"
#include "BKE_image_format.hh"
#include "BKE_ocean.h"
#include "ocean_intern.h"
#include "IMB_imbuf.hh"
#include "IMB_imbuf_types.hh"
#include "RE_texture.h"
#include "BLI_hash.h"

Go to the source code of this file.

Functions

float BKE_ocean_jminus_to_foam (float, float)
 
void BKE_ocean_eval_uv (Ocean *, OceanResult *, float, float)
 
void BKE_ocean_eval_uv_catrom (Ocean *, OceanResult *, float, float)
 
void BKE_ocean_eval_xz (Ocean *, OceanResult *, float, float)
 
void BKE_ocean_eval_xz_catrom (Ocean *, OceanResult *, float, float)
 
void BKE_ocean_eval_ij (Ocean *, OceanResult *, int, int)
 
void BKE_ocean_simulate (Ocean *, float, float, float)
 
OceanBKE_ocean_add ()
 
bool BKE_ocean_init (Ocean *, int, int, float, float, float, float, float, float, float, float, float, float, int, float, float, short, short, short, short, short, int)
 
void BKE_ocean_free_data (Ocean *)
 
void BKE_ocean_free (Ocean *oc)
 
void BKE_ocean_free_cache (OceanCache *och)
 
void BKE_ocean_cache_eval_uv (OceanCache *, OceanResult *, int, float, float)
 
void BKE_ocean_cache_eval_ij (OceanCache *, OceanResult *, int, int, int)
 
OceanCacheBKE_ocean_init_cache (const char *, const char *, int, int, float, float, float, float, int)
 
void BKE_ocean_simulate_cache (OceanCache *, int)
 
void BKE_ocean_bake (Ocean *, OceanCache *, void(*update_cb)(void *, float progress, int *cancel), void *)
 
bool BKE_ocean_init_from_modifier (Ocean *, OceanModifierData const *, int)
 
void BKE_ocean_free_modifier_cache (OceanModifierData *omd)
 

Detailed Description

Based on original code by Drew Whitehouse / Houdini Ocean Toolkit OpenMP hints by Christian Schnellhammer

Definition in file ocean.cc.

Function Documentation

◆ BKE_ocean_add()

Ocean * BKE_ocean_add ( void )

Definition at line 1577 of file ocean.cc.

References MEM_callocN.

Referenced by copy_data(), init_data(), and blender::ed::object::ocean_bake_exec().

◆ BKE_ocean_bake()

void BKE_ocean_bake ( Ocean * o,
OceanCache * och,
void(* update_cb )(void *, float progress, int *cancel),
void * update_cb_data )

◆ BKE_ocean_cache_eval_ij()

void BKE_ocean_cache_eval_ij ( OceanCache * och,
OceanResult * ocr,
int f,
int i,
int j )

Definition at line 1636 of file ocean.cc.

◆ BKE_ocean_cache_eval_uv()

void BKE_ocean_cache_eval_uv ( OceanCache * och,
OceanResult * ocr,
int f,
float u,
float v )

Definition at line 1631 of file ocean.cc.

◆ BKE_ocean_eval_ij()

void BKE_ocean_eval_ij ( struct Ocean * oc,
struct OceanResult * ocr,
int i,
int j )

Note that this doesn't wrap properly for i, j < 0, but its not really meant for that being just a way to get the raw data out to save in some image format.

Definition at line 1573 of file ocean.cc.

◆ BKE_ocean_eval_uv()

void BKE_ocean_eval_uv ( struct Ocean * oc,
struct OceanResult * ocr,
float u,
float v )

Sampling the ocean surface.

Definition at line 1564 of file ocean.cc.

◆ BKE_ocean_eval_uv_catrom()

void BKE_ocean_eval_uv_catrom ( struct Ocean * oc,
struct OceanResult * ocr,
float u,
float v )

Use catmullrom interpolation rather than linear.

Definition at line 1567 of file ocean.cc.

◆ BKE_ocean_eval_xz()

void BKE_ocean_eval_xz ( Ocean * oc,
OceanResult * ocr,
float x,
float z )

Definition at line 1569 of file ocean.cc.

◆ BKE_ocean_eval_xz_catrom()

void BKE_ocean_eval_xz_catrom ( Ocean * oc,
OceanResult * ocr,
float x,
float z )

Definition at line 1571 of file ocean.cc.

◆ BKE_ocean_free()

void BKE_ocean_free ( Ocean * oc)

Definition at line 1612 of file ocean.cc.

References MEM_freeN().

Referenced by free_data(), and blender::ed::object::oceanbake_endjob().

◆ BKE_ocean_free_cache()

void BKE_ocean_free_cache ( OceanCache * och)

Definition at line 1622 of file ocean.cc.

References MEM_freeN().

Referenced by BKE_ocean_free_modifier_cache(), and free_data().

◆ BKE_ocean_free_data()

void BKE_ocean_free_data ( Ocean * oc)

Definition at line 1610 of file ocean.cc.

◆ BKE_ocean_free_modifier_cache()

void BKE_ocean_free_modifier_cache ( OceanModifierData * omd)

◆ BKE_ocean_init()

bool BKE_ocean_init ( struct Ocean * o,
int M,
int N,
float Lx,
float Lz,
float V,
float l,
float A,
float w,
float damp,
float alignment,
float depth,
float time,
int spectrum,
float fetch_jonswap,
float sharpen_peak_jonswap,
short do_height_field,
short do_chop,
short do_spray,
short do_normals,
short do_jacobian,
int seed )

Return true if the ocean data is valid and can be used.

Definition at line 1584 of file ocean.cc.

◆ BKE_ocean_init_cache()

OceanCache * BKE_ocean_init_cache ( const char * bakepath,
const char * relbase,
int start,
int end,
float wave_scale,
float chop_amount,
float foam_coverage,
float foam_fade,
int resolution )

Ocean cache handling.

Definition at line 1641 of file ocean.cc.

References MEM_callocN.

Referenced by blender::ed::object::ocean_bake_exec().

◆ BKE_ocean_init_from_modifier()

bool BKE_ocean_init_from_modifier ( Ocean * ,
OceanModifierData const * ,
int  )

Definition at line 1667 of file ocean.cc.

◆ BKE_ocean_jminus_to_foam()

float BKE_ocean_jminus_to_foam ( float jminus,
float coverage )

Definition at line 1559 of file ocean.cc.

◆ BKE_ocean_simulate()

void BKE_ocean_simulate ( Ocean * o,
float t,
float scale,
float chop_amount )

Definition at line 1575 of file ocean.cc.

◆ BKE_ocean_simulate_cache()

void BKE_ocean_simulate_cache ( OceanCache * och,
int frame )

Definition at line 1656 of file ocean.cc.