News:

Due to heavy spamming attempts on this forum, automatic registration has been disabled. We will approve registration requests as quickly as possible (unless you're a spammer of course :) )

Main Menu

Flex control points

Started by David K Smith, June 23, 2010, 12:45:08 PM

Previous topic - Next topic

David K Smith

Yes, I'm back with more observations on flex control points. Not the same ones as before, about control points that remain fixed to the workspace or move with the track end; that topic still stands.

Now that I'm working on much larger layouts (I do track planning on the side for others), I find it just a tad frustrating trying to deal with the control points at the ends of flex. When two pieces of flex are joined, you wind up with four control points all mashed together. Unless you zoom way in to try and determine which one you're working with, it's quite difficult to know which one you've got until a) the wrong piece of flex moves, or b) the whole track plan moves, in which case you didn't get any.

At normal-sized views of room-sized layouts, it becomes a real pain trying to get the control point you want, especially since the highlighting is so subtle that it's almost invisible, and zooming in and out and in and out is a time-sucker. I really think there has to be a better way of highlighting the control points.

Another little wrinkle is when the ends of disconnected flex tracks overlap. The control points on the piece underneath cannot be grabbed, which means moving the one on top aside to get to the one underneath. Sometimes, though, I'd rather not move the one on top as I'd just gone to some trouble to get its geometry just right.

Bottom line: Are there tricks I need to learn to work around these issues, or are there things that can be done to the application to improve control point selection and handling? As I said, zooming in solves 60% of the trouble, but that's a lot of extra clicking...

Anyone care to jump into a discussion on what might be a viable solution?

I'd like to start with a couple of suggestions. The current "green glow" of highlighted track is simply too subtle to reliably detect, especially if it happens to be a greenish-colored track section. My suggestion would be to do a color inverse instead. If the section is blue, for instance, highlight it in yellow; etc. I'd even go so far as to have the whole section get noticeably fatter when it's selected. One way or another, there has to be better visual clues for track selection.

I'd also highlight the vector line that runs from the end to the flex control point in some electric neon color, or triple its line weight, or make it flicker, or do something so that it really stands out.

As for the two control points at the track end (location control and connector control), perhaps instead of a cross-hair and a cross-hair with little triangles, why not make the location control point a large-ish triangle, or some shape that is easily distinguished from the connector symbol. Making it double in size, in addition to changing its color, would help reinforce the fact that it's selected.

The one problem remaining is that the two end control points are still physically on top of one another. Maybe this requires re-thinking how they are selected. Perhaps the track connector can only be selected with a right-click (since it's not a control point from the standpoint of being moved around, maybe it doesn't need to be selectable with a left-click).

Anyway, I thought this was worth some discussion.

David

Hi David,

Thanks for starting this discussion. Indeed we have been experimenting with various ways to highlight etc, while trying to keep clear the difference between 'selected' and 'hovered'.

Indeed, the green glow is difficult to see sometimes, depending on both the track color itself and the background color(s). Any suggestions to improve are very welcome. We've already tested a dozen ways, but each one seems to have its disadvantages in certain situations. For instance, inverting the color is only clear at the moment you select/deselect, but not afterwards. You don't know if that orange color was the original color or the inverted color.

By the way, zooming is quicker with CTRL+Mousewheel. It zooms in on where the mouse cursor is.

David.
David Hoogvorst. Founder and Owner of DRail Software. Creator of AnyRail.

Jeff

I have to agree about the glow- it's simply not pronounced enough to be seen (at all, if you're zoomed out far enough). Perhaps allowing the user to change the color at will and making it a little bigger area around the selected piece(s) would do. Put the choice on the Settings tab.

As for control points, I'm afraid I side with David K. I was in on the setup as it is now and I felt I had to give it a try to be fair. Now I can say it works, but it could stand improvement. Instead of the current triangles on each side, I think that a simpler arrangement can be made. I've tried to use Lines & Surfaces to give an example of what I propose. The underlying code should be very similar to what is in place now, so doing it wouldn't be much work.
Later,                                                AnyRail Fanatic
Jeff                      and Unofficial Guy Who Knows Almost Everything About It

David K Smith

