HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OP_Node.h File Reference
#include "OP_API.h"
#include "OP_BundleReferences.h"
#include "OP_Cache.h"
#include "OP_ConnectorId.h"
#include "OP_Context.h"
#include "OP_DataMicroNode.h"
#include "OP_DataTypes.h"
#include "OP_Dependency.h"
#include "OP_Error.h"
#include "OP_EventMicroNode.h"
#include "OP_InterestRef.h"
#include "OP_ItemId.h"
#include "OP_Lock.h"
#include "OP_NetworkBoxItem.h"
#include "OP_NodeFlags.h"
#include "OP_OpTypeId.h"
#include "OP_OTLLicenseType.h"
#include "OP_Parameters.h"
#include "OP_Value.h"
#include "OP_Version.h"
#include <CH/CH_EventManager.h>
#include <CH/CH_Types.h>
#include <DEP/DEP_MicroNode.h>
#include <UT/UT_Algorithm.h>
#include <UT/UT_Array.h>
#include <UT/UT_ArrayMap.h>
#include <UT/UT_Assert.h>
#include <UT/UT_BitArray.h>
#include <UT/UT_BoundingBox.h>
#include <UT/UT_Color.h>
#include <UT/UT_Error.h>
#include <UT/UT_KnownPath.h>
#include <UT/UT_LockedRawPtr.h>
#include <UT/UT_Matrix4.h>
#include <UT/UT_Options.h>
#include <UT/UT_SharedPtr.h>
#include <UT/UT_SmallArray.h>
#include <UT/UT_String.h>
#include <UT/UT_StringHolder.h>
#include <UT/UT_StringMap.h>
#include <UT/UT_StringView.h>
#include <UT/UT_TaskState.h>
#include <UT/UT_TokenString.h>
#include <UT/UT_UniquePtr.h>
#include <UT/UT_ValArray.h>
#include <UT/UT_Vector3.h>
#include <UT/UT_VectorTypes.h>
#include <UT/UT_XformOrder.h>
#include <SYS/SYS_AtomicInt.h>
#include <SYS/SYS_Deprecated.h>
#include <SYS/SYS_Math.h>
#include <SYS/SYS_Types.h>
#include <iosfwd>
#include <utility>
#include <limits.h>
#include <string.h>
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OP_InputPair
 
struct  OP_OutputPair
 
struct  OP_NodeParmRef
 
struct  OP_UnresolvedConnection
 
class  OP_TransformCallback
 
class  OP_EvaluateTransformTracksArgs
 
class  OP_TypeInfo
 
struct  OP_SaveCommandOptions
 Options class for use with OP_Node::saveCommand() More...
 
class  opParmData
 
class  OP_Node
 
class  OP_DisablePropagateAssertScope
 
class  OP_OutputIterator
 
class  OP_OutputReversedIterator
 
class  OP_NodeId
 Safe reference to an OP node. More...
 

Macros

#define OPREF_PREFIX   "op:"
 
#define OPREF_PREFIX_LEN   3
 
#define DEFAULT_COMP_HASH_VALUE   (17*19)
 
#define INVALID_TABLE_NAME   "Node"
 
#define OBJ_TABLE_NAME   "Object"
 
#define SOP_TABLE_NAME   "Sop"
 
#define CHOPNET_TABLE_NAME   "ChopNet"
 
#define CHOP_TABLE_NAME   "Chop"
 
#define ROP_TABLE_NAME   "Driver"
 
#define SHOP_TABLE_NAME   "Shop"
 
#define COP_TABLE_NAME   "Cop"
 
#define COP2_TABLE_NAME   "Cop2"
 
#define COP2NET_TABLE_NAME   "CopNet"
 
#define VOP_TABLE_NAME   "Vop"
 
#define VOPNET_TABLE_NAME   "VopNet"
 
#define DOP_TABLE_NAME   "Dop"
 
#define TOP_TABLE_NAME   "Top"
 
#define TOPNET_TABLE_NAME   "TopNet"
 
