protected virtual bool CookNode(HEU_SessionBase session, HAPI_NodeId cookNodeID) { // Cooking it will load the bgeo if (!session.CookNode(cookNodeID, false)) { AppendLog(HEU_LoadData.LoadStatus.ERROR, string.Format("Unable to cook node.")); return false; } // Wait until cooking has finished bool bResult = true; HAPI_State statusCode = HAPI_State.HAPI_STATE_STARTING_LOAD; while (bResult && statusCode > HAPI_State.HAPI_STATE_MAX_READY_STATE) { bResult = session.GetCookState(out statusCode); Sleep(); } // Check cook results for any errors if (statusCode == HAPI_State.HAPI_STATE_READY_WITH_COOK_ERRORS || statusCode == HAPI_State.HAPI_STATE_READY_WITH_FATAL_ERRORS) { string statusString = session.GetStatusString(HAPI_StatusType.HAPI_STATUS_COOK_RESULT, HAPI_StatusVerbosity.HAPI_STATUSVERBOSITY_ERRORS); AppendLog(HEU_LoadData.LoadStatus.ERROR, string.Format("Cook failed: {0}.", statusString)); return false; } return true; }