VTP Software Status:
Feature Requests and Other Desirable Improvements
  - Enviro
      - Buildings
		- Interactive creation: not very useful until we can apply building styles.
 
		
       
      - Vegetation: load at runtime
 
      - Fences:
      - more options on chain-link, should allow top & middle poles
 
    
       
      - Raw
      - Javier in Spain writes: "Any point [feature] could be linked to any file (just as a HTML hyperlink 
		does).  A hyperlink icon that was displayed every time you passed your 
		mouse over a text label of a point data in the Enviro screen. By 
		clicking, a new window would be displayed showing a picture of that 
		place, or a text file.."
 
    
       
      - Utility Lines:
      - Should be able to delete structures (Luis Neves)
 
      - The structure dialogue should hold the last structure type between 
		mode toggles. (Keltie)
 
      - Start/end in creation of Utility structures (Keltie)
 
      - Editing of Utility structure properties (Keltie)
 
      - The material properties of the wires could be exposed. I often use a 
		shiny, mostly opaque, dull grey that is shaded and lit. (Keltie)
 
      - A global LOD control for wire segments could remove them when a single 
		pixel line is way too thick for their representation perhaps. (Keltie)
 
    
       
      - Panoramic rendering
		- Flaxman: Enviro could produce a panoramic rendering of the terrain, 
		which could then be used as the skydome for another terrain.
 
		
		 
      - Navigation
		  - The Grab-Pivot navigation is too awkward for general use (and not 
		  gimbal-locked). Needs a stable, smooth implementation that behaves 
		  like Google Earth's grab-navigation, because of all the people that 
		  have grown use to that one.
 
	  
	   
	  - Roads
		  - Interactive creation. Interactive editing. Need to apply many 
		  constraints to prevent the user from creating bad geometry.
			  - Snap to nodes and closest point on link.
 
		  
		   
		  - Possibly, class intersections into numbered-type based on 
		  situation. 
 
	  
	   
	  - Elevation
		  - osgEarth surface, e.g. TMS grid
 
		  - There's no good reason NOT to support multiple elevation surfaces, 
		  and several cool reasons to do it.
			  - (Even multiple types, i.e. one tileset, one elevation grid, 
			  and several TINs)
 
		  
		   
	  
	   
    
   
  - Enviro - Earth View
  - runtime control of the size of point data
 
  - ability to page in higher-resolution earth texture, ala BMV (Geoff Osborn)
 
   
  - VTBuilder
      - Vegetation
      - Allow extraction of green areas from DRGs, for use as a single-valued 
		bitmap vegetation layer
 
      - There should be a way to unselect a species or biotype file in 
		VTBuilder without closing and reopening the program (Flaxman)
 
      - "Why not make the biotype (layer) optional? The default could be a 
		type picked from a popup menu of biotypes, which would be applied to all 
		polygons. This would work well for many GIS layers that have a single 
		feature (i.e. woodlands). An option in the dialog box would be to 
		specify veg biotype by shape file attribute field from a popup list. A 
		second option would be density by attribute." (Flaxman)
 
      - ability to use multiple vegetation-type layers (e.g. LULC) (might be 
		working already, should test)
 
      - generation of vegetation should avoid putting trees on other features 
		(roads, buildings, water bodies..)
      - either implicitly, or by explicitly subtracting a no-plant area for 
		each feature from the density layer
 
    
       
    
       
      - Roads
      - option to render roads into a bitmap for export
 
      - export road geometry somehow to MAX, perhaps even via VRML, so that 
		artists can model custom buildings around them
 
    
       
      - Water
      - option to render rivers/water bodies into a bitmap for export
 
    
       
      - Buildings
      - ground carving/flattening under buildings
 
      - "turn" buildings so that their "front" faces the nearest road - 
		optionally with a "setback" which defines minimum distance from the 
		road/sidewalk's edge
      - difficulty: this would require a way to indicate which side is the 
		"front" of each building
 
    
       
      - Set properties across multiple buildings, e.g. roof type.  (Paul 
		Unterweiser)
		- It's not clear how an efficient UI could handle this, 
		without numerous new dialogs for each possible building property.
 
		
		 
    
       
      - Elevation
      - Option to load only the header from BT/DEM/other formats
		- Would allow fast manipulation of 
		large datasets.  Similar to how GDAL caches large images, but for 
		elevation.
 
		
		 
      - Display name of elevation/image layer under the mouse, as the mouse moves.
		- this info (and much else) could go into a new "report" window under the 
		layer list view
 
		
		 
      - In the Profile Tool, saving 
		the cross sections as a any format that can be easily 
		imported to Excel file would be great, because excel has many useful 
		statistic tools to analyze slopes, slope trends etc. (Daniel Mege)
 
		- Ability to change, in-place, the data type of elevation layers (float 
		<-> short)
 
    
       
      - Images
      - Solve the zooming-in offset limitation. Difficult due to the stretch/mask problem.  Maybe 
	  solvable with TransparentBlt
 
    
       
      - Area Tool
		- Could have a modeless dialog for the values, so you can see the 
		values changing as you drag the area (Flaxman)
 
		
		 
      - USGS
		- Option to display the USGS 7.5-minute grid
 
		- Look up and display USGS data availability - how? connect to a WFS 
		server for this?
 
		- Allow user to indicate area of interest, then automatically find, 
		download and import the USGS data from their online repository
 
		
		 
      - Raw Import
		  - Could get rid of VTBuilder "import points from table" and just 
		  make it a feature of import raw. and expose CSV too. 
 
	  
	   
    
   
  - VTBuilder / vtdata
    
      - Support for floating-point GeoTIFF as an elevation format
      - There has been some indication on the GeoTIFF mailing list that 
		GeoTIFF may supports this
 
      - Current status: we can already import and export to 16-bit integer 
		GeoTIFFs.  Apparently Global Mapper will read and write 
		floating-point values from GeoTIFFs, although this is surely outside the TIFF 
		standard.
 
    
       
      - Buildings (
vtBuilding) could allow a 2D vector which 
		indicates which way the "front" of the building is, which would have 
		several uses, such as styling it differently 
    
   
  - Enviro / vtlib library
    
        - Rivers / Streams / Water bodies
      - Sofia of VHLab - CNR-ITABC - reports:
 
      - "Perhaps the best solution for us is to create an integrated object. 
		If we have a SHP file, for instance, (a line representing a river) in 
		VTBuilder
      - we have to create something like a dialog box to insert the 'width' of 
		the entire line and the 'depth' (from the terrain downwards)
 
      - the elevation should be now reprocessed in order to lower the terrain 
		(following the given indications of width and depth)
 
      - the river banks should have a certain angle
 
      - finally we can texturize the bottom, creating a polygonal that follows 
		the original shape, but at the level of the bottom of the river..."
 
    
       
    
       
      - Building3d: Support more building and roof styles.
		- One example is the "hip-gable" roof for rectangular buildings; hip with gable 
		in the center.  This doesn't fit in the current scheme, because 
		there are roof planes which do not correspond to a roof edge.  
		Multiple edge lines meet at a single point on the roof footprint.  
		It's not clear how to encode such a thing (without just going to full 
		polygonal representation.)  A closely related subject is dormers.
 
		- Should we move away from the pseudo-fixed-length 
		representation to a full, arbitrary length building description 
		language?
 
		- Round buildings and curved walls are currently very poorly supported 
		(and inefficient), it would be good to allow some indication of this 
		kind of geometry in the VTST file. 
 
		
		 
      - Vegetation
		  - Re-enable polygonal Xfrog vegetation (assuming we ask Greenworks' permission)
 
		  - automatically create single billboards (imposters) from the polygonal 
		vegetation
 
		  - automatically create multiple-view billboards from the polygonal 
		vegetation
 
	  
       
      - Sky Dome: should use correct moon/stars declination based on 
		latitude.
      - status: currently, only Sun location is correct.
 
    
       
    	- Structure Materials
			- Materials in the Fences and Buildings panel still continue to 
			show in English, despite the rest of the UI in i18n.  Materials 
			are read from an .xml file; perhaps languages could be added there, 
			just like plants do in species.xml?
 
		
		 
    
   
  - vtdata library
    
      - ECW support (through GDAL), out of core, for producing tilesets from 
	  it; or could we even make the tile on the fly?
 
      - Read/write utility 
		structures (
vtUtilityMap)
		- No format yet exists to save/load them - do we have to invent one?  
		The only 'standard' in existence seems to be the ESRI data model for the 
		power industry, but that is massively over-complex.
 
		  - Import from OpenStreetMap.
 
		  - Import from USGS DLG MT.
 
		
		 
    	- Read/write GPX files - does OGR already do it?
 
		- Vegetation: as above, real serialization for biotypes.
 
		- Roads:
			- Import/Export OSM (OpenStreetMap).
 
		
		 
    
   
  - vtui library
	- The Plant dialog 
	could/should be shared between Enviro and VTBuilder, by putting it in vtui
 
	
   
	- Network loading
		- Ideally, every single kind of data should be loadable from a URL; 
		the first time it is loaded, it is cached locally, then read from there, 
		so file readers don't have to be re-written, they just need a front-end 
		which transfers the file with CURL, displays progress to the user, and 
		maintains the cache.
 
		- After that's working, then the next step would be to make a version 
		of Enviro that's a Firefox plugin
 
	
   
    - Hardware
		- GPS direct access
			- currently you can import data from Garmin's utility program's format into 
	VTBuilder, but it would be better to support reading data directly from GPS 
	devices
 
			- this may be possible by leveraging the GPS3D code (see
  			Potential Libraries)
 
		
		 
	
     
  - File Formats - Biotype
  - Flaxman: "Stems per square meter is a pretty awkward unit for everyone 
	except herb ecologists... how about stems per Hectare instead?"
 
  - Flaxman: "The biotype file probably should get upgraded to XML (from txt). 
	At that point, it would be nice to add biotype names, and sanity check the 
	file on load."
 
   
	- Vehicles
		- Re-enable airplanes (should be extension of vehicle functionality); 
		leverage FlightGear?
 
	
	 
Efficiency and Speed Optimization
  - Forests
  - To speed up tree billboard rendering, try using Alpha-Testing instead of 
	Alpha-Blending. Is depth-sorting of the blended trees the largest 
	bottleneck or not?
 
  - Test forest draw speed by using a single opaque material for all trees: 
	how dependent is speed on state change?
 
  - If texture state change is the bottleneck, automatically merge all the 
	tree textures in a single texture (or smaller number of textures) to avoid 
	(or minimize) the state-change between tree appearances.
 
   
  - Overhaul LOD grid usage - try a hierarchical tree of LOD nodes instead
  - How would this handle objects of varying LOD distance, such as the simple 
	and full-representation of building models?  Could objects be placed at 
	different levels of the tree depending on LOD distance?  Perhaps try a 
	sphere-nesting approach ala Jonathan Blow.
 
   
Long-term
      -  Use SLD for persisting Raw layer stylings?
 
	  - 'Coverage' layer type in VTBuilder/vtdata, which encodes ground cover 
	  type (grass/gravel/pavement etc.)  Polygonal?
 
	  - Create an English command grammar for representing scene editing 
		instructions, implement first as a text-console, with possibility to use 
		with voice input.  Ref: VTP long-term 
		goals.
 
    
Functionality Matrix