The development goes first to the breadth, to test what is possible
and to test the  first design.  Later  we will go to the depth  and
implement all the little things one need.  So the todo-list expands
fast.  Also the generated files (*.3dds) could be incompatible from
one to next version.  Comments, wishes, support and bug-reports are
welcome. Mail them to   k4de@gmx.de.

Please have a look at K4DEs homepage http://come.to/k4de





TODO:

-	create a new dialog for the menu item 'About K4DE'
	with homepage, mailadress and logo
-	picmap to mesh (0.3)

	* sphere
	* cone
	* cylinder
	* torus

	* we need not to implement box because its heightfield

-	save a rendered picture
-	render with mask (replace the backgroundcolor by photo)  (0.3)
	render mask (all objects are white, background is black)
		implement a #define something for that
-	return values from animscript
-	add sessionmanagement
-	configurable layout (menus,widgets,...)  (0.3)
-	add version to load/save-functions  (0.3)
-	clean up freetype-code (font.cpp)
-	load without texture
-	open properties of textureelements by doubleclick
-	center object (put the 0point to the middle of boundingbox)  (0.3)
-	renaming views
-	docking-widget
-	cameras and animation
-	multiple views  (0.3)
-	add 3d-tracing (colored glasses, ...)  (0.3)
-	add to preferences:  (0.3)

	* n gridpoints in xz, xy, yz (dialog)
	* description of grid (coordinates)


-	add isClose and close to cmesh  (0.3)
-	list<cmesh*> cmesh::convexList() which divides a cmesh in convex cmeshes  (0.3)
-	cmesh is a solid pov-object (it is the merge of all its convex sub-meshes,  (0.3)
	the sub-meshes are the instersection of all their triangles
	represented by orientated planes) slow but powerfull
-	converterfunctions from objects to cmesh  (0.3)
-	cmesh functions for csg  (0.3)
-	k4de-logo (model)
-	dragvectors in parallelprojection
-	3d-clipping  (0.3)
-	animate the view
-	include objects
-	resort the children of an object  (0.3)
-	paste & rename (rename the objects that are pasted by template)  (0.3)
-	copy-object or extention for refptr (templates)  (0.3)
-	delete textures
-	show and change the view ratio
-	special a*-functions
-	copy- and changeprotection  (0.3)
-	anim must not block the surface  (0.3)
-	spotlight dialog
-	previewwidget which renders in background
-	worldtree column hide
-	cone dialog
-	torus dialog
-	triangle dialog
-	complete heightfield dialog
-	other blobobject
-	copy-constructor (all other objects)  (0.3)
-	opengl support  (0.3)
-	support for other fileformats (TDDD, TTDDD, DXF, renderman, 3ds, ...)  (0.3)
-	read povray (if possible)  (0.3)

- 	Textureelemts (+Dialogs):
		-	Texturelists
		-	Texturemaps
		-	Pigmentlists
		-	Pigmentmaps
		-	Normalmaps
		-	Normallists
-	Texturewizard
-	Better Dialogs for Maps
-	only Texturelibrary in mainview can be exported as POV
-	update of Texturelist could be better (for slower Systems)
-	drag&drop doesn't test on double names
-	Dialogs for Pigment, Normal,.... should have an add Subitem(s)
-	Clustersupport to render a scene/animation
- 	Preferences to layout the GUI
-	save Preferences to 3dds-File (??)

-	macros, constructors like
	-	tree and plant generator,
	-	stone and surface generator,
	-	humanoid generator,
	-	building generator,
	-	animal generators like
		-	insect generator
		-	pet generator
		-	fish generator
		-	bird generator

-	configure, documentation, language support for 1.0.0


Version 0.3.0:

-	upload to ftp.kde.org

Version 0.2.12:

-	reworked exportPOV in view
	which solves the problems in the viewwidget: differences between
	the projection and the rendering of povray
