11 #ifndef __CH_ChannelRef__
12 #define __CH_ChannelRef__
33 myNodeId = other.myNodeId;
34 myIsTrack = other.myIsTrack;
35 myName = other.myName;
40 setChannelRef(node_id, name, is_track);
53 void setChannelRef(
int node_id,
const char *
name,
bool is_track);
61 const char *
getName()
const {
return myName; }
63 bool isTrack()
const {
return myIsTrack; }
67 return myNodeId == other.myNodeId &&
68 myIsTrack == other.myIsTrack &&
69 myName == other.myName;
74 setChannelRef(other.myNodeId, other.myName,
81 if (myNodeId < other.myNodeId)
84 if (myNodeId == other.myNodeId &&
85 isLess(myName, other.myName))
92 if (myNodeId > other.myNodeId)
95 if (myNodeId == other.myNodeId &&
96 isGreater(myName, other.myName))
110 unsigned int hash()
const;
113 bool isLess(
const char *str1,
const char *str2)
const
118 if( str2 ) rval =
true;
123 if( !str2) rval =
false;
124 else rval = (strcmp(str1, str2) < 0) ?
true :
false;
128 bool isGreater(
const char *str1,
const char *str2)
const
131 if( !str1 ) rval =
false;
134 if( !str2 ) rval =
true;
135 else rval = (strcmp(str1, str2) > 0) ?
true :
false;
141 unsigned myIsTrack:1;
155 typedef std::function<bool(const CH_ChannelRef&, unsigned flags)>
157 typedef std::function<void(const CH_ChannelRef&)>
164 CH_ChannelRefTable &ref_table,
171 const CH_ChannelRefTable &
table,
177 const CH_ChannelRefTable &
table,
182 const CH_ChannelRefTable &
table,
198 CH_API extern std::ostream &
void setNodeId(int new_id)
int compare(const CH_ChannelRef &other) const
CH_API std::ostream & operator<<(std::ostream &os, const CH_ChannelRef &ref)
UT_Map< CH_ChannelRef, unsigned > CH_ChannelRefTable
CH_API void CHaddExposedChannel(const CH_ChannelRefTable &table, CH_ChannelList &channels)
CH_API bool CHchannelsToChanRefs(const CH_ChannelList &channels, CH_ChannelRefList &refs)
CH_ChannelRef & operator=(const CH_ChannelRef &other)
CH_ChannelRef(int node_id, const char *name, bool is_track)
bool operator<(const CH_ChannelRef &other) const
CH_API bool CHchanRefsToChannels(const CH_ChannelRefList &refs, CH_ChannelList &channels)
GLuint const GLchar * name
CH_API void CHaddFullChannelPath(const CH_ChannelRefTable &table, UT_StringArray &chan_paths, bool use_alias)
CH_API int CHdeleteRefsWithNodeId(CH_ChannelRefTable &ref_table, int node_id, CH_ChannelRefQueryCallback should_delete_callback=nullptr, CH_ChannelRefCallback pre_delete_callback=nullptr)
CH_API void CHaddExposedChanRef(const CH_ChannelRefTable &table, CH_ChannelRefList &chanrefs, unsigned mask)
std::function< bool(const CH_ChannelRef &, unsigned flags)> CH_ChannelRefQueryCallback
std::function< void(const CH_ChannelRef &)> CH_ChannelRefCallback
unsigned int hash() const
CH_API int CHcompareChanRefs(const CH_ChannelRef *, const CH_ChannelRef *)
CH_ChannelRef(const CH_ChannelRef &other)
CH_API size_t format(char *buffer, size_t buffer_size, const CH_ChannelRef &v)
bool operator==(const CH_ChannelRef &other) const
bool operator>(const CH_ChannelRef &other) const
CH_API void CHdisplayChanRefs(const CH_ChannelRefList &refs)
size_t hash_value(const CH_ChannelRef &ref)
GLenum GLsizei GLenum GLenum const void * table
const char * getName() const
ImageBuf OIIO_API channels(const ImageBuf &src, int nchannels, cspan< int > channelorder, cspan< float > channelvalues={}, cspan< std::string > newchannelnames={}, bool shuffle_channel_names=false, int nthreads=0)