Commit Graph

1175 Commits

Author SHA1 Message Date
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
5faa961bf6 Update release notes & documentation for upcoming Beta release 2014-12-19 11:32:23 -08:00
manuelk
dbfbf893fc Fix typo in sdc/options.h 2014-12-19 11:31:59 -08:00
manuelk
5214a6d2ab Update subdivision ReST documentation to match changes in Sdc 2014-12-18 11:14:19 -08:00
manuelk
4643a51fb0 Fix Png dependency in examples build (fixes screenshot ability in glViewer) 2014-12-18 11:13:28 -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
cbb02fd3ce Fix tutorial include paths
- now prettier with <opensubdiv> prefix
2014-12-11 10:14:46 -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
Manuel Kraemer
97bfd12ca6 Merge pull request #367 from hsdk/dev
Fixing ProtoStencil mem leak
2014-12-10 13:00:26 -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
Manuel Kraemer
ccab85fa1e Merge pull request #366 from stopiccot/ios_fixes
Fixing iOS build
2014-12-08 12:28:37 -08:00
stopiccot
28799f5135 Fixing iOS build 2014-12-08 12:12:19 +03:00
manuelk
6d9cdf90a3 Fix accumulation of stencil derivatives
this time without a typo

fixes #364
2014-12-05 13:56:36 -08:00
manuelk
4236aa8c06 Fix glViewer crash for Win Debug build
- switch std::vector::reserve() to resize() so that boundary check on read doesn't have a size 0 vector

fixes #362
2014-12-05 10:50:09 -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
ff223e4aaf Fix documentation code highlighing
- remove underlines from css on class names
2014-12-04 11:30:22 -08:00
manuelk
a9d9cd6384 Fix gcc opt build
- apparently we can't have the Far::TopologyRefinerFactory specialization
  in an obj file or the opt build with gcc crashes
2014-12-03 20:21:06 -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
9b3f25df2c Adding git URL to html tutorial documentation 2014-12-01 18:49:51 -08:00
manuelk
ead2aa97a4 Fix URL in documentation 2014-12-01 16:48:25 -08:00
manuelk
a8ee36ae33 Add automatic ReST pages to the documentation for the tutorials code
- 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
2014-12-01 15:52:58 -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
manuelk
c10e18a035 Add cascading stencils Far tutorial 2014-11-18 16:52:32 -08:00
manuelk
58c8accbe9 WIP ReST documention for Far::StencilTables 2014-11-18 15:55:14 -08:00
manuelk
2d0182e3e9 Enabling Loop test shapes in glViewer and glFVarViewer code examples 2014-11-18 12:44:52 -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
b599bbc0cc Fix vtrViewer code example
- add control to toggle display of gregory basis
- add dedicated (yellow) color to common/patchColors for gregory basis
- fix display of end-cap quads
2014-11-18 10:57:19 -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