public static void StoreTuple(IntPtr tupleHandle, HTuple tuple) { HTupleType type = tuple.Type == HTupleType.LONG ? HTupleType.INTEGER : tuple.Type; HalconAPI.HCkH(HalconAPI.CreateElementsOfType(tupleHandle, tuple.Length, type)); switch (tuple.Type) { case HTupleType.INTEGER: HalconAPI.HCkH(HalconAPI.SetIArr(tupleHandle, tuple.IArr)); break; case HTupleType.DOUBLE: HalconAPI.HCkH(HalconAPI.SetDArr(tupleHandle, tuple.DArr)); break; case HTupleType.STRING: string[] sarr = tuple.SArr; for (int index = 0; index < tuple.Length; ++index) { HalconAPI.HCkH(HalconAPI.SetS(tupleHandle, index, sarr[index])); } break; case HTupleType.MIXED: object[] oarr = tuple.data.OArr; for (int index = 0; index < tuple.Length; ++index) { switch (HTupleImplementation.GetObjectType(oarr[index])) { case 1: HalconAPI.HCkH(HalconAPI.SetI(tupleHandle, index, (int)oarr[index])); break; case 2: HalconAPI.HCkH(HalconAPI.SetD(tupleHandle, index, (double)oarr[index])); break; case 4: HalconAPI.HCkH(HalconAPI.SetS(tupleHandle, index, (string)oarr[index])); break; case 129: HalconAPI.HCkH(HalconAPI.SetL(tupleHandle, index, (long)oarr[index])); break; } } break; case HTupleType.LONG: HalconAPI.HCkH(HalconAPI.SetLArr(tupleHandle, tuple.LArr)); break; } }