41 using Alembic::AbcGeom::kVertexScope;
42 using Alembic::AbcGeom::OPoints;
43 using Alembic::AbcGeom::OPointsSchema;
53 abc_points_schema_ = abc_points_.getSchema();
91 std::vector<Imath::V3f> points;
92 std::vector<Imath::V3f> velocities;
93 std::vector<float> widths;
94 std::vector<uint64_t> ids;
107 for (
int p = 0; p < psys->
totpart; p++) {
108 float pos[3], vel[3];
126 points.emplace_back(
pos[0],
pos[2], -
pos[1]);
127 velocities.emplace_back(vel[0], vel[2], -vel[1]);
129 ids.push_back(index++);
137 Alembic::Abc::P3fArraySample psample(points);
138 Alembic::Abc::UInt64ArraySample idsample(ids);
139 Alembic::Abc::V3fArraySample vsample(velocities);
140 Alembic::Abc::FloatArraySample wsample_array(widths);
141 Alembic::AbcGeom::OFloatGeomParam::Sample wsample(wsample_array, kVertexScope);
143 OPointsSchema::Sample
sample(psample, idsample, vsample, wsample);
146 abc_points_schema_.set(
sample);
void BKE_lattice_deform_data_destroy(struct LatticeDeformData *lattice_deform_data)
struct LatticeDeformData * psys_create_lattice_deform_data(struct ParticleSimulationData *sim)
int psys_get_particle_state(struct ParticleSimulationData *sim, int p, struct ParticleKey *state, int 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
static void sample(SocketReader *reader, int x, int y, float color[4])
struct SELECTID_Context context
unsigned __int64 uint64_t
struct Depsgraph * depsgraph
struct ParticleSystem * psys
struct LatticeDeformData * lattice_deform_data
Alembic::Abc::OObject abc_parent