Blender V4.3
manta_fluid_API.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2016 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#ifndef MANTA_API_H
10#define MANTA_API_H
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16struct MANTA;
17
18/* Fluid functions */
19struct MANTA *manta_init(int *res, struct FluidModifierData *fmd);
20void manta_free(struct MANTA *fluid);
21bool manta_ensure_obstacle(struct MANTA *fluid, struct FluidModifierData *fmd);
22bool manta_ensure_guiding(struct MANTA *fluid, struct FluidModifierData *fmd);
23bool manta_ensure_invelocity(struct MANTA *fluid, struct FluidModifierData *fmd);
24bool manta_ensure_outflow(struct MANTA *fluid, struct FluidModifierData *fmd);
25bool manta_write_config(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
26bool manta_write_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
27bool manta_write_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
28bool manta_read_config(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
29bool manta_read_data(struct MANTA *fluid,
30 struct FluidModifierData *fmd,
31 int framenr,
32 bool resumable);
33bool manta_read_noise(struct MANTA *fluid,
34 struct FluidModifierData *fmd,
35 int framenr,
36 bool resumable);
37bool manta_read_mesh(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
38bool manta_read_particles(struct MANTA *fluid,
39 struct FluidModifierData *fmd,
40 int framenr,
41 bool resumable);
42bool manta_read_guiding(struct MANTA *fluid,
43 struct FluidModifierData *fmd,
44 int framenr,
45 bool sourceDomain);
46bool manta_bake_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
47bool manta_bake_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
48bool manta_bake_mesh(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
49bool manta_bake_particles(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
50bool manta_bake_guiding(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
51bool manta_has_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
52bool manta_has_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
53bool manta_has_mesh(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
54bool manta_has_particles(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
55bool manta_has_guiding(struct MANTA *fluid,
56 struct FluidModifierData *fmd,
57 int framenr,
58 bool domain);
59
60void manta_update_variables(struct MANTA *fluid, struct FluidModifierData *fmd);
61int manta_get_frame(struct MANTA *fluid);
62float manta_get_timestep(struct MANTA *fluid);
63void manta_adapt_timestep(struct MANTA *fluid);
64bool manta_needs_realloc(struct MANTA *fluid, struct FluidModifierData *fmd);
65void manta_update_pointers(struct MANTA *fluid, struct FluidModifierData *fmd, bool flush);
66
67/* Fluid accessors */
68size_t manta_get_index(int x, int max_x, int y, int max_y, int z /*, int max_z */);
69size_t manta_get_index2d(int x, int max_x, int y /*, int max_y, int z, int max_z */);
70float *manta_get_velocity_x(struct MANTA *fluid);
71float *manta_get_velocity_y(struct MANTA *fluid);
72float *manta_get_velocity_z(struct MANTA *fluid);
73float *manta_get_ob_velocity_x(struct MANTA *fluid);
74float *manta_get_ob_velocity_y(struct MANTA *fluid);
75float *manta_get_ob_velocity_z(struct MANTA *fluid);
76float *manta_get_guide_velocity_x(struct MANTA *fluid);
77float *manta_get_guide_velocity_y(struct MANTA *fluid);
78float *manta_get_guide_velocity_z(struct MANTA *fluid);
79float *manta_get_in_velocity_x(struct MANTA *fluid);
80float *manta_get_in_velocity_y(struct MANTA *fluid);
81float *manta_get_in_velocity_z(struct MANTA *fluid);
82float *manta_get_force_x(struct MANTA *fluid);
83float *manta_get_force_y(struct MANTA *fluid);
84float *manta_get_force_z(struct MANTA *fluid);
85float *manta_get_phiguide_in(struct MANTA *fluid);
86float *manta_get_num_obstacle(struct MANTA *fluid);
87float *manta_get_num_guide(struct MANTA *fluid);
88int manta_get_res_x(struct MANTA *fluid);
89int manta_get_res_y(struct MANTA *fluid);
90int manta_get_res_z(struct MANTA *fluid);
91float *manta_get_phi_in(struct MANTA *fluid);
92float *manta_get_phistatic_in(struct MANTA *fluid);
93float *manta_get_phiobs_in(struct MANTA *fluid);
94float *manta_get_phiobsstatic_in(struct MANTA *fluid);
95float *manta_get_phiout_in(struct MANTA *fluid);
96float *manta_get_phioutstatic_in(struct MANTA *fluid);
97float *manta_get_phi(struct MANTA *fluid);
98float *manta_get_pressure(struct MANTA *fluid);
99
100/* Smoke functions */
101bool manta_smoke_export_script(struct MANTA *smoke, struct FluidModifierData *fmd);
102void manta_smoke_get_rgba(struct MANTA *smoke, float *data, int sequential);
103void manta_noise_get_rgba(struct MANTA *smoke, float *data, int sequential);
104void manta_smoke_get_rgba_fixed_color(struct MANTA *smoke,
105 float color[3],
106 float *data,
107 int sequential);
108void manta_noise_get_rgba_fixed_color(struct MANTA *smoke,
109 float color[3],
110 float *data,
111 int sequential);
112bool manta_smoke_ensure_heat(struct MANTA *smoke, struct FluidModifierData *fmd);
113bool manta_smoke_ensure_fire(struct MANTA *smoke, struct FluidModifierData *fmd);
114bool manta_smoke_ensure_colors(struct MANTA *smoke, struct FluidModifierData *fmd);
115
116/* Smoke accessors */
117float *manta_smoke_get_density(struct MANTA *smoke);
118float *manta_smoke_get_fuel(struct MANTA *smoke);
119float *manta_smoke_get_react(struct MANTA *smoke);
120float *manta_smoke_get_heat(struct MANTA *smoke);
121float *manta_smoke_get_flame(struct MANTA *smoke);
122float *manta_smoke_get_shadow(struct MANTA *fluid);
123float *manta_smoke_get_color_r(struct MANTA *smoke);
124float *manta_smoke_get_color_g(struct MANTA *smoke);
125float *manta_smoke_get_color_b(struct MANTA *smoke);
126int *manta_smoke_get_flags(struct MANTA *smoke);
127float *manta_smoke_get_density_in(struct MANTA *smoke);
128float *manta_smoke_get_heat_in(struct MANTA *smoke);
129float *manta_smoke_get_color_r_in(struct MANTA *smoke);
130float *manta_smoke_get_color_g_in(struct MANTA *smoke);
131float *manta_smoke_get_color_b_in(struct MANTA *smoke);
132float *manta_smoke_get_fuel_in(struct MANTA *smoke);
133float *manta_smoke_get_react_in(struct MANTA *smoke);
134float *manta_smoke_get_emission_in(struct MANTA *smoke);
135bool manta_smoke_has_heat(struct MANTA *smoke);
136bool manta_smoke_has_fuel(struct MANTA *smoke);
137bool manta_smoke_has_colors(struct MANTA *smoke);
138float *manta_noise_get_density(struct MANTA *smoke);
139float *manta_noise_get_fuel(struct MANTA *smoke);
140float *manta_noise_get_react(struct MANTA *smoke);
141float *manta_noise_get_color_r(struct MANTA *smoke);
142float *manta_noise_get_color_g(struct MANTA *smoke);
143float *manta_noise_get_color_b(struct MANTA *smoke);
144float *manta_noise_get_texture_u(struct MANTA *smoke);
145float *manta_noise_get_texture_v(struct MANTA *smoke);
146float *manta_noise_get_texture_w(struct MANTA *smoke);
147float *manta_noise_get_texture_u2(struct MANTA *smoke);
148float *manta_noise_get_texture_v2(struct MANTA *smoke);
149float *manta_noise_get_texture_w2(struct MANTA *smoke);
150float *manta_noise_get_flame(struct MANTA *smoke);
151bool manta_noise_has_fuel(struct MANTA *smoke);
152bool manta_noise_has_colors(struct MANTA *smoke);
153void manta_noise_get_res(struct MANTA *smoke, int *res);
154int manta_noise_get_cells(struct MANTA *smoke);
155
156/* Liquid functions */
157bool manta_liquid_export_script(struct MANTA *smoke, struct FluidModifierData *fmd);
158bool manta_liquid_ensure_sndparts(struct MANTA *fluid, struct FluidModifierData *fmd);
159
160/* Liquid accessors */
161int manta_liquid_get_particle_res_x(struct MANTA *liquid);
162int manta_liquid_get_particle_res_y(struct MANTA *liquid);
163int manta_liquid_get_particle_res_z(struct MANTA *liquid);
164int manta_liquid_get_mesh_res_x(struct MANTA *liquid);
165int manta_liquid_get_mesh_res_y(struct MANTA *liquid);
166int manta_liquid_get_mesh_res_z(struct MANTA *liquid);
167int manta_liquid_get_particle_upres(struct MANTA *liquid);
168int manta_liquid_get_mesh_upres(struct MANTA *liquid);
169int manta_liquid_get_num_verts(struct MANTA *liquid);
170int manta_liquid_get_num_normals(struct MANTA *liquid);
171int manta_liquid_get_num_triangles(struct MANTA *liquid);
172float manta_liquid_get_vertex_x_at(struct MANTA *liquid, int i);
173float manta_liquid_get_vertex_y_at(struct MANTA *liquid, int i);
174float manta_liquid_get_vertex_z_at(struct MANTA *liquid, int i);
175float manta_liquid_get_normal_x_at(struct MANTA *liquid, int i);
176float manta_liquid_get_normal_y_at(struct MANTA *liquid, int i);
177float manta_liquid_get_normal_z_at(struct MANTA *liquid, int i);
178int manta_liquid_get_triangle_x_at(struct MANTA *liquid, int i);
179int manta_liquid_get_triangle_y_at(struct MANTA *liquid, int i);
180int manta_liquid_get_triangle_z_at(struct MANTA *liquid, int i);
181float manta_liquid_get_vertvel_x_at(struct MANTA *liquid, int i);
182float manta_liquid_get_vertvel_y_at(struct MANTA *liquid, int i);
183float manta_liquid_get_vertvel_z_at(struct MANTA *liquid, int i);
185int manta_liquid_get_num_snd_particles(struct MANTA *liquid);
186int manta_liquid_get_flip_particle_flag_at(struct MANTA *liquid, int i);
187int manta_liquid_get_snd_particle_flag_at(struct MANTA *liquid, int i);
188float manta_liquid_get_flip_particle_position_x_at(struct MANTA *liquid, int i);
189float manta_liquid_get_flip_particle_position_y_at(struct MANTA *liquid, int i);
190float manta_liquid_get_flip_particle_position_z_at(struct MANTA *liquid, int i);
191float manta_liquid_get_flip_particle_velocity_x_at(struct MANTA *liquid, int i);
192float manta_liquid_get_flip_particle_velocity_y_at(struct MANTA *liquid, int i);
193float manta_liquid_get_flip_particle_velocity_z_at(struct MANTA *liquid, int i);
194float manta_liquid_get_snd_particle_position_x_at(struct MANTA *liquid, int i);
195float manta_liquid_get_snd_particle_position_y_at(struct MANTA *liquid, int i);
196float manta_liquid_get_snd_particle_position_z_at(struct MANTA *liquid, int i);
197float manta_liquid_get_snd_particle_velocity_x_at(struct MANTA *liquid, int i);
198float manta_liquid_get_snd_particle_velocity_y_at(struct MANTA *liquid, int i);
199float manta_liquid_get_snd_particle_velocity_z_at(struct MANTA *liquid, int i);
200
201#ifdef __cplusplus
202}
203#endif
204
205#endif /* MANTA_API_H_ */
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a color
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
Definition btQuadWord.h:117
int manta_liquid_get_flip_particle_flag_at(struct MANTA *liquid, int i)
int manta_liquid_get_snd_particle_flag_at(struct MANTA *liquid, int i)
float * manta_noise_get_density(struct MANTA *smoke)
bool manta_has_particles(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
float * manta_smoke_get_color_r(struct MANTA *smoke)
float * manta_noise_get_texture_v(struct MANTA *smoke)
float manta_liquid_get_normal_x_at(struct MANTA *liquid, int i)
float * manta_smoke_get_heat_in(struct MANTA *smoke)
bool manta_has_mesh(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
float manta_liquid_get_vertex_y_at(struct MANTA *liquid, int i)
float * manta_noise_get_react(struct MANTA *smoke)
float manta_liquid_get_flip_particle_velocity_z_at(struct MANTA *liquid, int i)
int manta_liquid_get_mesh_res_y(struct MANTA *liquid)
float * manta_get_force_z(struct MANTA *fluid)
bool manta_ensure_invelocity(struct MANTA *fluid, struct FluidModifierData *fmd)
bool manta_read_guiding(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr, bool sourceDomain)
bool manta_has_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
bool manta_bake_particles(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
bool manta_smoke_ensure_colors(struct MANTA *smoke, struct FluidModifierData *fmd)
float * manta_smoke_get_fuel_in(struct MANTA *smoke)
float * manta_noise_get_texture_u(struct MANTA *smoke)
void manta_free(struct MANTA *fluid)
float * manta_get_num_guide(struct MANTA *fluid)
bool manta_smoke_has_heat(struct MANTA *smoke)
bool manta_noise_has_colors(struct MANTA *smoke)
int manta_liquid_get_num_triangles(struct MANTA *liquid)
float * manta_get_force_y(struct MANTA *fluid)
bool manta_bake_mesh(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
float manta_get_timestep(struct MANTA *fluid)
float * manta_get_guide_velocity_y(struct MANTA *fluid)
float * manta_smoke_get_react(struct MANTA *smoke)
float * manta_get_in_velocity_y(struct MANTA *fluid)
bool manta_bake_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
int manta_get_frame(struct MANTA *fluid)
float manta_liquid_get_snd_particle_velocity_z_at(struct MANTA *liquid, int i)
float * manta_smoke_get_shadow(struct MANTA *fluid)
float * manta_get_ob_velocity_x(struct MANTA *fluid)
size_t manta_get_index2d(int x, int max_x, int y)
float manta_liquid_get_flip_particle_velocity_y_at(struct MANTA *liquid, int i)
float * manta_get_ob_velocity_z(struct MANTA *fluid)
float * manta_noise_get_texture_w(struct MANTA *smoke)
bool manta_read_mesh(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
bool manta_liquid_ensure_sndparts(struct MANTA *fluid, struct FluidModifierData *fmd)
float * manta_get_guide_velocity_z(struct MANTA *fluid)
float * manta_get_in_velocity_x(struct MANTA *fluid)
struct MANTA * manta_init(int *res, struct FluidModifierData *fmd)
float * manta_get_guide_velocity_x(struct MANTA *fluid)
float * manta_smoke_get_color_g_in(struct MANTA *smoke)
float * manta_noise_get_fuel(struct MANTA *smoke)
bool manta_write_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
float * manta_noise_get_texture_v2(struct MANTA *smoke)
float * manta_get_phioutstatic_in(struct MANTA *fluid)
bool manta_smoke_ensure_fire(struct MANTA *smoke, struct FluidModifierData *fmd)
int manta_liquid_get_mesh_res_x(struct MANTA *liquid)
void manta_noise_get_rgba(struct MANTA *smoke, float *data, int sequential)
void manta_noise_get_res(struct MANTA *smoke, int *res)
float * manta_get_velocity_y(struct MANTA *fluid)
bool manta_noise_has_fuel(struct MANTA *smoke)
float manta_liquid_get_vertvel_y_at(struct MANTA *liquid, int i)
float * manta_noise_get_color_b(struct MANTA *smoke)
int manta_liquid_get_num_verts(struct MANTA *liquid)
float * manta_smoke_get_color_b_in(struct MANTA *smoke)
bool manta_ensure_obstacle(struct MANTA *fluid, struct FluidModifierData *fmd)
bool manta_write_config(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
bool manta_needs_realloc(struct MANTA *fluid, struct FluidModifierData *fmd)
float * manta_noise_get_texture_w2(struct MANTA *smoke)
float * manta_get_force_x(struct MANTA *fluid)
bool manta_has_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
float * manta_get_phiguide_in(struct MANTA *fluid)
float manta_liquid_get_vertvel_z_at(struct MANTA *liquid, int i)
bool manta_read_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr, bool resumable)
size_t manta_get_index(int x, int max_x, int y, int max_y, int z)
float * manta_get_ob_velocity_y(struct MANTA *fluid)
float manta_liquid_get_flip_particle_position_y_at(struct MANTA *liquid, int i)
int manta_liquid_get_mesh_res_z(struct MANTA *liquid)
bool manta_read_particles(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr, bool resumable)
bool manta_write_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
float * manta_smoke_get_density(struct MANTA *smoke)
float * manta_get_phiobsstatic_in(struct MANTA *fluid)
float manta_liquid_get_vertvel_x_at(struct MANTA *liquid, int i)
int manta_liquid_get_particle_res_y(struct MANTA *liquid)
float * manta_get_in_velocity_z(struct MANTA *fluid)
float * manta_noise_get_color_g(struct MANTA *smoke)
float * manta_get_phi(struct MANTA *fluid)
int manta_liquid_get_particle_upres(struct MANTA *liquid)
float * manta_smoke_get_color_r_in(struct MANTA *smoke)
bool manta_smoke_ensure_heat(struct MANTA *smoke, struct FluidModifierData *fmd)
float manta_liquid_get_flip_particle_position_z_at(struct MANTA *liquid, int i)
float * manta_get_num_obstacle(struct MANTA *fluid)
void manta_update_pointers(struct MANTA *fluid, struct FluidModifierData *fmd, bool flush)
bool manta_ensure_guiding(struct MANTA *fluid, struct FluidModifierData *fmd)
float * manta_get_phi_in(struct MANTA *fluid)
int manta_get_res_x(struct MANTA *fluid)
bool manta_read_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr, bool resumable)
float * manta_smoke_get_react_in(struct MANTA *smoke)
float * manta_get_velocity_z(struct MANTA *fluid)
bool manta_has_guiding(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr, bool domain)
int manta_get_res_z(struct MANTA *fluid)
bool manta_smoke_has_colors(struct MANTA *smoke)
bool manta_read_config(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
float * manta_smoke_get_density_in(struct MANTA *smoke)
float manta_liquid_get_vertex_z_at(struct MANTA *liquid, int i)
int manta_liquid_get_mesh_upres(struct MANTA *liquid)
float * manta_noise_get_texture_u2(struct MANTA *smoke)
float * manta_get_phiout_in(struct MANTA *fluid)
float * manta_get_phiobs_in(struct MANTA *fluid)
int * manta_smoke_get_flags(struct MANTA *smoke)
int manta_get_res_y(struct MANTA *fluid)
int manta_liquid_get_num_normals(struct MANTA *liquid)
float manta_liquid_get_snd_particle_position_z_at(struct MANTA *liquid, int i)
float manta_liquid_get_snd_particle_velocity_y_at(struct MANTA *liquid, int i)
float * manta_get_velocity_x(struct MANTA *fluid)
int manta_liquid_get_num_flip_particles(struct MANTA *liquid)
int manta_liquid_get_triangle_z_at(struct MANTA *liquid, int i)
int manta_liquid_get_particle_res_x(struct MANTA *liquid)
bool manta_smoke_has_fuel(struct MANTA *smoke)
float * manta_smoke_get_emission_in(struct MANTA *smoke)
float * manta_get_pressure(struct MANTA *fluid)
float manta_liquid_get_vertex_x_at(struct MANTA *liquid, int i)
float * manta_smoke_get_color_g(struct MANTA *smoke)
int manta_noise_get_cells(struct MANTA *smoke)
bool manta_liquid_export_script(struct MANTA *smoke, struct FluidModifierData *fmd)
bool manta_ensure_outflow(struct MANTA *fluid, struct FluidModifierData *fmd)
float manta_liquid_get_normal_y_at(struct MANTA *liquid, int i)
void manta_noise_get_rgba_fixed_color(struct MANTA *smoke, float color[3], float *data, int sequential)
void manta_update_variables(struct MANTA *fluid, struct FluidModifierData *fmd)
float manta_liquid_get_flip_particle_position_x_at(struct MANTA *liquid, int i)
float * manta_smoke_get_heat(struct MANTA *smoke)
int manta_liquid_get_triangle_x_at(struct MANTA *liquid, int i)
float * manta_get_phistatic_in(struct MANTA *fluid)
float * manta_smoke_get_color_b(struct MANTA *smoke)
void manta_adapt_timestep(struct MANTA *fluid)
int manta_liquid_get_triangle_y_at(struct MANTA *liquid, int i)
float manta_liquid_get_snd_particle_position_x_at(struct MANTA *liquid, int i)
float manta_liquid_get_snd_particle_position_y_at(struct MANTA *liquid, int i)
float manta_liquid_get_normal_z_at(struct MANTA *liquid, int i)
bool manta_bake_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
void manta_smoke_get_rgba(struct MANTA *smoke, float *data, int sequential)
float * manta_smoke_get_fuel(struct MANTA *smoke)
bool manta_smoke_export_script(struct MANTA *smoke, struct FluidModifierData *fmd)
float * manta_smoke_get_flame(struct MANTA *smoke)
float manta_liquid_get_snd_particle_velocity_x_at(struct MANTA *liquid, int i)
float * manta_noise_get_flame(struct MANTA *smoke)
int manta_liquid_get_particle_res_z(struct MANTA *liquid)
void manta_smoke_get_rgba_fixed_color(struct MANTA *smoke, float color[3], float *data, int sequential)
int manta_liquid_get_num_snd_particles(struct MANTA *liquid)
float * manta_noise_get_color_r(struct MANTA *smoke)
bool manta_bake_guiding(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr)
float manta_liquid_get_flip_particle_velocity_x_at(struct MANTA *liquid, int i)