Commit Graph

449 Commits

Author SHA1 Message Date
Dave Clyde
653c9b7e76 Fix additional instances of 'and' 2016-07-16 21:29:05 -07:00
Dave Clyde
61d0c66531 Merge current github/dev into pull request 760 2016-07-16 20:52:54 -07:00
barry
dc1ed8a296 Fixed bug in Far::PatchTableFactory to correct sharpness assignment:
- sharpness pointers specific to the patch type now used instead of
      the pointer for regular patches
2016-07-14 13:06:18 -07:00
barry
2d33a6ebf4 Adding VSpan to standardize representation of partial rings around vertices:
- added definition and gathering method to Vtr::Level
    - extended Far::EndCap...PatchFactories with VSpan[4] for patch corners
    - extended Far::EndCapGregoryPatchFactory to avoid last level assumption
    - adapted Far::PatchTableFactory to use above extensions
    - extended Far::GregoryBasis to recognize VSpan corners
    - simplified Far::GregoryBasis treatement of boundaries
    - fixed bug in Far::GregoryBasis related to smooth corners
2016-07-13 18:16:11 -07:00
Thomas Thomassen
b1e1ff31b4 Clean up DX, example and tutorials. 2016-06-25 10:30:50 +02:00
Thomas Thomassen
aa0599b4bc Merge branch 'dev'
Conflicts:
	opensubdiv/far/patchTableFactory.cpp
2016-06-24 23:30:44 +02:00
George ElKoura
923d60ca74 Use cmake's folder feature on platforms that support it.
We now make use of folders where they are supported.  In particular, on Visual Studio, this produces much nicer solutions to navigate.
2016-06-09 17:04:26 -07:00
David G Yu
841f573224 Fixed residual memory consumed by end cap stencils
An earlier change improved transient memory used during the construction
of end cap stencil tables but could leave unused capacity in the internal
containers of the resulting stencil tables. This change adds an additional
internal factory helper method which trims this storage.
2016-03-16 14:44:47 -07:00
Thomas Thomassen
c422a79031 Rename and, or and not to &&, || and ! to address compilers that don't support them out of the box without extra headers. 2016-02-21 15:47:11 +01:00
David G Yu
3aaf491dda Fixed Far::TopologyRefiner::GetNumLevels()
This method now returns the number of _farLevels where previously
it returned the number of _levels. This is primarily a semantic
difference, as the two containers should have equal size. But this
method is intended to accompany Far::TopologyRefiner::GetLevel()
which returns a reference to an element in _farLevels;
2016-01-22 17:38:58 -08:00
David G. Yu
67a07044d7 Improved fix for stencil table construction
My previous fix added some defensive logic in case the
local point stencil table was empty when attempting to
append local point stencils to an existing stencil table.

This change fixes Far::PatchTableFactory to not return
empty local point stencil tables when there are no local
point stencils. This behavior is now more consistent with
earlier releases.

We will leave the earlier defensive logic in place as well.
2015-12-11 14:37:39 -08:00
David G. Yu
d1b9e45c13 Fixed potential crash in Far::StencilTableFactory
Now StencilTableFactory::AppendLocalPointStencilTable() does
nothing when the localPointStencilTable is empty. This avoids
a potential crash (failed assertion) when both the baseStencilTable
and the localPointStencilTable are empty, as is the case for
simple geometry like the all-quads torus regression test shape.
2015-11-18 18:57:47 -08:00
Dave Clyde
9e144d5b15 allow limit surface evaluation without tangents 2015-11-16 14:43:49 -08:00
Dave Clyde
afde3b2d10 LimitStencilTable now also computes stencils for second partials. 2015-11-16 14:43:44 -08:00
Dave Clyde
c095f48d65 Comment typos / whitespace. 2015-11-16 14:39:58 -08:00
Jeremy Cowles
cf7135eb2a Merge pull request #756 from davidgyu/limitStencilFix
Added missing LimitStencil accessor methods
2015-10-30 13:21:33 -07:00
David G Yu
b9a7d40559 Added missing LimitStencil accessor methods
Now Far::LimitStencilTable provides proper accessor
methods for retrieving individual LimitStencils from
the table.
2015-10-26 14:17:53 -07:00
Takahito Tejima
024da1f729 Reduce the transient memory consumption in endcap construction.
- instead of accumulating GregoryBasis::Point (fixed size stencils
  backed by stackbuffer), pack the stencils into StencilTable as they
  are evaluated
- use single integer for varying stencils of patch points, not
  a GregoryBasis::Point
- cap the reserved stencil entry size.
2015-10-23 15:05:02 -07:00
Takahito Tejima
f5810bac97 Fix windows build 2015-09-30 11:20:03 -07:00
barfowl
0aea00a2e8 Improved patch approximations around non-manifold features
- use regular corner patches around non-manifold verts that were sharpened
2015-09-22 17:26:09 -07:00
Takahito Tejima
37bce3be14 Fix the reserve size for BSpline patch (16, not 20) 2015-09-17 15:14:54 -07:00
Takahito Tejima
c380a0d67e BSpline endcap optimization. 2015-09-16 15:32:50 -07:00
Takahito Tejima
5e96a9ba31 GregoryBasis optimization. Replace arithmetic operators which uses a temporary
object.
2015-09-16 15:28:58 -07:00
Takahito Tejima
0e91dcd177 Optimize gregory basis endcap generation.
- replace std::vector with vtr::StackBuffer in GregoryBasis::Point
- remote getQuadOffsets call from ProtoBasis
- rewrite some inefficient code in the endcap generation.

