Commit: 6543fe592f46d328ee12ce38871a8102aa2a4f3e
Author: Kévin Dietrich
Date: Wed Jun 29 23:37:36 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rB6543fe592f46d328ee12ce38871a8102aa2a4f3e
Add support to read edge crease data.
===================================================================
M source/blender/alembic/intern/abc_mesh.cc
===================================================================
diff --git a/source/blender/alembic/intern/abc_mesh.cc
b/source/blender/alembic/intern/abc_mesh.cc
index 9ebb23a..abb289c 100644
--- a/source/blender/alembic/intern/abc_mesh.cc
+++ b/source/blender/alembic/intern/abc_mesh.cc
@@ -836,6 +836,19 @@ bool AbcMeshReader::valid() const
return m_schema.valid() || m_subd_schema.valid();
}
+static MEdge *find_edge(MEdge *edges, int totedge, int v1, int v2)
+{
+ for (int i = 0, e = totedge; i < e; ++i) {
+ MEdge &edge = edges[i];
+
+ if (edge.v1 == v1 && edge.v2 == v2) {
+ return &edge;
+ }
+ }
+
+ return NULL;
+}
+
void AbcMeshReader::readObjectData(Main *bmain, Scene *scene, float time)
{
Mesh *mesh = BKE_mesh_add(bmain, m_data_name.c_str());
@@ -890,6 +903,26 @@ void AbcMeshReader::readObjectData(Main *bmain, Scene
*scene, float time)
readFaceSetsSample(bmain, mesh, poly_start, sample_sel);
}
+ if (m_subd_schema.valid()) {
+ const ISubDSchema::Sample sample =
m_subd_schema.getValue(sample_sel);
+
+ Int32ArraySamplePtr indices = sample.getCreaseIndices();
+ Alembic::Abc::FloatArraySamplePtr sharpnesses =
sample.getCreaseSharpnesses();
+
+ MEdge *edges = mesh->medge;
+
+ if (indices && sharpnesses) {
+ for (int i = 0, s = 0, e = indices->size(); i < e; i +=
2, ++s) {
+ MEdge *edge = find_edge(edges, mesh->totedge,
(*indices)[i], (*indices)[i + 1]);
+
+ if (edge) {
+ edge->crease =
FTOCHAR((*sharpnesses)[s]); }
+ }
+
+ mesh->cd_flag |= ME_CDFLAG_EDGE_CREASE;
+ }
+ }
+
if (!is_constant) {
addDefaultModifier(bmain);
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs