/*! \page changelog Changelog
*
* - OpenFlipper 1.0 ( ? , 10318 )
* - ACG
* - GLState
* - Enable or disable Mipmapping
* - Moved depth_func_ from BaseNode to GL_State
* - Pass Scene boundingbox through glstate (Allow nodes to get current boundingbox)
* - Dialogs
* - Added Dialog for texture node
* - QtMaterialDialog (Fixed bugs and interference with round_points/smooth_line)
* - BSlineCurveNode
* - Get colors from materialNode rather than setting it in the node directly
* - BSlineSurfaceNode
* - Get colors from materialNode rather than setting it in the node directly
* - Gridnode
* - Fixed size now works correctly
* - LightNode
* - Picking implemented
* - Fixed BoundingBox computation
* - MaterialNode
* - Added random color generator
* - MeshNode
* - Added per face per vertex normal buffer
* - New EDGE_COLORED draw mode
* - New HALFEDGE and HALFEDGE_COLORED draw mode
* - Fixed a bug in MeshNode2T that would permanently change the depth comparison function instead of only temporarily
* - Correctly unbind texture if bound in MeshNode
* - PlaneNode
* - Fixed an error in the nonzero normal detection in PlaneNode::setPosition.
* - Quaternions
* - Matrix constructor added
* - Added dual quaternions
* - Scenegraph
* - Extend drawMode Action to include a force mode (forces the given drawmode on all nodes)
* - StatusNode
* - Halfedge Selections
* - Fixed bug accessing element one of empty array
* - TextureNode
* - Enable or disable Mipmapping
* - Core
* - BaseObject
* - Remove all children from additional node when deleting the subtree(otherwise we get dangling pointers)
* - Backup Interface
* - Icons for undo/redo
* - Intorduced backup groups (create groups of changes for undo/redo .. e.g. if multiple objects are involved)
* - Startup
* - Added some functions to check for correct lib versions (prevent linking against newer qt than compile version)
* - Rendering
* - Sanity Checks for OpenGL Version. Test for GL capabilities on startup.
* - Removed light handling completely ( -> Plugin-TypeLight)
* - Added options to enable or disable mipmapping
* - Set minimal scene size for startup to 10
* - Implemented zoom to for orthogonal projection mode
* - Key Handling
* - Fixed alt-key bug where last mode was not restored correctly on windows
* - Info
* - Show memory usage information in about dialog on linux
* - Load/Save
* - Fixed bug when supported extensions are not parsed correctly
* - Fixed bug when filename extensions with capital letters where not marked as supported
* - Add files opened via commandLine to recent files
* - Fixed bug which overrides colors loaded from files with random colors
* - Fixed bug where objectDeleted(int) was called after the actual object is delete (making it impossible to cleanup on that signal)
* - Options
* - Some gui cleanup for options widget
* - Snapshots
* - Remember last states for snapshot dialog
* - Render snapshots offscreen (Arbitrary size)
* - Added option to hide coordsys in snapshots
* - Added options to set background to alpha in snapshots
* - Added option to enable/disable multisampling in snapshots (and adjust #points used for multisampling)
* - Process Interface
* - Show progress dialog centered at corewidget (not anywhere on screen)
* - ViewMode Interface
* - Allow setting of viewmodes
* - ObjectTypes
* - MeshObjects
* - BSP Tree
* - Improve cutting planes to speedup search (more balanced tree)
* - Allow ray intersections for searching in tree (Search for all faces hit by ray)
* - Bugfixes
* - Fixed wrong lower value computed for bounding boxes (wrong initialization clamping bounding box to upper part of (0.0,0.0,0.0) )
* - PolyLineObjects
* - New Plugins
* - Backup
* - Added Backup plugin to free branch
* - Subdivider
* - Added OpenMesh subdivider plugin to the free branch
* - Plugins
* - DataControl
* - Added Object name and ID display to Datacontrol popup menu
* - Better on/off visualization for light sources
* - Decimater
* - Support backup plugin ( ->undo )
* - FileOBJ
* - Bugfix for negative indices for vertices
* - Save texxtures and material files
* - Support negative vertex index for spline curves and surfaces
* - Fixed bug reading knot vector in wrong order for spline surfaces
* - FileOFF
* - Bugfix for crash when reading degenerate faces
* - FilePLY
* - Switch to point rendering if only points where read
* - Info
* - Bugfix -> Dihedral angle for quad meshes computed wrong
* - Improved performance when floodfilling mesh in order to count connected components.
* - Light
* - Reduced brightness for default lights (Otherwise colors of objects are almost always white)
* - Added missing Layout to dialog
* - Added missing slot to react on fixed position checkbox change
* - Added functions to rotate and move lights
* - Fixed OpenGL handling of directional light sources
* - Move
* - Support backup plugin ( ->undo )
* - Selection Plugin
* - Added halfedge selection
* - BSplineSurface Knot Selection
* - BSplineSurface Selection
* - Render Selections for BSpline Curve and Surface
* - Smoother
* - Support backup plugin ( ->undo )
* - TextureControl
* - Added min_val parameter additionally to max_val
* - ViewControl
* - Support Splines
* - Support PolyLines
* - New Scripting Function to set per object drawMode directly
* - Documentation
* - More docs for backup interface (incl. Tutorial)
* - Build System
* - Do not include files starting with a dot when creating build lists
*
*
*
*
* - OpenFlipper 1.0 ( 06.23.2010 , 9691 RC7 )
* - Core
* - Added Light source management
* - Added global nodes to handle light sources
* - Internal light handling can now be switched off via pluginfunctions (Used by TypeLight to take control over lights)
* - About Dialog
* - Show information about registered types
* - Show information about glu and glut
* - Process Manager
* - Replaced Mutex by semaphore for waiting that a thread starts (mutex unlock does not work across threads in qt 4.6)
* - Bugfix when using blocking mode for new threads
* - File Dialog
* - Fixed problems with keyboard interaction
* - Scripting
* - Fixed bug with scriptdir not set correctly on command line open
* - Made core.loadObject scriptable (automatically detects right file plugin to load object)
* - Fixed bug in scripted saveObject function where supported type was not correctly detected
* - Fixed bug when converting matrix and vector types between scripting and core
* - New function to add icon for view modes via script
* - Debugging
* - Windows debugging console for cerr and cout when building windows debug version
* - Increased stack frame size when doing debugging.
* - Bugfixes
* - Bugfix for segfault on exit
* - Bugfix for simple viewer and qt 4.6
* - BSP Tree
* - Faster generation
* - Tree, Ray intersection (find closest triangle hit by ray)
* - Plugin Handling
* - Parallel plugin loader (The plugins are preloaded in parallel. This gives a large speedup on startup)
* - Added a global picking dialog to choose an object an algorithm should work on (OpenFlipper/publicWidgets)
* - Added Function to find the object to a node (Based on BaseObjectData)
* - Introduced update types to control partial uptdates (color,topology,geometry,...)
* - Added region picking functions ( render picking and get a region of the picking )
* - Removed unused update type
* - Sanity checks on startup (Check OpenGL capabilities,library versions)
* - Object Types
* - New Light Object
* - New Sphere Object
* - New BSpline Curve Object
* - New BSpline Surface Object
* - Interfaces
* - BackupInterface
* - Full redesign
* - Multiple restore stages (before, do restore, after restore
* - External restore and backup signals/slots
* - BaseInterface
* - Added a new parameter to updatedObject which defies the update type (e.g. Topology, Geometry, selection)
* - FileInterface
* - Support writing multiple objects into one file
* - TextureInterface
* - updated textureInterface to save textures (including multitextures)
* - PluginFunctions
* - New function to directly set lookAt
* - Improved error handling in some functions
* - ThreadInterface
* - Jobid is now passed to thread and the slots to identify sender
* - Types
* - Added a function to check if types exist
* - UI
* - Improved mouse interaction(translation with middle mouse button is done in world coordinates now)
* - Added Context Menus to view modes (Depending on view mode context menus can be hidden now)
* - Added rotation locking to context menu for view settings.
* - Options
* - Added functions to reset to factory settings
* - ACG
* - Bugfix for glstate functions returning fovy and aspect ratio
* - Added gluError handling function
* - New PICK_SPLINE Pickmode added
* - Draw Modes
* - Fixed bug with increment operator for drawmodes (shift in underlying bitset)
* - Added Cells Draw Mode
* - SceneGraph
* - Fixed picking multipass bug where picking failed when blending or other color changing enter and leave functions where present
* - GlutPrimitive Node
* - Fixed bounding box computation which was centered around origin and not around center of object
* - Now handles multiple primitives in one node( and different colors for each of the primitives)
* - Includes a rotation to set the orientation of the objects
* - DrawMode SOLID_FACES_COLORED supported
* - MaterialNode
* - Add extra class to store all Material Information
* - PointNode
* - Use Vec3d
* - Fixed bug in pointnode double was send to OpenGL as float
* - LineNode
* - Use Vec3d
* - MeshNode2
* - Fixed bug where stripes are sometimes not updated correctly
* - Fixed pick face bug, where picking buffer was updated to late
* - Fixed bug with point only meshes, where face and edge buffers were accessed but not there.
* - When updating colors, invalidate face and edge buffers too ( otherwise no update is done)
* - Be more carefull and check if mesh properties used for redering vanished between render passes (e.g. textures after restore from backups)
* -QtTranslationManipulatorNode
* - Added possibility to add QVariants to the node
* - SceneGraphWidget
* - Added system to register a widget for new nodes without changing the widget code.
* - Geometry
* - Added more documentation to some algorithms
* - New functions
* - Distances to planes
* - Projections (Point->Triangle, Point->Plane )
* - Intersection Ray, Axis aligned Bounding Box
* - Intersection Ray, triangle
* - Quaternions
* - changed to template Vector function for rotate
* - disabled matrix constructor
* - added print_info function
* - Math_Tools/GeometryFunctions.hh integrated into ACG/Geometry/Algorithms.hh
* - New Plugins
* - TypeLight
* - New object type handling light sources
* - TypeSphele
* - Simple sphere type
* - FileLight
* - Support for reading and writing light information
* - Slice
* - Slicing plugin. Adds clipping planes to render only part of the scene
* - Plugins
* - All
* - Converted all plugins to new updatedObject formats
* - Color
* - Fixed wrong interface definitioni causing plugins not visible in ui menus (Thanks to Sergei Migdalskiy for reporting this bug)
* - DataControl
* - Support for Light sources
* - Fixed Bug where delete key was not catched anymore in QT 4.6
* - FileOFF
* - non-manifold inputs are now duplicated and added as manifold meshes (These duplicates are marked in the OpenMesh status flag)
* - FileOBJ
* - non-manifold inputs are now duplicated and added as manifold meshes (These duplicates are marked in the OpenMesh status flag)
* - INI
* - Support Light sources
* - Write material data for all objects with materialnode
* - IsoTropic Remesher
* - Process indicator added
* - Info Plugin
* - Fixed unsigned int/int conversion problem resulting in wrong genus computation
* - Fixed crash when infobar is not setup and objects are created ( fixed by initializing it earlier)
* - Don't output dihedral angles for no or one face
* - Selection
* - Fixed bounding box update for selection sphere
* - emit updatedobject on color change
* - BSpline Selections
* - Scripting for controling current selection mode
* - TextureControl
* - Fixed bug when trying to create textures for lights (?!!)
* - Fixed wrong interface definitioni causing plugins not visible in ui menus (Thanks to Sergei Migdalskiy for reporting this bug)
* - Backup interface support (copy constructors for per object datas and restore functions)
* - Topology Plugin
* - Added missing updates
* - Info Plugin
* - Fixed unsigned int/int conversion problem resulting in wrong genus computation
* - Fixed crash when infobar is not setup and objects are created ( fixed by initializing it earlier)
* - Don't output dihedral angles for no or one face
* - ViewControl
* - Check if types exist before adding context menues (avoids warning)
* - VSI Plugin
* - Fix script generation for qt 4.6 ( in -> input rename as in causes a parse error )
* - Fixed draw errors on zooming
* - Additional Metadata for other algorithms
* - Fixed bug when converting matrix and vector types between scripting and core
* - Documentation
* - Refactored documentation files ( One documentation directory, build targets)
* - Internal help files (qhc) are now searched automatically ( no need to specify at build time anymore!)
* - Added docs for the glstate to describe internal projection matrix construction and parameters
* - Improved Documentation for the process manager
* - Improved building instructions
* - Others
* - Fixed some crashes with Visual Studio 2010 builds (Some may still be there)
* - Build System
* - Added FFTW Finder
* - Added Petsc finder
* - Added a GLUT finder
* - Fixed the library dir in GLEW finder
* - Make windows capable of choosing debug and release version of superlu
* - Build ui files from ObjectTypes (Required to register Widgets to the scenegraph dialog)
* - Branding support (looks in Toplevel/branding for image files)
* - Improved compiler flag settings for unix systems (easier setting of additional compiler flags)
* - Made RELWITHDEBINFO build type working. (Release mode with debug symbols)
* - Added doc target ( For core and plugins )
* - Added search engine to help
* - Tutorial for ViewModeInterface
* - Tutorial for TypeInterface
* - Tutorial for ThreadingInterface
* - Win
* - Fixup Bundle for Windows (Copies required DLLs to the build directory for easy execution)
* - Mac
* - Only build dmg not tgz on mac package on make package
* - Fixed bug wher Mac bundles did not include the Qt Plugins (missing jpeg support/...)
*
* - OpenFlipper 1.0 RC6 ( 2010/03/17 , 8742 )
* - Core
* - Splitted File Plugins ( Now there are type plugins loaded first to register types and the file plugins to load data)
* - Moved loading code from OpenMesh to file plugins to support multiple data types
* - Changed handling of ObjectSelectionChanged
* - Updated internal types handling (directly initialized by core now)
* - Handle object tree integration for BaseObjects automatically (No longer necessary to call the setParent Function)
* - selectionChanged, visibilityChanged and objectPropertiesChanged are now handled internally. If One of these changes, the signals
* will be emitted by the core and passed to the plugins.
* - Basic implementation to copy per Object data along with copied object
* - Implemented drag and drop for files to OpenFlipper
* - Fixes for building with QT 4.6
* - Added a map to find objects in the objectTree (large speedup when handling multiple objects)
* - Internal counters for targets, sources and objects avoiding iterations across all objects ( another speedup)
* - Plugin interface changes
* - Changed PluginFunctions to return 0 object for identifier -1
* - Provide a QSettings interface to store per Plugin settings (called OpenFlipperSettings in globaloptions)
* - Core manages objectSelectionChanged, visibilityChanged and objectPropertiesChanged. (Do not emit these signals in your plugin anymore)
* - Added TypeInterface to register types from plugins (These plugins will be loaded first!)
* - Improvements to status bar interface (now accepts arbitrary widgets)
* - Renamed type idList to IdList
* - Process manager added
* - Updated updateObject functionality which can specify the type of updates now
* - DataTypes
* - Added Plane Datatype and plugin
* - Rewrote the mesh rendering node (now handling textures for poly meshes)
* - Internal changes
* - Updated internal types handling (directly initialized by core now)
* - UI
* - Updated cursors (new cursors for some modes)
* - Fixed hotspot of some cursors
* - Updated Icons
* - New Icons for Object Types (Group,Plane Icon)
* - Icons for Datacontrol Context Menu
* - Updated About dialog to include used compiler for OpenFlipper
* - Improved logger widget with filtering option
* - Scripting
* - Implimented new datatype representation which is also available in scripting now
* - GL Handling
* - Function to get maximum texture units
* - Plugins
* - File Plugins
* - New OBJ and OFF readers/writers which are independent of OpenMesh now
* - OBJ groups
* - Fixed errors reading OBJ files containing tabs
* - Basic support for splines and spline surfaces in OBJ files
* - Support for binary OFF files not following the specification ( without face color index )
* - Choose between opening meshes as triangle or poly mesh
* - Added a default loading dialog
* - Plugin Info
* - Shows number of primitives for open objects in the status bar
* - Plugin Datacontrol
* - Some gui reworks
* - Use new signal processing correctly
* - RPC Function for grouping now returns the id of the group
* - RPC Function to ungroup
* - Plugin Decimater
* - Enable Normal deviation constraint by default
* - Correctly set maximum for sliders
* - Plugin IsoTropic Remesher
* - respect boundaries and edge features
* - Plugin Selection
* - Create mesh from selection added
* - Plugin Move
* - Added function to hide Manipulators
* - Added some Icons
* - Fixed iterator bug causing slow operations
* - Plugin ViewControl
* - Don't set draw mode for all nodes
* - Plugin VSI
* - New Plugin to create scripts via a visual scripting interface
* - ACG
* - Switched Bounding Box action to doubles
* - added Quaternion exponential, logarithm and from_rotation_matrix construction
* - Removed assertions in GLSL Shader Utils and replaced them by warnings (To support graphics cards without shaders)
* - Reimplementation of the drawmode which is now a separate class
* - Build system
* - Finder for libpre
* - Finder for libxml2
* - Updated OpenMesh Finder
* - New Option to enable stl vector checking
* - First tests to enable cross compiling
*
* - OpenFlipper 1.0 RC5 ( 10.26.2009, 7508 )
* - UI
* - Updated the view modes
* - added toolbars to view modes
* - New widget for configuring view modes
* - First person navigation mode
* - Added basic implementation for first person navigation in the scene (Keys wasd + mouse)
* - Rendering
* - Support stereo mode for Philips 42-inch autostereoscopic 3D Displays
* - Plugin interface changes
* - Toolbox interface (Initialize_toolbox is removed. please add the code from this function to initialize plugin and emit addToolbox there)
* - Removed global access header
* - Plugins
* - Plugin Info
* - Updated Info plugin (new user interface and more info about meshes)
* - Plugin Move
* - Only scale manipulators if move plugin is active
* - Fixed normal update in move plugin
* - Fixed multiple connections in move plugin resulting in slow movement
* - Plugin Datacontrol
* - Fixed double entries in datacontrol
* - Internal changes
* - Changed ordering of main scenegraph nodes (and added pluginfunctions to add new nodes)
* - Documentation
* - refactor the documentation
* - adjust to changes
* - Build system
* - Add cmake configurations for object types
* - parse and integrate Qr resource files for plugins
* - Added lib subdirectory which is automatically build when a cmakelists file exists
* - General bugfixes
* - Fixed bug where rotation center and scene center interfered
* - Fixed translation in plane object
* - Internal libs
* - Updated OpenMesh to RC4
*
* - OpenFlipper 1.0 RC4 ( 09.29.2009 ,7205)
* - Isotropic Remesher Plugin
* - Latest OpenMesh Version
* - Bugfixes
*
*
* - OpenFlipper 1.0 RC3 ( 07.10.2009)
* - Switch to cmake
* - Creation of Windows and MacOS Installer files
* - Bugfixes
*
* - OpenFlipper 1.0 RC2 ( 04.19.2009)
* - Cmake support added .. needs more testing
*
* - OpenFlipper 1.0 RC1 ( 03.27.2009 )
* - Initial Release
*/