HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros 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_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 <EXPR/EXPR_Lock.h>
#include <DEP/DEP_MicroNode.h>
#include <PY/PY_Result.h>
#include <UT/UT_Algorithm.h>
#include <UT/UT_Array.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_LockedRawPtr.h>
#include <UT/UT_Matrix4.h>
#include <UT/UT_Options.h>
#include <UT/UT_PathSearch.h>
#include <UT/UT_SharedPtr.h>
#include <UT/UT_String.h>
#include <UT/UT_StringHolder.h>
#include <UT/UT_StringMap.h>
#include <UT/UT_SymbolTable.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 <map>
#include <iosfwd>
#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_TypeInfo
 
struct  OP_SaveCommandOptions
 Options class for use with OP_Node::saveCommand() More...
 
class  OP_OutputIterator
 
class  OP_OutputReversedIterator
 
class  opParmData
 
class  OP_Node
 
class  OP_DisablePropagateAssertScope
 

Macros

#define TInputsIterator   TStringInputMap::iterator
 
#define OPREF_PREFIX   "op:"
 
#define OPREF_PREFIX_LEN   3
 
#define DEFAULT_COMP_HASH_VALUE   (17*19)
 
#define OP_INVALID_NODE_ID   OP_INVALID_ITEM_ID
 
#define INVALID_TABLE_NAME   "Node"
 
#define OBJ_TABLE_NAME   "Object"
 
#define SOP_TABLE_NAME   "Sop"
 
#define POPNET_TABLE_NAME   "Particle"
 
#define POP_TABLE_NAME   "Pop"
 
#define CHOPNET_TABLE_NAME   "ChopNet"
 
#define CHOP_TABLE_NAME   "Chop"
 
#define ROP_TABLE_NAME   "Driver"
 
#define SHOP_TABLE_NAME   "Shop"
 
#define COP2_TABLE_NAME   "Cop2"
 
#define COPNET_TABLE_NAME   "CopNet"
 
#define VOP_TABLE_NAME   "Vop"
 
#define VOPNET_TABLE_NAME   "VopNet"
 
#define DOP_TABLE_NAME   "Dop"
 
#define MGR_TABLE_NAME   "Manager"
 
#define DIR_TABLE_NAME   "Director"
 
#define INVALID_SCRIPT_NAME   "node"
 
#define OBJ_SCRIPT_NAME   "obj"
 
#define SOP_SCRIPT_NAME   "sop"
 
#define POPNET_SCRIPT_NAME   "part"
 
#define POP_SCRIPT_NAME   "pop"
 
#define CHOPNET_SCRIPT_NAME   "ch"
 
#define CHOP_SCRIPT_NAME   "chop"
 
#define ROP_SCRIPT_NAME   "out"
 
#define SHOP_SCRIPT_NAME   "shop"
 
#define COPNET_SCRIPT_NAME   "img"
 
#define COP2_SCRIPT_NAME   "cop2"
 
#define VOP_SCRIPT_NAME   "vop"
 
#define VOPNET_SCRIPT_NAME   "vex"
 
#define DOP_SCRIPT_NAME   "dop"
 
#define MGR_SCRIPT_NAME   "mgr"
 
#define DIR_SCRIPT_NAME   "dir"
 
#define MAT_SCRIPT_NAME   "mat"
 
#define INVALID_OPTYPE_NAME   "NODE"
 
#define OBJ_OPTYPE_NAME   "OBJ"
 
#define SOP_OPTYPE_NAME   "SOP"
 
#define POPNET_OPTYPE_NAME   "PART"
 
#define POP_OPTYPE_NAME   "POP"
 
#define CHOPNET_OPTYPE_NAME   "CHOPNET"
 
#define CHOP_OPTYPE_NAME   "CHOP"
 
#define ROP_OPTYPE_NAME   "ROP"
 
#define SHOP_OPTYPE_NAME   "SHOP"
 
#define COP2_OPTYPE_NAME   "COP2"
 
