usdrt/scenegraph/usd/usdLux/diskLight.h

File members: usdrt/scenegraph/usd/usdLux/diskLight.h

// Copyright (c) 2022-2024, NVIDIA CORPORATION. All rights reserved.
//
// NVIDIA CORPORATION and its licensors retain all intellectual property
// and proprietary rights in and to this software, related documentation
// and any modifications thereto. Any use, reproduction, disclosure or
// distribution of this software and related documentation without an express
// license agreement from NVIDIA CORPORATION is strictly prohibited.
//
// TODO USD COPYRIGHT AS WELL?
#pragma once

// GENERATED FILE DO NOT EDIT

#include "usdrt/scenegraph/usd/usdLux/boundableLightBase.h"
#include "usdrt/scenegraph/usd/usdLux/tokens.h"

// ===================================================================== //
// Feel free to add custom includes between BEGIN and END CUSTOM INCLUDES
// below this line. It will be preserved by the code generator.
// We are using this instead of the `extraIncludes` in the pxr schema.usda
// files to allow for implementation differences in the custom code.
// ===================================================================== //
// --(BEGIN CUSTOM INCLUDES)--
// --(END CUSTOM INCLUDES)--

#include <omni/core/IObject.h>
#include <usdrt/scenegraph/base/tf/token.h>
#include <usdrt/scenegraph/base/vt/array.h>
#include <usdrt/scenegraph/interface/IRtAttribute.h>
#include <usdrt/scenegraph/interface/IRtPrim.h>
#include <usdrt/scenegraph/interface/IRtPrimRange.h>
#include <usdrt/scenegraph/interface/IRtRelationship.h>
#include <usdrt/scenegraph/interface/IRtStage.h>
#include <usdrt/scenegraph/usd/sdf/path.h>
#include <usdrt/scenegraph/usd/sdf/types.h>
#include <usdrt/scenegraph/usd/sdf/valueTypeName.h>
#include <usdrt/scenegraph/usd/usd/attribute.h>
#include <usdrt/scenegraph/usd/usd/common.h>
#include <usdrt/scenegraph/usd/usd/prim.h>
#include <usdrt/scenegraph/usd/usd/timeCode.h>

namespace usdrt
{

// -------------------------------------------------------------------------- //
// DISKLIGHT                                                                   //
// -------------------------------------------------------------------------- //

class UsdLuxDiskLight : public UsdLuxBoundableLightBase
{

public:
    static const UsdSchemaType schemaType = UsdSchemaType::ConcreteTyped;

    explicit UsdLuxDiskLight(const UsdPrim& prim = UsdPrim()) : UsdLuxBoundableLightBase(prim)
    {
    }

    explicit UsdLuxDiskLight(const UsdSchemaBase& schemaObj) : UsdLuxBoundableLightBase(schemaObj)
    {
    }

    virtual ~UsdLuxDiskLight()
    {
    }

    static UsdLuxDiskLight Define(const UsdStageRefPtr& stage, const SdfPath& path);

    static const TfToken _GetStaticTfType();

private:
    /* virtual */
    const TfToken _GetTfTypeToken() const override;

public:
    // --------------------------------------------------------------------- //
    // LIGHTSHADERID
    // --------------------------------------------------------------------- //

    UsdAttribute GetLightShaderIdAttr() const;

    UsdAttribute CreateLightShaderIdAttr() const;

public:
    // --------------------------------------------------------------------- //
    // RADIUS
    // --------------------------------------------------------------------- //

    UsdAttribute GetRadiusAttr() const;

    UsdAttribute CreateRadiusAttr() const;

    // ===================================================================== //
    // Feel free to add custom code for the class definition between BEGIN
    // and END CUSTOM DECLARATION CODE below this line. It will be preserved by
    // the code generator.
    // ===================================================================== //
    // --(BEGIN CUSTOM DECLARATION CODE)--
    // --(END CUSTOM DECLARATION CODE)--
};

inline const TfToken UsdLuxDiskLight::_GetStaticTfType()
{
    const static TfToken token("UsdLuxDiskLight");
    return token;
}

/* virtual */
inline const TfToken UsdLuxDiskLight::_GetTfTypeToken() const
{
    const static TfToken token("UsdLuxDiskLight");
    return token;
}

/* static */
inline UsdLuxDiskLight UsdLuxDiskLight::Define(const UsdStageRefPtr& stage, const SdfPath& path)
{
    if (!stage)
    {
        // TODO error
        return UsdLuxDiskLight();
    }
    return UsdLuxDiskLight(stage->DefinePrim(path, _GetStaticTfType()));
}

inline UsdAttribute UsdLuxDiskLight::GetLightShaderIdAttr() const
{

    return GetPrim().GetAttribute(TfToken(UsdLuxTokens->lightShaderId));
}

inline UsdAttribute UsdLuxDiskLight::CreateLightShaderIdAttr() const
{
    return GetPrim().CreateAttribute(TfToken(UsdLuxTokens->lightShaderId), SdfValueTypeNames->Token,
                                     /* custom = */ false);
}

inline UsdAttribute UsdLuxDiskLight::GetRadiusAttr() const
{

    return GetPrim().GetAttribute(TfToken(UsdLuxTokens->inputsRadius));
}

inline UsdAttribute UsdLuxDiskLight::CreateRadiusAttr() const
{
    return GetPrim().CreateAttribute(TfToken(UsdLuxTokens->inputsRadius), SdfValueTypeNames->Float,
                                     /* custom = */ false);
}

} // namespace usdrt
// ===================================================================== //
// Feel free to add custom code below this line. It will be preserved by
// the code generator.
//
// Just remember to wrap code in the appropriate delimiters:
// 'namespace usdrt {', '}'.
// ===================================================================== //
// --(BEGIN CUSTOM CODE)--