Recently, support for the PAEPOS patch primitive has been added to path_ology.

A patchset is defined by:

<patchset id="teapot">
<patch>t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16</patch>
<patch>t4,t17,t18,t19,t8,t20,t21,t22,t12,t23,t24,t25,t16,t26,t27,t28</patch>
....
</patchset>
....
<point id="t1" x="1.4" y="0.0" z="2.4" />
<point id="t2" x="1.4" y="-0.784" z="2.4" />
<point id="t3" x="0.784" y="-1.4" z="2.4" />
....

Each patch is defined by the 16 vertices a to m in the diagram below. Only the four corner points are on the patch, the rest are control points over cubics in the two directions.

No SVG Support

Figure 11.1: Patch Definition

A patchset behaves much like a path and is rendered by drawing a path between the four corner points.

To get more detail on the patchset, it is possible to break each patch into four smaller patches by the transformation split_patch. It would be feasible to use the patch normals to render each patch differently. That addition has not been made so far. The example below is Newell's teapot and cup split twice and viewed from different positions.

No SVG Support

Figure 11.2: Newell's Teapot and Cup