72 BLI_assert(context.particle_system !=
nullptr);
74 std::vector<Imath::V3f> points;
75 std::vector<Imath::V3f> velocities;
76 std::vector<float> widths;
77 std::vector<uint64_t> ids;
84 sim.
ob = context.object;
90 for (
int p = 0; p < psys->
totpart; p++) {
109 points.emplace_back(
pos[0],
pos[2], -
pos[1]);
110 velocities.emplace_back(vel[0], vel[2], -vel[1]);
112 ids.push_back(index++);
117 Alembic::Abc::P3fArraySample psample(points);
118 Alembic::Abc::UInt64ArraySample idsample(ids);
119 Alembic::Abc::V3fArraySample vsample(velocities);
120 Alembic::Abc::FloatArraySample wsample_array(widths);
121 Alembic::AbcGeom::OFloatGeomParam::Sample wsample(wsample_array, kVertexScope);
123 OPointsSchema::Sample
sample(psample, idsample, vsample, wsample);
126 abc_points_schema_.set(
sample);
void psys_sim_data_free(struct ParticleSimulationData *sim)
void psys_sim_data_init(struct ParticleSimulationData *sim)
bool psys_get_particle_state(struct ParticleSimulationData *sim, int p, struct ParticleKey *state, bool always)
@ PART_FLUID_SPRAYFOAMBUBBLE
struct Depsgraph * depsgraph
struct ParticleSystem * psys