Houdini Engine 3.5
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
HAPI.h File Reference
#include "HAPI_API.h"
#include "HAPI_Common.h"
#include "HAPI_Helpers.h"
+ Include dependency graph for HAPI.h:

Go to the source code of this file.

Functions

HAPI_DECL HAPI_CreateInProcessSession (HAPI_Session *session)
 Creates a new in-process session. There can only be one such session per host process. More...
 
HAPI_DECL HAPI_StartThriftSocketServer (const HAPI_ThriftServerOptions *options, int port, HAPI_ProcessId *process_id)
 Starts a Thrift RPC server process on the local host serving clients on a TCP socket and waits for it to start serving. It is safe to create an RPC session on local host using the specified port after this call succeeds. More...
 
HAPI_DECL HAPI_CreateThriftSocketSession (HAPI_Session *session, const char *host_name, int port)
 Creates a Thrift RPC session using a TCP socket as transport. More...
 
HAPI_DECL HAPI_StartThriftNamedPipeServer (const HAPI_ThriftServerOptions *options, const char *pipe_name, HAPI_ProcessId *process_id)
 Starts a Thrift RPC server process on the local host serving clients on a Windows named pipe or a Unix domain socket and waits for it to start serving. It is safe to create an RPC session using the specified pipe or socket after this call succeeds. More...
 
HAPI_DECL HAPI_CreateThriftNamedPipeSession (HAPI_Session *session, const char *pipe_name)
 Creates a Thrift RPC session using a Windows named pipe or a Unix domain socket as transport. More...
 
HAPI_DECL HAPI_BindCustomImplementation (HAPI_SessionType session_type, const char *dll_path)
 Binds a new implementation DLL to one of the custom session slots. More...
 
HAPI_DECL HAPI_CreateCustomSession (HAPI_SessionType session_type, void *session_info, HAPI_Session *session)
 Creates a new session using a custom implementation. Note that the implementation DLL must already have been bound to the session via calling HAPI_BindCustomImplementation(). More...
 
HAPI_DECL HAPI_IsSessionValid (const HAPI_Session *session)
 Checks whether the session identified by HAPI_Session::id is a valid session opened in the implementation identified by HAPI_Session::type. More...
 
HAPI_DECL HAPI_CloseSession (const HAPI_Session *session)
 Closes a session. If the session has been established using RPC, then the RPC connection is closed. More...
 
HAPI_DECL HAPI_IsInitialized (const HAPI_Session *session)
 Check whether the runtime has been initialized yet using HAPI_Initialize(). Function will return HAPI_RESULT_SUCCESS if the runtime has been initialized and HAPI_RESULT_NOT_INITIALIZED otherwise. More...
 
HAPI_DECL HAPI_Initialize (const HAPI_Session *session, const HAPI_CookOptions *cook_options, HAPI_Bool use_cooking_thread, int cooking_thread_stack_size, const char *houdini_environment_files, const char *otl_search_path, const char *dso_search_path, const char *image_dso_search_path, const char *audio_dso_search_path)
 Create the asset manager, set up environment variables, and initialize the main Houdini scene. No license check is done during this step. Only when you try to load an asset library (OTL) do we actually check for licenses. More...
 
HAPI_DECL HAPI_Cleanup (const HAPI_Session *session)
 Clean up memory. This will unload all assets and you will need to call HAPI_Initialize() again to be able to use any HAPI methods again. More...
 
HAPI_DECL HAPI_GetEnvInt (HAPI_EnvIntType int_type, int *value)
 Gives back a certain environment integers like version number. Note that you do not need a session for this. These constants are hard-coded in all HAPI implementations, including HARC and HAPIL. This should be the first API you call to determine if any future API calls will mismatch implementation. More...
 
HAPI_DECL HAPI_GetSessionEnvInt (const HAPI_Session *session, HAPI_SessionEnvIntType int_type, int *value)
 Gives back a certain session-specific environment integers like current license type being used. More...
 
HAPI_DECL HAPI_GetServerEnvInt (const HAPI_Session *session, const char *variable_name, int *value)
 Get environment variable from the server process as an integer. More...
 
HAPI_DECL HAPI_GetServerEnvString (const HAPI_Session *session, const char *variable_name, HAPI_StringHandle *value)
 Get environment variable from the server process as a string. More...
 
HAPI_DECL HAPI_GetServerEnvVarCount (const HAPI_Session *session, int *env_count)
 Provides the number of environment variables that are in the server environment's process. More...
 
HAPI_DECL HAPI_GetServerEnvVarList (const HAPI_Session *session, HAPI_StringHandle *values_array, int start, int length)
 Provides a list of all of the environment variables in the server's process. More...
 
HAPI_DECL HAPI_SetServerEnvInt (const HAPI_Session *session, const char *variable_name, int value)
 Set environment variable for the server process as an integer. More...
 
HAPI_DECL HAPI_SetServerEnvString (const HAPI_Session *session, const char *variable_name, const char *value)
 Set environment variable for the server process as a string. More...
 
HAPI_DECL HAPI_GetStatus (const HAPI_Session *session, HAPI_StatusType status_type, int *status)
 Gives back the status code for a specific status type. More...
 
HAPI_DECL HAPI_GetStatusStringBufLength (const HAPI_Session *session, HAPI_StatusType status_type, HAPI_StatusVerbosity verbosity, int *buffer_length)
 Return length of string buffer storing status string message. More...
 
HAPI_DECL HAPI_GetStatusString (const HAPI_Session *session, HAPI_StatusType status_type, char *string_value, int length)
 Return status string message. More...
 
HAPI_DECL HAPI_ComposeNodeCookResult (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_StatusVerbosity verbosity, int *buffer_length)
 Compose the cook result string (errors and warnings) of a specific node. More...
 
HAPI_DECL HAPI_GetComposedNodeCookResult (const HAPI_Session *session, char *string_value, int length)
 Return cook result string message on a single node. More...
 
HAPI_DECL HAPI_CheckForSpecificErrors (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ErrorCodeBits errors_to_look_for, HAPI_ErrorCodeBits *errors_found)
 Recursively check for specific errors by error code on a node. More...
 
HAPI_DECL HAPI_ClearConnectionError ()
 Clears the connection error. Should be used before starting or creating Thrift server. More...
 
HAPI_DECL HAPI_GetConnectionErrorLength (int *buffer_length)
 Return the length of string buffer storing connection error message. More...
 
HAPI_DECL HAPI_GetConnectionError (char *string_value, int length, HAPI_Bool clear)
 Return the connection error message. More...
 
HAPI_DECL HAPI_GetCookingTotalCount (const HAPI_Session *session, int *count)
 Get total number of nodes that need to cook in the current session. More...
 
HAPI_DECL HAPI_GetCookingCurrentCount (const HAPI_Session *session, int *count)
 Get current number of nodes that have already cooked in the current session. Note that this is a very crude approximation of the cooking progress - it may never make it to 100% or it might spend another hour at 100%. Use HAPI_GetStatusString to get a better idea of progress if this number gets stuck. More...
 
HAPI_DECL HAPI_Interrupt (const HAPI_Session *session)
 Interrupt a cook or load operation. More...
 
HAPI_DECL HAPI_ConvertTransform (const HAPI_Session *session, const HAPI_TransformEuler *transform_in, HAPI_RSTOrder rst_order, HAPI_XYZOrder rot_order, HAPI_TransformEuler *transform_out)
 Converts the transform described by a HAPI_TransformEuler struct into a different transform and rotation order. More...
 
HAPI_DECL HAPI_ConvertMatrixToQuat (const HAPI_Session *session, const float *matrix, HAPI_RSTOrder rst_order, HAPI_Transform *transform_out)
 Converts a 4x4 matrix into its TRS form. More...
 
