Jon S. Berndt wrote:
 > Given a *NON-FLAT* polygon, how do we place the aircraft on it
 > properly so the gear doesn't sink in on one side and sit above it on
 > the other? The answer is that you give each gear the blasted elevation
 > at that gear. How can I make it any plainer?

Jon, I'm running out of ways to explain this; and in all seriousness,
I mean no disrespect here.  But that statement is simply false.  The
elevation at the gear does not unambiguously define a contact point
for the gear.  It just doesn't.

It works only if you make one of two assumptions: (1) the gear
compression vector is along the ground's "up" vector, or (2) the
ground is locally flat.

Here's another ASCII diagram (please don't mock this one) to try to
explain:

        +
        .\
        . \   <--gear strut
        .  \
elev   .  (0)
ation->.   +----------------
        .  /
        . /   ground
        ./
        /

Here, the elevation says that the gear is clear of the ground.  But
that is wrong!  The gear strut points forward, and the gear should, in
fact, be sitting nicely on the edge as shown.  Note that you can come
up with an equivalent diagram if you find the elevation of the point
of maximum compression, or the midpont, or any point.  If the gear
doesn't compress vertically, then *no* use of elevation (other than an
infinite number of them to probe all possibilities) is going to get
you what you want.

My way, which computes an intersection between the gear base and the
maximum extension point below the ground, works fine here.  It is the
correct algorithm for this problem.  And it's no more difficult.  I'm
having a very hard time understanding the resistance here.

 > Either you are missing my point, or I am missing yours.

Both, it seems.  Let's try this: You want to handle (1) aircraft on
non-level-but-flat ground so that they tilt and (2) non-flat areas
where two polygons with different normals meet.  [You agree with me
this far, right?  Have I misrepresented?]

OK, now my point:

In order to handle case #2, you are willing to make the assumption
that gear compression is always along the up vector from the ground
and simply use the elevation at that point.  [Are we still on the same
page?  Do you not see why this must be?]

So, your proposed solution can handle the case where the ground is
non-level, but flat, or the case where the ground is non-flat, but
level, but it fails in the case where the ground is both non-flat and
non-level.

I argue that the only interesting non-flat or non-level cases happen
together.  This is true for ski jumps.  It is true at catalina.  It is
true at the edge of a cliff.

I further argue that it requires no more work on the part of the FDM
or the scenery code to do this the Right Way: by computing an
intersection point along the gear's axis of compression.  I even
posted a putative interface for such code, which you and Tony, for no
reason that I can for the life of me figure out, hate with a
passion. :)

Try turning it around.  Rather than justify why your way is Good
Enough, tell me why my way (which, I think we all agree, is
technically more correct) is harder?  Or more expensive?  Or uglier?
Or... what?

Stated as simply as I can possibly say it: The simplifications that
you want to make are (1) unnecessary and (2) incorrect.  There are
better ways of doing ground intersection code.

Andy

-- 
Andrew J. Ross                NextBus Information Systems
Senior Software Engineer      Emeryville, CA
[EMAIL PROTECTED]              http://www.nextbus.com
"Men go crazy in conflagrations.  They only get better one by one."
  - Sting (misquoted)


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

Reply via email to