Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-26 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Mon, Feb 25, 2002 at 05:07:16PM -0800, Andy Ross wrote:

>  > No, it's not. Imagine what happens when one thread is reading it
>  > while another thread is writing to it. :-)

> You missed my point.  First, the Vector class *is* threadsafe; check
> all the methods, they're synchronized.  There is no way, in Java, to
> corrupt the state of a Vector object by modifying it in multiple
> threads.

Okay okay, I'll admit that I'm not 100% (con)current on Java.

> My point was that this buys you *nothing*.  You can still write all
> the race conditions you want by assuming that the object won't be
> modified from another thread.  See my post about the nuclear bomb
> safety lock; even a perfectly threadsafe property system is
> susceptible to race conditions.

So essentially you are saying that it is impossible to completely
defend against sloppy programming and lack of documentation. Or,
to put it another way, if you make something foolproof, they just
come up with a better fool. :-)

> The point, again: *all* multithreaded code is susceptible to race
> conditions and deadlocks.  There is *no* way around this.

Obviously. But my point is that you can hide a lot of the
complexity that comes with multithreading, *if* you properly
define the interfaces, and don't stray from the path.

> Now, are you getting the point? :)

Yes. We desperately need a comprehensive FG hacker's guide to the
galaxy. :-)

- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on Mon, Feb 25, 2002 
at 05:07:16PM -0800
X-S-Issue: [EMAIL PROTECTED] 2002/02/27 01:34:27 
2ed0948a567b8aeaac36e3a8338e87ea
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx8KZsACgkQN880WP6HRIt/CwCfa/2C0NN+vWyjWW6/ySGccf5z
6ioAn0VfiySeXw6x1FmumRBABYrPNitL
=Qx0v
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-26 Thread Erik Hofman


>>I like the consept of multiple programs (communicating through sockets
>>or pipes) over threading anyhow, and that *forces* you to think about
>>it :-)
>>
>>You are right about the example you gave, the pth packages only
>>removes the multiple r/w operations on the same value at the "same"
>>time (which might be a good step foreward anyhow), but indeed  it
>>doesn't save you from *all* problems.
>>
>  
> ..say I build my self a plane the EAA (eea.org) way, in 4 years.
> And that I want to use a class cockpit and build upon FlightGear code.
> 
> ..which of the above concepts is easier to make airworthy, 
> and to certify as airworthy?

The latter (if yo're concerned about software only). You could certify 
all the subprograms and the socket interface in seperate runs. Once 
certified there is no need to look after it, except when it changes.
But changing one wouldn't hurt the others.

Erik





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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-26 Thread Arnt Karlsen

On Tue, 26 Feb 2002 10:53:11 +0100, 
Erik Hofman <[EMAIL PROTECTED]> wrote in message 
<[EMAIL PROTECTED]>:

> Andy Ross wrote:
> 
> > safety lock; even a perfectly threadsafe property system is
> > susceptible to race conditions.
> > 
> > The point, again: *all* multithreaded code is susceptible to race
> > conditions and deadlocks.  There is *no* way around this.  The only
> > way to avoid them is to be very, very careful with your design.  You
> > cannot rely on libraries to save you.  You cannot rely on simple
> > techniques to save you.  You have only your mind, your experience,
> > and the minds and experience of the yahoo threading cowboys working
> > on the rest of the project to rely on.  Now, are you getting the
> > point? :)
> 
> I like the consept of multiple programs (communicating through sockets
> or pipes) over threading anyhow, and that *forces* you to think about
> it :-)
> 
> You are right about the example you gave, the pth packages only
> removes the multiple r/w operations on the same value at the "same"
> time (which might be a good step foreward anyhow), but indeed  it
> doesn't save you from *all* problems.
 
..say I build my self a plane the EAA (eea.org) way, in 4 years.
And that I want to use a class cockpit and build upon FlightGear code.

..which of the above concepts is easier to make airworthy, 
and to certify as airworthy?

-- 
..med vennlig hilsen = with Kind Regards from Arnt... ;-)

  Scenarios always come in sets of three: 
  best case, worst case, and just in case.

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-26 Thread Martin Spott

Erik Hofman wrote:
> I like the consept of multiple programs (communicating through sockets 
> or pipes) over threading anyhow, [...]

 and - what I like most: It enables you to run different parts of the
sim on different machines   in case you lack CPU cycles at your
workplace,

Martin.
-- 
 Unix _IS_ user friendly - it's just selective about who its friends are !
--

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-26 Thread Erik Hofman

Andy Ross wrote:

> safety lock; even a perfectly threadsafe property system is
> susceptible to race conditions.
> 
> The point, again: *all* multithreaded code is susceptible to race
> conditions and deadlocks.  There is *no* way around this.  The only
> way to avoid them is to be very, very careful with your design.  You
> cannot rely on libraries to save you.  You cannot rely on simple
> techniques to save you.  You have only your mind, your experience, and
> the minds and experience of the yahoo threading cowboys working on the
> rest of the project to rely on.  Now, are you getting the point? :)

I like the consept of multiple programs (communicating through sockets 
or pipes) over threading anyhow, and that *forces* you to think about it :-)

You are right about the example you gave, the pth packages only removes 
the multiple r/w operations on the same value at the "same" time (which 
might be a good step foreward anyhow), but indeed  it doesn't save you 
from *all* problems.

Erik




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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Andy Ross

Martin van Beilen wrote:
 > Andy Ross wrote:
 > > For those with Java experience, consider the Vector class.  It's
 > > threadsafe, right?
 >
 > No, it's not. Imagine what happens when one thread is reading it
 > while another thread is writing to it. :-)
 >
 > > Right.  Now enumerate over it in one thread while
 > > modifying it in another.  Is *that* threadsafe? :)
 >
 > Now what did I just say? Pay attention please. ;-)

You missed my point.  First, the Vector class *is* threadsafe; check
all the methods, they're synchronized.  There is no way, in Java, to
corrupt the state of a Vector object by modifying it in multiple
threads.  Each thread is guaranteed to see a consistent object; there
is no way to add two elements at the same index, for example, or to
remove an item more than once.  The library designers got this part
right.  Your suggestion about how to add threadsafety to the property
system would achieve the same level of functionality.

My point was that this buys you *nothing*.  You can still write all
the race conditions you want by assuming that the object won't be
modified from another thread.  See my post about the nuclear bomb
safety lock; even a perfectly threadsafe property system is
susceptible to race conditions.

The point, again: *all* multithreaded code is susceptible to race
conditions and deadlocks.  There is *no* way around this.  The only
way to avoid them is to be very, very careful with your design.  You
cannot rely on libraries to save you.  You cannot rely on simple
techniques to save you.  You have only your mind, your experience, and
the minds and experience of the yahoo threading cowboys working on the
rest of the project to rely on.  Now, are you getting the point? :)

Andy

-- 
Andrew J. RossNextBus 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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Mon, Feb 25, 2002 at 12:55:07PM -0800, Andy Ross wrote:

