pinnedCurveExpandingSceneIndex.h
1 //
2 // Copyright 2022 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 #ifndef PXR_IMAGING_HDSI_PINNED_CURVE_EXPANDING_SCENE_INDEX_H
8 #define PXR_IMAGING_HDSI_PINNED_CURVE_EXPANDING_SCENE_INDEX_H
9 
10 #include "pxr/imaging/hdsi/api.h"
11 #include "pxr/imaging/hd/filteringSceneIndex.h"
12 
13 PXR_NAMESPACE_OPEN_SCOPE
14 
16 
40 {
41 public:
42  HDSI_API
43  static HdsiPinnedCurveExpandingSceneIndexRefPtr
44  New(const HdSceneIndexBaseRefPtr &inputSceneIndex);
45 
46  HDSI_API
47  HdSceneIndexPrim GetPrim(const SdfPath &primPath) const override final;
48 
49  HDSI_API
50  SdfPathVector GetChildPrimPaths(const SdfPath &primPath) const override final;
51 
52 protected:
53  HDSI_API
54  void _PrimsAdded(
55  const HdSceneIndexBase &sender,
56  const HdSceneIndexObserver::AddedPrimEntries &entries) override final;
57 
58  HDSI_API
59  void _PrimsRemoved(
60  const HdSceneIndexBase &sender,
61  const HdSceneIndexObserver::RemovedPrimEntries &entries) override final;
62 
63  HDSI_API
64  void _PrimsDirtied(
65  const HdSceneIndexBase &sender,
66  const HdSceneIndexObserver::DirtiedPrimEntries &entries) override final;
67 
68  HDSI_API
70  const HdSceneIndexBaseRefPtr &inputSceneIndex);
71 
72 };
73 
74 PXR_NAMESPACE_CLOSE_SCOPE
75 
76 #endif //PXR_IMAGING_HDSI_PINNED_CURVE_EXPANDING_SCENE_INDEX_H
An abstract base class for a filtering scene index that observes a single input scene index.
HDSI_API SdfPathVector GetChildPrimPaths(const SdfPath &primPath) const override final
Returns the paths of all scene index prims located immediately below primPath.
#define TF_DECLARE_WEAK_AND_REF_PTRS(type)
Define standard weak, ref, and vector pointer types.
Definition: declarePtrs.h:72
HDSI_API HdSceneIndexPrim GetPrim(const SdfPath &primPath) const override final
Returns a pair of (prim type, datasource).
Small struct representing a 'prim' in the Hydra scene index.
Definition: sceneIndex.h:35
Abstract interface to scene data.
Definition: sceneIndex.h:54
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:280
Pinned curves are a special case of non-periodic cubic curves (relevant only for BSpline and CatmullR...