Loading...
Searching...
No Matches
dynamicFileFormatInterface.h
1//
2// Copyright 2019 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 PXR_USD_PCP_DYNAMIC_FILE_FORMAT_INTERFACE_H
25#define PXR_USD_PCP_DYNAMIC_FILE_FORMAT_INTERFACE_H
26
27#include "pxr/pxr.h"
28#include "pxr/usd/pcp/api.h"
30
31PXR_NAMESPACE_OPEN_SCOPE
32
34class VtValue;
35
48{
49public:
51 PCP_API
53
73 PCP_API
75 const std::string &assetPath,
76 const PcpDynamicFileFormatContext &context,
78 VtValue *dependencyContextData) const = 0;
79
99 PCP_API
101 const TfToken &field,
102 const VtValue &oldValue,
103 const VtValue &newValue,
104 const VtValue &dependencyContextData) const;
105
125 PCP_API
127 const TfToken &attributeName,
128 const VtValue &oldValue,
129 const VtValue &newValue,
130 const VtValue &dependencyContextData) const;
131};
132
133PXR_NAMESPACE_CLOSE_SCOPE
134
135#endif // PXR_USD_PCP_DYNAMIC_FILE_FORMAT_INTERFACE_H
Context object for the current state of a prim index that is being built that allows implementations ...
Interface mixin that can be included by SdfFileFormat subclasses to enable dynamic file format argume...
virtual PCP_API bool CanFieldChangeAffectFileFormatArguments(const TfToken &field, const VtValue &oldValue, const VtValue &newValue, const VtValue &dependencyContextData) const
Return true if the change to scene description of the field named field can affect the dynamic file f...
virtual PCP_API void ComposeFieldsForFileFormatArguments(const std::string &assetPath, const PcpDynamicFileFormatContext &context, SdfFileFormat::FileFormatArguments *args, VtValue *dependencyContextData) const =0
Derived classes must implement this function to compose prim metadata fields and/or attribute default...
virtual PCP_API bool CanAttributeDefaultValueChangeAffectFileFormatArguments(const TfToken &attributeName, const VtValue &oldValue, const VtValue &newValue, const VtValue &dependencyContextData) const
Return true if the change to scene description of the default field for the attribute named attribute...
virtual PCP_API ~PcpDynamicFileFormatInterface()
Empty virtual destructor to prevent build errors with some compilers.
std::map< std::string, std::string > FileFormatArguments
Type for specifying additional file format-specific arguments to the various API below.
Definition: fileFormat.h:119
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:88
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:164