HAPI_DECL HAPI_ConvertMatrixToEuler (const HAPI_Session *session, const float *matrix, HAPI_RSTOrder rst_order, HAPI_XYZOrder rot_order, HAPI_TransformEuler *transform_out)
 Converts a 4x4 matrix into its TRS form. More...
 
HAPI_DECL HAPI_ConvertTransformQuatToMatrix (const HAPI_Session *session, const HAPI_Transform *transform, float *matrix)
 Converts HAPI_Transform into a 4x4 transform matrix. More...
 
HAPI_DECL HAPI_ConvertTransformEulerToMatrix (const HAPI_Session *session, const HAPI_TransformEuler *transform, float *matrix)
 Converts HAPI_TransformEuler into a 4x4 transform matrix. More...
 
HAPI_DECL HAPI_PythonThreadInterpreterLock (const HAPI_Session *session, HAPI_Bool locked)
 Acquires or releases the Python interpreter lock. This is needed if HAPI is called from Python and HAPI is in threaded mode (see HAPI_Initialize()). More...
 
HAPI_DECL HAPI_GetStringBufLength (const HAPI_Session *session, HAPI_StringHandle string_handle, int *buffer_length)
 Gives back the string length of the string with the given handle. More...
 
HAPI_DECL HAPI_GetString (const HAPI_Session *session, HAPI_StringHandle string_handle, char *string_value, int length)
 Gives back the string value of the string with the given handle. More...
 
HAPI_DECL HAPI_SetCustomString (const HAPI_Session *session, const char *string_value, int *handle_value)
 Adds the given string to the string table and returns the handle. It is the responsibility of the caller to manage access to the string. The intended use for custom strings is to allow structs that reference strings to be passed in to HAPI. More...
 
HAPI_DECL HAPI_RemoveCustomString (const HAPI_Session *session, const int string_handle)
 Removes the specified string from the server and invalidates the handle. More...
 
HAPI_DECL HAPI_GetStringBatchSize (const HAPI_Session *session, const int *string_handle_array, int string_handle_count, int *string_buffer_size)
 Gives back the length of the buffer needed to hold all the values null-separated for the given string handles. Used with HAPI_GetStringBatch(). More...
 
HAPI_DECL HAPI_GetStringBatch (const HAPI_Session *session, char *char_buffer, int char_array_length)
 Gives back the values of the given string handles. The given char array is filled with null-separated values, and the final value is null-terminated. Used with HAPI_GetStringBatchSize(). Using this function instead of repeated calls to HAPI_GetString() can be more more efficient for a large number of strings. More...
 
HAPI_DECL HAPI_GetTime (const HAPI_Session *session, float *time)
 Gets the global time of the scene. All API calls deal with this time to cook. More...
 
HAPI_DECL HAPI_SetTime (const HAPI_Session *session, float time)
 Sets the global time of the scene. All API calls will deal with this time to cook. More...
 
HAPI_DECL HAPI_GetUseHoudiniTime (const HAPI_Session *session, HAPI_Bool *enabled)
 Returns whether the Houdini session will use the current time in Houdini when cooking and retrieving data. By default this is disabled and the Houdini session uses time 0 (i.e. frame 1). In SessionSync, it is enabled by default, but can be overridden. Note that this function will ALWAYS return HAPI_RESULT_SUCCESS. More...
 
HAPI_DECL HAPI_SetUseHoudiniTime (const HAPI_Session *session, HAPI_Bool enabled)
 Sets whether the Houdini session should use the current time in Houdini when cooking and retrieving data. By default this is disabled and the Houdini session uses time 0 (i.e. frame 1). In SessionSync, it is enabled by default, but can be overridden. Note that this function will ALWAYS return HAPI_RESULT_SUCCESS. More...
 
HAPI_DECL HAPI_GetTimelineOptions (const HAPI_Session *session, HAPI_TimelineOptions *timeline_options)
 Gets the current global timeline options. More...
 
HAPI_DECL HAPI_SetTimelineOptions (const HAPI_Session *session, const HAPI_TimelineOptions *timeline_options)
 Sets the global timeline options. More...
 
HAPI_DECL HAPI_LoadAssetLibraryFromFile (const HAPI_Session *session, const char *file_path, HAPI_Bool allow_overwrite, HAPI_AssetLibraryId *library_id)
 Loads a Houdini asset library (OTL) from a .otl file. It does NOT create anything inside the Houdini scene. More...
 
HAPI_DECL HAPI_LoadAssetLibraryFromMemory (const HAPI_Session *session, const char *library_buffer, int library_buffer_length, HAPI_Bool allow_overwrite, HAPI_AssetLibraryId *library_id)
 Loads a Houdini asset library (OTL) from memory. It does NOT create anything inside the Houdini scene. More...
 
HAPI_DECL HAPI_GetAvailableAssetCount (const HAPI_Session *session, HAPI_AssetLibraryId library_id, int *asset_count)
 Get the number of assets contained in an asset library. You should call HAPI_LoadAssetLibraryFromFile() prior to get a library_id. More...
 
HAPI_DECL HAPI_GetAvailableAssets (const HAPI_Session *session, HAPI_AssetLibraryId library_id, HAPI_StringHandle *asset_names_array, int asset_count)
 Get the names of the assets contained in an asset library. More...
 
HAPI_DECL HAPI_GetAssetInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_AssetInfo *asset_info)
 Fill an asset_info struct from a node. More...
 
HAPI_DECL HAPI_GetAssetDefinitionParmCounts (const HAPI_Session *session, HAPI_AssetLibraryId library_id, const char *asset_name, int *parm_count, int *int_value_count, int *float_value_count, int *string_value_count, int *choice_value_count)
 Get the number of asset parameters contained in an asset library, as well as the number of parameter int, float, string, and choice values. More...
 
HAPI_DECL HAPI_GetAssetDefinitionParmInfos (const HAPI_Session *session, HAPI_AssetLibraryId library_id, const char *asset_name, HAPI_ParmInfo *parm_infos_array, int start, int length)
 Fill an array of HAPI_ParmInfo structs with parameter information for the specified asset in the specified asset library. More...
 
HAPI_DECL HAPI_GetAssetDefinitionParmValues (const HAPI_Session *session, HAPI_AssetLibraryId library_id, const char *asset_name, int *int_values_array, int int_start, int int_length, float *float_values_array, int float_start, int float_length, HAPI_Bool string_evaluate, HAPI_StringHandle *string_values_array, int string_start, int string_length, HAPI_ParmChoiceInfo *choice_values_array, int choice_start, int choice_length)
 Fill arrays of parameter int values, float values, string values, and choice values for parameters in the specified asset in the specified asset library. More...
 
HAPI_DECL HAPI_LoadHIPFile (const HAPI_Session *session, const char *file_name, HAPI_Bool cook_on_load)
 Loads a .hip file into the main Houdini scene. More...
 
HAPI_DECL HAPI_MergeHIPFile (const HAPI_Session *session, const char *file_name, HAPI_Bool cook_on_load, HAPI_HIPFileId *file_id)
 Loads a .hip file into the main Houdini scene. More...
 
HAPI_DECL HAPI_SaveHIPFile (const HAPI_Session *session, const char *file_path, HAPI_Bool lock_nodes)
 Saves a .hip file of the current Houdini scene. More...
 
HAPI_DECL HAPI_GetHIPFileNodeCount (const HAPI_Session *session, HAPI_HIPFileId id, int *count)
 Gets the number of nodes that were created as a result of loading a .hip file. More...
 
HAPI_DECL HAPI_GetHIPFileNodeIds (const HAPI_Session *session, HAPI_HIPFileId id, HAPI_NodeId *node_ids, int length)
 Fills an array of HAPI_NodeId of nodes that were created as a result of loading the HIP file specified by the HAPI_HIPFileId. More...
 
