Now we calculate with metric values internally, however, the
fixed feet values in the source will have to be converted or
be used with SG_FEET_TO_METER for now.
Dirt and grass runways are generated by GenAirports/rwy_simple.cxx.
The runways are divided into two halves, "A" and "B" each consisting of
two triangles.
Runway half "A" is good.
Runway half "B"'s first triangle UV coordinates are a very short line,
and its second triangle's UV coordinates are a point.
[...]
[T]his patch does the Right Thing. It simply changes the reference
point so the UV coords for the B runway are positive. They were coming
out negative and getting clipped in build.cxx.
This reverts commit 5a6697b4e0b6e59a727868a912bff4c1fd8c91da.
Not genapts was at fault but the new TaxiDraw version (CVS HEAD). Robin Peel confirmed that the objects in apt.dat are listed top-down, i.e. the topmost element comes first.
- The VASI GS angle is properly parsed
- Don't assume given column numbers but properly split the lines at whitespaces
- actually make use of the order of taxiways as specified in the apt.dat
- make the min/max lat/lon work (patch provided by Torsten Dreyer on terragear-devel [1])
[1] http://mail.flightgear.org/pipermail/terragear-devel/2007-January/001389.html
favor of newmat11 which is much simpler, and seems to compile well on modern
OS's.) I need to do some further testing of genapts and until then, don't
assume the new mechanism is working perfectly.
situations
- Made the code a bit more robust and able to handle the handful of rare
occasions when the least squares nurbs interpolator fails.
- Add airport surface bases for towers, windsocks, beacons, and vasi/papi
lighting so they never are buried and never float. (I'm considering the
idea of doing this for the approach lighting too ...)
surface. I think I have this working robustly.
A few miscellaneous tweaks to handle latest X-Plane data (with a few new
runway surface codes we hadn't seen before.)
There are quite a few difficult cases where an airport is located on top
of a hill, or in a bowl, or has a significant elevation change near by.
I take the average elevation of the area and clamp the outlyers. However
these difficult cases "bias" the average elevation because the airport
surface may include much of the surrounding area.
This change to the code computes the airport elevation *only* based on the
actual airport geometry node and ignores all the surrounding nonsense that
might exist. This doesn't make things perfect, but is a *big* step forward
for airports in areas with significant elevation change nearby.
precision with floats.
- Restructure how the airport surface is sampled just a bit.
- Solving for X,Y given U,V on a nurbs surface is a little bit tricker than
I first thought. If you change one demension of U or V, you can change
both X and Y. We need to solve for each X, Y axis independently, and
then iterate in case moving in the other axis has taken us away from the
solution in the first axis.
- Add a slope constraint on airport surfaces.
Expose a polygon function that will split up long edge lines to keep the
max edge distance below some threshold. This could be used for instance
to reduce long lines in polygon area shapes so they can better follow
the underlying terrain changes.
The attached patches significantly quieten the output from genapts, which in it's current form resembles the universe flying by on a bad hair day Remember chaps, console output on Windows is slooowwwwww... Normal service may be resumed using --verbose or -v. I've also added a short help, obtainable with --help or -h. I've also added a couple of extra options, --airport=abcd for just generating a particular airport, and --tile=<[we]xxx[ns]xx> for generating a 1x1 degree tile. We currently have --chunk=<[we]xxx[ns]xx> for generating a 10x10 degree chunk, and I'd like to eventually add --tile as an option to all tools that take --chunk.
This one adds the tile option to
tgvpf.
Erik Hofman:
Some small code changes for IRIX.
Before:
- if it's a concrete taxiway over 150 ft wide, assume it's an apron
(confusingly called "tiedown")
After:
- if it's an asphalt or concrete taxiway over 150 ft wide, *or* if
it has no blue taxiway lights, assume it's an apron
markings.
- Fix a couple very small alignment/sizing problems.
- Use a different texture (similar to rest) before aim points on nonprecision
runways. This will potentially make things easier if we want to add
skid marks to the textures.
- Fix a couple bugs (el stupido) in precision marking generation.
on the command line with the --terrain= option. You can specify as many as you like. Directories specified on the command line will take precidence over
the default directories and the directories will be searched in the order
specified.
in Robin's data.)
- Code adjusted to work with slightly modified input data format (part of
our move away from metakit.)
- Eliminate some debugging output.
Attached are patches to Terragear to enable it to compile out of the box on
Cygwin (once all the relavent libraries have been compiled). Specifically
they fix a conflict with another version of min/max somewhere on the
system.
but because of the use of default arguments, the compiler wasn't flagging
this as an error. This caused a) much stupidity and b) additional stupidity.
I also found a case where I passed in a length and width extention parameters
but, used the length parameter twice ignoring the width parameter. This
yields much more sensible and expected results when building the grass buffer
zone around a runway.
intermediate mode. The goal then is that these elevations would be
preserved throughout the tile construction process and the surrounding
geometry would fill in without gaps. This has potential applications for
airports and runways of course as well as roads, rivers, streams, railroads,
or any other object where we might want to control the final elevation in
advance.
position.
Terrasync runs as a separate process and accepts the --atlas=port format.
The fgfs output tells the terrasync util where FlightGear is currently flying.
Terrasync will then issue the appropriate commands to rsync the surrounding
areas to your local scenery directory.
As you fly, terrasync will periodically refresh and pull any new scenery tiles
in the vicinity.
This also works if the scenery on the scenery server is update. Rsync will
pull any missing files, or any updated files.
There is a chicken/egg problem when you first start up in a brand new area.
FlightGear is expecting the scenery to be there *now* but it hasn't been
fetched yet. I suppose without making a more complex protocol, the user
will need to be aware of this. The user could restart flightgear after the
initial rsync completes, and then after that everything should be good,
assuming the user has the necessary bandwidth to keep up with flight speeds.
Final notes:
At the moment Alex Perry has a partial rsync server, but I don't know it's
status. I hope to have a full server up and running at some point soon.
Currently the terragear utility just echos the commands it would run to
rsync the data, it doesn't actually run the commands. This is a work in
progress.
equal to the elevation of the highest light.
Approach lighting systems don't rise and fall with the prevailing terrain.
This prevents portions of the approach lighting system from dipping below
ground level in cases where the surrounding terrain is simplified and doesn't
perfectly match the DEM data.
confused by the alphabet soup.
- Forgot to impliment the SALS(F) version of SALS approach configuration.
- Was generating SSALS when the system was requesting SALSF.
it involved creating a 2d runway object of the right size, rotating it and then
trying to back solve for the actual lon/lat. This and a few other problems was
causing problems with subsequent texture coordinate calcs for the runway
surface textures. It also could have contributed to runways/lighting being
slightly misaligned with the ILS's. Then lots of minor cascading changes as a
result.
- in main.cxx, make the default log level SG_INFO rather than SG_DEBUG
(developers can easily change it back during testing)
- replace all instances of exit() with an exception throw, caught in
main.cxx, so that the program can go on processing the rest of the
airports; to restore the old behaviour, just add an exit() to the
catch clause
(Unfortunately, this still does not guarantee a full processing run,
because triangle.c in the library can invoke exit() when it gets
hopelessly confused.)
The following files have been changed to enable the latest Terragear CVS
to compile with MSVC++ 5.0
.\construct\clipper\clipper.cxx
for( int i - lots of places
.\construct\genoutput\genobj.cxx
fix directory logic for windows, line 320 and following
.\construct\main\main.cxx
windows does not have an opendir function
added code for windows directory functions
disabled the mem allocation limit code - windows does not
have similar functions
for ( int i - several places
.\construct\match\match.cxx
moved the definition of file and command outside of the ifdef line 420
.\lib\e00\e00.cxx
for( int i - several places
.\lib\e00\e00.cxx
use simgear/compiler.h constructs
.\lib\geometry\contour_tree.hxx
removed a cout statement
.\lib\geometry\poly_support.cxx
added float.h changed 1.0e+999 to DBL_MAX, windows doesn't go that big
lots of for ( int i changes
lines 193 and 208 no != operator defined - changed logic
line 801 flag should be int, not bool, get_hole_flag returns int
.\lib\landcover\landcover.cxx
.\lib\landcover\landcover.hxx
add include simgear/compiler.h
see comments
.\lib\optimize\genfans.cxx
function canonify added return at end, windows complains
added using std for cout and endl
.\lib\optimize\genstrips.cxx
function tgGenStrips no return value, moved by_node into outer scope
fix for ( int i ...
.\lib\poly2tri\construct.c
added include <memory.h> for windows
remove unused variables lines 435 & 437
.\lib\poly2tri\misc.c
added HAVE_SYS_TIME_H logic for sys/time.h include file
added logic to uses windows functions for time and rand
.\lib\poly2tri\monotone.c
added include <memory.h> for windows
lines 286-288 remove unused variables
.\lib\poly2tri\tri.c
remove sys/time.h - no time functions called
added include <memory.h> for windows
.\lib\polygon\polygon.cxx
function polygon_to_tristrip will not compile I don't think the
logic is complete, no returned data added if else endif around
function and polygon_to_tristrip_old, renamed _old function.
Search of code reveals that function is not called by anyone.
.\lib\polygon\superpoly.cxx
changed include <superpoly.hxx> to "superpoly.hxx"
.\lib\polygon\superpoly.hxx
add include <windows.h> for windows before include <gl.h>
needed for definitions used in Microsoft version of opengl
.\lib\shapelib\dbfopen.c
added include files for windows
lines 195-197 271-272 515-517 removed unused variables
.\lib\shapelib\shpopen.c
added #include <stdlib.h> for malloc() and friends
added include files for windows
line 279 527 813 1127 removed unused variables
line 827 cast result to int
.\lib\win32\mkdir.cpp
documented function, remove debug lines
.\prep\demraw2ascii\main.c
lines 46-50 remove unused variables
.\prep\demraw2ascii\rawdem.c
line 47 changed logic to compile with MSVC
line 244-256 set real constants to float, windows complains with
double constants
.\prep\genairports\build.cxx
lots of for ( int i changes
.\prep\genairports\main.cxx
fix mkdir logic for windows
.\prep\genairports\output.cxx
added using std cout endl
lots of for ( int i changes
fix mkdir logic for windows
.\prep\genairports\runway.cxx
for ( int i changes
lines 117-118 161-162 remove default values for function parameters
.\prep\gshhs\main.cxx
added using std cout
.\prep\shapefile\noaa_decode.cxx
.\prep\shapefile\shape_decode.cxx
added using std for cout
lines 45-49 moved unused variables inside #if 0 block