Revisions of openvdb

buildservice-autocommit accepted request 1145007 from Dirk Mueller's avatar Dirk Mueller (dirkmueller) (revision 32)
baserev update by copy to link target
Dirk Mueller's avatar Dirk Mueller (dirkmueller) accepted request 1143393 from Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) (revision 31)
- Revert to 10.1.0: the NanoVDB API changed significantly in 11.0.0,
  and prevent Blender 4.0(.2) from building successfully
- Apply openvdb-boost-static-assert-include.patch in order to compile
- Keep Ben's changes, since they do not harm anyway
buildservice-autocommit accepted request 1140403 from Benjamin Greiner's avatar Benjamin Greiner (bnavigator) (revision 30)
baserev update by copy to link target
Benjamin Greiner's avatar Benjamin Greiner (bnavigator) accepted request 1140402 from Benjamin Greiner's avatar Benjamin Greiner (bnavigator) (revision 29)
- Disable 32-bit builds "ld error: access beyond end of merged
  section"
- Minimum gcc-c++ version is 9.3.1, force gcc10 on 15.x
- Minimum TBB is 2020.3
- Update to 11.0.0:
  * OpenVDB:
    Improvements:
    * Removed use of boost::any in favor of std::any.
    Bug Fixes:
    * Fix potential crash reading corrupt .vdb files with invalid blosc or zip chunks.
  * NanoVDB:
    Highlights:
    * Several new tools to generate and modify NanoVDB grids on the GPU.
    * New file format that supports streaming of raw grid buffers.
    New Features:
    * New memory efficient GridClass::IndexGrid that separates values from tree
    * 4 new GridTypes (Index, OnIndex, IndexMask, OnIndexMask) used by IndexGrid
    * Added createNanoGrid that replaces older conversion methods in GridBuilder.h, IndexGridBuilder.h and OpenToNanoVDB.h
    * Added cudaPointsToGrid that constructs a point device grid from a list of points.
    * Added cudaVoxelsToGrid that constructs a voxel device grid from a list of voxels.
    * Added cuda/CudaUtils.h with several cuda utility functions.
    * Added GpuTimer for timing of kernels in a specific cuda stream.
    * Added cudaIndexToGrid that converts IndexGrids into regular Grids.
    * Added cudaSignedFloodFill that performs signed-flood filling on the GPU.
    * Added cudaAddBlindData that adds blind data to an existing grid on the GPU.
    * Added cudaGridChecksum that computes checksums of device grids.
    * Added cudaGridHandle that handles grids on the GPU.
    * Added cudaNodeManager that constructs a NodeManager on the GPU.
    * Added build type Points and GridType::PointIndex for point grids.
    * Added GridType::Vec3u16 and GridType::Vec3u8 for compressed coordinates.
    * Added PrefixSum.h for concurrent computation of prefix sum on the CPU.
    API Changes:
    * Version 32.6.0 (ABI is unchanged).
    * Transition from C++11 to C++17
    * Vec3R is deprecated, please use Vec3d instead.
    * nanoToOpenVDB now takes the index of a NanoVDB in a GridHandle.
    * GridData, InternalData and LeafData are now public.
    * GridMetaData can be copied.
    * Improvements to GridBuilder.h that allows construction of grids on CPU.
    * GridHandle's move c-tor now requires the GridBuffer to contain a valid grid.
    * Moved CudaDeviceBuffer.h to cuda/CudaDeviceBuffer.h.
    * New API for acceleration of custom random-access with ValueAccessors.
    * Added BitFlags class for convenient bit-mask operations.
    * Added Vec2/3 min/maxComponentAtomic GPU methods.
    * Added BBox::expandAtomic and BBox::intersectAtomic.
    * Added Coord::expandAtomic.
    * Added Map constructors.
    * Added Mask::DenseIterator, Mask::setOnAtomic, and Mask::setOffAtomic.
    * InternalNode::ChildIterator is now const-correct.
    * Added several new NanoVDB Build Traits.
    * Syncing PNanoVDB.h with NanoVDB.h.
    Build:
    * Support for OpenEXR 2.X has been removed.
    * Better support for building with external package configurations with CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON.
    Python:
    * Removed Python 2 support.
    * Removed explicit bindings for Math types.
    * Improved type casting for TypedMetadata.
- Disable static library build, instead of deleting it
- Remove many unused build dependencies
- Enable nanovdb as build conditional
- Update to version 9.0.0
  * This version introduces ABI changes relative to older major
    releases, so to preserve ABI compatibility it might be
    necessary to define the macro OPENVDB_ABI_VERSION_NUMBER=N,
    where, for example, N is 7 for Houdini 18.5 and 8 for Houdini
    19.0.
  * Official release of NanoVDB, which for the first time offers
    GPU support for static sparse volumes in OpenVDB. See the
    documentation for details.
  * Faster build times from support for explicit template
    instantiation, which is enabled by default for most of the
    tools.
  * Added support for OpenEXR 3. This is contributed by Cary
    Phillips.
  * Added transient data to the RootNode, InternalNode, and
    LeafNode.
  New features:
  * NanoVDB, which for the first time offers GPU support for static
    sparse volumes in OpenVDB.
  Improvements:
  * Added tools::countActiveLeafVoxels(),
    tools::countInactiveVoxels(), tools::countInactiveLeafVoxels()
    and tools::activeTiles() to perform multi-threaded counting.
    The Tree methods now use these implementations.
  * Moved from the deprecated TBB task scheduler to TBB arenas.
    Various methods now respect the TBB arena state they were
    invoked from.
  * Introduced a new thread/Threading.h header to consolidate calls
    to third-party threading methods.
  * Minor performance improvements to dilation calls in fast
    sweeping algorithms.
  * Added hsvtogrb() and rgbtohsv() AX helper functions for
    converting hue, saturation and value inputs to RGB values and
    vice-versa.
  * PointDataGrid conversion can now be performed using 32-bit
    float arrays.
  * Improved support for size_t grid types on systems where size_t
    is a unique type. [Contributed by Brecht Van Lommel]
  * Add support for dilation in one direction and extending a field
    in one direction in fast sweeping algorithms.
  * Added PNG support to vdb_render which can be enabled with
    during CMake with -DUSE_PNG=ON.
  * Explicit template instantiation has been enabled by default for
    most of the tools. This pre-compiles template instantiations
    into the core library to reduce the time spent compiling code
    in downstream libraries or applications.
  * Added a python binding for OpenVDB AX which allows you to
    invoke accelerated AX code from the python module.
  Bug Fixes:
  * Fixed a bug where ax::run() would crash if it could not parse a
    single statement.
  ABI changes:
  * Added transient data to the RootNode, InternalNode, and
    LeafNode.
  API changes:
  * DynamicNodeManager can now set one grain size for threading
    across leaf nodes and another for threading across non-leaf
    nodes.
  * StringGrid and StringTrees are deprecated.
  * The NullInterrupter is now a virtual base class to help reduce
    compile-time instantiation cost.
  Houdini:
  * Fix crash in VDB Combine in Copy B mode if the second input has
    more VDBs than the first.
  * VDB Vector Merge SOP is now VDB Vector From Scalar SOP to
    distinguish it from the VDB Merge SOP. It keeps the same
    internal name so this is merely a label change.
  * Add option to pass in OPENVDB_DSO_NAMES to CMake to configure
    which Houdini DSOs are compiled.
  * VDB Activate SOP now has an option for the expansion pattern to
    use for dilation.
  * The label for Voxels to Expand is now Expand Voxels to match
    Houdini.
  * Fix bug to allow VDB LOD SOPs to be chained together.
  * SOP Extrapolate supports dilation in one direction and
    extending a field in one (domain) direction.
  * The default OpenVDB ABI is now 8 for Houdini versions > 18.5.
  * VDB Visualize Tree SOP is now multi-threaded and provides
    slicing and color remapping.
  * A new HoudiniInterrupter has been added that derives from the
    NullInterrupter and the Interrupter is now deprecated. All the
    SOPs have been updated to use the new HoudiniInterrupter.
  * Add a sanitizer in SOP OpenVDB Extrapolate when expanding a
    narrow-band level-set with a dilation value of 0, which will
    result in no operation.
  Build:
  * Added support for TBB 2021.
  * Enabled the OPENVDB_FUTURE_DEPRECATION variable by default to
    warn on upcoming deprecations.
  * Introduced a OPENVDB_DOXYGEN_INTERNAL CMake variable which is
    ON by default and removes the majority of internal namespaces
    from the generated doxygen.
  * Improved the doxygen deprecation listings, folder layouts and
    fixes issues when using later versions of doxygen.
  * Build fixes for MinGW on Windows. [Contributed by Brecht
    Sanders]
  * Added support for OpenEXR 3. [Contributed by Cary Phillips]
  * Added an OPENVDB_NAMESPACE_SUFFIX CMake string option which
    provides the ability to customise the VDB namespace.
  * The Python Module now appends the base directory defined by
    Python_SITELIB to the default install path (typically
    dist-packages or site-packages). [Contributed by Ignacio Vizzo]
  * As of this release, VFX Reference Platform 2019 is no longer
    supported. CMake now issues deprecation warnings for 2020 VFX
    Reference Platform version dependencies.
  * Build fixes for OpenVDB AX with C++17 and greater.
  * Bumped the new blosc version future minimum to 1.17.0.
  * OpenEXR is now optional for vdb_render. It can be enabled with
    -DUSE_EXR=ON.
