bulia byak wrote:
>>Cusp nodes will never have control handles, even when they're adjacent to smooth nodes.
>is not possible because in SVG, each path fragment is either a line or
>a curve. If it's a line, none of its ends have control handles,
Well, implementation is something about which I can not really express
an informed suggestion. All I can say is that somehow other programs
manage, so I'm sure you'll figure out a way, too. But just because I'm
curious, why can't all lines drawn be two points be "curves," just
straight ones that look like straight lines? Wouldn't that open a lot of
doors for you on the implementation side, when it comes to nodes?
>A similar problem is in Selector where sometimes you start dragging a
>wrong object instead of the one you had selected. To fix it there, I
>added Alt+drag which always drags the selected object no matter where
>you start the drag. I think a similar approach can be used here: make
>Alt+drag always drag the selected node(s) no matter where you start
>the drag, or whether some handles are in the way. Will that work for
Hmmmm... I don't know. I guess it depends on what develops with the rest
of the node editing capabilities, per our other discussion.
>Or alternatively, I can make nodes always selectable and draggable in
>preference to handles, but also provide a way to drag _out_ a handle
>if it's retracted (e.g. by dragging with Shift, similar to un-merging
>merged gradient handles with Shift). Will this be better?
This is a good suggestion, and at the moment I like this better. I think
whatever it is it should be consistent with what happens with extended
capabilities (if any) the Pen tool gets, so they're as similar as possible.
>>By the way, I'm struggling with terminology. I take "cusp" to mean a
>>node that doesn't have control handles and does not influence the
>>direction of the line, as opposed to a "corner" node, which has control
>>handles that can move in independent directions, and "smooth" which has
>>control handles in the same plane but are different lengths, and
>>"symmetric" which has control handles in the same plane and with the
>>same length. Is this correct?
>No, a cusp is a node whose handles can rotate independently. It's
>still cusp if any of its handles are retracted to the node itself. I
>think we don't have a name for a node that sits between two straight
>line segments and therefore has no handles at all; it may be called
>"corner". However we don't want this to be a separate node type that
>you can turn a node into, because (again, for reasons above) this
>would affect the other ends of its segments too, which is often not
>desirable. My latest change was to treat the "corner" node the same as
>cusp when converting type, i.e. add handles to it when making it
>smooth. Now you understand that this necessitated converting the
>neighboring "corner" nodes to cusps with retracted handles.
>So, I think that if we will be able to drag a node with retracted
>handles, but ALSO some way to drag out a retracted handle (with
>Shift), then just regular cusp nodes with retracted handles can for
>all intents and purposes be undistinguishable from "corner", and we
>won't need "corner" as a separate type. Dragging out a handle with
>Shift can be made to work even for true corner nodes - it will just
>have to convert the adjacent fragment to curve first. I think this
>will be quite convenient, will keep the list of node types from
>unneeded growth, and will mostly eliminate the need to use the clumsy
>"convert segment to line/curve" buttons.
Maybe I'm just being dense, but I still don't understand, or maybe I do
and I am just unsure. So, there are now 4 types of nodes?
Corner: no control handles (might go away and be merged with "cusp", I
was calling these "straight" on IRC)
Cusp: control handles move independently
Smooth: control handles have independent lengths but the same vector
Symmetric: control handles have same length and vector