> Martin van Beilen wrote:
>  > Actually it is fairly easy to make the property manager Thread
>  > Safe. All regular r/w locking can happen on a per-node basis, and
>  > can be encapsulated transparently.

> Making the property manager threadsafe isn't the issue; sure it can be
> done.  The problem is that *using* the property manager (or anything)
> from multiple threads leaves you open to race conditions that occur
> due to unsynchronized changes to the property values.

Hmmm.. I think we have different definitions of "threadsafe".

> For those with Java experience, consider the Vector class.  It's
> threadsafe, right?

No, it's not. Imagine what happens when one thread is reading it
while another thread is writing to it. :-)

> Right.  Now enumerate over it in one thread while
> modifying it in another.  Is *that* threadsafe? :)

Now what did I just say? Pay attention please. ;-)

A solution is to subclass a MutexVector that provides transparent
locking on member access. Since there is only one mutex involved,
deadlocks cannot occur. It is now Thread Safe for all r/w
operations.

Of course, this breaks when deleting the vector. Which is what my
earlier post was about. Not that it matters, since we're not
doing multithreading on properties in the first place. :-)

- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on Mon, Feb 25, 
2002 at 12:55:07PM -0800
X-S-Issue: [EMAIL PROTECTED] 2002/02/26 00:24:34 
0800dc9a27bf18f991a6c1eb2a5bc123
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx6x7kACgkQN880WP6HRIsKIgCdFja4q0wUowN2D5WS4YaaLTp4
7roAoJeRQTRvEmPu//KaNi+MSR54IGm7
=6/c6
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Andy Ross

Erik Hofman wrote:
 > Andy Ross wrote:
 > > Amen.  The only purpose to doing threading in a C/C++ environment is
 > > SMP scalability (in Java, you have to use them for I/O multiplexing
 > > too; I consider this a bug, but at least there you have language
 >
 > Well, the main reason for using multi-threading in a single CPU
 > environment is to use the CPU cycles when a program (or thread) is in
 > an IO lock ...

No.  That's what I meant by "I/O multiplexing" in the java note, and I
hold to my statement: using threads for this is a bug.  The right way
to do this is to use non-blocking or multi-blocking I/O calls
(select() being the poster child, but Win32 has non-blocking calls
too) that allow you to sanely and safely use the CPU at all times
without fear of race conditions.

 > BTW. There are thread schedulers which work in a single address space,
 > pth is one example:
 >
 > http://www.gnu.org/software/pth/
 >
 > This would remove the need for locking (expept for OpenGL I gueass).

Ack, no, it wouldn't.  It would remove the need for locking against
preemptive scheduling that might schedule another thread.  This is
*not* the only kind of race condition!  For a specific example, you're
liable to the following bug:

if(!fgGetBool("/controls/trigger-safety-lock")) {
 SG_LOG("Bombs away!");
 dropNuclearArmament();
}

The race condition?  The logging statement does I/O, and thus allows
the scheduler to pick another thread which might toggle the value of
the property.  The safety lock thus isn't guaranteed to be off when
the bombs drop.

Now, you can fix this via explicit locking
("/controls/trigger-safety-lock-lock", heh), or implicit design (only
one thread sets the /controls tree).  But simply saying expecting the
userspace thread library to keep you out of trouble isn't going to
work.  You need to design threadsafety in from the beginning; no
options.

All of this is just a long-winded way of making Curt's point:
threading is a *hard* problem, and there's simply no way to make it
easy.  There are no magic bullets here -- you can't use a single
library, or tool, or technique, and be able to say "my code is
threadsafe".

Threads are dangerous.  Stay away whenever possible (this means: stay
away unless you need more than one thread for a fundamental reason,
like SMP scalability).

Andy

-- 
Andrew J. RossNextBus 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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Erik Hofman

Erik Hofman wrote:
> 
> This would remove the need for locking (expept for OpenGL I gueass).

guess, guess, guess.

(I'm improving).

Erik


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Erik Hofman

Andy Ross wrote:
> Curtis L. Olson wrote:
>  > Threading is *really* scarey in a program of this magnitude.
>  >
>  > I'd be adverse to adding additional threading especially if it
>  > involves something like the property manager.
>  >
>  > There might be specific isolated instances where we can do it
>  > reliably, but there is way too much that can bite us if we try to do
>  > much threading.
> 
> Amen.  The only purpose to doing threading in a C/C++ environment is
> SMP scalability (in Java, you have to use them for I/O multiplexing
> too; I consider this a bug, but at least there you have language

Well, the main reason for using multi-threading in a single CPU 
environment is to use the CPU cycles when a program (or thread) is in an 
IO lock ...

BTW. There are thread schedulers which work in a single address space, 
pth is one example:

http://www.gnu.org/software/pth/

This would remove the need for locking (expept for OpenGL I gueass).

Erik


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Andy Ross

Martin van Beilen wrote:
 > Actually it is fairly easy to make the property manager Thread
 > Safe. All regular r/w locking can happen on a per-node basis, and
 > can be encapsulated transparently. The property manager seems like an
 > ideal candidate for IPC messaging, so if we want, it can be done.

This is the Great Myth of multithreading.  Threadsafe components are
not sufficient to protect against threadsafety violations.  The only
way to avoid deadlocks and race conditions is for the whole
architecture to support them from top to bottom.

Making the property manager threadsafe isn't the issue; sure it can be
done.  The problem is that *using* the property manager (or anything)
from multiple threads leaves you open to race conditions that occur
due to unsynchronized changes to the property values.

For those with Java experience, consider the Vector class.  It's
threadsafe, right?  Right.  Now enumerate over it in one thread while
modifying it in another.  Is *that* threadsafe? :)

Andy

-- 
Andrew J. RossNextBus 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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Andy Ross

Curtis L. Olson wrote:
 > Threading is *really* scarey in a program of this magnitude.
 >
 > I'd be adverse to adding additional threading especially if it
 > involves something like the property manager.
 >
 > There might be specific isolated instances where we can do it
 > reliably, but there is way too much that can bite us if we try to do
 > much threading.

Amen.  The only purpose to doing threading in a C/C++ environment is
SMP scalability (in Java, you have to use them for I/O multiplexing
too; I consider this a bug, but at least there you have language
syntax for the synchronization primitives).  The property system is
not likely, ever, to be a performance limitation requireing
parallelization.

There's nothing wrong with spawning a worker thread to do texture
generation for a tile, or FDM computations, or whatnot.  But glue them
all together in the main loop.

Andy

-- 
Andrew J. RossNextBus 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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Christian Mayer

"Curtis L. Olson" wrote:
> 
> D Luff writes:
> > Fair enough.  I was under the impression that it was the disk
> > access taking the time.
> 
> Registering new textures with opengl can take a noticable amount of
> time (especially when they are large.)  Freeing memory (and any
> associated garbage collection) can actually be a *big* hit at times.
> It actually is a very complicated problem to do tile paging properly
> in a separate thread.  What we have now mostly works but has grown
> pretty ugly in response to some of the practical difficulties with
> doing this well.

Well, I don't know the current threading code (well, it won't run under
MSVC anyway AFAIK). But I'm under the impression that on my compiles the
disk access is quite a problem (noticeable 'jumps' for each tile).

That's no surprise. Current disks have an access time of 10 ms. If we
need - say - 10 files we'll have 100 ms. (unrealistical guess as there's
caching, etc., but that's w/o the work that's done as soon as the files
are loaded).