HAPI_DECL HAPI_IsNodeValid (const HAPI_Session *session, HAPI_NodeId node_id, int unique_node_id, HAPI_Bool *answer)
 Determine if your instance of the node actually still exists inside the Houdini scene. This is what can be used to determine when the Houdini scene needs to be re-populated using the host application's instances of the nodes. Note that this function will ALWAYS return HAPI_RESULT_SUCCESS. More...
 
HAPI_DECL HAPI_GetNodeInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_NodeInfo *node_info)
 Fill an HAPI_NodeInfo struct. More...
 
HAPI_DECL HAPI_GetNodePath (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_NodeId relative_to_node_id, HAPI_StringHandle *path)
 Get the node absolute path in the Houdini node network or a relative path any other node. More...
 
HAPI_DECL HAPI_GetManagerNodeId (const HAPI_Session *session, HAPI_NodeType node_type, HAPI_NodeId *node_id)
 Get the root node of a particular network type (ie. OBJ). More...
 
HAPI_DECL HAPI_ComposeChildNodeList (const HAPI_Session *session, HAPI_NodeId parent_node_id, HAPI_NodeTypeBits node_type_filter, HAPI_NodeFlagsBits node_flags_filter, HAPI_Bool recursive, int *count)
 Compose a list of child nodes based on given filters. More...
 
HAPI_DECL HAPI_GetComposedChildNodeList (const HAPI_Session *session, HAPI_NodeId parent_node_id, HAPI_NodeId *child_node_ids_array, int count)
 Get the composed list of child node ids from the previous call to HAPI_ComposeChildNodeList(). More...
 
HAPI_DECL HAPI_CreateNode (const HAPI_Session *session, HAPI_NodeId parent_node_id, const char *operator_name, const char *node_label, HAPI_Bool cook_on_creation, HAPI_NodeId *new_node_id)
 Create a node inside a node network. Nodes created this way will have their HAPI_NodeInfo::createdPostAssetLoad set to true. More...
 
HAPI_DECL HAPI_CreateInputNode (const HAPI_Session *session, HAPI_NodeId *node_id, const char *name)
 Creates a simple geometry SOP node that can accept geometry input. This will create a dummy OBJ node with a Null SOP inside that you can set the geometry of using the geometry SET APIs. You can then connect this node to any other node as a geometry input. More...
 
 HAPI_CreateHeightfieldInputNode (const HAPI_Session *session, HAPI_NodeId parent_node_id, const char *name, int xsize, int ysize, float voxelsize, HAPI_NodeId *heightfield_node_id, HAPI_NodeId *height_node_id, HAPI_NodeId *mask_node_id, HAPI_NodeId *merge_node_id)
 Creates the required node hierarchy needed for Heightfield inputs. More...
 
HAPI_DECL HAPI_CreateHeightFieldInput (const HAPI_Session *session, HAPI_NodeId parent_node_id, const char *name, int xsize, int ysize, float voxelsize, HAPI_HeightFieldSampling sampling, HAPI_NodeId *heightfield_node_id, HAPI_NodeId *height_node_id, HAPI_NodeId *mask_node_id, HAPI_NodeId *merge_node_id)
 Creates the required node hierarchy needed for heightfield inputs. More...
 
HAPI_DECL HAPI_CreateHeightfieldInputVolumeNode (const HAPI_Session *session, HAPI_NodeId parent_node_id, HAPI_NodeId *new_node_id, const char *name, int xsize, int ysize, float voxelsize)
 Creates a volume input node that can be used with Heightfields. More...
 
HAPI_DECL HAPI_CookNode (const HAPI_Session *session, HAPI_NodeId node_id, const HAPI_CookOptions *cook_options)
 Initiate a cook on this node. Note that this may trigger cooks on other nodes if they are connected. More...
 
HAPI_DECL HAPI_DeleteNode (const HAPI_Session *session, HAPI_NodeId node_id)
 Delete a node from a node network. Only nodes with their HAPI_NodeInfo::createdPostAssetLoad set to true can be deleted this way. More...
 
HAPI_DECL HAPI_RenameNode (const HAPI_Session *session, HAPI_NodeId node_id, const char *new_name)
 Rename a node that you created. Only nodes with their HAPI_NodeInfo::createdPostAssetLoad set to true can be renamed this way. More...
 
HAPI_DECL HAPI_ConnectNodeInput (const HAPI_Session *session, HAPI_NodeId node_id, int input_index, HAPI_NodeId node_id_to_connect, int output_index)
 Connect two nodes together. More...
 
HAPI_DECL HAPI_DisconnectNodeInput (const HAPI_Session *session, HAPI_NodeId node_id, int input_index)
 Disconnect a node input. More...
 
HAPI_DECL HAPI_QueryNodeInput (const HAPI_Session *session, HAPI_NodeId node_to_query, int input_index, HAPI_NodeId *connected_node_id)
 Query which node is connected to another node's input. More...
 
HAPI_DECL HAPI_GetNodeInputName (const HAPI_Session *session, HAPI_NodeId node_id, int input_idx, HAPI_StringHandle *name)
 Get the name of an node's input. This function will return a string handle for the name which will be valid (persist) until the next call to this function. More...
 
HAPI_DECL HAPI_DisconnectNodeOutputsAt (const HAPI_Session *session, HAPI_NodeId node_id, int output_index)
 Disconnect all of the node's output connections at the output index. More...
 
HAPI_DECL HAPI_QueryNodeOutputConnectedCount (const HAPI_Session *session, HAPI_NodeId node_id, int output_idx, HAPI_Bool into_subnets, HAPI_Bool through_dots, int *connected_count)
 Get the number of nodes currently connected to the given node at the output index. More...
 
HAPI_DECL HAPI_QueryNodeOutputConnectedNodes (const HAPI_Session *session, HAPI_NodeId node_id, int output_idx, HAPI_Bool into_subnets, HAPI_Bool through_dots, HAPI_NodeId *connected_node_ids_array, int start, int length)
 Get the ids of nodes currently connected to the given node at the output index. More...
 
HAPI_DECL HAPI_GetNodeOutputName (const HAPI_Session *session, HAPI_NodeId node_id, int output_idx, HAPI_StringHandle *name)
 Get the name of an node's output. This function will return a string handle for the name which will be valid (persist) until the next call to this function. More...
 
HAPI_DECL HAPI_GetOutputNodeId (const HAPI_Session *session, HAPI_NodeId node_id, int output, HAPI_NodeId *output_node_id)
 Gets the node id of an output node in a SOP network. More...
 
HAPI_DECL HAPI_GetParameters (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmInfo *parm_infos_array, int start, int length)
 Fill an array of HAPI_ParmInfo structs with parameter information from the asset instance node. More...
 
HAPI_DECL HAPI_GetParmInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmId parm_id, HAPI_ParmInfo *parm_info)
 Get the parm info of a parameter by parm id. More...
 
HAPI_DECL HAPI_GetParmIdFromName (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, HAPI_ParmId *parm_id)
 All parameter APIs require a HAPI_ParmId but if you know the parameter you wish to operate on by name than you can use this function to get its HAPI_ParmId. If the parameter with the given name is not found the parameter id returned will be -1. More...
 
HAPI_DECL HAPI_GetParmInfoFromName (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, HAPI_ParmInfo *parm_info)
 Get the parm info of a parameter by name. More...
 
HAPI_DECL HAPI_GetParmTagName (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmId parm_id, int tag_index, HAPI_StringHandle *tag_name)
 Get the tag name on a parameter given an index. More...
 
