If anybody wants to start early testing, I attached the dll C::B C++ code to this post. Licence is GPLv3.

If you'd prefer a more permissive licence, let me know. Any feedback is appreciated, just keep in mind some minor fixes are still needed.

Now the coder I rented plans on debugging it using Visual Studio because he said it's easier to make a debugging project in it.

I was meaning to create another project for testing (inside the same solution), but I couldn't find a way to do it in CodeBlocks.

Here is a brief description of the content. There should be 2 versions of the same function, one for use in C++ code and a dumber one that's GM compatible.

1) A function that, given a 3d segment and 3d planar convex

_cpp version

- if there is an intersection, returns

-- the coordinates of the intersecting points

-- distance=0

- if there isn't, returns

-- the coordinates of the closest points

-- the distance between the closest points

_gm version

- if there is an intersection, returns

-- the distance from the first point of the segment to the intersection point

- if there isn't, returns

-- the distance from the first point of the segment to the point of the segment that is closest to the convex polygon, as a negative value

2) a function that, given 2 segments

_cpp version

- if there is an intersection, returns

-- the coordinates of the intersecting points

-- distance=0

- if there isn't, returns

-- the coordinates of the closest points

-- the distance between the closest points

_gm version

- if there is an intersection, returns

-- the distance from the first point of the segment to the intersection point

- if there isn't, returns

-- the distance from the first point of the first segment to closest point of the second segment, as a negative value

3) a function that, given 2 points returns

- the distance between them

4) a function that, given a 3d point and a 3d planar convex, returns

- if the point is above the convex or part of it, the distance from the convex

- if the point is under the convex or not part of it, the distance from the convex as a negative value

5) a function that, given a 3d point and a 3d planar convex, returns

_gm version

- the x-y direction (360 degrees) to take to get away from the convex as fast as possible if you are on the point

_cpp version

- a vector pointing the direction to get away from the convex as fast as possible if you are on the point

6) a function that, given a 3d triangle and a 3d axis-aligned rectangular prism, returns

- 1, if the triangle is inside the prism or touches it or contains it

- 0, if the triangle is completely outside the prism

7) a function that, given a 3d convex and the x-y coordinates of one of its points, returns

- the the z value of that point