One quick observation regarding highlight color. I agree that color inversion can create its own problems. Perhaps... have a color used for highlighting that is reserved for that purpose only; that is, it is not available for use in any other function--section color, surface color, etc.

In addition to the color change, perhaps it would help to do away with surface features of that object while it is highlighted, and have a single-pixel width black line around it. That is, a section of track no longer has the inner "rail" lines rendered, and all sleepers (ties) disappear as well, so that the object stands out more.

To distinguish between hovering and selection, perhaps the selected object could be given a heavier outline surrounding the object.

My inclination is to use pure yellow as the highlight color, with a 1-pixel black border when hovering over a track object, and a 2-pixel (or possibly 3-pixel, depending on how it looks in tests) for a selected track object. The yellow and black combination tends to catch the eye better than most. This would then mean eliminating the option of applying a range of yellow colors to track selections or surfaces.

For what it's worth, of course. More to come...

David K Smith

A couple of random observations on control points and track end symbols.

The current track end symbol of a cross-hair and a half-triangle is not that bad; it suggests the symmetrical way that track connectors function.

That said, I'm not sure this needs to be reflected in a symbolic way in the application. My intuition leans toward using a single solid triangle, almost like an arrow point (but more blunt) as the track end connection symbol. When tracks are joined, the triangles disappear and change to the existing circle-through-line (for solid connection) and square-through-line (for isolated connection), which I happen to like as-is

The control point at the end of a piece of flex can then be a triangle facing the opposite direction from the connection symbol. This does away with ambiguity (which cross-hair am I grabbing?), and provides sufficient separation of the two handles that it will be far easier to select the right one.

As for the inner flex control point, I think that ought to become some small solid shape, as the cross-hairs can become so fine that they get lost. Perhaps they could be either a triangle or a square. At any rate, each of the clickable symbols should obviously change color when they are clicked and dragged. The current behavior of switching to purple works for me, and if the shapes are solid, they'll be even more obvious and thus easier to use.

More later...

David K Smith

OK, so I tossed together a little example, something visual to help the discussion about control points (I'll do another one for selecting track sections in a bit).



1. Current appearance of a piece of flex track, with no hovering or selection.
2. Proposed appearance of a piece of flex track, with no hovering or selection.
3. Hovering over the end control point for the flex (clicking does not change its appearance, just moves it).
4. Hovering over the vector control for the flex (clicking does not change its appearance, just moves it).
5. Hovering over the flex track connector.
6. Clicking the flex track connector.

David K Smith

And now here's a little something visual about track selection.



The upper group is the way the app behaves now. The lower group is just a suggestion for improving things.

1. No hovering or selection.
2. Hovering over an object.
3. A selected object.
4. Hovering over a selected object.

Note that I'm not convinced that it's necessary to change the visuals when hovering over a selected object, so #4 is optional in my book, or it could be handled a different way than presented here. This is all just for the sake of discussion.

Jeff

I think my suggestion is simpler... :)

Besides which, what is the purpose of having the double pyramids at the end of every piece of track? I don't see the utility of the inward-pointing one. Just my opinion, again.
Later,                                                AnyRail Fanatic
Jeff                      and Unofficial Guy Who Knows Almost Everything About It

David K Smith

#8
Quote from: Jeff on June 24, 2010, 06:34:45 AM
I think my suggestion is simpler... :)

Besides which, what is the purpose of having the double pyramids at the end of every piece of track? I don't see the utility of the inward-pointing one. Just my opinion, again.

Sorry for being dense, but I couldn't quite determine what exactly your suggestion was. At any rate, currently you've got two clickable items at the end of every flex track: the track connector, and the position control.



The purple thingy is the track connector. The black cross-hair is the control point. These two distinct controls are placed right on top of one another, which (for me) is one of the bigger sources of frustration when working with flex.

My suggestion is to split them apart in a way that makes selection unambiguous. The inward-facing pyramid serves the same function as the cross-hair at the end of the vector line. The other pyramid is track connector.



Now, if you want to roll all functionality into one icon (position control point and track connector), how do you select what you want to do with the control point? Click and drag to move it, right-click to set the connector parameters? The problem then becomes one of detecting whether you're just clicking and dragging, or clicking to select. It means that every time you click and drag to shape the track, the connector always gets selected. This could get a little confusing.

