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
108{
109public:
113 static const UsdSchemaKind schemaKind = UsdSchemaKind::SingleApplyAPI;
114
119 explicit UsdLuxLightAPI(const UsdPrim& prim=UsdPrim())
120 : UsdAPISchemaBase(prim)
121 {
122 }
123
127 explicit UsdLuxLightAPI(const UsdSchemaBase& schemaObj)
128 : UsdAPISchemaBase(schemaObj)
129 {
130 }
131
133 USDLUX_API
135
139 USDLUX_API
140 static const TfTokenVector &
141 GetSchemaAttributeNames(bool includeInherited=true);
142
152 USDLUX_API
153 static UsdLuxLightAPI
154 Get(const UsdStagePtr &stage, const SdfPath &path);
155
156
173 USDLUX_API
174 static bool
175 CanApply(const UsdPrim &prim, std::string *whyNot=nullptr);
176
192 USDLUX_API
193 static UsdLuxLightAPI
194 Apply(const UsdPrim &prim);
195
196protected:
200 USDLUX_API
202
203private:
204 // needs to invoke _GetStaticTfType.
205 friend class UsdSchemaRegistry;
206 USDLUX_API
207 static const TfType &_GetStaticTfType();
208
209 static bool _IsTypedSchema();
210
211 // override SchemaBase virtuals.
212 USDLUX_API
213 const TfType &_GetTfType() const override;
214
215public:
216 // --------------------------------------------------------------------- //
217 // SHADERID
218 // --------------------------------------------------------------------- //
240 USDLUX_API
242
248 USDLUX_API
249 UsdAttribute CreateShaderIdAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
250
251public:
252 // --------------------------------------------------------------------- //
253 // MATERIALSYNCMODE
254 // --------------------------------------------------------------------- //
291 USDLUX_API
293
299 USDLUX_API
300 UsdAttribute CreateMaterialSyncModeAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
301
302public:
303 // --------------------------------------------------------------------- //
304 // INTENSITY
305 // --------------------------------------------------------------------- //
328 USDLUX_API
330
336 USDLUX_API
337 UsdAttribute CreateIntensityAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
338
339public:
340 // --------------------------------------------------------------------- //
341 // EXPOSURE
342 // --------------------------------------------------------------------- //
364 USDLUX_API
366
372 USDLUX_API
373 UsdAttribute CreateExposureAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
374
375public:
376 // --------------------------------------------------------------------- //
377 // DIFFUSE
378 // --------------------------------------------------------------------- //
387 USDLUX_API
389
395 USDLUX_API
396 UsdAttribute CreateDiffuseAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
397
398public:
399 // --------------------------------------------------------------------- //
400 // SPECULAR
401 // --------------------------------------------------------------------- //
410 USDLUX_API
412
418 USDLUX_API
419 UsdAttribute CreateSpecularAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
420
421public:
422 // --------------------------------------------------------------------- //
423 // NORMALIZE
424 // --------------------------------------------------------------------- //
543 USDLUX_API
545
551 USDLUX_API
552 UsdAttribute CreateNormalizeAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
553
554public:
555 // --------------------------------------------------------------------- //
556 // COLOR
557 // --------------------------------------------------------------------- //
579 USDLUX_API
581
587 USDLUX_API
588 UsdAttribute CreateColorAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
589
590public:
591 // --------------------------------------------------------------------- //
592 // ENABLECOLORTEMPERATURE
593 // --------------------------------------------------------------------- //
601 USDLUX_API
603
609 USDLUX_API
610 UsdAttribute CreateEnableColorTemperatureAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
611
612public:
613 // --------------------------------------------------------------------- //
614 // COLORTEMPERATURE
615 // --------------------------------------------------------------------- //
640 USDLUX_API
642
648 USDLUX_API
649 UsdAttribute CreateColorTemperatureAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
650
651public:
652 // --------------------------------------------------------------------- //
653 // FILTERS
654 // --------------------------------------------------------------------- //
657 USDLUX_API
659
662 USDLUX_API
664
665public:
666 // ===================================================================== //
667 // Feel free to add custom code below this line, it will be preserved by
668 // the code generator.
669 //
670 // Just remember to:
671 // - Close the class declaration with };
672 // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
673 // - Close the include guard with #endif
674 // ===================================================================== //
675 // --(BEGIN CUSTOM CODE)--
676
677 // -------------------------------------------------------------------------
681
684 USDLUX_API
686
695 USDLUX_API
697
699
700 // -------------------------------------------------------------------------
707
713 USDLUX_API
715 const SdfValueTypeName& typeName);
716
719 USDLUX_API
720 UsdShadeOutput GetOutput(const TfToken &name) const;
721
726 USDLUX_API
727 std::vector<UsdShadeOutput> GetOutputs(bool onlyAuthored=true) const;
728
730
731 // -------------------------------------------------------------------------
732
740
745 USDLUX_API
747 const SdfValueTypeName& typeName);
748
751 USDLUX_API
752 UsdShadeInput GetInput(const TfToken &name) const;
753
758 USDLUX_API
759 std::vector<UsdShadeInput> GetInputs(bool onlyAuthored=true) const;
760
762
766 USDLUX_API
768
772 USDLUX_API
774
789 USDLUX_API
791 const TfToken &renderContext) const;
792
800 USDLUX_API
802 const TfToken &renderContext,
803 VtValue const &defaultValue = VtValue(),
804 bool writeSparsely=false) const;
805
821 USDLUX_API
822 TfToken GetShaderId(const TfTokenVector &renderContexts) const;
823};
824
825PXR_NAMESPACE_CLOSE_SCOPE
826
827#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
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:108
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:119
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:113
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:127
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