HAPI_DECL HAPI_GetParmTagValue (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmId parm_id, const char *tag_name, HAPI_StringHandle *tag_value)
 Get the tag value on a parameter given the tag name. More...
 
HAPI_DECL HAPI_ParmHasTag (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmId parm_id, const char *tag_name, HAPI_Bool *has_tag)
 See if a parameter has a specific tag. More...
 
HAPI_DECL HAPI_ParmHasExpression (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, int index, HAPI_Bool *has_expression)
 See if a parameter has an expression. More...
 
HAPI_DECL HAPI_GetParmWithTag (const HAPI_Session *session, HAPI_NodeId node_id, const char *tag_name, HAPI_ParmId *parm_id)
 Get the first parm with a specific, ideally unique, tag on it. This is particularly useful for getting the ogl parameters on a material node. More...
 
HAPI_DECL HAPI_GetParmExpression (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, int index, HAPI_StringHandle *value)
 Get single integer or float parm expression by name or Null string if no expression is present. More...
 
HAPI_DECL HAPI_RevertParmToDefault (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, int index)
 Revert single parm by name to default. More...
 
HAPI_DECL HAPI_RevertParmToDefaults (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name)
 Revert all instances of the parm by name to defaults. More...
 
HAPI_DECL HAPI_SetParmExpression (const HAPI_Session *session, HAPI_NodeId node_id, const char *value, HAPI_ParmId parm_id, int index)
 Set (push) an expression string. We can only set a single value at a time because we want to avoid fixed size string buffers. More...
 
HAPI_DECL HAPI_RemoveParmExpression (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmId parm_id, int index)
 Remove the expression string, leaving the value of the parm at the current value of the expression. More...
 
HAPI_DECL HAPI_GetParmIntValue (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, int index, int *value)
 Get single parm int value by name. More...
 
HAPI_DECL HAPI_GetParmIntValues (const HAPI_Session *session, HAPI_NodeId node_id, int *values_array, int start, int length)
 Fill an array of parameter int values. This is more efficient than calling HAPI_GetParmIntValue() individually for each parameter value. More...
 
HAPI_DECL HAPI_GetParmFloatValue (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, int index, float *value)
 Get single parm float value by name. More...
 
HAPI_DECL HAPI_GetParmFloatValues (const HAPI_Session *session, HAPI_NodeId node_id, float *values_array, int start, int length)
 Fill an array of parameter float values. This is more efficient than calling HAPI_GetParmFloatValue() individually for each parameter value. More...
 
HAPI_DECL HAPI_GetParmStringValue (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, int index, HAPI_Bool evaluate, HAPI_StringHandle *value)
 Get single parm string value by name. More...
 
HAPI_DECL HAPI_GetParmStringValues (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_Bool evaluate, HAPI_StringHandle *values_array, int start, int length)
 Fill an array of parameter string handles. These handles must be used in conjunction with HAPI_GetString() to get the actual string values. This is more efficient than calling HAPI_GetParmStringValue() individually for each parameter value. More...
 
HAPI_DECL HAPI_GetParmNodeValue (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, HAPI_NodeId *value)
 Get a single node id parm value of an Op Path parameter. This is how you see which node is connected as an input for the current node (via parameter). More...
 
HAPI_DECL HAPI_GetParmFile (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, const char *destination_directory, const char *destination_file_name)
 Extract a file specified by path on a parameter. This will copy the file to the destination directory from wherever it might be, inlcuding inside the asset definition or online. More...
 
HAPI_DECL HAPI_GetParmChoiceLists (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmChoiceInfo *parm_choices_array, int start, int length)
 Fill an array of HAPI_ParmChoiceInfo structs with parameter choice list information from the asset instance node. More...
 
HAPI_DECL HAPI_SetParmIntValue (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, int index, int value)
 Set single parm int value by name. More...
 
HAPI_DECL HAPI_SetParmIntValues (const HAPI_Session *session, HAPI_NodeId node_id, const int *values_array, int start, int length)
 Set (push) an array of parameter int values. More...
 
HAPI_DECL HAPI_SetParmFloatValue (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, int index, float value)
 Set single parm float value by name. More...
 
HAPI_DECL HAPI_SetParmFloatValues (const HAPI_Session *session, HAPI_NodeId node_id, const float *values_array, int start, int length)
 Set (push) an array of parameter float values. More...
 
HAPI_DECL HAPI_SetParmStringValue (const HAPI_Session *session, HAPI_NodeId node_id, const char *value, HAPI_ParmId parm_id, int index)
 Set (push) a string value. We can only set a single value at a time because we want to avoid fixed size string buffers. More...
 
HAPI_DECL HAPI_SetParmNodeValue (const HAPI_Session *session, HAPI_NodeId node_id, const char *parm_name, HAPI_NodeId value)
 Set a node id parm value of an Op Path parameter. For example, This is how you connect the geometry output of an asset to the geometry input of another asset - whether the input is a parameter or a node input (the top of the node). Node inputs get converted top parameters in HAPI. More...
 
HAPI_DECL HAPI_InsertMultiparmInstance (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmId parm_id, int instance_position)
 Insert an instance of a multiparm before instance_position. More...
 
HAPI_DECL HAPI_RemoveMultiparmInstance (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmId parm_id, int instance_position)
 Remove the instance of a multiparm given by instance_position. More...
 
HAPI_DECL HAPI_GetHandleInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_HandleInfo *handle_infos_array, int start, int length)
 Fill an array of HAPI_HandleInfo structs with information about every exposed user manipulation handle on the node. More...
 
HAPI_DECL HAPI_GetHandleBindingInfo (const HAPI_Session *session, HAPI_NodeId node_id, int handle_index, HAPI_HandleBindingInfo *handle_binding_infos_array, int start, int length)
 Fill an array of HAPI_HandleBindingInfo structs with information about the binding of a particular handle on the given node. More...
 
HAPI_DECL HAPI_GetPresetBufLength (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PresetType preset_type, const char *preset_name, int *buffer_length)
 Generate a preset blob of the current state of all the parameter values, cache it, and return its size in bytes. More...
 
HAPI_DECL HAPI_GetPreset (const HAPI_Session *session, HAPI_NodeId node_id, char *buffer, int buffer_length)
 Generates a preset for the given asset. More...
 
HAPI_DECL HAPI_SetPreset (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PresetType preset_type, const char *preset_name, const char *buffer, int buffer_length)
 Sets a particular asset to a given preset. More...
 
HAPI_DECL HAPI_GetObjectInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ObjectInfo *object_info)
 Get the object info on an OBJ node. More...
 
HAPI_DECL HAPI_GetObjectTransform (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_NodeId relative_to_node_id, HAPI_RSTOrder rst_order, HAPI_Transform *transform)
 Get the tranform of an OBJ node. More...
 
HAPI_DECL HAPI_ComposeObjectList (const HAPI_Session *session, HAPI_NodeId parent_node_id, const char *categories, int *object_count)
 Compose a list of child object nodes given a parent node id. More...
 
HAPI_DECL HAPI_GetComposedObjectList (const HAPI_Session *session, HAPI_NodeId parent_node_id, HAPI_ObjectInfo *object_infos_array, int start, int length)
 Fill an array of HAPI_ObjectInfo structs. More...
 
HAPI_DECL HAPI_GetComposedObjectTransforms (const HAPI_Session *session, HAPI_NodeId parent_node_id, HAPI_RSTOrder rst_order, HAPI_Transform *transform_array, int start, int length)
 Fill an array of HAPI_Transform structs. More...
 
HAPI_DECL HAPI_GetInstancedObjectIds (const HAPI_Session *session, HAPI_NodeId object_node_id, HAPI_NodeId *instanced_node_id_array, int start, int length)
 Get the node ids for the objects being instanced by an Instance OBJ node. More...
 
 HAPI_GetInstanceTransforms (const HAPI_Session *session, HAPI_NodeId object_node_id, HAPI_RSTOrder rst_order, HAPI_Transform *transforms_array, int start, int length)
 Fill an array of HAPI_Transform structs with the transforms of each instance of this instancer object. More...
 
