                    ________       _____
_______  ________   \ \  __ \      \_\_ \
\_\___ \ \ \  __ \   \ \ \_\ \       \ \ \                            _____
  __\_\ \ \ \ \ \ \   \ \  ___\______ \ \ \  ________   ______   _____\_\_ \____
  \_\___ \ \ \ \ \ \   \ \ \  / / __ \ \ \ \ \ \ \ \ \ / / __ \ / / __ \\ \  __ \
    __\_\ \ \ \ \_\ \   \ \ \ \ \ \_\ \_\_\ \_\ \ \_\ \\ \ \_\ \\ \ \_\ \\ \ \ \ \
    \_\___/  \_\____/    \_\_\ \_\____/\_\____\\_\___  \\_\___  \\_\____/ \_\_\ \_\
_______      ____   ____   ____                  __\_\  \ __\_\  \
\ \  __\     \ \ \  \_\_\ _\_\ \__  Version 1.3  \_\____/ \_\____/
 \ \ \__    __\_\ \   ____\_\__  _\   ______ ______
  \ \  _\  / / __  \  \ \ \  \ \ \   / / __ \\ \` _\
   \ \ \___\ \ \_\  \ _\_\ \_ \ \ \__\ \ \_\ \\ \ \    By Anders Andersson, 2001
    \_\____\\_\___/\_\\_\____\ \_\__/ \_\____/ \_\_\



Contents
1. Introduction

2. What's new

3. Layout
3.1. Menu
3.2. Status
3.3. Windows

4. How to use it
4.1. Creating a polygon
4.2. Scrolling
4.3. The 3d window

5. Contact

6. Credits



1. Introduction
This is an editor in which you can make up to 256 3d polygons with up to 256 sides.
I call this collection of polygons an "object". This object is then shown in a 3d "window" in which you can move and rotate it. If you think you have made a nice object you can save it in order of being able to admire it later by loading it. If this is the case I would be honored to receive a copy of it.


2. What's new
Version 1.3
Added the two rendering modes, flat/goraudshading.
Added the TABLE class with value and index integers, I use it to zsort the polygons and then the polygons are drawn in the order of the index values.

Version 1.2
Reconstructed the 3d code.
Added OBJECT class which draws all polygons instead of calling the POL::draw(); for each polygon. POL::draw(); still exists since I need it for the temorary polygon.
POL:copy(); has been made safer.
The functions save(); and load(); are now members of the OBJECT class and they have also been made safer.

Version 1.1
Reset added to menu.
Changed 3d controls from keys to mouse.
Added graphics mode selection.


3. Layout
3.1. Menu
Up left on the screen you see five words, that is my minimal menu.
Click on the words to use it.
Quit ends the program. Pressing Esc will achieve the same thing.
Snap turns snapping on and off. If you don't know what snap is, you'll know by trying it.
Save saves the object in "test.sav". You'll have to rename it yourself.
Load loads the object in "test.sav". To load different files. Name them "test.sav".
Reset clears the object of all polygons.
3DMode n cycles the three rendering modes. Wireframe, flat and goraud.

3.2. Status
At the bottom of the screen you can see some figures and stuff.
At the left is the location in 3d space that your mouse is pointing at, the rest is too obvious to discuss here.
On the right side is six figures for the 3d window.
xyz position and xyz rotation.

3.3. Windows
Since this is an editor, most of the screen should be reserved for editing, and it is.
You have four "windows" of equal size whereof three are in 2d and one in 3d.
When you start the program snap is activated and that is why you have a grid on the 2d windows. When you move the mouse you will see a snapped pointer on the grid that shows where you are. These three windows are where you make polygons.
The top left window shows the object from above(x,z).
The bottom left window shows the object straight ahead(x,y).
The bottom right window shows the object from the side(z,y).
The top right window is your 3d viewer where you can move and rotate the objects.


4. How to use it
4.1. Creating a polygon
In a 2d window you can only point your mouse at two of the three coordinate values.
XY misses Z, XZ misses Y and ZY misses X, but since these windows are scrollable I have solved this problem by taking Z from the centre of the ZY window and X resp. Y from the centres of the XY window. This is showed by lines that cross these windows even if you are in another window.
Creating the polygon is very easy, just point at the coordinates of your first corner and left click. Then move to the next corner and click and so on. You'll need at least 3 corners and you can make up to 256 corners. When you have placed all corners you right click and the polygon will be stored and ready to play with in the 3d window.

4.2. Scrolling
There are two ways to scroll the 2d windows, with keys or with mouse.
Put the cursor over a window and press the arrow keys or hold the m key and move the mouse.

4.3. The 3d window
This part is controlled with keys only.
Hold the mouse over this window and you can 
rotate and move on all axis with mouse.
Hold M to move X and Y.
Hold R to rotate X and Y.
Hold Z to move and rotate Z.
You can change the rendering mode by clicking the 3DMode button.


5. Contact
ICQ# 106628808
Mail: trezker@hotmail.com
website: http://www.angelfire.com/art/dumlesoft


6. Credits
Heres a list of thanks to people without wich this program may not have been made.

Special
Fredrik Johansson	- Lead me into programming.
Fredrik Bckman		- Teached me c++ in school.
Shawn Hargreaves	- Made the Allegro lib. The only header included.

Common
Marcade			- QBasic legend.
Qbasic community	- Inspiration and example.
Friends			- Made me happy.
My teachers		- Was great.
Family			- Supported and sponsored me.