Example #1
0
    public int GetHdrKneepoints(ref KNEEPOINTARRAY KneepointArray, int KneepointArraySize)
    {
      if (m_hCam == 0)
        return IS_INVALID_CAMERA_HANDLE;

      // Temporary byte array
      var pTemp = new byte[KneepointArraySize];

      int ret = is_GetHdrKneepoints(m_hCam, pTemp, KneepointArraySize);
      if (ret == IS_SUCCESS)
      {
        KneepointArray.NumberOfUsedKneepoints = BitConverter.ToInt32(pTemp, 0);

        for (int i = 0; i < 10; i++)
        {
          KneepointArray.Kneepoint[i].x = BitConverter.ToDouble(pTemp, 8 + i * 16);
          KneepointArray.Kneepoint[i].y = BitConverter.ToDouble(pTemp, 16 + i * 16);
        }
      }

      return ret;
    }
Example #2
0
    public int SetHdrKneepoints(ref KNEEPOINTARRAY KneepointArray, int KneepointArraySize)
    {
      int i, j;

      if (m_hCam == 0)
        return IS_INVALID_CAMERA_HANDLE;

      // Temporary byte array
      var pTemp = new byte[KneepointArraySize];
      var temp = new byte[4];
      //Byte [] temp2 = new byte[8];

      // Get 4 bytes (NumberOfUsedKneepoints) and copy them to temp
      temp = BitConverter.GetBytes(KneepointArray.NumberOfUsedKneepoints);
      for (i = 0; i < 4; i++)
        pTemp[i] = temp[i];

      // The nest 4 bytes are not used (alignment)

      // copy the kneepoint values to temp
      for (i = 0; i < 10; i++)
      {
        temp = BitConverter.GetBytes(KneepointArray.Kneepoint[i].x);
        for (j = 0; j < 8; j++)
          pTemp[8 + 16 * i + j] = temp[j];

        temp = BitConverter.GetBytes(KneepointArray.Kneepoint[i].y);
        for (j = 0; j < 8; j++)
          pTemp[16 + 16 * i + j] = temp[j];
      }

      int ret = is_SetHdrKneepoints(m_hCam, pTemp, KneepointArraySize);
      return ret;
    }