Skip to content

Commit 1fbfc70

Browse files
authored
Merge pull request #300 from danrbailey/6_0_0_releasecandidate
6.0.0 Release Candidate
2 parents a084246 + bd7a60a commit 1fbfc70

File tree

6 files changed

+56
-191
lines changed

6 files changed

+56
-191
lines changed

openvdb/CHANGES

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
OpenVDB Version History
22
=======================
33

4-
Version 6.0.0 - In development
4+
Version 6.0.0 - December 18, 2018
55

66
Some changes in this release (see "ABI changes" below) alter
77
the grid ABI so that it is incompatible with earlier versions
@@ -17,23 +17,43 @@ Version 6.0.0 - In development
1717
- Added convenience functions particlesToSdf(), particleTrailsToSdf(),
1818
particlesToMask() and particleTrailsToMask() for common particle
1919
rasterization use cases.
20+
- Added batch copying of AttributeArray values that significantly
21+
out-performs the older method that relied on a virtual function.
2022

2123
Improvements:
22-
- Improved the responsiveness of the mesh to volume converter to
23-
interrupt requests.
24+
- Improved the responsiveness of the mesh to volume converter to interrupt
25+
requests.
26+
- Attempts to use a partially deserialized AttributeArray now errors.
27+
- Updated point deletion to use faster batch copying for ABI=6+.
28+
- Methods relating to in-memory Blosc compression for AttributeArrays now
29+
do nothing and have been marked deprecated resulting in memory savings for
30+
ABI=6+.
31+
32+
Bug fixes:
33+
- Fixed various signed/unsigned casting issues when moving points in point
34+
data grids to resolve compiler warnings.
2435

2536
ABI changes:
2637
- Added new virtual functions to AttributeArray.
2738
- Changed the order and size of member variables in AttributeArray
2839
and TypedAttributeArray classes.
2940

41+
API changes:
42+
- Removed a number of methods that were deprecated in version 5.0.0 or
43+
earlier.
44+
- Removed the experimental ValueAccessor::newSetValue method.
45+
3046
Houdini:
3147
- Added an option to the Visualize SOP to display leaf nodes as points.
3248
- Renamed the Visualize SOP's "leafmode", "internalmode", "tilemode"
3349
and "voxelmode" parameters to "leafstyle", "internalstyle", etc.
3450
and converted them from ordinal to string-valued.
3551
- Made various improvements to viewport rendering of point data grids.
36-
[Contributed by Nick Avramoussis]
52+
- Updated ParmFactory to allow parameters to be marked as hidden, this is
53+
useful for multi-parms where it is not possible to mark them as obsolete.
54+
- Removed the option to use in-memory Blosc compression from the Points
55+
Convert SOP as this feature has now been deprecated.
56+
- Made various small changes for Houdini 17 compatibility.
3757

3858

3959
Version 5.2.0 - August 13, 2018

openvdb/doc/changes.txt

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
@htmlonly <a name="v6_0_0_changes"></a>@endhtmlonly
66
@par
7-
<B>Version 6.0.0</B> - <I>In development</I>
7+
<B>Version 6.0.0</B> - <I>December 18, 2018</I>
88

99
@par
1010
New features:
@@ -17,11 +17,27 @@ New features:
1717
@vdblink::tools::particlesToMask() particlesToMask@endlink
1818
and @vdblink::tools::particleTrailsToMask() particleTrailsToMask@endlink
1919
for common particle rasterization use cases.
20+
- Added batch copying functions
21+
@vdblink::points::AttributeArray::copyValues() AttributeArray::copyValues()@endlink
22+
@vdblink::points::AttributeArray::copyValuesUnsafe() AttributeArray::copyValuesUnsafe()@endlink
23+
that significantly out-performs the older
24+
@vdblink::points::AttributeArray::set() AttributeArray@endlink method.
2025

2126
@par
2227
Improvements:
2328
- Improved the responsiveness of the
2429
@link MeshToVolume.h mesh to volume@endlink converter to interrupt requests.
30+
- Attempts to use a partially deserialized
31+
@vdblink::points::AttributeArray AttributeArray@endlink now errors.
32+
- Updated point deletion to use faster batch copying for ABI=6+.
33+
- Methods relating to in-memory Blosc compression for
34+
@vdblink::points::AttributeArray AttributeArray@endlink now do nothing and
35+
have been marked deprecated resulting in memory savings for ABI=6+.
36+
37+
@par
38+
Bug fixes:
39+
- Fixed various signed/unsigned casting issues when moving points in point
40+
data grids to resolve compiler warnings.
2541

