Blender V5.0
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
8
9#include "manta_fluid_API.h"
10#include "MANTA_main.h"
11
12/* Fluid functions */
13MANTA *manta_init(int *res, struct FluidModifierData *fmd)
14{
15 return new MANTA(res, fmd);
16}
17void manta_free(MANTA *fluid)
18{
19 delete fluid;
20}
21
23{
24 return fluid->initObstacle(fmd);
25}
27{
28 return fluid->initGuiding(fmd);
29}
31{
32 return fluid->initInVelocity(fmd);
33}
35{
36 return fluid->initOutflow(fmd);
37}
38
39bool manta_write_config(MANTA *fluid, FluidModifierData *fmd, int framenr)
40{
41 return fluid->writeConfiguration(fmd, framenr);
42}
43
44bool manta_write_data(MANTA *fluid, FluidModifierData *fmd, int framenr)
45{
46 return fluid->writeData(fmd, framenr);
47}
48
49bool manta_write_noise(MANTA *fluid, FluidModifierData *fmd, int framenr)
50{
51 return fluid->writeNoise(fmd, framenr);
52}
53
54bool manta_read_config(MANTA *fluid, FluidModifierData *fmd, int framenr)
55{
56 return fluid->readConfiguration(fmd, framenr);
57}
58
59bool manta_read_data(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable)
60{
61 return fluid->readData(fmd, framenr, resumable);
62}
63
64bool manta_read_noise(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable)
65{
66 return fluid->readNoise(fmd, framenr, resumable);
67}
68
69bool manta_read_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr)
70{
71 return fluid->readMesh(fmd, framenr);
72}
73
74bool manta_read_particles(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable)
75{
76 return fluid->readParticles(fmd, framenr, resumable);
77}
78
79bool manta_read_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr, bool sourceDomain)
80{
81 return fluid->readGuiding(fmd, framenr, sourceDomain);
82}
83
84bool manta_bake_data(MANTA *fluid, FluidModifierData *fmd, int framenr)
85{
86 return fluid->bakeData(fmd, framenr);
87}
88
89bool manta_bake_noise(MANTA *fluid, FluidModifierData *fmd, int framenr)
90{
91 return fluid->bakeNoise(fmd, framenr);
92}
93
94bool manta_bake_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr)
95{
96 return fluid->bakeMesh(fmd, framenr);
97}
98
99bool manta_bake_particles(MANTA *fluid, FluidModifierData *fmd, int framenr)
100{
101 return fluid->bakeParticles(fmd, framenr);
102}
103
104bool manta_bake_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr)
105{
106 return fluid->bakeGuiding(fmd, framenr);
107}
108
109bool manta_has_data(MANTA *fluid, FluidModifierData *fmd, int framenr)
110{
111 return fluid->hasData(fmd, framenr);
112}
113
114bool manta_has_noise(MANTA *fluid, FluidModifierData *fmd, int framenr)
115{
116 return fluid->hasNoise(fmd, framenr);
117}
118
119bool manta_has_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr)
120{
121 return fluid->hasMesh(fmd, framenr);
122}
123
124bool manta_has_particles(MANTA *fluid, FluidModifierData *fmd, int framenr)
125{
126 return fluid->hasParticles(fmd, framenr);
127}
128
129bool manta_has_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr, bool domain)
130{
131 return fluid->hasGuiding(fmd, framenr, domain);
132}
133
135{
136 fluid->updateVariables(fmd);
137}
138
140{
141 return fluid->getFrame();
142}
143
145{
146 return fluid->getTimestep();
147}
148
150{
151 fluid->adaptTimestep();
152}
153
155{
156 return fluid->needsRealloc(fmd);
157}
158
159void manta_update_pointers(struct MANTA *fluid, struct FluidModifierData *fmd, bool flush)
160{
161 fluid->updatePointers(fmd, flush);
162}
163
164/* Fluid accessors */
165size_t manta_get_index(int x, int max_x, int y, int max_y, int z /*, int max_z */)
166{
167 return x + y * max_x + z * max_x * max_y;
168}
169size_t manta_get_index2d(int x, int max_x, int y /*, int max_y, int z, int max_z */)
170{
171 return x + y * max_x;
172}
174{
175 return fluid->getVelocityX();
176}
178{
179 return fluid->getVelocityY();
180}
182{
183 return fluid->getVelocityZ();
184}
185
187{
188 return fluid->getObVelocityX();
189}
191{
192 return fluid->getObVelocityY();
193}
195{
196 return fluid->getObVelocityZ();
197}
198
200{
201 return fluid->getGuideVelocityX();
202}
204{
205 return fluid->getGuideVelocityY();
206}
208{
209 return fluid->getGuideVelocityZ();
210}
211
213{
214 return fluid->getInVelocityX();
215}
217{
218 return fluid->getInVelocityY();
219}
221{
222 return fluid->getInVelocityZ();
223}
224
226{
227 return fluid->getForceX();
228}
230{
231 return fluid->getForceY();
232}
234{
235 return fluid->getForceZ();
236}
237
239{
240 return fluid->getPhiGuideIn();
241}
242
244{
245 return fluid->getNumObstacle();
246}
248{
249 return fluid->getNumGuide();
250}
251
253{
254 return fluid->getResX();
255}
257{
258 return fluid->getResY();
259}
261{
262 return fluid->getResZ();
263}
264
266{
267 return fluid->getPhiIn();
268}
270{
271 return fluid->getPhiStaticIn();
272}
274{
275 return fluid->getPhiObsIn();
276}
278{
279 return fluid->getPhiObsStaticIn();
280}
282{
283 return fluid->getPhiOutIn();
284}
286{
287 return fluid->getPhiOutStaticIn();
288}
289float *manta_get_phi(MANTA *fluid)
290{
291 return fluid->getPhi();
292}
294{
295 return fluid->getPressure();
296}
297
298/* Smoke functions */
300{
301 return smoke->exportSmokeScript(fmd);
302}
303
304static void get_rgba(const float *r,
305 const float *g,
306 const float *b,
307 const float *a,
308 int total_cells,
309 float *data,
310 int sequential)
311{
312 int i;
313 /* Use offsets to map RGB grids to correct location in data grid. */
314 int m = 4, i_g = 1, i_b = 2, i_a = 3;
315 if (sequential) {
316 m = 1;
317 i_g *= total_cells;
318 i_b *= total_cells;
319 i_a *= total_cells;
320 }
321
322 for (i = 0; i < total_cells; i++) {
323 float alpha = a[i];
324 data[i * m] = r[i] * alpha;
325 data[i * m + i_g] = g[i] * alpha;
326 data[i * m + i_b] = b[i] * alpha;
327 data[i * m + i_a] = alpha;
328 }
329}
330
331void manta_smoke_get_rgba(MANTA *smoke, float *data, int sequential)
332{
333 get_rgba(smoke->getColorR(),
334 smoke->getColorG(),
335 smoke->getColorB(),
336 smoke->getDensity(),
337 smoke->getTotalCells(),
338 data,
339 sequential);
340}
341
342void manta_noise_get_rgba(MANTA *smoke, float *data, int sequential)
343{
344 get_rgba(smoke->getColorRHigh(),
345 smoke->getColorGHigh(),
346 smoke->getColorBHigh(),
347 smoke->getDensityHigh(),
348 smoke->getTotalCellsHigh(),
349 data,
350 sequential);
351}
352
353static void get_rgba_fixed_color(const float color[3],
354 int total_cells,
355 float *data,
356 int sequential)
357{
358 int i;
359 int m = 4, i_g = 1, i_b = 2, i_a = 3;
360 if (sequential) {
361 m = 1;
362 i_g *= total_cells;
363 i_b *= total_cells;
364 i_a *= total_cells;
365 }
366
367 for (i = 0; i < total_cells; i++) {
368 data[i * m] = color[0];
369 data[i * m + i_g] = color[1];
370 data[i * m + i_b] = color[2];
371 data[i * m + i_a] = 1.0f;
372 }
373}
374
375void manta_smoke_get_rgba_fixed_color(MANTA *smoke, float color[3], float *data, int sequential)
376{
377 get_rgba_fixed_color(color, smoke->getTotalCells(), data, sequential);
378}
379
380void manta_noise_get_rgba_fixed_color(MANTA *smoke, float color[3], float *data, int sequential)
381{
382 get_rgba_fixed_color(color, smoke->getTotalCellsHigh(), data, sequential);
383}
384
386{
387 return smoke->initHeat(fmd);
388}
389
391{
392 bool result = smoke->initFire(fmd);
393 if (smoke->usingNoise()) {
394 result &= smoke->initFireHigh(fmd);
395 }
396 return result;
397}
398
400{
401 bool result = smoke->initColors(fmd);
402 if (smoke->usingNoise()) {
403 result &= smoke->initColorsHigh(fmd);
404 }
405 return result;
406}
407
408/* Smoke accessors */
410{
411 return smoke->getDensity();
412}
414{
415 return smoke->getFuel();
416}
418{
419 return smoke->getReact();
420}
422{
423 return smoke->getHeat();
424}
426{
427 return smoke->getFlame();
428}
430{
431 return smoke->getShadow();
432}
433
435{
436 return smoke->getColorR();
437}
439{
440 return smoke->getColorG();
441}
443{
444 return smoke->getColorB();
445}
446
448{
449 return smoke->getFlags();
450}
451
453{
454 return smoke->getDensityIn();
455}
457{
458 return smoke->getHeatIn();
459}
461{
462 return smoke->getColorRIn();
463}
465{
466 return smoke->getColorGIn();
467}
469{
470 return smoke->getColorBIn();
471}
473{
474 return smoke->getFuelIn();
475}
477{
478 return smoke->getReactIn();
479}
481{
482 return smoke->getEmissionIn();
483}
484
486{
487 return smoke->getHeat() != nullptr;
488 ;
489}
491{
492 return smoke->getFuel() != nullptr;
493}
495{
496 return smoke->getColorR() != nullptr && smoke->getColorG() != nullptr &&
497 smoke->getColorB() != nullptr;
498}
499
501{
502 return smoke->getDensityHigh();
503}
505{
506 return smoke->getFuelHigh();
507}
509{
510 return smoke->getReactHigh();
511}
513{
514 return smoke->getColorRHigh();
515}
517{
518 return smoke->getColorGHigh();
519}
521{
522 return smoke->getColorBHigh();
523}
525{
526 return smoke->getFlameHigh();
527}
529{
530 return smoke->getTextureU();
531}
533{
534 return smoke->getTextureV();
535}
537{
538 return smoke->getTextureW();
539}
541{
542 return smoke->getTextureU2();
543}
545{
546 return smoke->getTextureV2();
547}
549{
550 return smoke->getTextureW2();
551}
552
554{
555 return smoke->getFuelHigh() != nullptr;
556}
558{
559 return smoke->getColorRHigh() != nullptr && smoke->getColorGHigh() != nullptr &&
560 smoke->getColorBHigh() != nullptr;
561 ;
562}
563
564void manta_noise_get_res(MANTA *smoke, int *res)
565{
566 res[0] = smoke->getResXHigh();
567 res[1] = smoke->getResYHigh();
568 res[2] = smoke->getResZHigh();
569}
571{
572 return smoke->getResXHigh() * smoke->getResYHigh() * smoke->getResZHigh();
573}
574
575/* Liquid functions */
577{
578 return liquid->exportLiquidScript(fmd);
579}
580
582{
583 return liquid->initLiquidSndParts(fmd);
584}
585
586/* Liquid accessors */
588{
589 return liquid->getParticleResX();
590}
592{
593 return liquid->getParticleResY();
594}
596{
597 return liquid->getParticleResZ();
598}
599
601{
602 return liquid->getMeshResX();
603}
605{
606 return liquid->getMeshResY();
607}
609{
610 return liquid->getMeshResZ();
611}
612
614{
615 return liquid->getParticleUpres();
616}
618{
619 return liquid->getMeshUpres();
620}
621
623{
624 return liquid->getNumVertices();
625}
627{
628 return liquid->getNumNormals();
629}
631{
632 return liquid->getNumTriangles();
633}
634
636{
637 return liquid->getVertexXAt(i);
638}
640{
641 return liquid->getVertexYAt(i);
642}
644{
645 return liquid->getVertexZAt(i);
646}
647
649{
650 return liquid->getNormalXAt(i);
651}
653{
654 return liquid->getNormalYAt(i);
655}
657{
658 return liquid->getNormalZAt(i);
659}
660
662{
663 return liquid->getTriangleXAt(i);
664}
666{
667 return liquid->getTriangleYAt(i);
668}
670{
671 return liquid->getTriangleZAt(i);
672}
673
675{
676 return liquid->getVertVelXAt(i);
677}
679{
680 return liquid->getVertVelYAt(i);
681}
683{
684 return liquid->getVertVelZAt(i);
685}
686
688{
689 return liquid->getNumFlipParticles();
690}
692{
693 return liquid->getNumSndParticles();
694}
695
697{
698 return liquid->getFlipParticleFlagAt(i);
699}
701{
702 return liquid->getSndParticleFlagAt(i);
703}
704
706{
707 return liquid->getFlipParticlePositionXAt(i);
708}
710{
711 return liquid->getFlipParticlePositionYAt(i);
712}
714{
715 return liquid->getFlipParticlePositionZAt(i);
716}
717
719{
720 return liquid->getFlipParticleVelocityXAt(i);
721}
723{
724 return liquid->getFlipParticleVelocityYAt(i);
725}
727{
728 return liquid->getFlipParticleVelocityZAt(i);
729}
730
732{
733 return liquid->getSndParticlePositionXAt(i);
734}
736{
737 return liquid->getSndParticlePositionYAt(i);
738}
740{
741 return liquid->getSndParticlePositionZAt(i);
742}
743
745{
746 return liquid->getSndParticleVelocityXAt(i);
747}
749{
750 return liquid->getSndParticleVelocityYAt(i);
751}
753{
754 return liquid->getSndParticleVelocityZAt(i);
755}
BMesh const char void * data
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
Definition btQuadWord.h:117
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)
static void get_rgba(const float *r, const float *g, const float *b, const float *a, int total_cells, float *data, int sequential)
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)
static void get_rgba_fixed_color(const float color[3], int total_cells, float *data, int sequential)
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)
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)
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
i
Definition text_draw.cc:230