[Ohrrpgce] Plan for LineSlice

James Paige Bob at hamsterrepublic.com
Thu May 25 20:03:08 PDT 2017


Okay, so I'll  start by  fixing the behavior of RectangleSlice for negative
values.

I'll find your plan for anchor points and fill sizes on negative slice
sizes, and implement it.

Then I'll add LineSlice. I'll still include a toggle for which corner pair
to use, but I'll make sure negative sizes are consistent.

I'll make a zero size line be a point.

I like ellipses as endpoints to lines, and I agree about it being okay for
lines to overflow the slice bounds a little like box borders do, but I
won't attempt lines wider than 1 pixel until I have a better understanding
of how that should work.

Not sure if all of this will happen before or after A* pathfinding ;)

---
James

On Thu, May 25, 2017 at 1:08 PM, Ralph Versteegen <teeemcee at gmail.com>
wrote:

>
>
> On 25 May 2017 at 06:15, James Paige <Bob at hamsterrepublic.com> wrote:
>
>> Here I am going to talk out LineSlice before I actually start
>> implementing it
>>
>> I think I have a pretty realistic chance of having time to do it sometime
>> soon.
>>
>
>> I'm going to go with a simple slice.
>>
>> It will draw a line from corner to corner
>>
>> I figure I can have a toggle for whether it draws from 0,0 <->
>> width,height or 0, height <-> width,0
>>
>> I plan to also test it will negative width and height, although I think
>> we have an unresolved issue of inside-out-slices sizes being off-by-one,
>> and we have to decided how to resolve that.
>>
>
> We should fix that, no one is going to be relying on the exact
> pixel-perfect size and position of negative rects*
> The way I think about this is limit behaviour: as you decrease the width
> of a rect slice from 10 to 0 to -10, it should be consistent, without
> jumping by a pixel at the zero point.
>
> * Well, actually, Adam did complain about negative-size rects in a
> mailinglist post called "Version difference quirks" 4 years ago, but I
> don't understand what the problem was. Maybe I should look at old copy of
> Phantom Tactics to see.
>
> (Aside: he also complained about key:Filtered alt problems, and I've
> changed my mind since what I wrote in that thread, and now think that it
> would be better to add some backcompat behaviour for old games, since PT is
> probably not the only one broken by it).
>
> Also I'm pretty confident in the plan I wrote on SS to allow negative
> width slices by changing the way that anchor points and fillparent are
> affected by negative sizes. I think you should be allowed to create
> negative size line slices in the editor, since it's a lot more natural than
> having to switch the start/end corners.
> It may not be necessary to allow inputting negative sizes for other
> slices... but if we've nailed down what the behaviour of negative size
> slices is, then we also don't need to worry about allowing it.
>
>
>> I would like to be able to do horizontal lines without having to care if
>> height is 1 or 0, and vertical lines without caring if width is 1 or 0.
>>
>> Should there be a toggle for making zero-width / zero height lineslices
>> invisible?
>>
>
> That's a good point. Zero-width/height rects are invisible, but line
> slices should definitely be visible in that case. We don't need a toggle
> for that, I see no use for it. I'm not certain about it, but 0x0 line
> slices could also be drawn as a point.
>
>
>>
>> I will definitely be implementing convenience functions to set a line's
>> position relative to screen points on other slices.
>>
>> I also really like the idea of being able to adjust line thickness, but I
>> don't know the best way to go about that, especially regarding corners.
>>
>
> I don't know what the algorithm is to draw sharp corners, (though I think
> opengl has builtin support for it?) but anyway it would require to know
> which other line slice we're attached to.
>
> The simpler alternative is to add an option to draw rounded line ends,
> using ellipses. Giz created a screensaver which drew something like 10000
> tiny ellipses to create a less-blocky grid, and it wasn't that slow.
>
> But all of those things can be added later.
>
> Note a thickness 2 or greater line will be drawn partially outside the
> boundaries of the slice, but that's fine; rect slcies with borders already
> do that (and width/height 0 line slices also)
>
>
>>
>> Maybe we need some kind of function allmodex function to paint a thick
>> line... maybe even a styled line using a 1xwidth sprite?
>>
>
> A dedicated function would be good for efficiency, but it would be fine to
> just draw a bunch of lines next to each other to achieve the same effect.
>
> However, the tricky part is calculating the start/end position of each
> line. They should be along a line perpendicular to the center of the line.
> Like so:
>
>   \\\
> \\\\\\
>  \\\\\\
>   \\\\\\
>    \\\\\\
>
> Oh, also if the end points are staggered like that, then the lines
> potentially won't sit perfectly next to each other, you would have to draw
> some extra lines to prevent gaps from opening. I can see exactly how to do
> that.
>
> I hadn't thought about styled lines, but that's a neat idea. On the other
> hand, not terribly much styling is possible with a 1*x sprite. But sticking
> to 1*x has the large advantage that there would be no change in appearance
> when the angle changes from 44 to 46. But if in future we switch to
> hardware acceleration the way it appears could change.
>
>>
>> I am not worried about thick lines or styled lines in the first
>> implementation, I just want to think about it enough to avoid any blunders
>> that would make adding those later more difficult.
>>
>
> This is all fine.
>
>
>>
>> _______________________________________________
>> Ohrrpgce mailing list
>> ohrrpgce at lists.motherhamster.org
>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>
>>
>
> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20170525/8781697a/attachment.htm>


More information about the Ohrrpgce mailing list