7 #ifndef PXR_EXEC_VDF_SPARSE_INPUT_PATH_FINDER_H
8 #define PXR_EXEC_VDF_SPARSE_INPUT_PATH_FINDER_H
70 std::vector<VdfConnectionConstVector> *paths);
82 std::vector<VdfConnectionConstVector> *paths);
92 std::vector<VdfConnectionConstVector> *paths);
100 _PathSegment(
unsigned int id,
unsigned int len)
101 : id(id), len(len) {}
104 bool operator==(
const _PathSegment &rhs)
const {
105 return id == rhs.id && len == rhs.len;
108 std::string GetAsString()
const {
112 unsigned int id, len;
117 struct _StackFrame :
public _PathSegment
121 const _PathSegment &segment)
122 : _PathSegment(segment),
123 maskedOutput(maskedOutput) {}
138 struct _PotentialResult
141 const _PathSegment &ending,
const _PathSegment &encountered)
143 encountered(encountered) {}
146 bool operator==(
const _PotentialResult &rhs)
const {
147 return ending == rhs.ending && encountered == rhs.encountered;
167 _PathSegment encountered;
170 using _VisitedDependencyToSegmentMap =
175 using _VisitedConnectionsInfoMap =
181 using _PathToParentSegmentMap =
188 using _PathToResultMap =
192 using _PathToPathChildrenMap =
196 using _PotentialResults =
200 using _PathToRelevanceMap =
206 void _TraverseFrame(
const _StackFrame &frame,
bool isStartFrame);
209 void _TraverseSeenConnection(
210 const _PathSegment &ending,
const _PathSegment &encountered);
214 const _PathSegment &
end,
const _PathSegment *
start)
const;
217 void _FinalizePendingResults(
218 std::vector<VdfConnectionConstVector> *paths)
const;
221 void _AppendChildPathsToWorkingSet(
222 std::set<unsigned int> *pathToLookup,
224 const _PathSegment &encounteredSegment,
225 unsigned int joiningPathId)
const;
236 std::vector<VdfConnectionConstVector> _paths;
239 _PathToRelevanceMap _pathToRelevanceMap;
243 _VisitedConnectionsInfoMap _visitedConnectionsInfoMap;
248 _PathToParentSegmentMap _pathToParentSegmentMap;
251 _PathToPathChildrenMap _pathToPathChildrenMap;
257 _PathToResultMap _pathToResultMap;
260 std::vector<_StackFrame> _stack;
263 _PotentialResults _potentialResults;
TF_API std::string TfStringPrintf(const char *fmt,...)
#define PXR_NAMESPACE_OPEN_SCOPE
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Class to hold on to an externally owned output and a mask.
static size_t Combine(Args &&...args)
Produce a hash code by combining the hash codes of several objects.
#define PXR_NAMESPACE_CLOSE_SCOPE