Note that this is a temporary remedy for the performance issue in 3.0.
We'll fix it again in the later release.
2015-09-16 15:28:55 -07:00
Jeremy Cowles
5f393dbf23 Merge pull request #703 from Nazg-Gul/dev
Fixing linking errors on both Linux and WIndows
2015-08-03 22:51:52 -07:00
David G Yu
c8943d12b3 Merge pull request #719 from barfowl/far_errors
Minor content and formatting changes to Far error strings
2015-07-31 18:04:44 -07:00
David G Yu
bd95246032 Merge pull request #709 from jcowles/dev-stencilfix2
Respect factorizeIntermediatLevels option
2015-07-31 16:57:39 -07:00
barfowl
a094281541 Minor content and formatting changes to Far error strings
- made Far error strings consistent, including clearer source of error
    - minor formatting changes to the default error callback
2015-07-31 12:47:49 -07:00
David G Yu
2d16bfa5fc Fixed an incorrect comment in far/patchParam.h 2015-07-30 17:41:36 -07:00
George ElKoura
0cfc822c30 Merge pull request #714 from barfowl/topology_asserts
Replaced topology initialization assertions with errors
2015-07-30 16:59:15 -07:00
barfowl
0f9819d503 Changed use of Warning() to Error() in Far::TopologyRefinerFactory 2015-07-30 15:05:49 -07:00
David G Yu
e6b03f68a9 Merge pull request #712 from takahito-tejima/boundary
Retains boundary faces of bilinear scheme mesh with VTX_BOUNDARY_NONE
2015-07-30 10:59:54 -07:00
barfowl
a811fb9a80 Replaced topology initialization assertions with errors:
- TopologyRefinerFactory now issues errors for its minimum requirements
2015-07-29 19:38:05 -07:00
Takahito Tejima
ccfcca9abf Retains boundary faces of bilinear scheme mesh with VTX_BOUNDARY_NONE
We mark boundary faces as holes only if the vertex boundary interpolation
is none and the subdivision scheme has local neighborhood.
2015-07-29 17:21:26 -07:00
Takahito Tejima
168139d4ca Fix bug when PatchTableFactory::Options.generateAllLevels is set
generateAllLevels flags is used when we want to have uniform refined
patch array containing all levels together. There's an index offsetting
bug when this flag is enabled.
2015-07-29 14:49:51 -07:00
Jeremy Cowles
55565cca84 Respect factorizeIntermediateLevels option
Previously, this flag was being ignored during stencil table
construction.

Fixes issue #694
2015-07-23 00:45:47 -07:00
barfowl
ad6b1f9117 Eliminate or encapsulate ICC pragmas:
- eliminated need for disabling warning 177 in far/patchTableFactory.cpp
    - encapsulated all floating point equality tests (1572) in local functions
    - bracketed all ICC specific warning pragmas with #ifdef __INTEL_COMPILER
    - avoided GCC's stricter shadowing warning in vtr/array.h
2015-07-20 17:56:00 -07:00
Takahito Tejima
8a8771c97d Revert "Add ISPC limit surface evaluation" 2015-07-20 17:13:51 -07:00
Sheng Fu
d3f8725e79 Add ISPC limit surface evaluation 2015-07-20 14:12:11 -07:00
Sergey Sharybin
2f694727c3 Remove workaround for duplicated symbols with MSVC
This workaround actually caused linking errors related on missing
symbols and removing the workaround does not cause any duplicated
symbols with MSVC 2013.
2015-07-19 18:10:09 +02:00
Sheng Fu
51a9da3bf0 fix ICC compile warning 2015-07-16 09:27:49 -07:00
Sheng Fu
fe20023989 minimize the scope of disabled warnings 2015-07-16 09:27:48 -07:00
Sheng Fu
59382abeaa Fix Intel compiler warning 2015-07-16 09:27:48 -07:00
Jeremy Cowles
8dd7563060 Some minor compiler warning fixes
In one case, we were comparing int and unsigned int.

In primvarRefiner, some values were safely uninitialized, but older compilers
(GCC 4.1) were complaining.
2015-06-25 22:29:23 -07:00
David G Yu
0679161bf5 Fixed a few doxygen param mismatches and errors. 2015-06-22 13:45:55 -07:00
David G Yu
48f52dbeaf Removed commented out face-varying options
This was already commented out and is not intended for release.
2015-06-17 09:59:03 -07:00
barfowl
e1673ebbf3 Doxygen tweaks to prevent it mangling Far::TopologyRefinerFactory<MESH>
- suppressed forward declarations for Factory<TopologyDescriptor>
    - moved typedef out of Doxygen group of Factory<MESH> to preserve ordering
2015-06-12 14:33:21 -07:00
Takahito Tejima
34fab03921 Merge pull request #629 from davidgyu/patchParamFix
Fixed Far::PatchParam encoding of refinement level
2015-06-11 15:33:50 -07:00
David G. Yu
f0128a5f5e Fixed Far::PatchParam encoding of refinement level
This change restores the use of 4-bits in Far::PatchParam to
encode the refinement level of a patch. This restores one bit
that was stolen to allow for more general encoding of boundary
edge and transition edge masks. In order to accommodate all
of the bits that are required, the transition edge mask bits
are now stored along with the faceId bits.

Also, accessors are now exposed directly as members of Far::PatchParam
and the internal bitfield class is no longer directly exposed.
2015-06-11 15:10:30 -07:00
Takahito Tejima
12f3e5a384 Fix a bug in LimitStencilTableFactory
If the input cv stencil is given and it includes the local point
stencils for endcaps, LimitStencilTableFactory::Create failed
because of incorrect sanity checking.
2015-06-11 13:41:20 -07:00