But assuming this wrinkle could be resolved, then things might look like this:



The first is the unselected state; the second is when the track is being re-shaped (the control point is clicked and dragged), and the third is when the connector is selected. And when the track is connected, the diamond just disappears altogether.

So, following along with this scenario, working with the track might look something like this--



1. a piece of flex
2. a piece of sectional track
3. flex and sectional track joined
4. flex vector control point being adjusted

(BTW, notice I made the straight line in the track connection symbol just a little beefier...)

David

Don't worry, I'm listening here.
Let's see what comes out of the discussion.

As said before, we've tried many schemes, and each has its problems and advantages.

David.
David Hoogvorst. Founder and Owner of DRail Software. Creator of AnyRail.

David K Smith

Quote from: David on June 24, 2010, 03:21:35 PM
Don't worry, I'm listening here.
Let's see what comes out of the discussion.

As said before, we've tried many schemes, and each has its problems and advantages.

David.

That's good (that you're tuned in). Not to harp, but this is the issue that vexes me the most--



More often than not, when I want to adjust the position of the end of the flex, I wind up grabbing the track itself and moving the entire layout. I see two ways to improve this. First, make the clickable range for the flex control much larger, and make the visual change when hovering--as well as the distinction of hovering over the track or the control point--much more obvious; then, perhaps make the track connector a right-click-only control, so that it cannot be grabbed by mistake.

I don't want to sound as if I don't like or appreciate AnyRail or the effort put into its development. It is a great product; it's the only one I've kept--all of the others I've tried, I've ditched. That should say a lot. I'm hopeful that I can help improve its usability. (I write software for a living, and my particular specialty is making software more user-friendly.)

David

Hi David,

Be sure it's very much appreciated! We really try to make the software right. And even if this seems too much of a detail to some, I know that all annoyances are of importance and should be removed. However, it's often difficult to get it right for every situation while keeping things consistent and self-explanatory; there has gone a lot of thought into it already.

What we've done before is simply creating a few varieties that are tried out and discussed by a select group of testers. That really helps too.

David.

David Hoogvorst. Founder and Owner of DRail Software. Creator of AnyRail.

David K Smith

#12
I realize I'm stating things that people already know; it just helps make them clearer to myself as I analyze the problem.

Here we have the current situation:



1. nothing selected.
2. hovering over track.
3. hovering over end control point.
4. hovering over connector.

The big problem: the last three states all occur with the cursor moving only a couple of pixels. This is way too tight for most people to make selections reliably.

I could envision addressing it in the following manner. First, I see no circumstances under which it makes sense to be able to select the track itself to within a few pixels of the end. There should always be enough track that the selection can be made further away from the end.

In addition, I see a definite need to enlarge the end symbol and, in particular, to create a clickable region surrounding it in order to reliably grab the shaping node. In the following illustration, I've shown this with a purple "D" shape; clicking anywhere within this region will select the node, and should result in obvious, unambiguous visual feedback that the selection was successful.



As to selecting the connector, I would suggest using another D-shaped region, mirroring the one for the shaping node. Again, this relies on using a larger end symbol.

However... to me, using the one symbol for the two functions creates ambiguity; this is why I'd initially suggested splitting it into two parts (which Jeff had questioned)--the two pyramids helps the user differentiate both the purpose of the symbol and which one was clicked.

Future-Digital

David K. Smith:

I would like to send thanks for the amount of clear, well thought out work you have done on this thread. Those diagrams take a lot of work and that only comes after the thought process.

Whether or not it comes into being or not, it shows a LOT of work. I, for one, appreciate it.

Thank you.

Bill Coxe
"I find television very educating. Every time somebody turns on the set, I go into the other room and read a book." - Groucho Marx

Jeff

#14
@David K.-

My suggestion is in the posted file. As I see it, the current system is fine, but I would replace the 'flag' triangle AND the crosshairs with a control point circle at the end of a short line. The track end could be moved by clikc-and-dragging the control point. When the track is finally connected to another, the standard 'track connected' circle should appear in the center of the joining point.
Later,                                                AnyRail Fanatic
Jeff                      and Unofficial Guy Who Knows Almost Everything About It