100 ms is 1/10 s and that's very noticeable.

Just reading the data in an extra thread into a buffer and doing the
rest in the main thread should help a bit.
To avoid memory (re)allocation we can recycle that buffer.

CU,
Christian

--
The idea is to die young as late as possible.-- Ashley Montague

Whoever that is/was; (c) by Douglas Adams would have been better...

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Sun, Feb 24, 2002 at 08:27:37PM -0600, Curtis L. Olson wrote:

> Threading is *really* scarey in a program of this magnitude.  Even the
> current threaded tile manager is a big time bomb waiting to happen.
> We are getting away with doing stuff that's not guaranteed to work.
> We've taken a lot of steps to try to minimize the potential problems,
> but as the scenery and modeling gets more complex this problem is only
> going to get worse.

Well, I gather from your subtle hints  that the property
manager is only used by the main thread at this time. That
simplifies things a lot.

> I'd be adverse to adding additional threading especially if it
> involves something like the property manager.

Actually it is fairly easy to make the property manager Thread
Safe. All regular r/w locking can happen on a per-node
basis, and can be encapsulated transparently. The property
manager seems like an ideal candidate for IPC messaging, so if
we want, it can be done.


- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on 
Sun, Feb 24, 2002 at 08:27:37PM -0600
X-S-Issue: [EMAIL PROTECTED] 2002/02/25 18:24:09 
ec3e9cde4f3bf456ab66f6fa6ba31d85
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx6c0EACgkQN880WP6HRIvQQwCfWZVOC6Oj9jBVt56U3d+70PZe
PugAn35OIGds3SrcdSfS+Es3DLWe7W8y
=zugr
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Curtis L. Olson

D Luff writes:
> Fair enough.  I was under the impression that it was the disk 
> access taking the time. 

Registering new textures with opengl can take a noticable amount of
time (especially when they are large.)  Freeing memory (and any
associated garbage collection) can actually be a *big* hit at times.
It actually is a very complicated problem to do tile paging properly
in a separate thread.  What we have now mostly works but has grown
pretty ugly in response to some of the practical difficulties with
doing this well.

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread D Luff

Curtis L. Olson writes:

> D Luff writes:
> > Surely it is possible to do a byte by byte copy of the tile from disk 
> > to memory in a separate thread, without *any* Opengl/ssg/plib 
> > dependency, such that the main thread need only access memory 
> > and not disk?
> 
> Surely it is possible, but if your goal is to push all time consuming
> portions of the tile paging process out into a separate thread to
> avoid rendering pauses, then this doesn't buy you as much as you
> might hope.
> 

Fair enough.  I was under the impression that it was the disk 
access taking the time. 

Cheers - Dave

--
[EMAIL PROTECTED]

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Curtis L. Olson

D Luff writes:
> Surely it is possible to do a byte by byte copy of the tile from disk 
> to memory in a separate thread, without *any* Opengl/ssg/plib 
> dependency, such that the main thread need only access memory 
> and not disk?

Surely it is possible, but if your goal is to push all time consuming
portions of the tile paging process out into a separate thread to
avoid rendering pauses, then this doesn't buy you as much as you
might hope.

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread D Luff

Curtis L. Olson writes:

> David Megginson writes:

> > What you need to do is isolate the tile manager completely, so that it
> > has (almost) no dependencies on the rest of the program, except for
> > one structure for data exchange.
> 
> I don't think the solution can be that trivially simple.  The render
> thread has opengl/scene graph dependencies.  The tile pager has
> opengl/scene graph dependencies.  That in itself forces you to do a
> *lot* of horsing around.
> 
> For instance, you can't directly call a plib model loader in the tile
> paging thread because that could involve creating textures (which
> would involve opengl calls) and you'd open yourself up for strange
> crashes and wierd visual anomalies.

Surely it is possible to do a byte by byte copy of the tile from disk 
to memory in a separate thread, without *any* Opengl/ssg/plib 
dependency, such that the main thread need only access memory 
and not disk?

Cheers - Dave

--
[EMAIL PROTECTED]

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Curtis L. Olson

David Megginson writes:
>  > Anyway, in the back of my head, someday, I want to try to develop a
>  > case against the threaded tile pager and maybe figure out a way to to
>  > partial per frame model loading and unloading ... not that I don't
>  > desparately wish we could do it, it's just that I'm not sure we can do
>  > it reliably in the face of all the things the tile loader will need to
>  > do in the long term ... (?)
> 
> What you need to do is isolate the tile manager completely, so that it
> has (almost) no dependencies on the rest of the program, except for
> one structure for data exchange.

I don't think the solution can be that trivially simple.  The render
thread has opengl/scene graph dependencies.  The tile pager has
opengl/scene graph dependencies.  That in itself forces you to do a
*lot* of horsing around.

For instance, you can't directly call a plib model loader in the tile
paging thread because that could involve creating textures (which
would involve opengl calls) and you'd open yourself up for strange
crashes and wierd visual anomalies.

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread David Megginson

Curtis L. Olson writes:

 > Textures: any threading that involves portions of opengl needs to be
 > handled very delicately.

No, I wouldn't touch OpenGL.  I'm talking about generating textures
in-memory; they would then be passed off to the main thread for use by
OpenGL.  We're a long way from that, though, so there's no need to
worry.

 > Anyway, in the back of my head, someday, I want to try to develop a
 > case against the threaded tile pager and maybe figure out a way to to
 > partial per frame model loading and unloading ... not that I don't
 > desparately wish we could do it, it's just that I'm not sure we can do
 > it reliably in the face of all the things the tile loader will need to
 > do in the long term ... (?)

What you need to do is isolate the tile manager completely, so that it
has (almost) no dependencies on the rest of the program, except for
one structure for data exchange.


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread Curtis L. Olson

David Megginson writes:
> Threading is relatively safe if each thread is forced to play in a
> sandbox.  A subsystem running in a separate thread must *not* touch
> any other subsystem (including the property manager), and must send
> and receive all information through a single, tightly-controlled
> interface.  That implies that a subsystem in a separate thread should
> not even include other FlightGear header files, much less access
> FGGlobals, FGInterface, the property manager, or anything else
> directly.
> 
> The best candidates for separate threads are processes that have
> relatively little input or output but require a lot of computation.
> For example, if some day we have an incredibly sophisticated weather
> simulator that actually models air currents over different terrain
> types, we might actually let it do its computations in a low-priority
> background thread and report back every minute or so.  I don't think
> that threads are a panacea for whatever ails us.  Another good
> candidate for a separate thread would be auto-generated,
> smoothly-transitioning terrain textures.

