public void setChangedParameterIntoHost(int id) { if (prControl == null) { return; } if (prControl.prAsset == null) { return; } if (id == -1) { return; } HAPI_ParmInfo parm = findParm(id); if ((HAPI_ParmType)parm.type == HAPI_ParmType.HAPI_PARMTYPE_MULTIPARMLIST) { int[] values = new int[1]; HoudiniHost.getParmIntValues(prControl.prNodeId, values, parm.intValuesIndex, 1); int difference = prParmIntValues[parm.intValuesIndex] - values[0]; if (difference > 0) { appendMultiparmInstances(parm, difference); } else if (difference < 0) { removeMultiparmInstances(parm, -difference); } getParameterValues(); } else if (parm.isNode()) { setChangedNodeParameterIntoHost(id); } else if (parm.isFloat()) { float[] values = new float[parm.size]; Array.Copy(prParmFloatValues, parm.floatValuesIndex, values, 0, parm.size); HoudiniHost.setParmFloatValues(prControl.prNodeId, values, parm.floatValuesIndex, parm.size); } else if (parm.isInt() && (HAPI_ParmType)parm.type != HAPI_ParmType.HAPI_PARMTYPE_MULTIPARMLIST) { int[] values = new int[parm.size]; Array.Copy(prParmIntValues, parm.intValuesIndex, values, 0, parm.size); HoudiniHost.setParmIntValues(prControl.prNodeId, values, parm.intValuesIndex, parm.size); } else if (parm.isString()) { string[] strings = getParmStrings(parm); for (int p = 0; p < parm.size; ++p) { HoudiniHost.setParmStringValue(prControl.prNodeId, strings[p], parm.id, p); } } }