#define LOP_TABLE_NAME   "Lop"
 
#define MGR_TABLE_NAME   "Manager"
 
#define DIR_TABLE_NAME   "Director"
 
#define DATA_TABLE_NAME   "Data"
 
#define INVALID_SCRIPT_NAME   "node"
 
#define OBJ_SCRIPT_NAME   "obj"
 
#define SOP_SCRIPT_NAME   "sop"
 
#define CHOPNET_SCRIPT_NAME   "ch"
 
#define CHOP_SCRIPT_NAME   "chop"
 
#define ROP_SCRIPT_NAME   "out"
 
#define SHOP_SCRIPT_NAME   "shop"
 
#define COP_SCRIPT_NAME   "cop"
 
#define COP2_SCRIPT_NAME   "cop2"
 
#define COP2NET_SCRIPT_NAME   "img"
 
#define VOP_SCRIPT_NAME   "vop"
 
#define VOPNET_SCRIPT_NAME   "vex"
 
#define DOP_SCRIPT_NAME   "dop"
 
#define TOP_SCRIPT_NAME   "top"
 
#define TOPNET_SCRIPT_NAME   "tasks"
 
#define LOP_SCRIPT_NAME   "lop"
 
#define MGR_SCRIPT_NAME   "mgr"
 
#define DIR_SCRIPT_NAME   "dir"
 
#define MAT_SCRIPT_NAME   "mat"
 
#define DATA_SCRIPT_NAME   "data"
 
#define INVALID_OPTYPE_NAME   "NODE"
 
#define OBJ_OPTYPE_NAME   "OBJ"
 
#define SOP_OPTYPE_NAME   "SOP"
 
#define CHOPNET_OPTYPE_NAME   "CHOPNET"
 
#define CHOP_OPTYPE_NAME   "CHOP"
 
#define ROP_OPTYPE_NAME   "ROP"
 
#define SHOP_OPTYPE_NAME   "SHOP"
 
#define COP_OPTYPE_NAME   "COP"
 
#define COP2_OPTYPE_NAME   "COP2"
 
#define COP2NET_OPTYPE_NAME   "IMG"
 
#define VOP_OPTYPE_NAME   "VOP"
 
#define VOPNET_OPTYPE_NAME   "VOPNET"
 
#define DOP_OPTYPE_NAME   "DOP"
 
#define TOP_OPTYPE_NAME   "TOP"
 
#define TOPNET_OPTYPE_NAME   "TOPNET"
 
#define LOP_OPTYPE_NAME   "LOP"
 
#define MGR_OPTYPE_NAME   "MGR"
 
#define DIR_OPTYPE_NAME   "DIR"
 
#define DATA_OPTYPE_NAME   "DATA"
 
#define OP_NAME_INPUT   "input"
 
#define OP_NAME_OUTPUT   "output"
 
#define OP_NAME_SUBOUTPUT   "suboutput"
 
#define OP_NAME_SUBINPUT   "subinput"
 
#define OP_NAME_COLLECT   "collect"
 
#define SHOP_MANAGEMENT_OPTYPE   "shopnet"
 
#define COP_MANAGEMENT_OPTYPE   "copnet"
 
#define COP2_MANAGEMENT_OPTYPE   "cop2net"
 
#define ROP_MANAGEMENT_OPTYPE   "ropnet"
 
#define CHOP_MANAGEMENT_OPTYPE   "chopnet"
 
#define SOP_MANAGEMENT_OPTYPE   "sopnet"
 
#define OBJ_MANAGEMENT_OPTYPE   "objnet"
 
#define VOP_MANAGEMENT_OPTYPE   "vopnet"
 
#define DOP_MANAGEMENT_OPTYPE   "dopnet"
 
#define TOP_MANAGEMENT_OPTYPE   "topnet"
 
#define LOP_MANAGEMENT_OPTYPE   "lopnet"
 
#define INSTANTIATE_FINDNODE_FUNCTIONS(PREFIX)
 
#define INSTANTIATE_CASTNODE_FUNCTIONS(PREFIX)
 