Textures: any threading that involves portions of opengl needs to be
handled very delicately.  OpenGL is single threaded / global state and
can't tolerate any other threads calling opengl commands at arbitrary
times.  (What if the thread does something while the main render loop
is between a glBegin() and glEnd() ... at best you'll get sporadic
unintended visual effects, but at worst (which is the likelier case,
the program will crash.)  Likewise, anything that touches the scene
graph needs to be done from the main thread, because if we are
modifying the scene graph while plib is in the middle of an
ssgCullandDraw() we could likewise crash the program.
Model loading is tough to do in a thread because it wants to both load
textures (and make opengl calls) and then modify the scene graph.

Anyway, in the back of my head, someday, I want to try to develop a
case against the threaded tile pager and maybe figure out a way to to
partial per frame model loading and unloading ... not that I don't
desparately wish we could do it, it's just that I'm not sure we can do
it reliably in the face of all the things the tile loader will need to
do in the long term ... (?)

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread David Megginson

Curtis L. Olson writes:

 > Threading is *really* scarey in a program of this magnitude.  Even
 > the current threaded tile manager is a big time bomb waiting to
 > happen.  We are getting away with doing stuff that's not guaranteed
 > to work.  We've taken a lot of steps to try to minimize the
 > potential problems, but as the scenery and modeling gets more
 > complex this problem is only going to get worse.

Threading is relatively safe if each thread is forced to play in a
sandbox.  A subsystem running in a separate thread must *not* touch
any other subsystem (including the property manager), and must send
and receive all information through a single, tightly-controlled
interface.  That implies that a subsystem in a separate thread should
not even include other FlightGear header files, much less access
FGGlobals, FGInterface, the property manager, or anything else
directly.

The best candidates for separate threads are processes that have
relatively little input or output but require a lot of computation.
For example, if some day we have an incredibly sophisticated weather
simulator that actually models air currents over different terrain
types, we might actually let it do its computations in a low-priority
background thread and report back every minute or so.  I don't think
that threads are a panacea for whatever ails us.  Another good
candidate for a separate thread would be auto-generated,
smoothly-transitioning terrain textures.


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-25 Thread David Megginson

Martin van Beilen writes:

 > Working from a single thread is obviously the easiest solution,
 > where possible. However, in the case of our property system,
 > potentially any part of the code may want to access those
 > properties. We'd have to assign one thread as the property
 > manager, and do all property access via the/an inter-thread
 > messaging system. Not very nice, IMHO.

I think it would be better for the main thread to read the information
from the property manager and then pass it to an object that the other
thread can access.


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-24 Thread Curtis L. Olson

Threading is *really* scarey in a program of this magnitude.  Even the
current threaded tile manager is a big time bomb waiting to happen.
We are getting away with doing stuff that's not guaranteed to work.
We've taken a lot of steps to try to minimize the potential problems,
but as the scenery and modeling gets more complex this problem is only
going to get worse.

I'd be adverse to adding additional threading especially if it
involves something like the property manager.

There might be specific isolated instances where we can do it
reliably, but there is way too much that can bite us if we try to do
much threading.

Curt.


Martin van Beilen writes:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
> 
> 
> On Sat, Feb 23, 2002 at 08:47:17PM -0500, David Megginson wrote:
> 
> > Martin van Beilen writes:
> >  > It may be necessary to implement a locking scheme to prevent
> >  > simultaneous access and deletion of a property. (Only if DELETE
> >  > is set, of course.)
> >
> > From my experience with Java, I think the trick with threading is
> > to do all write access from a single thread; otherwise, things get
> > amazingly ugly (personally, I'd prefer doing all read access from that
> > thread as well).
> 
> Working from a single thread is obviously the easiest solution,
> where possible. However, in the case of our property system,
> potentially any part of the code may want to access those
> properties. We'd have to assign one thread as the property
> manager, and do all property access via the/an inter-thread
> messaging system. Not very nice, IMHO.
> 
> The only trivial solution I can think of is using one single
> master lock for all dynamic access. Not particularly elegant
> either. I can probably come up with a better (per-node) scheme,
> but I need to t(h)read very carefully and give it some more
> thought. I'm dropping this issue for now and will start working
> on the cloud layers.
> 
> - --
> Regards,  "I RADIS, do you?"
> =Martin=http://www.iradis.org/
> 
> PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B
> 
> 
> From: Martin van Beilen <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
> In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on 
>Sat, Feb 23, 2002 at 08:47:17PM -0500
> X-S-Issue: [EMAIL PROTECTED] 2002/02/25 01:16:48 
>a8e24c3bfcb47364f995b5835fa3f007
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.0.6 (GNU/Linux)
> 
> iEYEARECAAYFAjx5gngACgkQN880WP6HRItozACgoQYuPkPzkHpAIWQuQrrY01f9
> enUAnjIyPHx8eoqRofpsTG3CPqMMpqc+
> =5iLF
> -END PGP SIGNATURE-
> 
> ___
> Flightgear-devel mailing list
> [EMAIL PROTECTED]
> http://mail.flightgear.org/mailman/listinfo/flightgear-devel

-- 
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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-24 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Sat, Feb 23, 2002 at 08:47:17PM -0500, David Megginson wrote:

> Martin van Beilen writes:
>  > It may be necessary to implement a locking scheme to prevent
>  > simultaneous access and deletion of a property. (Only if DELETE
>  > is set, of course.)
>
> From my experience with Java, I think the trick with threading is
> to do all write access from a single thread; otherwise, things get
> amazingly ugly (personally, I'd prefer doing all read access from that
> thread as well).

Working from a single thread is obviously the easiest solution,
where possible. However, in the case of our property system,
potentially any part of the code may want to access those
properties. We'd have to assign one thread as the property
manager, and do all property access via the/an inter-thread
messaging system. Not very nice, IMHO.

The only trivial solution I can think of is using one single
master lock for all dynamic access. Not particularly elegant
either. I can probably come up with a better (per-node) scheme,
but I need to t(h)read very carefully and give it some more
thought. I'm dropping this issue for now and will start working
on the cloud layers.

- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on 
Sat, Feb 23, 2002 at 08:47:17PM -0500
X-S-Issue: [EMAIL PROTECTED] 2002/02/25 01:16:48 
a8e24c3bfcb47364f995b5835fa3f007
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx5gngACgkQN880WP6HRItozACgoQYuPkPzkHpAIWQuQrrY01f9
enUAnjIyPHx8eoqRofpsTG3CPqMMpqc+
=5iLF
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-23 Thread David Megginson

Martin van Beilen writes:

 > Well, that's the easy part. We can add a DELETE flag and set it
 > on all dynamic properties. I'm more worried about multithreading.
 > It may be necessary to implement a locking scheme to prevent
 > simultaneous access and deletion of a property. (Only if DELETE
 > is set, of course.)

>From my experience with Java, I think the trick with threading is
to do all write access from a single thread; otherwise, things get
amazingly ugly (personally, I'd prefer doing all read access from that
thread as well).


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-23 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Sat, Feb 23, 2002 at 06:16:19PM -0500, David Megginson wrote:

> Properties exist for life because any number of different modules
> might be holding pointers to them.  We'll have to figure out some kind
> of management scheme if we want node removal.

Well, that's the easy part. We can add a DELETE flag and set it
on all dynamic properties. I'm more worried about multithreading.
It may be necessary to implement a locking scheme to prevent
simultaneous access and deletion of a property. (Only if DELETE
is set, of course.)

- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on Sat, 
Feb 23, 2002 at 06:16:19PM -0500
X-S-Issue: [EMAIL PROTECTED] 2002/02/24 01:02:26 
8746db0a0cea416c4497d06a7120862e
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx4LZkACgkQN880WP6HRIuZhgCdFIFCkbgntF27zIl7nWTBQTlB
ssEAnR4M9aB11Dgjyl7tnyjvEJAphsEi
=YemD
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-23 Thread David Megginson

Martin van Beilen writes:

 > Removal is a bit of a problem though. In the current situation
 > properties are created for "life". We could just leave unused
 > nodes, or I could add a delChild() method, or I could add it to
 > the destructor. What do you think?

Properties exist for life because any number of different modules
might be holding pointers to them.  We'll have to figure out some kind
of management scheme if we want node removal.


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-23 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Fri, Feb 22, 2002 at 04:54:44PM -0600, Curtis L. Olson wrote:

> However, it's more complicated with cloud layers.  In the case were a
> cloud layer disappears, or is added or changes types, we probably want
> to do some sort of slow blending over time to make the transition less
> apparent.  Somewhere we need to track the 'current' values, the target
> values, and where we are in the transition.

Can't we just stick with magically appearing and disappearing
layers for now? Sure, it's ugly, but better than nothing. You
could maybe raise or lower a layer gradually, but blending is
difficult. You'd need some kind of dynamic texture generator.

In any case, both methods are unrealistic. In the real world
clouds are individual objects. Clouds don't "blend", you simply
fly past them much like you do with the ground scenery.

IMHO the price(programmer hours) / performance(realism) ratio is
not favourable. It'd be better to stick with magic layers for
now, and move to volumetric clouds from there.

That said, if anyone wants to go the distance and write the code,
go right ahead. :-)

- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] 
on Fri, Feb 22, 2002 at 04:54:44PM -0600
X-S-Issue: [EMAIL PROTECTED] 2002/02/23 21:45:17 
9dccc70c8c7cdb47bb4b6660a8ca20dc
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx3/2QACgkQN880WP6HRIuLsACfa6OkaTAP+ZrOae9e7nhkXUtR
CnwAn30/MvXaptp1h//VXY1I5n9R/dqx
=SuAX
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-23 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Fri, Feb 22, 2002 at 05:46:11PM -0500, David Megginson wrote:

> I'd suggest something like this:
>   /environment/cloud-layer[0]/enabled
>   /environment/cloud-layer[0]/type

I'll stick to /environment/clouds/layer[n] for now. There's more
to clouds than just layers. It can always be changed later.

> and so on (I'm not sure exactly what sub-properties you'll need), up
> to a maximum of, say, eight layers.

Actually, I was thinking of adding and removing layers
dynamically as needed. I extended the props interface so it can
create nodes with values of any type.

Removal is a bit of a problem though. In the current situation
properties are created for "life". We could just leave unused
nodes, or I could add a delChild() method, or I could add it to
the destructor. What do you think?

> Before too long, FGEnvironment will be able to modify these properties
> dynamically during the flight, but to start, we'll just have to set
> the properties manually in the property browser.

Indeed. That's the general idea.

- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on 
Fri, Feb 22, 2002 at 05:46:11PM -0500
X-S-Issue: [EMAIL PROTECTED] 2002/02/23 20:48:54 
fb987c4aba33a35a7765901a555eedf5
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx38i0ACgkQN880WP6HRItobQCZAVI72FD1OW6sF7jKCUw7zY2E
NiEAoK3ytkHtCAQHoeecDQOiYQzuwKcT
=+Kuy
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread David Megginson

Curtis L. Olson writes:

 > However, it's more complicated with cloud layers.  In the case were a
 > cloud layer disappears, or is added or changes types, we probably want
 > to do some sort of slow blending over time to make the transition less
 > apparent.  Somewhere we need to track the 'current' values, the target
 > values, and where we are in the transition.

I'll naively suggest that that might be easy to manage: keep an
FGEnvironment object for the current location, and (say) eight more in
a circle around the current location with a certain horizontal offset
(such as 10km), then interpolate.  That makes the whole thing
relatively stateless, if it can work.


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread David Megginson

Martin van Beilen writes:

 > How about first seeing whether it would be useful (and possible)
 > to integrate some of that code before throwing out the baby with
 > the bathwater?

Just for the record, nothing's being thrown out right now.
Christian's code is still the default, and it's all still there.


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread Alex Perry

> That's also to be determined.  As I mentioned, I'm working from front
> to back.  FGEnvironment contains a set of environment information for
> a single place and time.  Once we get that working better, I'll add
> FGEnvironmentManager to get the environment information for places
> (and times?) beyond the aircraft's current locus; at first, it will
> return the same information for everywhere, but later it will start
> differentiating in different ways.  The rest of FlightGear won't have
> to know about that -- all it has to know is how to get an environment
> object:

I've said it before and I'll say it again ...

The METAR information is _mostly_ useless in describing both flight
conditions and simulation parameters for the purposes of FlightGear.
The purpose of the report is to describe conditions on the _surface_
and _at_ the airport with no considerations for anywhere else in the area.
Only if you're doing touch-n-goes, is this valuable and appropriate.

Once you leave the airport environment, either by climbing a few 
thousand feet, or by flying a couple of miles in any direction,
the METAR no longer gives information, unless you use a WAG
(wild assed guess) to extrapolate the whole airmass from it.

> In time.  It depends on how the manager develops.  For now, I just
> want to be able to have the basics: temperature, winds, clouds,
> visibility, magnetic variation, etc.

The only reporting format that describes local conditions, as seen
by an aircraft and/or a pilot, is the PIREP.  This is also the best
way to describe the conditions that the instructor or pilot wishes
to have created.  It includes localization in position, altitude and
time, as well as supporting airmass motion and temperature data.


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Thu, Feb 21, 2002 at 10:09:45PM -0500, David Megginson wrote:

> > It seems to me that fgfs has some (a lot of?) 'orphaned' features.
>
> That's right -- I think we have to be stricter about not accepting
> unintegrated code and about cleaning out code that's not being used.

How about first seeing whether it would be useful (and possible)
to integrate some of that code before throwing out the baby with
the bathwater? I agree though, that we should ask contributors to
integrate their code before accepting it. Personally, I like to
start by defining the interface, documenting it, and then add
code from there. Yes, I know I'm weird writing documentation
before writing even a single line of code. :-)

- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on 
Thu, Feb 21, 2002 at 10:09:45PM -0500
X-S-Issue: [EMAIL PROTECTED] 2002/02/23 00:34:27 
ab7aabfa707a0876ec94cd7a228a4d50
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx21YoACgkQN880WP6HRIshOwCeN8/4keEwWePgo63YAGJYrxDD
JkgAoLAgSZPun9aVnJje7GxOwJKBJrIT
=QpL0
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread Curtis L. Olson

