[Bf-blender-cvs] [77fda86] alembic_basic_io: Add velocites for liquid meshes to the OPolyMeshSchema sample by default, instead of using a arbitray property.
Kévin Dietrich
noreply at git.blender.org
Tue Jun 14 16:58:50 CEST 2016
Commit: 77fda86f77659dbb89cb7a1e7e113193a6bca543
Author: Kévin Dietrich
Date: Tue Jun 14 12:31:20 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rB77fda86f77659dbb89cb7a1e7e113193a6bca543
Add velocites for liquid meshes to the OPolyMeshSchema sample by
default, instead of using a arbitray property.
===================================================================
M source/blender/alembic/intern/abc_mesh.cc
M source/blender/alembic/intern/abc_mesh.h
===================================================================
diff --git a/source/blender/alembic/intern/abc_mesh.cc b/source/blender/alembic/intern/abc_mesh.cc
index c860ef0..fb337bd 100644
--- a/source/blender/alembic/intern/abc_mesh.cc
+++ b/source/blender/alembic/intern/abc_mesh.cc
@@ -349,7 +349,7 @@ static ModifierData *get_subsurf_modifier(Scene *scene, Object *ob)
return NULL;
}
-static ModifierData *get_fluid_sim_modifier(Scene *scene, Object *ob)
+static ModifierData *get_liquid_sim_modifier(Scene *scene, Object *ob)
{
ModifierData *md = modifiers_findByType(ob, eModifierType_Fluidsim);
@@ -389,7 +389,7 @@ AbcMeshWriter::AbcMeshWriter(Scene *scene,
m_is_subd = (m_subsurf_mod != NULL);
}
- m_is_fluid = (get_fluid_sim_modifier(m_scene, m_object) != NULL);
+ m_is_liquid = (get_liquid_sim_modifier(m_scene, m_object) != NULL);
while (parent->alembicXform().getChildHeader(m_name)) {
m_name.append("_");
@@ -506,6 +506,15 @@ void AbcMeshWriter::writeMesh()
m_mesh_sample.setNormals(normals_sample);
}
+ if (m_is_liquid) {
+ std::vector<float> velocities;
+ getVelocities(dm, velocities);
+
+ m_mesh_sample.setVelocities(V3fArraySample(
+ (const Imath::V3f *)&velocities.front(),
+ velocities.size() / 3));
+ }
+
m_mesh_sample.setSelfBounds(bounds());
m_mesh_schema.set(m_mesh_sample);
@@ -629,24 +638,8 @@ void AbcMeshWriter::freeMesh(DerivedMesh *dm)
void AbcMeshWriter::createArbGeoParams(DerivedMesh *dm)
{
- if (m_is_fluid) {
- /* TODO: replace this, when velocities are added by default to schemas. */
- OV3fGeomParam param;
-
- if (m_subdiv_schema.valid()) {
- param = OV3fGeomParam(
- m_subdiv_schema.getArbGeomParams(), "velocity", false,
- kVertexScope, 1, m_time_sampling);
- }
- else {
- param = OV3fGeomParam(
- m_mesh_schema.getArbGeomParams(), "velocity", false,
- kVertexScope, 1, m_time_sampling);
- }
-
- m_velocity = param.getValueProperty();
-
- /* We don't need anything more for fluid meshes. */
+ if (m_is_liquid) {
+ /* We don't need anything more for liquid meshes. */
return;
}
@@ -755,16 +748,8 @@ void AbcMeshWriter::createFaceLayerParam(DerivedMesh *dm, int index,
void AbcMeshWriter::writeArbGeoParams(DerivedMesh *dm)
{
- if (m_is_fluid) {
- std::vector<float> velocities;
- getVelocities(dm, velocities);
-
- Alembic::AbcCoreAbstract::ArraySample samp(&(velocities.front()),
- m_velocity.getDataType(),
- Alembic::Util::Dimensions(dm->getNumVerts(dm)));
- m_velocity.set(samp);
-
- /* We have all we need. */
+ if (m_is_liquid) {
+ /* We don't need anything more for liquid meshes. */
return;
}
@@ -876,7 +861,7 @@ void AbcMeshWriter::getVelocities(DerivedMesh *dm, std::vector<float> &vels)
vels.clear();
vels.resize(totverts * 3);
- ModifierData *md = get_fluid_sim_modifier(m_scene, m_object);
+ ModifierData *md = get_liquid_sim_modifier(m_scene, m_object);
FluidsimModifierData *fmd = reinterpret_cast<FluidsimModifierData *>(md);
FluidsimSettings *fss = fmd->fss;
diff --git a/source/blender/alembic/intern/abc_mesh.h b/source/blender/alembic/intern/abc_mesh.h
index e698e42..610b2cc 100644
--- a/source/blender/alembic/intern/abc_mesh.h
+++ b/source/blender/alembic/intern/abc_mesh.h
@@ -51,9 +51,8 @@ class AbcMeshWriter : public AbcObjectWriter {
bool m_has_vertex_weights;
- bool m_is_fluid;
+ bool m_is_liquid;
bool m_is_subd;
- Alembic::Abc::OArrayProperty m_velocity;
public:
AbcMeshWriter(Scene *scene,
More information about the Bf-blender-cvs
mailing list