All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
lightAPI.h
Go to the documentation of this file.
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 USDRI_GENERATED_LIGHTAPI_H
25 #define USDRI_GENERATED_LIGHTAPI_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdRi/api.h"
32 #include "pxr/usd/usd/prim.h"
33 #include "pxr/usd/usd/stage.h"
34 #include "pxr/usd/usdRi/tokens.h"
35 
36 #include "pxr/base/vt/value.h"
37 
38 #include "pxr/base/gf/vec3d.h"
39 #include "pxr/base/gf/vec3f.h"
40 #include "pxr/base/gf/matrix4d.h"
41 
42 #include "pxr/base/tf/token.h"
43 #include "pxr/base/tf/type.h"
44 
45 PXR_NAMESPACE_OPEN_SCOPE
46 
47 class SdfAssetPath;
48 
49 // -------------------------------------------------------------------------- //
50 // RILIGHTAPI //
51 // -------------------------------------------------------------------------- //
52 
63 {
64 public:
69 
74  explicit UsdRiLightAPI(const UsdPrim& prim=UsdPrim())
75  : UsdAPISchemaBase(prim)
76  {
77  }
78 
82  explicit UsdRiLightAPI(const UsdSchemaBase& schemaObj)
83  : UsdAPISchemaBase(schemaObj)
84  {
85  }
86 
88  USDRI_API
89  virtual ~UsdRiLightAPI();
90 
94  USDRI_API
95  static const TfTokenVector &
96  GetSchemaAttributeNames(bool includeInherited=true);
97 
107  USDRI_API
108  static UsdRiLightAPI
109  Get(const UsdStagePtr &stage, const SdfPath &path);
110 
111 
128  USDRI_API
129  static bool
130  CanApply(const UsdPrim &prim, std::string *whyNot=nullptr);
131 
147  USDRI_API
148  static UsdRiLightAPI
149  Apply(const UsdPrim &prim);
150 
151 protected:
155  USDRI_API
156  UsdSchemaKind _GetSchemaKind() const override;
157 
158 private:
159  // needs to invoke _GetStaticTfType.
160  friend class UsdSchemaRegistry;
161  USDRI_API
162  static const TfType &_GetStaticTfType();
163 
164  static bool _IsTypedSchema();
165 
166  // override SchemaBase virtuals.
167  USDRI_API
168  const TfType &_GetTfType() const override;
169 
170 public:
171  // --------------------------------------------------------------------- //
172  // RISAMPLINGFIXEDSAMPLECOUNT
173  // --------------------------------------------------------------------- //
186  USDRI_API
188 
194  USDRI_API
195  UsdAttribute CreateRiSamplingFixedSampleCountAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
196 
197 public:
198  // --------------------------------------------------------------------- //
199  // RISAMPLINGIMPORTANCEMULTIPLIER
200  // --------------------------------------------------------------------- //
208  USDRI_API
210 
216  USDRI_API
217  UsdAttribute CreateRiSamplingImportanceMultiplierAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
218 
219 public:
220  // --------------------------------------------------------------------- //
221  // RIINTENSITYNEARDIST
222  // --------------------------------------------------------------------- //
233  USDRI_API
235 
241  USDRI_API
242  UsdAttribute CreateRiIntensityNearDistAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
243 
244 public:
245  // --------------------------------------------------------------------- //
246  // RILIGHTGROUP
247  // --------------------------------------------------------------------- //
257  USDRI_API
259 
265  USDRI_API
266  UsdAttribute CreateRiLightGroupAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
267 
268 public:
269  // --------------------------------------------------------------------- //
270  // RISHADOWTHINSHADOW
271  // --------------------------------------------------------------------- //
283  USDRI_API
285 
291  USDRI_API
292  UsdAttribute CreateRiShadowThinShadowAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
293 
294 public:
295  // --------------------------------------------------------------------- //
296  // RITRACELIGHTPATHS
297  // --------------------------------------------------------------------- //
309  USDRI_API
311 
317  USDRI_API
318  UsdAttribute CreateRiTraceLightPathsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
319 
320 public:
321  // ===================================================================== //
322  // Feel free to add custom code below this line, it will be preserved by
323  // the code generator.
324  //
325  // Just remember to:
326  // - Close the class declaration with };
327  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
328  // - Close the include guard with #endif
329  // ===================================================================== //
330  // --(BEGIN CUSTOM CODE)--
331 };
332 
333 PXR_NAMESPACE_CLOSE_SCOPE
334 
335 #endif
USDRI_API UsdAttribute GetRiSamplingImportanceMultiplierAttr() const
Importance of this light for noise control.
USDRI_API UsdAttribute CreateRiTraceLightPathsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRiTraceLightPathsAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
USDRI_API UsdAttribute CreateRiShadowThinShadowAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRiShadowThinShadowAttr(), and also Create vs Get Property Methods for when to use Get vs Creat...
USDRI_API UsdAttribute GetRiIntensityNearDistAttr() const
Near distance between the point being illuminated and the light at which the sample doesn't get brigh...
virtual USDRI_API ~UsdRiLightAPI()
Destructor.
The base class for all API schemas.
USDRI_API UsdAttribute CreateRiLightGroupAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRiLightGroupAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
Scenegraph object for authoring and retrieving numeric, string, and array valued data, sampled over time.
Definition: attribute.h:176
USDRI_API UsdAttribute CreateRiSamplingImportanceMultiplierAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRiSamplingImportanceMultiplierAttr(), and also Create vs Get Property Methods for when to use ...
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: lightAPI.h:68
static USDRI_API UsdRiLightAPI Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdRiLightAPI holding the prim adhering to this schema at path on stage. ...
UsdRiLightAPI(const UsdSchemaBase &schemaObj)
Construct a UsdRiLightAPI on the prim held by schemaObj .
Definition: lightAPI.h:82
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:127
Single Apply API schema.
UsdRiLightAPI(const UsdPrim &prim=UsdPrim())
Construct a UsdRiLightAPI on UsdPrim prim .
Definition: lightAPI.h:74
static USDRI_API bool CanApply(const UsdPrim &prim, std::string *whyNot=nullptr)
Returns true if this single-apply API schema can be applied to the given prim.
static USDRI_API UsdRiLightAPI Apply(const UsdPrim &prim)
Applies this single-apply API schema to the given prim.
USDRI_API UsdAttribute GetRiShadowThinShadowAttr() const
Enable thin shadow and disable refraction caustics for this light.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:132
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:442
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:288
USDRI_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
USDRI_API UsdAttribute CreateRiIntensityNearDistAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRiIntensityNearDistAttr(), and also Create vs Get Property Methods for when to use Get vs Crea...
USDRI_API UsdAttribute GetRiSamplingFixedSampleCountAttr() const
Specifies an override of the number of light samples to be taken for this light source.
TfType represents a dynamic runtime type.
Definition: type.h:64
USDRI_API UsdAttribute GetRiLightGroupAttr() const
Specify the light group name used for light group LPEs.
Singleton registry that provides access to schema type information and the prim definitions for regis...
USDRI_API UsdAttribute CreateRiSamplingFixedSampleCountAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRiSamplingFixedSampleCountAttr(), and also Create vs Get Property Methods for when to use Get ...
The base class for all schema types in Usd.
Definition: schemaBase.h:56
USDRI_API UsdAttribute GetRiTraceLightPathsAttr() const
Enable light and photon tracing from this light.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:168
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
static USDRI_API const TfTokenVector & GetSchemaAttributeNames(bool includeInherited=true)
Return a vector of names of all pre-declared attributes for this schema class and all its ancestor cl...