HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HAPI_Common.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  */
7 
8 #ifndef __HAPI_COMMON_h__
9 #define __HAPI_COMMON_h__
10 
11 #include "HAPI_API.h"
12 
13 /////////////////////////////////////////////////////////////////////////////
14 // Defines
15 
16 #define HAPI_POSITION_VECTOR_SIZE 3
17 #define HAPI_SCALE_VECTOR_SIZE 3
18 #define HAPI_SHEAR_VECTOR_SIZE 3
19 #define HAPI_NORMAL_VECTOR_SIZE 3
20 #define HAPI_QUATERNION_VECTOR_SIZE 4
21 #define HAPI_EULER_VECTOR_SIZE 3
22 #define HAPI_UV_VECTOR_SIZE 2
23 #define HAPI_COLOR_VECTOR_SIZE 4
24 #define HAPI_CV_VECTOR_SIZE 4
25 
26 #define HAPI_PRIM_MIN_VERTEX_COUNT 1
27 #define HAPI_PRIM_MAX_VERTEX_COUNT 16
28 
29 #define HAPI_INVALID_PARM_ID -1
30 
31 /// Common Default Attributes' Names
32 /// @{
33 #define HAPI_ATTRIB_POSITION "P"
34 #define HAPI_ATTRIB_UV "uv"
35 #define HAPI_ATTRIB_UV2 "uv2"
36 #define HAPI_ATTRIB_NORMAL "N"
37 #define HAPI_ATTRIB_TANGENT "tangentu"
38 #define HAPI_ATTRIB_TANGENT2 "tangentv"
39 #define HAPI_ATTRIB_COLOR "Cd"
40 #define HAPI_ATTRIB_NAME "name"
41 #define HAPI_ATTRIB_INSTANCE "instance"
42 /// @}
43 
44 /// This is the name of the primitive group created from all the primitives
45 /// that are not in any user-defined group. This way, when you put all the
46 /// groups together you cover the entire mesh. This is important for some
47 /// clients where the mesh has to be defined in terms of submeshes that cover
48 /// the entire original mesh.
49 #define HAPI_UNGROUPED_GROUP_NAME "__ungrouped_group"
50 
51 /// Common image file format names (to use with the material extract APIs).
52 /// Note that you may still want to check if they are supported via
53 /// HAPI_GetSupportedImageFileFormats() since all formats are loaded
54 /// dynamically by Houdini on-demand so just because these formats are defined
55 /// here doesn't mean they are supported in your instance.
56 /// @{
57 #define HAPI_RAW_FORMAT_NAME "HAPI_RAW" // HAPI-only Raw Format
58 #define HAPI_PNG_FORMAT_NAME "PNG"
59 #define HAPI_JPEG_FORMAT_NAME "JPEG"
60 #define HAPI_BMP_FORMAT_NAME "Bitmap"
61 #define HAPI_TIFF_FORMAT_NAME "TIFF"
62 #define HAPI_TGA_FORMAT_NAME "Targa"
63 /// @}
64 
65 /// Default image file format's name - used when the image generated and has
66 /// no "original" file format and the user does not specify a format to
67 /// convert to.
68 #define HAPI_DEFAULT_IMAGE_FORMAT_NAME HAPI_PNG_FORMAT_NAME
69 
70 /// Name of subnet OBJ node containing the global nodes.
71 #define HAPI_GLOBAL_NODES_NODE_NAME "GlobalNodes"
72 
73 /// Environment variables.
74 #define HAPI_ENV_HIP "HIP"
75 #define HAPI_ENV_JOB "JOB"
76 #define HAPI_ENV_CLIENT_NAME "HAPI_CLIENT_NAME"
77 
78 /// [HAPI_CACHE]
79 /// Common cache names. You can see these same cache names in the
80 /// Cache Manager window in Houdini (Windows > Cache Manager).
81 #define HAPI_CACHE_COP_COOK "COP Cook Cache"
82 #define HAPI_CACHE_COP_FLIPBOOK "COP Flipbook Cache"
83 #define HAPI_CACHE_IMAGE "Image Cache"
84 #define HAPI_CACHE_OBJ "Object Transform Cache"
85 #define HAPI_CACHE_GL_TEXTURE "OpenGL Texture Cache"
86 #define HAPI_CACHE_GL_VERTEX "OpenGL Vertex Cache"
87 #define HAPI_CACHE_SOP "SOP Cache"
88 #define HAPI_CACHE_VEX "VEX File Cache"
89 /// [HAPI_CACHE]
90 
91 // Make sure our enums and structs are usable without those keywords, as-is,
92 // in C.
93 #ifdef __cplusplus
94  #define HAPI_C_ENUM_TYPEDEF( enum_name )
95  #define HAPI_C_STRUCT_TYPEDEF( struct_name )
96 #else
97  #define HAPI_C_ENUM_TYPEDEF( enum_name ) \
98  typedef enum enum_name enum_name;
99  #define HAPI_C_STRUCT_TYPEDEF( struct_name ) \
100  typedef struct struct_name struct_name;
101 #endif // __cplusplus
102 
103 /////////////////////////////////////////////////////////////////////////////
104 // Typedefs
105 
106 // C has no bool.
107 #ifdef __cplusplus
108  typedef bool HAPI_Bool;
109 #else
110  typedef char HAPI_Bool;
111 #endif // __cplusplus
112 
113 // x-bit Integers
114 // Thrift doesn't support unsigned integers, so we cast it as a 16-bit int, but only
115 // for automated code generation
116 #ifdef HAPI_AUTOGEN
117  typedef signed char int8_t;
118  typedef short int16_t;
119  typedef long long int64_t;
120  typedef short HAPI_UInt8; // 16-bit type for thrift
121 #else
122  #include <stdint.h>
123  #ifdef HAPI_THRIFT_ABI
124  typedef int16_t HAPI_UInt8;
125  #else
126  typedef uint8_t HAPI_UInt8;
127  HAPI_STATIC_ASSERT(sizeof(HAPI_UInt8) == 1, unsupported_size_of_uint8);
128  #endif
129 #endif
130 
131 typedef int8_t HAPI_Int8;
132 HAPI_STATIC_ASSERT(sizeof(HAPI_Int8) == 1, unsupported_size_of_int8);
133 typedef int16_t HAPI_Int16;
134 HAPI_STATIC_ASSERT(sizeof(HAPI_Int16) == 2, unsupported_size_of_int16);
135 typedef int64_t HAPI_Int64;
136 HAPI_STATIC_ASSERT(sizeof(HAPI_Int64) == 8, unsupported_size_of_long);
137 
138 
139 // The process id has to be uint on Windows and int on any other platform.
140 #if ( defined _WIN32 || defined WIN32 )
141  typedef unsigned int HAPI_ProcessId;
142 #else
143  typedef int HAPI_ProcessId;
144 #endif
145 
146 /// Has to be 64-bit.
147 typedef HAPI_Int64 HAPI_SessionId;
148 
149 /// Use this with HAPI_GetString() to get the value.
150 /// See @ref HAPI_Fundamentals_Strings.
151 typedef int HAPI_StringHandle;
152 
154 
155 /// See @ref HAPI_Nodes_Basics.
156 typedef int HAPI_NodeId;
157 
158 /// Either get this from the ::HAPI_ParmInfo or ::HAPI_GetParmIdFromName().
159 /// See @ref HAPI_Parameters.
160 typedef int HAPI_ParmId;
161 
162 /// Use this with ::HAPI_GetPartInfo().
163 /// See @ref HAPI_Parts.
164 typedef int HAPI_PartId;
165 
166 /// Use this with PDG functions
168 
169 /// Use this with PDG functions
171 
172 /// When we load a HIP file, we associate a HIP file ID with the created nodes
173 /// so that they can be looked up later
174 typedef int HAPI_HIPFileId;
175 
176 /////////////////////////////////////////////////////////////////////////////
177 // Enums
178 
180 {
188 };
190 
192 {
197 };
199 
201 {
205 
206  /// Used for Results. Equivalent to ::HAPI_STATUSVERBOSITY_2
208  /// Used for Results. Equivalent to ::HAPI_STATUSVERBOSITY_0
210  /// Used for Results. Equivalent to ::HAPI_STATUSVERBOSITY_1
212  /// Used for Results. Equivalent to ::HAPI_STATUSVERBOSITY_2
214 };
216 
218 {
230 
237 
240 
242 
244 };
246 
248 {
251 };
253 typedef int HAPI_ErrorCodeBits;
254 
256 {
263 };
265 
267 {
268  /// Everything cook successfully without errors
270  /// You should abort the cook.
272  /// Only some objects failed.
279 
281 };
283 
285 {
291 };
293 
295 {
301 };
303 
305 {
310 };
312 
313 /// Represents the data type of a parm.
314 /// As you can see, some of these high level types share the same underlying
315 /// raw data type. For instance, both string and file parameter types can be
316 /// represented with strings, yet semantically they are different. We will
317 /// group high level parameter types that share an underlying raw data type
318 /// together, so you can always check the raw data type of a parameter based
319 /// on its high level data type by checking a range of values.
321 {
322  /// @{
327  /// }@
328 
329  /// @{
332  /// @}
333 
334  /// @{
339  /// @}
340 
342 
343  /// @{
346  /// @}
347 
348  /// @{
353  /// @}
354 
355  // Helpers
356 
357  /// Total number of supported parameter types.
359 
362 
365 
368 
371 
374 
377 
380 };
382 
383 /// Corresponds to the types as shown in the Houdini Type Properties
384 /// window and in DialogScript files. Available on HAPI_ParmInfo
385 /// See: <a href="http://www.sidefx.com/docs/houdini/ref/windows/optype.html#parmtypes">Parameter types</a>
386 ///
388 {
389  /// "int", "integer"
398  /// "toggle", "embed"
402  /// "vector", "vector3"
406  /// "intvector", "intvector3"
411  /// "dir", "direction"
413  /// "color", "rgb"
415  /// "color4", "rgba"
438 
439  /// The following apply to HAPI_PARMTYPE_FOLDER type parms.
440  /// Radio buttons Folder
442  /// Collapsible Folder
444  /// Simple Folder
446  /// Tabs Folder
448 };
450 
452 {
453  /// Parameter is not a menu
455  /// Menu Only, Single Selection
457  /// Mini Menu Only, Single Selection
459  /// Field + Single Selection Menu
461  /// Field + Multiple Selection Menu
463 };
465 
467 {
469  /// Just the presets binary blob
471  /// Presets blob within an .idx file format
474 };
476 
478 {
490 };
492 typedef int HAPI_NodeTypeBits;
493 
494 /// Flags used to filter compositions of node lists.
495 /// Flags marked 'Recursive Flag' will exclude children whos parent does not
496 /// satisfy the flag, even if the children themselves satisfy the flag.
498 {
501  /// Recursive Flag
503  /// Recursive Flag
510 
511  /// OBJ Node Specific Flags
516 
517  /// SOP Node Specific Flags
518  /// Looks for "curve"
520  /// Looks for Guide Geometry
522 
523  /// TOP Node Specific Flags
524  /// All TOP nodes except schedulers
526 
527  HAPI_NODEFLAGS_NON_BYPASS = 1 << 14 /// Nodes that are not bypassed
528 };
530 typedef int HAPI_NodeFlagsBits;
531 
533 {
539 };
541 
543 {
550 };
552 
554 {
560 };
562 
564 {
569 };
571 
573 {
581 };
583 
585 {
596 };
598 
600 {
602  /// Implicit type based on data
604  /// Position
606  /// Homogeneous position
608  /// Direction vector
610  /// Normal
612  /// Color
614  /// Quaternion
616  /// 3x3 Matrix
618  /// Matrix
620  /// Parametric interval
622  /// "Private" (hidden)
624  /// 2x2 Bounding box
626  /// 3x3 Bounding box
628  /// Texture coordinate
631 };
633 
635 {
637 
638  /// Most geos will be of this type which essentially means a geo
639  /// not of the other types.
641 
642  /// An exposed edit node.
643  /// See @ref HAPI_IntermediateAssetsResults.
645 
646  /// An input geo that can accept geometry from the host.
647  /// See @ref HAPI_AssetInputs_MarshallingGeometryIntoHoudini.
649 
650  /// A curve.
651  /// See @ref HAPI_Curves.
653 
655 };
657 
659 {
668 };
670 
672 {
677 };
679 
681 {
687 };
689 
691 {
705 };
707 
709 {
710  HAPI_TRS = 0,
716 
718 };
720 
722 {
723  HAPI_XYZ = 0,
729 
731 };
733 
735 {
743 
745 };
747 
749 {
751  HAPI_IMAGE_PACKING_SINGLE, /// Single Channel
752  HAPI_IMAGE_PACKING_DUAL, /// Dual Channel
754  HAPI_IMAGE_PACKING_BGR, /// RGB Reversed
756  HAPI_IMAGE_PACKING_ABGR, /// RGBA Reversed
758 
761 };
763 
764 /// Used with ::HAPI_GetEnvInt() to retrieve basic information
765 /// about the HAPI implementation currently being linked
766 /// against. Note that as of HAPI version 2.0, these enum values are
767 /// guaranteed never to change so you can reliably get this information from
768 /// any post-2.0 version of HAPI. The same goes for the actual
769 /// ::HAPI_GetEnvInt() API call.
771 {
773 
774  /// The three components of the Houdini version that HAPI is
775  /// expecting to link against.
776  /// @{
781  /// @}
782 
783  /// The two components of the Houdini Engine (marketed) version.
784  /// @{
787  /// @}
788 
789  /// This is a monotonously increasing API version number that can be used
790  /// to lock against a certain API for compatibility purposes. Basically,
791  /// when this number changes code compiled against the HAPI.h methods
792  /// might no longer compile. Semantic changes to the methods will also
793  /// cause this version to increase. This number will be reset to 0
794  /// every time the Houdini Engine version is bumped.
796 
798 };
800 
801 /// This enum is to be used with ::HAPI_GetSessionEnvInt() to retrieve basic
802 /// session-specific information.
804 {
806 
807  /// License Type. See ::HAPI_License.
809 
811 };
813 
814 /// Identifies a memory cache
816 {
817  /// Current memory usage in MB. Setting this to 0 invokes
818  /// a cache clear.
820 
821  HAPI_CACHEPROP_HAS_MIN, /// True if it actually has a minimum size.
822  HAPI_CACHEPROP_MIN, /// Min cache memory limit in MB.
823  HAPI_CACHEPROP_HAS_MAX, /// True if it actually has a maximum size.
824  HAPI_CACHEPROP_MAX, /// Max cache memory limit in MB.
825 
826  /// How aggressive to cull memory. This only works for:
827  /// - ::HAPI_CACHE_COP_COOK where:
828  /// 0 -> Never reduce inactive cache.
829  /// 1 -> Always reduce inactive cache.
830  /// - ::HAPI_CACHE_OBJ where:
831  /// 0 -> Never enforce the max memory limit.
832  /// 1 -> Always enforce the max memory limit.
833  /// - ::HAPI_CACHE_SOP where:
834  /// 0 -> When to Unload = Never
835  /// When to Limit Max Memory = Never
836  /// 1-2 -> When to Unload = Based on Flag
837  /// When to Limit Max Memory = Never
838  /// 3-4 -> When to Unload = Based on Flag
839  /// When to Limit Max Memory = Always
840  /// 5 -> When to Unload = Always
841  /// When to Limit Max Memory = Always
843 };
844 
846 
847 /// Type of sampling for heightfield
849 {
852 };
854 
855 /// Used with PDG functions
857 {
861 
863 };
865 
866 /// Used with PDG functions
868 {
869  /// An empty, undefined event. Should be ignored.
871 
872  /// Sent when a new work item is added by a node
874  /// Sent when a work item is deleted from a node
876  /// Sent when a work item's state changes
878 
879  /// Sent when a work item has a dependency added
881  /// Sent when a dependency is removed from a work item
883 
884  /// Sent from dynamic work items that generate from a cooked item
886  /// Sent when the parent item for a work item is deleted
888 
889  /// A node event that indicates that node is about to have all its work items cleared
891 
892  /// Sent when an error is issued by the node
894  /// Sent when an warning is issued by the node
896 
897  /// Sent for each node in the graph, when a cook completes
899 
900  /// A node event indicating that one more items in the node will be dirtied
902  /// A node event indicating that the node has finished dirtying items
904 
905  /// A event indicating that the entire graph is about to be dirtied
907 
908  /// A work item event that indicates the item has been selected in the TOPs UI
910 
911  /// Sent when a new node is created
913  /// Sent when a node was removed from the graph
915  /// Sent when a node was renamed
917  /// Sent when a node was connected to another node
919  /// Sent when a node is disconnected from another node
921 
922  /// Sent when an int attribute value is modified on a work item
924  /// Sent when a float attribute value is modified on a work item
926  /// Sent when a string attribute value is modified on a work item
928  /// Sent when a file attribute value is modified on a work item
930  /// Sent when a Python object attribute value is modified on a work item
932  /// Sent when a geometry attribute value is modified on a work item
934  /// Deprecated
936  /// Sent when an output file is added to a work item
938 
939  /// Sent when a work items priority is changed
941  /// Sent for each node in the graph, when a cook starts
943  /// Deprecated
945  /// Deprecated
947 
948  /// Deprecated
950  /// Deprecated
952  /// A special enum that represents the OR of all event types
954  /// A special enum that represents the OR of both the `CookError` and `CookWarning` events
956 
957  /// Sent when a new scheduler is added to the graph
959  /// Sent when a scheduler is removed from the graph
961  /// Sent when the scheduler assigned to a node is changed
963  /// Deprecated
965 
967 };
969 
970 /// Used with PDG functions
972 {
983 };
985 
986 /////////////////////////////////////////////////////////////////////////////
987 // Main API Structs
988 
989 // GENERICS -----------------------------------------------------------------
990 
991 /// A Transform with Quaternion rotation
993 {
994  float position[ HAPI_POSITION_VECTOR_SIZE ];
995  float rotationQuaternion[ HAPI_QUATERNION_VECTOR_SIZE ];
998 
1000 };
1002 
1003 /// A Transform with Euler rotation
1005 {
1006  float position[ HAPI_POSITION_VECTOR_SIZE ];
1007  float rotationEuler[ HAPI_EULER_VECTOR_SIZE ];
1010 
1013 };
1015 
1016 // SESSIONS -----------------------------------------------------------------
1017 
1018 /// Identifies a session
1020 {
1021  /// The type of session determines the which implementation will be
1022  /// used to communicate with the Houdini Engine library.
1024 
1025  /// Some session types support multiple simultaneous sessions. This means
1026  /// that each session needs to have a unique identifier.
1027  HAPI_SessionId id;
1028 };
1030 
1031 /// Options to configure a Thrift server being started from HARC.
1033 {
1034  /// Close the server automatically when all clients disconnect from it.
1036 
1037  /// Timeout in milliseconds for waiting on the server to
1038  /// signal that it's ready to serve. If the server fails
1039  /// to signal within this time interval, the start server call fails
1040  /// and the server process is terminated.
1041  float timeoutMs;
1042 };
1044 
1045 // TIME ---------------------------------------------------------------------
1046 
1047 /// Data for global timeline, used with ::HAPI_SetTimelineOptions()
1049 {
1050  float fps;
1051 
1052  float startTime;
1053  float endTime;
1054 };
1056 
1057 // ASSETS -------------------------------------------------------------------
1058 
1059 /// Meta-data about an HDA, returned by ::HAPI_GetAssetInfo()
1061 {
1062  /// Use the node id to get the asset's parameters.
1063  /// See @ref HAPI_Nodes_Basics.
1064  HAPI_NodeId nodeId;
1065 
1066  /// The objectNodeId differs from the regular nodeId in that for
1067  /// geometry based assets (SOPs) it will be the node id of the dummy
1068  /// object (OBJ) node instead of the asset node. For object based assets
1069  /// the objectNodeId will equal the nodeId. The reason the distinction
1070  /// exists is because transforms are always stored on the object node
1071  /// but the asset parameters may not be on the asset node if the asset
1072  /// is a geometry asset so we need both.
1073  HAPI_NodeId objectNodeId;
1074 
1075  /// It's possible to instantiate an asset without cooking it.
1076  /// See @ref HAPI_Assets_Cooking.
1078 
1079  HAPI_StringHandle nameSH; /// Instance name (the label + a number).
1080  HAPI_StringHandle labelSH; /// This is what any end user should be shown.
1081  HAPI_StringHandle filePathSH; /// Path to the .otl library file.
1082  HAPI_StringHandle versionSH; /// User-defined asset version.
1083  HAPI_StringHandle fullOpNameSH; /// Full asset name and namespace.
1084  HAPI_StringHandle helpTextSH; /// Asset help marked-up text.
1085  HAPI_StringHandle helpURLSH; /// Asset help URL.
1086 
1087  int objectCount; /// See @ref HAPI_Objects.
1088  int handleCount; /// See @ref HAPI_Handles.
1089 
1090  /// Transform inputs exposed by the asset. For OBJ assets this is the
1091  /// number of transform inputs on the OBJ node. For SOP assets, this is
1092  /// the singular transform input on the dummy wrapper OBJ node.
1093  /// See @ref HAPI_AssetInputs.
1095 
1096  /// Geometry inputs exposed by the asset. For SOP assets this is
1097  /// the number of geometry inputs on the SOP node itself. OBJ assets
1098  /// will always have zero geometry inputs.
1099  /// See @ref HAPI_AssetInputs.
1101 
1102  /// Geometry outputs exposed by the asset. For SOP assets this is
1103  /// the number of geometry outputs on the SOP node itself. OBJ assets
1104  /// will always have zero geometry outputs.
1105  /// See @ref HAPI_AssetInputs.
1107 
1108  /// For incremental updates. Indicates whether any of the assets's
1109  /// objects have changed. Refreshed only during an asset cook.
1111 
1112  /// For incremental updates. Indicates whether any of the asset's
1113  /// materials have changed. Refreshed only during an asset cook.
1115 };
1117 
1118 /// Options which affect how nodes are cooked.
1120 {
1121  /// Normally, geos are split into parts in two different ways. First it
1122  /// is split by group and within each group it is split by primitive type.
1123  ///
1124  /// For example, if you have a geo with group1 covering half of the mesh
1125  /// and volume1 and group2 covering the other half of the mesh, all of
1126  /// curve1, and volume2 you will end up with 5 parts. First two parts
1127  /// will be for the half-mesh of group1 and volume1, and the last three
1128  /// will cover group2.
1129  ///
1130  /// This toggle lets you disable the splitting by group and just have
1131  /// the geo be split by primitive type alone. By default, this is true
1132  /// and therefore geos will be split by group and primitive type. If
1133  /// set to false, geos will only be split by primitive type.
1135 
1136  /// This toggle lets you enable the splitting by unique values
1137  /// of a specified attribute. By default, this is false and
1138  /// the geo be split as described above.
1139  /// as described above. If this is set to true, and splitGeosByGroup
1140  /// set to false, mesh geos will be split on attribute values
1141  /// The attribute name to split on must be created with HAPI_SetCustomString
1142  /// and then the splitAttrSH handle set on the struct.
1144  HAPI_StringHandle splitAttrSH;
1145 
1146  /// For meshes only, this is enforced by convexing the mesh. Use -1
1147  /// to avoid convexing at all and get some performance boost.
1149 
1150  /// For curves only.
1151  /// If this is set to true, then all curves will be refined to a linear
1152  /// curve and you can no longer access the original CVs. You can control
1153  /// the refinement detail via ::HAPI_CookOptions::curveRefineLOD.
1154  /// If it's false, the curve type (NURBS, Bezier etc) will be left as is.
1156 
1157  /// Controls the number of divisions per unit distance when refining
1158  /// a curve to linear. The default in Houdini is 8.0.
1160 
1161  /// If this option is turned on, then we will recursively clear the
1162  /// errors and warnings (and messages) of all nodes before performing
1163  /// the cook.
1165 
1166  /// Decide whether to recursively cook all templated geos or not.
1168 
1169  /// Decide whether to split points by vertex attributes. This takes
1170  /// all vertex attributes and tries to copy them to their respective
1171  /// points. If two vertices have any difference in their attribute values,
1172  /// the corresponding point is split into two points. This is repeated
1173  /// until all the vertex attributes have been copied to the points.
1174  ///
1175  /// With this option enabled, you can reduce the total number of vertices
1176  /// on a game engine side as sharing of attributes (like UVs) is optimized.
1177  /// To make full use of this feature, you have to think of Houdini points
1178  /// as game engine vertices (sharable). With this option OFF (or before
1179  /// this feature existed) you had to map Houdini vertices to game engine
1180  /// vertices, to make sure all attribute values are accounted for.
1182 
1183  /// Choose how you want the cook to handle packed primitives.
1184  /// The default is: ::HAPI_PACKEDPRIM_INSTANCING_MODE_DISABLED
1186 
1187  /// Choose which special part types should be handled. Unhandled special
1188  /// part types will just be refined to ::HAPI_PARTTYPE_MESH.
1191 
1192  /// If enabled, sets the ::HAPI_PartInfo::hasChanged member during the
1193  /// cook. If disabled, the member will always be true. Checking for
1194  /// part changes can be expensive, so there is a potential performance
1195  /// gain when disabled.
1197 
1198 
1199  /// This toggle lets you enable the caching of the mesh topology.
1200  /// By default, this is false. If this is set to true, cooking a mesh
1201  /// geometry will update only the topology if the number of points changed.
1202  /// Use this to get better performance on deforming meshes.
1204 
1205  /// For internal use only. :)
1207 };
1209 
1210 // NODES --------------------------------------------------------------------
1211 
1212 /// Meta-data for a Houdini Node
1214 {
1215  HAPI_NodeId id;
1216  HAPI_NodeId parentId;
1217  HAPI_StringHandle nameSH;
1219 
1220  /// Always true unless the asset's definition has changed due to loading
1221  /// a duplicate asset definition and from another OTL asset library
1222  /// file OR deleting the OTL asset library file used by this node's asset.
1224 
1225  /// Total number of cooks of this node.
1227 
1228  /// Use this unique id to grab the OP_Node pointer for this node.
1229  /// If you're linking against the C++ HDK, include the OP_Node.h header
1230  /// and call OP_Node::lookupNode().
1232 
1233  /// This is the internal node path in the Houdini scene graph. This path
1234  /// is meant to be abstracted away for most client purposes but for
1235  /// advanced uses it can come in handy.
1236  HAPI_StringHandle internalNodePathSH;
1237 
1238  /// Total number of parameters this asset has exposed. Includes hidden
1239  /// parameters.
1240  /// See @ref HAPI_Parameters.
1242 
1243  /// Number of values. A single parameter may have more than one value so
1244  /// this number is more than or equal to ::HAPI_NodeInfo::parmCount.
1245  /// @{
1249  /// @}
1250 
1251  /// The total number of choices among all the combo box parameters.
1252  /// See @ref HAPI_Parameters_ChoiceLists.
1254 
1255  /// The number of child nodes. This is 0 for all nodes that are not
1256  /// node networks.
1258 
1259  /// The number of inputs this specific node has.
1261 
1262  /// The number of outputs this specific node has.
1264 
1265  /// Nodes created via scripts or via ::HAPI_CreateNode() will be have
1266  /// this set to true. Only such nodes can be deleted using
1267  /// ::HAPI_DeleteNode().
1269 
1270  /// Indicates if this node will change over time
1272 };
1274 
1275 // PARAMETERS ---------------------------------------------------------------
1276 
1277 ///
1278 /// Contains parameter information like name, label, type, and size.
1279 ///
1281 {
1282  /// The parent id points to the id of the parent parm
1283  /// of this parm. The parent parm is something like a folder.
1284  HAPI_ParmId id;
1285 
1286  /// Parameter id of the parent of this parameter.
1287  HAPI_ParmId parentId;
1288 
1289  /// Child index within its immediate parent parameter.
1291 
1292  /// The HAPI type of the parm
1294 
1295  /// The Houdini script-type of the parm
1297 
1298  /// Some parameter types require additional type information.
1299  /// - File path parameters will indicate what file extensions they
1300  /// expect in a space-separated list of wild-cards. This is set
1301  /// in the Operator Type Properties using the File Pattern
1302  /// parameter property.
1303  /// For example, for filtering by PNG and JPG only: "*.png *.jpg"
1304  HAPI_StringHandle typeInfoSH;
1305 
1306  /// For the majority of parameter types permission will not be applicable.
1307  /// For file path parameters these permissions will indicate how the
1308  /// asset plans to use the file: whether it will only read it, only write
1309  /// to it, or both. This is set in the Operator Type Properties using
1310  /// the Browse Mode parameter property.
1312 
1313  /// Number of tags on this paramter.
1315 
1316  /// Tuple size. For scalar parameters this value is 1, but for vector
1317  /// parameters this value can be greater. For example, a 3 vector would
1318  /// have a size of 3. For folders and folder lists, this value is the
1319  /// number of children they own.
1320  int size;
1321 
1322  /// Any ::HAPI_ParmType can be a choice list. If this is set to
1323  /// ::HAPI_CHOICELISTTYPE_NONE, than this parameter is NOT a choice list.
1324  /// Otherwise, the parameter is a choice list of the indicated type.
1325  /// See @ref HAPI_Parameters_ChoiceLists.
1327 
1328  /// Any ::HAPI_ParmType can be a choice list. If the parameter is a
1329  /// choice list, this tells you how many choices it currently has.
1330  /// Note that some menu parameters can have a dynamic number of choices
1331  /// so it is important that this count is re-checked after every cook.
1332  /// See @ref HAPI_Parameters_ChoiceLists.
1334 
1335  /// Note that folders are not real parameters in Houdini so they do not
1336  /// have names. The folder names given here are generated from the name
1337  /// of the folderlist (or switcher) parameter which is a parameter. The
1338  /// folderlist parameter simply defines how many of the "next" parameters
1339  /// belong to the first folder, how many of the parameters after that
1340  /// belong to the next folder, and so on. This means that folder names
1341  /// can change just by reordering the folders around so don't rely on
1342  /// them too much. The only guarantee here is that the folder names will
1343  /// be unique among all other parameter names.
1344  HAPI_StringHandle nameSH;
1345 
1346  /// The label string for the parameter
1347  HAPI_StringHandle labelSH;
1348 
1349  /// If this parameter is a multiparm instance than the
1350  /// ::HAPI_ParmInfo::templateNameSH will be the hash-templated parm name,
1351  /// containing #'s for the parts of the name that use the instance number.
1352  /// Compared to the ::HAPI_ParmInfo::nameSH, the ::HAPI_ParmInfo::nameSH
1353  /// will be the ::HAPI_ParmInfo::templateNameSH but with the #'s
1354  /// replaced by the instance number. For regular parms, the
1355  /// ::HAPI_ParmInfo::templateNameSH is identical to the
1356  /// ::HAPI_ParmInfo::nameSH.
1357  HAPI_StringHandle templateNameSH;
1358 
1359  /// The help string for this parameter
1360  HAPI_StringHandle helpSH;
1361 
1362  /// Whether min/max exists for the parameter values.
1363  /// @{
1368  /// @}
1369 
1370  /// Parameter value range, shared between int and float parameters.
1371  /// @{
1372  float min;
1373  float max;
1374  float UIMin;
1375  float UIMax;
1376  /// @}
1377 
1378  /// Whether this parm should be hidden from the user entirely. This is
1379  /// mostly used to expose parameters as asset meta-data but not allow the
1380  /// user to directly modify them.
1382 
1383  /// Whether this parm should appear enabled or disabled.
1385 
1386  /// If true, it means this parameter doesn't actually exist on the node
1387  /// in Houdini but was added by Houdini Engine as a spare parameter.
1388  /// This is just for your information. The behaviour of this parameter
1389  /// is not any different than a non-spare parameter.
1391 
1392  HAPI_Bool joinNext; /// Whether this parm should be on the same line as
1393  /// the next parm.
1394  HAPI_Bool labelNone; /// Whether the label should be displayed.
1395 
1396  /// The index to use to look into the values array in order to retrieve
1397  /// the actual value(s) of this parameter.
1398  /// @{
1403  /// @}
1404 
1405  /// If this is a ::HAPI_PARMTYPE_NODE, this tells you what node types
1406  /// this parameter accepts.
1408 
1409  /// The node input parameter could have another subtype filter specified,
1410  /// like "Object: Geometry Only". In this case, this value will specify
1411  /// that extra filter. If the filter demands a node that HAPI does not
1412  /// support, both this and ::HAPI_ParmInfo::inputNodeType will be set to
1413  /// NONE as such a node is not settable through HAPI.
1415 
1416  /// See @ref HAPI_Parameters_MultiParms.
1417  /// @{
1419 
1420  int instanceNum; /// The index of the instance in the multiparm.
1421  int instanceLength; /// The number of parms in a multiparm instance.
1422  int instanceCount; /// The number of instances in a multiparm.
1423 
1424  /// First instance's ::HAPI_ParmInfo::instanceNum. Either 0 or 1.
1426 
1428  /// @}
1429 
1430  /// Provides the raw condition string which is used to evaluate the
1431  /// the visibility of a parm
1432  HAPI_StringHandle visibilityConditionSH;
1433 
1434  /// Provides the raw condition string which is used to evalute whether
1435  /// a parm is enabled or disabled
1436  HAPI_StringHandle disabledConditionSH;
1437 };
1439 
1440 /// Meta-data for a combo-box / choice parm
1442 {
1443  HAPI_ParmId parentParmId;
1444  HAPI_StringHandle labelSH;
1445 
1446  /// This evaluates to the value of the token associated with the label
1447  /// applies to string menus only.
1448  HAPI_StringHandle valueSH;
1449 };
1451 
1452 // HANDLES ------------------------------------------------------------------
1453 
1454 ///
1455 /// Contains handle information such as the type of handle
1456 /// (translate, rotate, scale, softxform ...etc) and the number of
1457 /// parameters the current handle is bound to.
1458 ///
1460 {
1461  HAPI_StringHandle nameSH;
1462  HAPI_StringHandle typeNameSH;
1463 
1465 };
1467 
1468 ///
1469 /// Contains binding information that maps the handle parameter to
1470 /// the asset parameter. The index is only used for int and float vector
1471 /// and colour parms.
1472 ///
1474 {
1475  HAPI_StringHandle handleParmNameSH;
1476  HAPI_StringHandle assetParmNameSH;
1477 
1478  HAPI_ParmId assetParmId;
1480 };
1482 
1483 // OBJECTS ------------------------------------------------------------------
1484 
1485 /// Meta-data for an OBJ Node
1487 {
1488  HAPI_StringHandle nameSH;
1489 
1490  /// @deprecated This member is no longer used
1491  HAPI_StringHandle objectInstancePathSH;
1492 
1493  /// For incremental updates. Indicates whether the object's transform
1494  /// has changed. Refreshed only during an asset cook.
1496 
1497  /// For incremental updates. Indicates whether any of the object's
1498  /// geometry nodes have changed. Refreshed only during an asset cook.
1500 
1501  /// Whether the object is hidden and should not be shown. Some objects
1502  /// should be hidden but still brought into the host environment, for
1503  /// example those used only for instancing.
1504  /// See @ref HAPI_Instancing.
1506 
1507  /// See @ref HAPI_Instancing.
1509 
1510  /// Determine if this object is being instanced. Normally, this implies
1511  /// that while this object may not be visible, it should still be
1512  /// brought into the host application because it is needed by an instancer.
1513  /// See @ref HAPI_Instancing.
1515 
1516  /// @deprecated No longer used. See @ref HAPI_Geos
1518 
1519  /// Use the node id to get the node's parameters.
1520  /// Using the HDK, you can also get the raw node C++ pointer for this
1521  /// object's internal node.
1522  /// See @ref HAPI_Nodes_Basics.
1523  HAPI_NodeId nodeId;
1524 
1525  /// If the object is an instancer, this variable gives the object id of
1526  /// the object that should be instanced.
1527  /// See @ref HAPI_Instancing.
1528  HAPI_NodeId objectToInstanceId;
1529 };
1531 
1532 // GEOMETRY -----------------------------------------------------------------
1533 
1534 /// Meta-data for a SOP Node
1536 {
1538  HAPI_StringHandle nameSH;
1539 
1540  /// Use the node id to get the node's parameters.
1541  /// Using the HDK, you can also get the raw node C++ pointer for this
1542  /// object's internal node.
1543  HAPI_NodeId nodeId;
1544 
1545  /// Whether the SOP node has been exposed by dragging it into the
1546  /// editable nodes section of the asset definition.
1548 
1549  /// Has the templated flag turned on which means "expose as read-only".
1551 
1552  /// Final Result (Display SOP).
1554 
1555  /// For incremental updates.
1557 
1558  /// @deprecated This variable is deprecated and should no longer be used.
1559  /// Materials are now separate from parts. They are maintained at the
1560  /// asset level so you only need to check if the material itself has
1561  /// changed via ::HAPI_MaterialInfo::hasChanged instead of the material
1562  /// on the part.
1564 
1565  /// Groups.
1566  /// @{
1570  /// @}
1571 
1572  /// Total number of parts this geometry contains.
1573  /// See @ref HAPI_Parts.
1575 };
1577 
1578 /// Meta-data describing a Geo Part
1580 {
1581  /// Id to identify this part relative to it's Geo
1582  HAPI_PartId id;
1583  /// String handle for the name of the part
1584  HAPI_StringHandle nameSH;
1586 
1589  /// Number of points. Note that this is NOT the number
1590  /// of "positions" as "points" may imply. If your
1591  /// geometry has 3 points then set this to 3 and not 3*3.
1593 
1594  int attributeCounts[ HAPI_ATTROWNER_MAX ];
1595 
1596  /// If this is true, don't display this part. Load its data but then
1597  /// instance it where the corresponding instancer part tells you to
1598  /// instance it.
1600 
1601  /// The number of parts that this instancer part is instancing.
1602  /// For example, if we're instancing a curve and a box, they would come
1603  /// across as two parts, hence this count would be two.
1604  /// Call ::HAPI_GetInstancedPartIds() to get the list of ::HAPI_PartId's.
1606 
1607  /// The number of instances that this instancer part is instancing.
1608  /// Using the same example as with ::HAPI_PartInfo::instancedPartCount,
1609  /// if I'm instancing the merge of a curve and a box 5 times, this count
1610  /// would be 5. To be clear, all instanced parts are instanced the same
1611  /// number of times and with the same transform for each instance.
1612  /// Call ::HAPI_GetInstancerPartTransforms() to get the transform of
1613  /// each instance.
1615 
1616  /// If this is false, the underlying attribute data appear to match that of
1617  /// the previous cook. In this case you may be able to re-used marshaled
1618  /// data from the previous cook.
1620 };
1622 
1623 /// Meta-data describing an attribute
1624 /// See @ref HAPI_Attributes.
1626 {
1628 
1631 
1632  /// When converting from the Houdini native GA geometry format to the
1633  /// GT geometry format HAPI uses, some attributes might change owners.
1634  /// For example, in Houdini GA curves can have points shared by
1635  /// vertices but the GT format only supports curve vertices
1636  /// (no points). This means that if you had point attributes on a curve
1637  /// in Houdini, when it comes out of HAPI those point attributes will now
1638  /// be vertex attributes. In this case, the ::HAPI_AttributeInfo::owner
1639  /// will be set to ::HAPI_ATTROWNER_VERTEX but the
1640  /// ::HAPI_AttributeInfo::originalOwner will be ::HAPI_ATTROWNER_POINT.
1642 
1643  /// Number of attributes. This count will match the number of values
1644  /// given the owner. For example, if the owner is ::HAPI_ATTROWNER_VERTEX
1645  /// this count will be the same as the ::HAPI_PartInfo::vertexCount.
1646  /// To be clear, this is not the number of values in the attribute, rather
1647  /// it is the number of attributes. If your geometry has three 3D points
1648  /// then this count will be 3 (not 3*3) while the
1649  /// ::HAPI_AttributeInfo::tupleSize will be 3.
1650  int count;
1651 
1652  /// Number of values per attribute.
1653  /// Note that this is NOT the memory size of the attribute. It is the
1654  /// number of values per attributes. Multiplying this by the
1655  /// size of the ::HAPI_AttributeInfo::storage will give you the memory
1656  /// size per attribute.
1658 
1659  /// Total number of elements for an array attribute.
1660  /// An array attribute can be thought of as a 2 dimensional array where
1661  /// the 2nd dimension can vary in size for each element in the 1st
1662  /// dimension. Therefore this returns the total number of values in
1663  /// the entire array.
1664  /// This should be used to determine the total storage
1665  /// size needed by multiplying with ::HAPI_AttributeInfo::storage.
1666  /// Note that this will be 0 for a non-array attribute.
1668 
1669  /// Attribute type info
1670  /// This is used to help identify the type of data stored in an attribute.
1671  /// Using the type is recommended over using just an attribute's name to identify
1672  /// its purpose.
1674 };
1676 
1677 // MATERIALS ----------------------------------------------------------------
1678 
1680 {
1681  /// This is the HAPI node id for the SHOP node this material is attached
1682  /// to. Use it to get access to the parameters (which contain the
1683  /// texture paths).
1684  /// IMPORTANT: When the ::HAPI_MaterialInfo::hasChanged is true this
1685  /// @p nodeId could have changed. Do not assume ::HAPI_MaterialInfo::nodeId
1686  /// will never change for a specific material.
1687  HAPI_NodeId nodeId;
1688 
1690 
1692 };
1694 
1695 /// Describes an image format, used with ::HAPI_GetSupportedImageFileFormats()
1697 {
1698  HAPI_StringHandle nameSH;
1699  HAPI_StringHandle descriptionSH;
1700  HAPI_StringHandle defaultExtensionSH;
1701 };
1703 
1704 /// Data for an image, used with ::HAPI_GetImageInfo() and ::HAPI_SetImageInfo()
1706 {
1707  /// Unlike the other members of this struct changing imageFileFormatNameSH
1708  /// and giving this struct back to HAPI_SetImageInfo() nothing will happen.
1709  /// Use this member variable to derive which image file format will be used
1710  /// by the HAPI_ExtractImageTo...() functions if called with
1711  /// image_file_format_name set to NULL. This way, you can decide whether
1712  /// to ask for a file format conversion (slower) or not (faster).
1713  /// (Read-only)
1714  HAPI_StringHandle imageFileFormatNameSH;
1715 
1716  int xRes;
1717  int yRes;
1718 
1720 
1721  HAPI_Bool interleaved; /// ex: true = RGBRGBRGB, false = RRRGGGBBB
1723 
1724  /// Adjust the gamma of the image. For anything less than
1725  /// ::HAPI_IMAGE_DATA_INT16, you probably want to leave this as 2.2.
1726  double gamma;
1727 };
1729 
1730 // ANIMATION ----------------------------------------------------------------
1731 
1732 /// Data for a single Key Frame
1734 {
1735  float time;
1736  float value;
1737  float inTangent;
1738  float outTangent;
1739 };
1741 
1742 // VOLUMES ------------------------------------------------------------------
1743 
1744 ///
1745 /// This represents a volume primitive but does not contain the actual voxel
1746 /// values, which can be retrieved on a per-tile basis.
1747 ///
1748 /// See @ref HAPI_Volumes.
1749 ///
1751 {
1752  HAPI_StringHandle nameSH;
1753 
1755 
1756  /// Each voxel is identified with an index. The indices will range
1757  /// between:
1758  /// [ ( minX, minY, minZ ), ( minX+xLength, minY+yLength, minZ+zLength ) )
1759  /// @{
1760  int xLength;
1761  int yLength;
1762  int zLength;
1763  int minX;
1764  int minY;
1765  int minZ;
1766  /// @}
1767 
1768  /// Number of values per voxel.
1769  /// The tuple size field is 1 for scalars and 3 for vector data.
1771 
1772  /// Can be either ::HAPI_STORAGETYPE_INT or ::HAPI_STORAGETYPE_FLOAT.
1774 
1775  /// The dimensions of each tile.
1776  /// This can be 8 or 16, denoting an 8x8x8 or 16x16x16 tiles.
1778 
1779  /// The transform of the volume with respect to the lengths.
1780  /// The volume may be positioned anywhere in space.
1782 
1783  /// Denotes special situations where the volume tiles are not perfect
1784  /// cubes, but are tapered instead.
1786 
1787  /// If there is taper involved, denotes the amount of taper involved.
1788  /// @{
1789  float xTaper;
1790  float yTaper;
1791  /// @}
1792 };
1794 
1795 ///
1796 /// A HAPI_VolumeTileInfo represents an cube subarray of the volume.
1797 /// The size of each dimension is ::HAPI_VolumeInfo::tileSize
1798 /// bbox [(minX, minY, minZ), (minX+tileSize, minY+tileSize, minZ+tileSize))
1799 ///
1801 {
1802  int minX;
1803  int minY;
1804  int minZ;
1806 };
1808 
1809 ///
1810 /// Describes the visual settings of a volume.
1811 ///
1813 {
1815  float iso;
1816  float density;
1817 };
1819 
1820 // CURVES -------------------------------------------------------------------
1821 
1822 ///
1823 /// Represents the meta-data associated with a curve mesh (a number
1824 /// of curves of the same type).
1826 {
1828  int curveCount; /// The number of curves contained in this curve mesh.
1829  int vertexCount; /// The number of control vertices (CVs) for all curves.
1830  int knotCount; /// The number of knots for all curves.
1831 
1833  /// Whether the curves in this curve mesh are periodic.
1835  /// Whether the curves in this curve mesh are rational.
1836  int order; /// Order of 1 is invalid. 0 means there is a varying order.
1837 
1838  HAPI_Bool hasKnots; /// Whether the curve has knots.
1839 };
1841 
1842 // BASIC PRIMITIVES ---------------------------------------------------------
1843 
1844 /// Data for a Box Part
1846 {
1847  float center[ HAPI_POSITION_VECTOR_SIZE ];
1850 };
1852 
1853 /// Data for a Sphere Part
1855 {
1856  float center[ HAPI_POSITION_VECTOR_SIZE ];
1857  float radius;
1858 };
1860 
1861 // PDG Structs --------------------------------------------------------------
1862 
1863 /// Data associated with a PDG Event
1865 {
1866  HAPI_NodeId nodeId; /// id of related node
1867  HAPI_PDG_WorkitemId workitemId; /// id of related workitem
1868  HAPI_PDG_WorkitemId dependencyId; /// id of related workitem dependency
1869  int currentState; /// (HAPI_PDG_WorkItemState) value of current state for state change
1870  int lastState; /// (HAPI_PDG_WorkItemState) value of last state for state change
1871  int eventType; /// (HAPI_PDG_EventType) event type
1872  HAPI_StringHandle msgSH; /// String handle of the event message (> 0 if there is a message)
1873 };
1875 
1876 /// Info for a PDG Workitem
1878 {
1879  int index; /// index of the workitem
1880  int numResults; /// number of results reported
1881  HAPI_StringHandle nameSH; /// name of the workitem
1882 };
1884 
1885 /// Data for a PDG file result
1887 {
1888  int resultSH; /// result string data
1889  int resultTagSH; /// result tag
1890  HAPI_Int64 resultHash; /// hash value of result
1891 };
1893 
1894 // SESSIONSYNC --------------------------------------------------------------
1895 
1896 ///
1897 /// Contains the information for synchronizing viewport between Houdini
1898 /// and other applications. When SessionSync is enabled, Houdini will
1899 /// update this struct with its viewport state. It will also update
1900 /// its own viewport if this struct has changed.
1901 /// The data stored is in Houdini's right-handed Y-up coordinate system.
1902 ///
1904 {
1905  /// The world position of the viewport camera's pivot.
1906  float position[ HAPI_POSITION_VECTOR_SIZE ];
1907 
1908  /// The direction of the viewport camera stored as a quaternion.
1909  float rotationQuaternion[ HAPI_QUATERNION_VECTOR_SIZE ];
1910 
1911  /// The offset from the pivot to the viewport camera's
1912  /// actual world position.
1913  float offset;
1914 };
1916 
1917 ///
1918 /// Contains the information for synchronizing general SessionSync
1919 /// state between Houdini and other applications. When SessionSync
1920 /// is enabled, Houdini will update this struct with its state.
1921 /// It will also update its internal state if this struct has
1922 /// changed.
1923 ///
1925 {
1926  /// Specifies whether Houdini's current time is used for Houdini Engine
1927  /// cooks. This is automatically enabled in SessionSync where
1928  /// Houdini's viewport forces cooks to use Houdini's current time.
1929  /// This is disabled in non-SessionSync mode, but can be toggled to
1930  /// override default behaviour.
1932 
1933  /// Specifies whether viewport synchronization is enabled. If enabled,
1934  /// in SessionSync, Houdini will update its own viewport using
1935  /// ::HAPI_Viewport.
1937 };
1939 
1940 #endif // __HAPI_COMMON_h__
HAPI_License
Definition: HAPI_Common.h:179
HAPI_NodeId objectNodeId
Definition: HAPI_Common.h:1073
"vector", "vector3"
Definition: HAPI_Common.h:403
#define HAPI_QUATERNION_VECTOR_SIZE
Definition: HAPI_Common.h:20
Min cache memory limit in MB.
Definition: HAPI_Common.h:823
A event indicating that the entire graph is about to be dirtied.
Definition: HAPI_Common.h:906
HAPI_StringHandle disabledConditionSH
Definition: HAPI_Common.h:1436
Sent when a dependency is removed from a work item.
Definition: HAPI_Common.h:882
HAPI_StringHandle nameSH
Definition: HAPI_Common.h:1538
Sent when an output file is added to a work item.
Definition: HAPI_Common.h:937
HAPI_StringHandle nameSH
Definition: HAPI_Common.h:1344
Sent when a geometry attribute value is modified on a work item.
Definition: HAPI_Common.h:933
HAPI_NodeId nodeId
Definition: HAPI_Common.h:1866
Data for an image, used with HAPI_GetImageInfo() and HAPI_SetImageInfo()
Definition: HAPI_Common.h:1705
HAPI_StringHandle labelSH
Instance name (the label + a number).
Definition: HAPI_Common.h:1080
HAPI_StringHandle nameSH
String handle for the name of the part.
Definition: HAPI_Common.h:1584
HAPI_Bool isInstancer
See HAPI_Instancing.
Definition: HAPI_Common.h:1508
HAPI_VolumeVisualType
Definition: HAPI_Common.h:572
Sent for each node in the graph, when a cook completes.
Definition: HAPI_Common.h:898
Sent when an error is issued by the node.
Definition: HAPI_Common.h:893
HAPI_ImageDataFormat dataFormat
Definition: HAPI_Common.h:1719
int parmStringValueCount
Definition: HAPI_Common.h:1248
HAPI_Bool clearErrorsAndWarnings
Definition: HAPI_Common.h:1164
Texture coordinate.
Definition: HAPI_Common.h:629
Recursive Flag.
Definition: HAPI_Common.h:504
Recursive Flag.
Definition: HAPI_Common.h:502
GLsizeiptr size
Definition: glew.h:1681
A work item event that indicates the item has been selected in the TOPs UI.
Definition: HAPI_Common.h:909
HAPI_ChoiceListType choiceListType
Definition: HAPI_Common.h:1326
int HAPI_NodeTypeBits
Definition: HAPI_Common.h:492
int16_t HAPI_Int16
Definition: HAPI_Common.h:133
HAPI_StringHandle nameSH
Definition: HAPI_Common.h:1488
Sent when a file attribute value is modified on a work item.
Definition: HAPI_Common.h:929
HAPI_NodeId objectToInstanceId
Definition: HAPI_Common.h:1528
HAPI_Bool refineCurveToLinear
Definition: HAPI_Common.h:1155
HAPI_PDG_WorkitemId workitemId
id of related node
Definition: HAPI_Common.h:1867
Used for Results. Equivalent to HAPI_STATUSVERBOSITY_1.
Definition: HAPI_Common.h:211
HAPI_ParmId id
Definition: HAPI_Common.h:1284
Just the presets binary blob.
Definition: HAPI_Common.h:470
int intValuesIndex
Whether the label should be displayed.
Definition: HAPI_Common.h:1399
"dir", "direction"
Definition: HAPI_Common.h:412
HAPI_Bool isEditable
Definition: HAPI_Common.h:1547
int HAPI_PDG_GraphContextId
Use this with PDG functions.
Definition: HAPI_Common.h:170
#define HAPI_POSITION_VECTOR_SIZE
Definition: HAPI_Common.h:16
HAPI_RampType rampType
Definition: HAPI_Common.h:1427
int floatValuesIndex
Whether the label should be displayed.
Definition: HAPI_Common.h:1400
MatType shear(Axis axis0, Axis axis1, typename MatType::value_type shear)
Set the matrix to a shear along axis0 by a fraction of axis1.
Definition: Mat.h:703
HAPI_PackedPrimInstancingMode packedPrimInstancingMode
Definition: HAPI_Common.h:1185
Parametric interval.
Definition: HAPI_Common.h:621
HAPI_SessionEnvIntType
Definition: HAPI_Common.h:803
"toggle", "embed"
Definition: HAPI_Common.h:399
HAPI_StringHandle nameSH
Definition: HAPI_Common.h:1217
#define HAPI_API
Definition: HAPI_API.h:79
OBJ Node Specific Flags.
Definition: HAPI_Common.h:512
int resultTagSH
result string data
Definition: HAPI_Common.h:1889
HAPI_NodeFlags
Definition: HAPI_Common.h:497
HAPI_GeoType
Definition: HAPI_Common.h:634
A special enum that represents the OR of all event types.
Definition: HAPI_Common.h:953
int instanceCount
The number of parms in a multiparm instance.
Definition: HAPI_Common.h:1422
HAPI_StringHandle visibilityConditionSH
Definition: HAPI_Common.h:1432
GLenum GLenum GLenum GLenum GLenum scale
Definition: glew.h:13880
HAPI_Bool hasEverCooked
Definition: HAPI_Common.h:1077
int eventType
(HAPI_PDG_WorkItemState) value of last state for state change
Definition: HAPI_Common.h:1871
HAPI_Bool haveMaterialsChanged
Definition: HAPI_Common.h:1114
HAPI_NodeType inputNodeType
Definition: HAPI_Common.h:1407
HAPI_StringHandle typeNameSH
Definition: HAPI_Common.h:1462
HAPI_Bool isPeriodic
The number of knots for all curves.
Definition: HAPI_Common.h:1832
HAPI_RSTOrder
Definition: HAPI_Common.h:708
int parmFloatValueCount
Definition: HAPI_Common.h:1247
"intvector", "intvector3"
Definition: HAPI_Common.h:407
HAPI_CurveType
Definition: HAPI_Common.h:553
HAPI_PDG_State
Used with PDG functions.
Definition: HAPI_Common.h:856
HAPI_AttributeOwner owner
Definition: HAPI_Common.h:1629
HAPI_RSTOrder rstOrder
Definition: HAPI_Common.h:999
Sent when a work item has a dependency added.
Definition: HAPI_Common.h:880
Single Channel.
Definition: HAPI_Common.h:752
HAPI_NodeId nodeId
Definition: HAPI_Common.h:1543
int uniqueHoudiniNodeId
Definition: HAPI_Common.h:1231
HAPI_NodeId nodeId
Definition: HAPI_Common.h:1687
int HAPI_HIPFileId
Definition: HAPI_Common.h:174
HAPI_ImageDataFormat
Definition: HAPI_Common.h:734
int handleCount
See HAPI_Objects.
Definition: HAPI_Common.h:1088
Sent when a new node is created.
Definition: HAPI_Common.h:912
HAPI_PartType
Definition: HAPI_Common.h:658
int currentState
id of related workitem dependency
Definition: HAPI_Common.h:1869
HAPI_EnvIntType
Definition: HAPI_Common.h:770
HAPI_Bool isRational
Whether the curves in this curve mesh are periodic.
Definition: HAPI_Common.h:1834
HAPI_Bool isValid
Definition: HAPI_Common.h:1223
HAPI_RSTOrder rstOrder
Definition: HAPI_Common.h:1012
int choiceIndex
Whether the label should be displayed.
Definition: HAPI_Common.h:1402
Sent when the parent item for a work item is deleted.
Definition: HAPI_Common.h:887
HAPI_PackedPrimInstancingMode
Definition: HAPI_Common.h:284
HAPI_StringHandle labelSH
The label string for the parameter.
Definition: HAPI_Common.h:1347
True if it actually has a maximum size.
Definition: HAPI_Common.h:824
HAPI_Permissions
Definition: HAPI_Common.h:294
Sent when a node is disconnected from another node.
Definition: HAPI_Common.h:920
#define HAPI_SHEAR_VECTOR_SIZE
Definition: HAPI_Common.h:18
Used for Results. Equivalent to HAPI_STATUSVERBOSITY_2.
Definition: HAPI_Common.h:207
HAPI_Bool cookTemplatedGeos
Decide whether to recursively cook all templated geos or not.
Definition: HAPI_Common.h:1167
HAPI_StringHandle helpSH
The help string for this parameter.
Definition: HAPI_Common.h:1360
HAPI_VolumeVisualType type
Definition: HAPI_Common.h:1814
3x3 Bounding box
Definition: HAPI_Common.h:627
HAPI_Bool autoClose
Close the server automatically when all clients disconnect from it.
Definition: HAPI_Common.h:1035
HAPI_StringHandle templateNameSH
Definition: HAPI_Common.h:1357
Meta-data about an HDA, returned by HAPI_GetAssetInfo()
Definition: HAPI_Common.h:1060
Data for a PDG file result.
Definition: HAPI_Common.h:1886
HAPI_AttributeOwner
Definition: HAPI_Common.h:542
int stringValuesIndex
Whether the label should be displayed.
Definition: HAPI_Common.h:1401
HAPI_StringHandle fullOpNameSH
User-defined asset version.
Definition: HAPI_Common.h:1083
Only some objects failed.
Definition: HAPI_Common.h:273
HAPI_ErrorCode
Definition: HAPI_Common.h:247
HAPI_StringHandle nameSH
Definition: HAPI_Common.h:1698
HAPI_Bool createdPostAssetLoad
Definition: HAPI_Common.h:1268
HAPI_Bool splitGeosByAttribute
Definition: HAPI_Common.h:1143
Meta-data for an OBJ Node.
Definition: HAPI_Common.h:1486
HAPI_NodeType
Definition: HAPI_Common.h:477
HAPI_CurveType curveType
Definition: HAPI_Common.h:1827
int knotCount
The number of control vertices (CVs) for all curves.
Definition: HAPI_Common.h:1830
HAPI_Bool hasUIMax
Definition: HAPI_Common.h:1367
Sent when a work item is deleted from a node.
Definition: HAPI_Common.h:875
HAPI_StringHandle handleParmNameSH
Definition: HAPI_Common.h:1475
int HAPI_StringHandle
Definition: HAPI_Common.h:151
HAPI_StatusVerbosity
Definition: HAPI_Common.h:200
HAPI_AttributeOwner originalOwner
Definition: HAPI_Common.h:1641
Used for Results. Equivalent to HAPI_STATUSVERBOSITY_0.
Definition: HAPI_Common.h:209
Options to configure a Thrift server being started from HARC.
Definition: HAPI_Common.h:1032
Total number of supported parameter types.
Definition: HAPI_Common.h:358
HAPI_ChoiceListType
Definition: HAPI_Common.h:451
HAPI_Bool hasChanged
Definition: HAPI_Common.h:1619
HAPI_Bool isInstanced
Definition: HAPI_Common.h:1599
Everything cook successfully without errors.
Definition: HAPI_Common.h:269
HAPI_Bool spare
Definition: HAPI_Common.h:1390
Menu Only, Single Selection.
Definition: HAPI_Common.h:456
HAPI_XYZOrder rotationOrder
Definition: HAPI_Common.h:1011
HAPI_Bool cacheMeshTopology
Definition: HAPI_Common.h:1203
HAPI_PrmScriptType
Definition: HAPI_Common.h:387
A node event indicating that the node has finished dirtying items.
Definition: HAPI_Common.h:903
HAPI_Bool hasKnots
Order of 1 is invalid. 0 means there is a varying order.
Definition: HAPI_Common.h:1838
HAPI_STATIC_ASSERT(sizeof(HAPI_UInt8)==1, unsupported_size_of_uint8)
HAPI_XYZOrder
Definition: HAPI_Common.h:721
Data associated with a PDG Event.
Definition: HAPI_Common.h:1864
HAPI_StringHandle nameSH
Definition: HAPI_Common.h:1461
int HAPI_ParmId
Definition: HAPI_Common.h:160
int numResults
index of the workitem
Definition: HAPI_Common.h:1880
HAPI_ParmId parentId
Parameter id of the parent of this parameter.
Definition: HAPI_Common.h:1287
Sent when a Python object attribute value is modified on a work item.
Definition: HAPI_Common.h:931
Meta-data describing a Geo Part.
Definition: HAPI_Common.h:1579
int HAPI_ErrorCodeBits
Definition: HAPI_Common.h:253
HAPI_AttributeTypeInfo typeInfo
Definition: HAPI_Common.h:1673
int order
Whether the curves in this curve mesh are rational.
Definition: HAPI_Common.h:1836
int instancedPartCount
Definition: HAPI_Common.h:1605
int tagCount
Number of tags on this paramter.
Definition: HAPI_Common.h:1314
int transformInputCount
See HAPI_Handles.
Definition: HAPI_Common.h:1094
int outputCount
The number of outputs this specific node has.
Definition: HAPI_Common.h:1263
HAPI_Bool handleSpherePartTypes
Definition: HAPI_Common.h:1190
int instanceStartOffset
The number of instances in a multiparm.
Definition: HAPI_Common.h:1425
int childIndex
Child index within its immediate parent parameter.
Definition: HAPI_Common.h:1290
HAPI_NodeId id
Definition: HAPI_Common.h:1215
HAPI_ImagePacking
Definition: HAPI_Common.h:748
Meta-data for a Houdini Node.
Definition: HAPI_Common.h:1213
HAPI_Transform transform
Definition: HAPI_Common.h:1781
HAPI_PDG_EventType
Used with PDG functions.
Definition: HAPI_Common.h:867
HAPI_SessionType
Definition: HAPI_Common.h:255
HAPI_StorageType storage
Definition: HAPI_Common.h:1630
Presets blob within an .idx file format.
Definition: HAPI_Common.h:472
int instanceLength
The index of the instance in the multiparm.
Definition: HAPI_Common.h:1421
int lastState
(HAPI_PDG_WorkItemState) value of current state for state change
Definition: HAPI_Common.h:1870
HAPI_Permissions permissions
Definition: HAPI_Common.h:1311
HAPI_PDG_WorkitemState
Used with PDG functions.
Definition: HAPI_Common.h:971
Sent when the scheduler assigned to a node is changed.
Definition: HAPI_Common.h:962
HAPI_VolumeType
Definition: HAPI_Common.h:563
HAPI_ParmType type
The HAPI type of the parm.
Definition: HAPI_Common.h:1293
License Type. See HAPI_License.
Definition: HAPI_Common.h:808
HAPI_StringHandle descriptionSH
Definition: HAPI_Common.h:1699
HAPI_PDG_WorkitemId dependencyId
id of related workitem
Definition: HAPI_Common.h:1868
HAPI_HeightFieldSampling
Type of sampling for heightfield.
Definition: HAPI_Common.h:848
Field + Multiple Selection Menu.
Definition: HAPI_Common.h:462
HAPI_ImagePacking packing
ex: true = RGBRGBRGB, false = RRRGGGBBB
Definition: HAPI_Common.h:1722
HAPI_Int64 HAPI_SessionId
Has to be 64-bit.
Definition: HAPI_Common.h:147
#define HAPI_SCALE_VECTOR_SIZE
Definition: HAPI_Common.h:17
HAPI_Bool labelNone
the next parm.
Definition: HAPI_Common.h:1394
HAPI_GeoType type
Definition: HAPI_Common.h:1537
HAPI_SessionId id
Definition: HAPI_Common.h:1027
int HAPI_ProcessId
Definition: HAPI_Common.h:143
HAPI_RampType
Definition: HAPI_Common.h:304
Options which affect how nodes are cooked.
Definition: HAPI_Common.h:1119
HAPI_ParmType
Definition: HAPI_Common.h:320
Homogeneous position.
Definition: HAPI_Common.h:607
HAPI_CurveOrders
Definition: HAPI_Common.h:680
HAPI_Bool invisible
Definition: HAPI_Common.h:1381
HAPI_Bool joinNext
Definition: HAPI_Common.h:1392
Sent when a float attribute value is modified on a work item.
Definition: HAPI_Common.h:925
A node event that indicates that node is about to have all its work items cleared.
Definition: HAPI_Common.h:890
HAPI_StringHandle splitAttrSH
Definition: HAPI_Common.h:1144
HAPI_Bool hasChanged
Definition: HAPI_Common.h:1691
Sent when a new scheduler is added to the graph.
Definition: HAPI_Common.h:958
HAPI_PartType type
Definition: HAPI_Common.h:1585
HAPI_StringHandle valueSH
Definition: HAPI_Common.h:1448
Identifies a session.
Definition: HAPI_Common.h:1019
HAPI_Bool haveGeosChanged
Definition: HAPI_Common.h:1499
HAPI_StringHandle versionSH
Path to the .otl library file.
Definition: HAPI_Common.h:1082
HAPI_StorageType
Definition: HAPI_Common.h:584
HAPI_Bool hasMax
Definition: HAPI_Common.h:1365
HAPI_NodeId nodeId
Definition: HAPI_Common.h:1064
HAPI_StringHandle defaultExtensionSH
Definition: HAPI_Common.h:1700
Sent when a node was renamed.
Definition: HAPI_Common.h:916
HAPI_StringHandle assetParmNameSH
Definition: HAPI_Common.h:1476
Sent when a work items priority is changed.
Definition: HAPI_Common.h:940
Meta-data for a SOP Node.
Definition: HAPI_Common.h:1535
HAPI_Bool isDisplayGeo
Final Result (Display SOP).
Definition: HAPI_Common.h:1553
"Private" (hidden)
Definition: HAPI_Common.h:623
A Transform with Euler rotation.
Definition: HAPI_Common.h:1004
HAPI_Bool isTimeDependent
Indicates if this node will change over time.
Definition: HAPI_Common.h:1271
Sent from dynamic work items that generate from a cooked item.
Definition: HAPI_Common.h:885
HAPI_Bool hasGeoChanged
For incremental updates.
Definition: HAPI_Common.h:1556
Sent when a work item's state changes.
Definition: HAPI_Common.h:877
int vertexCount
The number of curves contained in this curve mesh.
Definition: HAPI_Common.h:1829
HAPI_StringHandle imageFileFormatNameSH
Definition: HAPI_Common.h:1714
int64_t HAPI_Int64
Definition: HAPI_Common.h:135
Data for global timeline, used with HAPI_SetTimelineOptions()
Definition: HAPI_Common.h:1048
HAPI_Bool hasMaterialChanged
Definition: HAPI_Common.h:1563
A node event indicating that one more items in the node will be dirtied.
Definition: HAPI_Common.h:901
HAPI_NodeId parentId
Definition: HAPI_Common.h:1216
Sent when a new work item is added by a node.
Definition: HAPI_Common.h:873
True if it actually has a minimum size.
Definition: HAPI_Common.h:822
RGBA Reversed.
Definition: HAPI_Common.h:757
HAPI_Bool isTemplated
Has the templated flag turned on which means "expose as read-only".
Definition: HAPI_Common.h:1550
Looks for Guide Geometry.
Definition: HAPI_Common.h:521
int totalCookCount
Total number of cooks of this node.
Definition: HAPI_Common.h:1226
HAPI_StringHandle filePathSH
This is what any end user should be shown.
Definition: HAPI_Common.h:1081
HAPI_Bool checkPartChanges
Definition: HAPI_Common.h:1196
char HAPI_Bool
Definition: HAPI_Common.h:110
HAPI_Bool hasUIMin
Definition: HAPI_Common.h:1366
HAPI_StringHandle typeInfoSH
Definition: HAPI_Common.h:1304
HAPI_NodeType type
Definition: HAPI_Common.h:1218
HAPI_StatusType
Definition: HAPI_Common.h:191
int extraFlags
For internal use only. :)
Definition: HAPI_Common.h:1206
HAPI_PresetType
Definition: HAPI_Common.h:466
HAPI_StringHandle labelSH
Definition: HAPI_Common.h:1444
Data for a Box Part.
Definition: HAPI_Common.h:1845
HAPI_Bool interleaved
Definition: HAPI_Common.h:1721
Sent when a string attribute value is modified on a work item.
Definition: HAPI_Common.h:927
int inputCount
The number of inputs this specific node has.
Definition: HAPI_Common.h:1260
HAPI_StringHandle helpURLSH
Asset help marked-up text.
Definition: HAPI_Common.h:1085
HAPI_Int64 resultHash
result tag
Definition: HAPI_Common.h:1890
HAPI_ParmId parentParmId
Definition: HAPI_Common.h:1443
"int", "integer"
Definition: HAPI_Common.h:390
HAPI_Result
Definition: HAPI_Common.h:217
Direction vector.
Definition: HAPI_Common.h:609
HAPI_InputType
Definition: HAPI_Common.h:671
Max cache memory limit in MB.
Definition: HAPI_Common.h:842
HAPI_Bool splitGeosByGroup
Definition: HAPI_Common.h:1134
HAPI_State
Definition: HAPI_Common.h:266
HAPI_VolumeType type
Definition: HAPI_Common.h:1754
Sent for each node in the graph, when a cook starts.
Definition: HAPI_Common.h:942
int objectCount
Asset help URL.
Definition: HAPI_Common.h:1087
HAPI_StringHandle helpTextSH
Full asset name and namespace.
Definition: HAPI_Common.h:1084
int HAPI_PDG_WorkitemId
Use this with PDG functions.
Definition: HAPI_Common.h:167
Implicit type based on data.
Definition: HAPI_Common.h:603
Sent when a scheduler is removed from the graph.
Definition: HAPI_Common.h:960
HAPI_Bool splitPointsByVertexAttributes
Definition: HAPI_Common.h:1181
HAPI_StorageType storage
Can be either HAPI_STORAGETYPE_INT or HAPI_STORAGETYPE_FLOAT.
Definition: HAPI_Common.h:1773
int HAPI_NodeFlagsBits
Definition: HAPI_Common.h:530
Used for Results. Equivalent to HAPI_STATUSVERBOSITY_2.
Definition: HAPI_Common.h:213
Data for a Sphere Part.
Definition: HAPI_Common.h:1854
Sent when a node was removed from the graph.
Definition: HAPI_Common.h:914
HAPI_AttributeTypeInfo
Definition: HAPI_Common.h:599
HAPI_Bool haveObjectsChanged
Definition: HAPI_Common.h:1110
A Transform with Quaternion rotation.
Definition: HAPI_Common.h:992
#define HAPI_EULER_VECTOR_SIZE
Definition: HAPI_Common.h:21
HAPI_Bool cookUsingHoudiniTime
Definition: HAPI_Common.h:1931
HAPI_Bool hasTaper
Definition: HAPI_Common.h:1785
HAPI_GroupType
Definition: HAPI_Common.h:532
HAPI_StringHandle nameSH
Definition: HAPI_Common.h:1752
#define HAPI_C_STRUCT_TYPEDEF(struct_name)
Definition: HAPI_Common.h:99
HAPI_Bool isVisible
Definition: HAPI_Common.h:1505
Field + Single Selection Menu.
Definition: HAPI_Common.h:460
Sent when an warning is issued by the node.
Definition: HAPI_Common.h:895
int HAPI_NodeId
See HAPI_Nodes_Basics.
Definition: HAPI_Common.h:156
HAPI_PartId id
Id to identify this part relative to it's Geo.
Definition: HAPI_Common.h:1582
Describes an image format, used with HAPI_GetSupportedImageFileFormats()
Definition: HAPI_Common.h:1696
HAPI_CacheProperty
Identifies a memory cache.
Definition: HAPI_Common.h:815
HAPI_Bool isInstanced
Definition: HAPI_Common.h:1514
You should abort the cook.
Definition: HAPI_Common.h:271
Sent when a node was connected to another node.
Definition: HAPI_Common.h:918
int primitiveGroupCount
Definition: HAPI_Common.h:1568
Info for a PDG Workitem.
Definition: HAPI_Common.h:1877
Sent when an int attribute value is modified on a work item.
Definition: HAPI_Common.h:923
HAPI_PrmScriptType scriptType
The Houdini script-type of the parm.
Definition: HAPI_Common.h:1296
Data for a single Key Frame.
Definition: HAPI_Common.h:1733
HAPI_Int64 totalArrayElements
Definition: HAPI_Common.h:1667
HAPI_StringHandle nameSH
Definition: HAPI_Common.h:1079
HAPI_StringHandle nameSH
number of results reported
Definition: HAPI_Common.h:1881
Mini Menu Only, Single Selection.
Definition: HAPI_Common.h:458
int HAPI_AssetLibraryId
Definition: HAPI_Common.h:153
A special enum that represents the OR of both the CookError and CookWarning events.
Definition: HAPI_Common.h:955
Parameter is not a menu.
Definition: HAPI_Common.h:454
2x2 Bounding box
Definition: HAPI_Common.h:625
#define HAPI_C_ENUM_TYPEDEF(enum_name)
[HAPI_CACHE]
Definition: HAPI_Common.h:97
HAPI_TransformComponent
Definition: HAPI_Common.h:690
HAPI_Bool hasTransformChanged
Definition: HAPI_Common.h:1495
HAPI_StringHandle objectInstancePathSH
Definition: HAPI_Common.h:1491
int8_t HAPI_Int8
Definition: HAPI_Common.h:131
HAPI_Bool hasMin
Definition: HAPI_Common.h:1364
HAPI_StringHandle internalNodePathSH
Definition: HAPI_Common.h:1236
An empty, undefined event. Should be ignored.
Definition: HAPI_Common.h:870
HAPI_Bool disabled
Whether this parm should appear enabled or disabled.
Definition: HAPI_Common.h:1384
HAPI_Bool handleBoxPartTypes
Definition: HAPI_Common.h:1189
HAPI_StringHandle msgSH
(HAPI_PDG_EventType) event type
Definition: HAPI_Common.h:1872
Meta-data for a combo-box / choice parm.
Definition: HAPI_Common.h:1441
HAPI_SessionType type
Definition: HAPI_Common.h:1023
HAPI_NodeFlags inputNodeFlag
Definition: HAPI_Common.h:1414
int HAPI_PartId
Definition: HAPI_Common.h:164
HAPI_NodeId nodeId
Definition: HAPI_Common.h:1523
Dual Channel.
Definition: HAPI_Common.h:753
uint8_t HAPI_UInt8
Definition: HAPI_Common.h:126
HAPI_Bool isChildOfMultiParm
Definition: HAPI_Common.h:1418
MatType rotation(const Quat< typename MatType::value_type > &q, typename MatType::value_type eps=static_cast< typename MatType::value_type >(1.0e-8))
Return the rotation matrix specified by the given quaternion.
Definition: Mat.h:187