Renderer/src/main/c/includes/fluid/sim/pressurecell/bounds.h
2025-01-19 16:27:27 -05:00

44 lines
1.2 KiB
C

#ifndef FLUID_PRESSURECELL_BOUNDS_H
#define FLUID_PRESSURECELL_BOUNDS_H
#include "public.h"
#include "fluid/env/environment.h"
#include "fluid/queue/chunk.h"
#include "fluid/queue/chunkmask.h"
/**
* Used for signaling the bounds setting method to not use adjacent cells when evaluating borders
*/
#define FLUID_PRESSURECELL_BOUND_NO_DIR 0
/**
* Used for signaling the bounds setting method to use adjacent cells when evaluating x axis borders
*/
#define FLUID_PRESSURECELL_DIRECTION_U 1
/**
* Used for signaling the bounds setting method to use adjacent cells when evaluating y axis borders
*/
#define FLUID_PRESSURECELL_DIRECTION_V 2
/**
* Used for signaling the bounds setting method to use adjacent cells when evaluating z axis borders
*/
#define FLUID_PRESSURECELL_DIRECTION_W 3
/**
* Updates the bounds of the chunk based on its neighbors
*/
LIBRARY_API void fluid_pressurecell_update_bounds(Environment * environment, Chunk * chunk);
/**
* Updates the interest tree for this chunk
*/
LIBRARY_API void pressurecell_update_interest(Environment * environment, Chunk * chunk);
/**
* Enforces velocity not running into bounds
*/
LIBRARY_API void pressurecell_enforce_bounds(Environment * environment, Chunk * chunk);
#endif