1 // 2 // Copyright 2016 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_CONE_ADAPTER_H 25 #define PXR_USD_IMAGING_USD_IMAGING_CONE_ADAPTER_H 26 27 /// \file usdImaging/coneAdapter.h 28 29 #include "pxr/pxr.h" 30 #include "pxr/usdImaging/usdImaging/api.h" 31 #include "pxr/usdImaging/usdImaging/gprimAdapter.h" 32 33 PXR_NAMESPACE_OPEN_SCOPE 34 35 36 class UsdGeomCone; 37 38 /// \class UsdImagingConeAdapter 39 /// 40 /// Delegate support for UsdGeomCone. 41 /// 42 class UsdImagingConeAdapter : public UsdImagingGprimAdapter { 43 public: 44 typedef UsdImagingGprimAdapter BaseAdapter; 45 UsdImagingConeAdapter()46 UsdImagingConeAdapter() 47 : UsdImagingGprimAdapter() 48 {} 49 USDIMAGING_API 50 virtual ~UsdImagingConeAdapter(); 51 52 USDIMAGING_API 53 SdfPath Populate( 54 UsdPrim const& prim, 55 UsdImagingIndexProxy* index, 56 UsdImagingInstancerContext const* instancerContext = nullptr) override; 57 58 USDIMAGING_API 59 bool IsSupported(UsdImagingIndexProxy const* index) const override; 60 61 USDIMAGING_API 62 HdDirtyBits ProcessPropertyChange(UsdPrim const& prim, 63 SdfPath const& cachePath, 64 TfToken const& propertyName); 65 66 // ---------------------------------------------------------------------- // 67 /// \name Parallel Setup and Resolve 68 // ---------------------------------------------------------------------- // 69 70 /// Thread Safe. 71 USDIMAGING_API 72 void TrackVariability( 73 UsdPrim const& prim, 74 SdfPath const& cachePath, 75 HdDirtyBits* timeVaryingBits, 76 UsdImagingInstancerContext const* instancerContext = nullptr) 77 const override; 78 79 // ---------------------------------------------------------------------- // 80 /// \name Data access 81 // ---------------------------------------------------------------------- // 82 83 USDIMAGING_API 84 VtValue GetTopology(UsdPrim const& prim, 85 SdfPath const& cachePath, 86 UsdTimeCode time) const override; 87 88 // Override the implemetation in GprimAdapter since we don't fetch the 89 // points attribute for implicit primitives. 90 USDIMAGING_API 91 VtValue GetPoints( 92 UsdPrim const& prim, 93 UsdTimeCode time) const override; 94 95 // Used by the legacyEngine. 96 USDIMAGING_API 97 static VtValue GetMeshPoints(UsdPrim const& prim, 98 UsdTimeCode time); 99 100 // Used by the legacyEngine. 101 USDIMAGING_API 102 static VtValue GetMeshTopology(); 103 }; 104 105 106 PXR_NAMESPACE_CLOSE_SCOPE 107 108 #endif // PXR_USD_IMAGING_USD_IMAGING_CONE_ADAPTER_H 109