Loading...
Searching...
No Matches
lightAPI.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_LIGHTAPI_H
8#define USDLUX_GENERATED_LIGHTAPI_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
20#include "pxr/usd/usdShade/input.h"
21#include "pxr/usd/usdShade/output.h"
22
23#include "pxr/base/vt/value.h"
24
25#include "pxr/base/gf/vec3d.h"
26#include "pxr/base/gf/vec3f.h"
28
29#include "pxr/base/tf/token.h"
30#include "pxr/base/tf/type.h"
31
32PXR_NAMESPACE_OPEN_SCOPE
33
34class SdfAssetPath;
35
36// -------------------------------------------------------------------------- //
37// LIGHTAPI //
38// -------------------------------------------------------------------------- //
39
116{
117public:
121 static const UsdSchemaKind schemaKind = UsdSchemaKind::SingleApplyAPI;
122
127 explicit UsdLuxLightAPI(const UsdPrim& prim=UsdPrim())
128 : UsdAPISchemaBase(prim)
129 {
130 }
131
135 explicit UsdLuxLightAPI(const UsdSchemaBase& schemaObj)
136 : UsdAPISchemaBase(schemaObj)
137 {
138 }
139
141 USDLUX_API
143
147 USDLUX_API
148 static const TfTokenVector &
149 GetSchemaAttributeNames(bool includeInherited=true);
150
160 USDLUX_API
161 static UsdLuxLightAPI
162 Get(const UsdStagePtr &stage, const SdfPath &path);
163
164
181 USDLUX_API
182 static bool
183 CanApply(const UsdPrim &prim, std::string *whyNot=nullptr);
184
200 USDLUX_API
201 static UsdLuxLightAPI
202 Apply(const UsdPrim &prim);
203
204protected:
208 USDLUX_API
210
211private:
212 // needs to invoke _GetStaticTfType.
213 friend class UsdSchemaRegistry;
214 USDLUX_API
215 static const TfType &_GetStaticTfType();
216
217 static bool _IsTypedSchema();
218
219 // override SchemaBase virtuals.
220 USDLUX_API
221 const TfType &_GetTfType() const override;
222
223public:
224 // --------------------------------------------------------------------- //
225 // SHADERID
226 // --------------------------------------------------------------------- //
248 USDLUX_API
250
256 USDLUX_API
257 UsdAttribute CreateShaderIdAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
258
259public:
260 // --------------------------------------------------------------------- //
261 // MATERIALSYNCMODE
262 // --------------------------------------------------------------------- //
299 USDLUX_API
301
307 USDLUX_API
308 UsdAttribute CreateMaterialSyncModeAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
309
310public:
311 // --------------------------------------------------------------------- //
312 // INTENSITY
313 // --------------------------------------------------------------------- //
336 USDLUX_API
338
344 USDLUX_API
345 UsdAttribute CreateIntensityAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
346
347public:
348 // --------------------------------------------------------------------- //
349 // EXPOSURE
350 // --------------------------------------------------------------------- //
372 USDLUX_API
374
380 USDLUX_API
381 UsdAttribute CreateExposureAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
382
383public:
384 // --------------------------------------------------------------------- //
385 // DIFFUSE
386 // --------------------------------------------------------------------- //
395 USDLUX_API
397
403 USDLUX_API
404 UsdAttribute CreateDiffuseAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
405
406public:
407 // --------------------------------------------------------------------- //
408 // SPECULAR
409 // --------------------------------------------------------------------- //
418 USDLUX_API
420
426 USDLUX_API
427 UsdAttribute CreateSpecularAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
428
429public:
430 // --------------------------------------------------------------------- //
431 // NORMALIZE
432 // --------------------------------------------------------------------- //
551 USDLUX_API
553
559 USDLUX_API
560 UsdAttribute CreateNormalizeAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
561
562public:
563 // --------------------------------------------------------------------- //
564 // COLOR
565 // --------------------------------------------------------------------- //
587 USDLUX_API
589
595 USDLUX_API
596 UsdAttribute CreateColorAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
597
598public:
599 // --------------------------------------------------------------------- //
600 // ENABLECOLORTEMPERATURE
601 // --------------------------------------------------------------------- //
609 USDLUX_API
611
617 USDLUX_API
618 UsdAttribute CreateEnableColorTemperatureAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
619
620public:
621 // --------------------------------------------------------------------- //
622 // COLORTEMPERATURE
623 // --------------------------------------------------------------------- //
648 USDLUX_API
650
656 USDLUX_API
657 UsdAttribute CreateColorTemperatureAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
658
659public:
660 // --------------------------------------------------------------------- //
661 // FILTERS
662 // --------------------------------------------------------------------- //
665 USDLUX_API
667
670 USDLUX_API
672
673public:
674 // ===================================================================== //
675 // Feel free to add custom code below this line, it will be preserved by
676 // the code generator.
677 //
678 // Just remember to:
679 // - Close the class declaration with };
680 // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
681 // - Close the include guard with #endif
682 // ===================================================================== //
683 // --(BEGIN CUSTOM CODE)--
684
685 // -------------------------------------------------------------------------
689
692 USDLUX_API
694
703 USDLUX_API
705
707
708 // -------------------------------------------------------------------------
715
721 USDLUX_API
723 const SdfValueTypeName& typeName);
724
727 USDLUX_API
728 UsdShadeOutput GetOutput(const TfToken &name) const;
729
734 USDLUX_API
735 std::vector<UsdShadeOutput> GetOutputs(bool onlyAuthored=true) const;
736
738
739 // -------------------------------------------------------------------------
740
748
753 USDLUX_API
755 const SdfValueTypeName& typeName);
756
759 USDLUX_API
760 UsdShadeInput GetInput(const TfToken &name) const;
761
766 USDLUX_API
767 std::vector<UsdShadeInput> GetInputs(bool onlyAuthored=true) const;
768
770
774 USDLUX_API
776
780 USDLUX_API
782
797 USDLUX_API
799 const TfToken &renderContext) const;
800
808 USDLUX_API
810 const TfToken &renderContext,
811 VtValue const &defaultValue = VtValue(),
812 bool writeSparsely=false) const;
813
829 USDLUX_API
830 TfToken GetShaderId(const TfTokenVector &renderContexts) const;
831};
832
833PXR_NAMESPACE_CLOSE_SCOPE
834
835#endif
Contains an asset path and optional evaluated and resolved paths.
Definition: assetPath.h:79
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:281
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:95
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:183
A general purpose API schema used to describe a collection of prims and properties within a scene.
API schema that imparts the quality of being a light onto a prim.
Definition: lightAPI.h:116
USDLUX_API TfToken GetShaderId(const TfTokenVector &renderContexts) const
Return the light's shader ID for the given list of available renderContexts.
USDLUX_API UsdCollectionAPI GetLightLinkCollectionAPI() const
Return the UsdCollectionAPI interface used for examining and modifying the light-linking of this ligh...
USDLUX_API UsdAttribute GetMaterialSyncModeAttr() const
For a LightAPI applied to geometry that has a bound Material, which is entirely or partly emissive,...
USDLUX_API UsdAttribute GetEnableColorTemperatureAttr() const
Enables using colorTemperature.
USDLUX_API UsdAttribute CreateColorTemperatureAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetColorTemperatureAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API UsdAttribute CreateNormalizeAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetNormalizeAttr(), 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 UsdShadeOutput CreateOutput(const TfToken &name, const SdfValueTypeName &typeName)
Create an output which can either have a value or can be connected.
UsdLuxLightAPI(const UsdPrim &prim=UsdPrim())
Construct a UsdLuxLightAPI on UsdPrim prim .
Definition: lightAPI.h:127
USDLUX_API UsdAttribute CreateSpecularAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetSpecularAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: lightAPI.h:121
USDLUX_API UsdShadeInput CreateInput(const TfToken &name, const SdfValueTypeName &typeName)
Create an input which can either have a value or can be connected.
static USDLUX_API UsdLuxLightAPI Apply(const UsdPrim &prim)
Applies this single-apply API schema to the given prim.
USDLUX_API UsdAttribute GetShaderIdAttr() const
Default ID for the light's shader.
USDLUX_API UsdAttribute GetShaderIdAttrForRenderContext(const TfToken &renderContext) const
Returns the shader ID attribute for the given renderContext.
USDLUX_API UsdAttribute CreateShaderIdAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShaderIdAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API UsdCollectionAPI GetShadowLinkCollectionAPI() const
Return the UsdCollectionAPI interface used for examining and modifying the shadow-linking of this lig...
USDLUX_API UsdAttribute CreateIntensityAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetIntensityAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API UsdShadeConnectableAPI ConnectableAPI() const
Contructs and returns a UsdShadeConnectableAPI object with this light.
USDLUX_API UsdAttribute GetDiffuseAttr() const
A multiplier for the effect of this light on the diffuse response of materials.
static USDLUX_API UsdLuxLightAPI Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdLuxLightAPI holding the prim adhering to this schema at path on stage.
USDLUX_API UsdAttribute GetExposureAttr() const
Scales the brightness of the light exponentially as a power of 2 (similar to an F-stop control over e...
USDLUX_API UsdAttribute CreateEnableColorTemperatureAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetEnableColorTemperatureAttr(), and also Create vs Get Property Methods for when to use Get vs C...
USDLUX_API UsdAttribute CreateExposureAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetExposureAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API UsdRelationship GetFiltersRel() const
Relationship to the light filters that apply to this light.
USDLUX_API UsdAttribute GetIntensityAttr() const
Scales the brightness of the light linearly.
USDLUX_API UsdRelationship CreateFiltersRel() const
See GetFiltersRel(), and also Create vs Get Property Methods for when to use Get vs Create.
virtual USDLUX_API ~UsdLuxLightAPI()
Destructor.
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.
USDLUX_API UsdAttribute GetNormalizeAttr() const
Normalizes the emission such that the power of the light remains constant while altering the size of ...
USDLUX_API UsdLuxLightAPI(const UsdShadeConnectableAPI &connectable)
Constructor that takes a ConnectableAPI object.
USDLUX_API UsdAttribute CreateDiffuseAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetDiffuseAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
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 GetColorTemperatureAttr() const
Color temperature, in degrees Kelvin, representing the white point.
USDLUX_API UsdAttribute GetSpecularAttr() const
A multiplier for the effect of this light on the specular response of materials.
UsdLuxLightAPI(const UsdSchemaBase &schemaObj)
Construct a UsdLuxLightAPI on the prim held by schemaObj .
Definition: lightAPI.h:135
USDLUX_API UsdAttribute CreateMaterialSyncModeAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetMaterialSyncModeAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API UsdShadeInput GetInput(const TfToken &name) const
Return the requested input if it exists.
USDLUX_API UsdAttribute CreateShaderIdAttrForRenderContext(const TfToken &renderContext, VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
Creates the shader ID attribute for the given renderContext.
USDLUX_API UsdAttribute CreateColorAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetColorAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API std::vector< UsdShadeInput > GetInputs(bool onlyAuthored=true) const
Inputs are represented by attributes in the "inputs:" namespace.
USDLUX_API UsdAttribute GetColorAttr() const
The color of emitted light, in the rendering color space.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:117
A UsdRelationship creates dependencies between scenegraph objects by allowing a prim to target other ...
Definition: relationship.h:111
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