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