internal unsafe static extern int MilUtility_PathGeometryWiden( MIL_PEN_DATA *pPenData, double *pDashArray, MilMatrix3x2D* pMatrix, FillRule fillRule, byte* pPathData, UInt32 nSize, double rTolerance, bool fRelative, Delegate addFigureCallback, out FillRule widenedFillRule);
internal unsafe static extern int MilUtility_PathGeometryFlatten( MilMatrix3x2D* pMatrix, FillRule fillRule, byte* pPathData, UInt32 nSize, double rTolerance, bool fRelative, Delegate addFigureCallback, out FillRule resultFillRule);
internal unsafe static extern int MilUtility_PathGeometryBounds( MIL_PEN_DATA *pPenData, double *pDashArray, MilMatrix3x2D* pWorldMatrix, FillRule fillRule, byte* pPathData, UInt32 nSize, MilMatrix3x2D* pGeometryMatrix, double rTolerance, bool fRelative, bool fSkipHollows, MilRectD* pBounds);
internal unsafe static extern int MilUtility_PathGeometryCombine( MilMatrix3x2D* pMatrix, MilMatrix3x2D* pMatrix1, FillRule fillRule1, byte* pPathData1, UInt32 nSize1, MilMatrix3x2D* pMatrix2, FillRule fillRule2, byte* pPathData2, UInt32 nSize2, double rTolerance, bool fRelative, Delegate addFigureCallback, GeometryCombineMode combineMode, out FillRule resultFillRule);
internal unsafe static extern void MilUtility_ArcToBezier( Point ptStart, // The arc's start point Size rRadii, // The ellipse's X and Y radii double rRotation, // Rotation angle of the ellipse's x axis bool fLargeArc, // Choose the larger of the 2 arcs if TRUE SweepDirection fSweepUp, // Sweep the arc increasing the angle if TRUE Point ptEnd, // The arc's end point MilMatrix3x2D* pMatrix, // Transformation matrix Point* pPt, // An array receiving the Bezier points out int cPieces); // The number of output Bezier curves
internal static Matrix MilMatrix3x2DToMatrix(ref MilMatrix3x2D m) { return(new Matrix(m.S_11, m.S_12, m.S_21, m.S_22, m.DX, m.DY)); }
internal unsafe static extern int MilUtility_PathGeometryHitTestPathGeometry( MilMatrix3x2D *pMatrix1, FillRule fillRule1, byte *pPathData1, UInt32 nSize1, MilMatrix3x2D *pMatrix2, FillRule fillRule2, byte *pPathData2, UInt32 nSize2, double rTolerance, bool fRelative, IntersectionDetail* pDetail);
internal unsafe static extern int MilUtility_GeometryGetArea( FillRule fillRule, byte *pPathData, UInt32 nSize, MilMatrix3x2D *pMatrix, double rTolerance, bool fRelative, double* pArea);
internal unsafe static extern int MilUtility_PathGeometryHitTest( MilMatrix3x2D *pMatrix, MIL_PEN_DATA* pPenData, double* pDashArray, FillRule fillRule, byte *pPathData, UInt32 nSize, double rTolerance, bool fRelative, Point* pHitPoint, out bool pDoesContain);
internal unsafe static extern int MilUtility_PolygonHitTest( MilMatrix3x2D *pGeometryMatrix, MIL_PEN_DATA *pPenData, double *pDashArray, Point* pPoints, byte *pTypes, UInt32 cPoints, UInt32 cSegments, double rTolerance, bool fRelative, Point* pHitPoint, out bool pDoesContain);
internal unsafe static extern int MilUtility_PolygonBounds( MilMatrix3x2D *pWorldMatrix, MIL_PEN_DATA *pPenData, double *pDashArray, Point *pPoints, byte *pTypes, UInt32 pointCount, UInt32 segmentCount, MilMatrix3x2D *pGeometryMatrix, double rTolerance, bool fRelative, bool fSkipHollows, Rect *pBounds);
internal unsafe static extern int MilUtility_GetPointAtLengthFraction( MilMatrix3x2D *pMatrix, FillRule fillRule, byte *pPathData, UInt32 nSize, double rFraction, out Point pt, out Point vecTangent);
internal static Matrix MilMatrix3x2DToMatrix(ref MilMatrix3x2D m) { return new Matrix(m.S_11, m.S_12, m.S_21, m.S_22, m.DX, m.DY); }