- make sure we don't get conflicting enums (CODE_ERROR)
- fix template specialization for Far::TopologyRefinerFactory in regression/common/vtr_utils
- fix remaining error reporting code around osd
- change error codes from situational to general (fatal / coding / run-time...)
- pull error functions from Osd into Far
- add a templated topology validation reporting system to Far::TopologyRefinerFactory
- fix fallout on rest of code-base
- add python script to generate ReST from the C++ tutorial source files
- add css stylesheet for C++ syntax highlighting (based on my nedit settings)
- add functionality to CMake build to make it all happen
- add hyperlinks to tutorials.rst file
- split Far::PatchDescriptor into its own class (mirrors Far::PatchParam)
- hide PatchArray as a private internal structure
- add public accessors patterned after Far::TopologyRefiner (returning Vtr::Arrays)
- propagate new API to all dependent code
note: some direct table accessors have not been removed *yet* - see code for details
This empty cpp file is added to address some cmake dependency resolution issues
with XCode project-based build generation.
I may add some functionality to version.cpp in the future
Thanks stopiccot for investigating the issue and doing most of the leg-work.
fixes#356
Torii (and other planar topologies) are made entirely of regular b-spline patches and do not
generate sub-patches through adaptive isolation: we need to make sure that we construct
stencil tables with singular stencils for the coarse vertices instead of returning empty
tables (and crash in the limit stencils factory)
- 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
- adding functionality to Far::PatchTablesFactory to generate topology indices
for Gregory basis end-caps (identify and index vertices along basis shared
edges)
- code is currently #ifdef'ed out until further work can be done to bring the
feature along all the way through to Osd::Draw
- 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>
- reorganized Refinement methods and pruned excessive comments
- removed and added assertions related to Catmark scheme
- added code to support alternate refined vertex ordering
- updated FVarRefinement to be more independent of vertex ordering
- updated Far::TopologyRefiner to fix face-varying ordering dependencies
- fixed a few miscellanous compiler warnings
- adding support for StencilTables creation from a Gregory basis
- fix a bug in the prot-stencil allocator (slow memory pool was not being cleared properly)
- added array accessors to properties of vertex values in vtr::FVarLevel
- updated construction of base level face-varying topology
- simplified population of face-varying properties in vtr::FVarRefinement
- updated Far::TopologyRefiner::Interpolate/LimitFaceVarying() accordingly
Setting start/end values of UpdateValues() produced incorrect primvar interpolation
because the stencil sizes array was not shifted properly to the 'start' location of
the batch.
- added ValueTag indicating sharpness dependency on another value
- updated base level tagging to identify dependent semi-sharp values
- updated refinement to consider dependency when reassessing semi-sharpness
- updated interpolation to use dependent fractional weight when necessary
- adaptive mode: remove faces tagged as holes from the selection of faces to isolate
- uniform mode: faces tagged as holes are still included in the refinement process,
however they are removed from patch tables
- future improvements: add a 'selective refinement' code path separate from 'uniform refinement'
to handle this case without un-necessary subdivision work.