#define COPNET_OPTYPE_NAME   "IMG"
 
#define VOP_OPTYPE_NAME   "VOP"
 
#define VOPNET_OPTYPE_NAME   "VOPNET"
 
#define DOP_OPTYPE_NAME   "DOP"
 
#define MGR_OPTYPE_NAME   "MGR"
 
#define DIR_OPTYPE_NAME   "DIR"
 
#define VOP_OUTPUT_NODE_NAME   "output"
 
#define VOP_SUBNET_OUTPUT_NODE_NAME   "suboutput"
 
#define VOP_SUBNET_INPUT_NODE_NAME   "subinput"
 
#define SHOP_MANAGEMENT_OPTYPE   "shopnet"
 
#define POP_MANAGEMENT_OPTYPE   "popnet"
 
#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 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 std::map
< OP_ConnectorId, OP_Input * > 
TStringInputMap
 
typedef std::map
< OP_ConnectorId, OP_Output * > 
TStringOutputMap
 
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_SymbolMap
< PY_OpaqueObject * > 
OP_PythonObjectCache
 

Enumerations

enum  OP_OpTypeId {
  INVALID_OPTYPE_ID = -1, OBJ_OPTYPE_ID = 0, SOP_OPTYPE_ID, POPNET_OPTYPE_ID,
  POP_OPTYPE_ID, CHOPNET_OPTYPE_ID, CHOP_OPTYPE_ID, ROP_OPTYPE_ID,
  SHOP_OPTYPE_ID, COP2_OPTYPE_ID, COPNET_OPTYPE_ID, VOP_OPTYPE_ID,
  VOPNET_OPTYPE_ID, DOP_OPTYPE_ID, MGR_OPTYPE_ID, DIR_OPTYPE_ID,
  NUM_MANAGERS
}
 
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)
 

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
 

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 at line 3698 of file OP_Node.h.

#define CHOP_MANAGEMENT_OPTYPE   "chopnet"

Definition at line 309 of file OP_Node.h.

#define CHOP_OPTYPE_NAME   "CHOP"

Definition at line 247 of file OP_Node.h.

#define CHOP_SCRIPT_NAME   "chop"

Definition at line 226 of file OP_Node.h.

#define CHOP_TABLE_NAME   "Chop"

Definition at line 205 of file OP_Node.h.

#define CHOPNET_OPTYPE_NAME   "CHOPNET"

Definition at line 246 of file OP_Node.h.

#define CHOPNET_SCRIPT_NAME   "ch"

Definition at line 225 of file OP_Node.h.

#define CHOPNET_TABLE_NAME   "ChopNet"

Definition at line 204 of file OP_Node.h.

#define COP2_MANAGEMENT_OPTYPE   "cop2net"

Definition at line 307 of file OP_Node.h.

#define COP2_OPTYPE_NAME   "COP2"

Definition at line 250 of file OP_Node.h.

#define COP2_SCRIPT_NAME   "cop2"

Definition at line 230 of file OP_Node.h.

#define COP2_TABLE_NAME   "Cop2"

Definition at line 208 of file OP_Node.h.

#define COPNET_OPTYPE_NAME   "IMG"

Definition at line 251 of file OP_Node.h.

#define COPNET_SCRIPT_NAME   "img"

Definition at line 229 of file OP_Node.h.

#define COPNET_TABLE_NAME   "CopNet"

Definition at line 209 of file OP_Node.h.

#define DEFAULT_COMP_HASH_VALUE   (17*19)

Definition at line 189 of file OP_Node.h.

#define DIR_OPTYPE_NAME   "DIR"

Definition at line 261 of file OP_Node.h.

#define DIR_SCRIPT_NAME   "dir"

Definition at line 237 of file OP_Node.h.

#define DIR_TABLE_NAME   "Director"

Definition at line 216 of file OP_Node.h.

#define DOP_MANAGEMENT_OPTYPE   "dopnet"

