HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LOP_SelectionRule.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: LOP Library (C++)
7  *
8  * COMMENTS: Flat list of primitive paths, or rule-based description of a
9  * collection of USD primitives.
10  *
11  */
12 
13 #ifndef __LOP_SelectionRule_h__
14 #define __LOP_SelectionRule_h__
15 
16 #include "LOP_API.h"
17 #include <HUSD/HUSD_DataHandle.h>
18 #include <HUSD/HUSD_Utils.h>
19 #include <UT/UT_StringHolder.h>
20 #include <UT/UT_StringArray.h>
21 #include <UT/UT_StringMap.h>
22 #include <UT/UT_Error.h>
23 
24 class UT_JSONWriter;
25 class UT_JSONParser;
26 class HUSD_PathSet;
27 class HUSD_TimeCode;
28 
30 {
31 public:
34 
35  bool operator==(const LOP_SelectionRule &other) const;
36  bool operator!=(const LOP_SelectionRule &other) const;
37  int hash() const;
38 
39  void save(UT_JSONWriter &writer) const;
40  bool load(UT_JSONParser &parser);
41 
42  void getExpandedPathSet(HUSD_AutoAnyLock &lock,
43  int nodeid,
44  const HUSD_TimeCode &timecode,
45  HUSD_PathSet &paths,
46  UT_StringMap<UT_Array<int64>> *instancer_ids,
47  bool *may_be_time_varying = nullptr,
48  HUSD_PathSet *missing_explicit_paths = nullptr,
49  UT_ErrorSeverity *error_severity = nullptr,
50  UT_StringHolder *error = nullptr) const;
51  void getCollectionAwarePathSet(HUSD_AutoAnyLock &lock,
52  int nodeid,
53  const HUSD_TimeCode &timecode,
54  HUSD_PathSet &paths,
55  UT_StringMap<UT_Array<int64>> *instancer_ids,
56  bool *may_be_time_varying = nullptr,
57  HUSD_PathSet *missing_explicit_paths = nullptr,
58  UT_ErrorSeverity *error_severity = nullptr,
59  UT_StringHolder *error = nullptr) const;
60  bool copyToFindPrims(HUSD_FindPrims &findprims,
61  int nodeid,
62  const HUSD_TimeCode &timecode,
63  UT_ErrorSeverity *error_severity = nullptr,
64  UT_StringHolder *error = nullptr) const;
65 
67  { return myPathPattern; }
69  { myPathPattern = pattern; }
70 
72  { return myTraversalDemands; }
74  { myTraversalDemands = demands; }
75 
76  const UT_StringHolder &icon() const
77  { return myIcon; }
78  void setIcon(const UT_StringHolder &icon)
79  { myIcon = icon; }
80 
82  { return myAssumeWildcardsAroundPlainTokens; }
84  { myAssumeWildcardsAroundPlainTokens = assume; }
85 
86  bool caseSensitive() const
87  { return myCaseSensitive; }
88  void setCaseSensitive(bool casesensitive)
89  { myCaseSensitive = casesensitive; }
90 
91  bool findPointInstancerIds() const
92  { return myFindPointInstancerIds; }
93  void setFindPointInstancerIds(bool find_instancer_ids)
94  { myFindPointInstancerIds = find_instancer_ids; }
95 
96 private:
97  UT_StringHolder myPathPattern;
98  HUSD_PrimTraversalDemands myTraversalDemands;
99  UT_StringHolder myIcon;
100  bool myAssumeWildcardsAroundPlainTokens;
101  bool myCaseSensitive;
102  bool myFindPointInstancerIds;
103 };
104 
106 
107 #endif
108 
UT_StringMap< LOP_SelectionRule > LOP_SelectionRuleMap
const UT_StringHolder & getPathPattern() const
void setFindPointInstancerIds(bool find_instancer_ids)
UT_ErrorSeverity
Definition: UT_Error.h:25
JSON reader class which handles parsing of JSON or bJSON files.
Definition: UT_JSONParser.h:87
Class which writes ASCII or binary JSON streams.
Definition: UT_JSONWriter.h:39
void setPathPattern(const UT_StringHolder &pattern)
HUSD_PrimTraversalDemands
Definition: HUSD_Utils.h:39
< returns > If no error
Definition: snippets.dox:2
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void setCaseSensitive(bool casesensitive)
#define LOP_API
Definition: LOP_API.h:10
GLushort pattern
Definition: glad.h:2583
bool findPointInstancerIds() const
FMT_INLINE void assume(bool condition)
Definition: format.h:535
const UT_StringHolder & icon() const
void setIcon(const UT_StringHolder &icon)
bool assumeWildcardsAroundPlainTokens() const
bool operator!=(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:165
bool caseSensitive() const
void setTraversalDemands(HUSD_PrimTraversalDemands demands)
HUSD_PrimTraversalDemands traversalDemands() const
void setAssumeWildcardsAroundPlainTokens(bool assume)