srecord noeq G22MeshMapping(G22Mesh mesh1, G22Mesh mesh2) { delegate Anchor, Curve to G22Mesh. // For both maps: keys are from mesh1, values are from mesh2 new BijectiveMap anchorMap; new BijectiveMap curveMap; // A mapping is complete iff all anchors and curves from both // meshes are covered. bool isComplete() { ret allEq(l(anchorMap), l(mesh1.anchors()), l(mesh2.anchors()) allEq(l(curveMap), l(mesh1.curves(), l(mesh2.curves())); } // A mapping is valid if the anchorMap and curveMap fit each other bool isCompatible() { for (curve1, curve2 : curveMap.forwardMap()) ret isCom for (anchorMap) } }