Commit Graph

663 Commits

Author SHA1 Message Date
barfowl
13f148aac8 Minor code cleanup:
- removed Vtr::Sharpness typedef within Vtr
    - culled obsolete comments from Sdc headers
2014-12-23 00:09:26 -08:00
manuelk
13e9136b63 Remove Hbr from doxygen docs 2014-12-22 11:50:41 -08:00
manuelk
8d86a2c6bd WIP doxyfication of Sdc 2014-12-22 11:29:15 -08:00
manuelk
d02fce995b Remove obsolete code path in Far::TopologyRefiner (_VTR_COMPUTE_MASK_WEIGHTS_ENABLED) 2014-12-22 10:34:51 -08:00
manuelk
d70fc5a72c Fix doxy comments in Far::TopologyRefiner 2014-12-22 09:40:14 -08:00
manuelk
227ed072c2 Remove outdated OVERVIEW.txt files
- contents have been moved to ReST documentation
2014-12-22 09:24:35 -08:00
manuelk
15b4135cfb Fix infinitely sharp edges isolation
- change topology refiner to check for edge sharpnesses when selecting faces for isolation
- add face-aggregator for edge tags to Vtr::Level
- fix logic in Far::PatchTablesFactory to correctly tag single-crease patches along infinitely sharp edges

note : this fix is a bit of a cludge - barfowl confirms that the vertex crease tags (VTags) are intended to
carry neighborhood information, which they currently do not. we will revisit this shortly and fix the tags,
which will allow us to simplify the traversal logic when isolating topology features.

fixes #369
2014-12-19 18:18:13 -08:00
manuelk
dbfbf893fc Fix typo in sdc/options.h 2014-12-19 11:31:59 -08:00
manuelk
4b6db70539 Fix Windows build 2014-12-15 11:24:45 -08:00
manuelk
48cf4b6528 Refactor Vtr::Array for better "const" safety
Const' declared instances of Vtr::Array do not protect the pointer held
privately by the class properly. In order to force the compiler to
protect this pointer, we removed all non-const accessors from Vtr::Array
(now renamed Vtr::ConstArray) and moved them to a child class (Vtr::Array),
which requires const_cast<> operators internally to allow access.

The change & renaming is then propagated to all internal dependencies.
2014-12-15 10:23:13 -08:00
manuelk
9a3a88546d Rename some members of Far::TopologyRefinerFactory::TopologyDescriptor for consistency
- propagate changes to tutorials / examples
2014-12-12 11:19:24 -08:00
manuelk
ce55f56d50 Rename Sdc::Options vertex boundary interpolation rule enums
- VVarBoundaryInterpolation is now VtxBoundaryInterpolation
- enum prefix change from VVAR to VTX
- generel cleanup / doxyfication
- update of beta / release notes
2014-12-12 11:10:17 -08:00
manuelk
81d971966d Fix error string conversion to use swtich statement (safer) 2014-12-11 09:20:45 -08:00
manuelk
544213b3f0 Fix smooth triangles catmark weights
- rename enums in sdc/options
- add support for "smoothtriangles" tag in Shapes
- add 2 test shapes to glViewer
2014-12-11 09:19:41 -08:00
barfowl
4a3184684f Enabled the "triangle smoothing" option for Catmark edge vertices. 2014-12-10 19:20:03 -08:00
manuelk
6c6993f5b0 Removing non-manifold options : the feature is not ready yet for Beta evaluation 2014-12-10 14:30:36 -08:00
Henry Schäfer
106f74a148 fixed code style of stencil leak fix 2014-12-10 20:09:18 +01:00
Henry Schaefer
02a7373a75 Fixing ProtoStencil mem leak 2014-12-10 13:10:04 +01:00
manuelk
a6e0330805 Remove Hbr compatibility from Sdc::Options
full backward compatibility is assumed to not be possible any-more
2014-12-09 15:03:37 -08:00
manuelk
b53df4b766 WIP on error reporting system
- add error reporting callback to Vtr::Level::validateTopology
- switch printfs to callback
- add error code enums to Vtr::Level
- route Far::TopologyRefinerFactory::reportInvalidTopology through Vtr::Level callback

note:
- Vtr::Level::validateTopology needs to check creaase tag indices
- topology validation should be client-code driver in TopologyRefinerFactory (turned off in the code at the moment)
2014-12-08 17:24:54 -08:00
manuelk
6d9cdf90a3 Fix accumulation of stencil derivatives
this time without a typo