Definition at line 313 of file OP_Node.h.

#define DOP_OPTYPE_NAME   "DOP"

Definition at line 254 of file OP_Node.h.

#define DOP_SCRIPT_NAME   "dop"

Definition at line 233 of file OP_Node.h.

#define DOP_TABLE_NAME   "Dop"

Definition at line 212 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; \
}
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:102
#define const
Definition: zconf.h:214

Definition at line 466 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; \
}
GLsizei const GLchar *const * path
Definition: glcorearb.h:3340

Definition at line 457 of file OP_Node.h.

#define INSTANTIATE_FOR_ALL_NODE_TYPES (   MACRO_FUNC)
Value:
MACRO_FUNC(OBJ) \
MACRO_FUNC(SOP) \
MACRO_FUNC(POPNET) \
MACRO_FUNC(POP) \
MACRO_FUNC(CHOPNET) \
MACRO_FUNC(CHOP) \
MACRO_FUNC(ROP) \
MACRO_FUNC(SHOP) \
MACRO_FUNC(COP2) \
MACRO_FUNC(COPNET) \
MACRO_FUNC(VOP) \
MACRO_FUNC(VOPNET) \
MACRO_FUNC(DOP)

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

Definition at line 483 of file OP_Node.h.

#define INVALID_OPTYPE_NAME   "NODE"

Definition at line 241 of file OP_Node.h.

#define INVALID_SCRIPT_NAME   "node"

Definition at line 220 of file OP_Node.h.

#define INVALID_TABLE_NAME   "Node"

Definition at line 199 of file OP_Node.h.

#define MAT_SCRIPT_NAME   "mat"

Definition at line 238 of file OP_Node.h.

#define MGR_OPTYPE_NAME   "MGR"

Definition at line 260 of file OP_Node.h.

#define MGR_SCRIPT_NAME   "mgr"

Definition at line 236 of file OP_Node.h.

#define MGR_TABLE_NAME   "Manager"

Definition at line 215 of file OP_Node.h.

#define OBJ_MANAGEMENT_OPTYPE   "objnet"

Definition at line 311 of file OP_Node.h.

#define OBJ_OPTYPE_NAME   "OBJ"

Definition at line 242 of file OP_Node.h.

#define OBJ_SCRIPT_NAME   "obj"

Definition at line 221 of file OP_Node.h.

#define OBJ_TABLE_NAME   "Object"

Definition at line 200 of file OP_Node.h.

#define OP_INVALID_NODE_ID   OP_INVALID_ITEM_ID
Examples:
DM/DM_ObjectPathHook.C.

Definition at line 196 of file OP_Node.h.

#define OPREF_PREFIX   "op:"

Definition at line 186 of file OP_Node.h.

#define OPREF_PREFIX_LEN   3

Definition at line 187 of file OP_Node.h.

#define POP_MANAGEMENT_OPTYPE   "popnet"

Definition at line 306 of file OP_Node.h.

#define POP_OPTYPE_NAME   "POP"

Definition at line 245 of file OP_Node.h.

#define POP_SCRIPT_NAME   "pop"

Definition at line 224 of file OP_Node.h.

#define POP_TABLE_NAME   "Pop"

Definition at line 203 of file OP_Node.h.

#define POPNET_OPTYPE_NAME   "PART"

Definition at line 244 of file OP_Node.h.

#define POPNET_SCRIPT_NAME   "part"

Definition at line 223 of file OP_Node.h.

#define POPNET_TABLE_NAME   "Particle"

Definition at line 202 of file OP_Node.h.

#define ROP_MANAGEMENT_OPTYPE   "ropnet"

Definition at line 308 of file OP_Node.h.

#define ROP_OPTYPE_NAME   "ROP"

Definition at line 248 of file OP_Node.h.

#define ROP_SCRIPT_NAME   "out"

Definition at line 227 of file OP_Node.h.

#define ROP_TABLE_NAME   "Driver"

