I have a C++ DLL that I need to call from C# code. I also need to make some changes to the C++ code to change the parameters of some methods and add some events. The source code for the DLL can be found here: [url removed, login to view]
The new DLL needs to have the following features:
1. Must be usable from C# code to create a CSF object and call its methods and parameters.
2. The setPointCloud(double *points, int rows) method needs to be changed to accept a pointer to a buffer of CloudPoint structs instead of doubles.
The CloudPoint struct is described as follows:
[StructLayout([url removed, login to view])]
public struct CloudPoint
public float X;
public float Y;
public float Z;
public int Color;
public CloudPoint(float x, float y, float z, int color)
this.X = x;
this.Y = y;
this.Z = z;
[url removed, login to view] = color;
3. The CSF object must raise an event for a progress call back that will be used after calling the setPointCloud method to report the progress of loading in the CloudPoint structs and after calling the do_filtering method to report the progress of the filtering calculation.
4. The use of the wrapper DLL must have about the same performance and memory usage as the native C++ DLL.