@Alexander.Rivilis wrote:
1) use AcDbCurve::getAcGeCurve method to get AcGeCurve3d
2) use AcGeCurve3d::getSamplePoints to get points for curve approximation
3) convert AcGePoint3dArray to AcGePoint2dArray
4) use is_point_in_curve(AcGePoint3d p, AcGePoint2dArray &pts, AcGeDoubleArray &blgs) method
If you are using a polygon build of sample points instead of "real curves" I would advice to use the "Winding number algorithm" and calculate subtended angles which is very easy and effective to implement for polygons.
To create an AcGeCurve from a polyline:
In case of an AcDbPolyline that consists of lines and arcs only you can construct an AcGeCompositeCurve2d that consists of AcGeCircArc2d and AcGeLine2d elements.
For an exact spline curve you can try this:
1) AcDbCurve::getSpline(AcDbSpline*& spline) const;
2) AcDbSpline::getNurbsData(int& degree, Adesk::Boolean& rational,
Adesk::Boolean& closed, Adesk::Boolean& periodic,
AcGePoint3dArray& controlPoints, AcGeDoubleArray& knots,
AcGeDoubleArray& weights, double& controlPtTol, double& knotTol
);
3) Convert AcGePoint3dArray controlPoints to AcGePointdArray cntrlPnts
4) construct a AcGeNurbCurve2d with
AcGeNurbCurve2d nurb(int degree,
const AcGeKnotVector& knots, const AcGePoint2dArray& cntrlPnts,
const AcGeDoubleArray& weights, Adesk::Boolean isPeriodic
);
5) Set open/closed/rational:
if (closed)
nurb.makeClosed();
else
nurb.makeOpen();
if (rational)
nurb.makeRational();
Thomas Brammer ● Software Developer ● imos AG ● LinkedIn ● 
If an answer solves your problem please [ACCEPT SOLUTION]. Otherwise explain why not.