25 using Alembic::AbcGeom::kVertexScope;
26 using Alembic::AbcGeom::OPoints;
27 using Alembic::AbcGeom::OPointsSchema;
37 abc_points_schema_ = abc_points_.getSchema();
75 std::vector<Imath::V3f> points;
76 std::vector<Imath::V3f> velocities;
77 std::vector<float> widths;
78 std::vector<uint64_t> ids;
91 for (
int p = 0; p < psys->
totpart; p++) {
110 points.emplace_back(
pos[0],
pos[2], -
pos[1]);
111 velocities.emplace_back(vel[0], vel[2], -vel[1]);
113 ids.push_back(index++);
118 Alembic::Abc::P3fArraySample psample(points);
119 Alembic::Abc::UInt64ArraySample idsample(ids);
120 Alembic::Abc::V3fArraySample vsample(velocities);
121 Alembic::Abc::FloatArraySample wsample_array(widths);
122 Alembic::AbcGeom::OFloatGeomParam::Sample wsample(wsample_array, kVertexScope);
124 OPointsSchema::Sample
sample(psample, idsample, vsample, wsample);
127 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)
void mul_v3_m4v3(float r[3], const float M[4][4], const float v[3])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
#define CLOG_INFO(clg_ref, level,...)
float DEG_get_ctime(const Depsgraph *graph)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
Object is a sort of wrapper for general info.
@ PART_FLUID_SPRAYFOAMBUBBLE
Alembic::Abc::OCompoundProperty abc_schema_prop_for_custom_props(T abc_schema)
uint32_t timesample_index_
Imath::Box3d bounding_box_
const ABCWriterConstructorArgs args_
virtual void update_bounding_box(Object *object)
virtual void create_alembic_objects(const HierarchyContext *context) override
virtual bool is_supported(const HierarchyContext *context) const override
Alembic::Abc::OCompoundProperty abc_prop_for_custom_props() override
virtual Alembic::Abc::OObject get_alembic_object() const override
virtual void do_write(HierarchyContext &context) override
ABCPointsWriter(const ABCWriterConstructorArgs &args)
virtual bool check_is_animated(const HierarchyContext &context) const override
unsigned __int64 uint64_t
struct Depsgraph * depsgraph
struct ParticleSystem * psys
Alembic::Abc::OObject abc_parent