fixes #364
2014-12-05 13:56:36 -08:00
manuelk
f7ed90e898 Minor optimization for Far::PatchTables cubic spline tensor computation 2014-12-04 16:46:02 -08:00
manuelk
e330b4513f Fix accumulation of stencil derivatives
- make sure not to skip CVs that have 0.0 weight because derivative may be contributing (non 0 tangent weight)

fixes #364
2014-12-04 16:15:13 -08:00
manuelk
0ff7b15711 Fix Win build
- 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
2014-12-03 20:04:35 -08:00
manuelk
cc6c0925a3 Refactor error reporting system
- 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
2014-12-03 17:19:07 -08:00
manuelk
538c13f394 Fix Windows build 2014-11-25 14:14:59 -08:00
manuelk
b27b55e4a8 Refactor Far::PatchTables
- 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
2014-11-25 12:41:19 -08:00
manuelk
a9c32d6705 Add opensubdiv/version.cpp
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
2014-11-25 12:37:03 -08:00
manuelk
c2e8148efc Fix a Far::StencilTablesFactory crash bug on 'perfect' topology
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)
2014-11-25 11:48:49 -08:00
barfowl
5c99660f47 Generalized limit functions to support all schemes:
- 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
2014-11-21 16:19:21 -08:00
barfowl
eb3f35ba74 Added methods to Vtr::Level to gather triangular patches for future use. 2014-11-20 14:10:46 -08:00
barfowl
43b843e8a7 Fixed bug tranferring new face-weight tag when blending MASKS in Scheme. 2014-11-18 11:51:21 -08:00
manuelk
49848139f4 Fix build warning in Far::PatchTables::Interpolate<>() method 2014-11-18 11:10:13 -08:00
manuelk
6a2b966f6e WIP on end-cap topology generation
- 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
2014-11-18 10:48:37 -08:00
manuelk
0513ef1461 Fix build virtual destructor warning in Vtr::Refinement 2014-11-17 18:14:32 -08:00
manuelk
2b6e8432bd Fix build warning in Sdc::LoopScheme 2014-11-17 18:05:00 -08:00
barfowl
5cb12805ca Added refinement and masks for Loop subdivision:
- 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>
2014-11-17 17:19:30 -08:00
manuelk
ba81be4729 Fix Far::GregoryBasisFactory to check that input is not empty 2014-11-14 12:44:28 -08:00
manuelk
854dfac3ca Fix Far::StencilTablesFactory tables concatenation operator
- stencil sizes were omitted from the copy resulting in unusable tables
2014-11-14 12:41:53 -08:00
manuelk
86b532059e Fix bug in Far::PatchTables::IsFeatureAdaptive()
- now the function properly accounts for tables that only have Gregory-basis type
  of end-cap patches
2014-11-13 18:31:14 -08:00
manuelk
5254fd58e7 Add StencilTables factory for tables concatenation 2014-11-13 14:03:21 -08:00
manuelk
2fbdb976e3 Fix doxygen documentatino for Far::PatchTables 2014-11-13 10:28:31 -08:00
manuelk
9158a430ac Fix Far::PatchTables control vertex indexing to use 4 CVs to represent the 0-ring
- we were allocating 20 CVs for the Gregory basis, but only need 4
 (the 20 CVs are stored in the stencil table)
2014-11-12 13:20:55 -08:00
manuelk
e8210886a8 Extend stencil-driven Gregory basis code support to Osd::EvalLimit (cpu) 2014-11-11 17:35:52 -08:00
manuelk
abae4459e6 Adding support for gregory patches limit interpolation to Far::PatchTables
note: limit interpolation requires stencil-driven Gregory basis CVs
2014-11-11 11:27:25 -08:00
barfowl
dc27d303ac Reorganized/cleaned up Vtr::Refinement in preparation for adding tri-splitting:
- 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
2014-11-09 13:25:09 -08:00
manuelk
c237ab00fc WIP check-point for Gregory basis factorization
- 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)
2014-11-04 11:14:21 -08:00
barfowl
c2fa2616d2 Fixed bug in retrieval of FVar values for edge pair incident an N-sided face. 2014-11-03 19:56:31 -08:00
barfowl
5ccd94c6d2 Reordered refined face-varying values so those for each vertex are sequential:
- 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
2014-11-03 17:31:24 -08:00
manuelk
17c682f055 WIP check-in for Gregory basis
Adding functionality to support the generation of stencils for the 20 CVs
basis of Gregory patches. This is still very rough... expect changes.
2014-10-31 17:07:45 -07:00