 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
I have used Chris Bartlett's rope_sys.inc object collection for several years,
and just discovered a subtle bug in the code.
I usually create ropes using the Rope_Array related macros, and then call
Rope_ArrayToSpline or Rope_ArrayToRope. I was playing with the Rope_BreakSpline
macro so I could have a linear section of the rope followed by a natural spline
section.
The first thing I realized was that calling Rope_BreakSpline() sets the spline
type for the segment of the rope following that call. You can get around this
to set the spline type of the first segment by calling Rope_BreakSpline
immediately after calling the first Rope_AddPoint()
In my test, I just did that:
Rope_AddPoint(MyPoint1)
Rope_BreakSpline("linear_spline")
Rope_AddPoint(MyPoint2)
Rope_AddPoint(MyPoint3)
Rope_ArrayToRope("")
However, the resulting rope used a natural spline. I looked at the code for
Rope_ArrayToRope and discovered that there is a check for the number of spline
breaks found to be < 2. If so, it calls Rope_ArrayToSpline("") which uses the
default natural spline, and then calls Rope() on the resulting single spline,
completely ignoring my first Rope_BreakSpline("linear_spline")
I edited my code to make the check < 1, forcing it to look at that first
Rope_BreakSpline and create a spline using that spline type and now it works.
If I had actually added some additional points and called Rope_BreakSpline() a
second time, the code would have worked as written.
I don't know if this code is being maintained in GitHub or if the library comes
back alive if there is a way to patch it. It's not a huge deal, it just always
bothered me that I couldn't use Rope_ArrayToRope if I wanted anything other than
a natural spline.
-- Chris R.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
hi,
"Chris R" <car### [at] comcast net> wrote:
> I have used Chris Bartlett's rope_sys.inc object collection for several years,
> and just discovered a subtle bug in the code.
> ...
> I don't know if this code is being maintained in GitHub or if the library comes
> back alive if there is a way to patch it.
no idea re "github". the object collection work has been sidelined this year,
due to (quoting Churchill) "events dear boy, events". a (corrected) version 1.1
(?) could be one of the first to add when it (OC) gets finished. (tia :-))
regards, jr.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 2025-11-06 16:54 (-4), Chris R wrote:
>
> I don't know if this code is being maintained in GitHub or if the library comes
> back alive if there is a way to patch it. It's not a huge deal, it just always
> bothered me that I couldn't use Rope_ArrayToRope if I wanted anything other than
> a natural spline.
> -- Chris R.
The only GitHub incarnation I know of is at Le Forgeron's mirror of the
Object Collection, and no maintenance is done there other than
occasional scanning of lib.povray.org for updates.
The Object Collection was intended for libraries to be patched. The
LGPL license allows you to make changes so long as you document the
changes with your name and date. You can post your changes here or on
your own GitHub account, and when the Object Collection returns online,
upload it there as a modification to the existing contribution.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |