- test if a vertex is a corner (one incident face)
- test if valence of a vertex is regular
- tests if a vertex is semi- or inf-sharp
- tests if an edge is semi- or inf-sharp
- apply bitmask in member initialization to suppress warning
- add public Set...() with bitmask for assignment by users
- replace any assignments with new public Set...() methods
- default flags include warnings enabled by -Wall and -Wextra
- suppressed newer warnings in public headers and internal files
(-Wclass-memaccess, -Wcast-function-type, -Wdeprecated-copy)
- suppressed -Wunused-function from internal source files
- normalized the rational weights for pairs of interior points
- fixed sign swap error in mixed partial of bilinear patches
- applied changes to both far/patchBasis and osd/patchBasisCommon
- addressed leaks-on-exit (#1226) and return value from main() for all
- fixed color indexing bug in tutorial_2_2 (#1241)
- suppressed a few compiler warnings
- added tutorial_1_5 to illustrate use of limit stencil evaluation
- added tutorial_3_2 to illustrate caching of Surfaces for later use
- improved tutorial_2_2 (simplified, more comments)
- updated Bfr tutorial docs with new images and descriptions
- modified CMake files for each tutorial to use osd_add_bfr_tutorial
This set of commits includes the addition of a new evaluation interface
that treats a subdivision mesh more like a piecewise parametric surface
primitive. The new interface was placed in namespace "Bfr" for "Base
Face Representation" as all concepts and classes relate to a single face
of the base mesh.
Client applications may keep track of the active shader program so as to
not unnecessarily bind and unbind the same shader consecutively as
switching shaders is costly.
The current behavior of the OpenGL compute evaluator is to set the
active shader to 0 (zero) after running its program(s) which might
interfere with the aforemoentioned client applications' behavior,
leading to bugs.
Instead of unsetting any previously set shader program, cache the
current program before using the evaluator program, and reset the active
program to the previous one when done.
In Blender, this lead to some rendering artifacts. See https://
developer.blender.org/D15064 for more details on it.