From a82a019aa17543d8b5b85c6464f0c8b9e072320d Mon Sep 17 00:00:00 2001 From: Nathan Litke Date: Tue, 22 Apr 2014 15:58:04 -0700 Subject: [PATCH] HbrMesh::k_InterpolateBoundaryAlwaysSharp does not behave as expected #286 * use infinitely sharp crease rules to edges and vertices for case k_InterpolateBoundaryAlwaysSharp --- opensubdiv/hbr/mesh.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opensubdiv/hbr/mesh.h b/opensubdiv/hbr/mesh.h index 3105014c..a11c99d2 100644 --- a/opensubdiv/hbr/mesh.h +++ b/opensubdiv/hbr/mesh.h @@ -705,7 +705,7 @@ HbrMesh::Finish() { GetVertices(std::back_inserter(vertexlist)); // If interpolateboundary is on, process boundary edges - if (interpboundarymethod == k_InterpolateBoundaryEdgeOnly || interpboundarymethod == k_InterpolateBoundaryEdgeAndCorner) { + if (interpboundarymethod == k_InterpolateBoundaryEdgeOnly || interpboundarymethod == k_InterpolateBoundaryEdgeAndCorner || interpboundarymethod == k_InterpolateBoundaryAlwaysSharp) { for (i = 0; i < nfaces; ++i) { if (HbrFace* face = faces[i]) { int nv = face->GetNumVertices(); @@ -719,7 +719,7 @@ HbrMesh::Finish() { } } // Process corners - if (interpboundarymethod == k_InterpolateBoundaryEdgeAndCorner) { + if (interpboundarymethod == k_InterpolateBoundaryEdgeAndCorner || interpboundarymethod == k_InterpolateBoundaryAlwaysSharp) { for (typename std::vector*>::iterator vi = vertexlist.begin(); vi != vertexlist.end(); ++vi) { HbrVertex* vertex = *vi;