#define INSTANTIATE_FOR_ALL_NODE_TYPES(MACRO_FUNC)
 This macro allows us to run another macro for all node types. More...
 
#define CAST_INSTANTIATE(PREFIX)
 

Typedefs

typedef UT_ValArray< const
CL_Track * > 
CL_TrackListC
 
typedef int(* OP_EditCallback )(void *data, OP_Node *src, CL_Track *track, fpreal t, fpreal value)
 
typedef UT_ArrayMap
< OP_ConnectorId, OP_Input * > 
OP_ConnectorInputMap
 
typedef UT_ArrayMap
< OP_ConnectorId, OP_Output * > 
OP_ConnectorOutputMap
 
typedef
OP_ConnectorInputMap::iterator 
OP_ConnectorInputIter
 
typedef UT_CycleDetect< OP_Node * > OP_NodeCycleDetect
 
typedef UT_CycleDetect
< OP_NodeParmRef
OP_NodeParmRefCycle
 
typedef UT_LockedRawPtr
< OP_NodeList, OP_Lock
OP_LockedNodeList
 
typedef UT_LockedRawPtr< const
OP_NodeList, OP_Lock
OP_LockedConstNodeList
 
typedef UT_StringMap
< UT_UniquePtr
< PY_OpaqueObject > > 
OP_PythonObjectCache
 
typedef std::pair< const
OP_Node *, int
opNodeOutput
 

Enumerations

enum  OP_CompileStatusType { OP_COMPILE_STATUS_UNDEFINED = 0, OP_COMPILE_STATUS_COMPILED, OP_COMPILE_STATUS_UNCOMPILED }
 

Functions

OP_API OP_NodeOPgetNodeFromChannel (const CH_Channel *chp)
 
OP_API void OPlinkNodeToChannel (const OP_Node *node, const CH_Channel *chp)
 
OP_API void OPclearNodeToChannelLinks ()
 
OP_API void OPgetUniqueCollections (const CH_ChannelList &channels, CH_CollectionList &collections)
 

Variables

OP_API const char * OPtypeIdLabels [NUM_MANAGERS]
 Nice label names used by network view, corresponding to OP_OpTypeId. More...
 
OP_API const UT_StringHolder OP_USERDATA_NODESHAPE
 
OP_API const UT_StringHolder OP_USERDATA_BGIMAGES
 
OP_API const UT_StringHolder OP_USERDATA_WIRESTYLE
 
OP_API const UT_StringHolder OP_USERDATA_DESCRIPTIVE_PARM
 
OP_API const UT_StringHolder OP_USERDATA_OPMENUFILE
 
OP_API const UT_StringHolder OP_USERDATA_CHILDOPMENUFILE
 

Macro Definition Documentation