- Renenable vdb_render without OpenEXR
- Update constraints and limit memory for parallel build jobs
- Raise minimum c++ standard to 14
- do not depend on OpenEXR (do not build vdb_render) [bsc#1189344]
- Update to version 8.1.0
  * A lot new features in the tools namespace are added
  * Introduced Active Tile Streaming for volumes kernels.
  * Significant performance improvements to AX volume kernels
  * Significant performance improvements to large dilations with
    tools::dilateActiveValues.
  * Added an optional argument to Tree::topologyUnion which
    preserves active tiles on the destination tree should they
    overlap leaf nodes from the source tree.
  * Reduced the time spent in the hot path of initialize and
    uninitialize by leveraging atomics with double-checked locks.
  * Support TBB 2021
  * Significant performance improvements to tools::activate and
    tools::deactivate through use of the DynamicNodeManager to
    parallelize tile processing.
  * Added degree() and radians() AX helper functions for converting
    radians to degrees and vice versa, respectively.
  * Added adjoint(), cofactor() and inverse() AX matrix functions.
  * Added sort(), argsort(), isfinite(), isinf() and isnan() AX functions
  * Add missing 8-bit and 16-bit attribute type registration.
  * Fixed a crash in OpenVDB AX when declaring arrays with non-scalar elements
  * Fixed a bug in OpenVDB AX which would cause an error when
    multiplying a vec3 by a mat4.
  * Fixed a bug in AX which could cause string allocations in loops
    to overflow the stack
  * Fixed a bug where the ValueOff iterator for the AX VolumeExecutable
    could remove child branches of a VDB tree.
  * Fixed a crash in the AX Houdini SOP with an empty PointDataGrid input.
  * Fixed a crash when calling openvdb::points::pointOffsets with an
    empty PointDataGrid input.
  * Fixed a bug in the new CSG intersection merge algorithm where data
    outside of the intersection region was not being removed.
  * Fixed multiple memory leaks
  * API changes:
    * Restructured the internals of Morphology.h and moved tools::activate
      and tools::deactivate to a new header, Activate.h.
    * Deprecated tools::dilateVoxels and tools::erodeVoxels in favour of
      new morphology methods.
    * The tools::Film class no longer has a saveExr method in any build
      configuration.
    * Added ability to run tools::activate and tools::deactivate single-threaded.  
    * Grid::isTreeUnique is now virtual as of ABI=8 so that it can be accessed
      from the GridBase.
    * Private method RootNode::getChildCount() has been removed as of ABI=8.
    * Mark map classes and functions as final for ABI=8 where beneficial to allow
      devirtualization optimization.
    * As of ABI 8, Vector, Matrix and Quaternion types now satisfy the Trivial Type
      requirement. Their empty constructors and copy constructors have been removed
    * As of ABI 8, removed an unnecessary specialization of NodeUnion and CopyTraits
      from NodeUnion.h. Replaced std::is_pod usage with std::is_trivially_copyable
    * As of ABI 8, PointDataGrids use the union NodeUnion specialization,
      reducing the memory footprint of their topology by 50%.
    * Removed a number of deprecated point, volume and AX methods.
    * Deprecated tree::LeafManager::getNodes.
    * Deprecated Tree::visitActiveBBox, Tree::visit and Tree::visit2 methods
    * Removed tools::CsgVisitorBase, tools::CsgVisitorUnion,
      tools::CsgVisitorIntersection and tools::CsgVisitorDifference.
    * Moved openvdb::TypeList from Types.h into its own header TypeList.h
  * Full changes: https://academysoftwarefoundation.github.io/openvdb/changes.html#v8_1_0_changes
- update to 7.1.0:
   - Added a novel parallel sparse FastSweeping class that outperforms our
      existing techniques for computing signed distance fields in addition to
      supporting velocity extension.
    - Added tools::fogToSdf which converts a scalar (fog) volume into a signed
      distance field.
    - Added tools::sdfToSdf which re-normalizes a signed distance field;
    - Added tools::fogToExt which extends an arbitrary field (e.g. velocity)
      off the iso-surface of a scalar (fog) volume.
    - Added tools::sdfToExt which extends an arbitrary field (e.g. velocity)
      off the iso-surface of a signed distance field.
    - Added tools::fogToSdfAndExt which computes a signed distance and extends
      an arbitrary field (e.g. velocity) off the iso-surface of a signed
      distance field.
    - Added tools::fogToSdfAndExt which re-normalizes a signed distance and
      extends an arbitrary field (e.g. velocity) off the iso-surface of a
      signed distance field.
    - Added tools::dilateSdf which dilates a signed distance field.
    - Added tools::maskSdf which extends an existing signed distance into a
      user-defined mask.
    - Added Grid::isTreeUnique() to tell if the tree is shared with another
      grid.
    - Added PointDataLeafNode::stealAttributeSet() and
      AttributeSet::removeAttribute() for releasing ownership of attribute
      data.
    - Added AttributeSet::Descriptor::groupIndexCollision() for detecting
      group index collisions when attempting to merge two Descriptors.
    - Added RootNode::childCount(), InternalNode::childCount() and
      LeafNode::childCount() to count the number of immediate child nodes that
      exist below the current node.
    Improvements:
    - Added GroupWriteHandle::setUnsafe() for faster performance when the group
      array is known to be in-core and non-uniform.
    - Add support for default value metadata when creating AttributeArrays or
      appending to an AttributeSet.
    - Added new group inspection methods to the AttributeSet::Descriptor.
    - Introduced a StringMetaCache class for convenient string attribute
      metadata lookup and performed some minor optimizations.
    - Removed redundant floor in points::floatingPointToFixedPoint.
    - Add gitignore to repository root.
    - Removed some logic for compilers older than Visual Studio 2019.
    - Add a new Houdini ABI test binary.
    - Fixed an indexing typo in tools::Filter. [Contributed by Yuanming Hu]
    - Removed redundant null pointer checks. [Contributed by Kuba Roth]
    - Added support for vdb_view on Windows. Requires GLEW.
    - Removed support for GLFW 2.
    - vdb_view now uses OPENVDB_LOG_FATAL when catching exceptions.
    - vdb_view, vdb_print and vdb_render now use std::terminate() when catching
      an unknown exception.
    - Removed Boost::thread as a dependency of vdb_view in favour of
      std::thread.
    - Removed usage of boost/integer.hpp and boost/math/constants/constants.hpp,
      the latter in favour of new openvdb math constants for pi
    - Removed usage of boost/mpl/*.hpp methods in favour of new template
      meta-programming methods on the openvdb::TypeList struct. This now
      supports get, front, back, contains, index, unique, popback, popfront
      and range removal of types.
    - Changed the tree::NodeChain implementation to use an openvdb::TypeList
      rather than a boost::mpl::vector and updated all usage of tree::NodeChain
      accordingly.
    Bug fixes:
    - Fixed a bug where grids with no active values might return true when the
      method evalActiveVoxelBoundingBox is called. The correct behavior is to
      only return true if the grid contains any active values.
    - Fixed a sign propagation bug in tools::traceExteriorBoundaries() used by
      tools::meshToVolume(). This could cause values to not be propagated across
      node boundaries, leading to voxels incorrectly being marked as inside the
      isosurface. [Contributed by Tristan Barback]
    - Fixed a rotation order bug in tools::local_util::decompose()
      that caused it to fail to decompose some matrices.
    - Fixed a bug where math::Quat::inverse() was not marked as const.
      [Contributed by Michael Tao]
    - Fixed a bug in the unit test for util::CpuTimer on Windows by using a
      more accurate sleep implementation.
- add 8G memory constraint
- add tools subpackage for the command line programs 
- Version 7.0.0 - December 6, 2019
      Some changes in this release (see "ABI changes" below) alter
      the grid ABI so that it is incompatible with earlier versions
      of the OpenVDB library, such as the ones built into Houdini
      up to and including Houdini 18.0. To preserve ABI compatibility,
      when compiling OpenVDB or any dependent code define the macro
      OPENVDB_ABI_VERSION_NUMBER=N, where, for example, N is 5 for
      Houdini 17.0 and 17.5 and 6 for Houdini 18.0.
      As of this release, a C++14 compiler is required and the oldest
      supported Houdini version is 17.0.
    New features:
    - LevelSetMeasure can now compute multiple types of curvatures (averge and total
      Gaussian and mean curvature) as well as Euler characteristic and genus of
      level set surfaces.
    - Most stencil classes now have an intersection method that detcts the axial
      directions of zero-crossings (as oppose to the existing boolean intersection test).
    - The CurvatureStencil can now compute Gaussian and principal
      curvatures (in addition to mean curvature).
    - Added Tree::nodeCount, which counts the number and type of nodes
      in a tree very efficiently.
    - Added new RootNode::addChild() and InternalNode::addChild() methods to
      allow the insertion of child nodes directly.
    Improvements:
    - The minimum ABI for OpenVDB is now always enforced through CMake
      separately from other minimum dependency version variables.
    - Added support for CMake 3.12 compatible Xxx_ROOT variables.
    - Replaced the CMake USE_SYSTEM_LIBRARY_PATHS option with
      DISABLE_CMAKE_SEARCH_PATHS and removed the hard coded list of
      SYSTEM_LIBRARY_PATHS in favor of using CMake's default search procedure.
      SYSTEM_LIBRARY_PATHS can still be used as a global list of paths for all
      dependency searches.
    - Improvements to OpenVDB's CMake module setup order in regards to CMake
      policy, minimum version and project calls.
    - Replaced occurrences of boost::scoped_array with std::unique_ptr.
    - Added an OPENVDB_SIMD option to CMake to optionally define SSE4.2 and
      AVX compiler flags, this is switched off by default.
    - Made various small changes to improve Visual Studio compatiblity and
      deprecate some logic for compilers older than Visual Studio 2017.
    - Standardized CMake install locations using GNUInstallDirs. Importantly,
      this changes the default library installation folder from lib to lib64
      on some 64-bit systems, or to lib/multiarch-tuple on Debian
      [Contributed by David Aguilar]
    - Added SIMD intrinsics to a few common NodeMask methods.
      [Contributed by Konstantin]
    Bug fixes:
    - Fixed a bug in FindJemalloc.cmake where paths were not being handled
      correctly.
    - Fixed a Windows build issue in openvdb_render.
    - Fixed a non deterministic threading bug in tools::meshToVolume() during
      polygon voxelization which could result in different distance values.
    ABI changes:
    - OpFactory destructor is now virtual as of ABI=7
    - Added new virtual methods for copying const grids and replacing
      the metadata and/or the transform - GridBase::copyGridReplacingMetadata,
      GridBase::copyGridReplacingTransform and
      GridBase::copyGridReplacingMetadataAndTransform.
    - AttributeArray copy constructor is now thread-safe.
    API changes:
    - VolumeToMesh::pointList() and VolumeToMesh::polygonPoolList() now return
      a std::unique_ptr instead of a boost::scoped_array.
    - AttributeArray::copyUncompressed() is now deprecated.
    Python:
    - Removed the requirement of CMake 3.14 for NumPy usage.
    - Added support for Boost versions 1.65 and later when building
      the Python module with NumPy support through CMake.
    - Improved CMake Python3 support.
    - The Python Module is now disabled by default in CMake.
    Houdini:
    - Fixed a bug in the Points Convert SOP during conversion from
      Houdini geometry to OpenVDB Points, where point group information
      could end up corrupted or cause a crash with non-contiguous
      point offsets (mesh inputs).
    - Threaded the population of point group memberships during conversion
      from Houdini geometry to OpenVDB Points
    - Added logic to the Rasterize Points SOP to suppress the output of
      non-finite attribute values due to subnormal input densities.
    - Introduced a position compression option to the Scatter SOP for VDB
      Points and default to 16-bit fixed point.
- adjust to so version 7_0
- Update to Version 6.2.1 - September 30, 2019
    Bug fixes:
    - Fixed a crash that arose from an inadvertent ABI change of an I/O class
      with the 6.2.0 release.  The crash occured when attempting to write out
      a point data grid using an I/O routine from a different version of
      OpenVDB than the one with which the grid was authored and when
      one of those OpenVDB versions was 6.2.0.
- Update to Version 6.2.0 - September 18, 2019
    New features:
    - Added tools::FindActiveValues, which counts the active values
      in a tree that intersect a given bounding box.
    - Added io::DelayedLoadMetadata, which stores mask offsets and compression
      sizes on write to accelerate delayed load reading.
    Improvements:
    - LeafNode::modifyValue() and LeafNode::modifyValueAndActiveState()
      now modify voxel values in place for improved performance.
    - Added math::isInfinite() and math::isNan() to resolve Visual Studio
      compatibility issues with integer types.
    - Made minor performance improvements to moving and filtering VDB points.
    - Improved performance related to a mutex contention when appending
      multiple AttributeArrays in parallel through various point operations.
    - Significantly improved the performance of createLevelSetSphere()
      using threading.
    - Improved directory and file path lookups of some CMake commands in
      the root CMakeLists.txt
      [Reported by Daniel Elliott]
    - Improved CMake support for GLFW versions 3.1 and later.
    - FindOpenVDB.cmake now correctly propagates CXX version requirements.
    - Added CMake support for linking against Jemalloc and TBB malloc
      and enabled Jemalloc by default for Linux and non-Maya builds
      and TBB malloc for all other builds.
    - Added a USE_COLORED_OUTPUT option to CMake to display compiler output
      in color.
    - Added an OPENVDB_CODE_COVERAGE option to CMake.
    - CMake now automatically detects and configures the CXX11 ABI requirement
      for Houdini builds.
    - CMake now issues deprecation warnings for 2017 VFX Reference Platform
      version dependencies. In particular, C++11-only compilers are now
      deprecated; OpenVDB 7.0 will require a C++14-compatible compiler.
    Bug fixes:
    - Replaced std::vector with std::deque as the underlying container
      for util::PagedArray, to address a rare crash when reading
      from multiple threads while writing from another thread.
    - Fixed a bug that could cause an empty CoordBBox to report nonzero volume.
    - Fixed a bug in tools::computeScalarPotential() that could produce
      a corrupt result due to invalid memory access.
      [Reported by Edwin Braun]
    - Partially reverted tools::ClosestSurfacePoint's distance calculations
      to their pre-OpenVDB 5.0 behavior to address a bug in the
      fillWithSpheres() tool that caused generated spheres to sometimes
      extend outside the target volume.
    - CMake now correctly sets rpaths for the unit test binary.
    - Addressed a Valgrind warning by allocating the AttributeArray registry
      using a Meyers singleton.
      [Contributed by Autodesk]
    ABI changes:
    - ABI versions 3 and older are now deprecated, and support for them will be
      removed in a future release. Until then, define the macro
      OPENVDB_USE_DEPRECATED_ABI (or set the CMake OPENVDB_USE_DEPRECATED_ABI
      option to ON) to suppress deprecation messages when compiling OpenVDB or
      dependent code.
    API changes:
    - Changed points::RandomLeafFilter::LeafMap from a std::map to
      a std::unordered_map.
    - Removed the TableT template argument from util::PagedArray.
      The table type is now hardcoded to std::deque.
    - The minimum supported version of GLFW is now 3.1.
    Python:
    - CMake now always produces a .so for the Python module on Unix
      and Linux platforms.
    - Fixed a compile-time error when building the Python module for Python 3.
      [Reported by yurivict]
    Houdini:
    - OpenVDB SOPs are now displayed in an ASWF sub-menu of the VDB tab menu.
    - Added API documentation and examples.
    - Added openvdb_houdini::GEOvdbApply(), which invokes a functor
      on a VDB primitive if the resolved grid type is a member of
      a given type list.
    - Fixed a regression in the Fill SOP that caused it to modify VDBs
      in the input detail.
    - The Combine SOP no longer crashes in Copy B mode when the destination
      is not a VDB.
    - Added a houdini_utils::OpFactory::addSpareData() method
      and addOperatorSpareData() and getOperatorSpareData() functions
      to manage spare data associated with operator types.
    - Added an opsparedata HScript command and hou.NodeType.spareData()
      and hou.NodeType.spareDataDict() methods to retrieve spare data
      associated with operator types.
    - Added a pythonrc.py startup script to set the tab menu visibility
      of nodes and their native Houdini equivalents, based on an
      OPENVDB_OPHIDE_POLICY environment variable.
    - Added a houdini_utils::OpFactory::setInvisible() method to hide nodes
      from tab menus.
    - Added an OpenVDBOpFactory::setNativeName() method to pair OpenVDB nodes
      with their native Houdini equivalents.
    - Added a houdini_utils::OpPolicy::getTabSubMenuPath() method to allow
      OpPolicy subclasses to provide their own tab sub-menu path.
    - OpenVDB nodes now override OP_Operator::getVersion() to return
      a version string of the form "vdb6.2.0 houdini18.0.222".
- Clean up spec file, remove superfluous parameterization 
- Replace cmake(TBB) BuildRequires with equivalent tbb-devel, the
  latter is also available on Leap 15.x.
- Trim bias and metadata redundancies from description.
- Then openSUSE %ix86 platforms are not guaranteed to have SSE.
- version 6.1.0: initial build
Benjamin Greiner's avatar Benjamin Greiner (bnavigator) accepted request 1140395 from Benjamin Greiner's avatar Benjamin Greiner (bnavigator) (revision 28)
- Disable 32-bit builds "ld error: access beyond end of merged
  section"
- Minimum gcc-c++ version is 9.3.1, force gcc10 on 15.x
- Update to 11.0.0:
  * OpenVDB:
    Improvements:
    * Removed use of boost::any in favor of std::any.
    Bug Fixes:
    * Fix potential crash reading corrupt .vdb files with invalid blosc or zip chunks.
  * NanoVDB:
    Highlights:
    * Several new tools to generate and modify NanoVDB grids on the GPU.
    * New file format that supports streaming of raw grid buffers.
    New Features:
    * New memory efficient GridClass::IndexGrid that separates values from tree
    * 4 new GridTypes (Index, OnIndex, IndexMask, OnIndexMask) used by IndexGrid
    * Added createNanoGrid that replaces older conversion methods in GridBuilder.h, IndexGridBuilder.h and OpenToNanoVDB.h
    * Added cudaPointsToGrid that constructs a point device grid from a list of points.
    * Added cudaVoxelsToGrid that constructs a voxel device grid from a list of voxels.
    * Added cuda/CudaUtils.h with several cuda utility functions.
    * Added GpuTimer for timing of kernels in a specific cuda stream.
    * Added cudaIndexToGrid that converts IndexGrids into regular Grids.
    * Added cudaSignedFloodFill that performs signed-flood filling on the GPU.
    * Added cudaAddBlindData that adds blind data to an existing grid on the GPU.
    * Added cudaGridChecksum that computes checksums of device grids.
    * Added cudaGridHandle that handles grids on the GPU.
    * Added cudaNodeManager that constructs a NodeManager on the GPU.
    * Added build type Points and GridType::PointIndex for point grids.
    * Added GridType::Vec3u16 and GridType::Vec3u8 for compressed coordinates.
    * Added PrefixSum.h for concurrent computation of prefix sum on the CPU.
    API Changes:
    * Version 32.6.0 (ABI is unchanged).
    * Transition from C++11 to C++17
    * Vec3R is deprecated, please use Vec3d instead.
    * nanoToOpenVDB now takes the index of a NanoVDB in a GridHandle.
    * GridData, InternalData and LeafData are now public.
    * GridMetaData can be copied.
    * Improvements to GridBuilder.h that allows construction of grids on CPU.
    * GridHandle's move c-tor now requires the GridBuffer to contain a valid grid.
    * Moved CudaDeviceBuffer.h to cuda/CudaDeviceBuffer.h.
    * New API for acceleration of custom random-access with ValueAccessors.
    * Added BitFlags class for convenient bit-mask operations.
    * Added Vec2/3 min/maxComponentAtomic GPU methods.
    * Added BBox::expandAtomic and BBox::intersectAtomic.
    * Added Coord::expandAtomic.
    * Added Map constructors.
    * Added Mask::DenseIterator, Mask::setOnAtomic, and Mask::setOffAtomic.
    * InternalNode::ChildIterator is now const-correct.
    * Added several new NanoVDB Build Traits.
    * Syncing PNanoVDB.h with NanoVDB.h.
    Build:
    * Support for OpenEXR 2.X has been removed.
    * Better support for building with external package configurations with CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON.
    Python:
    * Removed Python 2 support.
    * Removed explicit bindings for Math types.
    * Improved type casting for TypedMetadata.
- Disable static library build, instead of deleting it
- Remove many unused build dependencies
- Enable nanovdb as build conditional
- Update to version 9.0.0
  * This version introduces ABI changes relative to older major
    releases, so to preserve ABI compatibility it might be
    necessary to define the macro OPENVDB_ABI_VERSION_NUMBER=N,
    where, for example, N is 7 for Houdini 18.5 and 8 for Houdini
    19.0.
  * Official release of NanoVDB, which for the first time offers
    GPU support for static sparse volumes in OpenVDB. See the
    documentation for details.
  * Faster build times from support for explicit template
    instantiation, which is enabled by default for most of the
    tools.
  * Added support for OpenEXR 3. This is contributed by Cary
    Phillips.
  * Added transient data to the RootNode, InternalNode, and
    LeafNode.
  New features:
  * NanoVDB, which for the first time offers GPU support for static
    sparse volumes in OpenVDB.
  Improvements:
  * Added tools::countActiveLeafVoxels(),
    tools::countInactiveVoxels(), tools::countInactiveLeafVoxels()
    and tools::activeTiles() to perform multi-threaded counting.
    The Tree methods now use these implementations.
  * Moved from the deprecated TBB task scheduler to TBB arenas.
    Various methods now respect the TBB arena state they were
    invoked from.
  * Introduced a new thread/Threading.h header to consolidate calls
    to third-party threading methods.
  * Minor performance improvements to dilation calls in fast
    sweeping algorithms.
  * Added hsvtogrb() and rgbtohsv() AX helper functions for
    converting hue, saturation and value inputs to RGB values and
    vice-versa.
  * PointDataGrid conversion can now be performed using 32-bit
    float arrays.
  * Improved support for size_t grid types on systems where size_t
    is a unique type. [Contributed by Brecht Van Lommel]
  * Add support for dilation in one direction and extending a field
    in one direction in fast sweeping algorithms.
  * Added PNG support to vdb_render which can be enabled with
    during CMake with -DUSE_PNG=ON.
  * Explicit template instantiation has been enabled by default for
    most of the tools. This pre-compiles template instantiations
    into the core library to reduce the time spent compiling code
    in downstream libraries or applications.
  * Added a python binding for OpenVDB AX which allows you to
    invoke accelerated AX code from the python module.
  Bug Fixes:
  * Fixed a bug where ax::run() would crash if it could not parse a
    single statement.
  ABI changes:
  * Added transient data to the RootNode, InternalNode, and
    LeafNode.
  API changes:
  * DynamicNodeManager can now set one grain size for threading
    across leaf nodes and another for threading across non-leaf
    nodes.
  * StringGrid and StringTrees are deprecated.
  * The NullInterrupter is now a virtual base class to help reduce
    compile-time instantiation cost.
  Houdini:
  * Fix crash in VDB Combine in Copy B mode if the second input has
    more VDBs than the first.
  * VDB Vector Merge SOP is now VDB Vector From Scalar SOP to
    distinguish it from the VDB Merge SOP. It keeps the same
    internal name so this is merely a label change.
  * Add option to pass in OPENVDB_DSO_NAMES to CMake to configure
    which Houdini DSOs are compiled.
  * VDB Activate SOP now has an option for the expansion pattern to
    use for dilation.
  * The label for Voxels to Expand is now Expand Voxels to match
    Houdini.
  * Fix bug to allow VDB LOD SOPs to be chained together.
  * SOP Extrapolate supports dilation in one direction and
    extending a field in one (domain) direction.
  * The default OpenVDB ABI is now 8 for Houdini versions > 18.5.
  * VDB Visualize Tree SOP is now multi-threaded and provides
    slicing and color remapping.
  * A new HoudiniInterrupter has been added that derives from the
    NullInterrupter and the Interrupter is now deprecated. All the
    SOPs have been updated to use the new HoudiniInterrupter.
  * Add a sanitizer in SOP OpenVDB Extrapolate when expanding a
    narrow-band level-set with a dilation value of 0, which will
    result in no operation.
  Build:
  * Added support for TBB 2021.
  * Enabled the OPENVDB_FUTURE_DEPRECATION variable by default to
    warn on upcoming deprecations.
  * Introduced a OPENVDB_DOXYGEN_INTERNAL CMake variable which is
    ON by default and removes the majority of internal namespaces
    from the generated doxygen.
  * Improved the doxygen deprecation listings, folder layouts and
    fixes issues when using later versions of doxygen.
  * Build fixes for MinGW on Windows. [Contributed by Brecht
    Sanders]
  * Added support for OpenEXR 3. [Contributed by Cary Phillips]
  * Added an OPENVDB_NAMESPACE_SUFFIX CMake string option which
    provides the ability to customise the VDB namespace.
  * The Python Module now appends the base directory defined by
    Python_SITELIB to the default install path (typically
    dist-packages or site-packages). [Contributed by Ignacio Vizzo]
  * As of this release, VFX Reference Platform 2019 is no longer
    supported. CMake now issues deprecation warnings for 2020 VFX
    Reference Platform version dependencies.
  * Build fixes for OpenVDB AX with C++17 and greater.
  * Bumped the new blosc version future minimum to 1.17.0.
  * OpenEXR is now optional for vdb_render. It can be enabled with
    -DUSE_EXR=ON.
- Renenable vdb_render without OpenEXR
- Update constraints and limit memory for parallel build jobs
- Raise minimum c++ standard to 14
- do not depend on OpenEXR (do not build vdb_render) [bsc#1189344]
- Update to version 8.1.0
  * A lot new features in the tools namespace are added
  * Introduced Active Tile Streaming for volumes kernels.
  * Significant performance improvements to AX volume kernels
  * Significant performance improvements to large dilations with
    tools::dilateActiveValues.
  * Added an optional argument to Tree::topologyUnion which
    preserves active tiles on the destination tree should they
    overlap leaf nodes from the source tree.
  * Reduced the time spent in the hot path of initialize and
    uninitialize by leveraging atomics with double-checked locks.
  * Support TBB 2021
  * Significant performance improvements to tools::activate and
    tools::deactivate through use of the DynamicNodeManager to
    parallelize tile processing.
  * Added degree() and radians() AX helper functions for converting
    radians to degrees and vice versa, respectively.
  * Added adjoint(), cofactor() and inverse() AX matrix functions.
  * Added sort(), argsort(), isfinite(), isinf() and isnan() AX functions
  * Add missing 8-bit and 16-bit attribute type registration.
  * Fixed a crash in OpenVDB AX when declaring arrays with non-scalar elements
  * Fixed a bug in OpenVDB AX which would cause an error when
    multiplying a vec3 by a mat4.
  * Fixed a bug in AX which could cause string allocations in loops
    to overflow the stack
  * Fixed a bug where the ValueOff iterator for the AX VolumeExecutable
    could remove child branches of a VDB tree.
  * Fixed a crash in the AX Houdini SOP with an empty PointDataGrid input.
  * Fixed a crash when calling openvdb::points::pointOffsets with an
    empty PointDataGrid input.
  * Fixed a bug in the new CSG intersection merge algorithm where data
    outside of the intersection region was not being removed.
  * Fixed multiple memory leaks
  * API changes:
    * Restructured the internals of Morphology.h and moved tools::activate
      and tools::deactivate to a new header, Activate.h.
    * Deprecated tools::dilateVoxels and tools::erodeVoxels in favour of
      new morphology methods.
    * The tools::Film class no longer has a saveExr method in any build
      configuration.
    * Added ability to run tools::activate and tools::deactivate single-threaded.  
    * Grid::isTreeUnique is now virtual as of ABI=8 so that it can be accessed
      from the GridBase.
    * Private method RootNode::getChildCount() has been removed as of ABI=8.
    * Mark map classes and functions as final for ABI=8 where beneficial to allow
      devirtualization optimization.
    * As of ABI 8, Vector, Matrix and Quaternion types now satisfy the Trivial Type
      requirement. Their empty constructors and copy constructors have been removed
    * As of ABI 8, removed an unnecessary specialization of NodeUnion and CopyTraits
      from NodeUnion.h. Replaced std::is_pod usage with std::is_trivially_copyable
    * As of ABI 8, PointDataGrids use the union NodeUnion specialization,
      reducing the memory footprint of their topology by 50%.
    * Removed a number of deprecated point, volume and AX methods.
    * Deprecated tree::LeafManager::getNodes.
    * Deprecated Tree::visitActiveBBox, Tree::visit and Tree::visit2 methods
    * Removed tools::CsgVisitorBase, tools::CsgVisitorUnion,
      tools::CsgVisitorIntersection and tools::CsgVisitorDifference.
    * Moved openvdb::TypeList from Types.h into its own header TypeList.h
  * Full changes: https://academysoftwarefoundation.github.io/openvdb/changes.html#v8_1_0_changes
- update to 7.1.0:
   - Added a novel parallel sparse FastSweeping class that outperforms our
      existing techniques for computing signed distance fields in addition to
      supporting velocity extension.
    - Added tools::fogToSdf which converts a scalar (fog) volume into a signed
      distance field.
    - Added tools::sdfToSdf which re-normalizes a signed distance field;
    - Added tools::fogToExt which extends an arbitrary field (e.g. velocity)
      off the iso-surface of a scalar (fog) volume.
    - Added tools::sdfToExt which extends an arbitrary field (e.g. velocity)
      off the iso-surface of a signed distance field.
    - Added tools::fogToSdfAndExt which computes a signed distance and extends
      an arbitrary field (e.g. velocity) off the iso-surface of a signed
      distance field.
    - Added tools::fogToSdfAndExt which re-normalizes a signed distance and
      extends an arbitrary field (e.g. velocity) off the iso-surface of a
      signed distance field.
    - Added tools::dilateSdf which dilates a signed distance field.
    - Added tools::maskSdf which extends an existing signed distance into a
      user-defined mask.
    - Added Grid::isTreeUnique() to tell if the tree is shared with another
      grid.
    - Added PointDataLeafNode::stealAttributeSet() and
      AttributeSet::removeAttribute() for releasing ownership of attribute
      data.
    - Added AttributeSet::Descriptor::groupIndexCollision() for detecting
      group index collisions when attempting to merge two Descriptors.
    - Added RootNode::childCount(), InternalNode::childCount() and
      LeafNode::childCount() to count the number of immediate child nodes that
      exist below the current node.
    Improvements:
    - Added GroupWriteHandle::setUnsafe() for faster performance when the group
      array is known to be in-core and non-uniform.
    - Add support for default value metadata when creating AttributeArrays or
      appending to an AttributeSet.
    - Added new group inspection methods to the AttributeSet::Descriptor.
    - Introduced a StringMetaCache class for convenient string attribute
      metadata lookup and performed some minor optimizations.
    - Removed redundant floor in points::floatingPointToFixedPoint.
    - Add gitignore to repository root.
    - Removed some logic for compilers older than Visual Studio 2019.
    - Add a new Houdini ABI test binary.
    - Fixed an indexing typo in tools::Filter. [Contributed by Yuanming Hu]
    - Removed redundant null pointer checks. [Contributed by Kuba Roth]
    - Added support for vdb_view on Windows. Requires GLEW.
    - Removed support for GLFW 2.
    - vdb_view now uses OPENVDB_LOG_FATAL when catching exceptions.
    - vdb_view, vdb_print and vdb_render now use std::terminate() when catching
      an unknown exception.
    - Removed Boost::thread as a dependency of vdb_view in favour of
      std::thread.
    - Removed usage of boost/integer.hpp and boost/math/constants/constants.hpp,
      the latter in favour of new openvdb math constants for pi
    - Removed usage of boost/mpl/*.hpp methods in favour of new template
      meta-programming methods on the openvdb::TypeList struct. This now
      supports get, front, back, contains, index, unique, popback, popfront
      and range removal of types.
    - Changed the tree::NodeChain implementation to use an openvdb::TypeList
      rather than a boost::mpl::vector and updated all usage of tree::NodeChain
      accordingly.
    Bug fixes:
    - Fixed a bug where grids with no active values might return true when the
      method evalActiveVoxelBoundingBox is called. The correct behavior is to
      only return true if the grid contains any active values.
    - Fixed a sign propagation bug in tools::traceExteriorBoundaries() used by
      tools::meshToVolume(). This could cause values to not be propagated across
      node boundaries, leading to voxels incorrectly being marked as inside the
      isosurface. [Contributed by Tristan Barback]
    - Fixed a rotation order bug in tools::local_util::decompose()
      that caused it to fail to decompose some matrices.
    - Fixed a bug where math::Quat::inverse() was not marked as const.
      [Contributed by Michael Tao]
    - Fixed a bug in the unit test for util::CpuTimer on Windows by using a
      more accurate sleep implementation.
- add 8G memory constraint
- add tools subpackage for the command line programs 
- Version 7.0.0 - December 6, 2019
      Some changes in this release (see "ABI changes" below) alter
      the grid ABI so that it is incompatible with earlier versions
      of the OpenVDB library, such as the ones built into Houdini
      up to and including Houdini 18.0. To preserve ABI compatibility,
      when compiling OpenVDB or any dependent code define the macro
      OPENVDB_ABI_VERSION_NUMBER=N, where, for example, N is 5 for
      Houdini 17.0 and 17.5 and 6 for Houdini 18.0.
      As of this release, a C++14 compiler is required and the oldest
      supported Houdini version is 17.0.
    New features:
    - LevelSetMeasure can now compute multiple types of curvatures (averge and total
      Gaussian and mean curvature) as well as Euler characteristic and genus of
      level set surfaces.
    - Most stencil classes now have an intersection method that detcts the axial
      directions of zero-crossings (as oppose to the existing boolean intersection test).
    - The CurvatureStencil can now compute Gaussian and principal
      curvatures (in addition to mean curvature).
    - Added Tree::nodeCount, which counts the number and type of nodes
      in a tree very efficiently.
    - Added new RootNode::addChild() and InternalNode::addChild() methods to
      allow the insertion of child nodes directly.
    Improvements:
    - The minimum ABI for OpenVDB is now always enforced through CMake
      separately from other minimum dependency version variables.
    - Added support for CMake 3.12 compatible Xxx_ROOT variables.
    - Replaced the CMake USE_SYSTEM_LIBRARY_PATHS option with
      DISABLE_CMAKE_SEARCH_PATHS and removed the hard coded list of
      SYSTEM_LIBRARY_PATHS in favor of using CMake's default search procedure.
      SYSTEM_LIBRARY_PATHS can still be used as a global list of paths for all
      dependency searches.
    - Improvements to OpenVDB's CMake module setup order in regards to CMake
      policy, minimum version and project calls.
    - Replaced occurrences of boost::scoped_array with std::unique_ptr.
    - Added an OPENVDB_SIMD option to CMake to optionally define SSE4.2 and
      AVX compiler flags, this is switched off by default.
    - Made various small changes to improve Visual Studio compatiblity and
      deprecate some logic for compilers older than Visual Studio 2017.
    - Standardized CMake install locations using GNUInstallDirs. Importantly,
      this changes the default library installation folder from lib to lib64
      on some 64-bit systems, or to lib/multiarch-tuple on Debian
      [Contributed by David Aguilar]
    - Added SIMD intrinsics to a few common NodeMask methods.
      [Contributed by Konstantin]
    Bug fixes:
    - Fixed a bug in FindJemalloc.cmake where paths were not being handled
      correctly.
    - Fixed a Windows build issue in openvdb_render.
    - Fixed a non deterministic threading bug in tools::meshToVolume() during
      polygon voxelization which could result in different distance values.
    ABI changes:
    - OpFactory destructor is now virtual as of ABI=7
    - Added new virtual methods for copying const grids and replacing
      the metadata and/or the transform - GridBase::copyGridReplacingMetadata,
      GridBase::copyGridReplacingTransform and
      GridBase::copyGridReplacingMetadataAndTransform.
    - AttributeArray copy constructor is now thread-safe.
    API changes:
    - VolumeToMesh::pointList() and VolumeToMesh::polygonPoolList() now return
      a std::unique_ptr instead of a boost::scoped_array.
    - AttributeArray::copyUncompressed() is now deprecated.
    Python:
    - Removed the requirement of CMake 3.14 for NumPy usage.
    - Added support for Boost versions 1.65 and later when building
      the Python module with NumPy support through CMake.
    - Improved CMake Python3 support.
    - The Python Module is now disabled by default in CMake.
    Houdini:
    - Fixed a bug in the Points Convert SOP during conversion from
      Houdini geometry to OpenVDB Points, where point group information
      could end up corrupted or cause a crash with non-contiguous
      point offsets (mesh inputs).
    - Threaded the population of point group memberships during conversion
      from Houdini geometry to OpenVDB Points
    - Added logic to the Rasterize Points SOP to suppress the output of
      non-finite attribute values due to subnormal input densities.
    - Introduced a position compression option to the Scatter SOP for VDB
      Points and default to 16-bit fixed point.
- adjust to so version 7_0
- Update to Version 6.2.1 - September 30, 2019
    Bug fixes:
    - Fixed a crash that arose from an inadvertent ABI change of an I/O class
      with the 6.2.0 release.  The crash occured when attempting to write out
      a point data grid using an I/O routine from a different version of
      OpenVDB than the one with which the grid was authored and when
      one of those OpenVDB versions was 6.2.0.
- Update to Version 6.2.0 - September 18, 2019
    New features:
    - Added tools::FindActiveValues, which counts the active values
      in a tree that intersect a given bounding box.
    - Added io::DelayedLoadMetadata, which stores mask offsets and compression
      sizes on write to accelerate delayed load reading.
    Improvements:
    - LeafNode::modifyValue() and LeafNode::modifyValueAndActiveState()
      now modify voxel values in place for improved performance.
    - Added math::isInfinite() and math::isNan() to resolve Visual Studio
      compatibility issues with integer types.
    - Made minor performance improvements to moving and filtering VDB points.
    - Improved performance related to a mutex contention when appending
      multiple AttributeArrays in parallel through various point operations.
    - Significantly improved the performance of createLevelSetSphere()
      using threading.
    - Improved directory and file path lookups of some CMake commands in
      the root CMakeLists.txt
      [Reported by Daniel Elliott]
    - Improved CMake support for GLFW versions 3.1 and later.
    - FindOpenVDB.cmake now correctly propagates CXX version requirements.
    - Added CMake support for linking against Jemalloc and TBB malloc
      and enabled Jemalloc by default for Linux and non-Maya builds
      and TBB malloc for all other builds.
    - Added a USE_COLORED_OUTPUT option to CMake to display compiler output
      in color.
    - Added an OPENVDB_CODE_COVERAGE option to CMake.
    - CMake now automatically detects and configures the CXX11 ABI requirement
      for Houdini builds.
    - CMake now issues deprecation warnings for 2017 VFX Reference Platform
      version dependencies. In particular, C++11-only compilers are now
      deprecated; OpenVDB 7.0 will require a C++14-compatible compiler.
    Bug fixes:
    - Replaced std::vector with std::deque as the underlying container
      for util::PagedArray, to address a rare crash when reading
      from multiple threads while writing from another thread.
    - Fixed a bug that could cause an empty CoordBBox to report nonzero volume.
    - Fixed a bug in tools::computeScalarPotential() that could produce
      a corrupt result due to invalid memory access.
      [Reported by Edwin Braun]
    - Partially reverted tools::ClosestSurfacePoint's distance calculations
      to their pre-OpenVDB 5.0 behavior to address a bug in the
      fillWithSpheres() tool that caused generated spheres to sometimes
      extend outside the target volume.
    - CMake now correctly sets rpaths for the unit test binary.
    - Addressed a Valgrind warning by allocating the AttributeArray registry
      using a Meyers singleton.
      [Contributed by Autodesk]
    ABI changes:
    - ABI versions 3 and older are now deprecated, and support for them will be
      removed in a future release. Until then, define the macro
      OPENVDB_USE_DEPRECATED_ABI (or set the CMake OPENVDB_USE_DEPRECATED_ABI
      option to ON) to suppress deprecation messages when compiling OpenVDB or
      dependent code.
    API changes:
    - Changed points::RandomLeafFilter::LeafMap from a std::map to
      a std::unordered_map.
    - Removed the TableT template argument from util::PagedArray.
      The table type is now hardcoded to std::deque.
    - The minimum supported version of GLFW is now 3.1.
    Python:
    - CMake now always produces a .so for the Python module on Unix
      and Linux platforms.
    - Fixed a compile-time error when building the Python module for Python 3.
      [Reported by yurivict]
    Houdini:
    - OpenVDB SOPs are now displayed in an ASWF sub-menu of the VDB tab menu.
    - Added API documentation and examples.
    - Added openvdb_houdini::GEOvdbApply(), which invokes a functor
      on a VDB primitive if the resolved grid type is a member of
      a given type list.
    - Fixed a regression in the Fill SOP that caused it to modify VDBs
      in the input detail.
    - The Combine SOP no longer crashes in Copy B mode when the destination
      is not a VDB.
    - Added a houdini_utils::OpFactory::addSpareData() method
      and addOperatorSpareData() and getOperatorSpareData() functions
      to manage spare data associated with operator types.
    - Added an opsparedata HScript command and hou.NodeType.spareData()
      and hou.NodeType.spareDataDict() methods to retrieve spare data
      associated with operator types.
    - Added a pythonrc.py startup script to set the tab menu visibility
      of nodes and their native Houdini equivalents, based on an
      OPENVDB_OPHIDE_POLICY environment variable.
    - Added a houdini_utils::OpFactory::setInvisible() method to hide nodes
      from tab menus.
    - Added an OpenVDBOpFactory::setNativeName() method to pair OpenVDB nodes
      with their native Houdini equivalents.
    - Added a houdini_utils::OpPolicy::getTabSubMenuPath() method to allow
      OpPolicy subclasses to provide their own tab sub-menu path.
    - OpenVDB nodes now override OP_Operator::getVersion() to return
      a version string of the form "vdb6.2.0 houdini18.0.222".
- Clean up spec file, remove superfluous parameterization 
- Replace cmake(TBB) BuildRequires with equivalent tbb-devel, the
  latter is also available on Leap 15.x.
- Trim bias and metadata redundancies from description.
- Then openSUSE %ix86 platforms are not guaranteed to have SSE.
- version 6.1.0: initial build
Benjamin Greiner's avatar Benjamin Greiner (bnavigator) accepted request 1140386 from Michael Vetter's avatar Michael Vetter (jubalh) (revision 23)
Fixed changelog mistake.
32bit build already failed before. Not sure what's wrong there.

- Update to 11.0.0:
  * OpenVDB:
    Improvements:
    * Removed use of boost::any in favor of std::any.
    Bug Fixes:
    * Fix potential crash reading corrupt .vdb files with invalid blosc or zip chunks.
  * NanoVDB:
    Highlights:
    * Several new tools to generate and modify NanoVDB grids on the GPU.
    * New file format that supports streaming of raw grid buffers.
    New Features:
    * New memory efficient GridClass::IndexGrid that separates values from tree
    * 4 new GridTypes (Index, OnIndex, IndexMask, OnIndexMask) used by IndexGrid
    * Added createNanoGrid that replaces older conversion methods in GridBuilder.h, IndexGridBuilder.h and OpenToNanoVDB.h
    * Added cudaPointsToGrid that constructs a point device grid from a list of points.
    * Added cudaVoxelsToGrid that constructs a voxel device grid from a list of voxels.
    * Added cuda/CudaUtils.h with several cuda utility functions.
    * Added GpuTimer for timing of kernels in a specific cuda stream.
    * Added cudaIndexToGrid that converts IndexGrids into regular Grids.
    * Added cudaSignedFloodFill that performs signed-flood filling on the GPU.
    * Added cudaAddBlindData that adds blind data to an existing grid on the GPU.
    * Added cudaGridChecksum that computes checksums of device grids.
    * Added cudaGridHandle that handles grids on the GPU.
    * Added cudaNodeManager that constructs a NodeManager on the GPU.
    * Added build type Points and GridType::PointIndex for point grids.
    * Added GridType::Vec3u16 and GridType::Vec3u8 for compressed coordinates.
    * Added PrefixSum.h for concurrent computation of prefix sum on the CPU.
    API Changes:
    * Version 32.6.0 (ABI is unchanged).
    * Transition from C++11 to C++17
buildservice-autocommit accepted request 1030113 from Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) (revision 22)
baserev update by copy to link target
Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) accepted request 1030070 from Stefan Brüns's avatar Stefan Brüns (StefanBruens) (revision 21)
- Disable static library build, instead of deleting it
- Remove many unused build dependencies
buildservice-autocommit accepted request 1002446 from Benjamin Greiner's avatar Benjamin Greiner (bnavigator) (revision 20)
baserev update by copy to link target
Benjamin Greiner's avatar Benjamin Greiner (bnavigator) accepted request 1002423 from Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) (revision 19)
I hope, this is doing better now ;-)

- Enable nanovdb as build conditional

- Raise minimum c++ standard to 14
Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) accepted request 933147 from Benjamin Greiner's avatar Benjamin Greiner (bnavigator) (revision 18)
- Update to version 9.0.0
  * This version introduces ABI changes relative to older major
    releases, so to preserve ABI compatibility it might be
    necessary to define the macro OPENVDB_ABI_VERSION_NUMBER=N,
    where, for example, N is 7 for Houdini 18.5 and 8 for Houdini
    19.0.
  * Official release of NanoVDB, which for the first time offers
    GPU support for static sparse volumes in OpenVDB. See the
    documentation for details.
  * Faster build times from support for explicit template
    instantiation, which is enabled by default for most of the
    tools.
  * Added support for OpenEXR 3. This is contributed by Cary
    Phillips.
  * Added transient data to the RootNode, InternalNode, and
    LeafNode.
  New features:
  * NanoVDB, which for the first time offers GPU support for static
    sparse volumes in OpenVDB.
  Improvements:
  * Added tools::countActiveLeafVoxels(),
    tools::countInactiveVoxels(), tools::countInactiveLeafVoxels()
    and tools::activeTiles() to perform multi-threaded counting.
    The Tree methods now use these implementations.
  * Moved from the deprecated TBB task scheduler to TBB arenas.
    Various methods now respect the TBB arena state they were
    invoked from.
  * Introduced a new thread/Threading.h header to consolidate calls
    to third-party threading methods.
  * Minor performance improvements to dilation calls in fast
    sweeping algorithms.
  * Added hsvtogrb() and rgbtohsv() AX helper functions for
    converting hue, saturation and value inputs to RGB values and
    vice-versa.
  * PointDataGrid conversion can now be performed using 32-bit
    float arrays.
  * Improved support for size_t grid types on systems where size_t
    is a unique type. [Contributed by Brecht Van Lommel]
  * Add support for dilation in one direction and extending a field
    in one direction in fast sweeping algorithms.
  * Added PNG support to vdb_render which can be enabled with
    during CMake with -DUSE_PNG=ON.
  * Explicit template instantiation has been enabled by default for
    most of the tools. This pre-compiles template instantiations
    into the core library to reduce the time spent compiling code
    in downstream libraries or applications.
  * Added a python binding for OpenVDB AX which allows you to
    invoke accelerated AX code from the python module.
  Bug Fixes:
  * Fixed a bug where ax::run() would crash if it could not parse a
    single statement.
  ABI changes:
  * Added transient data to the RootNode, InternalNode, and
    LeafNode.
  API changes:
  * DynamicNodeManager can now set one grain size for threading
    across leaf nodes and another for threading across non-leaf
    nodes.
  * StringGrid and StringTrees are deprecated.
  * The NullInterrupter is now a virtual base class to help reduce
    compile-time instantiation cost.
  Houdini:
  * Fix crash in VDB Combine in Copy B mode if the second input has
    more VDBs than the first.
  * VDB Vector Merge SOP is now VDB Vector From Scalar SOP to
    distinguish it from the VDB Merge SOP. It keeps the same
    internal name so this is merely a label change.
  * Add option to pass in OPENVDB_DSO_NAMES to CMake to configure
    which Houdini DSOs are compiled.
  * VDB Activate SOP now has an option for the expansion pattern to
    use for dilation.
  * The label for Voxels to Expand is now Expand Voxels to match
    Houdini.
  * Fix bug to allow VDB LOD SOPs to be chained together.
  * SOP Extrapolate supports dilation in one direction and
    extending a field in one (domain) direction.
  * The default OpenVDB ABI is now 8 for Houdini versions > 18.5.
  * VDB Visualize Tree SOP is now multi-threaded and provides
    slicing and color remapping.
  * A new HoudiniInterrupter has been added that derives from the
    NullInterrupter and the Interrupter is now deprecated. All the
    SOPs have been updated to use the new HoudiniInterrupter.
  * Add a sanitizer in SOP OpenVDB Extrapolate when expanding a
    narrow-band level-set with a dilation value of 0, which will
    result in no operation.
  Build:
  * Added support for TBB 2021.
  * Enabled the OPENVDB_FUTURE_DEPRECATION variable by default to
    warn on upcoming deprecations.
  * Introduced a OPENVDB_DOXYGEN_INTERNAL CMake variable which is
    ON by default and removes the majority of internal namespaces
    from the generated doxygen.
  * Improved the doxygen deprecation listings, folder layouts and
    fixes issues when using later versions of doxygen.
  * Build fixes for MinGW on Windows. [Contributed by Brecht
    Sanders]
  * Added support for OpenEXR 3. [Contributed by Cary Phillips]
  * Added an OPENVDB_NAMESPACE_SUFFIX CMake string option which
    provides the ability to customise the VDB namespace.
  * The Python Module now appends the base directory defined by
    Python_SITELIB to the default install path (typically
    dist-packages or site-packages). [Contributed by Ignacio Vizzo]
  * As of this release, VFX Reference Platform 2019 is no longer
    supported. CMake now issues deprecation warnings for 2020 VFX
    Reference Platform version dependencies.
  * Build fixes for OpenVDB AX with C++17 and greater.
  * Bumped the new blosc version future minimum to 1.17.0.
  * OpenEXR is now optional for vdb_render. It can be enabled with
    -DUSE_EXR=ON.
- Renenable vdb_render without OpenEXR
- Update constraints and limit memory for parallel build jobs
Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) accepted request 912433 from Petr Gajdos's avatar Petr Gajdos (pgajdos) (revision 17)
- do not depend on OpenEXR (do not build vdb_render) [bsc#1189344]
Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) accepted request 903861 from Ferdinand Thiessen's avatar Ferdinand Thiessen (susnux) (revision 16)
Update to version 8.1.0
buildservice-autocommit accepted request 829925 from Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) (revision 15)
baserev update by copy to link target
Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) accepted request 829820 from Dirk Mueller's avatar Dirk Mueller (dirkmueller) (revision 14)
- update to 7.1.0:
   - Added a novel parallel sparse FastSweeping class that outperforms our
      existing techniques for computing signed distance fields in addition to
      supporting velocity extension.
    - Added tools::fogToSdf which converts a scalar (fog) volume into a signed
      distance field.
    - Added tools::sdfToSdf which re-normalizes a signed distance field;
    - Added tools::fogToExt which extends an arbitrary field (e.g. velocity)
      off the iso-surface of a scalar (fog) volume.
    - Added tools::sdfToExt which extends an arbitrary field (e.g. velocity)
      off the iso-surface of a signed distance field.
    - Added tools::fogToSdfAndExt which computes a signed distance and extends
      an arbitrary field (e.g. velocity) off the iso-surface of a signed
      distance field.
    - Added tools::fogToSdfAndExt which re-normalizes a signed distance and
      extends an arbitrary field (e.g. velocity) off the iso-surface of a
      signed distance field.
    - Added tools::dilateSdf which dilates a signed distance field.
    - Added tools::maskSdf which extends an existing signed distance into a
      user-defined mask.
    - Added Grid::isTreeUnique() to tell if the tree is shared with another
      grid.
    - Added PointDataLeafNode::stealAttributeSet() and
      AttributeSet::removeAttribute() for releasing ownership of attribute
      data.
    - Added AttributeSet::Descriptor::groupIndexCollision() for detecting
      group index collisions when attempting to merge two Descriptors.
    - Added RootNode::childCount(), InternalNode::childCount() and
      LeafNode::childCount() to count the number of immediate child nodes that
      exist below the current node.
buildservice-autocommit accepted request 778523 from Hans-Peter Jansen's avatar Hans-Peter Jansen (frispete) (revision 13)
baserev update by copy to link target
Displaying revisions 1 - 20 of 32
openSUSE Build Service is sponsored by