Norman Vine writes:
> Curtis L. Olson writes:
> >
> >> I'll try testing with KBOS again but I was teleporting there
> >> as part of my regression testing because of its unique tile
> >> arrangement
> >
> >Try --airport-id=KBOS --heading=270
> >
> >> Yikes  good catch :-(
> >>
> >> Hmm..... hey this still works in my test bed :-)
> >
> >What I'm seeing *definitely* happens on the tile boundaries.  Part of
> >KBOS is good, but you cross the tile boundary and instantly everything
> >is 'wrong'.  It's reporting elevations that are 450' too high.
> 
> forcing the tile boundary crossing with --airport-id=KBOS --heading=270
> causes my fork to mis-behave too :-(

Well hey, reproducing the problem could be considered progress. :-)

> So this has got to be something endemic to how the airport scenery
> can be in different 'tiles'.   My guess is that inorder to make this new
> routine work with scenery that isn't 'strictly tiled' like this there will
> have
> to be something stuffed into the userdata part of the ssgBranch Node
> so that the graph walking functions know where to 'jump to' inorder to
> get the proper transform.
> 
> But that kindof sucks in that this means an extra test for every ssgBranch
> :-(
> 
> IMHO The 'right' way to fix this of course is to split the airport data into
> the tile structure so that 'all' surface data follows the same
> scheme.

Norman,

We need a line / geometry intersection routine that works with any
arbitrary valid ssg scene graph.

It's certainly fine to discuss how flightgear splits up the geometry,
but let's save that for another day and maybe for the terragear list.

I wonder if airports are a special case and if there is some error in
how you build up the transformation matricies as you walk down the
tree that is triggered just by this particular scenario?

Really, we need a routine that works with an arbitrary ssg scene
graph.  It's very concievable that someone could import scenery from
some other project with a completely different layout.  Also, we are
talking about non-vertical intesection lines when it comes to landing
gear, so a line could intersect 'outside' the current tile there.  I
was talking to someone else recently about a terrain collision warning
tool and in this case, we'd be projecting a line forward so there is a
high likelihood that the intersection point there would be outside the
'current' tile.

It's fine to flag special cases and optimize for them, but we need a
robust intersection routine that works for all cases.

> Well I really only 'decloaked' because there appeared to be considerable
> confusion as to how the scenery went together so I thought I could help
> by posting what I had gleaned of your magic over the years.
> However given the rukus this caused .....
> 
> FWIW If I were you I would seriously consider changing
> the way FGFS handles the airport data so that it is not a
> 'special case'
> 
> FWIW2 - I agonized a long time over forking the code < read years >
> so I would be surprised if my decision to go the other way could
> be made any quicker
> 
> apologies for the line noise

Norman, here is the view from my perspective: I am more than happy to
have you participate in this project and contribute code.  Your past
contributions have been robust and useful and valuable.  If you want
to fork your own private version and work on that, there's no rule
against that.

However, if you periodically de-cloak, submit half working code, then
re-cloak, either I have to spend a ton of time figuring out your code
and winding my way through your optimizations myself in order to
hopefully fix the bugs, or I simply can't accept the code.  'Almost'
working code just doesn't cut it.  It's one thing if you are a full
time participant and you are 'hot on the trail' and expect a fix real
soon.  Then perhaps we can tolerate a short lived bug.  But if we
never know if you'll ever reappear with a fix, then what am I supposed
to do?  I can't just go breaking stuff in the project.  Code that runs
faster isn't helpful if it doesn't produce the correct answer all the
time.  I really value your participation here, but when you are
straddling the fence like this it makes it really difficult for me to
know what to do.

The current geometry intersection code is expensive so a faster
routine would be *really* nice, but I have my own time limits and
working on this part of the code right now wasn't in my plans and is
now pushing everything else I am working on back a day or two or
three, maybe several more days (?) if we don't come up with a fix
quickly.

Again to summarize, we value your participation, and normally you
produce very robust code, but in this case since we never know when
you are lurking or not, it's difficult to accept broken code with no
promise of a fix ...

Norman posted a link to the code, so if someone else wants to take a
crack at figuring out what's wrong, feel free.  I'll be happy to share
with you what I've discovered so far.

It would be nice to have this code working robustly and integrated.

Best regards,

Curt.
-- 
Curtis Olson   IVLab / HumanFIRST Program       FlightGear Project
Twin Cities    [EMAIL PROTECTED]                  [EMAIL PROTECTED]
Minnesota      http://www.menet.umn.edu/~curt   http://www.flightgear.org

_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to