@@ -19,6 +19,21 @@ namespace OPENVDB_VERSION_NAME {
1919
2020namespace adaptive {
2121
22+ template <typename TreeT>
23+ class AdaptiveAccessor
24+ {
25+ public:
26+ using ValueType = typename TreeT::ValueType;
27+
28+ explicit AdaptiveAccessor (TreeT& tree):
29+ mTree(tree) { }
30+
31+ TreeT& tree () const { return mTree ; }
32+
33+ private:
34+ TreeT& mTree ;
35+ };
36+
2237
2338template <typename _ValueType>
2439class AdaptiveTree final : public TreeBase
@@ -32,6 +47,11 @@ class AdaptiveTree final: public TreeBase
3247
3348 static const Index DEPTH = 1 ;
3449
50+ using Accessor = AdaptiveAccessor<AdaptiveTree>;
51+ using ConstAccessor = AdaptiveAccessor<const AdaptiveTree>;
52+ using UnsafeAccessor = Accessor;
53+ using ConstUnsafeAccessor = ConstAccessor;
54+
3555 AdaptiveTree () = default ;
3656
3757 AdaptiveTree& operator =(const AdaptiveTree&) = delete ; // disallow assignment
@@ -145,6 +165,14 @@ class AdaptiveTree final: public TreeBase
145165 // / Return the total number of active tiles.
146166 Index64 activeTileCount () const override { OPENVDB_THROW (NotImplementedError, " " ); }
147167
168+ //
169+ // Accessor methods
170+ //
171+ Accessor getAccessor () { return Accessor (*this ); }
172+ UnsafeAccessor getUnsafeAccessor () { return UnsafeAccessor (*this ); }
173+ ConstAccessor getAccessor () const { return ConstAccessor (*this ); }
174+ ConstAccessor getConstAccessor () const { return ConstAccessor (*this ); }
175+ ConstUnsafeAccessor getConstUnsafeAccessor () const { return ConstUnsafeAccessor (*this ); }
148176
149177 //
150178 // I/O methods
0 commit comments