mirror of
https://github.com/PixarAnimationStudios/OpenSubdiv
synced 2025-01-05 06:21:07 +00:00
HbrMesh::k_InterpolateBoundaryAlwaysSharp does not behave as expected #286
* use infinitely sharp crease rules to edges and vertices for case k_InterpolateBoundaryAlwaysSharp
This commit is contained in:
parent
068035c26a
commit
a82a019aa1
@ -705,7 +705,7 @@ HbrMesh<T>::Finish() {
|
|||||||
GetVertices(std::back_inserter(vertexlist));
|
GetVertices(std::back_inserter(vertexlist));
|
||||||
|
|
||||||
// If interpolateboundary is on, process boundary edges
|
// 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) {
|
for (i = 0; i < nfaces; ++i) {
|
||||||
if (HbrFace<T>* face = faces[i]) {
|
if (HbrFace<T>* face = faces[i]) {
|
||||||
int nv = face->GetNumVertices();
|
int nv = face->GetNumVertices();
|
||||||
@ -719,7 +719,7 @@ HbrMesh<T>::Finish() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Process corners
|
// Process corners
|
||||||
if (interpboundarymethod == k_InterpolateBoundaryEdgeAndCorner) {
|
if (interpboundarymethod == k_InterpolateBoundaryEdgeAndCorner || interpboundarymethod == k_InterpolateBoundaryAlwaysSharp) {
|
||||||
for (typename std::vector<HbrVertex<T>*>::iterator vi = vertexlist.begin();
|
for (typename std::vector<HbrVertex<T>*>::iterator vi = vertexlist.begin();
|
||||||
vi != vertexlist.end(); ++vi) {
|
vi != vertexlist.end(); ++vi) {
|
||||||
HbrVertex<T>* vertex = *vi;
|
HbrVertex<T>* vertex = *vi;
|
||||||
|
Loading…
Reference in New Issue
Block a user