2642
@par
2743
ABI changes:
@@ -31,8 +47,14 @@ ABI changes:
3147
@vdblink::points::AttributeArray AttributeArray@endlink
3248
and @vdblink::points::TypedAttributeArray TypedAttributeArray@endlink
3349
classes.
34-
- Added a new faster implementation for point deletion that uses new
35-
ABI=6 functionality.
50+
51+
@par
52+
API changes:
53+
- Removed a number of methods that were deprecated in version&nbsp;5.0.0 or
54+
earlier.
55+
- Removed the experimental
56+
@vdblink::tree::ValueAccessor::newSetValue() ValueAccessor::newSetValue@endlink
57+
method.
3658

3759
@par
3860
Houdini:
@@ -42,7 +64,11 @@ Houdini:
4264
to <TT>leafstyle</TT>, <TT>internalstyle</TT>, etc. and converted them
4365
from ordinals to strings.
4466
- Made various improvements to viewport rendering of point data grids.
45-
<I>[Contributed&nbsp;by&nbsp;Nick&nbsp;Avramoussis]</I>
67+
- Updated ParmFactory to allow parameters to be marked as hidden, this is
68+
useful for multi-parms where it is not possible to mark them as obsolete.
69+
- Removed the option to use in-memory Blosc compression from the
70+
Points&nbsp;Convert&nbsp;SOP as this feature has now been deprecated.
71+
- Made various small changes for Houdini&nbsp;17 compatibility.
4672

4773

4874
@htmlonly <a name="v5_2_0_changes"></a>@endhtmlonly

openvdb/tree/ValueAccessor.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -300,14 +300,6 @@ class ValueAccessor: public ValueAccessorBase<_TreeType, IsSafe>
300300
mCache.setValueOnly(xyz, value);
301301
}
302302

303-
/// Set the value of the voxel at the given coordinates and mark the voxel
304-
/// as active. [Experimental]
305-
void newSetValue(const Coord& xyz, const ValueType& value)
306-
{
307-
LockT lock(mMutex);
308-
mCache.newSetValue(xyz, value);
309-
}
310-
311303
/// Set the value of the voxel at the given coordinates and mark the voxel as inactive.
312304
void setValueOff(const Coord& xyz, const ValueType& value)
313305
{

openvdb_houdini/houdini/SOP_NodeVDB.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,22 +64,6 @@ class OPENVDB_HOUDINI_API OpenVDBOpFactory: public houdini_utils::OpFactory
6464
};
6565

6666

67-
class OPENVDB_HOUDINI_API DWAOpenVDBOpFactory: public OpenVDBOpFactory
68-
{
69-
public:
70-
/// @brief Construct an OpFactory that on destruction registers a new
71-
/// OpenVDB operator type using the DreamWorks naming convention.
72-
/// @deprecated Use OpenVDBOpFactory instead.
73-
OPENVDB_DEPRECATED
74-
DWAOpenVDBOpFactory(const std::string& english, OP_Constructor ctor,
75-
houdini_utils::ParmList& plist, OP_OperatorTable& optable,
76-
houdini_utils::OpFactory::OpFlavor flavor = SOP)
77-
: OpenVDBOpFactory(english, ctor, plist, optable, flavor)
78-
{
79-
}
80-
};
81-
82-
8367
////////////////////////////////////////
8468

8569

openvdb_houdini/houdini/UT_VDBTools.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class GridTransformOp
9595
////////////////////////////////////////
9696

9797

