TT curve editing

I find TT (quadratic) curve editing functionality is quite limited. Here’s the list of things I cannot do:

  • Add off-curve points
  • Add on-curve points on a curved segment
  • Select or drag TT curve segments
  • “Correct path direction” sets PS curve directions
  • “Open corner” doesn’t work when the neighbouring segments include curves
  • When I click on a on-curve point to break it, the curve rendering gets messed up

Of the above, I really want to have the ability to add off-curve points. I guess I can do it via scripting (I haven’t tried), but I would like to know if there is any attempts being made to improve it at the app level.

This is intentional. All paths need to be CCW. For paths that are only lines, it is not clear if it is PS or TT. So for TT export, I reverse all paths.

It is not really clear to me what should happen. Just adding a node will mess up the outline quite a bit. All existing off curve nodes of that segment need to be redistributed. It needs to do something like convert everything into Qubic, and then back into TrueType with one more point. That will change the shape, too.

The rest is on the list.

I may need to work from TTF fonts and interpolate a TTF instance. The only way I can match node counts is to delete the off-curve nodes. I do not have the answer to how you can add a node without changing the curve first, but I don’t mind redistributing the nodes (I can put the original in the background and match the shape later, the priority is MM compatibility). At least the UX I imagine is that you click an off-curve point and “add a node”, and that selected node will split into two.

selectedNode = Layer.selection[0]
if isinstance(selectedNode, GSNode) and selectedNode.type == OFFCURVE:
	path = selectedNode.parent
	index = selectedNode.index
	nextNode = path.nodes[index + 1]
	newNode = selectedNode.copy()
	p1 = selectedNode.position
	p2 = nextNode.position
	newNode.position = NSMakePoint((p1.x + p2.x) / 2.0, (p1.y + p2.y) / 2.0)
	path.nodes.insert(index + 1, newNode)
1 Like

Was there any more development on editing TT curves?

Not really. What do you miss most?