Blender V4.3
manta_fluid_API.cpp
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2016 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#include <cmath>
10
11#include "MANTA_main.h"
12#include "manta_fluid_API.h"
13
14/* Fluid functions */
15MANTA *manta_init(int *res, struct FluidModifierData *fmd)
16{
17 return new MANTA(res, fmd);
18}
19void manta_free(MANTA *fluid)
20{
21 delete fluid;
22}
23
25{
26 return fluid->initObstacle(fmd);
27}
29{
30 return fluid->initGuiding(fmd);
31}
33{
34 return fluid->initInVelocity(fmd);
35}
37{
38 return fluid->initOutflow(fmd);
39}
40
41bool manta_write_config(MANTA *fluid, FluidModifierData *fmd, int framenr)
42{
43 return fluid->writeConfiguration(fmd, framenr);
44}
45
46bool manta_write_data(MANTA *fluid, FluidModifierData *fmd, int framenr)
47{
48 return fluid->writeData(fmd, framenr);
49}
50
51bool manta_write_noise(MANTA *fluid, FluidModifierData *fmd, int framenr)
52{
53 return fluid->writeNoise(fmd, framenr);
54}
55
56bool manta_read_config(MANTA *fluid, FluidModifierData *fmd, int framenr)
57{
58 return fluid->readConfiguration(fmd, framenr);
59}
60
61bool manta_read_data(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable)
62{
63 return fluid->readData(fmd, framenr, resumable);
64}
65
66bool manta_read_noise(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable)
67{
68 return fluid->readNoise(fmd, framenr, resumable);
69}
70
71bool manta_read_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr)
72{
73 return fluid->readMesh(fmd, framenr);
74}
75
76bool manta_read_particles(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable)
77{
78 return fluid->readParticles(fmd, framenr, resumable);
79}
80
81bool manta_read_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr, bool sourceDomain)
82{
83 return fluid->readGuiding(fmd, framenr, sourceDomain);
84}
85
86bool manta_bake_data(MANTA *fluid, FluidModifierData *fmd, int framenr)
87{
88 return fluid->bakeData(fmd, framenr);
89}
90
91bool manta_bake_noise(MANTA *fluid, FluidModifierData *fmd, int framenr)
92{
93 return fluid->bakeNoise(fmd, framenr);
94}
95
96bool manta_bake_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr)
97{
98 return fluid->bakeMesh(fmd, framenr);
99}
100
101bool manta_bake_particles(MANTA *fluid, FluidModifierData *fmd, int framenr)
102{
103 return fluid->bakeParticles(fmd, framenr);
104}
105
106bool manta_bake_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr)
107{
108 return fluid->bakeGuiding(fmd, framenr);
109}
110
111bool manta_has_data(MANTA *fluid, FluidModifierData *fmd, int framenr)
112{
113 return fluid->hasData(fmd, framenr);
114}
115
116bool manta_has_noise(MANTA *fluid, FluidModifierData *fmd, int framenr)
117{
118 return fluid->hasNoise(fmd, framenr);
119}
120
121bool manta_has_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr)
122{
123 return fluid->hasMesh(fmd, framenr);
124}
125
126bool manta_has_particles(MANTA *fluid, FluidModifierData *fmd, int framenr)
127{
128 return fluid->hasParticles(fmd, framenr);
129}
130
131bool manta_has_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr, bool domain)
132{
133 return fluid->hasGuiding(fmd, framenr, domain);
134}
135
137{
138 fluid->updateVariables(fmd);
139}
140
142{
143 return fluid->getFrame();
144}
145
147{
148 return fluid->getTimestep();
149}
150
152{
153 fluid->adaptTimestep();
154}
155
157{
158 return fluid->needsRealloc(fmd);
159}
160
161void manta_update_pointers(struct MANTA *fluid, struct FluidModifierData *fmd, bool flush)
162{
163 fluid->updatePointers(fmd, flush);
164}
165
166/* Fluid accessors */
167size_t manta_get_index(int x, int max_x, int y, int max_y, int z /*, int max_z */)
168{
169 return x + y * max_x + z * max_x * max_y;
170}
171size_t manta_get_index2d(int x, int max_x, int y /*, int max_y, int z, int max_z */)
172{
173 return x + y * max_x;
174}
176{
177 return fluid->getVelocityX();
178}
180{
181 return fluid->getVelocityY();
182}
184{
185 return fluid->getVelocityZ();
186}
187
189{
190 return fluid->getObVelocityX();
191}
193{
194 return fluid->getObVelocityY();
195}
197{
198 return fluid->getObVelocityZ();
199}
200
202{
203 return fluid->getGuideVelocityX();
204}
206{
207 return fluid->getGuideVelocityY();
208}
210{
211 return fluid->getGuideVelocityZ();
212}
213
215{
216 return fluid->getInVelocityX();
217}
219{
220 return fluid->getInVelocityY();
221}
223{
224 return fluid->getInVelocityZ();
225}
226
228{
229 return fluid->getForceX();
230}
232{
233 return fluid->getForceY();
234}
236{
237 return fluid->getForceZ();
238}
239
241{
242 return fluid->getPhiGuideIn();
243}
244
246{
247 return fluid->getNumObstacle();
248}
250{
251 return fluid->getNumGuide();
252}
253
255{
256 return fluid->getResX();
257}
259{
260 return fluid->getResY();
261}
263{
264 return fluid->getResZ();
265}
266
268{
269 return fluid->getPhiIn();
270}
272{
273 return fluid->getPhiStaticIn();
274}
276{
277 return fluid->getPhiObsIn();
278}
280{
281 return fluid->getPhiObsStaticIn();
282}
284{
285 return fluid->getPhiOutIn();
286}
288{
289 return fluid->getPhiOutStaticIn();
290}
291float *manta_get_phi(MANTA *fluid)
292{
293 return fluid->getPhi();
294}
296{
297 return fluid->getPressure();
298}
299
300/* Smoke functions */
302{
303 return smoke->exportSmokeScript(fmd);
304}
305
306static void get_rgba(
307 float *r, float *g, float *b, float *a, int total_cells, float *data, int sequential)
308{
309 int i;
310 /* Use offsets to map RGB grids to correct location in data grid. */
311 int m = 4, i_g = 1, i_b = 2, i_a = 3;
312 if (sequential) {
313 m = 1;
314 i_g *= total_cells;
315 i_b *= total_cells;
316 i_a *= total_cells;
317 }
318
319 for (i = 0; i < total_cells; i++) {
320 float alpha = a[i];
321 data[i * m] = r[i] * alpha;
322 data[i * m + i_g] = g[i] * alpha;
323 data[i * m + i_b] = b[i] * alpha;
324 data[i * m + i_a] = alpha;
325 }
326}
327
328void manta_smoke_get_rgba(MANTA *smoke, float *data, int sequential)
329{
330 get_rgba(smoke->getColorR(),
331 smoke->getColorG(),
332 smoke->getColorB(),
333 smoke->getDensity(),
334 smoke->getTotalCells(),
335 data,
336 sequential);
337}
338
339void manta_noise_get_rgba(MANTA *smoke, float *data, int sequential)
340{
341 get_rgba(smoke->getColorRHigh(),
342 smoke->getColorGHigh(),
343 smoke->getColorBHigh(),
344 smoke->getDensityHigh(),
345 smoke->getTotalCellsHigh(),
346 data,
347 sequential);
348}
349
350static void get_rgba_fixed_color(float color[3], int total_cells, float *data, int sequential)
351{
352 int i;
353 int m = 4, i_g = 1, i_b = 2, i_a = 3;
354 if (sequential) {
355 m = 1;
356 i_g *= total_cells;
357 i_b *= total_cells;
358 i_a *= total_cells;
359 }
360
361 for (i = 0; i < total_cells; i++) {
362 data[i * m] = color[0];
363 data[i * m + i_g] = color[1];
364 data[i * m + i_b] = color[2];
365 data[i * m + i_a] = 1.0f;
366 }
367}
368
369void manta_smoke_get_rgba_fixed_color(MANTA *smoke, float color[3], float *data, int sequential)
370{
371 get_rgba_fixed_color(color, smoke->getTotalCells(), data, sequential);
372}
373
374void manta_noise_get_rgba_fixed_color(MANTA *smoke, float color[3], float *data, int sequential)
375{
376 get_rgba_fixed_color(color, smoke->getTotalCellsHigh(), data, sequential);
377}
378
380{
381 return smoke->initHeat(fmd);
382}
383
385{
386 bool result = smoke->initFire(fmd);
387 if (smoke->usingNoise()) {
388 result &= smoke->initFireHigh(fmd);
389 }
390 return result;
391}
392
394{
395 bool result = smoke->initColors(fmd);
396 if (smoke->usingNoise()) {
397 result &= smoke->initColorsHigh(fmd);
398 }
399 return result;
400}
401
402/* Smoke accessors */
404{
405 return smoke->getDensity();
406}
408{
409 return smoke->getFuel();
410}
412{
413 return smoke->getReact();
414}
416{
417 return smoke->getHeat();
418}
420{
421 return smoke->getFlame();
422}
424{
425 return smoke->getShadow();
426}
427
429{
430 return smoke->getColorR();
431}
433{
434 return smoke->getColorG();
435}
437{
438 return smoke->getColorB();
439}
440
442{
443 return smoke->getFlags();
444}
445
447{
448 return smoke->getDensityIn();
449}
451{
452 return smoke->getHeatIn();
453}
455{
456 return smoke->getColorRIn();
457}
459{
460 return smoke->getColorGIn();
461}
463{
464 return smoke->getColorBIn();
465}
467{
468 return smoke->getFuelIn();
469}
471{
472 return smoke->getReactIn();
473}
475{
476 return smoke->getEmissionIn();
477}
478
480{
481 return smoke->getHeat() != nullptr;
482 ;
483}
485{
486 return smoke->getFuel() != nullptr;
487}
489{
490 return smoke->getColorR() != nullptr && smoke->getColorG() != nullptr &&
491 smoke->getColorB() != nullptr;
492}
493
495{
496 return smoke->getDensityHigh();
497}
499{
500 return smoke->getFuelHigh();
501}
503{
504 return smoke->getReactHigh();
505}
507{
508 return smoke->getColorRHigh();
509}
511{
512 return smoke->getColorGHigh();
513}
515{
516 return smoke->getColorBHigh();
517}
519{
520 return smoke->getFlameHigh();
521}
523{
524 return smoke->getTextureU();
525}
527{
528 return smoke->getTextureV();
529}
531{
532 return smoke->getTextureW();
533}
535{
536 return smoke->getTextureU2();
537}
539{
540 return smoke->getTextureV2();
541}
543{
544 return smoke->getTextureW2();
545}
546
548{
549 return smoke->getFuelHigh() != nullptr;
550}
552{
553 return smoke->getColorRHigh() != nullptr && smoke->getColorGHigh() != nullptr &&
554 smoke->getColorBHigh() != nullptr;
555 ;
556}
557
558void manta_noise_get_res(MANTA *smoke, int *res)
559{
560 res[0] = smoke->getResXHigh();
561 res[1] = smoke->getResYHigh();
562 res[2] = smoke->getResZHigh();
563}
565{
566 return smoke->getResXHigh() * smoke->getResYHigh() * smoke->getResZHigh();
567}
568
569/* Liquid functions */
571{
572 return liquid->exportLiquidScript(fmd);
573}
574
576{
577 return liquid->initLiquidSndParts(fmd);
578}
579
580/* Liquid accessors */
582{
583 return liquid->getParticleResX();
584}
586{
587 return liquid->getParticleResY();
588}
590{
591 return liquid->getParticleResZ();
592}
593
595{
596 return liquid->getMeshResX();
597}
599{
600 return liquid->getMeshResY();
601}
603{
604 return liquid->getMeshResZ();
605}
606
608{
609 return liquid->getParticleUpres();
610}
612{
613 return liquid->getMeshUpres();
614}
615
617{
618 return liquid->getNumVertices();
619}
621{
622 return liquid->getNumNormals();
623}
625{
626 return liquid->getNumTriangles();
627}
628
630{
631 return liquid->getVertexXAt(i);
632}
634{
635 return liquid->getVertexYAt(i);
636}
638{
639 return liquid->getVertexZAt(i);
640}
641
643{
644 return liquid->getNormalXAt(i);
645}
647{
648 return liquid->getNormalYAt(i);
649}
651{
652 return liquid->getNormalZAt(i);
653}
654
656{
657 return liquid->getTriangleXAt(i);
658}
660{
661 return liquid->getTriangleYAt(i);
662}
664{
665 return liquid->getTriangleZAt(i);
666}
667
669{
670 return liquid->getVertVelXAt(i);
671}
673{
674 return liquid->getVertVelYAt(i);
675}
677{
678 return liquid->getVertVelZAt(i);
679}
680
682{
683 return liquid->getNumFlipParticles();
684}
686{
687 return liquid->getNumSndParticles();
688}
689
691{
692 return liquid->getFlipParticleFlagAt(i);
693}
695{
696 return liquid->getSndParticleFlagAt(i);
697}
698
700{
701 return liquid->getFlipParticlePositionXAt(i);
702}
704{
705 return liquid->getFlipParticlePositionYAt(i);
706}
708{
709 return liquid->getFlipParticlePositionZAt(i);
710}
711
713{
714 return liquid->getFlipParticleVelocityXAt(i);
715}
717{
718 return liquid->getFlipParticleVelocityYAt(i);
719}
721{
722 return liquid->getFlipParticleVelocityZAt(i);
723}
724
726{
727 return liquid->getSndParticlePositionXAt(i);
728}
730{
731 return liquid->getSndParticlePositionYAt(i);
732}
734{
735 return liquid->getSndParticlePositionZAt(i);
736}
737
739{
740 return liquid->getSndParticleVelocityXAt(i);
741}
743{
744 return liquid->getSndParticleVelocityYAt(i);
745}
747{
748 return liquid->getSndParticleVelocityZAt(i);
749}
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
Definition btQuadWord.h:117
local_group_size(16, 16) .push_constant(Type b
void manta_noise_get_rgba(MANTA *smoke, float *data, int sequential)
int manta_liquid_get_num_normals(MANTA *liquid)
bool manta_noise_has_fuel(MANTA *smoke)
float * manta_smoke_get_heat(MANTA *smoke)
bool manta_bake_particles(MANTA *fluid, FluidModifierData *fmd, int framenr)
int manta_liquid_get_num_verts(MANTA *liquid)
bool manta_ensure_guiding(MANTA *fluid, struct FluidModifierData *fmd)
float * manta_noise_get_color_b(MANTA *smoke)
float manta_liquid_get_snd_particle_position_x_at(MANTA *liquid, int i)
float * manta_noise_get_texture_v(MANTA *smoke)
bool manta_write_config(MANTA *fluid, FluidModifierData *fmd, int framenr)
int manta_liquid_get_triangle_z_at(MANTA *liquid, int i)
float * manta_get_phioutstatic_in(MANTA *fluid)
int manta_liquid_get_particle_res_z(MANTA *liquid)
float * manta_get_phiout_in(MANTA *fluid)
float * manta_noise_get_texture_w2(MANTA *smoke)
float * manta_noise_get_texture_u(MANTA *smoke)
bool manta_has_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr)
float * manta_noise_get_texture_v2(MANTA *smoke)
void manta_update_variables(MANTA *fluid, FluidModifierData *fmd)
bool manta_bake_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr)
float * manta_noise_get_color_r(MANTA *smoke)
bool manta_smoke_ensure_heat(MANTA *smoke, struct FluidModifierData *fmd)
int manta_liquid_get_triangle_y_at(MANTA *liquid, int i)
bool manta_has_data(MANTA *fluid, FluidModifierData *fmd, int framenr)
float * manta_get_ob_velocity_x(MANTA *fluid)
int manta_get_frame(MANTA *fluid)
float manta_liquid_get_vertvel_z_at(MANTA *liquid, int i)
float manta_liquid_get_normal_x_at(MANTA *liquid, int i)
float * manta_get_force_y(MANTA *fluid)
int manta_get_res_z(MANTA *fluid)
bool manta_smoke_has_fuel(MANTA *smoke)
bool manta_smoke_ensure_colors(MANTA *smoke, struct FluidModifierData *fmd)
int manta_noise_get_cells(MANTA *smoke)
void manta_smoke_get_rgba(MANTA *smoke, float *data, int sequential)
float * manta_noise_get_fuel(MANTA *smoke)
float manta_liquid_get_flip_particle_velocity_z_at(MANTA *liquid, int i)
float manta_liquid_get_flip_particle_position_x_at(MANTA *liquid, int i)
float * manta_get_ob_velocity_y(MANTA *fluid)
float * manta_smoke_get_color_b(MANTA *smoke)
size_t manta_get_index2d(int x, int max_x, int y)
bool manta_read_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr, bool sourceDomain)
int manta_liquid_get_particle_res_y(MANTA *liquid)
float * manta_get_force_z(MANTA *fluid)
static void get_rgba_fixed_color(float color[3], int total_cells, float *data, int sequential)
float * manta_get_phiobsstatic_in(MANTA *fluid)
float * manta_noise_get_texture_w(MANTA *smoke)
float * manta_get_in_velocity_x(MANTA *fluid)
float manta_liquid_get_vertex_z_at(MANTA *liquid, int i)
void manta_smoke_get_rgba_fixed_color(MANTA *smoke, float color[3], float *data, int sequential)
float * manta_smoke_get_react(MANTA *smoke)
float * manta_smoke_get_shadow(MANTA *smoke)
int manta_get_res_x(MANTA *fluid)
float manta_liquid_get_vertex_y_at(MANTA *liquid, int i)
int manta_liquid_get_particle_res_x(MANTA *liquid)
float manta_liquid_get_flip_particle_velocity_y_at(MANTA *liquid, int i)
int manta_liquid_get_triangle_x_at(MANTA *liquid, int i)
bool manta_read_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr)
bool manta_needs_realloc(MANTA *fluid, FluidModifierData *fmd)
int manta_liquid_get_num_snd_particles(MANTA *liquid)
float * manta_smoke_get_fuel(MANTA *smoke)
float * manta_smoke_get_color_b_in(MANTA *smoke)
float * manta_smoke_get_react_in(MANTA *smoke)
float manta_liquid_get_vertvel_y_at(MANTA *liquid, int i)
int manta_liquid_get_num_triangles(MANTA *liquid)
int * manta_smoke_get_flags(MANTA *smoke)
void manta_free(MANTA *fluid)
int manta_liquid_get_particle_upres(MANTA *liquid)
float * manta_get_phiobs_in(MANTA *fluid)
bool manta_liquid_ensure_sndparts(MANTA *liquid, struct FluidModifierData *fmd)
float manta_liquid_get_normal_z_at(MANTA *liquid, int i)
bool manta_has_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr, bool domain)
int manta_liquid_get_mesh_upres(MANTA *liquid)
float * manta_get_guide_velocity_y(MANTA *fluid)
float * manta_get_velocity_y(MANTA *fluid)
bool manta_read_particles(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable)
bool manta_smoke_has_colors(MANTA *smoke)
int manta_liquid_get_mesh_res_y(MANTA *liquid)
int manta_liquid_get_flip_particle_flag_at(MANTA *liquid, int i)
void manta_noise_get_rgba_fixed_color(MANTA *smoke, float color[3], float *data, int sequential)
float * manta_get_in_velocity_y(MANTA *fluid)
size_t manta_get_index(int x, int max_x, int y, int max_y, int z)
int manta_liquid_get_mesh_res_z(MANTA *liquid)
float * manta_get_guide_velocity_x(MANTA *fluid)
bool manta_write_noise(MANTA *fluid, FluidModifierData *fmd, int framenr)
float manta_liquid_get_snd_particle_velocity_z_at(MANTA *liquid, int i)
float * manta_get_phiguide_in(MANTA *fluid)
bool manta_bake_data(MANTA *fluid, FluidModifierData *fmd, int framenr)
float * manta_smoke_get_color_g_in(MANTA *smoke)
float * manta_smoke_get_density(MANTA *smoke)
float manta_liquid_get_vertvel_x_at(MANTA *liquid, int i)
float * manta_get_in_velocity_z(MANTA *fluid)
void manta_update_pointers(struct MANTA *fluid, struct FluidModifierData *fmd, bool flush)
float manta_liquid_get_normal_y_at(MANTA *liquid, int i)
float * manta_get_velocity_z(MANTA *fluid)
float * manta_smoke_get_color_r(MANTA *smoke)
float * manta_get_guide_velocity_z(MANTA *fluid)
bool manta_ensure_invelocity(MANTA *fluid, struct FluidModifierData *fmd)
bool manta_write_data(MANTA *fluid, FluidModifierData *fmd, int framenr)
bool manta_read_data(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable)
float * manta_smoke_get_color_g(MANTA *smoke)
bool manta_has_noise(MANTA *fluid, FluidModifierData *fmd, int framenr)
void manta_adapt_timestep(MANTA *fluid)
float manta_get_timestep(MANTA *fluid)
float * manta_noise_get_texture_u2(MANTA *smoke)
float * manta_smoke_get_flame(MANTA *smoke)
float manta_liquid_get_snd_particle_velocity_y_at(MANTA *liquid, int i)
float manta_liquid_get_snd_particle_position_z_at(MANTA *liquid, int i)
void manta_noise_get_res(MANTA *smoke, int *res)
float * manta_smoke_get_emission_in(MANTA *smoke)
bool manta_ensure_outflow(MANTA *fluid, struct FluidModifierData *fmd)
float * manta_noise_get_flame(MANTA *smoke)
bool manta_smoke_ensure_fire(MANTA *smoke, struct FluidModifierData *fmd)
MANTA * manta_init(int *res, struct FluidModifierData *fmd)
int manta_get_res_y(MANTA *fluid)
bool manta_noise_has_colors(MANTA *smoke)
float manta_liquid_get_snd_particle_velocity_x_at(MANTA *liquid, int i)
bool manta_liquid_export_script(MANTA *liquid, FluidModifierData *fmd)
float * manta_smoke_get_fuel_in(MANTA *smoke)
bool manta_read_config(MANTA *fluid, FluidModifierData *fmd, int framenr)
float * manta_get_phi_in(MANTA *fluid)
bool manta_read_noise(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable)
float * manta_noise_get_color_g(MANTA *smoke)
float * manta_get_num_guide(MANTA *fluid)
float manta_liquid_get_flip_particle_position_z_at(MANTA *liquid, int i)
float * manta_smoke_get_heat_in(MANTA *smoke)
float * manta_get_num_obstacle(MANTA *fluid)
float * manta_noise_get_react(MANTA *smoke)
float * manta_noise_get_density(MANTA *smoke)
bool manta_smoke_export_script(MANTA *smoke, FluidModifierData *fmd)
bool manta_smoke_has_heat(MANTA *smoke)
float manta_liquid_get_flip_particle_position_y_at(MANTA *liquid, int i)
float * manta_smoke_get_color_r_in(MANTA *smoke)
int manta_liquid_get_snd_particle_flag_at(MANTA *liquid, int i)
float * manta_get_pressure(MANTA *fluid)
bool manta_bake_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr)
float * manta_get_velocity_x(MANTA *fluid)
float * manta_get_force_x(MANTA *fluid)
static void get_rgba(float *r, float *g, float *b, float *a, int total_cells, float *data, int sequential)
float manta_liquid_get_flip_particle_velocity_x_at(MANTA *liquid, int i)
int manta_liquid_get_mesh_res_x(MANTA *liquid)
float manta_liquid_get_snd_particle_position_y_at(MANTA *liquid, int i)
float * manta_get_phistatic_in(MANTA *fluid)
float * manta_smoke_get_density_in(MANTA *smoke)
float manta_liquid_get_vertex_x_at(MANTA *liquid, int i)
bool manta_ensure_obstacle(MANTA *fluid, struct FluidModifierData *fmd)
float * manta_get_phi(MANTA *fluid)
bool manta_has_particles(MANTA *fluid, FluidModifierData *fmd, int framenr)
int manta_liquid_get_num_flip_particles(MANTA *liquid)
bool manta_bake_noise(MANTA *fluid, FluidModifierData *fmd, int framenr)
float * manta_get_ob_velocity_z(MANTA *fluid)
bool exportSmokeScript(struct FluidModifierData *fmd)
int getMeshResX()
Definition MANTA_main.h:140
float * getPhiOutIn()
Definition MANTA_main.h:388
float * getDensity()
Definition MANTA_main.h:174
int getParticleResZ()
Definition MANTA_main.h:136
float * getPhi()
Definition MANTA_main.h:396
int * getFlags()
Definition MANTA_main.h:242
float * getColorG()
Definition MANTA_main.h:270
float * getFuelIn()
Definition MANTA_main.h:302
float * getVelocityY()
Definition MANTA_main.h:186
int getTriangleXAt(int i)
Definition MANTA_main.h:478
float getVertexZAt(int i)
Definition MANTA_main.h:440
int getNumVertices()
Definition MANTA_main.h:409
float getFlipParticlePositionXAt(int i)
Definition MANTA_main.h:554
bool bakeNoise(FluidModifierData *fmd, int framenr)
bool writeNoise(FluidModifierData *fmd, int framenr)
float getSndParticlePositionXAt(int i)
Definition MANTA_main.h:582
bool initFireHigh(struct FluidModifierData *fmd=nullptr)
bool hasNoise(FluidModifierData *fmd, int framenr)
float * getColorGIn()
Definition MANTA_main.h:294
bool exportLiquidScript(struct FluidModifierData *fmd)
bool readData(FluidModifierData *fmd, int framenr, bool resumable)
int getNumFlipParticles()
Definition MANTA_main.h:694
bool initOutflow(FluidModifierData *fmd=nullptr)
float getNormalZAt(int i)
Definition MANTA_main.h:468
size_t getTotalCells()
Definition MANTA_main.h:104
float * getTextureU()
Definition MANTA_main.h:343
float getSndParticleVelocityYAt(int i)
Definition MANTA_main.h:647
float * getHeatIn()
Definition MANTA_main.h:286
float * getObVelocityZ()
Definition MANTA_main.h:202
bool writeConfiguration(FluidModifierData *fmd, int framenr)
float * getFlameHigh()
Definition MANTA_main.h:319
float * getForceY()
Definition MANTA_main.h:234
int getParticleUpres()
Definition MANTA_main.h:168
float * getColorR()
Definition MANTA_main.h:266
float getSndParticleVelocityXAt(int i)
Definition MANTA_main.h:638
int getSndParticleFlagAt(int i)
Definition MANTA_main.h:544
float * getTextureV2()
Definition MANTA_main.h:359
float * getPhiStaticIn()
Definition MANTA_main.h:372
float * getObVelocityX()
Definition MANTA_main.h:194
bool initFire(struct FluidModifierData *fmd=nullptr)
float * getObVelocityY()
Definition MANTA_main.h:198
float * getVelocityZ()
Definition MANTA_main.h:190
float * getColorRHigh()
Definition MANTA_main.h:331
bool writeData(FluidModifierData *fmd, int framenr)
float getVertVelXAt(int i)
Definition MANTA_main.h:506
float getSndParticlePositionZAt(int i)
Definition MANTA_main.h:600
float * getInVelocityY()
Definition MANTA_main.h:222
float getVertVelYAt(int i)
Definition MANTA_main.h:515
float getFlipParticleVelocityYAt(int i)
Definition MANTA_main.h:619
float * getTextureU2()
Definition MANTA_main.h:355
bool needsRealloc(FluidModifierData *fmd)
float * getFlame()
Definition MANTA_main.h:254
int getResZHigh()
Definition MANTA_main.h:160
bool readParticles(FluidModifierData *fmd, int framenr, bool resumable)
float * getReact()
Definition MANTA_main.h:262
bool readMesh(FluidModifierData *fmd, int framenr)
bool readGuiding(FluidModifierData *fmd, int framenr, bool sourceDomain)
float getSndParticlePositionYAt(int i)
Definition MANTA_main.h:591
bool bakeMesh(FluidModifierData *fmd, int framenr)
float * getPhiIn()
Definition MANTA_main.h:368
int getNumSndParticles()
Definition MANTA_main.h:698
float * getVelocityX()
Definition MANTA_main.h:182
float getVertexXAt(int i)
Definition MANTA_main.h:422
float * getShadow()
Definition MANTA_main.h:278
float * getColorBIn()
Definition MANTA_main.h:298
int getMeshResY()
Definition MANTA_main.h:144
float * getDensityHigh()
Definition MANTA_main.h:315
float * getForceZ()
Definition MANTA_main.h:238
bool hasMesh(FluidModifierData *fmd, int framenr)
float * getDensityIn()
Definition MANTA_main.h:282
int getTriangleZAt(int i)
Definition MANTA_main.h:496
int getMeshResZ()
Definition MANTA_main.h:148
float getNormalXAt(int i)
Definition MANTA_main.h:450
float * getNumGuide()
Definition MANTA_main.h:250
bool initGuiding(FluidModifierData *fmd=nullptr)
int getResYHigh()
Definition MANTA_main.h:156
float * getTextureW2()
Definition MANTA_main.h:363
float * getColorRIn()
Definition MANTA_main.h:290
int getResZ()
Definition MANTA_main.h:124
float * getInVelocityZ()
Definition MANTA_main.h:226
bool readConfiguration(FluidModifierData *fmd, int framenr)
int getFlipParticleFlagAt(int i)
Definition MANTA_main.h:535
float getFlipParticleVelocityXAt(int i)
Definition MANTA_main.h:610
int getParticleResX()
Definition MANTA_main.h:128
bool bakeGuiding(FluidModifierData *fmd, int framenr)
size_t getTotalCellsHigh()
Definition MANTA_main.h:108
float getSndParticleVelocityZAt(int i)
Definition MANTA_main.h:656
int getResX()
Definition MANTA_main.h:116
float getFlipParticleVelocityZAt(int i)
Definition MANTA_main.h:628
bool hasParticles(FluidModifierData *fmd, int framenr)
float * getTextureV()
Definition MANTA_main.h:347
bool usingNoise()
Definition MANTA_main.h:112
float * getColorGHigh()
Definition MANTA_main.h:335
bool initColorsHigh(struct FluidModifierData *fmd=nullptr)
bool initObstacle(FluidModifierData *fmd=nullptr)
float * getPhiOutStaticIn()
Definition MANTA_main.h:392
float getTimestep()
bool initColors(struct FluidModifierData *fmd=nullptr)
bool readNoise(FluidModifierData *fmd, int framenr, bool resumable)
float * getInVelocityX()
Definition MANTA_main.h:218
float getVertVelZAt(int i)
Definition MANTA_main.h:524
int getTriangleYAt(int i)
Definition MANTA_main.h:487
float * getPressure()
Definition MANTA_main.h:400
float * getReactIn()
Definition MANTA_main.h:306
float * getGuideVelocityY()
Definition MANTA_main.h:210
bool hasGuiding(FluidModifierData *fmd, int framenr, bool sourceDomain)
float * getGuideVelocityZ()
Definition MANTA_main.h:214
bool initHeat(struct FluidModifierData *fmd=nullptr)
int getParticleResY()
Definition MANTA_main.h:132
bool bakeParticles(FluidModifierData *fmd, int framenr)
float * getTextureW()
Definition MANTA_main.h:351
bool bakeData(FluidModifierData *fmd, int framenr)
float getNormalYAt(int i)
Definition MANTA_main.h:459
bool initInVelocity(FluidModifierData *fmd=nullptr)
float * getHeat()
Definition MANTA_main.h:178
float * getFuelHigh()
Definition MANTA_main.h:323
float * getColorB()
Definition MANTA_main.h:274
float * getReactHigh()
Definition MANTA_main.h:327
float * getFuel()
Definition MANTA_main.h:258
int getNumNormals()
Definition MANTA_main.h:413
int getNumTriangles()
Definition MANTA_main.h:417
float * getEmissionIn()
Definition MANTA_main.h:310
void adaptTimestep()
int getResY()
Definition MANTA_main.h:120
float * getPhiGuideIn()
Definition MANTA_main.h:384
float * getColorBHigh()
Definition MANTA_main.h:339
float * getPhiObsStaticIn()
Definition MANTA_main.h:380
int getFrame()
void updatePointers(FluidModifierData *fmd, bool flush=false)
int getMeshUpres()
Definition MANTA_main.h:164
float * getForceX()
Definition MANTA_main.h:230
float * getGuideVelocityX()
Definition MANTA_main.h:206
float getFlipParticlePositionYAt(int i)
Definition MANTA_main.h:563
bool hasData(FluidModifierData *fmd, int framenr)
int getResXHigh()
Definition MANTA_main.h:152
float getVertexYAt(int i)
Definition MANTA_main.h:431
bool updateVariables(FluidModifierData *fmd)
float getFlipParticlePositionZAt(int i)
Definition MANTA_main.h:572
float * getPhiObsIn()
Definition MANTA_main.h:376
bool initLiquidSndParts(FluidModifierData *fmd=nullptr)
float * getNumObstacle()
Definition MANTA_main.h:246