HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
basisCurves.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 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_HD_BASIS_CURVES_H
8 #define PXR_IMAGING_HD_BASIS_CURVES_H
9 
10 #include "pxr/pxr.h"
11 #include "pxr/imaging/hd/api.h"
12 #include "pxr/imaging/hd/version.h"
13 #include "pxr/imaging/hd/rprim.h"
14 
16 
17 #define HD_BASISCURVES_REPR_DESC_TOKENS \
18  (surfaceShader) \
19  (surfaceShaderUnlit) \
20  (hullColor) \
21  (pointColor)
22 
23 TF_DECLARE_PUBLIC_TOKENS(HdBasisCurvesReprDescTokens, HD_API,
25 
26 /// \class HdBasisCurvesReprDesc
27 ///
28 /// Descriptor to configure a drawItem for a repr.
29 ///
31 {
34  TfToken shadingTerminal = HdBasisCurvesReprDescTokens->surfaceShader)
37  {}
38 
39  bool IsEmpty() const {
41  }
42 
44  /// Specifies how the fragment color should be computed from primvar;
45  /// this can be used to render heatmap highlighting etc.
47 };
48 
49 /// Hydra Schema for a collection of curves using a particular basis.
50 ///
51 class HdBasisCurves : public HdRprim
52 {
53 public:
54  HD_API
55  ~HdBasisCurves() override;
56 
57  ///
58  /// Topology
59  ///
61  inline HdDisplayStyle GetDisplayStyle(HdSceneDelegate* delegate) const;
62 
63  HD_API
64  TfTokenVector const & GetBuiltinPrimvarNames() const override;
65 
66  /// Configure geometric style of drawItems for \p reprName
67  HD_API
68  static void ConfigureRepr(TfToken const &reprName,
70 
71  /// Returns whether refinement is always on or not.
72  HD_API
73  static bool IsEnabledForceRefinedCurves();
74 
75 protected:
76  HD_API
77  HdBasisCurves(SdfPath const& id);
78 
80 
81  HD_API
83  _GetReprDesc(TfToken const &reprName);
84 
85 private:
86  // Class can not be default constructed or copied.
87  HdBasisCurves() = delete;
88  HdBasisCurves(const HdBasisCurves &) = delete;
89  HdBasisCurves &operator =(const HdBasisCurves &) = delete;
90 
91  static _BasisCurvesReprConfig _reprDescConfig;
92 };
93 
96 {
97  return delegate->GetBasisCurvesTopology(GetId());
98 }
99 
100 inline HdDisplayStyle
102 {
103  return delegate->GetDisplayStyle(GetId());
104 }
105 
106 
108 
109 #endif // PXR_IMAGING_HD_BASIS_CURVES_H
HD_API ~HdBasisCurves() override
HdBasisCurvesTopology GetBasisCurvesTopology(HdSceneDelegate *delegate) const
Definition: basisCurves.h:95
#define HD_API
Definition: api.h:23
HD_API TfTokenVector const & GetBuiltinPrimvarNames() const override
virtual HD_API HdBasisCurvesTopology GetBasisCurvesTopology(SdfPath const &id)
Gets the topological curve data for a given prim.
HdBasisCurvesReprDesc(HdBasisCurvesGeomStyle geomStyle=HdBasisCurvesGeomStyleInvalid, TfToken shadingTerminal=HdBasisCurvesReprDescTokens->surfaceShader)
Definition: basisCurves.h:32
static HD_API bool IsEnabledForceRefinedCurves()
Returns whether refinement is always on or not.
Definition: token.h:70
virtual HD_API HdDisplayStyle GetDisplayStyle(SdfPath const &id)
Returns the display style for the given prim.
Definition: rprim.h:37
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:440
Definition: path.h:273
#define HD_BASISCURVES_REPR_DESC_TOKENS
Definition: basisCurves.h:17
TF_DECLARE_PUBLIC_TOKENS(HdBasisCurvesReprDescTokens, HD_API, HD_BASISCURVES_REPR_DESC_TOKENS)
static HD_API _BasisCurvesReprConfig::DescArray _GetReprDesc(TfToken const &reprName)
bool IsEmpty() const
Definition: basisCurves.h:39
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition: path.h:1425
SdfPath const & GetId() const
Definition: rprim.h:146
std::array< DESC_TYPE, N > DescArray
Definition: rprim.h:304
HdBasisCurvesGeomStyle
Definition: enums.h:141
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
HdDisplayStyle GetDisplayStyle(HdSceneDelegate *delegate) const
Definition: basisCurves.h:101
static HD_API void ConfigureRepr(TfToken const &reprName, HdBasisCurvesReprDesc desc)
Configure geometric style of drawItems for reprName.
HdBasisCurvesGeomStyle geomStyle
Definition: basisCurves.h:43