// create a standard format path, coordinates are floats (VG_PATH_DATATYPE_F) path0 = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL); // append some data to path pathSegs[0] = VG_MOVE_TO_ABS; pathData[0] = -2.0f; pathData[1] = 1.0f; pathSegs[1] = VG_LINE_TO_ABS; pathData[2] = -4.0f; pathData[3] = 3.0f; pathSegs[2] = VG_HLINE_TO_ABS; pathData[4] = -7.0f; pathSegs[3] = VG_VLINE_TO_ABS; pathData[5] = 8.0f; pathSegs[4] = VG_QUAD_TO_ABS; pathData[6] = -4.0f; pathData[7] = 12.0f; pathData[8] = 2.0f; pathData[9] = 12.0f; pathSegs[5] = VG_CUBIC_TO_ABS; pathData[10] = 2.0f; pathData[11] = 8.0f; pathData[12] = 4.0f; pathData[13] = 6.0f; pathData[14] = 7.0f; pathData[15] = 6.0f; pathSegs[6] = VG_SQUAD_TO_ABS; pathData[16] = 10.0f; pathData[17] = 4.0f; pathSegs[7] = VG_SCUBIC_TO_ABS; pathData[18] = 7.0f; pathData[19] = 2.0f; pathData[20] = 7.0f; pathData[21] = 0.0f; // rx, ry, rot, x0, y0 pathSegs[8] = VG_LCWARC_TO_ABS; pathData[22] = 1.5f; pathData[23] = 3.0f; pathData[24] = 0.0f; pathData[25] = 4.0f; pathData[26] = 0.0f; pathSegs[9] = VG_LCCWARC_TO_ABS; pathData[27] = 2.1213f; pathData[28] = 3.5355f; pathData[29] = 135.0f; pathData[30] = 1.0f; pathData[31] = 3.0f; pathSegs[10] = VG_SCWARC_TO_ABS; pathData[32] = 2.0f; pathData[33] = 1.0f; pathData[34] = 0.0f; pathData[35] = 1.0f; pathData[36] = 1.0f; pathSegs[11] = VG_SCCWARC_TO_ABS; pathData[37] = 4.2426f; pathData[38] = 2.8284f; pathData[39] = 225.0f; pathData[40] = -5.0f; pathData[41] = -5.0f; pathSegs[12] = VG_CLOSE_PATH; vgAppendPathData(path0, 13, pathSegs, pathData); // modify VG_CUBIC_TO_ABS segment pathData[0] = 6.0f; pathData[1] = 12.0f; pathData[2] = 7.0f; pathData[3] = 8.0f; pathData[4] = 7.0f; pathData[5] = 6.0f; // modify VG_SQUAD_TO_ABS segment pathData[6] = 10.0f; pathData[7] = 4.0f; // modify VG_SCUBIC_TO_ABS segment pathData[8] = 13.0f; pathData[9] = 2.0f; pathData[10] = 7.0f; pathData[11] = 0.0f; // modify VG_LCWARC_TO_ABS segment pathData[12] = 1.5f; pathData[13] = 6.0f; pathData[14] = 0.0f; pathData[15] = 4.0f; pathData[16] = 0.0f; vgModifyPathCoords(path0, 5, 4, pathData); writePath(f, path0, 30, VG_TRUE, "Modified path evaluation"); // destroy paths vgDestroyPath(path0);