
x loading wavefront objects from cmd line causes segfault?
- tooltips for global scope radio buttons
- extra column in group_browser : toggle mesh visible/not visible
- remove instances of "struct model_doc"; it's Model now.
- changing selected group causes resize event
- click on cursor-coordinates-field to cycle through various model statistics
  (num verts/polys/meshes, depth of undo stack, etc)
- change undo_enable/undo_disable such that, instead of turning undo_enabled
  on/off, they increment/decrement it.  This way, code that does this:
  func1: undo_disable
  func1: func2
  func2: undo_disable
  func2: do stuff
  func2: undo_enable
  func2: return
  func1: do stuff
  func1: undo_enable
  ... won't cause problems.  Test undo_enabled against 0 (or whatever the 
  initial value is) to determine if undo is enabled.
- change model_set_currents such that it only changes current_* to the 
  defaults if 1) any of current_* is null 2) any of current_* can't be found in 
  model (UPDATE not really important)
- put label in tex_app dialog, telling user where to go in order to set 
  texture repeat values.  (or even put a button there that opens the 
  edit-current-mesh dialog directly)
- I'd like to be able to pass ints into the notify signal functions.
  That way, instead of having 3 ::model-*-changed signals, we'd have just 
  ::model-changed, and a bitmask indicating which aspects of the model changed.
  UPDATE - actually, that bitmask thing is a bad idea, but it would still be 
  nice to be able to pass args into the signal funcs.
- gtk2 effort:
x	gtkglarea -> gtkglext
	switch glpreview.c from gtk_widget_get_gl_context/gtk_widget_get_gl_drawable to view->glcontext/view->gldrawable
x	axis markers for origin
x	remove/change deprecated stuff
x	group_browser needs rewrite
	x	finish splitting into 3 files
	fix pixmap code (switch to gdkpixbuf or gtkimage) in 
		x toolbar
		x toolbox
		x group_btns
		tex_man
x	tex_man needs rewrite
	texture loading to be handled by gdkpixbuf
x model.c new function: model_set_default_current()  - 
  would set currentMesh and currentnode 
  to reasonable defaults.  would be useful in many places in the code.  
  we may have this actually implemented somewhere, it's just a matter of finding 
  it and turning it into a func.
	
- should probably check to see if 3ds stuff still works
- pango stuff for origin markers is (kinda) in wrong place; maybe should move 
  'glp_build_font' out of glpreview and into view
- texturing is inefficient, glp_set_current_tex in particular... we should 
  have ogl "remember" textures; would mean changes to Texture struct, 
  texture would have to be initialized/created/etc once for each context/view...
  etc
- mesh.c : mesh_polygon_add should prolly check to see if nearby vert exists 
  in *model* (old code used to check verts in mesh, but new code doesn't 
  check anything)  If this change is made, can probably simplify 
  pywrapper.c's poly_insert().
X python wrapper funcs really don't need to refresh all 4 windows after every 
  action.  Could have them refresh after script finishes or something like that.
? segfault if try to load non-existant file from command line?
  'kludge3d foo'  (or is it just files w/ no .extension?) 
  UPDATE - unable to reproduce 
- ability to change elevation of 3d view's lookat point :)
- set keyboard accel'tors for mesh new/edit/etc, other dialogs too
- deleting a group/mesh causes currentmesh to become invalid; should prolly 
  at least set it to the first group/mesh or something like that...
- vert rotate around active axis (tool tab -> button) fucks up the clipboard
  (why?)
- ability to flip ortho views around
- tex_app should show texture as it would appear in-engine; ie the texture 
  should be repeated in the window according to the tex-repeat vals of the mesh 
  that the polys belong to
- should probably notify user if user selects polys from different meshes and 
  tries to edit their texture coords
X texture repeat entry fields in tex_app don't work
- keyboard shortcuts in tex_app act weird; end up changing input focus 
  between widgets
- vertex drawing is slooooow.  any way to speed it up?  maybe billboarding?
  does billboarding update the z buffer properly?  I'm not worried if verts 
  have wrong drawing order from aesthetic point of view; it *would*, however, 
  affect picking.
o mouse buttons 4 & 5 to zoom in and out 
- tool to remove unused verts
- when option "show vertices" is disabled, verts can't be selected
  (desired behavior or not?)
- hide/show vertices/polys code is naive and buggy to the point of uselessness.
  verts/polys should be made visible before being deleted!
  Also, vertex_hide_selected (and likely poly too) shouldn't mess w/ the 
  sel verts list directly, as this will screw up the undo stuff
