// // Copyright 2023 Pixar // // Licensed under the terms set forth in the LICENSE.txt file available at // https://openusd.org/license. // //////////////////////////////////////////////////////////////////////// /* ************************************************************************** */ /* ** ** */ /* ** This file is generated by a script. ** */ /* ** ** */ /* ** Do not edit it directly (unless it is within a CUSTOM CODE section)! ** */ /* ** Edit hdSchemaDefs.py instead to make changes. ** */ /* ** ** */ /* ************************************************************************** */ #include "{{ INCLUDE_PATH }}/{{ FILE_NAME }}.h" #include "pxr/imaging/hd/retainedDataSource.h" {%- if IMPL_SCHEMA_INCLUDES is defined -%} {%- for t in IMPL_SCHEMA_INCLUDES %} #include "{{ t | expand }}.h" {%- endfor -%} {%- endif %} #include "pxr/base/trace/trace.h" // --(BEGIN CUSTOM CODE: Includes)-- {%- if 'Includes' in CUSTOM_CODE_IMPL %} {{ CUSTOM_CODE_IMPL['Includes'] }} {%- endif %} // --(END CUSTOM CODE: Includes)-- PXR_NAMESPACE_OPEN_SCOPE TF_DEFINE_PUBLIC_TOKENS({{SCHEMA_CLASS_NAME}}Tokens, {{ SCHEMA_CLASS_NAME|snake }}_TOKENS); // --(BEGIN CUSTOM CODE: Schema Methods)-- {%- if 'Schema Methods' in CUSTOM_CODE_IMPL %} {{ CUSTOM_CODE_IMPL['Schema Methods'] }} {%- endif %} // --(END CUSTOM CODE: Schema Methods)-- {%- if GENERIC_MEMBER is defined -%} {%- set name, type_name, opt_dict = GENERIC_MEMBER -%} {%- if opt_dict.get('GETTER', True) %} TfTokenVector {{ SCHEMA_CLASS_NAME }}::Get{{ name | capitalizeFirst }}Names() {%- if VERSION_GUARD_CONST_GETTER %} #if HD_API_VERSION >= 66 const #else #endif {% else %} const {% endif -%} {#- if VERSION_GUARD_CONST_GETTER -#} { if (_container) { return _container->GetNames(); } else { return {}; } } {{ type_name}}{% if not type_name.endswith('Schema') %}Handle{% endif %} {{ SCHEMA_CLASS_NAME }}::Get{{ name | capitalizeFirst }}(const TfToken &name) {%- if VERSION_GUARD_CONST_GETTER %} #if HD_API_VERSION >= 66 const #else #endif {% else %} const {% endif -%} {#- if VERSION_GUARD_CONST_GETTER -#} { {%- if type_name.endswith('Schema') %} return {{type_name}}( _GetTypedDataSource<{{ type_name | underlyingDataSource}}>(name)); {%- else %} return _GetTypedDataSource<{{ type_name | underlyingDataSource}}>(name); {%- endif %} } {%- endif -%} {# if opt_dict.get('GETTER', True) #} {%- endif -%} {# if GENERIC_MEMBER is defiend #} {%- if MEMBERS is defined -%} {%- for name, type_name, opt_dict in MEMBERS -%} {%- if opt_dict.get('GETTER', True) %} {{ type_name}}{% if not type_name.endswith('Schema') %}Handle{% endif %} {{ SCHEMA_CLASS_NAME }}::Get{{ name|capitalizeFirst }}() {%- if VERSION_GUARD_CONST_GETTER %} #if HD_API_VERSION >= 66 const #else #endif {% else %} const {% endif -%} {#- if VERSION_GUARD_CONST_GETTER -#} { return {% if type_name.endswith('Schema') %}{{ type_name }}({% endif %}_GetTypedDataSource<{{type_name | underlyingDataSource}}>( {{SCHEMA_CLASS_NAME}}Tokens->{{ name }}){% if type_name.endswith('Schema') %}){% endif %}; } {%- endif -%} {# if opt_dict.get('GETTER', True) #} {%- endfor -%} {%- endif -%} {# if MEMBERS is defined #} {%- if GENERIC_MEMBER is defined %} /*static*/ HdContainerDataSourceHandle {{SCHEMA_CLASS_NAME}}::BuildRetained( const size_t count, const TfToken * const names, const HdDataSourceBaseHandle * const values) { return HdRetainedContainerDataSource::New(count, names, values); } {%- else -%} {%- if MEMBERS %} /*static*/ HdContainerDataSourceHandle {{ SCHEMA_CLASS_NAME }}::BuildRetained( {%- for name, type_name, opt_dict in MEMBERS %} const {{type_name | underlyingDataSource}}Handle &{{ name }}{%if loop.last == False %},{% endif -%} {%- endfor %} ) { TfToken _names[{{MEMBERS|length}}]; HdDataSourceBaseHandle _values[{{MEMBERS|length}}]; size_t _count = 0; {%- for name, type_name, opt_dict in MEMBERS %} if ({{name}}) { _names[_count] = {{SCHEMA_CLASS_NAME}}Tokens->{{name}}; _values[_count++] = {{name}}; } {%- endfor %} return HdRetainedContainerDataSource::New(_count, _names, _values); } {%- for name, type_name, opt_dict in MEMBERS %} {{ SCHEMA_CLASS_NAME }}::Builder & {{ SCHEMA_CLASS_NAME }}::Builder::Set{{ name|capitalizeFirst }}( const {{ type_name | underlyingDataSource}}Handle &{{name}}) { _{{name}} = {{name}}; return *this; } {%- endfor %} HdContainerDataSourceHandle {{ SCHEMA_CLASS_NAME }}::Builder::Build() { return {{ SCHEMA_CLASS_NAME }}::BuildRetained( {%- for name, type_name, opt_dict in MEMBERS %} _{{ name }}{%if loop.last == False %},{% endif -%} {%- endfor %} ); } {%- endif -%} {# else of if MEMBERS #} {%- endif -%} {# else of if GENERIC_MEMBER is defined #} {%- if SCHEMA_TOKEN is defined %} /*static*/ {{ SCHEMA_CLASS_NAME }} {{ SCHEMA_CLASS_NAME }}::GetFromParent( const HdContainerDataSourceHandle &fromParentContainer) { return {{ SCHEMA_CLASS_NAME }}( fromParentContainer ? HdContainerDataSource::Cast(fromParentContainer->Get( {{SCHEMA_CLASS_NAME}}Tokens->{{SCHEMA_TOKEN}})) : nullptr); } /*static*/ const TfToken & {{ SCHEMA_CLASS_NAME }}::GetSchemaToken() { return {{SCHEMA_CLASS_NAME}}Tokens->{{SCHEMA_TOKEN}}; } {%- endif -%} {%- if ADD_DEFAULT_LOCATOR is defined %} /*static*/ const HdDataSourceLocator & {{ SCHEMA_CLASS_NAME }}::GetDefaultLocator() { {%- if LOCATOR_PREFIX is defined %} static const HdDataSourceLocator locator = {{ LOCATOR_PREFIX }}.Append(GetSchemaToken()); {%- else %} static const HdDataSourceLocator locator(GetSchemaToken()); {%- endif %} return locator; } {%- endif -%} {%- if MEMBERS is defined -%} {%- for name, type_name, opt_dict in MEMBERS -%} {%- if opt_dict['ADD_LOCATOR'] %} /* static */ const HdDataSourceLocator & {{ SCHEMA_CLASS_NAME }}::Get{{ name |capitalizeFirst }}Locator() { static const HdDataSourceLocator locator = GetDefaultLocator().Append( {{SCHEMA_CLASS_NAME}}Tokens->{{name}}); return locator; } {%- endif -%} {# if opt_dict['ADD_LOCATOR'] #} {%- endfor -%} {%- endif -%} {# if MEMBERS is defined #} {%- if STATIC_LOCATOR_ACCESSORS is defined -%} {%- for name, tokens in STATIC_LOCATOR_ACCESSORS %} /*static*/ const HdDataSourceLocator & {{ SCHEMA_CLASS_NAME }}::Get{{name|capitalizeFirst}}Locator() { static const HdDataSourceLocator locator( {%- for t in tokens -%} {%if t is string %}{{SCHEMA_CLASS_NAME}}Tokens->{{ t }}{% else %}{{ t[0] }}SchemaTokens->{{ t[1] }}{% endif %}{%if loop.last == False %},{% endif -%} {%- endfor %} ); return locator; } {%- endfor -%} {%- endif -%} {# if STATIC_LOCATOR_ACCESSORS is defined #} {%- if STATIC_TOKEN_DATASOURCE_BUILDERS is defined -%} {%- for typeName, tokens in STATIC_TOKEN_DATASOURCE_BUILDERS %} /*static*/ HdTokenDataSourceHandle {{ SCHEMA_CLASS_NAME }}::Build{{typeName|capitalizeFirst}}DataSource( const TfToken &{{typeName}}) { {% for token in tokens %} if ({{typeName}} == {{SCHEMA_CLASS_NAME}}Tokens->{{ token | tokenName }}) { static const HdRetainedTypedSampledDataSource::Handle ds = HdRetainedTypedSampledDataSource::New({{typeName}}); return ds; } {%- endfor %} // fallback for unknown token return HdRetainedTypedSampledDataSource::New({{typeName}}); } {%- endfor -%} {%- endif %} {# if STATIC_TOKEN_DATASOURCE_BUILDERS is defined #} PXR_NAMESPACE_CLOSE_SCOPE