-	turn back to the camera-handling of version 0.2.8
-	now clear the projectname for a new project
-	updated the lsm-file
-	export Texturelibrary as POV
-	added Slopemaps
-	improved texture(elements)dialogs
-	Pov3.1-Textures	 	 
-	delete textures

Version 0.2.11:

-	now able to delete animscripts
-	remember animscripteditors size
-	resize animscripteditor
-	now the animcontrolwidget is togglable over the Window-menu
-	added Window-menu
-	added parameter for animscripts
	with ARGC one can get the number of arguments
	with ARGV# one get the #th argumentvalue
	with ARGT# one get the #th argumenttype

Version 0.2.10:

-	added hollow flags to contextmenu
-	added hollow flags to base

Version 0.2.9:

-	use now heightfieldpath in heightfielddialog
-	added heightfieldpath to optiondialog
-	added heightfieldpath to preferences
-	bugfix in GetFileWidget
-	use fileselector in heightfield-dialog for map
-	complete new camerahandling in view
-	now uses kerning for text
-	the old ttf-stuff is replaced by freetype (libttf)

Version 0.2.8:

-	the statusbar displays now the render-progress
-	now the renderprogram is selectable (but still need povray-commandline)
-	bugfix in optiondialog (renderprogram)
-	added statusbar (messages,viewsize)
-	now displays the progversion and the filename in the windowtitle
-	now draw the gridlines with gridspace in parallelprojection
-	added 'in perspective View' to the optiondialog and preferences
-	added number of gridlines in xz, xy, yz to the optiondialog
-	added size of gridspace in xz, xy, yz to the optiondialog
-	added size of gridspace to preferences
-	new texture management
-	added open-recent-menu
-	rename the "Main View"
-	added viewselection to cameras
-	the taking of view is corrected
-	the views are now exported by world
-	improved the render routine (no more pixel shifting and speed impovement)
-	added fastrendermode (quality 0)
-	bugfix in color.cpp and colorwidget.cpp
-	added icons to menus
-	added lightpoint dialog
-	bugfix in heightfield load/save
-	added load heightfield
-	bugfix in anim.cpp (setMedia(m); in load)
-	script named mpeg3d.sh added for red-green 3d-animation-rendering (left-green/right-red)
-	added red-green 3d-rendering support in view class
	now every pov-file (animations included) could be rendered as 3d-image
-	script named render3d.sh added for red-green 3d-rendering (left-green/right-red)
-	removed source of dragtable, dragtableitem, texturetable and texturetableitem

Version 0.2.7:

-	texture drag&drop support
-	new texture design
-	bugfixes in preferences-dialog
-	added fileselector for font (text-dialog)
-	added fontpath to preferences-dialog
-	added fontpath to preferences
-	now open text-dialog for new text-object
-	cmesh is able to convert text but not close
-	cmesh is able to convert box, cylinder, cone and sphere
-	added cmesh for tests
-	added backgroundcolor in Worlddialog
-	added a filter for \015 chars in make licence
-	added bintgz and bintbz to makefile to make binaery-packages

Version 0.2.6:

-	added tbz to makefile which make a tbz package
-	added drag&drop for objects
-	added drag & drop extention for treelist-widget
-	added release and debug to makefile (type 'make release' now)
-	added licence to makefile
-	changed directory-structure
-	bugfix in chunk::writeVector
-	save/load now uses media* instead of FILE*
-	added class media
-	prepared for drag&drop
-	now using the tmp-dir from preferences
-	use water_level in height_field
-	draw heightfield
-	heightfield dialog
-	added draw-routine to heightfield
-	added aspectratio in options-dialog
-	connected PreferencesDialog update with ViewWidget configure
-	added integer-clipping in drawLine
-	added to ViewWidget variable number of gridlines in xz, xy, yz
-	added to preferences n gridlines in xz, xy, yz
-	added to preferences n gridpoints in xz, xy, yz
-	moved getPath to preferences
-	preferences use now $HOME/.k4de/ for writing configfiles 
-	preferences use now k4de-apps dir as default
-	added aspect_ratio in ViewWidget::configure
-	added aspect_ratio to preferences
-	removed security-bugs in preferences (memoryhandling)
-	replaced char* through QString in class preferences
-	merge of version 0.2.4b and version 0.2.5a