David Megginson writes:
> Martin van Beilen writes:
> 
>  > After reading David's comments, I think I can safely add the
>  > property interface to SGCloudLayer. But I'm starting with the
>  > network interface.
> 
> I'd suggest something like this:
> 
>   /environment/cloud-layer[0]/enabled
>   /environment/cloud-layer[0]/type
>   /environment/cloud-layer[0]/altitude-ft
>   /environment/cloud-layer[0]/thickness-ft
>   /environment/cloud-layer[0]/enabled
>   /environment/cloud-layer[1]/type
>   /environment/cloud-layer[1]/altitude-ft
>   /environment/cloud-layer[1]/thickness-ft
>   /environment/cloud-layer[2]/enabled
>   /environment/cloud-layer[2]/type
>   /environment/cloud-layer[2]/altitude-ft
>   /environment/cloud-layer[2]/thickness-ft
> 
> and so on (I'm not sure exactly what sub-properties you'll need), up
> to a maximum of, say, eight layers.
> 
> Before too long, FGEnvironment will be able to modify these properties
> dynamically during the flight, but to start, we'll just have to set
> the properties manually in the property browser.

David,

>From a visual standpoint, FlightGear cares about visibility and cloud
layers.  These can change as you fly.  In the case of visibility, the
environment manager could hide the change logic and just provide a
slowly changing value.

However, it's more complicated with cloud layers.  In the case were a
cloud layer disappears, or is added or changes types, we probably want
to do some sort of slow blending over time to make the transition less
apparent.  Somewhere we need to track the 'current' values, the target
values, and where we are in the transition.

Thinking about this more, it might work just fine to handle this on
the flightgear side.  FlightGear could keep track of the 'current'
values and use the values in the property manager as the goal/target.
The visual system could then slowly fade layers in and out, or move
them up / down as needed.

I probably need to think about this more, and I'm imposing my ideas
for one particular cloud implimentation.  Certianly there could be
more advanced cloud effects if someone wanted to work on them.

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread David Megginson

Martin van Beilen writes:

 > After reading David's comments, I think I can safely add the
 > property interface to SGCloudLayer. But I'm starting with the
 > network interface.

I'd suggest something like this:

  /environment/cloud-layer[0]/enabled
  /environment/cloud-layer[0]/type
  /environment/cloud-layer[0]/altitude-ft
  /environment/cloud-layer[0]/thickness-ft
  /environment/cloud-layer[0]/enabled
  /environment/cloud-layer[1]/type
  /environment/cloud-layer[1]/altitude-ft
  /environment/cloud-layer[1]/thickness-ft
  /environment/cloud-layer[2]/enabled
  /environment/cloud-layer[2]/type
  /environment/cloud-layer[2]/altitude-ft
  /environment/cloud-layer[2]/thickness-ft

and so on (I'm not sure exactly what sub-properties you'll need), up
to a maximum of, say, eight layers.

Before too long, FGEnvironment will be able to modify these properties
dynamically during the flight, but to start, we'll just have to set
the properties manually in the property browser.


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Thu, Feb 21, 2002 at 07:51:01PM -0600, Curtis L. Olson wrote:

> In this case, there is support at the simgear level for 'n' cloud
> layers each with their own properties.  However, there was no
> 'interface' to this in flightgear and we only hardcoded in the
> layers.  No one has gotten around to building a proper interface.

Well, today might be your lucky day. :-)

After reading David's comments, I think I can safely add the
property interface to SGCloudLayer. But I'm starting with the
network interface.

> Just like we have competing FDM's with different focus, strengths and
> weaknesses, I don't think it is bad to have competing
> weather/environment management systems with different focus, strengths
> and weaknesses.

In that case, would it be useful to make it a run-time option?

- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] 
on Thu, Feb 21, 2002 at 07:51:01PM -0600
X-S-Issue: [EMAIL PROTECTED] 2002/02/22 18:22:52 
2bb03599b8501d0f8a3d78403a39893d
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx2fnQACgkQN880WP6HRIs3IgCfcFGBZkzUnu5+NXysAsmAzKzg
thEAni7T9NFeAiPQKg20D1pgqT+78LPu
=0Sdw
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread David Megginson

[EMAIL PROTECTED] writes:

 > Is it safe to assume that if one wanted to add support for winds
 > aloft reports, they would only need to add code to acquire the data
 > and then parse it into some kind of data structure defined by your
 > system?

That's to be determined.

 > How much support will there be for data beyond that which is included
 > in the METAR's?  Winds aloft reports are one example of additional
 > data sources that exist outside FG, but not all weather data would
 > exist outside the application.

That's also to be determined.  As I mentioned, I'm working from front
to back.  FGEnvironment contains a set of environment information for
a single place and time.  Once we get that working better, I'll add
FGEnvironmentManager to get the environment information for places
(and times?) beyond the aircraft's current locus; at first, it will
return the same information for everywhere, but later it will start
differentiating in different ways.  The rest of FlightGear won't have
to know about that -- all it has to know is how to get an environment
object:

  const FGEnvironment * env = globals.get_env_mgr()->getEnv(lat, lon, alt);

As the quality of the information improves, the other FlightGear
subsystems should be able to use it automatically; for example, the
FDM might get FGEnvironment objects for the centre point of each
lifting surface as well as for the CG; in the future, if we add
microbursts (etc.), the FDMs will see them automatically.

 > It could be possible to have weather
 > data generated from inside FG itself in the form of thermals or "ridge
 > lift". (I use that term very loosely.)  Would FGEnvironment be able to
 > accept and manage data from these various sources?

In time.  It depends on how the manager develops.  For now, I just
want to be able to have the basics: temperature, winds, clouds,
visibility, magnetic variation, etc.

 > Will there be anything beyond basic interpolation?

It depends on what people contribute.  Right now, I'm trying to get
the basic interface nailed down so that future work won't require too
much extra integration in the rest of FlightGear.


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread tcpip

On Fri, 22 Feb 2002, David Megginson wrote:

>  > 2. conversion from raw form to a source independent format stored
>  > either in memory, or a persistent format
>
> Yes, if you mean METAR parsing and the like.

Yes, that's what I meant.

> I'll probably isolate that behind a generic interface, so that we
> can use different kinds of information providers.  It will be in
> the Environment/ subdirectory, but will really be a separate
> package behind the same front-end.

Is it safe to assume that if one wanted to add support for winds aloft
reports, they would only need to add code to acquire the data and then
parse it into some kind of data structure defined by your system?
How much support will there be for data beyond that which is included
in the METAR's?  Winds aloft reports are one example of additional
data sources that exist outside FG, but not all weather data would
exist outside the application.  It could be possible to have weather
data generated from inside FG itself in the form of thermals or "ridge
lift". (I use that term very loosely.)  Would FGEnvironment be able to
accept and manage data from these various sources?

>  > 3. logical analysis of the code to isolate relevant data
>
> I'm not sure what you mean by "code" here.

Oops, I meant data, not code.

> If you mean interpolation among weather station data points, then
> yes, I'll have to support that.