HAPI_DECL HAPI_GetInstanceTransformsOnPart (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_RSTOrder rst_order, HAPI_Transform *transforms_array, int start, int length)
 Fill an array of HAPI_Transform structs with the transforms of each instance of this instancer object for a given part. More...
 
HAPI_DECL HAPI_SetObjectTransform (const HAPI_Session *session, HAPI_NodeId node_id, const HAPI_TransformEuler *trans)
 Set the transform of an individual object. Note that the object nodes have to either be editable or have their transform parameters exposed at the asset level. This won't work otherwise. More...
 
HAPI_DECL HAPI_GetDisplayGeoInfo (const HAPI_Session *session, HAPI_NodeId object_node_id, HAPI_GeoInfo *geo_info)
 Get the display geo (SOP) node inside an Object node. If there there are multiple display SOP nodes, only the first one is returned. If the node is a display SOP itself, even if a network, it will return its own geo info. If the node is a SOP but not a network and not the display SOP, this function will fail. More...
 
HAPI_DECL HAPI_GetGeoInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_GeoInfo *geo_info)
 Get the geometry info struct (HAPI_GeoInfo) on a SOP node. More...
 
HAPI_DECL HAPI_GetPartInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_PartInfo *part_info)
 Get a particular part info struct. More...
 
HAPI_DECL HAPI_GetFaceCounts (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int *face_counts_array, int start, int length)
 Get the array of faces where the nth integer in the array is the number of vertices the nth face has. More...
 
HAPI_DECL HAPI_GetVertexList (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int *vertex_list_array, int start, int length)
 Get array containing the vertex-point associations where the ith element in the array is the point index the ith vertex associates with. More...
 
HAPI_DECL HAPI_GetAttributeInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeOwner owner, HAPI_AttributeInfo *attr_info)
 Get the attribute info struct for the attribute specified by name. More...
 
HAPI_DECL HAPI_GetAttributeNames (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_AttributeOwner owner, HAPI_StringHandle *attribute_names_array, int count)
 Get list of attribute names by attribute owner. Note that the name string handles are only valid until the next time this function is called. More...
 
HAPI_DECL HAPI_GetAttributeIntData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, int stride, int *data_array, int start, int length)
 Get attribute integer data. More...
 
HAPI_DECL HAPI_GetAttributeIntArrayData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, int *data_fixed_array, int data_fixed_length, int *sizes_fixed_array, int start, int sizes_fixed_length)
 Get array attribute integer data. Each entry in an array attribute can have varying array lengths. Therefore the array values are returned as a flat array, with another sizes array containing the lengths of each array entry. More...
 
HAPI_DECL HAPI_GetAttributeInt64Data (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, int stride, HAPI_Int64 *data_array, int start, int length)
 Get attribute 64-bit integer data. More...
 
HAPI_DECL HAPI_GetAttributeInt64ArrayData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, HAPI_Int64 *data_fixed_array, int data_fixed_length, int *sizes_fixed_array, int start, int sizes_fixed_length)
 Get array attribute 64-bit integer data. Each entry in an array attribute can have varying array lengths. Therefore the array values are returned as a flat array, with another sizes array containing the lengths of each array entry. More...
 
HAPI_DECL HAPI_GetAttributeFloatData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, int stride, float *data_array, int start, int length)
 Get attribute float data. More...
 
HAPI_DECL HAPI_GetAttributeFloatArrayData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, float *data_fixed_array, int data_fixed_length, int *sizes_fixed_array, int start, int sizes_fixed_length)
 Get array attribute float data. Each entry in an array attribute can have varying array lengths. Therefore the array values are returned as a flat array, with another sizes array containing the lengths of each array entry. More...
 
HAPI_DECL HAPI_GetAttributeFloat64Data (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, int stride, double *data_array, int start, int length)
 Get 64-bit attribute float data. More...
 
HAPI_DECL HAPI_GetAttributeFloat64ArrayData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, double *data_fixed_array, int data_fixed_length, int *sizes_fixed_array, int start, int sizes_fixed_length)
 Get array attribute 64-bit float data. Each entry in an array attribute can have varying array lengths. Therefore the array values are returned as a flat array, with another sizes array containing the lengths of each array entry. More...
 
HAPI_DECL HAPI_GetAttributeStringData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, HAPI_StringHandle *data_array, int start, int length)
 Get attribute string data. Note that the string handles returned are only valid until the next time this function is called. More...
 
HAPI_DECL HAPI_GetAttributeStringArrayData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, HAPI_AttributeInfo *attr_info, HAPI_StringHandle *data_fixed_array, int data_fixed_length, int *sizes_fixed_array, int start, int sizes_fixed_length)
 Get array attribute string data. Each entry in an array attribute can have varying array lengths. Therefore the array values are returned as a flat array, with another sizes array containing the lengths of each array entry. Note that the string handles returned are only valid until the next time this function is called. More...
 
HAPI_DECL HAPI_GetGroupNames (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_GroupType group_type, HAPI_StringHandle *group_names_array, int group_count)
 Get group names for an entire geo. Please note that this function is NOT per-part, but it is per-geo. The companion function HAPI_GetGroupMembership() IS per-part. Also keep in mind that the name string handles are only valid until the next time this function is called. More...
 
HAPI_DECL HAPI_GetGroupMembership (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_GroupType group_type, const char *group_name, HAPI_Bool *membership_array_all_equal, int *membership_array, int start, int length)
 Get group membership. More...
 
HAPI_DECL HAPI_GetGroupCountOnPackedInstancePart (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int *pointGroupCount, int *primitiveGroupCount)
 Get group counts for a specific packed instanced part. More...
 
HAPI_DECL HAPI_GetGroupNamesOnPackedInstancePart (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_GroupType group_type, HAPI_StringHandle *group_names_array, int group_count)
 Get the group names for a packed instance part This functions allows you to get the group name for a specific packed primitive part. Keep in mind that the name string handles are only valid until the next time this function is called. More...
 
HAPI_DECL HAPI_GetGroupMembershipOnPackedInstancePart (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_GroupType group_type, const char *group_name, HAPI_Bool *membership_array_all_equal, int *membership_array, int start, int length)
 Get group membership for a packed instance part This functions allows you to get the group membership for a specific packed primitive part. More...
 
HAPI_DECL HAPI_GetInstancedPartIds (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_PartId *instanced_parts_array, int start, int length)
 Get the part ids that this instancer part is instancing. More...
 
HAPI_DECL HAPI_GetInstancerPartTransforms (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_RSTOrder rst_order, HAPI_Transform *transforms_array, int start, int length)
 Get the instancer part's list of transforms on which to instance the instanced parts you got from HAPI_GetInstancedPartIds(). More...
 
HAPI_DECL HAPI_SetPartInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const HAPI_PartInfo *part_info)
 Set the main part info struct (HAPI_PartInfo). More...
 
HAPI_DECL HAPI_SetFaceCounts (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const int *face_counts_array, int start, int length)
 Set the array of faces where the nth integer in the array is the number of vertices the nth face has. More...
 
HAPI_DECL HAPI_SetVertexList (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const int *vertex_list_array, int start, int length)
 Set array containing the vertex-point associations where the ith element in the array is the point index the ith vertex associates with. More...
 
HAPI_DECL HAPI_AddAttribute (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, const HAPI_AttributeInfo *attr_info)
 Add an attribute. More...
 
HAPI_DECL HAPI_DeleteAttribute (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, const HAPI_AttributeInfo *attr_info)
 Delete an attribute from an input geo. More...
 