Version 0.2.5:

-	none.ppm now is loaded from ~/.k4de/texture and if not found there
-	then it is loaded from $KDEDIR/share/apps/k4de/texture
-	added installtest for building an installroutine
	while install prints still a helptext
-	now use preference-path for 3dds
-	treelist drag may work but drop?
-	prepared treelist for drag&drop
-	added dragvectors to triangle
-	added function for physical-model
-	added dragvector to torus
-	bugfix in drawTorus
-	dragvector-support
-	added dragvector to cone
-	bugfix in drawCone
-	prepared viewwidget to let objects to be resizeable throug dragvectors
-	added dragvectorlist to base
-	added class dragvector

Version 0.2.4:

-	removed selecttable
-	now drawing the lights
-	bugfix in drawSymbol
-	added function configure to class ViewWidget
-	drag&drop-support for textures
-	MainWin has now KDNDDropZone (bugfix? else X11-error)
-	DragTable is new baseclass for TextureTable
-	added DragTable
-	options: colors
-	options: paths
-	now pathes and colors are variable for user
-	added preferences-dialog
-	merge versions 0.2.3a and 0.2.3b together

Version 0.2.3:

-	added preferences-class (b)
-	save/load views (but right?)
-	added camera-object
-	Item 'Options' inserted in menu 'File'
-	bugfix in anim->animscript->SAVE
-	cut, copy and paste enumerate the pasted (sub-)objects
-	bugfix in normal
-	added the ratio for the exported camera
-	merge versions 0.2.2a and 0.2.2b together

Version 0.2.2:

-	texture-dialog load some data from texture (b)
-	added bumpmaps (b)
-	added imagemaps (b)
-	bugfix in view exportPOV put right statement corrected
-	bugfix in view exportPOV put look_at statement to the end
-	added axis drawing for all objects (swichtable)
-	bugfix in load colormap
-	bugfix in cut (when cut a deep tree)
-	splitted worldtree in worldtree and treelist
-	bugfix in cgs function draw (hide)
-	changed treeview for better contextmenu handling
-	bugfix in csg function exportPOV
-	insert menuitem 'change' in menu 'Texture'
-	bugfix in worldtree (uninitialized worldptr)
-	should now compile with egcs
-	bugfix texture load

Version 0.2.1:

-	texture preview render by change (switchable)
-	added autorender in texture-dialog
-	added functions for autorendering
-	added classes.h in include
-	added directory classes in 3d
-	removed some warnings of evaluate.c (compilation)
-	added transparency to colormapwidget
-	ior in finish-dialog
-	refraction in finish-dialog
-	reflection in finish-dialog
-	ambient in finish-dialog
-	added finish-dialog
-	added finish to texture
-	added LOAD and SAVE to script basic.sh
-	variables for anim

Version 0.2.0:

-	upload to ftp.kde.org

Version 0.1.5:

-	bugfix ref with draw if selected 
-	bugfix refptr with draw if selected  
-	bugfix ref with calculate and drawBB
-	bugfix refptr with calculate and drawBB
-	changed interface of function calculate
-	the parameter to the scripts have changed to: read,write,time,starttime,endtime,stepsize
-	a*-function: getsize, getposition, getangle, getscalation, getrotation, gettranslation
-	function can now return values
-	rename k3de to k4de

Version 0.1.4:

-	first little german handbook
-	draw cylinder if it's blobcomponent
-	added asetflag and aclearflag for base
-	added new flag NO_EXPORT
-	added ambient-light (world global_settings)
-	added assumed-gamma (world global_settings)
-	text-object now save/load texture (bugfix)
-	some little bugfixes
-	do not need to hold a copy all time for animation
-	another animation object handling
-	changed interface of exportPOV, dimMatrix and draw

