Loading...
Searching...
No Matches
shadowAPI.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 USDLUX_GENERATED_SHADOWAPI_H
8#define USDLUX_GENERATED_SHADOWAPI_H
9
11
12#include "pxr/pxr.h"
13#include "pxr/usd/usdLux/api.h"
15#include "pxr/usd/usd/prim.h"
16#include "pxr/usd/usd/stage.h"
18
19#include "pxr/usd/usdShade/input.h"
20#include "pxr/usd/usdShade/output.h"
21
22#include "pxr/base/vt/value.h"
23
24#include "pxr/base/gf/vec3d.h"
25#include "pxr/base/gf/vec3f.h"
27
28#include "pxr/base/tf/token.h"
29#include "pxr/base/tf/type.h"
30
31PXR_NAMESPACE_OPEN_SCOPE
32
33class SdfAssetPath;
34
35// -------------------------------------------------------------------------- //
36// SHADOWAPI //
37// -------------------------------------------------------------------------- //
38
45{
46public:
50 static const UsdSchemaKind schemaKind = UsdSchemaKind::SingleApplyAPI;
51
56 explicit UsdLuxShadowAPI(const UsdPrim& prim=UsdPrim())
57 : UsdAPISchemaBase(prim)
58 {
59 }
60
64 explicit UsdLuxShadowAPI(const UsdSchemaBase& schemaObj)
65 : UsdAPISchemaBase(schemaObj)
66 {
67 }
68
70 USDLUX_API
72
76 USDLUX_API
77 static const TfTokenVector &
78 GetSchemaAttributeNames(bool includeInherited=true);
79
89 USDLUX_API
90 static UsdLuxShadowAPI
91 Get(const UsdStagePtr &stage, const SdfPath &path);
92
93
110 USDLUX_API
111 static bool
112 CanApply(const UsdPrim &prim, std::string *whyNot=nullptr);
113
129 USDLUX_API
130 static UsdLuxShadowAPI
131 Apply(const UsdPrim &prim);
132
133protected:
137 USDLUX_API
139
140private:
141 // needs to invoke _GetStaticTfType.
142 friend class UsdSchemaRegistry;
143 USDLUX_API
144 static const TfType &_GetStaticTfType();
145
146 static bool _IsTypedSchema();
147
148 // override SchemaBase virtuals.
149 USDLUX_API
150 const TfType &_GetTfType() const override;
151
152public:
153 // --------------------------------------------------------------------- //
154 // SHADOW:ENABLE
155 // --------------------------------------------------------------------- //
163 USDLUX_API
165
171 USDLUX_API
172 UsdAttribute CreateShadowEnableAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
173
174public:
175 // --------------------------------------------------------------------- //
176 // SHADOW:COLOR
177 // --------------------------------------------------------------------- //
186 USDLUX_API
188
194 USDLUX_API
195 UsdAttribute CreateShadowColorAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
196
197public:
198 // --------------------------------------------------------------------- //
199 // SHADOW:DISTANCE
200 // --------------------------------------------------------------------- //
212 USDLUX_API
214
220 USDLUX_API
221 UsdAttribute CreateShadowDistanceAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
222
223public:
224 // --------------------------------------------------------------------- //
225 // SHADOW:FALLOFF
226 // --------------------------------------------------------------------- //
241 USDLUX_API
243
249 USDLUX_API
250 UsdAttribute CreateShadowFalloffAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
251
252public:
253 // --------------------------------------------------------------------- //
254 // SHADOW:FALLOFFGAMMA
255 // --------------------------------------------------------------------- //
266 USDLUX_API
268
274 USDLUX_API
275 UsdAttribute CreateShadowFalloffGammaAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
276
277public:
278 // ===================================================================== //
279 // Feel free to add custom code below this line, it will be preserved by
280 // the code generator.
281 //
282 // Just remember to:
283 // - Close the class declaration with };
284 // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
285 // - Close the include guard with #endif
286 // ===================================================================== //
287 // --(BEGIN CUSTOM CODE)--
288
289 // -------------------------------------------------------------------------
293
297 USDLUX_API
299
304 USDLUX_API
306
308
309 // -------------------------------------------------------------------------
316
322 USDLUX_API
324 const SdfValueTypeName& typeName);
325
328 USDLUX_API
329 UsdShadeOutput GetOutput(const TfToken &name) const;
330
335 USDLUX_API
336 std::vector<UsdShadeOutput> GetOutputs(bool onlyAuthored=true) const;
337
339
340 // -------------------------------------------------------------------------
341
349
354 USDLUX_API
356 const SdfValueTypeName& typeName);
357
360 USDLUX_API
361 UsdShadeInput GetInput(const TfToken &name) const;
362
367 USDLUX_API
368 std::vector<UsdShadeInput> GetInputs(bool onlyAuthored=true) const;
369
371};
372
373PXR_NAMESPACE_CLOSE_SCOPE
374
375#endif
Contains an asset path and optional evaluated and resolved paths.
Definition: assetPath.h:78
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:274
Represents a value type name, i.e.
Definition: valueTypeName.h:72
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:71
TfType represents a dynamic runtime type.
Definition: type.h:48
The base class for all API schemas.
Definition: apiSchemaBase.h:99
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:183
Controls to refine a light's shadow behavior.
Definition: shadowAPI.h:45
UsdLuxShadowAPI(const UsdSchemaBase &schemaObj)
Construct a UsdLuxShadowAPI on the prim held by schemaObj .
Definition: shadowAPI.h:64
USDLUX_API UsdAttribute CreateShadowEnableAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShadowEnableAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API std::vector< UsdShadeOutput > GetOutputs(bool onlyAuthored=true) const
Outputs are represented by attributes in the "outputs:" namespace.
USDLUX_API UsdAttribute GetShadowEnableAttr() const
Enables shadows to be cast by this light.
USDLUX_API UsdShadeOutput CreateOutput(const TfToken &name, const SdfValueTypeName &typeName)
Create an output which can either have a value or can be connected.
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: shadowAPI.h:50
USDLUX_API UsdAttribute GetShadowColorAttr() const
The color of shadows cast by the light.
USDLUX_API UsdShadeInput CreateInput(const TfToken &name, const SdfValueTypeName &typeName)
Create an input which can either have a value or can be connected.
USDLUX_API UsdAttribute CreateShadowColorAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShadowColorAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API UsdAttribute GetShadowDistanceAttr() const
The maximum distance shadows are cast.
USDLUX_API UsdAttribute CreateShadowFalloffAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShadowFalloffAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
static USDLUX_API UsdLuxShadowAPI Apply(const UsdPrim &prim)
Applies this single-apply API schema to the given prim.
USDLUX_API UsdShadeConnectableAPI ConnectableAPI() const
Contructs and returns a UsdShadeConnectableAPI object with this shadow API prim.
static USDLUX_API UsdLuxShadowAPI Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdLuxShadowAPI holding the prim adhering to this schema at path on stage.
virtual USDLUX_API ~UsdLuxShadowAPI()
Destructor.
USDLUX_API UsdAttribute GetShadowFalloffAttr() const
The size of the shadow falloff zone within the shadow max distance, which can be used to hide the har...
USDLUX_API UsdLuxShadowAPI(const UsdShadeConnectableAPI &connectable)
Constructor that takes a ConnectableAPI object.
USDLUX_API UsdAttribute CreateShadowDistanceAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShadowDistanceAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
static USDLUX_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...
USDLUX_API UsdShadeOutput GetOutput(const TfToken &name) const
Return the requested output if it exists.
static USDLUX_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.
USDLUX_API UsdAttribute GetShadowFalloffGammaAttr() const
A gamma (i.e., exponential) control over shadow strength with linear distance within the falloff zone...
USDLUX_API UsdShadeInput GetInput(const TfToken &name) const
Return the requested input if it exists.
UsdLuxShadowAPI(const UsdPrim &prim=UsdPrim())
Construct a UsdLuxShadowAPI on UsdPrim prim .
Definition: shadowAPI.h:56
USDLUX_API std::vector< UsdShadeInput > GetInputs(bool onlyAuthored=true) const
Inputs are represented by attributes in the "inputs:" namespace.
USDLUX_API UsdAttribute CreateShadowFalloffGammaAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShadowFalloffGammaAttr(), and also Create vs Get Property Methods for when to use Get vs Creat...
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:117
The base class for all schema types in Usd.
Definition: schemaBase.h:39
Singleton registry that provides access to schema type information and the prim definitions for regis...
UsdShadeConnectableAPI is an API schema that provides a common interface for creating outputs and mak...
This class encapsulates a shader or node-graph input, which is a connectable attribute representing a...
Definition: input.h:32
This class encapsulates a shader or node-graph output, which is a connectable attribute representing ...
Definition: output.h:31
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:90
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:112
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:440