[Bf-blender-cvs] [51c1927] master: OpenSubdiv: Make topology orientation optional
Sergey Sharybin
noreply at git.blender.org
Wed Jul 29 17:45:18 CEST 2015
Commit: 51c1927ccb546cffe30ebcd9e4ecf6aa07b96ce1
Author: Sergey Sharybin
Date: Wed Jul 29 17:41:57 2015 +0200
Branches: master
https://developer.blender.org/rB51c1927ccb546cffe30ebcd9e4ecf6aa07b96ce1
OpenSubdiv: Make topology orientation optional
===================================================================
M intern/opensubdiv/opensubdiv_converter.cc
M intern/opensubdiv/opensubdiv_intern.h
===================================================================
diff --git a/intern/opensubdiv/opensubdiv_converter.cc b/intern/opensubdiv/opensubdiv_converter.cc
index a84939f..fe12c84 100644
--- a/intern/opensubdiv/opensubdiv_converter.cc
+++ b/intern/opensubdiv/opensubdiv_converter.cc
@@ -134,6 +134,7 @@ inline bool TopologyRefinerFactory<OpenSubdiv_Converter>::assignComponentTopolog
int num_vert_edges = conv.get_num_vert_edges(&conv, vert);
int *vert_edges = new int[num_vert_edges];
conv.get_vert_edges(&conv, vert, vert_edges);
+#ifdef OPENSUBDIV_ORIENT_TOPOLOGY
/* Order vertex edges and faces in a CCW order. */
/* TODO(sergey): Look into possible optimizations here. */
bool *face_used = new bool[num_faces];
@@ -253,6 +254,10 @@ inline bool TopologyRefinerFactory<OpenSubdiv_Converter>::assignComponentTopolog
}
}
#endif
+#else /* OPENSUBDIV_ORIENT_TOPOLOGY */
+ memcpy(&dst_vert_edges[0], vert_edges, sizeof(int) * num_vert_edges);
+ memcpy(&dst_vert_faces[0], vert_faces, sizeof(int) * num_vert_faces);
+#endif /* OPENSUBDIV_ORIENT_TOPOLOGY */
delete [] vert_edges;
delete [] vert_faces;
diff --git a/intern/opensubdiv/opensubdiv_intern.h b/intern/opensubdiv/opensubdiv_intern.h
index 034677f..3e3925e 100644
--- a/intern/opensubdiv/opensubdiv_intern.h
+++ b/intern/opensubdiv/opensubdiv_intern.h
@@ -33,4 +33,11 @@
# define OPENSUBDIV_VALIDATE_TOPOLOGY
#endif
+/* Currently OpenSubdiv expects topology to be oriented,
+ * but sometimes it's handy to disable orientation code
+ * to check whether it causes some weird issues by using
+ * pre-oriented model.
+ */
+#define OPENSUBDIV_ORIENT_TOPOLOGY
+
#endif /* __OPENSUBDIV_INTERN_H__ */
More information about the Bf-blender-cvs
mailing list