HAPI_DECL HAPI_SetAttributeIntData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, const HAPI_AttributeInfo *attr_info, const int *data_array, int start, int length)
 Set attribute integer data. More...
 
HAPI_DECL HAPI_SetAttributeInt64Data (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, const HAPI_AttributeInfo *attr_info, const HAPI_Int64 *data_array, int start, int length)
 Set 64-bit attribute integer data. More...
 
HAPI_DECL HAPI_SetAttributeFloatData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, const HAPI_AttributeInfo *attr_info, const float *data_array, int start, int length)
 Set attribute float data. More...
 
HAPI_DECL HAPI_SetAttributeFloat64Data (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, const HAPI_AttributeInfo *attr_info, const double *data_array, int start, int length)
 Set 64-bit attribute float data. More...
 
HAPI_DECL HAPI_SetAttributeStringData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, const HAPI_AttributeInfo *attr_info, const char **data_array, int start, int length)
 Set attribute string data. More...
 
HAPI_DECL HAPI_AddGroup (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_GroupType group_type, const char *group_name)
 Add a group to the input geo with the given type and name. More...
 
HAPI_DECL HAPI_DeleteGroup (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_GroupType group_type, const char *group_name)
 Remove a group from the input geo with the given type and name. More...
 
HAPI_DECL HAPI_SetGroupMembership (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_GroupType group_type, const char *group_name, const int *membership_array, int start, int length)
 Set group membership. More...
 
HAPI_DECL HAPI_CommitGeo (const HAPI_Session *session, HAPI_NodeId node_id)
 Commit the current input geometry to the cook engine. Nodes that use this geometry node will re-cook using the input geometry given through the geometry setter API calls. More...
 
HAPI_DECL HAPI_RevertGeo (const HAPI_Session *session, HAPI_NodeId node_id)
 Remove all changes that have been committed to this geometry. If this is an intermediate result node (Edit SOP), all deltas will be removed. If it's any other type of node, the node will be unlocked if it is locked. More...
 
HAPI_DECL HAPI_GetMaterialNodeIdsOnFaces (const HAPI_Session *session, HAPI_NodeId geometry_node_id, HAPI_PartId part_id, HAPI_Bool *are_all_the_same, HAPI_NodeId *material_ids_array, int start, int length)
 Get material ids by face/primitive. The material ids returned will be valid as long as the asset is alive. You should query this list after every cook to see if the material assignments have changed. You should also query each material individually using HAPI_GetMaterialInfo() to see if it is dirty and needs to be re-imported. More...
 
HAPI_DECL HAPI_GetMaterialInfo (const HAPI_Session *session, HAPI_NodeId material_node_id, HAPI_MaterialInfo *material_info)
 Get the material info. More...
 
HAPI_DECL HAPI_RenderCOPToImage (const HAPI_Session *session, HAPI_NodeId cop_node_id)
 Render a single texture from a COP to an image for later extraction. More...
 
HAPI_DECL HAPI_RenderTextureToImage (const HAPI_Session *session, HAPI_NodeId material_node_id, HAPI_ParmId parm_id)
 Render only a single texture to an image for later extraction. An example use of this method might be to render the diffuse, normal, and bump texture maps of a material to individual texture files for use within the client application. More...
 
HAPI_DECL HAPI_GetImageInfo (const HAPI_Session *session, HAPI_NodeId material_node_id, HAPI_ImageInfo *image_info)
 Get information about the image that was just rendered, like resolution and default file format. This information will be used when extracting planes to an image. More...
 
HAPI_DECL HAPI_SetImageInfo (const HAPI_Session *session, HAPI_NodeId material_node_id, const HAPI_ImageInfo *image_info)
 Set image information like resolution and file format. This information will be used when extracting planes to an image. More...
 
HAPI_DECL HAPI_GetImagePlaneCount (const HAPI_Session *session, HAPI_NodeId material_node_id, int *image_plane_count)
 Get the number of image planes for the just rendered image. More...
 
HAPI_DECL HAPI_GetImagePlanes (const HAPI_Session *session, HAPI_NodeId material_node_id, HAPI_StringHandle *image_planes_array, int image_plane_count)
 Get the names of the image planes of the just rendered image. More...
 
HAPI_DECL HAPI_ExtractImageToFile (const HAPI_Session *session, HAPI_NodeId material_node_id, const char *image_file_format_name, const char *image_planes, const char *destination_folder_path, const char *destination_file_name, int *destination_file_path)
 Extract a rendered image to a file. More...
 
HAPI_DECL HAPI_GetImageFilePath (const HAPI_Session *session, HAPI_NodeId material_node_id, const char *image_file_format_name, const char *image_planes, const char *destination_folder_path, const char *destination_file_name, HAPI_ParmId texture_parm_id, int *destination_file_path)
 Get the file name that this image would be saved to. More...
 
HAPI_DECL HAPI_ExtractImageToMemory (const HAPI_Session *session, HAPI_NodeId material_node_id, const char *image_file_format_name, const char *image_planes, int *buffer_size)
 Extract a rendered image to memory. More...
 
HAPI_DECL HAPI_GetImageMemoryBuffer (const HAPI_Session *session, HAPI_NodeId material_node_id, char *buffer, int length)
 Fill your allocated buffer with the just extracted image buffer. More...
 
HAPI_DECL HAPI_GetSupportedImageFileFormatCount (const HAPI_Session *session, int *file_format_count)
 Get the number of supported texture file formats. More...
 
HAPI_DECL HAPI_GetSupportedImageFileFormats (const HAPI_Session *session, HAPI_ImageFileFormat *formats_array, int file_format_count)
 Get a list of support image file formats - their names, descriptions and a list of recognized extensions. More...
 
HAPI_DECL HAPI_SetAnimCurve (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_ParmId parm_id, int parm_index, const HAPI_Keyframe *curve_keyframes_array, int keyframe_count)
 Set an animation curve on a parameter of an exposed node. More...
 
HAPI_DECL HAPI_SetTransformAnimCurve (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_TransformComponent trans_comp, const HAPI_Keyframe *curve_keyframes_array, int keyframe_count)
 A specialized convenience function to set the T,R,S values on an exposed node. More...
 
HAPI_DECL HAPI_ResetSimulation (const HAPI_Session *session, HAPI_NodeId node_id)
 Resets the simulation cache of the asset. This is very useful for assets that use dynamics, to be called after some setup has changed for the asset - for example, asset inputs. More...
 
HAPI_DECL HAPI_GetVolumeInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_VolumeInfo *volume_info)
 Retrieve any meta-data about the volume primitive, including its transform, location, scale, taper, resolution. More...
 
HAPI_DECL HAPI_GetFirstVolumeTile (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_VolumeTileInfo *tile)
 Iterate through a volume based on 8x8x8 sections of the volume Start iterating through the value of the volume at part_id. More...
 
HAPI_DECL HAPI_GetNextVolumeTile (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_VolumeTileInfo *tile)
 Iterate through a volume based on 8x8x8 sections of the volume Continue iterating through the value of the volume at part_id. More...
 
HAPI_DECL HAPI_GetVolumeVoxelFloatData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int x_index, int y_index, int z_index, float *values_array, int value_count)
 Retrieve floating point values of the voxel at a specific index. Note that you must call HAPI_GetVolumeInfo() prior to this call. More...
 
HAPI_DECL HAPI_GetVolumeTileFloatData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, float fill_value, const HAPI_VolumeTileInfo *tile, float *values_array, int length)
 Retrieve floating point values of the voxels pointed to by a tile. Note that a tile may extend beyond the limits of the volume so not all values in the given buffer will be written to. Voxels outside the volume will be initialized to the given fill value. More...
 
