shapingAPI.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 USDLUX_GENERATED_SHAPINGAPI_H
25 #define USDLUX_GENERATED_SHAPINGAPI_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdLux/api.h"
32 #include "pxr/usd/usd/prim.h"
33 #include "pxr/usd/usd/stage.h"
34 #include "pxr/usd/usdLux/tokens.h"
35 
36 #include "pxr/usd/usdShade/input.h"
37 #include "pxr/usd/usdShade/output.h"
38 
39 #include "pxr/base/vt/value.h"
40 
41 #include "pxr/base/gf/vec3d.h"
42 #include "pxr/base/gf/vec3f.h"
43 #include "pxr/base/gf/matrix4d.h"
44 
45 #include "pxr/base/tf/token.h"
46 #include "pxr/base/tf/type.h"
47 
48 PXR_NAMESPACE_OPEN_SCOPE
49 
50 class SdfAssetPath;
51 
52 // -------------------------------------------------------------------------- //
53 // SHAPINGAPI //
54 // -------------------------------------------------------------------------- //
55 
61 {
62 public:
67 
72  explicit UsdLuxShapingAPI(const UsdPrim& prim=UsdPrim())
73  : UsdAPISchemaBase(prim)
74  {
75  }
76 
80  explicit UsdLuxShapingAPI(const UsdSchemaBase& schemaObj)
81  : UsdAPISchemaBase(schemaObj)
82  {
83  }
84 
86  USDLUX_API
87  virtual ~UsdLuxShapingAPI();
88 
92  USDLUX_API
93  static const TfTokenVector &
94  GetSchemaAttributeNames(bool includeInherited=true);
95 
105  USDLUX_API
106  static UsdLuxShapingAPI
107  Get(const UsdStagePtr &stage, const SdfPath &path);
108 
109 
126  USDLUX_API
127  static bool
128  CanApply(const UsdPrim &prim, std::string *whyNot=nullptr);
129 
145  USDLUX_API
146  static UsdLuxShapingAPI
147  Apply(const UsdPrim &prim);
148 
149 protected:
153  USDLUX_API
154  UsdSchemaKind _GetSchemaKind() const override;
155 
156 private:
157  // needs to invoke _GetStaticTfType.
158  friend class UsdSchemaRegistry;
159  USDLUX_API
160  static const TfType &_GetStaticTfType();
161 
162  static bool _IsTypedSchema();
163 
164  // override SchemaBase virtuals.
165  USDLUX_API
166  const TfType &_GetTfType() const override;
167 
168 public:
169  // --------------------------------------------------------------------- //
170  // SHAPING:FOCUS
171  // --------------------------------------------------------------------- //
182  USDLUX_API
184 
190  USDLUX_API
191  UsdAttribute CreateShapingFocusAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
192 
193 public:
194  // --------------------------------------------------------------------- //
195  // SHAPING:FOCUSTINT
196  // --------------------------------------------------------------------- //
206  USDLUX_API
208 
214  USDLUX_API
215  UsdAttribute CreateShapingFocusTintAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
216 
217 public:
218  // --------------------------------------------------------------------- //
219  // SHAPING:CONE:ANGLE
220  // --------------------------------------------------------------------- //
229  USDLUX_API
231 
237  USDLUX_API
238  UsdAttribute CreateShapingConeAngleAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
239 
240 public:
241  // --------------------------------------------------------------------- //
242  // SHAPING:CONE:SOFTNESS
243  // --------------------------------------------------------------------- //
252  USDLUX_API
254 
260  USDLUX_API
261  UsdAttribute CreateShapingConeSoftnessAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
262 
263 public:
264  // --------------------------------------------------------------------- //
265  // SHAPING:IES:FILE
266  // --------------------------------------------------------------------- //
275  USDLUX_API
277 
283  USDLUX_API
284  UsdAttribute CreateShapingIesFileAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
285 
286 public:
287  // --------------------------------------------------------------------- //
288  // SHAPING:IES:ANGLESCALE
289  // --------------------------------------------------------------------- //
298  USDLUX_API
300 
306  USDLUX_API
307  UsdAttribute CreateShapingIesAngleScaleAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
308 
309 public:
310  // --------------------------------------------------------------------- //
311  // SHAPING:IES:NORMALIZE
312  // --------------------------------------------------------------------- //
321  USDLUX_API
323 
329  USDLUX_API
330  UsdAttribute CreateShapingIesNormalizeAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
331 
332 public:
333  // ===================================================================== //
334  // Feel free to add custom code below this line, it will be preserved by
335  // the code generator.
336  //
337  // Just remember to:
338  // - Close the class declaration with };
339  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
340  // - Close the include guard with #endif
341  // ===================================================================== //
342  // --(BEGIN CUSTOM CODE)--
343 
344  // -------------------------------------------------------------------------
348 
352  USDLUX_API
353  UsdLuxShapingAPI(const UsdShadeConnectableAPI &connectable);
354 
359  USDLUX_API
361 
363 
364  // -------------------------------------------------------------------------
371 
377  USDLUX_API
378  UsdShadeOutput CreateOutput(const TfToken& name,
379  const SdfValueTypeName& typeName);
380 
383  USDLUX_API
384  UsdShadeOutput GetOutput(const TfToken &name) const;
385 
390  USDLUX_API
391  std::vector<UsdShadeOutput> GetOutputs(bool onlyAuthored=true) const;
392 
394 
395  // -------------------------------------------------------------------------
396 
404 
409  USDLUX_API
410  UsdShadeInput CreateInput(const TfToken& name,
411  const SdfValueTypeName& typeName);
412 
415  USDLUX_API
416  UsdShadeInput GetInput(const TfToken &name) const;
417 
422  USDLUX_API
423  std::vector<UsdShadeInput> GetInputs(bool onlyAuthored=true) const;
424 
426 };
427 
428 PXR_NAMESPACE_CLOSE_SCOPE
429 
430 #endif
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 GetShapingFocusTintAttr() const
Off-axis color tint.
USDLUX_API UsdAttribute CreateShapingFocusTintAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShapingFocusTintAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API UsdAttribute GetShapingFocusAttr() const
A control to shape the spread of light.
USDLUX_API UsdAttribute GetShapingIesAngleScaleAttr() const
Rescales the angular distribution of the IES profile.
USDLUX_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: shapingAPI.h:66
Represents a value type name, i.e.
Definition: valueTypeName.h:87
USDLUX_API UsdAttribute GetShapingConeAngleAttr() const
Angular limit off the primary axis to restrict the light spread.
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...
The base class for all API schemas.
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:176
USDLUX_API UsdAttribute GetShapingIesFileAttr() const
An IES (Illumination Engineering Society) light profile describing the angular distribution of light.
This class encapsulates a shader or node-graph input, which is a connectable attribute representing a...
Definition: input.h:48
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:127
UsdLuxShapingAPI(const UsdSchemaBase &schemaObj)
Construct a UsdLuxShapingAPI on the prim held by schemaObj .
Definition: shapingAPI.h:80
Controls for shaping a light's emission.
Definition: shapingAPI.h:60
USDLUX_API UsdShadeOutput GetOutput(const TfToken &name) const
Return the requested output if it exists.
Single Apply API schema.
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:87
USDLUX_API std::vector< UsdShadeOutput > GetOutputs(bool onlyAuthored=true) const
Outputs are represented by attributes in the "outputs:" namespace.
USDLUX_API std::vector< UsdShadeInput > GetInputs(bool onlyAuthored=true) const
Inputs are represented by attributes in the "inputs:" namespace.
USDLUX_API UsdShadeInput GetInput(const TfToken &name) const
Return the requested input if it exists.
USDLUX_API UsdAttribute CreateShapingIesAngleScaleAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShapingIesAngleScaleAttr(), and also Create vs Get Property Methods for when to use Get vs Cre...
USDLUX_API UsdAttribute CreateShapingIesFileAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShapingIesFileAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
UsdShadeConnectableAPI is an API schema that provides a common interface for creating outputs and mak...
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 GetShapingConeSoftnessAttr() const
Controls the cutoff softness for cone angle.
virtual USDLUX_API ~UsdLuxShapingAPI()
Destructor.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:134
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:442
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:290
static USDLUX_API UsdLuxShapingAPI Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdLuxShapingAPI holding the prim adhering to this schema at path on stage.
USDLUX_API UsdAttribute CreateShapingConeSoftnessAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShapingConeSoftnessAttr(), and also Create vs Get Property Methods for when to use Get vs Crea...
USDLUX_API UsdAttribute CreateShapingFocusAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShapingFocusAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDLUX_API UsdAttribute CreateShapingIesNormalizeAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShapingIesNormalizeAttr(), and also Create vs Get Property Methods for when to use Get vs Crea...
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
UsdLuxShapingAPI(const UsdPrim &prim=UsdPrim())
Construct a UsdLuxShapingAPI on UsdPrim prim .
Definition: shapingAPI.h:72
static USDLUX_API UsdLuxShapingAPI Apply(const UsdPrim &prim)
Applies this single-apply API schema to the given prim.
USDLUX_API UsdAttribute CreateShapingConeAngleAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetShapingConeAngleAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
TfType represents a dynamic runtime type.
Definition: type.h:64
Singleton registry that provides access to schema type information and the prim definitions for regis...
This class encapsulates a shader or node-graph output, which is a connectable attribute representing ...
Definition: output.h:47
The base class for all schema types in Usd.
Definition: schemaBase.h:56
USDLUX_API UsdAttribute GetShapingIesNormalizeAttr() const
Normalizes the IES profile so that it affects the shaping of the light while preserving the overall e...
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:166
USDLUX_API UsdShadeConnectableAPI ConnectableAPI() const
Contructs and returns a UsdShadeConnectableAPI object with this shaping API prim.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
USDLUX_API UsdShadeOutput CreateOutput(const TfToken &name, const SdfValueTypeName &typeName)
Create an output which can either have a value or can be connected.