[Bf-blender-cvs] SVN commit: /data/svn/repos/bf-blender [61786] trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv: OS X: update OpenSubdiv to 3.1.1

Martijn Berger martijn.berger at gmail.com
Wed Feb 1 20:38:00 CET 2017


Revision: 61786
          https://developer.blender.org/rBL61786
Author:   juicyfruit
Date:     2017-02-01 20:37:59 +0100 (Wed, 01 Feb 2017)
Log Message:
-----------
OS X: update OpenSubdiv to 3.1.1

Added Paths:
-----------
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapBSplineBasisPatchFactory.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapGregoryBasisPatchFactory.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapLegacyGregoryPatchFactory.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/gregoryBasis.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/patchBasis.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/stencilBuilder.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/cpuKernel.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/cudaEvaluator.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/cudaGLVertexBuffer.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/cudaPatchTable.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/cudaVertexBuffer.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/ompEvaluator.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/ompKernel.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/patchBasisCommon.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/tbbEvaluator.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/osd/tbbKernel.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/vtr/quadRefinement.h
    trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/vtr/triRefinement.h

Added: trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapBSplineBasisPatchFactory.h
===================================================================
--- trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapBSplineBasisPatchFactory.h	                        (rev 0)
+++ trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapBSplineBasisPatchFactory.h	2017-02-01 19:37:59 UTC (rev 61786)
@@ -0,0 +1,115 @@
+//
+//   Copyright 2015 Pixar
+//
+//   Licensed under the Apache License, Version 2.0 (the "Apache License")
+//   with the following modification; you may not use this file except in
+//   compliance with the Apache License and the following modification to it:
+//   Section 6. Trademarks. is deleted and replaced with:
+//
+//   6. Trademarks. This License does not grant permission to use the trade
+//      names, trademarks, service marks, or product names of the Licensor
+//      and its affiliates, except as required to comply with Section 4(c) of
+//      the License and to reproduce the content of the NOTICE file.
+//
+//   You may obtain a copy of the Apache License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the Apache License with the above modification is
+//   distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+//   KIND, either express or implied. See the Apache License for the specific
+//   language governing permissions and limitations under the Apache License.
+//
+
+#ifndef OPENSUBDIV3_FAR_END_CAP_BSPLINE_BASIS_PATCH_FACTORY_H
+#define OPENSUBDIV3_FAR_END_CAP_BSPLINE_BASIS_PATCH_FACTORY_H
+
+#include "../far/gregoryBasis.h"
+#include "../far/types.h"
+#include "../vtr/level.h"
+
+namespace OpenSubdiv {
+namespace OPENSUBDIV_VERSION {
+
+namespace Far {
+
+class TopologyRefiner;
+
+/// \brief A BSpline endcap factory
+///
+/// note: This is an internal use class in PatchTableFactory, and
+///       will be replaced with SdcSchemeWorker for mask coefficients
+///       and Vtr::Level for topology traversal.
+///
+class EndCapBSplineBasisPatchFactory {
+
+public:
+    /// \brief This factory accumulates vertex for bspline basis end cap
+    ///
+    /// @param refiner                TopologyRefiner from which to generate patches
+    ///
+    /// @param vertexStencils         Output stencil table for the patch points
+    ///                               (vertex interpolation)
+    ///
+    /// @param varyingStencils        Output stencil table for the patch points
+    ///                               (varying interpolation)
+    ///
+    /// @param shareBoundaryVertices  Use same boundary vertices for neighboring
+    ///                               patches. It reduces the number of stencils
+    ///                               to be used.
+    ///
+    EndCapBSplineBasisPatchFactory(TopologyRefiner const & refiner,
+                                   StencilTable * vertexStencils,
+                                   StencilTable * varyingStencils);
+
+    /// \brief Returns end patch point indices for \a faceIndex of \a level.
+    ///        Note that end patch points are not included in the vertices in
+    ///        the topologyRefiner, they're expected to come after the end.
+    ///        The returning indices are offsetted by refiner->GetNumVerticesTotal.
+    ///
+    /// @param level            vtr refinement level
+    ///
+    /// @param faceIndex        vtr faceIndex at the level
+    ///
+    /// @param levelVertOffset  relative offset of patch vertex indices
+    ///
+    /// @param fvarChannel      face-varying channel index
+    ///
+    ConstIndexArray GetPatchPoints(
+        Vtr::internal::Level const * level, Index faceIndex,
+        Vtr::internal::Level::VSpan const cornerSpans[],
+        int levelVertOffset, int fvarChannel = -1);
+
+private:
+    ConstIndexArray getPatchPointsFromGregoryBasis(
+        Vtr::internal::Level const * level, Index thisFace,
+        Vtr::internal::Level::VSpan const cornerSpans[],
+        ConstIndexArray facePoints,
+        int levelVertOffset, int fvarChannel);
+
+    ConstIndexArray getPatchPoints(
+        Vtr::internal::Level const *level, Index thisFace,
+        Index extraOrdinaryIndex, ConstIndexArray facePoints,
+        int levelVertOffset, int fvarChannel);
+
+    void computeLimitStencils(
+        Vtr::internal::Level const *level,
+        ConstIndexArray facePoints, int vid, int fvarChannel,
+        GregoryBasis::Point *P, GregoryBasis::Point *Ep, GregoryBasis::Point *Em);
+
+    StencilTable * _vertexStencils;
+    StencilTable * _varyingStencils;
+
+    TopologyRefiner const *_refiner;
+    int _numVertices;
+    int _numPatches;
+    std::vector<Index> _patchPoints;
+};
+
+} // end namespace Far
+
+} // end namespace OPENSUBDIV_VERSION
+} // end namespace OpenSubdiv
+
+#endif  // OPENSUBDIV3_FAR_END_CAP_BSPLINE_BASIS_PATCH_FACTORY_H

