1148 {
1149 const char* hdaFile = "";
1150
1151 HAPI_Session session;
1152 HAPI_ThriftServerOptions serverOptions{ 0 };
1153 serverOptions.autoClose = true;
1154 serverOptions.timeoutMs = 3000.0f;
1155
1156 HE_CHECK(HAPI_StartThriftNamedPipeServer(&serverOptions,
"hapi",
nullptr,
nullptr))
1157
1158 HAPI_SessionInfo sessionInfo = HAPI_SessionInfo_Create();
1159 HE_CHECK(HAPI_CreateThriftNamedPipeSession(&session, "hapi", &sessionInfo))
1160
1161 HAPI_CookOptions cookOptions = HAPI_CookOptions_Create();
1162 HE_CHECK(HAPI_Initialize(&session, &cookOptions, true, -1,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr))
1163
1164 HAPI_AssetLibraryId assetLibId;
1165 HE_CHECK(HAPI_LoadAssetLibraryFromFile(&session, hdaFile, true, &assetLibId))
1166
1167 int assetCount;
1168 HE_CHECK(HAPI_GetAvailableAssetCount(&session, assetLibId, &assetCount))
1169
1170 if (assetCount > 1)
1171 {
1172 std::cout << "Should only be loading 1 asset here" << std::endl;
1173 }
1174
1175 HAPI_StringHandle assetSh;
1176 HE_CHECK(HAPI_GetAvailableAssets(&session, assetLibId, &assetSh, assetCount))
1177
1178 std::string assetName =
GetString(session, assetSh);
1179
1180 HAPI_NodeId nodeId;
1181 HE_CHECK(HAPI_CreateNode(&session, -1, assetName.c_str(),
"TestObject",
false, &nodeId))
1182 HE_CHECK(HAPI_CookNode(&session, nodeId, &cookOptions))
1183
1184 int cookStatus;
1185 HAPI_Result cookResult;
1186
1187 do
1188 {
1189 cookResult = HAPI_GetStatus(&session, HAPI_STATUS_COOK_STATE, &cookStatus);
1190 }
1191 while(cookStatus > HAPI_STATE_MAX_READY_STATE && cookResult == HAPI_RESULT_SUCCESS);
1192
1195
1196 HAPI_AssetInfo assetInfo;
1197 HE_CHECK(HAPI_GetAssetInfo(&session, nodeId, &assetInfo))
1198
1200
1202 }
#define HE_CHECK_COOK(expr)
HoudiniEngine Check Cook macro. Verify HoudiniEngine Cook API Effectiveness.
#define HE_CHECK(expr)
HoudiniEngine Check macro. Verify HoudiniEngine API Effectiveness.
static std::string GetString(HAPI_Session &session, HAPI_StringHandle stringHandle)
static void PrintCompleteNodeInfo(HAPI_Session &session, HAPI_NodeId nodeId, HAPI_AssetInfo &assetInfo)