- move clipboard code to clipboard.c, move clipboard_* and selected_* there too
X delete selected verts/polys (ctrl-K)
- CUT, COPY, PASTE FOR POLYGONS
- reformat code; 4 spaces indentation -> tabs
X re-org texture stuff
- load pngs
- load tgas (loader can be found in citybuilder code)
- load bmps (loader can be found in graphthing code)
- multiple documents loaded at once.  goes hand-in-hand with re-org of 
  doc_load_save; would put that sort of GUI stuff in a "model_man.c" or "doc_man.c".
  could either have a new notebook tab w/ list of loaded models (click-to-set-current)
  or could put in menu list
X finish error-queue stuff
- finish support for 3d file formats (texture loading, specifically)
- insert external file (probably listed on the "group" tab)
X rename model Model
X rename tex Texture
X move model_root, model_verts, model_textures, current_node, etc to 
  a global struct model_doc (aka Model) (call it something like the_model...)
- ...perhaps "selected_*" too
X change everything in model.c to take a Model as arg
- move gui stuff out of doc_load_save, into a sep file
- compile with --with-dev and fix EVERYTHING
- move picking stuff out of glpreview.c and into sep file
- rename glpreview to something that makes sense
- finish the undo stuff: vertex add, del, etc
~ expose events don't seem to work any more
~ weird opengl behavior; for non-mesa ogl implementations, ogl viewport won't 
  be redrawn after a resize 


~ some form of documentation
X port to gtk2

- replace some instances of g_slist_append with g_slist_prepend (maybe)
X fix the damned drag-n-drop AGAIN

X interactive rotate
- interactive scale
X interactive extrude, not just "extrude, and move the sel.polys 1 unit in direction of normal"
X move polygons
X here's how interactive extrude, poly move, and poly rotate could work:
  on mousedown: unsel all verts, perform extrude if needed, sel verts in polys
  on mousemove: perform actions on sel verts
  on mouseup: well... that's it really
  The disadvantage would be that we'd lose the currently selected vert list...
- swell/shrink of selected polygons

- move clipboard stuff to separate file
- clipboard cut and paste of polygons ???

X architecture issue:  verts should be stored in one-big-list
- architecture issue:  verts should know the polys they belong to?


- md2 loader?

? the initialization/startup code should take care of creating the root node...
  no need for the importers to do this...

- mesh deform (pull on vert, elastic effect on other verts in mesh)
- mesh smooth (there's something called the L???? Method, used in image
processing and 3d modellers... just takes the average of the N surrounding
vertices as the new value for a given vertex)

X polys w/ numverts != 3 ???
X hide/show verts, polys and groups
- fix texture paths (basename only?)
X some way to join groups together
X some way to split groups apart
- new tool: weld verts together (not just snap)
o switch to imlib for loading images?


X command-line option to load a file on startup (ie 'kludge3d teapot.ac')

X texapp dialog
X load textures when loading model
X fix save-texture-info when saving model (when does this break?)
  update: saving texture info doesn't work w/ >1 texture ?
X clear all tex lists on newmodel / loadmodel

X rewrite vertex / poly selection (use ogl selection buffer, etc)
o add prefab insertion (cubes, etc)
X finish group ops ("duplicate group", dnd stuff, etc )
X figure out why ogl is being so weird wrt :
    X texturing (only textures the xy view, changes the linecolor afterwards, etc)
    X vertex order (changes to "ccw", "cw", "all" only affect the 3d view)
    X polygon sorting (in "all" mode, polys are drawn out-of-order)

X grid snap

- for 3d view:  "walkthrough" mode

X about main.c:
    X toolbar should initialize click_mode[], not main
    X group_manager should handle setting the current_* stuff

X "new" should do more than it currently does... it should also create a 
  new mesh as a child of the World (so that people know not to add stuff to the
  root group)

X group_manager should make the World the selected group when there is a 
  newmodel or loadmodel (or should it be the first non-world group?)

X implement tool-palette switching  ie ctrl-1 sets mousebuttons to something
  like vertsel,viewzoom,viewpan  ctrl-2 would be tritex,triadd,viewpan  ...etc

x fix X crashes
x fix weird selection/dragging behaviour
x add AC3d file format saving/loading... remove b3d format support
x multiple vertex selection
x zooming/panning in the 2d views, with extra button-states
x extrude, or at least vertex copy&paste
x heirarchical mesh grouping / object tree







