HDK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
OP_Value.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: OP library (C++)
7
*
8
* COMMENTS: Value for expressing interest in a node...
9
*
10
*/
11
12
#ifndef __OP_Value_h__
13
#define __OP_Value_h__
14
15
#include "
OP_API.h
"
16
#include <
UT/UT_ValArray.h
>
17
#include <
UT/UT_WorkBuffer.h
>
18
19
class
OP_Node
;
20
class
OP_EventHandler;
21
22
typedef
enum
23
{
24
OP_CHILD_CREATED
,
// A new node has been created -- DATA: ptr to child
25
OP_CHILD_REORDERED
,
// A child's index has been changed
26
// -- DATA: child ptr
27
28
OP_NODE_DELETED
,
// This node was deleted
29
OP_CHILD_DELETED
,
// Let the network know about the above.
30
31
OP_CHILD_UNSTOWED
,
// These are used by OH to signal that an OH gadget
32
OP_NODE_STOWED
,
// is stow/unstowed and should have interests added
33
// or removed appropriately.
34
OP_NODE_HIDDEN
,
// Almost the same as a STOWED. UNSTOW is opposite.
35
OP_CHILD_REVEALED
,
// Almost the same as a UNSTOWED. STOW is opposite.
36
OP_CHILD_HIDDEN
,
// Let network know about the above.
37
38
OP_CHILD_SWITCHED
,
// Change to networks current, display or render node.
39
40
OP_NAME_CHANGED
,
// This node's name changed
41
42
// these five need to be propagated to dependents so that we can recook
43
OP_INPUT_REWIRED
,
// One of this node's inputs was connected to
44
// a different node -- DATA: input index
45
OP_INPUT_CHANGED
,
// One of the input nodes has changed
46
OP_FLAG_CHANGED
,
// Something like the display flag changed
47
48
49
// of the following three events, each implies the preceeding ones
50
OP_PARM_UICHANGED
,
// A parameter's appearance changed
51
// -- DATA: parm index
52
OP_PARM_CHANGED
,
// A parameter's value changed -- DATA: parm index
53
OP_PARM_ANIMATED
,
// One of the node's channels has changed in a drastic
54
// way eg keyframe added/removed -- DATA: parm index
55
OP_PARM_CHANNELS
,
// A channel has been added, deleted, or renamed
56
// -- DATA: parm index
57
58
OP_UI_CHANGED
,
// for example error status, current, selected
59
// -- DATA: OP_UIChangeType
60
OP_UI_CURRENT_CHANGED
,
// The current node has been set when emitted
61
// from OPgetDirector() -- DATA: node pointer
62
OP_UI_EDIT_CURRENT_CHANGED
,
// The current node has been set when emitted
63
// from OPgetDirector() and is meant to be
64
// edited -- DATA: node pointer
65
OP_UI_EDIT_NETWORK
,
// Our picked network has changed.
66
// This is only emitted from OP_Director
67
// -- DATA: network node pointer
68
OP_UI_MOVED
,
// location change
69
OP_OUTPUT_CHANGED
,
// the output of a node has changed
70
OP_OUTPUT_CHANGED_FOR_COOK_TYPE
,
// the output of a node has changed as the
71
// node changed from cooking for render to
72
// cooking for display or vice versa.
73
// This change, unlike OP_OUTPUT_CHANGED,
74
// is not propagated to dependents!
75
// -- DATA: 0 = cooked for display
76
// -- DATA: 1 = cooked for render
77
OP_GROUPLIST_CHANGED
,
// The network group list or selection has changed
78
OP_INDIRECT_CREATED
,
// An OP_IndirectInput object was added to the net
79
OP_INDIRECT_INPUT_REWIRED
,
// An OP_IndirectInput object was rewired
80
OP_INDIRECT_DELETED
,
// or deleted from the net.
81
82
OP_COOKING_CHANGED
,
// current status of cook state (for performance)
83
84
OP_GROUP_CREATED
,
// An OP_Group object was added to the net
85
OP_GROUP_DELETED
,
// or deleted from the net.
86
OP_GROUP_CHANGED
,
// An OP_Group was renamed or its membership
87
// changed.
88
89
OP_DATA_COOKSELECTION_CHANGED
,
// The data's cook selection changed
90
OP_DATA_USERSELECTION_CHANGED
,
// The data's user selection changed
91
92
// These CHGROUP events are only triggered on the OP_Director
93
// data is (CH_Group*)
94
OP_CHGROUP_CREATED
,
// Channel group added (must be first)
95
OP_CHGROUP_REMOVED
,
// Channel group removed
96
OP_CHGROUP_RENAMED
,
// Channel group renamed
97
OP_CHGROUP_MOVED
,
// Channel group changed index
98
OP_CHGROUP_SELCHANGED
,
// Group selection changed
99
OP_CHGROUP_CURCHANGED
,
// Current group changed
100
OP_CHGROUP_CHANGED
,
// Channel group membership has changed
101
// (stays last)
102
103
OP_CHPLAYBACK_CHANGED
,
// Parameters which affect playback
104
// were changed (eg, framerate, limits)
105
OP_CHDEFAULT_EXPR_CHANGED
,
// The default expression was changed
106
107
OP_CHEXTERNAL_COLLECTION_CHANGED
,
// A channel has been added, deleted, or
108
// renamed in an external collection
109
// -- DATA: changed channel
110
OP_CHEXTERNAL_CHANNEL_KEY_CHANGED
,
// An external channel's key value was
111
// changed
112
// -- DATA: changed channel
113
OP_CHEXTERNAL_CHANNEL_CHANGED
,
// An external channel was changed in a
114
// major way (eg. keyframe added/removed)
115
// -- DATA: changed channel
116
117
118
OP_INPUT_RENAMED
,
// One of our inputs was renamed
119
120
OP_CHSCOPE_CHANGED
,
// Channel scope has changed (only OP_Director)
121
OP_CHSCOPEPIN_CHANGED
,
// Channel selection has changed
122
OP_CHSCOPESELECTION_CHANGED
,
// Channel selection has changed
123
// (only OP_Director)
124
OP_CHSCOPE_DISPLAY_CHANGED
,
// Channel selection has changed
125
// (only OP_Director)
126
OP_CHSCOPE_GRAPH_SELECTION_CHANGED
,
// Channel selection has changed
127
// (only OP_Director)
128
129
OP_CHILD_PICK_CHANGED
,
// A selection has changed for our children
130
131
OP_NODE_PREDELETE
,
// This node will be deleted
132
133
OP_NETWORKBOX_CREATED
,
// A network box was created within the network
134
// -- DATA: OP_NetworkBox*
135
OP_NETWORKBOX_DELETED
,
// A network box was removed from the network
136
// -- DATA: OP_NetworkBox*
137
OP_NETWORKBOX_CHANGED
,
// The contents of a network box have changed
138
// -- DATA: OP_NetworkBox*
139
OP_NETWORKBOX_STOWED
,
// An OP_NetworkBox has been stowed, similar to
140
// OP_NODE_STOWED
141
142
OP_SPAREPARM_MODIFIED
,
// A Spare parm was created or deleted.
143
144
OP_MULTIPARM_MODIFIED
,
// A Multiparm instance was created or deleted.
145
146
OP_PARM_ENABLE_CHANGED
,
// Parm's enable state changed.
147
// -- DATA: parm index
148
149
OP_POSTIT_NOTE_CREATED
,
// A post it note was created within the network
150
OP_POSTIT_NOTE_DELETED
,
// A post it note was removed from the network
151
OP_POSTIT_NOTE_CHANGED
,
// The contents of a post it note have changed
152
OP_POSTIT_NOTE_STOWED
,
// An OP_PostIt has been stowed, similar to
153
// OP_NODE_STOWED
154
OP_UI_POSTIT_MOVED
,
155
156
OP_UI_REFRESH_EXPOSED
,
// Send after an event that could have changed
157
// exposed flags in a network.
158
159
OP_PARM_VISIBLE_CHANGED
,
// Parms' visible state changed.
160
// -- DATA: parm index
161
162
OP_PARM_LOCK_CHANGED
,
// Parms' lock state changed.
163
// -- DATA: parm index
164
165
OP_CUSTOM_DATA_CHANGED
,
// Some custom data held on the node changed.
166
// -- DATA: node-specific enum indicating
167
// exactly which bit of custom data changed
168
169
OP_WORK_ITEM_SELECTION_CHANGED
,
// The selected work item was changed
170
// -- DATA: work item ID, unique to the
171
// TOP network that the event was emitted
172
// from
173
174
OP_EVENT_TYPE_COUNT
// sentinel
175
176
}
OP_EventType
;
177
178
typedef
void
(*
OP_EventMethod
)(
OP_Node
*caller,
void
*callee,
179
OP_EventType
type
,
void
*
data
);
180
181
OP_API
extern
const
char
*
OPeventToString
(
OP_EventType
type
);
182
183
// UTformat support.
184
static
inline
size_t
185
format
(
char
*
buffer
,
size_t
buffer_size,
const
OP_EventType
&
v
)
186
{
187
UT_WorkBuffer
eventtext;
188
eventtext.
sprintf
(
"%s (%d)"
,
OPeventToString
(v), (
int
)(v));
189
if
(!buffer)
190
return
eventtext.
length
();
191
else
192
{
193
size_t
len =
std::min
(
size_t
(eventtext.
length
()), buffer_size);
194
::memcpy(buffer, eventtext.
buffer
(), len);
195
return
len;
196
}
197
}
198
class
OP_API
OP_Value
199
{
200
public
:
201
OP_Value
(
OP_Node
*owner);
202
~
OP_Value
();
203
204
int
hasOpInterest (
void
*
data
,
OP_EventMethod
eventHandler)
const
;
205
void
addOpInterest (
void
*data,
OP_EventMethod
eventHandler);
206
void
removeOpInterest(
void
*data,
OP_EventMethod
eventHandler);
207
void
changed (
OP_EventType
type
,
void
*data=0)
const
;
208
209
unsigned
numInterests()
const
;
210
211
int64
getMemoryUsage(
bool
inclusive)
const
;
212
213
private
:
214
UT_ValArray<OP_EventHandler *>
myHandlers;
215
OP_Node
*myOwner;
216
};
217
218
#endif
OP_NETWORKBOX_CREATED
Definition:
OP_Value.h:133
OP_INDIRECT_DELETED
Definition:
OP_Value.h:80
OP_UI_EDIT_CURRENT_CHANGED
Definition:
OP_Value.h:62
OP_CHGROUP_CHANGED
Definition:
OP_Value.h:100
UT_WorkBuffer::length
SYS_FORCE_INLINE exint length() const
Definition:
UT_WorkBuffer.h:429
OP_CHDEFAULT_EXPR_CHANGED
Definition:
OP_Value.h:105
UT_WorkBuffer
Definition:
UT_WorkBuffer.h:74
OP_UI_CHANGED
Definition:
OP_Value.h:58
void
void
Definition:
png.h:1083
data
GLboolean * data
Definition:
glcorearb.h:131
v
const GLdouble * v
Definition:
glcorearb.h:837
OP_UI_POSTIT_MOVED
Definition:
OP_Value.h:154
OP_OUTPUT_CHANGED
Definition:
OP_Value.h:69
OP_UI_CURRENT_CHANGED
Definition:
OP_Value.h:60
OP_CHPLAYBACK_CHANGED
Definition:
OP_Value.h:103
OP_MULTIPARM_MODIFIED
Definition:
OP_Value.h:144
OP_NODE_DELETED
Definition:
OP_Value.h:28
UT_WorkBuffer::buffer
SYS_FORCE_INLINE const char * buffer() const
Definition:
UT_WorkBuffer.h:169
ImageBufAlgo::min
ImageBuf OIIO_API min(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
OP_CHEXTERNAL_COLLECTION_CHANGED
Definition:
OP_Value.h:107
OP_OUTPUT_CHANGED_FOR_COOK_TYPE
Definition:
OP_Value.h:70
OP_Value
Definition:
OP_Value.h:198
OP_CHILD_CREATED
Definition:
OP_Value.h:24
OP_API.h
UT_ValArray< OP_EventHandler * >
OP_EVENT_TYPE_COUNT
Definition:
OP_Value.h:174
OP_NODE_HIDDEN
Definition:
OP_Value.h:34
OP_CUSTOM_DATA_CHANGED
Definition:
OP_Value.h:165
OP_SPAREPARM_MODIFIED
Definition:
OP_Value.h:142
OP_CHSCOPESELECTION_CHANGED
Definition:
OP_Value.h:122
OP_GROUP_CREATED
Definition:
OP_Value.h:84
OP_POSTIT_NOTE_CHANGED
Definition:
OP_Value.h:151
OP_CHSCOPE_DISPLAY_CHANGED
Definition:
OP_Value.h:124
buffer
Definition:
core.h:760
OP_PARM_UICHANGED
Definition:
OP_Value.h:50
OP_Node
Definition:
OP_Node.h:503
UT_WorkBuffer.h
OP_PARM_LOCK_CHANGED
Definition:
OP_Value.h:162
OP_CHSCOPE_GRAPH_SELECTION_CHANGED
Definition:
OP_Value.h:126
OP_CHGROUP_CURCHANGED
Definition:
OP_Value.h:99
UT_ValArray.h
OP_EventMethod
void(* OP_EventMethod)(OP_Node *caller, void *callee, OP_EventType type, void *data)
Definition:
OP_Value.h:178
OP_POSTIT_NOTE_DELETED
Definition:
OP_Value.h:150
OP_NAME_CHANGED
Definition:
OP_Value.h:40
OP_CHSCOPE_CHANGED
Definition:
OP_Value.h:120
OP_CHILD_REVEALED
Definition:
OP_Value.h:35
format
GLint GLint GLsizei GLint GLenum format
Definition:
glcorearb.h:108
OP_CHEXTERNAL_CHANNEL_KEY_CHANGED
Definition:
OP_Value.h:110
OP_INPUT_RENAMED
Definition:
OP_Value.h:118
OP_WORK_ITEM_SELECTION_CHANGED
Definition:
OP_Value.h:169
int64
long long int64
Definition:
SYS_Types.h:116
OP_CHILD_REORDERED
Definition:
OP_Value.h:25
OP_NODE_STOWED
Definition:
OP_Value.h:32
OP_PARM_VISIBLE_CHANGED
Definition:
OP_Value.h:159
OP_PARM_ANIMATED
Definition:
OP_Value.h:53
OP_DATA_USERSELECTION_CHANGED
Definition:
OP_Value.h:90
OP_INDIRECT_INPUT_REWIRED
Definition:
OP_Value.h:79
OP_UI_MOVED
Definition:
OP_Value.h:68
OP_UI_REFRESH_EXPOSED
Definition:
OP_Value.h:156
OP_NETWORKBOX_DELETED
Definition:
OP_Value.h:135
OP_UI_EDIT_NETWORK
Definition:
OP_Value.h:65
OP_CHGROUP_RENAMED
Definition:
OP_Value.h:96
UT_WorkBuffer::sprintf
int sprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
OP_NODE_PREDELETE
Definition:
OP_Value.h:131
OP_PARM_CHANNELS
Definition:
OP_Value.h:55
OP_CHSCOPEPIN_CHANGED
Definition:
OP_Value.h:121
OP_CHGROUP_REMOVED
Definition:
OP_Value.h:95
OP_CHILD_DELETED
Definition:
OP_Value.h:29
OP_CHILD_PICK_CHANGED
Definition:
OP_Value.h:129
OP_COOKING_CHANGED
Definition:
OP_Value.h:82
OP_CHILD_UNSTOWED
Definition:
OP_Value.h:31
OP_API
#define OP_API
Definition:
OP_API.h:10
OP_INDIRECT_CREATED
Definition:
OP_Value.h:78
OP_CHGROUP_MOVED
Definition:
OP_Value.h:97
OP_CHEXTERNAL_CHANNEL_CHANGED
Definition:
OP_Value.h:113
OP_EventType
OP_EventType
Definition:
OP_Value.h:22
OP_DATA_COOKSELECTION_CHANGED
Definition:
OP_Value.h:89
OP_FLAG_CHANGED
Definition:
OP_Value.h:46
OP_PARM_ENABLE_CHANGED
Definition:
OP_Value.h:146
OP_POSTIT_NOTE_STOWED
Definition:
OP_Value.h:152
OP_NETWORKBOX_CHANGED
Definition:
OP_Value.h:137
OP_POSTIT_NOTE_CREATED
Definition:
OP_Value.h:149
OP_PARM_CHANGED
Definition:
OP_Value.h:52
OP_GROUP_DELETED
Definition:
OP_Value.h:85
type
type
Definition:
core.h:1059
OP_CHGROUP_CREATED
Definition:
OP_Value.h:94
OP_GROUP_CHANGED
Definition:
OP_Value.h:86
OP_INPUT_CHANGED
Definition:
OP_Value.h:45
OPeventToString
OP_API const char * OPeventToString(OP_EventType type)
OP_CHILD_SWITCHED
Definition:
OP_Value.h:38
data
Definition:
format.h:895
OP_NETWORKBOX_STOWED
Definition:
OP_Value.h:139
OP_INPUT_REWIRED
Definition:
OP_Value.h:43
OP_CHILD_HIDDEN
Definition:
OP_Value.h:36
OP_GROUPLIST_CHANGED
Definition:
OP_Value.h:77
OP_CHGROUP_SELCHANGED
Definition:
OP_Value.h:98
OP
OP_Value.h
Generated on Fri Nov 8 2024 03:39:35 for HDK by
1.8.6