Commit Graph

1237 Commits

Author SHA1 Message Date
barfowl
881ff6c1e9 Added public methods for setting non-manifold tags in TopologyRefinerFactory 2015-01-02 14:22:03 -08:00
manuelk
bfbd868fe2 Modify Far::TopologyRefiner refinement options
- move level of refinement / isolation into the Options structs
- fix splash damage in rest of the code

note 1: this is less than ideal, because most compilers accept the previous
        call to these functions with an incorrect parameter list (ie. passing
        the level instead of the struct issues no warnings and compiles...)
        caveat emptor...

note 2: the level parameter names may not be final for adaptive modes
        as we will likely want independent controls over crease vs.
        extraordinary vertex isolation.
2014-12-30 14:07:24 -08:00
manuelk
7954fbab37 Fix tangents in Osd::EvalLimitController
- don't rotate (s,t) coordinates but rotate the patch instead !

- refactor osd/cpuEvalLimitKernels to share Far::PatchTables cubic spline
  interpolation functions : this replaces tensor product formulation with
  weight matrices, which does not really impact performance here, but would
  have to be replaced when implementing regular gridding functions.

- fix OsdCpuEvalLimitController to not rotate coordinates and pass the rotation bitfields

- expose Far::PatchTables spline interpolation API (protected -> public)

- fix glEvalLimit tangent buffers (remove empty padding - see below)

- change policy for tangent buffers : the output buffer descriptor is
  **NO LONGER APPLIED** to tangent output buffers. Tangent primvar data
  buffers are no longer applying the offset and stride from the descriptor
  (because it doesn't make sense to share it). If more flexiblity is
  required, we will consider adding independent descriptors for the tangent
  buffers. This change will impact existing code that generates tangents
  with the EvalLimit controller.

fixes #370
2014-12-25 13:22:27 -08:00
manuelk
5944ada0f9 Add Options structs to Far::TopologyRefiner refinement methods
- fix all splash damage to tutorials / examples...
2014-12-23 10:07:24 -08:00
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
b59c36d691 Add glfw error callback to code examples 2014-12-20 14:44:50 -08:00
manuelk
88bbdee64f Fix build warning in far_tutorial_1 2014-12-20 14:32:00 -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
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