HAPI_DECL HAPI_GetVolumeVoxelIntData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int x_index, int y_index, int z_index, int *values_array, int value_count)
 Retrieve integer point values of the voxel at a specific index. Note that you must call HAPI_GetVolumeInfo() prior to this call. More...
 
HAPI_DECL HAPI_GetVolumeTileIntData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int fill_value, const HAPI_VolumeTileInfo *tile, int *values_array, int length)
 Retrieve integer point values of the voxels pointed to by a tile. Note that a tile may extend beyond the limits of the volume so not all values in the given buffer will be written to. Voxels outside the volume will be initialized to the given fill value. More...
 
HAPI_DECL HAPI_GetHeightFieldData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, float *values_array, int start, int length)
 Get the height field data for a terrain volume as a flattened 2D array of float heights. Should call HAPI_GetVolumeInfo() first to make sure the volume info is initialized. More...
 
HAPI_DECL HAPI_SetVolumeInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const HAPI_VolumeInfo *volume_info)
 Set the volume info of a geo on a geo input. More...
 
HAPI_DECL HAPI_SetVolumeTileFloatData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const HAPI_VolumeTileInfo *tile, const float *values_array, int length)
 Set the values of a float tile: this is an 8x8x8 subsection of the volume. More...
 
HAPI_DECL HAPI_SetVolumeTileIntData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const HAPI_VolumeTileInfo *tile, const int *values_array, int length)
 Set the values of an int tile: this is an 8x8x8 subsection of the volume. More...
 
HAPI_DECL HAPI_SetVolumeVoxelFloatData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int x_index, int y_index, int z_index, const float *values_array, int value_count)
 Set the values of a float voxel in the volume. More...
 
HAPI_DECL HAPI_SetVolumeVoxelIntData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int x_index, int y_index, int z_index, const int *values_array, int value_count)
 Set the values of a integer voxel in the volume. More...
 
HAPI_DECL HAPI_GetVolumeBounds (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, float *x_min, float *y_min, float *z_min, float *x_max, float *y_max, float *z_max, float *x_center, float *y_center, float *z_center)
 Get the bounding values of a volume. More...
 
HAPI_DECL HAPI_SetHeightFieldData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const char *name, const float *values_array, int start, int length)
 Set the height field data for a terrain volume with the values from a flattened 2D array of float. HAPI_SetVolumeInfo() should be called first to make sure that the volume and its info are initialized. More...
 
HAPI_DECL HAPI_GetVolumeVisualInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_VolumeVisualInfo *visual_info)
 Retrieve the visualization meta-data of the volume. More...
 
HAPI_DECL HAPI_GetCurveInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, HAPI_CurveInfo *info)
 Retrieve any meta-data about the curves, including the curve's type, order, and periodicity. More...
 
HAPI_DECL HAPI_GetCurveCounts (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int *counts_array, int start, int length)
 Retrieve the number of vertices for each curve in the part. More...
 
HAPI_DECL HAPI_GetCurveOrders (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, int *orders_array, int start, int length)
 Retrieve the orders for each curve in the part if the curve has varying order. More...
 
HAPI_DECL HAPI_GetCurveKnots (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, float *knots_array, int start, int length)
 Retrieve the knots of the curves in this part. More...
 
HAPI_DECL HAPI_SetCurveInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const HAPI_CurveInfo *info)
 Set meta-data for the curve mesh, including the curve type, order, and periodicity. More...
 
HAPI_DECL HAPI_SetCurveCounts (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const int *counts_array, int start, int length)
 Set the number of vertices for each curve in the part. More...
 
HAPI_DECL HAPI_SetCurveOrders (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const int *orders_array, int start, int length)
 Set the orders for each curve in the part if the curve has varying order. More...
 
HAPI_DECL HAPI_SetCurveKnots (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PartId part_id, const float *knots_array, int start, int length)
 Set the knots of the curves in this part. More...
 
HAPI_DECL HAPI_GetBoxInfo (const HAPI_Session *session, HAPI_NodeId geo_node_id, HAPI_PartId part_id, HAPI_BoxInfo *box_info)
 Get the box info on a geo part (if the part is a box). More...
 
HAPI_DECL HAPI_GetSphereInfo (const HAPI_Session *session, HAPI_NodeId geo_node_id, HAPI_PartId part_id, HAPI_SphereInfo *sphere_info)
 Get the sphere info on a geo part (if the part is a sphere). More...
 
HAPI_DECL HAPI_GetActiveCacheCount (const HAPI_Session *session, int *active_cache_count)
 Get the number of currently active caches. More...
 
HAPI_DECL HAPI_GetActiveCacheNames (const HAPI_Session *session, HAPI_StringHandle *cache_names_array, int active_cache_count)
 Get the names of the currently active caches. More...
 
HAPI_DECL HAPI_GetCacheProperty (const HAPI_Session *session, const char *cache_name, HAPI_CacheProperty cache_property, int *property_value)
 Lets you inspect specific properties of the different memory caches in the current Houdini context. More...
 
HAPI_DECL HAPI_SetCacheProperty (const HAPI_Session *session, const char *cache_name, HAPI_CacheProperty cache_property, int property_value)
 Lets you modify specific properties of the different memory caches in the current Houdini context. This includes clearing caches, reducing their memory use, or changing how memory limits are respected by a cache. More...
 
HAPI_DECL HAPI_SaveGeoToFile (const HAPI_Session *session, HAPI_NodeId node_id, const char *file_name)
 Saves a geometry to file. The type of file to save is to be determined by the extension ie. .bgeo, .obj. More...
 
HAPI_DECL HAPI_LoadGeoFromFile (const HAPI_Session *session, HAPI_NodeId node_id, const char *file_name)
 Loads a geometry file and put its contents onto a SOP node. More...
 
HAPI_DECL HAPI_SaveNodeToFile (const HAPI_Session *session, HAPI_NodeId node_id, const char *file_name)
 Saves the node and all its contents to file. The saved file can be loaded by calling HAPI_LoadNodeFromFile. More...
 
HAPI_DECL HAPI_LoadNodeFromFile (const HAPI_Session *session, const char *file_name, HAPI_NodeId parent_node_id, const char *node_label, HAPI_Bool cook_on_load, HAPI_NodeId *new_node_id)
 Loads and creates a previously saved node and all its contents from given file. The saved file must have been created by calling HAPI_SaveNodeToFile. More...
 
HAPI_DECL HAPI_GetGeoSize (const HAPI_Session *session, HAPI_NodeId node_id, const char *format, int *size)
 Cache the current state of the geo to memory, given the format, and return the size. Use this size with your call to HAPI_SaveGeoToMemory() to copy the cached geo to your buffer. It is guaranteed that the size will not change between your call to HAPI_GetGeoSize() and HAPI_SaveGeoToMemory(). More...
 
HAPI_DECL HAPI_SaveGeoToMemory (const HAPI_Session *session, HAPI_NodeId node_id, char *buffer, int length)
 Saves the cached geometry to your buffer in memory, whose format and required size is identified by the call to HAPI_GetGeoSize(). The call to HAPI_GetGeoSize() is required as HAPI_GetGeoSize() does the actual saving work. More...
 
HAPI_DECL HAPI_LoadGeoFromMemory (const HAPI_Session *session, HAPI_NodeId node_id, const char *format, const char *buffer, int length)
 Loads a geometry from memory and put its contents onto a SOP node. More...
 
HAPI_DECL HAPI_SetNodeDisplay (const HAPI_Session *session, HAPI_NodeId node_id, int onOff)
 Set the specified node's display flag. More...
 