Version 0.1.3:

-	now save/load flags (sorry old files can't be read anylonger)
-	add export-flag in animcontrolwidget
-	added script mpeg.sh to generate a mpeg-file from pov-files

Version 0.1.2:

-	added CALC for shellscripts
-	added some (widget) layout functions
-	all functions had to be absolute (setsize, setangle, setposition, ...)
-	caching animscripts
-	save and load animscripts
-	corrected copy-constructors
-	added copy-constructor for anim-class
-	possibility to call animscripts from script
-	create a interface to other programs (to use a perl-interpretor)

Version 0.1.1:

-	first-level animation possible
-	animation: set tmpworld after animation (caused segfault)
-	early communication between k3de and shellscripts
-	animscript-dialog
-	animcontrolwidget
-	basic anim-routines
-	texture preview

Version 0.1.0:

-	added readme and gpl (copying)
-	load/save texture (most common objects)
-	texturemaps
-	added blob-dialog
-	drawing additionaly the blobsphere (what you see)
-	changed interface of texture and remove segfaults

Version 0.0.11:

-	added colormap, turbulence and function (causes undefined segfaults)

Version 0.0.10:

-	changed sourcetree
-	added bounding boxes
-	delete tmp/tmp.ppm before rendering (system("rm tmp/tmp.ppm");),
		start povray and wait until tmp.ppm is created,
		with a timeout of 10sec (Is this allways enough for povray?)
-	text (parse *.ttf fonts), but do not draw splines (off-points)
	the lettersize is near the same as in PovRay, but the spaces are not
-	text dialog
-	text load/save
-	special copy-constructor: text

Version 0.0.9:

-	use KFileDialig (libkfile) but has strange effects
-	fixed bug in mainwin: toolbar signal clicked instead of toggled used
-	ref and refptr corrected
-	copy&paste
-	special copy-constructor: base, dim, body, atom, csgobj, blobobj, box, cone,
		torus, cylinder, sphere, plane, nonsolid, triangle, mesh, obj, blob,
		ref, refptr, csg, lightobj, lightpoint, spotlight, heightfield
		obj, csg has recursiv copy
		ref, blob has recursiv copy, but not tested
-	test perl-script for animation
 
Version 0.0.8:

-	load triangle
-	draw triangle
-	correct exportPOV (triangle)

Version 0.0.7:

-	dim matrixmultiplication corrected
-	exportPOV (obj) debugged
-	texture none
-	render actual 3d view
-	render texture exec handling (use KProcess blocking)
-	double buffer rendering for viewwidget
-	x, y, z buttons

Version 0.0.6:

-	create new texture (name and color)
-	texture rendering
-	worldtree column sort (sort in the original order)
-	new worldtree based on qlistview
-	worldtree column texture
 
Version 0.0.5:

-	texture select widget
-	axis descriptions (x,y,z)
-	prepared for texture (exportPOV texture)
-	hide
-	cut & paste (context menu)
-	draw torus
-	draw grid and axis for parallel projection
-	draw lightpoint

-	make clean extended
-	directory tree changed
-	open gl source deleted

Version 0.0.4:

-	scale,translate,rotate objects
-	load lightpoint
-	parallel projection
-	draw selected (highlighted)
-	draw cone
-	draw csg
-	draw blob

Version 0.0.3:

-	3d projection
-	viewwidget
-	draw box
-	draw sphere
-	draw cylinder
-	draw plane
-	draw grid and axis
-	draw obj

Version 0.0.1 and 0.0.2:

-	versions do not run (kde segfault)
-	basic framework


-------------------------------------------------------------------------------


The Versionnumbers x.y.z have the following meanings:

x: Major-release (complete Systems)
y: increases with every release to the public (alpha, beta, bugfixes)
z: intern version-counter

So every released Version should look like this x.y.0



