While this may be worth revisiting, we should first quantify the benefits and
identify the compilers that support it. Ultimately, we may never use pragma
once in favor of strictly using standard C++.
- modified main LimitMask queries to include subdivision Rule
- split internal mask assignments into corner, crease and smooth cases
- adapted all three schemes to the new structure
- completed limit tangents for Loop
- update TopologyRefiner Limit methods to pass newly required Rule
- renamed Sdc::Type to SchemeType and TypeTraits to SchemeTypeTraits
- renamed TYPE_ prefix to SCHEME_
- updated all usage within core library
- updated all usage in examples, tutorials, etc.
- changed template parameter to runtime method parameter
- added traits as static methods of all schemes
- constructed internal table of traits from all schemes
- VVarBoundaryInterpolation is now VtxBoundaryInterpolation
- enum prefix change from VVAR to VTX
- generel cleanup / doxyfication
- update of beta / release notes
- added detection of sharp corners in generic scheme limit mask query
- tweaked Loop limit mask to simplify the regular case
- updated TopologyRefiner::Limit() methods to support all schemes
- added flag to Sdc MASK interface to interpret "face weights"
- updated Catmark and Bilinear schemes to be aware of new MASK flag
- added subdivision and limit masks for the Loop scheme
- subclassed Vtr::Refinement into QuadRefinement and TriRefinement
- updated tagging of components to be sensitive to applied scheme
- fixed some quad assumptions in FVar refinement to support N-sided
- internally generalized ::TopologyRefiner Interpolate() for <SCHEME>
- redefined and documented Sdc::Options::FVarLinearInterpolation
- included "corners only" mode not possible with Hbr
- updated usage within Vtr::FVarLevel
- "propagate corners" added as new enumeration to Sdc::Options
- topology tags within FVar channel initialized and propagated
- face-varying Interpolate() method updated to deal with creases
- semi-sharp edges prevented from decreasing by averaging with inf-sharp
- averaging now includes only semi-sharp edges around the vertex
- see regression/shapes/catmark_chaikin2
Sync'ing the 'dev' branch with the 'feature_3.0dev' branch at commit 68c6d11fc36761ae1a5e6cdc3457be16f2e9704a
The branch 'feature_3.0dev' is now locked and preserved for historical purposes.