#define CAST_INSTANTIATE (   PREFIX)
Value:
inline static PREFIX##_Node *CAST_##PREFIX##NODE(OP_Node *op) \
{ \
return ((op) ? (op)->castTo##PREFIX##Node() : 0); \
} \
\
inline static const PREFIX##_Node *CAST_##PREFIX##NODE(const OP_Node *op) \
{ \
return ((op) ? (op)->castTo##PREFIX##Node() : 0); \
} \
Definition: Node.h:52

Definition at line 4089 of file OP_Node.h.

#define CHOP_MANAGEMENT_OPTYPE   "chopnet"

Definition at line 341 of file OP_Node.h.

#define CHOP_OPTYPE_NAME   "CHOP"

Definition at line 293 of file OP_Node.h.

#define CHOP_SCRIPT_NAME   "chop"

Definition at line 269 of file OP_Node.h.

#define CHOP_TABLE_NAME   "Chop"

Definition at line 245 of file OP_Node.h.

#define CHOPNET_OPTYPE_NAME   "CHOPNET"

Definition at line 292 of file OP_Node.h.

#define CHOPNET_SCRIPT_NAME   "ch"

Definition at line 268 of file OP_Node.h.

#define CHOPNET_TABLE_NAME   "ChopNet"

Definition at line 244 of file OP_Node.h.

#define COP2_MANAGEMENT_OPTYPE   "cop2net"

Definition at line 339 of file OP_Node.h.

#define COP2_OPTYPE_NAME   "COP2"

Definition at line 297 of file OP_Node.h.

#define COP2_SCRIPT_NAME   "cop2"

Definition at line 273 of file OP_Node.h.

#define COP2_TABLE_NAME   "Cop2"

Definition at line 249 of file OP_Node.h.

#define COP2NET_OPTYPE_NAME   "IMG"

Definition at line 298 of file OP_Node.h.

#define COP2NET_SCRIPT_NAME   "img"

Definition at line 274 of file OP_Node.h.

#define COP2NET_TABLE_NAME   "CopNet"

Definition at line 250 of file OP_Node.h.

#define COP_MANAGEMENT_OPTYPE   "copnet"

Definition at line 338 of file OP_Node.h.

#define COP_OPTYPE_NAME   "COP"

Definition at line 296 of file OP_Node.h.

#define COP_SCRIPT_NAME   "cop"

Definition at line 272 of file OP_Node.h.

#define COP_TABLE_NAME   "Cop"

Definition at line 248 of file OP_Node.h.

#define DATA_OPTYPE_NAME   "DATA"

Definition at line 312 of file OP_Node.h.

#define DATA_SCRIPT_NAME   "data"

Definition at line 286 of file OP_Node.h.

#define DATA_TABLE_NAME   "Data"

Definition at line 261 of file OP_Node.h.

#define DEFAULT_COMP_HASH_VALUE   (17*19)

Definition at line 238 of file OP_Node.h.

#define DIR_OPTYPE_NAME   "DIR"

Definition at line 311 of file OP_Node.h.

#define DIR_SCRIPT_NAME   "dir"

Definition at line 284 of file OP_Node.h.

#define DIR_TABLE_NAME   "Director"

Definition at line 260 of file OP_Node.h.

#define DOP_MANAGEMENT_OPTYPE   "dopnet"

Definition at line 345 of file OP_Node.h.

#define DOP_OPTYPE_NAME   "DOP"

Definition at line 301 of file OP_Node.h.

#define DOP_SCRIPT_NAME   "dop"

Definition at line 277 of file OP_Node.h.

#define DOP_TABLE_NAME   "Dop"

Definition at line 253 of file OP_Node.h.

#define INSTANTIATE_CASTNODE_FUNCTIONS (   PREFIX)
Value:
PREFIX##_Node *castTo##PREFIX##Node() const \
{ \
/* If this is triggered, use CAST_FOONODE instead */ \
/* This is because foo->bar() should not be done with */ \
/* NULL foo for aesthetic reasons. */ \
{ const void *this_local = this; \
UT_ASSERT(this_local); \
if (!this_local) return 0; } \
if (getOpTypeID() == PREFIX##_OPTYPE_ID) \
{ \
return (PREFIX##_Node *) this; \
} \
return 0; \
}
Definition: Node.h:52
if(num_boxed_items<=0)
Definition: UT_RTreeImpl.h:697
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156

Definition at line 462 of file OP_Node.h.

#define INSTANTIATE_FINDNODE_FUNCTIONS (   PREFIX)
Value:
PREFIX##_Node *find##PREFIX##Node(const char *path) const \
{ \
OP_Node *node; \
\
node = findNode(path); \
if (node) return node->castTo##PREFIX##Node(); \
return 0; \
}
Definition: Node.h:52
GLsizei const GLchar *const * path
Definition: glcorearb.h:3341
if(num_boxed_items<=0)
Definition: UT_RTreeImpl.h:697
FMT_CONSTEXPR auto find(Ptr first, Ptr last, T value, Ptr &out) -> bool
Definition: core.h:2089

Definition at line 453 of file OP_Node.h.

#define INSTANTIATE_FOR_ALL_NODE_TYPES (   MACRO_FUNC)
Value:
MACRO_FUNC(OBJ) \
MACRO_FUNC(SOP) \
MACRO_FUNC(CHOPNET) \
MACRO_FUNC(CHOP) \
MACRO_FUNC(ROP) \
MACRO_FUNC(SHOP) \
MACRO_FUNC(COP) \
MACRO_FUNC(COP2) \
MACRO_FUNC(COP2NET) \
MACRO_FUNC(VOP) \
MACRO_FUNC(VOPNET) \
MACRO_FUNC(DOP) \
MACRO_FUNC(TOP) \
MACRO_FUNC(TOPNET) \
MACRO_FUNC(LOP)

This macro allows us to run another macro for all node types.

Definition at line 479 of file OP_Node.h.

#define INVALID_OPTYPE_NAME   "NODE"

Definition at line 289 of file OP_Node.h.

#define INVALID_SCRIPT_NAME   "node"

Definition at line 265 of file OP_Node.h.

#define INVALID_TABLE_NAME   "Node"

Definition at line 241 of file OP_Node.h.

#define LOP_MANAGEMENT_OPTYPE   "lopnet"

Definition at line 347 of file OP_Node.h.

#define LOP_OPTYPE_NAME   "LOP"

Definition at line 304 of file OP_Node.h.

#define LOP_SCRIPT_NAME   "lop"

Definition at line 280 of file OP_Node.h.

#define LOP_TABLE_NAME   "Lop"

Definition at line 256 of file OP_Node.h.

#define MAT_SCRIPT_NAME   "mat"

Definition at line 285 of file OP_Node.h.

#define MGR_OPTYPE_NAME   "MGR"

Definition at line 310 of file OP_Node.h.

#define MGR_SCRIPT_NAME   "mgr"

Definition at line 283 of file OP_Node.h.

#define MGR_TABLE_NAME   "Manager"

Definition at line 259 of file OP_Node.h.

#define OBJ_MANAGEMENT_OPTYPE   "objnet"

Definition at line 343 of file OP_Node.h.

#define OBJ_OPTYPE_NAME   "OBJ"

Definition at line 290 of file OP_Node.h.

#define OBJ_SCRIPT_NAME   "obj"

Definition at line 266 of file OP_Node.h.

#define OBJ_TABLE_NAME   "Object"

Definition at line 242 of file OP_Node.h.

#define OP_NAME_COLLECT   "collect"

Definition at line 333 of file OP_Node.h.

#define OP_NAME_INPUT   "input"

Definition at line 329 of file OP_Node.h.

#define OP_NAME_OUTPUT   "output"

Definition at line 330 of file OP_Node.h.

#define OP_NAME_SUBINPUT   "subinput"

Definition at line 332 of file OP_Node.h.

#define OP_NAME_SUBOUTPUT   "suboutput"

Definition at line 331 of file OP_Node.h.

#define OPREF_PREFIX   "op:"

Definition at line 233 of file OP_Node.h.

#define OPREF_PREFIX_LEN   3

Definition at line 234 of file OP_Node.h.

#define ROP_MANAGEMENT_OPTYPE   "ropnet"

Definition at line 340 of file OP_Node.h.

#define ROP_OPTYPE_NAME   "ROP"

Definition at line 294 of file OP_Node.h.

#define ROP_SCRIPT_NAME   "out"

Definition at line 270 of file OP_Node.h.

#define ROP_TABLE_NAME   "Driver"

Definition at line 246 of file OP_Node.h.

#define SHOP_MANAGEMENT_OPTYPE   "shopnet"

Definition at line 337 of file OP_Node.h.

#define SHOP_OPTYPE_NAME   "SHOP"

Definition at line 295 of file OP_Node.h.

#define SHOP_SCRIPT_NAME   "shop"

Definition at line 271 of file OP_Node.h.

#define SHOP_TABLE_NAME   "Shop"

Definition at line 247 of file OP_Node.h.

#define SOP_MANAGEMENT_OPTYPE   "sopnet"

Definition at line 342 of file OP_Node.h.

#define SOP_OPTYPE_NAME   "SOP"

Definition at line 291 of file OP_Node.h.

#define SOP_SCRIPT_NAME   "sop"

Definition at line 267 of file OP_Node.h.

#define SOP_TABLE_NAME   "Sop"
Examples:
SOP/MSS_BrushHairLenSelector.C.

Definition at line 243 of file OP_Node.h.

#define TOP_MANAGEMENT_OPTYPE   "topnet"

Definition at line 346 of file OP_Node.h.

#define TOP_OPTYPE_NAME   "TOP"

Definition at line 302 of file OP_Node.h.

#define TOP_SCRIPT_NAME   "top"

Definition at line 278 of file OP_Node.h.

#define TOP_TABLE_NAME   "Top"

Definition at line 254 of file OP_Node.h.

#define TOPNET_OPTYPE_NAME   "TOPNET"

Definition at line 303 of file OP_Node.h.

#define TOPNET_SCRIPT_NAME   "tasks"

Definition at line 279 of file OP_Node.h.

#define TOPNET_TABLE_NAME   "TopNet"

Definition at line 255 of file OP_Node.h.

#define VOP_MANAGEMENT_OPTYPE   "vopnet"

Definition at line 344 of file OP_Node.h.

#define VOP_OPTYPE_NAME   "VOP"
Examples:
SOP/SOP_PrimVOP.C, and VOP/VOP_CustomContext.C.

Definition at line 299 of file OP_Node.h.

#define VOP_SCRIPT_NAME   "vop"

Definition at line 275 of file OP_Node.h.

#define VOP_TABLE_NAME   "Vop"
Examples:
SOP/SOP_PrimVOP.C, and VOP/VOP_CustomContext.C.

Definition at line 251 of file OP_Node.h.

#define VOPNET_OPTYPE_NAME   "VOPNET"

Definition at line 300 of file OP_Node.h.

#define VOPNET_SCRIPT_NAME   "vex"

Definition at line 276 of file OP_Node.h.

#define VOPNET_TABLE_NAME   "VopNet"

Definition at line 252 of file OP_Node.h.

Typedef Documentation

Definition at line 125 of file OP_Node.h.

Definition at line 133 of file OP_Node.h.

Definition at line 134 of file OP_Node.h.

typedef int(* OP_EditCallback)(void *data, OP_Node *src, CL_Track *track, fpreal t, fpreal value)

Definition at line 130 of file OP_Node.h.

Definition at line 228 of file OP_Node.h.

Definition at line 227 of file OP_Node.h.

Definition at line 224 of file OP_Node.h.

Definition at line 225 of file OP_Node.h.

typedef std::pair<const OP_Node *, int> opNodeOutput

Definition at line 230 of file OP_Node.h.

Enumeration Type Documentation

Enumerator
OP_COMPILE_STATUS_UNDEFINED 
OP_COMPILE_STATUS_COMPILED 
OP_COMPILE_STATUS_UNCOMPILED 

Definition at line 319 of file OP_Node.h.

Function Documentation

OP_API void OPclearNodeToChannelLinks ( )
OP_API OP_Node* OPgetNodeFromChannel ( const CH_Channel chp)
OP_API void OPgetUniqueCollections ( const CH_ChannelList channels,
CH_CollectionList collections 
)
OP_API void OPlinkNodeToChannel ( const OP_Node node,
const CH_Channel chp 
)

Variable Documentation

OP_API const UT_StringHolder OP_USERDATA_BGIMAGES
OP_API const UT_StringHolder OP_USERDATA_CHILDOPMENUFILE
OP_API const UT_StringHolder OP_USERDATA_DESCRIPTIVE_PARM
OP_API const UT_StringHolder OP_USERDATA_NODESHAPE
OP_API const UT_StringHolder OP_USERDATA_OPMENUFILE
OP_API const UT_StringHolder OP_USERDATA_WIRESTYLE
OP_API const char* OPtypeIdLabels[NUM_MANAGERS]

Nice label names used by network view, corresponding to OP_OpTypeId.