Will there be anything beyond basic interpolation?

> Right now there's a tiny bit of rendering code in FGEnvironment,
> left over from the old FGWeather class, but I want to remove that
> completely.

Good to hear!

> I'm following the build-for-today rule from Extreme Programming:
> I'll add support for (say) volumetric clouds when we can render
> volumetric clouds.  We *can* render cloud layers today, so I will
> add support for that.

I'd just hate to see a chicken/egg situation arise where someone
willing to improve the cloud visuals is turned off because
FGEnvironment doesn't provide the necessary data in a usable manner.
While implementing volumetric clouds might not be feasible today, I
don't think anyone would argue that it will be soon.  Much sooner if
one were to aim for "faked" volumetric clouds like those in FS2002 or
FLY2.  I don't think it would be a waste of time to put a little
thought into what better looking clouds might require from
FGEnvironment.  It could have a significant effect on how
FGEnvironment deals with the data.

Thad



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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-22 Thread David Megginson

[EMAIL PROTECTED] writes:

 > When you say "weather/environment management system" what do you mean?
 > Do you mean something that includes the following?
 > 
 > 1. weather data retrieval mechanism

Yes.  I'm starting with the front-end (the interface between
FlightGear and the rest of the environment code) and working
backwards.  FGEnvironment holds the weather information for a specific
place and time; I'll also add an FGEnvironmentManager to look up the
information for other arbitrary places and times (i.e. the ATIS
station tuned in on COM1, or the left wingtip).

 > 2. conversion from raw form to a source independent format stored
 > either in memory, or a persistent format

Yes, if you mean METAR parsing and the like.  I'll probably isolate
that behind a generic interface, so that we can use different kinds of
information providers.  It will be in the Environment/ subdirectory,
but will really be a separate package behind the same front-end.

 > 3. logical analysis of the code to isolate relevant data

I'm not sure what you mean by "code" here.  If you mean interpolation
among weather station data points, then yes, I'll have to support
that.

 > 4. code to render the visible aspects of the weather

No, that will be entirely separate.  Right now there's a tiny bit of
rendering code in FGEnvironment, left over from the old FGWeather
class, but I want to remove that completely.

 > If so, that's cool, but to me it seems like this is sort of slicing
 > the pie the wrong way.  I would hate to think that any alternate
 > "weather/environment management system would have to duplicate
 > functionality across so many layers of code.  It just seems to me
 > that it would make sense to isolate the steps so that each one
 > could be replaced individually.

Yes, I agree.  I'm not touching rendering at all, and I'm going to be
careful to keep the rest nicely segmented.

 > Also, are there any goals regarding weather in FG?  If someone were to
 > rewrite the weather subsystem, would it be more appropriate to simply
 > do another system like what we have or would it be more appropriate to
 > plan for the day when we move beyond flat plane cloud layers?

I'm following the build-for-today rule from Extreme Programming: I'll
add support for (say) volumetric clouds when we can render volumetric
clouds.  We *can* render cloud layers today, so I will add support
for that.

 > It seems that the current FG weather system is a lot like
 > X-Plane's.  With the exception of ATIS reading the string
 > appropriate for its location, the weather for the entire world is
 > identical to the weather at the aircraft's current location.

