/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.8
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

namespace LizardTech.LidarSDK {

using System;
using System.Runtime.InteropServices;

class LidarDSDKPINVOKE {

  protected class SWIGExceptionHelper {

    public delegate void ExceptionDelegate(string message);
    public delegate void ExceptionArgumentDelegate(string message, string paramName);

    static ExceptionDelegate applicationDelegate = new ExceptionDelegate(SetPendingApplicationException);
    static ExceptionDelegate arithmeticDelegate = new ExceptionDelegate(SetPendingArithmeticException);
    static ExceptionDelegate divideByZeroDelegate = new ExceptionDelegate(SetPendingDivideByZeroException);
    static ExceptionDelegate indexOutOfRangeDelegate = new ExceptionDelegate(SetPendingIndexOutOfRangeException);
    static ExceptionDelegate invalidCastDelegate = new ExceptionDelegate(SetPendingInvalidCastException);
    static ExceptionDelegate invalidOperationDelegate = new ExceptionDelegate(SetPendingInvalidOperationException);
    static ExceptionDelegate ioDelegate = new ExceptionDelegate(SetPendingIOException);
    static ExceptionDelegate nullReferenceDelegate = new ExceptionDelegate(SetPendingNullReferenceException);
    static ExceptionDelegate outOfMemoryDelegate = new ExceptionDelegate(SetPendingOutOfMemoryException);
    static ExceptionDelegate overflowDelegate = new ExceptionDelegate(SetPendingOverflowException);
    static ExceptionDelegate systemDelegate = new ExceptionDelegate(SetPendingSystemException);

    static ExceptionArgumentDelegate argumentDelegate = new ExceptionArgumentDelegate(SetPendingArgumentException);
    static ExceptionArgumentDelegate argumentNullDelegate = new ExceptionArgumentDelegate(SetPendingArgumentNullException);
    static ExceptionArgumentDelegate argumentOutOfRangeDelegate = new ExceptionArgumentDelegate(SetPendingArgumentOutOfRangeException);

    [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="SWIGRegisterExceptionCallbacks_LidarDSDK")]
    public static extern void SWIGRegisterExceptionCallbacks_LidarDSDK(
                                ExceptionDelegate applicationDelegate,
                                ExceptionDelegate arithmeticDelegate,
                                ExceptionDelegate divideByZeroDelegate, 
                                ExceptionDelegate indexOutOfRangeDelegate, 
                                ExceptionDelegate invalidCastDelegate,
                                ExceptionDelegate invalidOperationDelegate,
                                ExceptionDelegate ioDelegate,
                                ExceptionDelegate nullReferenceDelegate,
                                ExceptionDelegate outOfMemoryDelegate, 
                                ExceptionDelegate overflowDelegate, 
                                ExceptionDelegate systemExceptionDelegate);

    [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="SWIGRegisterExceptionArgumentCallbacks_LidarDSDK")]
    public static extern void SWIGRegisterExceptionCallbacksArgument_LidarDSDK(
                                ExceptionArgumentDelegate argumentDelegate,
                                ExceptionArgumentDelegate argumentNullDelegate,
                                ExceptionArgumentDelegate argumentOutOfRangeDelegate);

