Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/opensubdiv')
-rw-r--r--intern/opensubdiv/opensubdiv_converter.cc5
-rw-r--r--intern/opensubdiv/opensubdiv_intern.h7
2 files changed, 12 insertions, 0 deletions
diff --git a/intern/opensubdiv/opensubdiv_converter.cc b/intern/opensubdiv/opensubdiv_converter.cc
index a84939f8d4d..fe12c840af5 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 034677f76fd..3e3925e74c4 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__ */