7#ifndef PXR_USD_SDR_DECLARE_H
8#define PXR_USD_SDR_DECLARE_H
13#include "pxr/usd/sdr/api.h"
18#include <unordered_map>
19#include <unordered_set>
22PXR_NAMESPACE_OPEN_SCOPE
32inline const std::string&
33SdrGetIdentifierString(
const SdrIdentifier&
id) {
return id.GetString(); }
34typedef std::vector<SdrIdentifier> SdrIdentifierVec;
39typedef std::vector<TfToken> SdrTokenVec;
40typedef std::unordered_map<
TfToken, std::string,
46typedef std::unique_ptr<SdrShaderNode> SdrShaderNodeUniquePtr;
47typedef std::vector<SdrShaderNodeConstPtr> SdrShaderNodeConstPtrVec;
48typedef SdrShaderNodeConstPtrVec SdrShaderNodePtrVec;
49typedef std::vector<SdrShaderNodeUniquePtr> SdrShaderNodeUniquePtrVec;
54typedef std::unique_ptr<SdrShaderProperty> SdrShaderPropertyUniquePtr;
55typedef std::vector<SdrShaderPropertyUniquePtr> SdrShaderPropertyUniquePtrVec;
56typedef std::unordered_map<
TfToken, SdrShaderPropertyConstPtr,
58typedef SdrShaderPropertyMap SdrPropertyMap;
61typedef std::vector<std::string> SdrStringVec;
62typedef std::pair<TfToken, TfToken> SdrOption;
63typedef std::vector<SdrOption> SdrOptionVec;
64typedef std::unordered_set<std::string> SdrStringSet;
112 return (
static_cast<std::size_t
>(_major) << 32) +
113 static_cast<std::size_t
>(_minor);
118 explicit operator bool()
const
127 return _major == 0 && _minor == 0;
134 return lhs._major == rhs._major && lhs._minor == rhs._minor;
141 return !(lhs == rhs);
148 return lhs._major < rhs._major ||
149 (lhs._major == rhs._major && lhs._minor < rhs._minor);
156 return lhs._major < rhs._major ||
157 (lhs._major == rhs._major && lhs._minor <= rhs._minor);
164 return !(lhs <= rhs);
176 : _major(x._major), _minor(x._minor), _isDefault(true) { }
179 int _major = 0, _minor = 0;
180 bool _isDefault =
false;
185 SdrVersionFilterDefaultOnly,
186 SdrVersionFilterAllVersions,
190PXR_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...
TfToken SdrIdentifier
Common typedefs that are used throughout the SDR library.
SdrVersionFilter
Enumeration used to select nodes by version.