1 // 2 // Copyright 2017 Pixar 3 // 4 // Licensed under the Apache License, Version 2.0 (the "Apache License") 5 // with the following modification; you may not use this file except in 6 // compliance with the Apache License and the following modification to it: 7 // Section 6. Trademarks. is deleted and replaced with: 8 // 9 // 6. Trademarks. This License does not grant permission to use the trade 10 // names, trademarks, service marks, or product names of the Licensor 11 // and its affiliates, except as required to comply with Section 4(c) of 12 // the License and to reproduce the content of the NOTICE file. 13 // 14 // You may obtain a copy of the Apache License at 15 // 16 // http://www.apache.org/licenses/LICENSE-2.0 17 // 18 // Unless required by applicable law or agreed to in writing, software 19 // distributed under the Apache License with the above modification is 20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 21 // KIND, either express or implied. See the Apache License for the specific 22 // language governing permissions and limitations under the Apache License. 23 // 24 #ifndef PXR_USD_IMAGING_USD_IMAGING_LIGHT_FILTER_ADAPTER_H 25 #define PXR_USD_IMAGING_USD_IMAGING_LIGHT_FILTER_ADAPTER_H 26 27 /// \file usdImaging/lightFilterAdapter.h 28 29 #include "pxr/pxr.h" 30 #include "pxr/usdImaging/usdImaging/api.h" 31 #include "pxr/usdImaging/usdImaging/primAdapter.h" 32 33 PXR_NAMESPACE_OPEN_SCOPE 34 35 36 class UsdPrim; 37 38 /// \class UsdImagingLightFilterAdapter 39 /// 40 /// Base class for all light filters. 41 /// 42 class UsdImagingLightFilterAdapter : public UsdImagingPrimAdapter { 43 public: 44 typedef UsdImagingPrimAdapter BaseAdapter; 45 46 UsdImagingLightFilterAdapter()47 UsdImagingLightFilterAdapter() 48 : UsdImagingPrimAdapter() 49 {} 50 51 USDIMAGING_API 52 ~UsdImagingLightFilterAdapter() override; 53 54 USDIMAGING_API 55 SdfPath Populate(UsdPrim const& prim, 56 UsdImagingIndexProxy* index, 57 UsdImagingInstancerContext const* instancerContext = NULL) override; 58 59 USDIMAGING_API 60 bool IsSupported(UsdImagingIndexProxy const* index) const override; 61 62 // ---------------------------------------------------------------------- // 63 /// \name Parallel Setup and Resolve 64 // ---------------------------------------------------------------------- // 65 66 /// Thread Safe. 67 USDIMAGING_API 68 void TrackVariability(UsdPrim const& prim, 69 SdfPath const& cachePath, 70 HdDirtyBits* timeVaryingBits, 71 UsdImagingInstancerContext const* 72 instancerContext = NULL) const override; 73 74 75 /// Thread Safe. 76 USDIMAGING_API 77 void UpdateForTime(UsdPrim const& prim, 78 SdfPath const& cachePath, 79 UsdTimeCode time, 80 HdDirtyBits requestedBits, 81 UsdImagingInstancerContext const* 82 instancerContext = NULL) const override; 83 84 // ---------------------------------------------------------------------- // 85 /// \name Change Processing 86 // ---------------------------------------------------------------------- // 87 88 /// Returns a bit mask of attributes to be udpated, or 89 /// HdChangeTracker::AllDirty if the entire prim must be resynchronized. 90 USDIMAGING_API 91 HdDirtyBits ProcessPropertyChange(UsdPrim const& prim, 92 SdfPath const& cachePath, 93 TfToken const& propertyName) override; 94 95 USDIMAGING_API 96 void MarkDirty(UsdPrim const& prim, 97 SdfPath const& cachePath, 98 HdDirtyBits dirty, 99 UsdImagingIndexProxy* index) override; 100 101 USDIMAGING_API 102 void MarkTransformDirty(UsdPrim const& prim, 103 SdfPath const& cachePath, 104 UsdImagingIndexProxy* index) override; 105 106 USDIMAGING_API 107 void MarkVisibilityDirty(UsdPrim const& prim, 108 SdfPath const& cachePath, 109 UsdImagingIndexProxy* index) override; 110 111 // ---------------------------------------------------------------------- // 112 /// \name Utilities 113 // ---------------------------------------------------------------------- // 114 115 USDIMAGING_API 116 VtValue GetMaterialResource(UsdPrim const &prim, 117 SdfPath const& cachePath, 118 UsdTimeCode time) const override; 119 120 protected: 121 USDIMAGING_API 122 void _RemovePrim(SdfPath const& cachePath, 123 UsdImagingIndexProxy* index) override; 124 125 }; 126 127 128 PXR_NAMESPACE_CLOSE_SCOPE 129 130 #endif // PXR_USD_IMAGING_USD_IMAGING_LIGHT_FILTER_ADAPTER_H 131