I think that everyone agrees that we want different weather at
different locations.  FGEnvironment will deal only with the data
issues, not with the rendering issues (i.e. it's an open question
whether you'll be able to *see* the different weather).


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-21 Thread tcpip

On Thu, 21 Feb 2002, Curtis L. Olson wrote:

> Just like we have competing FDM's with different focus, strengths
> and weaknesses, I don't think it is bad to have competing
> weather/environment management systems with different focus,
> strengths and weaknesses.

When you say "weather/environment management system" what do you mean?
Do you mean something that includes the following?

1. weather data retrieval mechanism
2. conversion from raw form to a source independent format stored
either in memory, or a persistent format
3. logical analysis of the code to isolate relevant data
4. code to render the visible aspects of the weather

If so, that's cool, but to me it seems like this is sort of slicing
the pie the wrong way.  I would hate to think that any alternate
"weather/environment management system would have to duplicate
functionality across so many layers of code.  It just seems to me that
it would make sense to isolate the steps so that each one could be
replaced individually.

Also, are there any goals regarding weather in FG?  If someone were to
rewrite the weather subsystem, would it be more appropriate to simply
do another system like what we have or would it be more appropriate to
plan for the day when we move beyond flat plane cloud layers?  It
seems that the current FG weather system is a lot like X-Plane's.
With the exception of ATIS reading the string appropriate for its
location, the weather for the entire world is identical to the weather
at the aircraft's current location.  If one wanted to simulate
approaching a line of thunderstorms, the weather model would need to
manage the data in such a way that that different geographic areas
could have different weather.

Forgive me if I stepped on anyone's toes.

Thad


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-21 Thread David Megginson

Martin van Beilen writes:

 > > sorry, but I can't understand that. I don't know why you try to
 > > do multiple work instead of working together and increasing the
 > > output.
 > 
 > That puzzled me too. It seems to me that fgfs has some (a lot of?)
 > 'orphaned' features. The problem is that the code is there, but
 > there's no way to activate these features, and no documentation.

That's right -- I think we have to be stricter about not accepting
unintegrated code and about cleaning out code that's not being used.
We have very, very few active developers on the project, and each of
us can concentrate only on a tiny area at once (between bug fixes).

Christian's code looks nice, but it has sat mostly unintegrated for
one (maybe two) years.  So far, I'm adding my code in a separate
module and leaving Christian's as the default; you have to configure
--with-new-environment to get mine.  If mine ends up doing what we
need, we'll switch the default and move Christian's code to the attic;
otherwise, we'll bug Christian to integrate his code and move mine to
the attic.  There's nothing personal, either way -- that's just how
Open Source works (look at the memory-management wars in the Linux
kernel for a more brutal example).

 > For example, I've found that the code supports multiple cloud
 > layers with varying degrees of coverage, from FEW to OVC.

I'm going to try to pull that in to the new environment module.


All the best,


David

-- 
David Megginson
[EMAIL PROTECTED]


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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-21 Thread Curtis L. Olson

Martin van Beilen writes:
> It seems to me that fgfs has some (a lot
> of?) 'orphaned' features. The problem is that the code is there,
> but there's no way to activate these features, and no
> documentation.
> 
> For example, I've found that the code supports multiple cloud
> layers with varying degrees of coverage, from FEW to OVC. The
> required textures appear to be present. Unfortunately users can
> only set the cloud base for the first layer. Its coverage is
> hard-coded to BKN, and the second layer is hardcoded FEW190.

In this case, there is support at the simgear level for 'n' cloud
layers each with their own properties.  However, there was no
'interface' to this in flightgear and we only hardcoded in the
layers.  No one has gotten around to building a proper interface.

Someone came along and added an option to set _just_ the bottom
layer.  A little strange and far from complete, but I was told it was
better than nothing.  Ok ... I went ahead and added the code.

But, we really should fix this, and add a flightgear interface for
setting arbitrary cloud layers, as well as some mechanism to change
cloud layers and have the visuals smoothly adjust over some time
period.

> Eventually I'd like to be able to add and remove cloud layers on
> the fly. I propose the following properties:
> 
> /environment/clouds/layer[n]/
>   (layers can be added from command-line,
>   configuration file or on-the-fly.)
> 
>   altitude-ft (double)
>   thickness-ft (double)
> 
>   transition-ft (double)
>   (what does transition do?)
> 
>   coverage (double)
>   [0.0 - 1.0] sky coverage fraction; also obsoletes
>   status property. (0 -> status=false)
> 
>   type (string)
>   Cumulus|Stratocumulus|Stratus|Cirrus
> 
>   speed-from-north-fps (double)
>   speed-from-east-fps (double)
>   moving clouds, not implemented yet (is the
>   convention for clouds to or from?)
>
> I'm not touching any weather-related code until this new
> environment thing is resolved. I could get started on the network
> interface though.

I want to tread carefully here but I'll make a couple comments ... the
WeatherCM code was added some time ago, but it really did very little
as far as interacting with FlightGear.  It mostly sat as a placeholder
waiting for someone to come along and find a way to populate the
database with live weather values and then build an interface so that
flightgear would honor the local weather values as queried from the
weather database.  The flip side of this was that the FDM's really
didn't do much with wind, temp, or pressure a year ago and we didn't
have a way to transition between changing cloud layers.

Now, the FDM's do a lot with honoring weather variables, but the
weather database is complicated enough that it is difficult for anyone
to come along and 'get there head around' it enough to finish the task
of completely integrating it.

I think what David is trying to do here is creating an alternate
'simple' weather system.  Something that has much less startup
overhead, something that is easier to get your head around, and
something that can be more easily integrated.

In some ways this is a good thing becuase if we get one weather system
integrated properly and work out all the issues, then it will clear
the path for the other one, so that hopefully somebody will come along
and finish up the integration of WeatherCM so that it can be a fully
functional system.

Just like we have competing FDM's with different focus, strengths and
weaknesses, I don't think it is bad to have competing
weather/environment management systems with different focus, strengths
and weaknesses.

I don't think people should read too much into adding an alternate
environment subsystem ... especially if it prompts / helps get
WeatherCM more integrated and working with the rest of FGFS in the
long run.

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-21 Thread Martin van Beilen

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Wed, Feb 20, 2002 at 07:16:59PM +0100, Christian Mayer wrote:

> sorry, but I can't understand that. I don't know why you try to do
> multiple work instead of working together and increasing the output.

That puzzled me too. It seems to me that fgfs has some (a lot
of?) 'orphaned' features. The problem is that the code is there,
but there's no way to activate these features, and no
documentation.

For example, I've found that the code supports multiple cloud
layers with varying degrees of coverage, from FEW to OVC. The
required textures appear to be present. Unfortunately users can
only set the cloud base for the first layer. Its coverage is
hard-coded to BKN, and the second layer is hardcoded FEW190.

That's one low-effort high-yield fix found, investigation
continues.


Eventually I'd like to be able to add and remove cloud layers on
the fly. I propose the following properties:

/environment/clouds/layer[n]/
(layers can be added from command-line,
configuration file or on-the-fly.)

altitude-ft (double)
thickness-ft (double)

transition-ft (double)
(what does transition do?)

coverage (double)
[0.0 - 1.0] sky coverage fraction; also obsoletes
status property. (0 -> status=false)

type (string)
Cumulus|Stratocumulus|Stratus|Cirrus

speed-from-north-fps (double)
speed-from-east-fps (double)
moving clouds, not implemented yet (is the
convention for clouds to or from?)

New commands for network properties interface:

mk{bool,int,long,float,double,string}
Create (and set) value of specified type

mkdir, rm (with alias rmdir)
you get the idea

Commands to be changed:

set
refuses to create new nodes (currently creates strings)

cd
refuses to 'enter' nodes with values


Misc:
Design a scheme to prevent deletion of "standard"
properties. (Add a FIXED attribute to SGPropertyNode?)


I'm not touching any weather-related code until this new
environment thing is resolved. I could get started on the network
interface though.

Comments?


- --
Regards,  "I RADIS, do you?"
=Martin=http://www.iradis.org/

PGP:  FE87448B  DDF8 677C 9244 D119 4FE0  AE3A 37CF 3458 FE87 448B


From: Martin van Beilen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [Flightgear-devel] New subsystem: FGEnvironment
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on 
Wed, Feb 20, 2002 at 07:16:59PM +0100
X-S-Issue: [EMAIL PROTECTED] 2002/02/22 01:33:59 
d40c2b6286479dc223dfafa8e81fdf19
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)

iEYEARECAAYFAjx1kgEACgkQN880WP6HRIvvYgCgiqaDwesPe1x0BXfRRysH9NTE
rkcAn1u8xThPV9W+cQTtgUpKFMTGd38P
=iy+s
-END PGP SIGNATURE-

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-20 Thread Christian Mayer

David Megginson wrote:
> 
> I've committed the start of a new environment subsystem to the CVS.

Hi,

sorry, but I can't understand that. I don't know why you try to do
multiple work instead of working together and increasing the output.

Apart from the FDMs using the weather stuff (all the necessary
properties are already exported so that should be a no brainer) and a
cryptic "set-up" system everything's there.

- layerd winds
- world wide coverage
- layered temperature
- realistical air pressure (not that of the tables that can't take
tamperature into consideration)
- gusts (ok, there's some code missing here, but it should be easy to
add)
- "realtime" worldwide weather

So what's missing?
- METAR
- an easy menu that allows you to set the weather manually 

but if you write that anyway, why aren't you writing it for the existing
code?

> Otherwise, FlightGear still defaults to Christian's weather subsystem.
> I am designing the new subsystem to be simpler than Christian's but
> well integrated into the rest of the program.

The only integration that's missing are the FDMs. And those can use the
current exported properties easily.

>  Right now, it simply
> tracks winds and visibility for a single point, but soon I'll be
> adding temperature, variability (i.e. gusts and changing wind
> direction), air pressure, magnetic variation, cloud information, and
> possibly even humidity and precipitation.  

Have you thought about world wide coverage? Or at least as few stations?

Adding that and you are as complex as the WeatherDB.


CU,
Christian

--
The idea is to die young as late as possible.-- Ashley Montague

Whoever that is/was; (c) by Douglas Adams would have been better...

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



Re: [Flightgear-devel] New subsystem: FGEnvironment

2002-02-20 Thread David Findlay

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Wed, 20 Feb 2002 01:32, you wrote:
> locations, together with METAR parsing (of course), but that may have

Can we have a menu option for automatically downloading METAR's, as well as 
an option to import/export metar file? BTW, Curt do you still have that site 
running with zipped up metars updating hourly? Thanks,

David
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8c2dmF2H7v0XOYBIRAuGGAJsEQRsNTApfTjczZlqNugB6LcPUFACeNWqk
9kTUIYMB26DxNoDQq88p3ts=
=V/st
-END PGP SIGNATURE-

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