HAPI_DECL HAPI_GetTotalCookCount (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_NodeTypeBits node_type_filter, HAPI_NodeFlagsBits node_flags_filter, HAPI_Bool recursive, int *count)
 Get the specified node's total cook count, including its children, if specified. More...
 
HAPI_DECL HAPI_SetSessionSync (const HAPI_Session *session, HAPI_Bool enable)
 Enable or disable SessionSync mode. More...
 
HAPI_DECL HAPI_GetViewport (const HAPI_Session *session, HAPI_Viewport *viewport)
 Get the HAPI_Viewport info for synchronizing viewport in SessionSync. When SessionSync is running this will return Houdini's current viewport information. More...
 
HAPI_DECL HAPI_SetViewport (const HAPI_Session *session, const HAPI_Viewport *viewport)
 Set the HAPI_Viewport info for synchronizing viewport in SessionSync. When SessionSync is running, this can be used to set the viewport information which Houdini will then synchronizse with for its viewport. More...
 
HAPI_DECL HAPI_GetSessionSyncInfo (const HAPI_Session *session, HAPI_SessionSyncInfo *session_sync_info)
 Get the HAPI_SessionSyncInfo for synchronizing SessionSync state between Houdini and Houdini Engine integrations. More...
 
HAPI_DECL HAPI_SetSessionSyncInfo (const HAPI_Session *session, const HAPI_SessionSyncInfo *session_sync_info)
 Set the HAPI_SessionSyncInfo for synchronizing SessionSync state between Houdini and Houdini Engine integrations. More...
 
HAPI_DECL HAPI_GetPDGGraphContexts (const HAPI_Session *session, int *num_contexts, HAPI_StringHandle *context_names_array, HAPI_PDG_GraphContextId *context_id_array, int count)
 Return an array of PDG graph context names and ids, the first count names will be returned. These ids can be used with HAPI_GetPDGEvents and HAPI_GetPDGState. The values of the names can be retrieved with HAPI_GetString. More...
 
HAPI_DECL HAPI_GetPDGGraphContextId (const HAPI_Session *session, HAPI_NodeId top_node_id, HAPI_PDG_GraphContextId *context_id)
 Get the PDG graph context for the specified TOP node. More...
 
HAPI_DECL HAPI_CookPDG (const HAPI_Session *session, HAPI_NodeId cook_node_id, int generate_only, int blocking)
 Starts a PDG cooking operation. This can be asynchronous. Progress can be checked with HAPI_GetPDGState() and HAPI_GetPDGState(). Events generated during this cook can be collected with HAPI_GetPDGEvents(). Any uncollected events will be discarded at the start of the cook. More...
 
HAPI_DECL HAPI_GetPDGEvents (const HAPI_Session *session, HAPI_PDG_GraphContextId graph_context_id, HAPI_PDG_EventInfo *event_array, int length, int *event_count, int *remaining_events)
 Returns PDG events that have been collected. Calling this function will remove those events from the queue. Events collection is restarted by calls to HAPI_CookPDG(). More...
 
HAPI_DECL HAPI_GetPDGState (const HAPI_Session *session, HAPI_PDG_GraphContextId graph_context_id, int *pdg_state)
 Gets the state of a PDG graph. More...
 
HAPI_DECL HAPI_CreateWorkitem (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PDG_WorkitemId *workitem_id, const char *name, int index)
 Creates a new pending workitem for the given node. The workitem will not be submitted to the graph until it is committed with HAPI_CommitWorkitems(). The node is expected to be a generator type. More...
 
HAPI_DECL HAPI_GetWorkitemInfo (const HAPI_Session *session, HAPI_PDG_GraphContextId graph_context_id, HAPI_PDG_WorkitemId workitem_id, HAPI_PDG_WorkitemInfo *workitem_info)
 Retrieves the info of a given workitem by id. More...
 
HAPI_DECL HAPI_SetWorkitemIntData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PDG_WorkitemId workitem_id, const char *data_name, const int *values_array, int length)
 Adds integer data to a pending PDG workitem data member for the given node. More...
 
HAPI_DECL HAPI_SetWorkitemFloatData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PDG_WorkitemId workitem_id, const char *data_name, const float *values_array, int length)
 Adds float data to a pending PDG workitem data member for the given node. More...
 
HAPI_DECL HAPI_SetWorkitemStringData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PDG_WorkitemId workitem_id, const char *data_name, int data_index, const char *value)
 Adds integer data to a pending PDG workitem data member for the given node. More...
 
HAPI_DECL HAPI_CommitWorkitems (const HAPI_Session *session, HAPI_NodeId node_id)
 Commits any pending workitems. More...
 
HAPI_DECL HAPI_GetNumWorkitems (const HAPI_Session *session, HAPI_NodeId node_id, int *num)
 Gets the number of workitems that are available on the given node. Should be used with HAPI_GetWorkitems. More...
 
HAPI_DECL HAPI_GetWorkitems (const HAPI_Session *session, HAPI_NodeId node_id, int *workitem_ids_array, int length)
 Gets the list of work item ids for the given node. More...
 
HAPI_DECL HAPI_GetWorkitemDataLength (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PDG_WorkitemId workitem_id, const char *data_name, int *length)
 Gets the length of the workitem data member. It is the length of the array of data. More...
 
HAPI_DECL HAPI_GetWorkitemIntData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PDG_WorkitemId workitem_id, const char *data_name, int *data_array, int length)
 Gets int data from a work item member. More...
 
HAPI_DECL HAPI_GetWorkitemFloatData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PDG_WorkitemId workitem_id, const char *data_name, float *data_array, int length)
 Gets float data from a work item member. More...
 
HAPI_DECL HAPI_GetWorkitemStringData (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PDG_WorkitemId workitem_id, const char *data_name, HAPI_StringHandle *data_array, int length)
 Gets string ids from a work item member. More...
 
HAPI_DECL HAPI_GetWorkitemResultInfo (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_PDG_WorkitemId workitem_id, HAPI_PDG_WorkitemResultInfo *resultinfo_array, int resultinfo_count)
 Gets the info for workitem results. The number of workitem results is found on the HAPI_PDG_WorkitemInfo returned by HAPI_GetWorkitemInfo. More...
 
HAPI_DECL HAPI_DirtyPDGNode (const HAPI_Session *session, HAPI_NodeId node_id, HAPI_Bool clean_results)
 Dirties the given node. Cancels the cook if necessary and then deletes all workitems on the node. More...
 
HAPI_DECL HAPI_PausePDGCook (const HAPI_Session *session, HAPI_PDG_GraphContextId graph_context_id)
 Pause the PDG cooking operation. More...
 
HAPI_DECL HAPI_CancelPDGCook (const HAPI_Session *session, HAPI_PDG_GraphContextId graph_context_id)
 Cancel the PDG cooking operation. More...
 

Function Documentation

HAPI_DECL HAPI_GetBoxInfo ( const HAPI_Session session,
HAPI_NodeId  geo_node_id,
HAPI_PartId  part_id,
HAPI_BoxInfo box_info 
)

Get the box info on a geo part (if the part is a box).

Parameters
[in]sessionThe session of Houdini you are interacting with. See Sessions for more on sessions. Pass NULL to just use the default in-process session.
[in]geo_node_idThe geo node id.
[in]part_idThe part id of the
[out]box_infoThe returned box info.
HAPI_DECL HAPI_GetSphereInfo ( const HAPI_Session session,
HAPI_NodeId  geo_node_id,
HAPI_PartId  part_id,
HAPI_SphereInfo sphere_info 
)

Get the sphere info on a geo part (if the part is a sphere).

Parameters
[in]sessionThe session of Houdini you are interacting with. See Sessions for more on sessions. Pass NULL to just use the default in-process session.
[in]geo_node_idThe geo node id.
[in]part_idThe part id of the
[out]sphere_infoThe returned sphere info.