7#ifndef PXR_USD_SDR_DECLARE_H
8#define PXR_USD_SDR_DECLARE_H
18#include "pxr/usd/sdr/api.h"
24#include <unordered_map>
25#include <unordered_set>
28PXR_NAMESPACE_OPEN_SCOPE
38inline const std::string&
39SdrGetIdentifierString(
const SdrIdentifier&
id) {
return id.GetString(); }
40typedef std::vector<SdrIdentifier> SdrIdentifierVec;
45typedef std::vector<TfToken> SdrTokenVec;
46typedef std::unordered_map<
TfToken, std::string,
52typedef std::unique_ptr<SdrShaderNode> SdrShaderNodeUniquePtr;
53typedef std::vector<SdrShaderNodeConstPtr> SdrShaderNodeConstPtrVec;
54typedef SdrShaderNodeConstPtrVec SdrShaderNodePtrVec;
55typedef std::vector<SdrShaderNodeUniquePtr> SdrShaderNodeUniquePtrVec;
60typedef std::unique_ptr<SdrShaderProperty> SdrShaderPropertyUniquePtr;
61typedef std::vector<SdrShaderPropertyUniquePtr> SdrShaderPropertyUniquePtrVec;
62typedef std::unordered_map<
TfToken, SdrShaderPropertyConstPtr,
64typedef SdrShaderPropertyMap SdrPropertyMap;
67typedef std::vector<std::string> SdrStringVec;
68typedef std::pair<TfToken, TfToken> SdrOption;
69typedef std::vector<SdrOption> SdrOptionVec;
70typedef std::unordered_set<std::string> SdrStringSet;
118 return (
static_cast<std::size_t
>(_major) << 32) +
119 static_cast<std::size_t
>(_minor);
124 explicit operator bool()
const
133 return _major == 0 && _minor == 0;
140 return lhs._major == rhs._major && lhs._minor == rhs._minor;
147 return !(lhs == rhs);
154 return lhs._major < rhs._major ||
155 (lhs._major == rhs._major && lhs._minor < rhs._minor);
162 return lhs._major < rhs._major ||
163 (lhs._major == rhs._major && lhs._minor <= rhs._minor);
170 return !(lhs <= rhs);
182 : _major(x._major), _minor(x._minor), _isDefault(true) { }
185 int _major = 0, _minor = 0;
186 bool _isDefault =
false;
191 SdrVersionFilterDefaultOnly,
192 SdrVersionFilterAllVersions,
221PXR_NAMESPACE_CLOSE_SCOPE
Represents a value type name, i.e.
Represents a node that holds shading information.
Represents a property (input or output) that is part of a SdrShaderNode instance.
SDR_API int GetMajor() const
Return the major version number or zero for an invalid version.
SDR_API std::string GetStringSuffix() const
Return the version as a identifier suffix.
SDR_API std::string GetString() const
Return the version as a string.
SDR_API friend bool operator==(const SdrVersion &lhs, const SdrVersion &rhs)
Return true iff versions are equal.
SDR_API bool IsDefault() const
Return true iff this version is marked as default.
SDR_API SdrVersion(const std::string &x)
Create a version from a string.
SDR_API friend bool operator<=(const SdrVersion &lhs, const SdrVersion &rhs)
Return true iff the left side is less than or equal to the right side.
SDR_API SdrVersion GetAsDefault() const
Return an equal version marked as default.
SDR_API friend bool operator!=(const SdrVersion &lhs, const SdrVersion &rhs)
Return true iff versions are not equal.
SDR_API bool operator!() const
Return true iff the version is invalid.
SDR_API std::size_t GetHash() const
Return a hash for the version.
SDR_API friend bool operator>=(const SdrVersion &lhs, const SdrVersion &rhs)
Return true iff the left side is greater than or equal to the right side.
SDR_API int GetMinor() const
Return the minor version number or zero for an invalid version.
SDR_API friend bool operator<(const SdrVersion &lhs, const SdrVersion &rhs)
Return true iff the left side is less than the right side.
SDR_API SdrVersion()=default
Create an invalid version.
SDR_API friend bool operator>(const SdrVersion &lhs, const SdrVersion &rhs)
Return true iff the left side is greater than the right side.
SDR_API SdrVersion(int major, int minor=0)
Create a version with the given major and minor numbers.
Token for efficient comparison, assignment, and hashing of known strings.
Functor to use for hash maps from tokens to other things.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
Common typedefs that are used throughout the NDR library.
NdrVersionFilter
Enumeration used to select nodes by version.
SDR_API NdrVersion SdrToNdrVersion(SdrVersion version)
Helper function to translate SdrVersion to NdrVersion.
SDR_API NdrVersionFilter SdrVersionFilterToNdr(SdrVersionFilter filter)
Helper function to translate SdrVersionFilter values to NdrVersionFilter values.
TfToken SdrIdentifier
Common typedefs that are used throughout the SDR library.
SdrVersionFilter
Enumeration used to select nodes by version.
SDR_API SdrVersion NdrToSdrVersion(NdrVersion version)
Helper function to translate NdrVersion to SdrVersion.