[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