Low Polygon Modeler
Crappy Documentation v.4
by James O'Donnell
james@rustfall.com
http://www.rustfall.com/osidio/
-----------------------

Release info:

A basic tutorial can be found here:

http://www.rustfall.com/osidio/videogame/lpmtutorial1/

Make sure you report all bugs to the forums so that they can be fixed for the next release. Also suggest any tools / functions you would like to see so that we can make the program better. 

Mouse Controls:

Left 	 	- Tool
Middle  	- Scroll viewport
Ctrl + Middle	- Zoom viewport
Right 		- Menu
Ctrl + Right	- Tool menu

Keyboard Controls:

Space		- Select Vertex / Polygon Tool (Toggle)
		- Hold CTRL - Remove from selected
		- Hold SHIFT - Append to selected
v		- Add Vertex Tool
m		- Move Tool
r		- Rotate Tool
R		- Quick 90 degree rotate
s		- Scale 2D / 3D Tool (Toggle)
p		- Create Polygon
b		- Create Box Tool
e		- Extrude Tool
n		- Snap Together Vertecies
`		- Invoke bounding box limits on all
l		- Draw normals (polygon normals are orange, vertex normals are blue)
k		- Draw Poly<->Bone Connections
B		- Assign Polys to Bone
q		- Create Spline
w		- Create Lathe (from Spline - kinda wonky)
ctrl+/		- Shrink + Align GUI Windows (kind of sucks)
arrows		- Scroll viewport
pg up/down	- Zoom viewport
home		- Toggle Gui (hide / show)
backspace	- Deselect EVERYTHING
F1		- Select Vertex Tool
F2		- Select Polygon Tool
F3		- Select Bone Tool
F5		- Save (with current name)


Console Commands:

/open modelname				- Open a model
/save modelname				- Save a model to a new name (otherwise just use ctrl+s)
/loadtex texture.bmp		- Load a texture into the UV mapper for the current group (only loads bitmaps)
/setbb x1 x2 y1 y2 z1 z2	- Set Bounding Box
/showtex					- Show the UV texture
/hidetex					- Hide the UV texture (black box)
/setx x						- Set selected verts x value
/sety y						- Set selected verts y value
/setz z						- Set selected verts z value
/setcylinder slices stacks	- Set number of cylinder slices and stacks (min stacks: 1, min slices: 3)
/flattenpolys				- Flatten selected polygons (make all vert normals same as poly normal)
/smoothpolys				- Smooth selected polygons (average vert normals with surrounding polygons)
/polycount					- Returns total polycount
/setcolor r g b a			- Set the color of the model 

Other Info:

- Textures can be any size (I think) but for now the UV viewport is capped at 256x256 (this will change). It's probably best to use 256x256. The bitmap should be a 24-bit windows bitmap.
- A normal is a vector that is perpendicular to a polygon/plane. This lets the computer know which way a polygon is facing so it can calculate how it should be lighted.

Coming soon:

- Multiple groups (meaning multiple textures)
- Materials / group editor
- Vertex IDing


Changelog:

v.4
-----------
- Fixed: You can now scale something that is flat on one axis (doesnt compress into a singularity)
- Fixed: Can now scale in UV window (doesnt show guidelines yet)
- Added: Skeleton stuff 
	- Tools: Select bone, Create Skeleton / Add Bone
	- Functions: Assign polygons to bone (B) 		
- Added: Change Material Color
	- Function: /setcolor r g b a
- Added: Selection Hotkeys (Hold CTRL: Deselect all of type, Hold Shift: Select all of type)
	- F1: Select Vertex
	- F2: Select Polygon
	- F3: Select Bone
- Added: Rotate tool (r)
	- 'R' is Quick 90 degree rotate

v.3
-----------
- Added simple Undo function (hit z). The default number of undo states is 50, which should be plenty. There is no redo yet so be careful.
- Added set value commands (/setx, /sety, /setz). This assigns all selected vertecies the appropriate entered value. 
- Added a simple grid. The grid squares are 1x1 each. 
- Added cylinder tool. Default stacks: 2, slices: 8. This is, of course, a polygonal approximation of a cylinder.
- Added a light (so you can see the shape of the model)
- Added vertex and polygon normals. This is necessary for proper lighting. You can view the normals by holding 'l'.
	- Functions: /smoothpolys, /flattenpolys
- Fixed zoom (now it stays in place)
- Added tool menu (ctrl + right click)
- Changed up GUI appearance a little
- Polygon / Vertex normals are written/read to/from file

v.2
-----------
- Changed model format: UV coordinates are now part of the polygon class, meaning each polygon (triangle) has 3 unique UV coordinates even if it shares one or more vertecies with other polygons. I also changed a bunch of stuff that handles UV coordinates, fixing a lot of little things.
- Fixed UV move tool (you can see where you are moving it to)
- Fixed CPU usage problem by making the screen only update when the user does something (moves mouse, keypress, etc). Before it was redrawing as fast as it possibly could and took up maximum CPU usage (ugly).
- Current tool now is visible in GUI windows (draws on top)
- UV Viewport doesn't resize when you resize window (default size - 256x256)
- Can Save / Open textured models
- Delete selected vertecies / polygons (delete key)
- New console functions: /setbb, /showtex, /hidetex
- Added scroll/zoom function key press (arrows / page up/down)
- A sample model and texture has been included (basicframe.lpm and basicframe1.bmp)


v.1 - 02/20/06
-----------
- First release