    static void SetPendingApplicationException(string message) {
      SWIGPendingException.Set(new System.ApplicationException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingArithmeticException(string message) {
      SWIGPendingException.Set(new System.ArithmeticException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingDivideByZeroException(string message) {
      SWIGPendingException.Set(new System.DivideByZeroException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingIndexOutOfRangeException(string message) {
      SWIGPendingException.Set(new System.IndexOutOfRangeException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingInvalidCastException(string message) {
      SWIGPendingException.Set(new System.InvalidCastException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingInvalidOperationException(string message) {
      SWIGPendingException.Set(new System.InvalidOperationException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingIOException(string message) {
      SWIGPendingException.Set(new System.IO.IOException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingNullReferenceException(string message) {
      SWIGPendingException.Set(new System.NullReferenceException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingOutOfMemoryException(string message) {
      SWIGPendingException.Set(new System.OutOfMemoryException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingOverflowException(string message) {
      SWIGPendingException.Set(new System.OverflowException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingSystemException(string message) {
      SWIGPendingException.Set(new System.SystemException(message, SWIGPendingException.Retrieve()));
    }

    static void SetPendingArgumentException(string message, string paramName) {
      SWIGPendingException.Set(new System.ArgumentException(message, paramName, SWIGPendingException.Retrieve()));
    }
    static void SetPendingArgumentNullException(string message, string paramName) {
      Exception e = SWIGPendingException.Retrieve();
      if (e != null) message = message + " Inner Exception: " + e.Message;
      SWIGPendingException.Set(new System.ArgumentNullException(paramName, message));
    }
    static void SetPendingArgumentOutOfRangeException(string message, string paramName) {
      Exception e = SWIGPendingException.Retrieve();
      if (e != null) message = message + " Inner Exception: " + e.Message;
      SWIGPendingException.Set(new System.ArgumentOutOfRangeException(paramName, message));
    }

    static SWIGExceptionHelper() {
      SWIGRegisterExceptionCallbacks_LidarDSDK(
                                applicationDelegate,
                                arithmeticDelegate,
                                divideByZeroDelegate,
                                indexOutOfRangeDelegate,
                                invalidCastDelegate,
                                invalidOperationDelegate,
                                ioDelegate,
                                nullReferenceDelegate,
                                outOfMemoryDelegate,
                                overflowDelegate,
                                systemDelegate);

      SWIGRegisterExceptionCallbacksArgument_LidarDSDK(
                                argumentDelegate,
                                argumentNullDelegate,
                                argumentOutOfRangeDelegate);
    }
  }

  protected static SWIGExceptionHelper swigExceptionHelper = new SWIGExceptionHelper();

  public class SWIGPendingException {
    [ThreadStatic]
    private static Exception pendingException = null;
    private static int numExceptionsPending = 0;

    public static bool Pending {
      get {
        bool pending = false;
        if (numExceptionsPending > 0)
          if (pendingException != null)
            pending = true;
        return pending;
      } 
    }

    public static void Set(Exception e) {
      if (pendingException != null)
        throw new ApplicationException("FATAL: An earlier pending exception from unmanaged code was missed and thus not thrown (" + pendingException.ToString() + ")", e);
      pendingException = e;
      lock(typeof(LidarDSDKPINVOKE)) {
        numExceptionsPending++;
      }
    }

    public static Exception Retrieve() {
      Exception e = null;
      if (numExceptionsPending > 0) {
        if (pendingException != null) {
          e = pendingException;
          pendingException = null;
          lock(typeof(LidarDSDKPINVOKE)) {
            numExceptionsPending--;
          }
        }
      }
      return e;
    }
  }


  protected class SWIGStringHelper {

    public delegate string SWIGStringDelegate(string message);
    static SWIGStringDelegate stringDelegate = new SWIGStringDelegate(CreateString);

    [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="SWIGRegisterStringCallback_LidarDSDK")]
    public static extern void SWIGRegisterStringCallback_LidarDSDK(SWIGStringDelegate stringDelegate);

    static string CreateString(string cString) {
      return cString;
    }

    static SWIGStringHelper() {
      SWIGRegisterStringCallback_LidarDSDK(stringDelegate);
    }
  }

  static protected SWIGStringHelper swigStringHelper = new SWIGStringHelper();


  static LidarDSDKPINVOKE() {
  }


  protected class SWIGWStringHelper {

    public delegate string SWIGWStringDelegate(IntPtr message);
    static SWIGWStringDelegate wstringDelegate = new SWIGWStringDelegate(CreateWString);

    [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="SWIGRegisterWStringCallback_LidarDSDK")]
    public static extern void SWIGRegisterWStringCallback_LidarDSDK(SWIGWStringDelegate wstringDelegate);

    static string CreateWString([MarshalAs(UnmanagedType.LPWStr)]IntPtr cString) {
      return System.Runtime.InteropServices.Marshal.PtrToStringUni(cString);
    }

    static SWIGWStringHelper() {
      SWIGRegisterWStringCallback_LidarDSDK(wstringDelegate);
    }
  }

  static protected SWIGWStringHelper swigWStringHelper = new SWIGWStringHelper();


  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_min_set")]
  public static extern void Range_min_set(HandleRef jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_min_get")]
  public static extern double Range_min_get(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_max_set")]
  public static extern void Range_max_set(HandleRef jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_max_get")]
  public static extern double Range_max_get(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Range__SWIG_0")]
  public static extern IntPtr new_Range__SWIG_0(double jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Range__SWIG_1")]
  public static extern IntPtr new_Range__SWIG_1(double jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Range__SWIG_2")]
  public static extern IntPtr new_Range__SWIG_2();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_Equals")]
  public static extern bool Range_Equals(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_contains")]
  public static extern bool Range_contains(HandleRef jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_overlaps")]
  public static extern bool Range_overlaps(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_empty")]
  public static extern bool Range_empty(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_length")]
  public static extern double Range_length(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_shift")]
  public static extern void Range_shift(HandleRef jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_scale")]
  public static extern void Range_scale(HandleRef jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_clip")]
  public static extern void Range_clip(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_grow__SWIG_0")]
  public static extern void Range_grow__SWIG_0(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Range_grow__SWIG_1")]
  public static extern void Range_grow__SWIG_1(HandleRef jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_Range")]
  public static extern void delete_Range(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_x_set")]
  public static extern void Bounds_x_set(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_x_get")]
  public static extern IntPtr Bounds_x_get(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_y_set")]
  public static extern void Bounds_y_set(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_y_get")]
  public static extern IntPtr Bounds_y_get(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_z_set")]
  public static extern void Bounds_z_set(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_z_get")]
  public static extern IntPtr Bounds_z_get(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_Huge")]
  public static extern IntPtr Bounds_Huge();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Bounds__SWIG_0")]
  public static extern IntPtr new_Bounds__SWIG_0(double jarg1, double jarg2, double jarg3, double jarg4, double jarg5, double jarg6);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Bounds__SWIG_1")]
  public static extern IntPtr new_Bounds__SWIG_1(double jarg1, double jarg2, double jarg3, double jarg4, double jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Bounds__SWIG_2")]
  public static extern IntPtr new_Bounds__SWIG_2(double jarg1, double jarg2, double jarg3, double jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Bounds__SWIG_3")]
  public static extern IntPtr new_Bounds__SWIG_3(double jarg1, double jarg2, double jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Bounds__SWIG_4")]
  public static extern IntPtr new_Bounds__SWIG_4(double jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Bounds__SWIG_5")]
  public static extern IntPtr new_Bounds__SWIG_5(double jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Bounds__SWIG_6")]
  public static extern IntPtr new_Bounds__SWIG_6();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Bounds__SWIG_7")]
  public static extern IntPtr new_Bounds__SWIG_7(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_Equals")]
  public static extern bool Bounds_Equals(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_contains")]
  public static extern bool Bounds_contains(HandleRef jarg1, double jarg2, double jarg3, double jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_overlaps")]
  public static extern bool Bounds_overlaps(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_empty")]
  public static extern bool Bounds_empty(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_volume")]
  public static extern double Bounds_volume(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_shift")]
  public static extern void Bounds_shift(HandleRef jarg1, double jarg2, double jarg3, double jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_scale")]
  public static extern void Bounds_scale(HandleRef jarg1, double jarg2, double jarg3, double jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_clip")]
  public static extern void Bounds_clip(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_grow__SWIG_0")]
  public static extern void Bounds_grow__SWIG_0(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_grow__SWIG_1")]
  public static extern void Bounds_grow__SWIG_1(HandleRef jarg1, double jarg2, double jarg3, double jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Bounds_overlapFraction")]
  public static extern double Bounds_overlapFraction(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_Bounds")]
  public static extern void delete_Bounds(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_DataTypeUtils_isSigned")]
  public static extern bool DataTypeUtils_isSigned(int jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_DataTypeUtils_isFloat")]
  public static extern bool DataTypeUtils_isFloat(int jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_DataTypeUtils_byteWidth")]
  public static extern int DataTypeUtils_byteWidth(int jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_DataTypeUtils_toString")]
  public static extern string DataTypeUtils_toString(int jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_DataTypeUtils_toDataType")]
  public static extern int DataTypeUtils_toDataType(string jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_DataTypeUtils")]
  public static extern IntPtr new_DataTypeUtils();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_DataTypeUtils")]
  public static extern void delete_DataTypeUtils(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_X_get")]
  public static extern string CHANNEL_NAME_X_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_Y_get")]
  public static extern string CHANNEL_NAME_Y_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_Z_get")]
  public static extern string CHANNEL_NAME_Z_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_Intensity_get")]
  public static extern string CHANNEL_NAME_Intensity_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_ReturnNum_get")]
  public static extern string CHANNEL_NAME_ReturnNum_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_NumReturns_get")]
  public static extern string CHANNEL_NAME_NumReturns_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_ScanDir_get")]
  public static extern string CHANNEL_NAME_ScanDir_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_EdgeFlightLine_get")]
  public static extern string CHANNEL_NAME_EdgeFlightLine_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_ScannerChannel_get")]
  public static extern string CHANNEL_NAME_ScannerChannel_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_ClassId_get")]
  public static extern string CHANNEL_NAME_ClassId_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_ClassFlags_get")]
  public static extern string CHANNEL_NAME_ClassFlags_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_ScanAngle_get")]
  public static extern string CHANNEL_NAME_ScanAngle_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_UserData_get")]
  public static extern string CHANNEL_NAME_UserData_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_SourceId_get")]
  public static extern string CHANNEL_NAME_SourceId_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_GPSTime_Week_get")]
  public static extern string CHANNEL_NAME_GPSTime_Week_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_GPSTime_Adjusted_get")]
  public static extern string CHANNEL_NAME_GPSTime_Adjusted_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_Red_get")]
  public static extern string CHANNEL_NAME_Red_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_Green_get")]
  public static extern string CHANNEL_NAME_Green_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_Blue_get")]
  public static extern string CHANNEL_NAME_Blue_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_NearInfrared_get")]
  public static extern string CHANNEL_NAME_NearInfrared_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_CHANNEL_NAME_Skip_get")]
  public static extern string CHANNEL_NAME_Skip_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_ChannelInfo")]
  public static extern void delete_ChannelInfo(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_ChannelInfo")]
  public static extern IntPtr new_ChannelInfo();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelInfo_init__SWIG_0")]
  public static extern void ChannelInfo_init__SWIG_0(HandleRef jarg1, string jarg2, int jarg3, int jarg4, double jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelInfo_init__SWIG_1")]
  public static extern void ChannelInfo_init__SWIG_1(HandleRef jarg1, string jarg2, int jarg3, int jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelInfo_init__SWIG_2")]
  public static extern void ChannelInfo_init__SWIG_2(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelInfo_getName")]
  public static extern string ChannelInfo_getName(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelInfo_getDataType")]
  public static extern int ChannelInfo_getDataType(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelInfo_getBits")]
  public static extern uint ChannelInfo_getBits(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelInfo_getQuantization")]
  public static extern double ChannelInfo_getQuantization(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelInfo_setQuantization")]
  public static extern void ChannelInfo_setQuantization(HandleRef jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelInfo_Equals")]
  public static extern bool ChannelInfo_Equals(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_PointInfo")]
  public static extern void delete_PointInfo(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_PointInfo")]
  public static extern IntPtr new_PointInfo();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_init__SWIG_0")]
  public static extern void PointInfo_init__SWIG_0(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_init__SWIG_1")]
  public static extern void PointInfo_init__SWIG_1(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_init__SWIG_2")]
  public static extern void PointInfo_init__SWIG_2(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_init__SWIG_3")]
  public static extern void PointInfo_init__SWIG_3(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, uint jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_init__SWIG_4")]
  public static extern void PointInfo_init__SWIG_4(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, uint jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_init__SWIG_5")]
  public static extern void PointInfo_init__SWIG_5(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, uint jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_init__SWIG_6")]
  public static extern void PointInfo_init__SWIG_6(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, uint jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_getNumChannels")]
  public static extern uint PointInfo_getNumChannels(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_getChannel__SWIG_0")]
  public static extern IntPtr PointInfo_getChannel__SWIG_0(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_hasChannel")]
  public static extern bool PointInfo_hasChannel(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_getChannel__SWIG_2")]
  public static extern IntPtr PointInfo_getChannel__SWIG_2(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_getChannelIndex")]
  public static extern uint PointInfo_getChannelIndex(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_hasValidXYZ")]
  public static extern bool PointInfo_hasValidXYZ(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointInfo_Equals")]
  public static extern bool PointInfo_Equals(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_ChannelData")]
  public static extern void delete_ChannelData(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_ChannelData")]
  public static extern IntPtr new_ChannelData();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_init")]
  public static extern void ChannelData_init(HandleRef jarg1, HandleRef jarg2, uint jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_getNumSamples")]
  public static extern uint ChannelData_getNumSamples(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_copy")]
  public static extern void ChannelData_copy(HandleRef jarg1, uint jarg2, HandleRef jarg3, uint jarg4, uint jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_convert__SWIG_0")]
  public static extern void ChannelData_convert__SWIG_0(HandleRef jarg1, uint jarg2, HandleRef jarg3, uint jarg4, uint jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_convert__SWIG_1")]
  public static extern void ChannelData_convert__SWIG_1(HandleRef jarg1, uint jarg2, HandleRef jarg3, uint jarg4, double jarg5, double jarg6, uint jarg7);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_resize")]
  public static extern void ChannelData_resize(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_setOffset")]
  public static extern void ChannelData_setOffset(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_setData")]
  public static extern void ChannelData_setData(HandleRef jarg1, HandleRef jarg2, bool jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_getValue")]
  public static extern double ChannelData_getValue(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_PointData")]
  public static extern void delete_PointData(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_PointData")]
  public static extern IntPtr new_PointData();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_init")]
  public static extern void PointData_init(HandleRef jarg1, HandleRef jarg2, uint jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_getNumChannels")]
  public static extern uint PointData_getNumChannels(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_getNumSamples")]
  public static extern uint PointData_getNumSamples(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_getChannel__SWIG_0")]
  public static extern IntPtr PointData_getChannel__SWIG_0(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_hasChannel")]
  public static extern bool PointData_hasChannel(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_getChannel__SWIG_2")]
  public static extern IntPtr PointData_getChannel__SWIG_2(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_copy")]
  public static extern void PointData_copy(HandleRef jarg1, uint jarg2, HandleRef jarg3, uint jarg4, uint jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_merge")]
  public static extern void PointData_merge(HandleRef jarg1, uint jarg2, HandleRef jarg3, uint jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_resize")]
  public static extern void PointData_resize(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointData_setOffset")]
  public static extern void PointData_setOffset(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Object_retain")]
  public static extern int Object_retain(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Object_release")]
  public static extern int Object_release(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_IO_open")]
  public static extern void IO_open(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_IO_close")]
  public static extern void IO_close(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_IO_pread")]
  public static extern uint IO_pread(HandleRef jarg1, long jarg2, HandleRef jarg3, uint jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_IO_pwrite")]
  public static extern uint IO_pwrite(HandleRef jarg1, long jarg2, HandleRef jarg3, uint jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_IO_size")]
  public static extern long IO_size(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_IO_truncate")]
  public static extern void IO_truncate(HandleRef jarg1, long jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_IO_unlink")]
  public static extern void IO_unlink(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_IO")]
  public static extern void delete_IO(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_FileIO_init__SWIG_0")]
  public static extern void FileIO_init__SWIG_0(HandleRef jarg1, [MarshalAs(UnmanagedType.LPWStr)]string jarg2, string jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_FileIO_init__SWIG_1")]
  public static extern void FileIO_init__SWIG_1(HandleRef jarg1, [MarshalAs(UnmanagedType.LPWStr)]string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_FileIO")]
  public static extern void delete_FileIO(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_FileIO")]
  public static extern IntPtr new_FileIO();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_METADATA_KEY_FileSourceID_get")]
  public static extern string METADATA_KEY_FileSourceID_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_METADATA_KEY_ProjectID_get")]
  public static extern string METADATA_KEY_ProjectID_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_METADATA_KEY_SystemID_get")]
  public static extern string METADATA_KEY_SystemID_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_METADATA_KEY_GeneratingSoftware_get")]
  public static extern string METADATA_KEY_GeneratingSoftware_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_METADATA_KEY_FileCreationDate_get")]
  public static extern string METADATA_KEY_FileCreationDate_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_METADATA_KEY_PointRecordsByReturnCount_get")]
  public static extern string METADATA_KEY_PointRecordsByReturnCount_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_METADATA_KEY_PreCompressionPointCount_get")]
  public static extern string METADATA_KEY_PreCompressionPointCount_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_METADATA_KEY_LASBBox_get")]
  public static extern string METADATA_KEY_LASBBox_get();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_Metadata")]
  public static extern void delete_Metadata(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Metadata")]
  public static extern IntPtr new_Metadata();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_getNumRecords")]
  public static extern uint Metadata_getNumRecords(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_has")]
  public static extern bool Metadata_has(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_getKeyIndex")]
  public static extern uint Metadata_getKeyIndex(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_getKey")]
  public static extern string Metadata_getKey(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_getDescription")]
  public static extern string Metadata_getDescription(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_getDataType")]
  public static extern int Metadata_getDataType(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_getValue")]
  public static extern IntPtr Metadata_getValue(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_getValueLength")]
  public static extern uint Metadata_getValueLength(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_add__SWIG_0")]
  public static extern void Metadata_add__SWIG_0(HandleRef jarg1, string jarg2, string jarg3, int jarg4, HandleRef jarg5, uint jarg6);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_add__SWIG_1")]
  public static extern void Metadata_add__SWIG_1(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_remove__SWIG_0")]
  public static extern void Metadata_remove__SWIG_0(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_remove__SWIG_1")]
  public static extern void Metadata_remove__SWIG_1(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_remove__SWIG_2")]
  public static extern void Metadata_remove__SWIG_2(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Metadata_sort")]
  public static extern void Metadata_sort(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_ProgressDelegate")]
  public static extern void delete_ProgressDelegate(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ProgressDelegate_reportProgress")]
  public static extern void ProgressDelegate_reportProgress(HandleRef jarg1, double jarg2, string jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ProgressDelegate_getCancelled")]
  public static extern bool ProgressDelegate_getCancelled(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ProgressDelegate_setTotal")]
  public static extern void ProgressDelegate_setTotal(HandleRef jarg1, double jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ProgressDelegate_updateCompleted")]
  public static extern void ProgressDelegate_updateCompleted(HandleRef jarg1, double jarg2, string jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ProgressDelegate_getProgress")]
  public static extern double ProgressDelegate_getProgress(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ProgressDelegate_warning")]
  public static extern void ProgressDelegate_warning(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ProgressDelegate_displayWarning")]
  public static extern void ProgressDelegate_displayWarning(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ProgressDelegate_displayWarningSwigExplicitProgressDelegate")]
  public static extern void ProgressDelegate_displayWarningSwigExplicitProgressDelegate(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_ProgressDelegate")]
  public static extern IntPtr new_ProgressDelegate();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ProgressDelegate_director_connect")]
  public static extern void ProgressDelegate_director_connect(HandleRef jarg1, ProgressDelegate.SwigDelegateProgressDelegate_0 delegate0, ProgressDelegate.SwigDelegateProgressDelegate_1 delegate1, ProgressDelegate.SwigDelegateProgressDelegate_2 delegate2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_PercentProgressDelegate")]
  public static extern IntPtr new_PercentProgressDelegate();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_PercentProgressDelegate")]
  public static extern void delete_PercentProgressDelegate(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PercentProgressDelegate_setCancelled")]
  public static extern void PercentProgressDelegate_setCancelled(HandleRef jarg1, bool jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointIterator_getNextPoints")]
  public static extern uint PointIterator_getNextPoints(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_PointIterator")]
  public static extern void delete_PointIterator(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getPointInfo")]
  public static extern IntPtr PointSource_getPointInfo(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getNumChannels")]
  public static extern uint PointSource_getNumChannels(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_hasChannel")]
  public static extern bool PointSource_hasChannel(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getChannel__SWIG_0")]
  public static extern IntPtr PointSource_getChannel__SWIG_0(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getChannel__SWIG_1")]
  public static extern IntPtr PointSource_getChannel__SWIG_1(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getNumPoints")]
  public static extern long PointSource_getNumPoints(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getWKT")]
  public static extern string PointSource_getWKT(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_loadMetadata")]
  public static extern void PointSource_loadMetadata(HandleRef jarg1, HandleRef jarg2, bool jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getBounds")]
  public static extern IntPtr PointSource_getBounds(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getScale")]
  public static extern IntPtr PointSource_getScale(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getOffset")]
  public static extern IntPtr PointSource_getOffset(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getNumClassIdNames")]
  public static extern uint PointSource_getNumClassIdNames(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getClassIdNames")]
  public static extern IntPtr PointSource_getClassIdNames(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_getTotalWork")]
  public static extern double PointSource_getTotalWork(HandleRef jarg1, HandleRef jarg2, double jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_createIterator")]
  public static extern IntPtr PointSource_createIterator(HandleRef jarg1, HandleRef jarg2, double jarg3, HandleRef jarg4, HandleRef jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_read")]
  public static extern uint PointSource_read(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, HandleRef jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_PointSource")]
  public static extern void delete_PointSource(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointReader_overrideWKT")]
  public static extern void PointReader_overrideWKT(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointReader_getFileFormatString")]
  public static extern string PointReader_getFileFormatString(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_PointReader")]
  public static extern void delete_PointReader(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointWriter_setMetadata")]
  public static extern void PointWriter_setMetadata(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointWriter_getMetadata")]
  public static extern IntPtr PointWriter_getMetadata(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointWriter_setQuantization")]
  public static extern void PointWriter_setQuantization(HandleRef jarg1, [In, MarshalAs(UnmanagedType.LPArray)]double[] jarg2, [In, MarshalAs(UnmanagedType.LPArray)]double[] jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointWriter_getScale")]
  public static extern IntPtr PointWriter_getScale(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointWriter_getOffset")]
  public static extern IntPtr PointWriter_getOffset(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointWriter_write")]
  public static extern long PointWriter_write(HandleRef jarg1, HandleRef jarg2, double jarg3, HandleRef jarg4, HandleRef jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointWriter_setChunckSize")]
  public static extern void PointWriter_setChunckSize(HandleRef jarg1, uint jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointWriter_supportedChannels")]
  public static extern bool PointWriter_supportedChannels(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_PointWriter")]
  public static extern void delete_PointWriter(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_SimplePointWriter_writeBegin")]
  public static extern void SimplePointWriter_writeBegin(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_SimplePointWriter_writePoints")]
  public static extern void SimplePointWriter_writePoints(HandleRef jarg1, HandleRef jarg2, uint jarg3, HandleRef jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_SimplePointWriter_writeEnd")]
  public static extern void SimplePointWriter_writeEnd(HandleRef jarg1, long jarg2, HandleRef jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_SimplePointWriter")]
  public static extern void delete_SimplePointWriter(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointReader_init__SWIG_0")]
  public static extern void TXTPointReader_init__SWIG_0(HandleRef jarg1, string jarg2, string jarg3, uint jarg4, bool jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointReader_init__SWIG_1")]
  public static extern void TXTPointReader_init__SWIG_1(HandleRef jarg1, HandleRef jarg2, string jarg3, uint jarg4, bool jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointReader_init__SWIG_2")]
  public static extern void TXTPointReader_init__SWIG_2(HandleRef jarg1, string jarg2, HandleRef jarg3, uint jarg4, bool jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointReader_init__SWIG_3")]
  public static extern void TXTPointReader_init__SWIG_3(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, uint jarg4, bool jarg5);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointReader_initBoundsAndNumPoints")]
  public static extern void TXTPointReader_initBoundsAndNumPoints(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointReader_parseFormat__SWIG_0")]
  public static extern void TXTPointReader_parseFormat__SWIG_0(string jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointReader_parseFormat__SWIG_1")]
  public static extern void TXTPointReader_parseFormat__SWIG_1(string jarg1, HandleRef jarg2, HandleRef jarg3);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointReader_parseQuantization")]
  public static extern void TXTPointReader_parseQuantization(string jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_TXTPointReader")]
  public static extern void delete_TXTPointReader(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_TXTPointReader")]
  public static extern IntPtr new_TXTPointReader();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointWriter_init__SWIG_0")]
  public static extern void TXTPointWriter_init__SWIG_0(HandleRef jarg1, HandleRef jarg2, string jarg3, string jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointWriter_init__SWIG_1")]
  public static extern void TXTPointWriter_init__SWIG_1(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, string jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointWriter_init__SWIG_2")]
  public static extern void TXTPointWriter_init__SWIG_2(HandleRef jarg1, HandleRef jarg2, string jarg3, HandleRef jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointWriter_init__SWIG_3")]
  public static extern void TXTPointWriter_init__SWIG_3(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, HandleRef jarg4);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_TXTPointWriter")]
  public static extern void delete_TXTPointWriter(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_TXTPointWriter")]
  public static extern IntPtr new_TXTPointWriter();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Version_getSDKMajorVersion")]
  public static extern int Version_getSDKMajorVersion();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Version_getSDKMinorVersion")]
  public static extern int Version_getSDKMinorVersion();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Version_getSDKVersionAge")]
  public static extern int Version_getSDKVersionAge();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Version_getSDKBuildNumber")]
  public static extern int Version_getSDKBuildNumber();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Version_getSDKVersionString")]
  public static extern string Version_getSDKVersionString();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_Version_getSDKBuildDate")]
  public static extern string Version_getSDKBuildDate();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_Version")]
  public static extern IntPtr new_Version();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_Version")]
  public static extern void delete_Version(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_MG4PointReader_init__SWIG_0")]
  public static extern void MG4PointReader_init__SWIG_0(HandleRef jarg1, string jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_MG4PointReader_init__SWIG_1")]
  public static extern void MG4PointReader_init__SWIG_1(HandleRef jarg1, HandleRef jarg2);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_delete_MG4PointReader")]
  public static extern void delete_MG4PointReader(HandleRef jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_new_MG4PointReader")]
  public static extern IntPtr new_MG4PointReader();

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_ChannelData_SWIGUpcast")]
  public static extern IntPtr ChannelData_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_IO_SWIGUpcast")]
  public static extern IntPtr IO_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_FileIO_SWIGUpcast")]
  public static extern IntPtr FileIO_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PercentProgressDelegate_SWIGUpcast")]
  public static extern IntPtr PercentProgressDelegate_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointIterator_SWIGUpcast")]
  public static extern IntPtr PointIterator_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointSource_SWIGUpcast")]
  public static extern IntPtr PointSource_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointReader_SWIGUpcast")]
  public static extern IntPtr PointReader_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_PointWriter_SWIGUpcast")]
  public static extern IntPtr PointWriter_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_SimplePointWriter_SWIGUpcast")]
  public static extern IntPtr SimplePointWriter_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointReader_SWIGUpcast")]
  public static extern IntPtr TXTPointReader_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_TXTPointWriter_SWIGUpcast")]
  public static extern IntPtr TXTPointWriter_SWIGUpcast(IntPtr jarg1);

  [DllImport("LizardTech.LidarDSDKp.dll", EntryPoint="CSharp_MG4PointReader_SWIGUpcast")]
  public static extern IntPtr MG4PointReader_SWIGUpcast(IntPtr jarg1);
}

}