Definition at line 206 of file OP_Node.h.

#define SHOP_MANAGEMENT_OPTYPE   "shopnet"

Definition at line 305 of file OP_Node.h.

#define SHOP_OPTYPE_NAME   "SHOP"

Definition at line 249 of file OP_Node.h.

#define SHOP_SCRIPT_NAME   "shop"

Definition at line 228 of file OP_Node.h.

#define SHOP_TABLE_NAME   "Shop"

Definition at line 207 of file OP_Node.h.

#define SOP_MANAGEMENT_OPTYPE   "sopnet"

Definition at line 310 of file OP_Node.h.

#define SOP_OPTYPE_NAME   "SOP"

Definition at line 243 of file OP_Node.h.

#define SOP_SCRIPT_NAME   "sop"

Definition at line 222 of file OP_Node.h.

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

Definition at line 201 of file OP_Node.h.

#define TInputsIterator   TStringInputMap::iterator

Definition at line 134 of file OP_Node.h.

#define VOP_MANAGEMENT_OPTYPE   "vopnet"

Definition at line 312 of file OP_Node.h.

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

Definition at line 252 of file OP_Node.h.

#define VOP_OUTPUT_NODE_NAME   "output"

Definition at line 299 of file OP_Node.h.

#define VOP_SCRIPT_NAME   "vop"

Definition at line 231 of file OP_Node.h.

#define VOP_SUBNET_INPUT_NODE_NAME   "subinput"

Definition at line 301 of file OP_Node.h.

#define VOP_SUBNET_OUTPUT_NODE_NAME   "suboutput"

Definition at line 300 of file OP_Node.h.

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

Definition at line 210 of file OP_Node.h.

#define VOPNET_OPTYPE_NAME   "VOPNET"

Definition at line 253 of file OP_Node.h.

#define VOPNET_SCRIPT_NAME   "vex"

Definition at line 232 of file OP_Node.h.

#define VOPNET_TABLE_NAME   "VopNet"

Definition at line 211 of file OP_Node.h.

Typedef Documentation

Definition at line 122 of file OP_Node.h.

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

Definition at line 128 of file OP_Node.h.

Definition at line 181 of file OP_Node.h.

Definition at line 178 of file OP_Node.h.

Definition at line 179 of file OP_Node.h.

Definition at line 183 of file OP_Node.h.

typedef std::map< OP_ConnectorId, OP_Input* > TStringInputMap

Definition at line 131 of file OP_Node.h.

typedef std::map< OP_ConnectorId, OP_Output* > TStringOutputMap

Definition at line 132 of file OP_Node.h.

Enumeration Type Documentation

Enumerator
OP_COMPILE_STATUS_UNDEFINED 
OP_COMPILE_STATUS_COMPILED 
OP_COMPILE_STATUS_UNCOMPILED 

Definition at line 289 of file OP_Node.h.

Enumerator
INVALID_OPTYPE_ID 
OBJ_OPTYPE_ID 
SOP_OPTYPE_ID 
POPNET_OPTYPE_ID 
POP_OPTYPE_ID 
CHOPNET_OPTYPE_ID 
CHOP_OPTYPE_ID 
ROP_OPTYPE_ID 
SHOP_OPTYPE_ID 
COP2_OPTYPE_ID 
COPNET_OPTYPE_ID 
VOP_OPTYPE_ID 
VOPNET_OPTYPE_ID 
DOP_OPTYPE_ID 
MGR_OPTYPE_ID 
DIR_OPTYPE_ID 
NUM_MANAGERS 

Definition at line 263 of file OP_Node.h.

Function Documentation

OP_API OP_Node* OPgetNodeFromChannel ( const CH_Channel chp)

Variable Documentation

OP_API const UT_StringHolder OP_USERDATA_BGIMAGES
OP_API const UT_StringHolder OP_USERDATA_DESCRIPTIVE_PARM
OP_API const UT_StringHolder OP_USERDATA_NODESHAPE
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.