Added: trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapGregoryBasisPatchFactory.h
===================================================================
--- trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapGregoryBasisPatchFactory.h	                        (rev 0)
+++ trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapGregoryBasisPatchFactory.h	2017-02-01 19:37:59 UTC (rev 61786)
@@ -0,0 +1,118 @@
+//
+//   Copyright 2013 Pixar
+//
+//   Licensed under the Apache License, Version 2.0 (the "Apache License")
+//   with the following modification; you may not use this file except in
+//   compliance with the Apache License and the following modification to it:
+//   Section 6. Trademarks. is deleted and replaced with:
+//
+//   6. Trademarks. This License does not grant permission to use the trade
+//      names, trademarks, service marks, or product names of the Licensor
+//      and its affiliates, except as required to comply with Section 4(c) of
+//      the License and to reproduce the content of the NOTICE file.
+//
+//   You may obtain a copy of the Apache License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the Apache License with the above modification is
+//   distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+//   KIND, either express or implied. See the Apache License for the specific
+//   language governing permissions and limitations under the Apache License.
+//
+
+#ifndef OPENSUBDIV3_FAR_END_CAP_GREGORY_BASIS_PATCH_FACTORY_H
+#define OPENSUBDIV3_FAR_END_CAP_GREGORY_BASIS_PATCH_FACTORY_H
+
+#include "../far/gregoryBasis.h"
+#include "../far/stencilTable.h"
+#include "../vtr/level.h"
+
+namespace OpenSubdiv {
+namespace OPENSUBDIV_VERSION {
+
+namespace Far {
+
+class TopologyRefiner;
+
+/// \brief A specialized factory to gather Gregory basis control vertices
+///
+/// note: This is an internal use class in PatchTableFactory, and
+///       will be replaced with SdcSchemeWorker for mask coefficients
+///       and Vtr::Level for topology traversal.
+///
+class EndCapGregoryBasisPatchFactory {
+
+public:
+
+    ///
+    /// Multi-patch Gregory stencils factory
+    ///
+
+    /// \brief This factory accumulates vertex for Gregory basis patch
+    ///
+    /// @param refiner                TopologyRefiner from which to generate patches
+    ///
+    /// @param vertexStencils         Output stencil table for the patch points
+    ///                               (vertex interpolation)
+    ///
+    /// @param varyingStencils        Output stencil table for the patch points
+    ///                               (varying interpolation)
+    ///
+    /// @param shareBoundaryVertices  Use same boundary vertices for neighboring
+    ///                               patches. It reduces the number of stencils
+    ///                               to be used.
+    ///
+    EndCapGregoryBasisPatchFactory(TopologyRefiner const & refiner,
+                                   StencilTable *vertexStencils,
+                                   StencilTable *varyingStencils,
+                                   bool shareBoundaryVertices=true);
+
+    /// \brief Returns end patch point indices for \a faceIndex of \a level.
+    ///        Note that end patch points are not included in the vertices in
+    ///        the topologyRefiner, they're expected to come after the end.
+    ///        The returning indices are offsetted by refiner->GetNumVerticesTotal.
+    ///
+    /// @param level            vtr refinement level
+    ///
+    /// @param faceIndex        vtr faceIndex at the level
+    //
+    /// @param cornerSpans      information about topology for each corner of patch
+    /// @param levelVertOffset  relative offset of patch vertex indices
+    ///
+    /// @param fvarChannel      face-varying channel index
+    ///
+    ConstIndexArray GetPatchPoints(
+        Vtr::internal::Level const * level, Index faceIndex,
+        Vtr::internal::Level::VSpan const cornerSpans[],
+        int levelVertOffset, int fvarChannel = -1);
+
+private:
+
+    /// Creates a basis for the vertices specified in mask on the face and
+    /// accumates it
+    bool addPatchBasis(Vtr::internal::Level const & level, Index faceIndex,
+                       Vtr::internal::Level::VSpan const cornerSpans[],
+                       bool newVerticesMask[4][5],
+                       int levelVertOffset, int fvarChannel);
+
+    StencilTable *_vertexStencils;
+    StencilTable *_varyingStencils;
+
+    TopologyRefiner const *_refiner;
+    bool _shareBoundaryVertices;
+    int _numGregoryBasisVertices;
+    int _numGregoryBasisPatches;
+    std::vector<Index> _patchPoints;
+
+    //  Only used when sharing vertices:
+    std::vector<unsigned int> _levelAndFaceIndices;
+};
+
+} // end namespace Far
+
+} // end namespace OPENSUBDIV_VERSION
+} // end namespace OpenSubdiv
+
+#endif  // OPENSUBDIV3_FAR_END_CAP_GREGORY_BASIS_PATCH_FACTORY_H

Added: trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapLegacyGregoryPatchFactory.h
===================================================================
--- trunk/lib/darwin-9.x.universal/opensubdiv/include/opensubdiv/far/endCapLegacyGregoryPatchFactory.h	                        (rev 0)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list