Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(297)

Issue 4449065: Gets rid of unnecessary logic in beam.cc. (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
13 years ago by MikeSol
Modified:
13 years ago
Reviewers:
mike, hanwenn
CC:
lilypond-devel_gnu.org
Visibility:
Public.

Description

Gets rid of unnecessary logic in beam.cc.

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1 line, -23 lines) Patch
M lily/beam.cc View 2 chunks +1 line, -23 lines 0 comments Download

Messages

Total messages: 5
MikeSol
If I understand it correctly, Han-Wen's original collision code in beam.cc was treating intervals as ...
13 years ago (2011-04-28 15:37:53 UTC) #1
mike_apollinemike.com
On Apr 28, 2011, at 11:37, mtsolo@gmail.com wrote: > Reviewers: , > > Message: > ...
13 years ago (2011-04-28 21:15:34 UTC) #2
hanwenn
On Thu, Apr 28, 2011 at 12:37 PM, <mtsolo@gmail.com> wrote: > Reviewers: , > > ...
13 years ago (2011-04-29 05:26:32 UTC) #3
mike_apollinemike.com
On Apr 28, 2011, at 10:26 PM, Han-Wen Nienhuys wrote: > On Thu, Apr 28, ...
13 years ago (2011-04-29 12:59:26 UTC) #4
hanwenn
13 years ago (2011-04-29 13:07:23 UTC) #5
On Fri, Apr 29, 2011 at 9:59 AM, mike@apollinemike.com
<mike@apollinemike.com> wrote:
> On Apr 28, 2011, at 10:26 PM, Han-Wen Nienhuys wrote:
>
>> On Thu, Apr 28, 2011 at 12:37 PM,  <mtsolo@gmail.com> wrote:
>>> Reviewers: ,
>>>
>>> Message:
>>> If I understand it correctly, Han-Wen's original collision code in
>>> beam.cc was treating intervals as if is_empty checked if they were
>>> uninitialized or invalid in some way, whereas in fact, is_empty gets rid
>>> of anything where left is greater than right.  However, the LEFT and
>>> RIGHT values of intervals in collision_free contain y values for the
>>> beam position, and thus, the left one will invariably be higher than the
>>> right one if the beam has a negative slope.  Thus, is_empty was (I
>>> think) ruling out any solution with a negative slope.
>>>
>>> I'm not sure if this is too drastic to address issue 1613 (there may
>>> need to be some error checking fit in), but I think that it more or less
>>> fixes the problem.
>>
>> Please read the code carefully to see what it does, rather than guessing:
>>
>>> -      Interval v =
>>> -        (!collision_free[DOWN].is_empty()) ?
>>> -        collision_free[DOWN] :
>>> -        collision_free[UP];
>>> -
>>> -      beam_left_y = point_in_interval (v, 2.0);
>>
>> these are not beam slopes.
>
> From my reading of the code, collision_free[DOWN] and collision_free[UP] give
tenable left and right y positions for a potential beam.  is_empty returns true
if the right entry of an interval is greater than the left entry.  It thus
rejects any collision_free[DOWN] or [UP] where the left entry is greater than
the right entry (or, in other words, it rejects anything where the left side is
higher than the right side (negative slope)).
>

the UP and DOWN are vertical.  This decides whether to go above or
below collisions.

the result goes into beam_left_y, so it only refers to left side of the beam.


-- 
Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b