98-
/// @brief GridResampleOp is a functor class for use with processTypedGrid()
98+
/// @brief GridResampleOp is a functor class for use with UTvdbProcessTypedGrid()
9999
/// that samples an input grid into an output grid of the same type through
100100
/// a given transform.
101101
/// @details The output grid's transform is unchanged by this operation.
@@ -121,7 +121,7 @@ class GridTransformOp
121121
/// // Resolve the input grid's type and resample it into the output grid,
122122
/// // using a trilinear sampling kernel.
123123
/// GridResampleOp<openvdb::tools::BoxSampler, MyXform> op(outGrid, MyXform());
124-
/// processTypedGrid(inGrid, op);
124+
/// UTvdbProcessTypedGrid(UTvdbGetGridType(inGrid), inGrid, op);
125125
/// @endcode
126126
template<typename Sampler, typename TransformerType>
127127
class GridResampleOp

openvdb_houdini/houdini/Utils.h

Lines changed: 0 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -305,163 +305,6 @@ bool isLogForwarding(OP_OpTypeId);
305305
/// @}
306306

307307

308-
////////////////////////////////////////
309-
310-
311-
/// Helper class used internally by processTypedGrid()
312-
template<typename GridType, typename OpType, bool IsConst/*=false*/>
313-
struct GridProcessor {
314-
static inline void call(OpType& op, GridPtr grid) {
315-
#ifdef _MSC_VER
316-
op.operator()<GridType>(openvdb::gridPtrCast<GridType>(grid));
317-
#else
318-
op.template operator()<GridType>(openvdb::gridPtrCast<GridType>(grid));
319-
#endif
320-
}
321-
};
322-
323-
/// Helper class used internally by processTypedGrid()
324-
template<typename GridType, typename OpType>
325-
struct GridProcessor<GridType, OpType, /*IsConst=*/true> {
326-
static inline void call(OpType& op, GridCPtr grid) {
327-
#ifdef _MSC_VER
328-
op.operator()<GridType>(openvdb::gridConstPtrCast<GridType>(grid));
329-
#else
330-
op.template operator()<GridType>(openvdb::gridConstPtrCast<GridType>(grid));
331-
#endif
332-
}
333-
};
334-
335-
336-
/// Helper function used internally by processTypedGrid()
337-
template<typename GridType, typename OpType, typename GridPtrType>
338-
inline void
339-
doProcessTypedGrid(GridPtrType grid, OpType& op)
340-
{
341-
GridProcessor<GridType, OpType,
342-
std::is_const<typename GridPtrType::element_type>::value>::call(op, grid);
343-
}
344-
345-
346-
////////////////////////////////////////
347-
348-
349-
/// @brief Utility function that, given a generic grid pointer,
350-
/// calls a functor on the fully-resolved grid
351-
///
352-
/// @par Example:
353-
/// @code
354-
/// using openvdb::Coord;
355-
/// using openvdb::CoordBBox;
356-
///
357-
/// struct FillOp {
358-
/// const CoordBBox bbox;
359-
///
360-
/// FillOp(const CoordBBox& b): bbox(b) {}
361-
///
362-
/// template<typename GridT>
363-
/// void operator()(typename GridT::Ptr grid) const {
364-
/// using ValueT = typename GridT::ValueType;
365-
/// grid->fill(bbox, ValueT(1));
366-
/// }
367-
/// };
368-
///
369-
/// CoordBBox bbox(Coord(0,0,0), Coord(10,10,10));
370-
/// processTypedGrid(myGridPtr, FillOp(bbox));
371-
/// @endcode
372-
///
373-
/// @return @c false if the grid type is unknown or unhandled.
374-
/// @deprecated Use UTvdbProcessTypedGrid() or GEOvdbProcessTypedGrid() instead.
375-
template<typename GridPtrType, typename OpType>
376-
OPENVDB_DEPRECATED
377-
bool
378-
processTypedGrid(GridPtrType grid, OpType& op)
379-
{
380-
using namespace openvdb;
381-
if (grid->template isType<BoolGrid>()) doProcessTypedGrid<BoolGrid>(grid, op);
382-
else if (grid->template isType<FloatGrid>()) doProcessTypedGrid<FloatGrid>(grid, op);
383-
else if (grid->template isType<DoubleGrid>()) doProcessTypedGrid<DoubleGrid>(grid, op);
384-
else if (grid->template isType<Int32Grid>()) doProcessTypedGrid<Int32Grid>(grid, op);
385-
else if (grid->template isType<Int64Grid>()) doProcessTypedGrid<Int64Grid>(grid, op);
386-
else if (grid->template isType<Vec3IGrid>()) doProcessTypedGrid<Vec3IGrid>(grid, op);
387-
else if (grid->template isType<Vec3SGrid>()) doProcessTypedGrid<Vec3SGrid>(grid, op);
388-
else if (grid->template isType<Vec3DGrid>()) doProcessTypedGrid<Vec3DGrid>(grid, op);
389-
else return false; ///< @todo throw exception ("unknown grid type")
390-
return true;
391-
}
392-
393-
394-
/// @brief Utility function that, given a generic grid pointer, calls
395-
/// a functor on the fully-resolved grid, provided that the grid's
396-
/// voxel values are 3-vectors (vec3i, vec3s or vec3d)
397-
///
398-
/// Usage:
399-
/// @code
400-
/// struct NormalizeOp {
401-
/// template<typename GridT>
402-
/// void operator()(typename GridT::Ptr grid) const { normalizeVectors(*grid); }
403-
/// };
404-
///
405-
/// processTypedVec3Grid(myGridPtr, NormalizeOp());
406-
/// @endcode
407-
///
408-
/// @return @c false if the grid type is unknown or non-vector.
409-
/// @sa UTvdbProcessTypedGridVec3
410-
/// @deprecated Use UTvdbProcessTypedGridVec3() or GEOvdbProcessTypedGridVec3() instead.
411-
template<typename GridPtrType, typename OpType>
412-
OPENVDB_DEPRECATED
413-
bool
414-
processTypedVec3Grid(GridPtrType grid, OpType& op)
415-
{
416-
using namespace openvdb;
417-
if (grid->template isType<Vec3IGrid>()) doProcessTypedGrid<Vec3IGrid>(grid, op);
418-
else if (grid->template isType<Vec3SGrid>()) doProcessTypedGrid<Vec3SGrid>(grid, op);
419-
else if (grid->template isType<Vec3DGrid>()) doProcessTypedGrid<Vec3DGrid>(grid, op);
420-
else return false; ///< @todo throw exception ("grid type is not vec3")
421-
return true;
422-
}
423-
424-
425-
/// @brief Utility function that, given a generic grid pointer,
426-
/// calls a functor on the fully-resolved grid
427-
///
428-
/// @par Example:
429-
/// @code
430-
/// using openvdb::Coord;
431-
/// using openvdb::CoordBBox;
432-
///
433-
/// struct FillOp {
434-
/// const CoordBBox bbox;
435-
///
436-
/// FillOp(const CoordBBox& b): bbox(b) {}
437-
///
438-
/// template<typename GridT>
439-
/// void operator()(typename GridT::Ptr grid) const {
440-
/// using ValueT = typename GridT::ValueType;
441-
/// grid->fill(bbox, ValueT(1));
442-
/// }
443-
/// };
444-
///
445-
/// CoordBBox bbox(Coord(0,0,0), Coord(10,10,10));
446-
/// processTypedScalarGrid(myGridPtr, FillOp(bbox));
447-
/// @endcode
448-
///
449-
/// @return @c false if the grid type is unknown or non-scalar.
450-
/// @deprecated Use UTvdbProcessTypedGridScalar() or GEOvdbProcessTypedGridScalar() instead.
451-
template<typename GridPtrType, typename OpType>
452-
OPENVDB_DEPRECATED
453-
bool
454-
processTypedScalarGrid(GridPtrType grid, OpType& op)
455-
{
456-
using namespace openvdb;
457-
if (grid->template isType<FloatGrid>()) doProcessTypedGrid<FloatGrid>(grid, op);
458-
else if (grid->template isType<DoubleGrid>()) doProcessTypedGrid<DoubleGrid>(grid, op);
459-
else if (grid->template isType<Int32Grid>()) doProcessTypedGrid<Int32Grid>(grid, op);
460-
else if (grid->template isType<Int64Grid>()) doProcessTypedGrid<Int64Grid>(grid, op);
461-
else return false; ///< @todo throw exception ("grid type is not scalar")
462-
return true;
463-
}
464-
465308
} // namespace openvdb_houdini
466309

467310
#endif // OPENVDB_HOUDINI_UTILS_HAS_BEEN_INCLUDED

0 commit comments

Comments
 (0)