internal bool UploadBoxColliderData(HEU_SessionBase session, BoxCollider collider, int inputIndex, HAPI_NodeId parentNodeID, out HAPI_NodeId inputNodeID) { inputNodeID = HEU_Defines.HEU_INVALID_NODE_ID; if (!collider) return false; HAPI_NodeId boxNodeID = HEU_Defines.HEU_INVALID_NODE_ID; string name = string.Format("Box{0}", inputIndex); Vector3 center = HEU_HAPIUtility.ConvertPositionUnityToHoudini(collider.center); Vector3 size = HEU_HAPIUtility.ConvertScaleUnityToHoudini(collider.size); if (!session.CreateNode(parentNodeID, "box", null, false, out boxNodeID)) { HEU_Logger.LogErrorFormat("Unable to create merge box node for connecting input assets."); return false; } string sizeParamName = "size"; if (!session.SetParamFloatValue(boxNodeID, sizeParamName, 0, size.x)) return false; if (!session.SetParamFloatValue(boxNodeID, sizeParamName, 1, size.y)) return false; if (!session.SetParamFloatValue(boxNodeID, sizeParamName, 2, size.z)) return false; string transformParamName = "t"; if (!session.SetParamFloatValue(boxNodeID, transformParamName, 0, center.x)) return false; if (!session.SetParamFloatValue(boxNodeID, transformParamName, 1, center.y)) return false; if (!session.SetParamFloatValue(boxNodeID, transformParamName, 2, center.z)) return false; if (!session.CookNode(boxNodeID, false)) return false; HAPI_NodeId groupNodeID = HEU_Defines.HEU_INVALID_NODE_ID; string groupName = string.Format("group{0}", inputIndex); if (!session.CreateNode(parentNodeID, "groupcreate", groupName, false, out groupNodeID)) { HEU_Logger.LogErrorFormat("Unable to create group SOP node for connecting input assets."); return false; } HAPI_NodeId groupParmID = HEU_Defines.HEU_INVALID_NODE_ID; if (!session.GetParmIDFromName(groupNodeID, "groupname", out groupParmID) || groupParmID == HEU_Defines.HEU_INVALID_NODE_ID) return false; string baseGroupName = GetColliderGroupBaseName(collider, bIsConvex: false, bIsSimple: true); string groupNameStr = string.Format("{0}_box{1}", baseGroupName, inputIndex); if (!session.SetParamStringValue(groupNodeID, groupNameStr, groupParmID, 0)) return false; if (!session.ConnectNodeInput(groupNodeID, 0, boxNodeID)) return false; inputNodeID = groupNodeID; return true; }