
\begin{DoxyItemize}
\item \hyperlink{changelog}{Changelog}
\item \hyperlink{todo}{List of todos} 
\end{DoxyItemize}\hypertarget{changelog}{}\section{Changelog}\label{changelog}

\begin{DoxyItemize}
\item {\bfseries Open\+Flipper 4.\+1 ( 13/12/2019 )}
\begin{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Glut\+Primitive\+Node\+: Added cone support
\end{DoxyItemize}
\item {\bfseries Python Subsystem}
\begin{DoxyItemize}
\item Exit application on error in scripting with batch mode
\item Correctly output logging information
\end{DoxyItemize}
\item {\bfseries Testing}
\begin{DoxyItemize}
\item Introduce python tests (Just add a Python\+Tests subdirectory to your plugin)
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Type Light\+: Python Interface added
\item Primitives Generator\+: Python Interface added
\item Mesh Compare\+: Python Interface added
\item Noise\+: New plugin to add noise to meshes or splats
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 4.\+0 ( 05/03/2019 )}
\begin{DoxyItemize}
\item {\bfseries Breaking changes}
\begin{DoxyItemize}
\item Picking functions use size\+\_\+t instead of unsigned int now (Required to get rid of a lot of warnings during compilation)
\item Enabled A\+U\+T\+O\+M\+OC in cmake for QT ( If you get redefinition errors, guard the corresponding headers with a pragma once ; If you get gl.\+h before glew.\+h errors, move your widgets not using Open\+GL into a subdir and add that to the D\+I\+RS macro in your C\+Make\+Lists.\+txt)
\item Enabled A\+U\+T\+O\+U\+IC in cmake for QT ( If you get trouble finding generated ui\+\_\+$\ast$.hh headers, change your include to ui\+\_\+$\ast$.h to get them generated correctly)
\item Removed a lot of Scenegraph includes in \hyperlink{classBaseObjectData}{Base\+Object\+Data} to reduce gl qt collisions and replaced them with forward declarations. (You have to include the scenegraph headers yourself now!)
\item Removed a lot of unnecessary large QT includes from the Interfaces (Mostly Qt\+Widgets). You have to add your own include statements in your plugins now.
\item Removed \hyperlink{classWhatsThisGenerator}{Whats\+This\+Generator} include from \hyperlink{classBaseInterface}{Base\+Interface}. You have to include it in the plugins now if you use it.
\item Removed the classical Object\+Types C\+Make search. Please use the new style ( Type-\/\+Typename/\+Object\+Types/$<$\+Typename$>$ + Type-\/\+Typename/\+Plugin-\/\+Type\+Type\+Name ) scheme
\item Removed Glut\+Examiner and Glut\+Viewer from \hyperlink{namespaceACG}{A\+CG} library
\item Removed glut from Open\+Flipper
\item Shipping with integrated glew to simplify build process
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item Integrated Python interpreter
\item Introduced basic Python scripting support
\item Use Q\+Open\+G\+L\+Debuglogger
\item Queued cross plugin interconnection feature
\item Use Q\+Open\+G\+L\+Widget
\item Switched to Qt command line parsing and removed Simple\+Opt
\item Fix clang warning by avoiding G\+NU extension
\item Do not automatically save file immediately after loading with ctrl-\/o
\item Fixed Name\+Clash on Windows OS if Project\+Name was similar to cloned root\+Directory name
\item Fixed Open\+GL Format warning
\item Parse command line before Q\+Application is instantiated
\item Fixed missing output to stderr on windows
\item Minor code cleanup
\end{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Clamp shininess in Materialnode (caused GL Errors)
\item Better Material support in Materialnode (emissive and refractive materials)
\item Use Shader\+Generator for picking shaders
\item Plane type added (Removed duplicate implementations from other plugins)
\item \hyperlink{namespaceACG}{A\+CG} Draw\+Mode\+Converter\+: also convert dynamically added drawmodes
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item File-\/\+O\+BJ
\begin{DoxyItemize}
\item Read emissive and refractive materials
\end{DoxyItemize}
\item File-\/\+S\+TL
\begin{DoxyItemize}
\item Binary S\+TL support for scripting
\end{DoxyItemize}
\item \hyperlink{classHoleFiller}{Hole\+Filler}
\begin{DoxyItemize}
\item Bounding box diagonal and boundary length where exchanged in the toolbox table
\end{DoxyItemize}
\item Primitives
\begin{DoxyItemize}
\item Added Torus
\item Added Hexahedral cube
\end{DoxyItemize}
\item Property\+Viz
\begin{DoxyItemize}
\item Support Build without O\+VM (Thanks to Matthias Moeller for the patch)
\item Added normalized checkbox to vizualize vectors as colors
\item Fixed a typo
\item Update object list when objects are renamed
\end{DoxyItemize}
\item Selection\+Base
\begin{DoxyItemize}
\item added signal and slot to add widgets for selection\+Parameters to the selectioninterface
\end{DoxyItemize}
\item Type Open\+Volumemesh
\begin{DoxyItemize}
\item added drawmode faces\+\_\+colored\+\_\+flat\+\_\+shaded
\end{DoxyItemize}
\item V\+SI
\begin{DoxyItemize}
\item Fixed picking in Object selection
\item Moved Icon into Plugin
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Improved Branding support
\item Support for Qt up to 5.\+9 (Using an lts version 5.\+9 or 5.\+6 is recommended)
\item Warn if problematic Qt version is used (5.\+7 and 5.\+8 may cause G\+L\+Errors on O\+SX 5.\+8 overrides moc flags on windows. see \href{https://bugreports.qt.io/browse/QTBUG-58345}{\tt https\+://bugreports.\+qt.\+io/browse/\+Q\+T\+B\+U\+G-\/58345})
\item Support for VS 2017
\item Enable C++-\/11 by default
\item Drop support for Qt 4
\item Drop support for Q\+WT 5
\item Make sure that resource filenames are unique
\item Split Type plugins into separate builds and remove types from pluginlib
\item Make all plugins submodules and therefore standalone git repositories
\item don\textquotesingle{}t recognize type dependency as fulfilled when type plugin is in source tree but not built (e.\+g. type plugin misses dependencies) (Thanks to Matthias Moeller for the patch)
\item Reduced number of includes to speedup comilation
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 3.\+1 ( 2016/10/12 )}
\begin{DoxyItemize}
\item {\bfseries General}
\begin{DoxyItemize}
\item Fix missleading indentation warnings on gcc 6.\+x
\item Added Tetrahedral mesh support
\end{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Use std\+::vector in Base\+Node instead of std\+::list for performance reasons (closes \#61)
\item Added Principal\+Axis\+Node (Including shader pipeline support)
\item Fixed shading when shininess is 0
\item Optimizations and cleanup in I\+Renderer
\item Added floating subtree node (Can be used to render whole subtrees as overlays)
\begin{DoxyItemize}
\item Made constructor of G\+L\+MatrixT more flexible.
\item New Floating\+Subtree\+Node\+: Enable/disable model view override and overlay mode.
\item Mesh\+Compiler\+: Fix crash for meshes with large faces. If the input adjacency is faulty, it gets recomputed now.
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item Windows\+: Attach console to allow output directly to command line
\item Fixed aspect ratio of screenshot function
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Data\+Control
\begin{DoxyItemize}
\item Fixed grouping (Not visualized correctly)
\end{DoxyItemize}
\item \hyperlink{classHoleFiller}{Hole\+Filler}
\begin{DoxyItemize}
\item Fly to selected holes
\item Compute boundary information on poly meshes
\end{DoxyItemize}
\item V\+TK
\begin{DoxyItemize}
\item read tetmeshes from vtk files
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Added cmake flag to disable \hyperlink{namespaceACG}{A\+CG} unit tests
\item Added flag to safeguard a gcc compiler bug (optimizer)
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 3.\+0 ( 2016/07/13 )}
\begin{DoxyItemize}
\item {\bfseries L\+I\+C\+E\+N\+SE}
\begin{DoxyItemize}
\item Switched to B\+S\+D-\/3 License
\end{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Mesh\+Compiler and Draw\+Mesh
\begin{DoxyItemize}
\item check surface type of meshcompiler input
\item fix solid vertex colored drawmodes
\item support face colors + smooth shading refs (\#2387)
\item fix properties of Draw\+Mode solid faces colored
\item add drawmode face colors + halfedge texcoords + smooth lighting
\item increase max supported face size closes \#2522
\item Improved performance
\item New polygon-\/$>$ triangle code
\end{DoxyItemize}
\item Geometry
\begin{DoxyItemize}
\item add fast algorithms for bspline basis function to \hyperlink{namespaceACG}{A\+CG}
\item Added more stable dist\+\_\+point triangle Algorithm Version
\end{DoxyItemize}
\item GL
\begin{DoxyItemize}
\item implicitly bind vbo on upload()
\item fix shaders for resolving multisampled textures
\item improve Post-\/\+Processor interface\+: request texture format, IO \hyperlink{namespaceOpenMesh_1_1Kernel__OSG_a16b8b29bbad427ea962a06fc04f5eb7a}{bind()} helper funcs, multiviewport
\item dynamic shaders now support preprocessor macros
\item get rid of glu\+Pick\+Matrix call and avoid using big array on stack
\item replace glu\+Nurbs rendering with own implementation refs \#2429
\end{DoxyItemize}
\item Meminfo
\begin{DoxyItemize}
\item New classes to get memory information (R\+A\+M\+Info class)
\end{DoxyItemize}
\item Nodes
\begin{DoxyItemize}
\item Fixing rendering behavior of Status\+Nodes so they can be used in a standalone fashion.
\item Disable use of custom GL blend functions in Line\+Node.
\end{DoxyItemize}
\item Shader Generator
\begin{DoxyItemize}
\item Added \hyperlink{classTexture}{Texture} coordinate generation
\item Added Depth\+Stencil F\+BO handling
\item New Query Object
\item Depth Range Render Object
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item \hyperlink{classBaseObject}{Base\+Object}
\begin{DoxyItemize}
\item Make the object update functions protected (You have to use emit updated\+Object instead)
\end{DoxyItemize}
\item IO
\begin{DoxyItemize}
\item Emit warning in save object function, if object can\textquotesingle{}t be retrieved
\item Async loaders to keep ui alive while loading
\end{DoxyItemize}
\item Process\+Manager\+:
\begin{DoxyItemize}
\item fix\+: possible crash with multiple processes (row variable wasn\textquotesingle{}t updated, if the job widget row was changed)
\end{DoxyItemize}
\item Qt\+Base\+Viewer
\begin{DoxyItemize}
\item assumption that the drawbuffer is ailways G\+L\+\_\+\+B\+A\+CK might be problematic (refs \#2361)
\end{DoxyItemize}
\item Picking
\begin{DoxyItemize}
\item Added interfaces and functions for refine picking functionality (Can be used to implement exact picking after colorpicking)
\item Added functions to retrieve viewing rays for raycasting from examiner widgets
\end{DoxyItemize}
\item Screenshots
\begin{DoxyItemize}
\item fix screenshot buffer creation (fixes screenshot with multiple instances of OF)
\item fix alpha channel of snapshots refs \#2506
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Interfaces}
\begin{DoxyItemize}
\item Base Interface
\begin{DoxyItemize}
\item Added signals slot to block scenegraph updates (Enables blocking through the event queue to keep the order fixed)
\end{DoxyItemize}
\item Process Interface
\begin{DoxyItemize}
\item Fixed memory leak
\item Process Manager\+: removed redudant code/speed up
\item \hyperlink{classOpenFlipperThread}{Open\+Flipper\+Thread}\+: added jobid getter
\end{DoxyItemize}
\item Metadata Interface
\begin{DoxyItemize}
\item Added new meta data interface (C\+Van be used to store additional metadata along with screenschots)
\end{DoxyItemize}
\item Pluginfunctions
\begin{DoxyItemize}
\item Added C++11 range adapter for Object\+Iterator
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries UI}
\begin{DoxyItemize}
\item Updated Toolbox layouts
\item \hyperlink{classAboutWidget}{About\+Widget}
\begin{DoxyItemize}
\item set Open\+Flipper System Information Tab read-\/only
\end{DoxyItemize}
\item Optionswidget
\begin{DoxyItemize}
\item add option for max backups
\item added option to always set new objects to target
\end{DoxyItemize}
\item Snapshots
\begin{DoxyItemize}
\item The viewer snapshot dialog now automatically suggests file names that don\textquotesingle{}t exist yet. If names of existing files are entered, a warning is displayed in real time. If non-\/writable paths are entered, a warning is displayed as well.
\item New feature\+: Copy view as C-\/style string. Holding Ctrl while clicking the \char`\"{}\+Copy View\char`\"{} context menu action now copies a C-\/style string to the clipboard.
\item Added fully scriptable snapshot function
\end{DoxyItemize}
\item \hyperlink{classCoreWidget}{Core\+Widget}
\begin{DoxyItemize}
\item Correctly restore window sizes after restart
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries License Manager}
\begin{DoxyItemize}
\item Remove function pointers which produce errors in C++11
\item Improved handling of time constraints for License management
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item More scripting documentation
\item \hyperlink{classOpenFlipperThread}{Open\+Flipper\+Thread}\+: Add more information about reimplementing the interface
\item added some datatype docs
\item added examples for gathering object ids via script
\end{DoxyItemize}
\item {\bfseries Object\+Types}
\begin{DoxyItemize}
\item Added Poly\+Line colored segment rendering
\item Poly\+Line fixes (performance, rendering bug for segments)
\item Poly\+Line\+: improved picking via shader
\item \hyperlink{classMeshObject}{Mesh\+Object}\+: Added has\+B\+SP function
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Align Meshes
\begin{DoxyItemize}
\item New plugin which can be used to align meshes
\item Requires Eigen3 to compute P\+CA
\end{DoxyItemize}
\item Backup
\begin{DoxyItemize}
\item Added Optionswidget for max backups
\item Added missing restore signal for ui buttons (refs \#2407)
\item fixes problem with textures after undo operation (refs \#2407)
\item update re/undo buttons after clear all
\item create correct object on poly/tri mesh copy
\end{DoxyItemize}
\item Datacontrol
\begin{DoxyItemize}
\item Some null pointer checks to avoid a crash
\item Smaller layout to redduce amount of wasted space
\end{DoxyItemize}
\item Decimater
\begin{DoxyItemize}
\item Added process interface to decimater and using the observer pattern for progress bar
\item gui-\/only slots declared as private slots
\end{DoxyItemize}
\item File\+Height\+Field
\begin{DoxyItemize}
\item Import the color of the image that is loaded as a height field as vertex colors
\end{DoxyItemize}
\item File\+O\+BJ
\begin{DoxyItemize}
\item fix crash when file contains NaN or Inf (closes \#2401)
\item More warnings on defect files
\item fix crash when file contains degenerated faces (refs \#2382)
\item Fix\+: Dont write texture coordinates if writing them is disabled
\item Loader\+: Significant speedup
\end{DoxyItemize}
\item File\+OM
\begin{DoxyItemize}
\item Respect save settings dialog for polymeshes
\item release texture coordinate properties if not found in file
\end{DoxyItemize}
\item Info\+Mesh\+Object
\begin{DoxyItemize}
\item Fix target count display on updates. closes \#2443
\end{DoxyItemize}
\item \hyperlink{classIsotropicRemesher}{Isotropic\+Remesher}
\begin{DoxyItemize}
\item nogui / batch mode support (closes \#2384)
\end{DoxyItemize}
\item Mesh\+Object\+Info
\begin{DoxyItemize}
\item Added vertex and valence histograms
\end{DoxyItemize}
\item Mem\+Info
\begin{DoxyItemize}
\item Fixed wrong visualization on Linux
\item Added Mac support
\end{DoxyItemize}
\item Move
\begin{DoxyItemize}
\item Make mesh normalization slots scriptable
\end{DoxyItemize}
\item Primitive\+Generator
\begin{DoxyItemize}
\item add initial backups for each generated primitive (refs \#2407)
\end{DoxyItemize}
\item Property\+Vis
\begin{DoxyItemize}
\item force static property casts in property visualizer due to failing dynamic cast caused be different typeids over different shared objects on mac
\item Enable uint8\+\_\+t support
\end{DoxyItemize}
\item Remesher
\begin{DoxyItemize}
\item add nogui support (closes \#2384)
\end{DoxyItemize}
\item Selection
\begin{DoxyItemize}
\item add options for selection/handle/feature/area color for Poly/\+Triangle Meshes
\end{DoxyItemize}
\item Texture\+Control
\begin{DoxyItemize}
\item image storage checks last modification of a texture and reloads it again if necessary closes \#2381
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Optional static linking of plugins into core (for debugging)
\item Sort plugin configuration
\item Catching of S\+I\+G\+S\+E\+GV can now be controlled through C\+Make flag.
\item C\+Make flag for enabled debug console on windows in release mode
\item Make Open\+Volume\+Mesh non mandatory for build
\item fix install path on 64-\/bit windows with 64-\/bit installer
\item Removed unneccessary ftgl
\item Removed various istream includes
\item The libs dir for searching windows libraries is now configurable via cmake
\item Allow to build plugins statically into core
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 2.\+1 ( 2015/01/21 , 20181 )}
\begin{DoxyItemize}
\item {\bfseries General}
\begin{DoxyItemize}
\item Refactored multiple classes in order to separate glew from Qt5\+GL.
\end{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Algorithms
\begin{DoxyItemize}
\item Edge\+Convex\+Polygon\+Intersection added to Algorithms
\end{DoxyItemize}
\item Drawmesh
\begin{DoxyItemize}
\item new feature\+: flexible vertex layout in drawmesh
\item Remove second copy of vertex buffer, preparation for flexible vertex layout
\item remove face-\/colors from drawmesh vertex format
\end{DoxyItemize}
\item GL
\begin{DoxyItemize}
\item Draw\+Modes\+: Convenience function to add property based drawmodes. refs 1895
\item Rendering\+: Fix for wireframe/hiddenline on poly meshes.
\item Rendering\+: unified edge rendering for triangle and poly meshes refs
\item Support shininess in lighting code
\item improve M\+S\+AA support in F\+BO
\item rename M\+S\+Filter\+Weights file to Anti\+Aliasing
\item documentation update in F\+BO, Anti\+Aliasing, I\+Renderer
\item check link status before calling gl\+Use\+Program refs \#2064
\item fix resizing of msaa fbos
\item update msaa helper utils
\item F\+BO\+: init texparams only for non msaa textures to avoid glerrors
\item G\+L\+Matrix\+: extraction of clipping planes in a projection matrix
\item \hyperlink{classGLSL_1_1Shader}{G\+L\+S\+L\+::\+Shader}\+: add suppport for tessellation shaders
\item Add convenience functions to property layers of Draw\+Mode
\item Added own gl\+Error to String function to avoid the glu version which is deprecated on mac
\end{DoxyItemize}
\item I\+Renderer
\begin{DoxyItemize}
\item Additional functions to make sure, the fbos are handled correctly
\item Convenience functions added
\begin{DoxyItemize}
\item save/restore\+Active\+Fbo(fbo\+Id, viewport)
\item copy\+Depth\+To\+Back\+Buffer(tex, scale)
\end{DoxyItemize}
\item Fix specular lighting of directional lights in the shader pipeline
\item add setting for alpha testing function in render objects refs \#398
\item compute size of attributes for missing input buffers refs \#2069
\item Renderobjects can request a depth map of the scene, which is optionally rendered in a z-\/prepass
\item new feature\+: scene layer and overlay layer with Render\+Objects
\end{DoxyItemize}
\item Line Node
\begin{DoxyItemize}
\item use quad extrusion shader in line node to control the width refs \#1305
\end{DoxyItemize}
\item Material\+Node
\begin{DoxyItemize}
\item Made Material\+Node\textquotesingle{}s J\+S\+ON (de)serialization Qt5 compatible.
\end{DoxyItemize}
\item Mesh\+Node
\begin{DoxyItemize}
\item Fixed 0 pointer deref in meshnode. Closes 2048
\item Render\+Objects of the Mesh\+Node\+: fetch texture bound to opengl slot 0, if no texture\+Map was specified refs \#2050
\item apply small depth offset in wireframe shaders refs \#2081
\item optimized picking in meshnode (via shaders)
\item disable optimized face,edge picking for point clouds refs \#2139
\end{DoxyItemize}
\item Mesh\+Compiler and Draw\+Mesh
\begin{DoxyItemize}
\item Fix for face colors on wrong faces by Christopher.
\item const correctness in mesh compiler refs \#2060
\item implemented G\+L\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+S\+\_\+\+A\+D\+J\+A\+C\+E\+N\+CY mode in meshcompiler
\item more robust estimation of split-\/count in Mesh\+Compiler refs \#2195
\end{DoxyItemize}
\item Picking Implementation
\begin{DoxyItemize}
\item Introduced a new shader based picking which is way faster and uses less memory for its buffers
\end{DoxyItemize}
\item Shader\+Generator
\begin{DoxyItemize}
\item Add support for include statement in \hyperlink{namespaceACG}{A\+CG} shader load function
\item Write source location of shader input files as comments into code
\item Shader\+Gen\+: control glsl version in shader descriptor
\item Extension to replace lightingcode
\item Add comments to shaders to keep track of input files used to compose shaders
\item Tesselation Shader support
\item Support for relative paths
\end{DoxyItemize}
\item Shader\+Cache
\begin{DoxyItemize}
\item Added clear function
\item add function which compares shader files with the last modified timestamp
\item Add support to query static shader programs from the shader cache
\end{DoxyItemize}
\item Shader Pipeline
\begin{DoxyItemize}
\item Shader based pipeline takes the global ambient light into account now.
\item Lighting in fixed function and shader pipeline should be unified now.
\end{DoxyItemize}
\item Texture\+Node
\begin{DoxyItemize}
\item npot texture support in Texture\+Node refs \#2218
\end{DoxyItemize}
\item Tools
\begin{DoxyItemize}
\item Unified color generator interfaces.
\item workaround for memory corruption, when a multisampled F\+BO is resized
\item New Texture\+Buffer class in \hyperlink{namespaceACG}{A\+CG} for opengl texture buffers
\item \hyperlink{namespaceACG}{A\+CG} Textures can now be bound to any texture slot by passing the texture unit to \hyperlink{namespaceOpenMesh_1_1Kernel__OSG_a16b8b29bbad427ea962a06fc04f5eb7a}{bind()}
\item Add filter weight computation for reading from multisampled textures
\end{DoxyItemize}
\item Uniform Pool
\begin{DoxyItemize}
\item fix wrong storage type for integer uniforms
\end{DoxyItemize}
\item Mesh Tools
\begin{DoxyItemize}
\item Added function to grow edge selections.
\end{DoxyItemize}
\item Documentation
\begin{DoxyItemize}
\item \hyperlink{classRenderer}{Renderer} tutorial
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Output more information on crash
\item Disallow copy construction of Stackwalker
\item Improved view decoding
\end{DoxyItemize}
\item Interface
\begin{DoxyItemize}
\item \hyperlink{namespacePluginFunctions}{Plugin\+Functions}\+: Added fovy function.
\item Viewer\+Properties\+: Added const accessor for gl\+State.
\item remove double updating of menubar it fixed crash on macos refs \#2036
\item Added set\+View\+And\+Window\+Geometry to core scripting functions.
\item Improved \hyperlink{namespacePluginFunctions_a9209e9a0bfb573f93997746b0f387890}{Plugin\+Functions\+::get\+Save\+File\+Name}
\item Function to invalidate pick caches via plugin functions.
\end{DoxyItemize}
\item IO
\begin{DoxyItemize}
\item Fixed crash in save functions, not correctly checking if the object to be saved exists
\end{DoxyItemize}
\item UI
\begin{DoxyItemize}
\item add gui elements for shader timestemp function (see options -\/$>$ files) and reload shaders
\item Added F2 shortcut for Viewer Snapshot
\end{DoxyItemize}
\item Qt\+Base\+Viewer
\begin{DoxyItemize}
\item Cleaned up Qt\+Base\+Viewer code a bit.
\item Let the glwidget do the buffer clearing, not the renderers (simplified renderer plugins)
\item Fixed opaque rendering of background for screenshots with alpha channel
\item fix snapshot output format for transparent objects
\item Refactored gl\+Widget\+::decode\+View.
\item Fixed ortho projection when moving multiple objects \#2234
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Components
\begin{DoxyItemize}
\item Add nogui support
\end{DoxyItemize}
\item Datacontrol
\begin{DoxyItemize}
\item Allow copy and pasting of materials (Requires json support)
\item add functions for adding empty groups. thanks to Vladimir Chalupecky for providing the code closes \#2219
\item update layout when object is deleted, fix ungroup-\/visibility problem closes \#2222
\end{DoxyItemize}
\item Depth Peeling
\begin{DoxyItemize}
\item Code refactoring and cleanup
\item Front to back peeling back to work
\item User can switch between dual peeling and front to back peeling via options menu
\item Post-\/processor support\+: Output of front depth layers in hardware depth buffer
\end{DoxyItemize}
\item File-\/\+O\+BJ
\begin{DoxyItemize}
\item fix\+: load pointclouds from obj files doesn\textquotesingle{}t insert a face anymore refs \#1995
\item fix grouping with non manifold geometry closes \#2130
\end{DoxyItemize}
\item File-\/\+P\+TS
\begin{DoxyItemize}
\item use default Open\+Flipper settings instead of arbitrary default options for loading P\+TS files
\item update the viewport once a P\+TS file is opened
\end{DoxyItemize}
\item File-\/\+V\+TK
\begin{DoxyItemize}
\item fix wrong count in the P\+O\+L\+Y\+G\+O\+NS header (Thanks to Vladimir Chalupecky for the patch)
\end{DoxyItemize}
\item Info Meshobject
\begin{DoxyItemize}
\item set minimum size of the bounding box image closes \#2121
\item set minimum size for the whole window refs \#2121
\item adjust size of dialog after setting all the variables
\item add scrollbar
\item reduces base height closes \#2121
\item Added face valence info. (Important for Poly\+Meshes.)
\end{DoxyItemize}
\item Mem\+Info
\begin{DoxyItemize}
\item Added better measurement of free memory for Linux platforms.
\end{DoxyItemize}
\item Move
\begin{DoxyItemize}
\item no crash, if the manipulator is sized too small
\item Provide Manipulator context menu for all plugins that use a manipulator
\end{DoxyItemize}
\item Primitives
\begin{DoxyItemize}
\item Added Sphere generator based on subdivision (Thanks to Vladimir Chalupecky for the original patch). closes \#2041
\end{DoxyItemize}
\item Property\+Viz
\begin{DoxyItemize}
\item Added new vector viz mode.
\item Visualization (and picking) of Vec2$\ast$.
\end{DoxyItemize}
\item Remesher
\begin{DoxyItemize}
\item Fix cppcheck warning in Remesher
\item Fixed boundary errors in Remesher
\end{DoxyItemize}
\item \hyperlink{classRenderer}{Renderer} Toon
\begin{DoxyItemize}
\item Add options dialog for toon renderer
\end{DoxyItemize}
\item Selection \hyperlink{classMeshObject}{Mesh\+Object}
\begin{DoxyItemize}
\item patch for lasso selection of point clouds, mapping function is correct refs \#2056
\item Simplified sphere mesh selection code closes \#2129
\item Added trace edge path function
\end{DoxyItemize}
\item Shader Pipeline
\begin{DoxyItemize}
\item Stereo support and new buffer handling in shader pipeline renderer
\end{DoxyItemize}
\item Skeletal Animation
\begin{DoxyItemize}
\item ui updating fix refs 2046
\end{DoxyItemize}
\item Subdivider
\begin{DoxyItemize}
\item Sripting slots don\textquotesingle{}t use ui anymore ( Thanks to Vladimir Chalupecky for the patch)
\item Added more user output to inform on errors or unsupported algorithms.
\item Fixed slot descriptions ( the subdivider is not a smoother ;-\/) )
\item Updated Vsi xml
\end{DoxyItemize}
\item Toon Shader
\begin{DoxyItemize}
\item Added new renderer plugin for toon shading
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Data Types}
\begin{DoxyItemize}
\item Hexahedral\+Mesh and Type\+Poly\+Hedral\+Mesh
\begin{DoxyItemize}
\item Added convenience functions to get a hexahedral or polyhedral mesh directly from the object id. closes \#2199
\end{DoxyItemize}
\item Plane Object
\begin{DoxyItemize}
\item update plane for the new renderer
\item deferred updating and creation of the plane vbo it fixes gpu crash on mac refs \#1896
\end{DoxyItemize}
\item Poly\+Line
\begin{DoxyItemize}
\item Added preimage handling to polylines
\end{DoxyItemize}
\item Mesh Object
\begin{DoxyItemize}
\item avoid initialization of ward shader, which might cause trouble on intel graphics refs \#2064
\item remove old ward shader refs \#2068
\end{DoxyItemize}
\item Volume\+Mesh Object
\begin{DoxyItemize}
\item Fixed issue \#2061 -\/$>$ Comparison of boolean to itself.
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item set debug/release output\+\_\+dir for mac with bundles enabled closes 1993
\item enable stacktrace for macos refs \#2055
\item remove duplicates in the argument list of moc closes \#2062
\item Find tetgen quietly, Prefer global 1.\+5 version of tetgen
\item Get cgal path from environment variable
\item Find 64 bit poco dir
\item Strange glut include fixed
\item Added pbr lib finder
\item Windows packaging support for V\+S2013 redistributable
\item Qt5\+: Fixed R\+CC Resource compiler problems (wrong path!)
\item Don\textquotesingle{}t use ftgl anymore and don\textquotesingle{}t warn
\item Q\+W\+T6 Integration
\item Speedup for cmake generators
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item Raised Doxygen version of files to 1.\+8.\+7
\item Added documentation for shader generator
\item update docu in \hyperlink{namespaceACG}{A\+CG} \hyperlink{IRenderer_8hh_source}{I\+Renderer.\+hh}
\item Strange parser error in doxygen fixed
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 2.\+0 ( 2014/02/13 , 18180 )}
\begin{DoxyItemize}
\item {\bfseries Significant interface changes and Bugfixes}
\begin{DoxyItemize}
\item Interface\+: Don\textquotesingle{}t use allow add\+Empty in \hyperlink{classFileInterface}{File\+Interface} anymore (deprecated long time ago and basically unused! The type plugins handle this signal anyway.)
\item Interface\+: Renamed and extended functions to block scenegraph updates. Open\+Flipper\+::\+Options\+::loading\+Settings replaced by
\begin{DoxyItemize}
\item scene\+Graph\+Updates\+Blocked()
\item block\+Scene\+Graph\+Updates()
\item unblock\+Scene\+Graph\+Updates()
\end{DoxyItemize}
\item Bugfix\+: Fixed undirected shooting function returning wrong nearest triangle (was always the one with the most negative distance) in B\+SP
\item Interface\+: Ray\+Collision is now a sorted vector conbining standard pairs of the hit handles and their distance to the hit
\item Interface\+: Render Interface\+: Implemented capabilities check for renderer interface
\item Interface\+: \hyperlink{namespaceACG}{A\+CG}, Renamed the basecolor functions in the core to default\+Color
\item Bugfix\+: Emit object updates for all objects in scene, if -\/1 is given as updated object. (Should not be used, as it is very slow for a large object count!)
\item Logic\+: if an object gets deleted, no updated\+Object (-\/1) signal will be emitted now. Use the object\+Deleted slot from \hyperlink{classLoadSaveInterface}{Load\+Save\+Interface}.
\item Build\+: Default to relesae build type by default
\item Interface\+: Changed selection interface the qicons have been replaced by Q\+String. The path to the icon has to be given now This avoids the problem of qpixmap creation in the selection plugins, when no gui is present Added deprecation warning, to informa about deprecated plugin interface usage
\item Interface\+: Don\textquotesingle{}t emit updated\+Object(-\/1) anymore if an object gets deleted. Use the slot object\+Deleted from \hyperlink{classLoadSaveInterface}{Load\+Save\+Interface} instead.
\end{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Documentation
\begin{DoxyItemize}
\item Documentation for Draw\+Modes and Shader\+Generator
\item Examples for property-\/based drawmodes
\end{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Added simple scenegraph analysis function to get bounding box and multipass number
\item Fixed standard rendering pipeline to use the basecolor now (emmisive)
\item Renamed the basecolor functions in the core to default\+Color
\item Support for Geometry shader
\item created a G\+L\+Error header file under A\+C\+G/\+G\+L/ that holds all current GL error checking functions and macros
\end{DoxyItemize}
\item Geometry/\+B\+SP
\begin{DoxyItemize}
\item Removed dependency from bsp to Open\+Flipper (not required and causes unnecessary linking)
\item Added directional B\+SP ray shooting including unit tests
\item Fixed undirected shooting function returning wrong nearest triangle (was always the one with the most negative distance)
\item Interface\+: Ray\+Collision is now a sorted vector combining standard pairs of the hit handles and their distance to the hit
\item Integrated optional infinity override for custom types that do not have std\+::numeric\+\_\+limits$<$\+Type$>$\+::infinity()
\item Added function to B\+SP that only returns the closest ray collision
\end{DoxyItemize}
\item Geometry/\+Spherical
\begin{DoxyItemize}
\item New functions
\end{DoxyItemize}
\item Geometry
\begin{DoxyItemize}
\item Made function dist\+Point\+Triangle\+Squared a real template function
\item Fix\+: Quaternions\+: Changed left and right mult matrices to commonly used definition
\end{DoxyItemize}
\item Gl\+State
\begin{DoxyItemize}
\item Added additional overlay color to material stuff and glstate
\end{DoxyItemize}
\item Heap
\begin{DoxyItemize}
\item gcc-\/4.\+7 build fixes
\end{DoxyItemize}
\item Halton Colors
\begin{DoxyItemize}
\item Added seed to Halton\+Colors.
\end{DoxyItemize}
\item Math
\begin{DoxyItemize}
\item Dual Quaternion\+: New operator to access dual quaternion elements sequentially
\item Dual Quaternion\+: Made interpolate function a template to allow other vector types than std\+::vector
\end{DoxyItemize}
\item Mesh\+Node
\begin{DoxyItemize}
\item New Mesh\+Compiler and Draw\+Mesh versions with improved speed and less memory overhead
\end{DoxyItemize}
\item Scenegraph\+:
\begin{DoxyItemize}
\item translation\+Manipulator\+: Added support for render objects
\item Added functions for new rendering interface, replacing the opengl standard pipeline
\item Status\+Nodes can now use the buffers of a drawmesh (reuse them to use less memory and faster rendering)
\item Poly\+Line\+Node\+: Implementation of new rendering interface
\item Manipulator\+Node \+: manipulator\+Moved should now only be emitted for manipulator objects that were actually touched
\item Material\+Node\+: Added optional J\+S\+O\+N-\/\+Serialization of materials if Q\+Json is available.
\end{DoxyItemize}
\item Shader Utils
\begin{DoxyItemize}
\item Added functions to bind and get Fragment data locations
\end{DoxyItemize}
\item Unittests
\begin{DoxyItemize}
\item Unittests for B\+SP
\item Unittests for algorithms
\end{DoxyItemize}
\item Texture\+Node
\begin{DoxyItemize}
\item Improved texture rendering
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item Speedup get\+Object in Pluginfunctions, as most functions used the slow recursive version instead of the std map accelerated version in \hyperlink{namespacePluginFunctions}{Plugin\+Functions}
\item Speedup\+: Modified the reset\+Scenegraph stuff which ran the bounding box and multipass actions too often (Approx. factor 4 speedup in this function)
\item Speedup\+: Block updates wile loading files from the command line
\item Speedup\+: Reset drawmodes only when not locked
\item Speedup\+: Don\textquotesingle{}t send view updates to plugin, if scenegraph updates are locked
\item Speedup\+: Removed unnecessary update function from reset\+Scene\+Graph (already updated on demand)
\item Speedup\+: Removed redundant call in Base\+Objects next function
\item Fix\+: Fixed action mode toggling via meta or alt keys (only worked, if already switched between modes before hitting the keys)
\item Fix\+: Video capture could crash due to illegal thread access
\item \hyperlink{classPerObjectData}{Per\+Object\+Data}
\begin{DoxyItemize}
\item Added set of standard per object datas
\end{DoxyItemize}
\item Recent\+Files
\begin{DoxyItemize}
\item common/\+Recent\+Files\+: Added obtain\+Path\+Name convenience function
\end{DoxyItemize}
\item UI
\begin{DoxyItemize}
\item Fix\+: Now the sidearea is not cleared everytime a toolbox is added, thus preventing the loss of active states
\item Fix\+: Toolboxes are sorted according to the given order now
\item Feature \+: State of toolboxes added via script is restored
\item Fix \+: States of toolboxes is remembered when changing views
\item Default changed\+: Set pick toolbars to default in scene again
\item Improved Plugin Info Dialog
\item Store Status\+Bar visibility in properties and apply it correctly when toggling fullscreen modes or when restarting the application
\item Fix\+: toolbar buttons keeps checked, if pressed twice
\item Fix\+: hide lightmode toolbar when leaving pickmode
\item Fix\+: fix reinitialization of viewmodes if toolbar is toogled (from hidden to visible)
\item Feature\+: add hotkeys toogle the visibility of the tool/menubar
\item Modification\+: Changed Show Hide Toolbar key to N
\item Added \hyperlink{classRenderer}{Renderer} Info and Postprocessor Info widgets to check the new renderers
\item Moved fov mouse wheel to ctrl key + wheel.
\item Updated Splash screen
\item Spin boxes and the like don\textquotesingle{}t steal mouse wheel focus when scrolling anymore.
\item Added post processor manager
\item Fixed logger performance issue
\end{DoxyItemize}
\item Help Browser\+:
\begin{DoxyItemize}
\item Unregister old doc files correctly
\item Fixed startpage for windows
\item fix\+: does not unregister help files if unnecessary
\end{DoxyItemize}
\item Load/\+Save
\begin{DoxyItemize}
\item Adjusted the open\+Functions and load\+Widget to handle several plugins than can load the same file format
\item A default plugin choice for each file format can also be saved via Open\+Flipper\+Settings
\end{DoxyItemize}
\item Rendering
\begin{DoxyItemize}
\item Removed most of the Rendering Code and moved it into The Classic Rendering Plugin
\end{DoxyItemize}
\item Renderer\+Manager
\begin{DoxyItemize}
\item Added function to get renderer id from name
\end{DoxyItemize}
\item G\+L\+Widget
\begin{DoxyItemize}
\item Moved stereo flag into Viewer\+Properties
\item Removed unused blending flag
\item Moved cursor painter to Viewer\+Properties
\item Modified Viewer\+Properties to allow setting near and far plane via one function only.
\item fix crash when picking an object that has just been removed
\item Postprocessor pipeline
\item Fixed snapshot function
\end{DoxyItemize}
\item About Dialog
\begin{DoxyItemize}
\item Display more information about the Open\+GL and Shader Versions
\end{DoxyItemize}
\item Fix\+: Don\textquotesingle{}t create icons, when no gui is available
\item Mesh\+Tools
\begin{DoxyItemize}
\item Cleanup the Mesh\+Selection file a bit (Make all referneces const ref) (Thanks to Vladimir Chalupecky for the report)
\item Cleanup Mesh\+Info to be more consistent (Use pointers for all mesh parameters) (Thanks to Vladimir Chalupecky for the report)
\item Change cog to get a pointer to the mesh
\item Change get\+Bounding\+Box to get a pointer to the mesh
\end{DoxyItemize}
\item Snapshots
\begin{DoxyItemize}
\item Optionally store mesh comments as metadata in screenshots.
\end{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Improved VS 2012 compatibility (Thanks to Duncan Paterson for the patch)
\item changed some c header includes to c++ pendant
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Interfaces}
\begin{DoxyItemize}
\item About Interface
\begin{DoxyItemize}
\item New Interface to allow plugins to add e.\+g. License information to Open\+Flippers about dialog
\end{DoxyItemize}
\item File Interface
\begin{DoxyItemize}
\item load and save filters from file plugins can now contain several file formats seperated by \char`\"{};;\char`\"{} (for example\+: \char`\"{}\+Alias/\+Wavefront ( $\ast$.\+obj );;\+Auto\+C\+A\+D D\+X\+F ( $\ast$.\+dxf )\char`\"{}
\item 
\end{DoxyItemize}
\item \hyperlink{namespaceRPC}{R\+PC} Interface
\begin{DoxyItemize}
\item Support for rpc calls with return value and up to 6 parameters
\end{DoxyItemize}
\item Render Interface
\begin{DoxyItemize}
\item Implemented capabilities check for renderer interface
\end{DoxyItemize}
\item \hyperlink{namespacePluginFunctions}{Plugin\+Functions}
\begin{DoxyItemize}
\item Fixed not existing ( wrong name) of Object\+Exists
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Object\+Types}
\begin{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Speedup\+: Removed the get\+\_\+unique\+\_\+name functions when adding any object, as this would cause linear time when adding new objects.
\item Merged the two implementations of \hyperlink{classQtPlaneSelect}{Qt\+Plane\+Select}.
\item Comment functionality added to \hyperlink{classBaseObject}{Base\+Object}.
\item seperate internal target/source selection
\end{DoxyItemize}
\item B\+Spline\+Curve dd \char`\"{}group\+Object\char`\"{} scriptfunction which adds objects to an existing group -\/ Make proper use of templates to enable different data types
\begin{DoxyItemize}
\item Adapted b-\/spline curve class to use template scalar type instead of hard-\/coded double.
\item Getting const ref as point parameter
\end{DoxyItemize}
\item Plane
\begin{DoxyItemize}
\item Get rid of immidiate mode when rendering
\item Update buffers only when necessary
\item Fixed bounding box computation for plane
\end{DoxyItemize}
\item Poly\+Line
\begin{DoxyItemize}
\item Added function to create circles
\item Follow new color spec in polyline nodes
\item Fixed picking through object when using polyline interaction.
\item Fixed polyline merge crash, when picked object is not a poly line
\item Cloning capabilities
\end{DoxyItemize}
\item Skeleton
\begin{DoxyItemize}
\item Added include guard to \hyperlink{classAnimationHandle}{Animation\+Handle} class
\end{DoxyItemize}
\item Volume\+Mesh
\begin{DoxyItemize}
\item Added draw mode for colored vertices
\item Phong rendering
\item Single texture support
\item Fixed client states which were not reset by the Volume\+Mesh\+Node
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Backup
\begin{DoxyItemize}
\item Fix\+: Now the signal about\+To\+Restore is also correctly emitted in slot\+Undo()
\end{DoxyItemize}
\item Color
\begin{DoxyItemize}
\item Added Vector4 Scripting datatype
\item V\+SI Meta data for color plugin
\item Scripting functions to set object color
\end{DoxyItemize}
\item Components
\begin{DoxyItemize}
\item New plugin in Free branch to split mesh into separate components
\end{DoxyItemize}
\item Datacontrol
\begin{DoxyItemize}
\item Added context menu item to copy material to targeted objects.
\item Speedup\+: Accellerate Treeitem lookup for child by a map. This should speedup large object count handling significantly.
\item Speedup\+: Remove duplicate function calls
\item Speedup\+: Only handle lightsources in file opened, if they are added
\item Speedup\+: Various improvements (and unittests to check them)
\item Scripting Feature\+: add \char`\"{}group\+Object\char`\"{} scriptfunction which adds objects to an existing group
\item Scripting Feature\+: add \char`\"{}get\+Group\+Elements\char`\"{} script function
\end{DoxyItemize}
\item Decimater
\begin{DoxyItemize}
\item Added multiple choice decimater (up to 4 times faster but with less accuracy)
\item Add init button for keeping initialization
\item Fix\+: Decimater objects are cleared before an undo happens
\item Nogui support
\end{DoxyItemize}
\item All File Plugins
\begin{DoxyItemize}
\item Added option to set output precision of numbers in ascii based file formats
\end{DoxyItemize}
\item File Bundler
\begin{DoxyItemize}
\item New Plugin
\item Read output from bundler (\hyperlink{classSplatCloud}{Splat\+Cloud}, Cameras)
\end{DoxyItemize}
\item File P\+LY
\begin{DoxyItemize}
\item Fixed wrong casting of colors ( written files contained only black and white colors
\item Adjusted P\+LY writer to be dataformat compliant
\end{DoxyItemize}
\item File O\+BJ
\begin{DoxyItemize}
\item Fixed O\+BJ reader crash on files with only points (points are treated as vertices of a polymesh now)
\item Fixed writing face indices in different configurations regarding vertex texture coordinates and vertex normals
\end{DoxyItemize}
\item File Off
\begin{DoxyItemize}
\item Fixed reading of some binary files, which were not opened correctly
\item fix\+: alphacolor per face is saved only once
\item fix\+: removed spaces in O\+FF Header
\end{DoxyItemize}
\item File Poly\+Line
\begin{DoxyItemize}
\item Added backwards compatible load/save for bezier and circle poly lines.
\end{DoxyItemize}
\item File V\+TK
\begin{DoxyItemize}
\item Added open volume mesh support for vtk reader
\item V\+TK files with polydata will be loaded correctly now and not loaded like e.\+g structed points
\end{DoxyItemize}
\item Isotropic Remesher
\begin{DoxyItemize}
\item Increased toolbox maximum
\end{DoxyItemize}
\item Info Mesh Object
\begin{DoxyItemize}
\item Use a hash map to cash the target objects to avoid linear time lookup for the targets
\item Don\textquotesingle{}t show genus, when the object is not closed
\end{DoxyItemize}
\item Info Volume\+Mesh
\begin{DoxyItemize}
\item Added Plugin-\/\+Info\+Volume\+Mesh\+Object. Only very limited support.
\end{DoxyItemize}
\item Material Picker
\begin{DoxyItemize}
\item New Plugin to store and set materials on objects
\end{DoxyItemize}
\item Mem\+Info
\begin{DoxyItemize}
\item New Plugin showing memory usage
\end{DoxyItemize}
\item Mesh\+Repair
\begin{DoxyItemize}
\item Fix\+: flip orientation does not produce holes anymore
\item New snap boundary function
\item Added fix topology function
\item Added a function to fix a mesh by snapping vertices in a specific range into one vertex
\item Increased maximal values for the spin boxes
\item UI Cosmetics
\end{DoxyItemize}
\item Move
\begin{DoxyItemize}
\item Added scripting function for the transformation of handle vertices.
\item fixed a problem with applying the manipulator transformation to all targets
\item move\+Selection should now only store backups if elements were actually selected and transformed
\item Move plugin extension to support volume meshes.
\item Don\textquotesingle{}t create automatic backups in Move scripting functions ( Moved up to the slots triggered via ui), as the calling plugins should create the backups.
\item transform normals with the invers transposed of the transform matrix
\end{DoxyItemize}
\item Poly\+Line
\begin{DoxyItemize}
\item Polyline circles
\item Added Polyy\+Circle metadata
\item Added bezier polyline functions.
\end{DoxyItemize}
\item Primitives Generator
\begin{DoxyItemize}
\item Added cylinder generator (with scriptable parameters)
\item Add size and position parameters to all add$\ast$$\ast$ slot and script functions
\end{DoxyItemize}
\item Render Shader Pipeline
\begin{DoxyItemize}
\item New renderrer, based on a shader replacement of the standard pipeline
\end{DoxyItemize}
\item Render Classic
\begin{DoxyItemize}
\item The classical \hyperlink{classRenderer}{Renderer} taken from the core and moved into a plugin ( Important step to use the new Renderers via \hyperlink{classCore}{Core} Profiles)
\end{DoxyItemize}
\item Property Vis
\begin{DoxyItemize}
\item Increased maximal allowed scaling factor for vectors
\item Support build without skeleton data type
\item Refactored, new features\+:
\begin{DoxyItemize}
\item Changed plugin\textquotesingle{}s architecture so that it can now be extended to support generic object types (implementation for Open\+Volume\+Mesh has been added).
\item Read/write properties from/into files. Also reading props into existing properties is now supported.
\item Multiple properties can be selected (multiple toolboxes appear) and combined.
\item Documentation has been added.
\end{DoxyItemize}
\item plugin is now informed about object deletion
\end{DoxyItemize}
\item Remesher
\begin{DoxyItemize}
\item remeshing with face selection (code provided by Vladimir Chalupecky. thanks)
\item switch selection face/vertex selection in gui and add scriptfunctions
\end{DoxyItemize}
\item Render \hyperlink{classDepthPeeling}{Depth\+Peeling}
\begin{DoxyItemize}
\item Fixed shader not working correctly on mac
\end{DoxyItemize}
\item \hyperlink{classRuler}{Ruler} Plugin
\begin{DoxyItemize}
\item Some function and class change for better readability and multi ruler support
\item Double click now removes ruler.
\end{DoxyItemize}
\item Scripting Plugin
\begin{DoxyItemize}
\item The filename of the script is now no longer saved when a script is executed.
\item fixed a bug where using the V\+SI plugin could cause an accidental overwrite of the previously saved script
\end{DoxyItemize}
\item Selection\+Base
\begin{DoxyItemize}
\item Speedup selection base plugin by caching the number of objects of the specific types (no linear time check anymore)
\end{DoxyItemize}
\item Selection\+Mesh\+Object
\begin{DoxyItemize}
\item Fixed action mode toggling via meta or alt keys
\item Made conversion function scriptable
\item Fixed bug in selection plugin when switching between halfedge and edge selection with sphere
\item Use Mousewheel + shift to grow or shrink selections
\item Implemented scripting interface for closest boundary selection.
\item Emitting correct update types for primitive selections.
\end{DoxyItemize}
\item Selection\+Volume\+Mesh
\begin{DoxyItemize}
\item adds lasso and floodfill selectionmode for O\+VM
\end{DoxyItemize}
\item Skeletal Animation
\begin{DoxyItemize}
\item Speedup Skeletal Animation Plugin by only caching skeletons.
\end{DoxyItemize}
\item Type Poly\+Line
\begin{DoxyItemize}
\item Only add frounding math, if cgal is actually used
\end{DoxyItemize}
\item Type Splat Cloud
\begin{DoxyItemize}
\item Name group after splatcloud
\end{DoxyItemize}
\item View\+Control
\begin{DoxyItemize}
\item Feature to check and disable modeling areas seperatly
\item Implemented the set\+Eye\+Position function for the View\+Control plugin
\item Added sceneradius function
\item Improved behavior of visualization mode selection.
\end{DoxyItemize}
\item V\+SI
\begin{DoxyItemize}
\item Moved Vsi\+Metadata for move into move plugin
\item Added scripting functions to modify the scenegraph matrix
\item Added scripting funcrion to update ui while in scripting mode
\item Update view and update ui vsi meta data
\item Additional scipting function to jump out of loop
\item Added compose vector function
\item Added Vector4 Scripting datatype
\item Added compose Vector4 V\+SI block
\item Handle is\+\_\+connected for inputs as well
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Scripting}
\begin{DoxyItemize}
\item \hyperlink{classCore}{Core}\+: Added get\+Toolbox method to scripting interface.
\item \hyperlink{classCore}{Core}\+: Added scipting functions to block and unblock the scenegraph (speedup while handling large object counts)
\item \hyperlink{classCore}{Core}\+: Added function to exit application with an error (Usefull for unclean exit in unit tests)
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item Added documentation about core keys
\item Removed example path from doxyfiles for user documentation
\item Added colored point rendering stuff.
\end{DoxyItemize}
\item {\bfseries License management}
\begin{DoxyItemize}
\item License manager now parses any number of license requests out of garbled junk.
\item Added function to keygen that allows mangling new plugin fingerprints into existing hardware hashes.
\item Added cmake option to build license key generators independently of license manager.
\end{DoxyItemize}
\item {\bfseries Debugging}
\begin{DoxyItemize}
\item Integrated debugging via Stackwalker on window ( Writes Crash\+Dump.\+txt to Open\+Flipper Home directory)
\end{DoxyItemize}
\item {\bfseries Build system}
\begin{DoxyItemize}
\item Cmake switch to use external \hyperlink{namespaceOpenMesh}{Open\+Mesh}
\item New finders for openni and nite
\item Default to release build type by default
\item Added plugin collections to cleanup directory structure
\item Extract library path for glut on windows
\item Added workaround, if found is defined in lowercase for optional dependency
\item Increased Qt warning to 4.\+8.\+4
\item Added cmake finder for mpfr library
\item Made gurobi finder work on mac
\item Don\textquotesingle{}t build file plugins, if their data type is missing
\item Added plugin cmake option to pass definitions seperate from flags.
\item Added option to pass definitions from finder directly via plugin dependencies
\item Added target Open\+Flipper\+\_\+package on mac, which calls fixbundle first.
\item fixbundle is no longer called automatically on mac.
\item Identify clang in the compiler settings
\item Improved branding support
\item Basic Qt5 compatibility and finders
\item Removed obsolete ftemplate-\/depth, as the defaults should be fine
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+3 ( 2012.\+07.\+16 , 15046 )}
\begin{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Draw\+Modes
\begin{DoxyItemize}
\item Implemented property based draw modes
\end{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Ongoing work for more advanced renderer interfaces
\end{DoxyItemize}
\item Geometry
\begin{DoxyItemize}
\item Improving B\+SP tree implementation
\end{DoxyItemize}
\item GL
\begin{DoxyItemize}
\item Added Shader\+Generator
\end{DoxyItemize}
\item Math
\begin{DoxyItemize}
\item Matrix4x4\+: Added determinant method
\item Fixed G\+L\+MatrixT constructor
\item Added Vec3b
\end{DoxyItemize}
\item Light\+Node
\begin{DoxyItemize}
\item Compiler fix\+: Work around c++0x problem with initialization of a vector
\end{DoxyItemize}
\item Line\+Node
\begin{DoxyItemize}
\item Bug fix\+: Line\+Segment mode when no colors are specified
\end{DoxyItemize}
\item Material2\+Node
\begin{DoxyItemize}
\item Removed (unused anyway and users might get confused)
\end{DoxyItemize}
\item Shader\+Utils
\begin{DoxyItemize}
\item Handle matrices as uniforms
\end{DoxyItemize}
\item Text\+Node
\begin{DoxyItemize}
\item Get rid of ftgl and freetype requirements
\item Render textured quad to be able to support higher Open\+GL profiles
\end{DoxyItemize}
\item Translation\+Manipulator\+Node
\begin{DoxyItemize}
\item fix\+: manipulator color circles changed
\end{DoxyItemize}
\item Qt\+Widgets
\begin{DoxyItemize}
\item Added spinbox for better control of the shininess
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item Help
\begin{DoxyItemize}
\item Help Browser shows message if page wasn\textquotesingle{}t found
\item Fix\+: back/forward button works when link in textbrowser was clicked
\item Fix\+: Help browser tree view selection will be updated if a link to another document is clicked.
\item Fix\+: double loading home page at the beginning
\item Fixed warning due to connection to non existing slot.
\item Fix\+: Build error with gcc-\/4.\+7 due to missing include in \hyperlink{About_8cc_source}{About.\+cc}
\end{DoxyItemize}
\item IO
\begin{DoxyItemize}
\item \hyperlink{classBaseObject}{Base\+Object} now stores the filename of an object from which it was loaded
\item \hyperlink{classBaseObject}{Base\+Object} now stores the path of an object from which it was loaded
\item added an option to the save settings input dialog for objects with no given extensions, such that a chosen extension can be applied to all object without preset types
\end{DoxyItemize}
\item Load/\+Save
\begin{DoxyItemize}
\item Added a Q\+Input\+Dialog so that the user can choose a file extension for newly created meshes when saving the settings.
\item Bugfix\+: Delete all is equivalent to clear all, so emit the clear all signal as well
\end{DoxyItemize}
\item Rendering
\begin{DoxyItemize}
\item Bugfix\+: Improved recovery of broken scene setups
\end{DoxyItemize}
\item UI
\begin{DoxyItemize}
\item Paste View\+: keep toolbarsize when window size is not changed
\item Paste View\+: Added extra button to paste view and the window size
\item Paste View\+: Integrate the toolbox size into the copied view
\item Default changed when removing objects (Defaults to yes now)
\item Improvement\+: When switching to orthogonal mode, the coordinate system now switches to ortho projection, too
\item Fix\+: Snapshot function on windows did not capture the gl widget correctly (fixes \#943)
\item Fix\+: Fixed bug where multiview layout box has not been updated correctly
\end{DoxyItemize}
\item Base\+Viewer
\begin{DoxyItemize}
\item Get rid of the twenty region pick functions in the qtbaseviewer (Merged to one)
\end{DoxyItemize}
\item \hyperlink{namespacePluginFunctions}{Plugin\+Functions}
\begin{DoxyItemize}
\item Fixed plugin function for is\+Projection\+Orthographic which did not work for the active\+\_\+viewer. (Thanks to Bengt Rosenberger for the report)
\end{DoxyItemize}
\item Process management
\begin{DoxyItemize}
\item Enable process support without G\+UI
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Object\+Types}
\begin{DoxyItemize}
\item B\+Spline\+Curve
\begin{DoxyItemize}
\item Fixed colors
\item Fixed crash with empty spline curve on windows
\end{DoxyItemize}
\item Plane
\begin{DoxyItemize}
\item Improved implementation and Documentation
\end{DoxyItemize}
\item Poly\+Line
\begin{DoxyItemize}
\item New objecttype representing polygonal lines (with smoothing, dragging, mesh interaction and many more features)
\end{DoxyItemize}
\item Skeleton
\begin{DoxyItemize}
\item Removed the using namespace part to avoid collisions (corresponding plugins have been updated too)
\end{DoxyItemize}
\item \hyperlink{classSplatCloud}{Splat\+Cloud}
\begin{DoxyItemize}
\item New property system to append properties to the cloud and its entities like in OM
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Color
\begin{DoxyItemize}
\item Documentation
\item Default alpha value to 1.\+0
\end{DoxyItemize}
\item Decimater
\begin{DoxyItemize}
\item Bugfix\+: Async slider and number box after loading a new mesh
\end{DoxyItemize}
\item File\+Height\+Field
\begin{DoxyItemize}
\item Improved speed of the ui when selecting the load area
\end{DoxyItemize}
\item File O\+BJ
\begin{DoxyItemize}
\item The default group is not set to be a polymesh even if it does not have any faces
\item Added missing ifdefs for bspline curve object type
\item Single bspline-\/curves or bspline-\/surfaces in obj files that do not belong to any groups are no longer grouped in the datacontrol plugin
\item Fix\+: bspline curves and bspline surfaces should be grouped correctly now
\end{DoxyItemize}
\item File O\+FF
\begin{DoxyItemize}
\item Fix\+: Endless loop (moved an end-\/of-\/file check in read\+File\+Options so that eof is detected in time)
\item Fix\+: Correctly set path for the loaded objects
\item Fix\+: Added some additional checks so that empty lines and comments are skipped.
\end{DoxyItemize}
\item File\+P\+LY
\begin{DoxyItemize}
\item Fix\+: Ignore unknown properties instead of crashing
\end{DoxyItemize}
\item File\+S\+TL
\begin{DoxyItemize}
\item View all after loading file
\end{DoxyItemize}
\item File V\+TK
\begin{DoxyItemize}
\item vtk objects now just have the filename as a name rather than the full path
\end{DoxyItemize}
\item Isotropic Remesher
\begin{DoxyItemize}
\item Fix\+: Added a check if we are trying to collapse an edge of length 0 in the isotropic remesher
\end{DoxyItemize}
\item \hyperlink{classRuler}{Ruler}
\begin{DoxyItemize}
\item New plugin to measure the euclidean distance between objects in the 3D scene.
\end{DoxyItemize}
\item Mesh\+Object\+Info
\begin{DoxyItemize}
\item Support for point clouds represented by meshes
\end{DoxyItemize}
\item Mesh\+Repair
\begin{DoxyItemize}
\item Fix\+: Don\textquotesingle{}t only detect error and crash but detect error and warn about it (without crashing)
\end{DoxyItemize}
\item Move
\begin{DoxyItemize}
\item User Documentation
\end{DoxyItemize}
\item Property\+Vis
\begin{DoxyItemize}
\item Added color viz for vector properties
\end{DoxyItemize}
\item Scripting
\begin{DoxyItemize}
\item Sort list of available functions
\end{DoxyItemize}
\item Selection Base
\begin{DoxyItemize}
\item Allow selection plugins to restrict its selection metaphors to specified data types (or all if none is given).
\end{DoxyItemize}
\item Selection\+Mesh\+Object
\begin{DoxyItemize}
\item Added scripting function to select vertices based on the value of one of their components
\end{DoxyItemize}
\item Subdivider
\begin{DoxyItemize}
\item Added Catmull Clark subdivider from \hyperlink{namespaceOpenMesh}{Open\+Mesh} (Thanks to Leon Kos for providing the code)
\end{DoxyItemize}
\item Type\+Hexa\+Hedral\+Mesh
\begin{DoxyItemize}
\item Automatically set ambient color when adding empty mesh.
\end{DoxyItemize}
\item Type\+Poly\+Hedral\+Mesh
\begin{DoxyItemize}
\item Added translucency rendering options to polyhedral mesh type plugin.
\item Automatically set ambient color when adding empty mesh.
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Scripting System}
\begin{DoxyItemize}
\item Vector type
\begin{DoxyItemize}
\item Added functions for add, multiply, scalar product, norm, sqrnorm, normalize and sub
\end{DoxyItemize}
\item Matrix type
\begin{DoxyItemize}
\item Added matrix vector multiplication
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Mac
\begin{DoxyItemize}
\item Added flag O\+P\+E\+N\+F\+L\+I\+P\+P\+E\+R\+\_\+\+C\+A\+L\+L\+\_\+\+F\+I\+X\+\_\+\+B\+U\+N\+D\+LE to disable bundle creation on mac os
\end{DoxyItemize}
\item Win
\begin{DoxyItemize}
\item Fixed silent install of Visual Studio 2010 redistributable
\item Make clear that a missing redistributable is only a warning.
\item Fixed a problem when building V\+S2010 binaries containing qwt on a machine where qwt is also available but build with V\+S2008
\end{DoxyItemize}
\item Linux
\begin{DoxyItemize}
\item Some cmake-\/\+Finder upgrades to support Fedora and to be more clean
\end{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Allow Compiler Defines per plugin
\item Updated qt tested version to 4.\+8.\+1
\item Added Finder vor C\+P\+L\+EX and Metis
\item Added option to disable libraries which are not required
\item Updated some finders
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item Added Documentation about creating own data types
\item Integrated Open\+Volume\+Mesh documentation
\item Included bib files for Open\+Volume\+Mesh
\item Fixed a lot of doxygen warnings
\end{DoxyItemize}
\item {\bfseries Testing System}
\begin{DoxyItemize}
\item Added optional 4th argument to run\+\_\+single\+\_\+object\+\_\+file\+\_\+mesh\+\_\+test, which gives a directory with meshes for testing. If given, T\+E\+S\+T\+\_\+\+F\+I\+LE argument is ignored.
\item Increased the testing timeouts a bit (Due to heavy load on the build servers tests got marked as failed but the timeouts where caused by heavy load)
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+2 ( 2012.\+03.\+23 , 14285 )}
\begin{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Draw\+Mesh
\begin{DoxyItemize}
\item Fixed crash with some empty meshes
\end{DoxyItemize}
\item Draw\+Modes
\begin{DoxyItemize}
\item Reworked dynamic draw\+Mode interface
\item new draw modes\+: points\+\_\+colored / points\+\_\+colored\+\_\+shaded
\end{DoxyItemize}
\item Geometry
\begin{DoxyItemize}
\item Fixed aspect ratio function
\item compute the rotation axis as wellas the rotation angle of two given vectors
\item Moved bsp tree from Open\+Flipper comon to \hyperlink{namespaceACG}{A\+CG} directory
\end{DoxyItemize}
\item GL
\begin{DoxyItemize}
\item Added G\+L\+Primitives class to get rid of glut
\item Implemented missing read functions for current bound framebuffer. refs \#373
\end{DoxyItemize}
\item Math
\begin{DoxyItemize}
\item Added operator$\ast$ for matrix $\ast$ scalar multiplication, where each element of the matrix is multiplied with the scalar.
\item Added column-\/wise constructor to G\+L\+Matrix
\end{DoxyItemize}
\item Scene\+Graph
\begin{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Replace usage of glu\+Disk/\+Sphere... by the G\+L\+Primitives
\end{DoxyItemize}
\item Coordsys\+Node
\begin{DoxyItemize}
\item Rendering fix for colors of coordsys
\end{DoxyItemize}
\item Line\+Node
\begin{DoxyItemize}
\item added Vec4f color support and blending for Line\+Node (in segment mode)
\end{DoxyItemize}
\item Mesh\+Node
\begin{DoxyItemize}
\item Don\textquotesingle{}t texture edges, halfedges and points in meshnode
\item Fixed picking bug, not updating the buffers when switching between any and face picking
\item Extra buffer for any picking pass
\item Bugfix, where mesh was not build yet, but picking needed refs \#281
\item Bugfix for any picking. closes \#354
\end{DoxyItemize}
\item Point\+Node
\begin{DoxyItemize}
\item Switched to vec4f colors
\end{DoxyItemize}
\item Shader\+Node
\begin{DoxyItemize}
\item Return the available drawmodes based on the set shaders
\end{DoxyItemize}
\item Translation\+Manipulator\+Node
\begin{DoxyItemize}
\item Make Qt\+Translation\+Manipulator\+Node active per default, since otherwise it is neglected when computing the scene\textquotesingle{}s bounding box
\item Fixed set\+\_\+direction for translation manipulator Node
\item Added functions to disable unused rotation parts of the manipulator
\item Corrected colors for translationmanipulatornode. closes \#289
\end{DoxyItemize}
\end{DoxyItemize}
\item Qt\+Widgets
\begin{DoxyItemize}
\item Added Color\+Chooser\+Button with alpha channel display
\item Use new Color\+Chooser\+Button for Qt\+Material\+Dialog
\item Get rid of ugly frame rendering bug in Qt\+Base\+Viewer
\end{DoxyItemize}
\item Shader\+Utils
\begin{DoxyItemize}
\item Uniform setters for Vec2f and Vec4f
\item Uniform setter for float arrays
\item Geometry Shader support
\end{DoxyItemize}
\item Utilities
\begin{DoxyItemize}
\item Added \hyperlink{classACG_1_1ColorGenerator}{A\+C\+G\+::\+Color\+Generator} (For generating good reproducable colors)
\item Halton Color generator
\item Added colorcoder generating nice colors for a given range of doubles.
\item Add basic histogram plots with colored bars to \hyperlink{namespaceACG}{A\+CG}
\item Added a smart pointer header defining a namespace ptr based on the available capabilities
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Bugfix for ++ operator in \hyperlink{classUpdateType}{Update\+Type}
\item Bugfix\+: Avoid target counter underflow when copying objects
\item Bugfix\+: Missing update\+GL causing wrong picking buffers in some special settings
\item Bugfix\+: More safety checks on startup to avoid crashes related to window states
\end{DoxyItemize}
\item Logger
\begin{DoxyItemize}
\item Updated widget and removed old workarounds that were required in older qt versions
\end{DoxyItemize}
\item Rendering
\begin{DoxyItemize}
\item Rendermanager/\+Postprocessor\+Manager bugfix (crash when illegal viewer id -\/1 was used)
\item Fixed bug in renderinfo not setting viewer to a renderer mode
\end{DoxyItemize}
\item Scripting
\begin{DoxyItemize}
\item Added help function to print help about different objects (e.\+g. plugins with help(\char`\"{}datacontrol\char`\"{}) )
\item Added script handler logging scripting errors to the console even if they are not run via the script editor
\end{DoxyItemize}
\item UI
\begin{DoxyItemize}
\item Get rid of ugly frame rendering bug in \hyperlink{classSimpleViewer}{Simple\+Viewer}
\item Do not reset picking toolbar\textquotesingle{}s position and orientation each time it is shown.
\item Fixed bug where logger and toolbar where invisible
\item Modified drawmode context menu to stay open if drawmodes are combined.
\item Copy and paste view can now also restore the window and toolbox sizes
\end{DoxyItemize}
\item Help
\begin{DoxyItemize}
\item Open Help browser if what\textquotesingle{}s this links are clicked.
\item Correctly modify treewidget position when a link was clicked.
\item Fixed help browser to correctly find resources in the virtual folder of the last opened document.
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Interfaces}
\begin{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Use const ref for passing strings where possible
\end{DoxyItemize}
\item \hyperlink{classBaseInterface}{Base\+Interface}
\begin{DoxyItemize}
\item Added Basinterface function to switch renderer
\item Added function to get current renderer
\item Added slot\+Scene\+Drawn. Gets triggered after gl update. (closes \#449)
\end{DoxyItemize}
\item \hyperlink{classFileInterface}{File\+Interface}
\begin{DoxyItemize}
\item Added get\+All\+File\+Filters signal to \hyperlink{classLoadSaveInterface}{Load\+Save\+Interface}. This signal was documented but in fact never implemented.
\item Added two convenience functions for list of recent items bookkeeping. (remember\+Recent\+Item,get\+Recent\+Items)
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Object\+Types}
\begin{DoxyItemize}
\item Hexahedral\+Mesh
\begin{DoxyItemize}
\item New object type for handling hexahedral meshes with an interface like \hyperlink{namespaceOpenMesh}{Open\+Mesh} (Open\+Volume\+Mesh)
\end{DoxyItemize}
\item \hyperlink{classPolyMeshObject}{Poly\+Mesh\+Object}
\begin{DoxyItemize}
\item Switched color type in meshes from Vec3uc to Vec4f to support alpha per primitive
\end{DoxyItemize}
\item Skeleton
\begin{DoxyItemize}
\item Draw root joint in orange
\item Fixed non const function hiding draw modes for skeletons
\item Additional \hyperlink{namespacePluginFunctions}{Plugin\+Functions} to get skeletons / skeleton\+Objects by id
\item Add reference information to find a skeleton to a skin
\item Introduced animation iterator
\item insert joint function
\item split joint function
\item rename for animations
\end{DoxyItemize}
\item \hyperlink{classSplatCloud}{Splat\+Cloud}
\begin{DoxyItemize}
\item Added new splat cloud object type
\end{DoxyItemize}
\item \hyperlink{classTriMeshObject}{Tri\+Mesh\+Object}
\begin{DoxyItemize}
\item Switched color type in meshes from Vec3uc to Vec4f to support alpha per primitive
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Backup
\begin{DoxyItemize}
\item Small fix for signal flow through backup plugin
\end{DoxyItemize}
\item Data\+Control
\begin{DoxyItemize}
\item Made Data\+Control scriptable
\item added print\+Object\+Info\+To\+Log function which prints info about all available objects to the log
\item Implemented scripting function in datacontrol to get number of groups in the scene.
\item Function to get object datatype and stringlist of all available datatypes.
\end{DoxyItemize}
\item Decimater
\begin{DoxyItemize}
\item New decimater with various constraints and feature support
\end{DoxyItemize}
\item File O\+BJ
\begin{DoxyItemize}
\item Bugfix\+: Don\textquotesingle{}t try to add information when faces are not added
\item Bugfix\+: Prevent crash when trying to add non-\/manifold vertex configurations.
\item Bugfix\+: Loading of mixed objs (splines, surfaces) didn\textquotesingle{}t work correctly
\end{DoxyItemize}
\item File P\+LY
\begin{DoxyItemize}
\item View all after loading a file to see the scene
\item Fixed conversion to 4 color components
\end{DoxyItemize}
\item File\+Height\+Field
\begin{DoxyItemize}
\item New simple file plugin loading an image and interpreting it a s a height field.
\end{DoxyItemize}
\item Info\+Skeleton
\begin{DoxyItemize}
\item Scripting functions to get information
\end{DoxyItemize}
\item Mean\+Curvature
\begin{DoxyItemize}
\item Scripting functions
\end{DoxyItemize}
\item Mesh\+Compare
\begin{DoxyItemize}
\item New plugin to compare two meshes (distance, normal deviation,...)
\end{DoxyItemize}
\item Mesh\+Object\+Info
\begin{DoxyItemize}
\item Corrected and improved genus computation
\item Display edge length closes \#283
\item Enable headless mode for meshinfo plugin
\end{DoxyItemize}
\item Mesh\+Object\+Selections
\begin{DoxyItemize}
\item Added functions to convert edge selections to features.
\item Added conversion functions for all types of features (vertices, edges and faces)
\item Store edge selections as vertex pairs since edge ids are not stable (differ depending on the file reader).
\item Also store vertex pairs for halfedge selections instead of direct ids since they\textquotesingle{}re not stable either.
\item Readded missing function to create a new mesh from a selection.
\end{DoxyItemize}
\item Mesh\+Repair
\begin{DoxyItemize}
\item Added computation of halfedge-\/normals
\end{DoxyItemize}
\item Move
\begin{DoxyItemize}
\item Allow modifiying selection when changing the manipulator via its text controls
\end{DoxyItemize}
\item Primitives Generator
\begin{DoxyItemize}
\item New plugin to generate primitives
\end{DoxyItemize}
\item Property\+Vis
\begin{DoxyItemize}
\item New plugin that can visualize various properties on meshes.
\end{DoxyItemize}
\item Remesher
\begin{DoxyItemize}
\item New remesher with adaptive and uniform remeshing
\item Feature support
\end{DoxyItemize}
\item Render Depth\+Peling
\begin{DoxyItemize}
\item New plugin integrating a dual depth peeling renderer
\end{DoxyItemize}
\item Render S\+S\+AO
\begin{DoxyItemize}
\item New plugin integrating a screen space ambient occlusion renderer
\end{DoxyItemize}
\item Scripting
\begin{DoxyItemize}
\item Added user flag to enable or disable qtscript debugger
\end{DoxyItemize}
\item Smoother Plugin
\begin{DoxyItemize}
\item Make Smoother scriptable
\end{DoxyItemize}
\item Subdivider
\begin{DoxyItemize}
\item Implement option to keep original vertices at their position
\item New subdivision function, splitting the currently longest edge until a maximal edge length is reached.
\end{DoxyItemize}
\item Skeletal Animation
\begin{DoxyItemize}
\item Open\+MP parallelization
\item Detach skin from skeleton if mesh is removed from scene.
\item Bug\+: Do not deform skin if skin weights are not computed
\end{DoxyItemize}
\item Skeleton\+Editing
\begin{DoxyItemize}
\item Don\textquotesingle{}t add root joint twice when creating new skeletons
\item Basic inverse kinematics implementation
\item When a joint is translated via the Plugin, its parent joint and itself are rotated now, such that their coordinate systems stay constant w.\+r.\+t the bone axis.
\item Automatically switch to depth peeling renderer when editing skeletons
\item fixed \char`\"{}rotate manipulator\char`\"{}-\/button doesn\textquotesingle{}t deactivate \char`\"{}transform joint\char`\"{}-\/button
\item \char`\"{}split\+Joint\char`\"{} depends on \char`\"{}split\+Bone\char`\"{} in \char`\"{}skeleton\+Editing\+Scritpting.\+cc\char`\"{}
\item it should not be possible to add/delete/split joints when not in reference pose
\item fix\+: joint inserted by \char`\"{}split\+Joint\char`\"{} will not be deleted, when you click on \char`\"{}add\+Joint\char`\"{}-\/\+Button and then press on another Button
\item Removed deselection and setting of the current\+Joint in \char`\"{}split\+Joints\char`\"{}
\end{DoxyItemize}
\item Texxture\+Control
\begin{DoxyItemize}
\item Switched to qwt 6
\item Fixed histogram painting
\item Create backup of original texture coordinates in file plugins not in texturecontrol
\end{DoxyItemize}
\item V\+SI
\begin{DoxyItemize}
\item Description for remeshing algorithms
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item Do not build html index on top of each page for qt-\/help
\item Documentation for Backup Interface
\item Documentation for Postprocessor Interface
\item Documentation for Render Interface
\item Added lots of documentation for plugin programming (with tikz pictures for the flow diagrams)
\item Added what\textquotesingle{}s this generator class for easier referencing documentation from plugins
\item Fixed a lot of doxygen warnings
\end{DoxyItemize}
\item {\bfseries Testing}
\begin{DoxyItemize}
\item Integrated testing framework for file load/save testing
\item Integrated testing generators for algorithms
\item Run unittests of \hyperlink{namespaceOpenMesh}{Open\+Mesh} when Open\+Flipper tests are run
\item Added flags to disable Open\+Flipper unittest building
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Build with X\+Code 4.\+3
\item Support Visual Studio 2010 and QT 4.\+8
\item Added option to allow in source builds (not recommended but it works)
\item Doxygen, don\textquotesingle{}t warn if undocumented
\item Added Eigen3 finder
\item Fix problem with fixbundle on mac, where libraries with restrictive permissions did not get fixed properly
\item Added code style template for eclipse
\item Add option to for windows large memory support (enabled by default)
\item Default warnings now contain -\/\+Wextra
\item Moved \hyperlink{namespaceOpenMesh}{Open\+Mesh} sources to libs\+\_\+required subfolder
\item Switched to Q\+WT 6 (and enabled it on mac)
\item Use one global doxy file to control the generation of the help files for plugins
\item Fixed bug where debug and release qt versions where copied into Mac\+OS bundle causing crashes.
\item Fixed install directory of the qt help files
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+1 ( 2011.\+09.\+26 , 12468 )}
\begin{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Scene\+Graph
\begin{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Changed all nodes to use the glstate system instead of direct gl calls
\end{DoxyItemize}
\item Material\+Node
\begin{DoxyItemize}
\item Changes to light and material dialog to set alpha channel
\end{DoxyItemize}
\item Mesh\+Node
\begin{DoxyItemize}
\item Fixed bug in per vertex picking buffer(was sometimes empty).
\item Render faces with normals defined on the mesh(and do not compute them)
\end{DoxyItemize}
\item Status\+Node
\begin{DoxyItemize}
\item Implement on demand updates (before everything was updated on a change)
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item File handling
\begin{DoxyItemize}
\item Fixed load and save bug, where extensions where considered equal if prefix matched
\end{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Type iterator introduced to iterate over all currently available types
\item Removed process events calls from snapshots
\item Added threaded writing for video function (higher framerates possible due to less io waiting)
\item Removed the unique naming functions from file plugins (not required, horribly slow)
\item Removed all process\+Events from core
\item Large speedup to mesh object updates (due to status node switch for on demand updates)
\end{DoxyItemize}
\item G\+UI
\begin{DoxyItemize}
\item Fixed bug causing a crash when switching between logger modes
\item Reworked log viewer animation and embedding
\item Reworked in scene toolbar integration
\item Fixed bug with transparent frame introduced with QT 4.\+7.\+3 onward
\item Added functions to hide status bar ( Ctrl+b , scripting)
\item When going to fullscreen, hide only toolbars that are currently docked
\item Reintroduced checkbox for rendering toolbar outside of scene
\item Added menus to switch between postprocessors and renderers
\item Introduced split viewer layout with two viewers next to each other
\item Set focus on right examiner when a context menu is requested
\item Icons for video capture
\end{DoxyItemize}
\item Load/\+Save
\begin{DoxyItemize}
\item Dont crash when we get a wrong id after adding a new object
\item Fixed bug in recent files menu which sometimes ignored the type
\end{DoxyItemize}
\item Options
\begin{DoxyItemize}
\item Fixed bug where translations could not be switched in the options dialog
\item Added sliders to options widget to support smaller screens
\item Options Setting for Max\+Recent
\end{DoxyItemize}
\item Rendering
\begin{DoxyItemize}
\item Moved fly\+To animations to animation framework (no more ugly process\+Events)
\item Fixed fly to animation not working when rotation ofthe viewer was locked
\item Snapshot functions now have asynchronus file writers
\item Removed philips stereo code from core ( moved into postprocessor plugin)
\end{DoxyItemize}
\item Scripting
\begin{DoxyItemize}
\item If qt scripttools are available, integrate them into the scripting plugin (Script debugger)
\item More slot documentations
\item added delete\+Object function
\item Changed snapshot functions to count filenames with leading zeros
\item Added print\+To\+File scripting function
\item Added the global function print\+To\+File to list of scripting functions
\item Slot descriptions for global scripting functions
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Interfaces}
\begin{DoxyItemize}
\item \hyperlink{classBaseInterface}{Base\+Interface}
\begin{DoxyItemize}
\item Added a draw\+Mode\+Changed slot
\end{DoxyItemize}
\item \hyperlink{classRenderInterface}{Render\+Interface}
\begin{DoxyItemize}
\item New interface to replace the core rendering function with a specialized one
\end{DoxyItemize}
\item \hyperlink{classPostProcessorInterface}{Post\+Processor\+Interface}
\begin{DoxyItemize}
\item Introduced new interface to add rendering postprocessors to plugins (e.\+g. render depth image)
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item File O\+BJ
\begin{DoxyItemize}
\item Add empty object if empty file is read instead of failing
\item Fixed issue regarding vertices that belong to a specific group. Vertices are now stored globally and then copied to the group meshes on demand..
\end{DoxyItemize}
\item File P\+LY
\begin{DoxyItemize}
\item P\+LY Reader implementation for forcing data type (required for recent files with specific type)
\end{DoxyItemize}
\item File V\+TK
\begin{DoxyItemize}
\item Introduced new V\+TK importer/exporter plugin
\end{DoxyItemize}
\item Post Processor Depth Image
\begin{DoxyItemize}
\item New Plugin taking depth buffer and rendering it as the final output image
\end{DoxyItemize}
\item Post Processor Philips Stereo
\begin{DoxyItemize}
\item Postprocessor for image output on Philips autostereoscopic displays
\end{DoxyItemize}
\item Render Picking
\begin{DoxyItemize}
\item Plugin that implements the core render picking functionality
\item Renders the picking color buffer to the screen.
\end{DoxyItemize}
\item Scripting
\begin{DoxyItemize}
\item Added if and break to keywords
\item Added line numbers to editor and error line highlighting
\item Added statusbar and error messages with line numbers
\item Toolbar for scripting widget
\item Clear scripting window after executing core scripts
\item Scripting function to clear the script widget
\item Bring widget to front when requested
\item Online syntax checking
\end{DoxyItemize}
\item Selection
\begin{DoxyItemize}
\item Introduce function to load selections via scripting from files
\item Fixed bug in selection plugin where sphere painter size was not updated on the fly
\item Readded button to load flipper selections
\item Fixed bug where sphere selection sometimes failed (pciking itself instead of object)
\end{DoxyItemize}
\item Skeleton\+Editing
\begin{DoxyItemize}
\item Fixed flickering when adding skeleton joints
\end{DoxyItemize}
\item Topology
\begin{DoxyItemize}
\item added split\+\_\+edge supporting Poly\+Meshes
\end{DoxyItemize}
\item Texturecontrol
\begin{DoxyItemize}
\item Don\textquotesingle{}t switch drawmode when texture is switched ( ==== You have to switch the drawmode yourself in a plugin now) ===== )
\item Bugfix to react on switching to texture based drawmodes
\item Histogramm for 1d halfedge based texture coords for texture properties widget
\item Bugfix property abs (absolute value) no longer causes a parse error
\end{DoxyItemize}
\item V\+SI
\begin{DoxyItemize}
\item Fixed bug where meshobjectinfo was not correctly supported
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Increased min cmake version to 2.\+8.\+5 to work around some build problems with minor versions
\item Follow links when recursivly adding sources
\item Added missing call t find\+\_\+package doxygen causing per plugin docs to be skipped
\item Install \hyperlink{namespaceACG}{A\+CG} Library along with Open\+Flipper
\item Changed name of Plugin\+Lib to Open\+Flipper\+Plugin\+Lib
\item Added basic debian build directory
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0.\+2 ( 2011.\+06.\+30 , 11903 )}
\begin{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Scene\+Graph
\begin{DoxyItemize}
\item Grid\+Node
\begin{DoxyItemize}
\item Only return a bounding box, if there will be something visible
\end{DoxyItemize}
\item Manipulator\+Node
\begin{DoxyItemize}
\item Fixed manipulator node, where bounding box was computed without center
\end{DoxyItemize}
\item Material\+Node
\begin{DoxyItemize}
\item Change point size and line width in picking mode to avoid user confusion
\end{DoxyItemize}
\item Mesh\+Node
\begin{DoxyItemize}
\item Added G\+PU Cache optimizer ( For per vertex draw modes; Speedup for rendering about 3 )
\item Use buffer objects for rendering
\end{DoxyItemize}
\item Shader\+Node
\begin{DoxyItemize}
\item Fixed return type of functions
\item Don\textquotesingle{}t use shaders when insufficient gl version is detected
\end{DoxyItemize}
\end{DoxyItemize}
\item GL
\begin{DoxyItemize}
\item Fixed bug that made Vertex\+Buffer\+Object unusable
\item Fixed bug that made Frame\+Buffer\+Object unusable
\item Avoid usage of gl\+Is\+Render\+Buffer
\item Added functions for gl version check
\item Preparation of gl state locking (not completed yet)
\end{DoxyItemize}
\item Shaderutils
\begin{DoxyItemize}
\item Check if gl version satisfies requirements for shaders
\end{DoxyItemize}
\item Documentation
\begin{DoxyItemize}
\item Color picking documentation
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item Rendering
\begin{DoxyItemize}
\item Fixed bug, when empty objects where added (Scenegraph Bounding box was not correctly reset)
\item Disable two sided lighting by default (Way faster rendering without tsl)
\item Fixed initial draw mode on mac os on first startup
\end{DoxyItemize}
\item User Interactions
\begin{DoxyItemize}
\item Fixed doubleclick in multiview not moving hitpoint to center in ortho mode
\item Context \hyperlink{classMenu}{Menu}\+: Fixed crash when no default view mode was set
\end{DoxyItemize}
\item Options
\begin{DoxyItemize}
\item Handle default projection mode via Open\+Flipper\+Settings and reorder widget
\item Added default lock rotation setting
\item Make Viewer\+Properties aware of the viewer id it belongs to
\item Place options in correct config files to be app store compliant
\end{DoxyItemize}
\item View mode
\begin{DoxyItemize}
\item When adding context menus, remove the accelerators \& to avoid matching failiures
\item Fix for the undo/redo context menu entries containing special characters.
\end{DoxyItemize}
\item Load/\+Save
\begin{DoxyItemize}
\item Fixed handling of last directory to avoid jumps between dirs in file dialogs.
\item Fixed variable initialization in Parse\+I\+NI
\item Rename files if multiple files have the same name when saving settings file.
\item Fixed bug in load save dialog, where capital extensions were not handled correctly
\end{DoxyItemize}
\item Plugin Loader
\begin{DoxyItemize}
\item Limit number of preload threads
\end{DoxyItemize}
\item Scripting
\begin{DoxyItemize}
\item Dont create ui elements from scripting in batch mode
\end{DoxyItemize}
\item Sapshots
\begin{DoxyItemize}
\item Removed process events from aplpication snapshot (strange behavior)
\end{DoxyItemize}
\item User Interface
\begin{DoxyItemize}
\item Introduced option if pickmode toolbars are handled in the viewer or as a traditional toolbar on the left
\end{DoxyItemize}
\item About Dialog
\begin{DoxyItemize}
\item List registered file plugins
\item Added intel compiler infos
\item Show os endian type
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Interfaces}
\begin{DoxyItemize}
\item Introduced selection Interface
\item Introduced Information Interface
\begin{DoxyItemize}
\item From now on, it is necessary to implement an info plugin for each specific data type.
\item This plugin has to override \hyperlink{classInformationInterface}{Information\+Interface} in order to provide information on a clicked object.
\end{DoxyItemize}
\item Reworked Backup Interface
\item \hyperlink{classBaseInterface}{Base\+Interface}
\begin{DoxyItemize}
\item Fixed non called slot plugin\+View\+Updated which broke the view\+Changed signal in \hyperlink{classBaseInterface}{Base\+Interface}
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Object\+Types}
\begin{DoxyItemize}
\item \hyperlink{classBaseObjectData}{Base\+Object\+Data}
\begin{DoxyItemize}
\item Fixed virtual function shadowing
\end{DoxyItemize}
\item B\+Spline\+Curve
\begin{DoxyItemize}
\item B\+Spline\+CurveT\+: Added selection wrapper functions
\item Fixed rendering of knot selection
\item Added icon for B-\/spline Curves
\item Added context menu to show/hide selection and cotrol net
\end{DoxyItemize}
\item B\+Spline\+Surface
\begin{DoxyItemize}
\item B\+Spline\+SurfaceT\+: Added selection wrapper functions
\item Fixed rendering of knot selection
\item Added icon for B-\/spline surfaces
\item Added context menu to show/hide selection and cotrol net
\item Corrected behaviour of control point deletion
\end{DoxyItemize}
\item Camera
\begin{DoxyItemize}
\item New Datatype for visualizing cameras
\end{DoxyItemize}
\item Coord\+Sys
\begin{DoxyItemize}
\item Fixed coordsys node which did not initialize the rotation matrix.
\item Smooth shaded mode for coordsys
\item fixed bug where coordsys state was wrong after snapshot
\end{DoxyItemize}
\item Light
\begin{DoxyItemize}
\item Make sure to not use Open\+GL, if its not there (Fixes batch mode in headless compute clusters)
\end{DoxyItemize}
\item \hyperlink{classMeshObject}{Mesh\+Object}
\begin{DoxyItemize}
\item Fixed functions to set/get selections which ignored vertex 0
\item Update status nodes when geometry is updated. Otherwise they are at the wrong pos with wrong bounding box
\item Introduced update textures signal
\end{DoxyItemize}
\item Plane
\begin{DoxyItemize}
\item Added missing plugin function (get \hyperlink{classPlaneObject}{Plane\+Object} from id)
\end{DoxyItemize}
\item Skeleton
\begin{DoxyItemize}
\item Fixed error on some compilers not building although class was defined as friend
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Backup
\begin{DoxyItemize}
\item Reworked Backup system
\begin{DoxyItemize}
\item Support for global undo redo
\item Support for per object undo redo
\item Support for undo/redo groups
\item Support for partial backups (selection only ... )
\item Integrated backup requests in with type plugins
\end{DoxyItemize}
\end{DoxyItemize}
\item Datacontrol
\begin{DoxyItemize}
\item Don\textquotesingle{} change source and target settings of objects when they get grouped
\item Fixed warning, when groupobjects have been appended to their parent twice
\end{DoxyItemize}
\item File\+O\+BJ
\begin{DoxyItemize}
\item Fixed crash with wrong indices in obj importer (Only triggered on defect obj files)
\item Fixed group parsing (All items that have the same group name will end up in one object now)
\end{DoxyItemize}
\item File\+O\+FF
\begin{DoxyItemize}
\item Fixed windows build error on some VS versions
\item Fixed parsing of off files containing empty lines
\item Fixed parsing of some comments
\end{DoxyItemize}
\item File\+P\+LY
\begin{DoxyItemize}
\item Improved error handling when indices are out of range
\item don\textquotesingle{}t ignore user settings in ascii reader
\item Support big endian files
\item Correctly write binary header(missing endian)
\item reserve memory before adding data to improve speed
\item Fixed crash in binary reader with texture coordinates
\end{DoxyItemize}
\item Info
\begin{DoxyItemize}
\item Renamed to Info\+Mesh\+Object
\end{DoxyItemize}
\item Mesh\+Repair
\begin{DoxyItemize}
\item Cleanup, functions to compute normals
\item Made mesh repair functions scriptable
\item Visual scripting interface itegration
\end{DoxyItemize}
\item Move
\begin{DoxyItemize}
\item Move multiple objects at once
\item Built in function to rasterize manipulator rotation (in 45 degree steps) if shift and control is pressed simultaneously.
\end{DoxyItemize}
\item Selection
\begin{DoxyItemize}
\item Reworked selection Interface
\begin{DoxyItemize}
\item Selection\+Base Plugin now handles the basics
\item Per type one selection plugin handles this types selection
\item Only available selection metaphors are enabled in the gui
\end{DoxyItemize}
\item Fixed bug where vertex selection was not saved properly
\item Fixed pickmode toolbar rendering bug in Mac\+OS and Windows.
\end{DoxyItemize}
\item Smoother
\begin{DoxyItemize}
\item updated normals after smoothing
\item add possibility for using fixed weights
\item removed unnecessary garbage collection
\end{DoxyItemize}
\item \hyperlink{classTexture}{Texture} Plugins
\begin{DoxyItemize}
\item Fixed Open\+Flipper crash when computing curvature textures on Darwin (Disabled openmp .. unclear why it crashes)
\end{DoxyItemize}
\item Texture\+Control
\begin{DoxyItemize}
\item Added imagestore to reuse already active textures
\end{DoxyItemize}
\item Topology
\begin{DoxyItemize}
\item Now operates on quad meshes where possible
\end{DoxyItemize}
\item Type\+Light
\begin{DoxyItemize}
\item Make Type\+Light run in batch mode
\end{DoxyItemize}
\item Type\+Camera
\begin{DoxyItemize}
\item Make Type\+Camera run in batch mode
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Introduced option to debug Open\+Flipper\+Settings (cerr read and write access to settings)
\item Introduced mac option to provide a user defined Info.\+plist
\item Added 512x512 Icon to Open\+Flipper\+\_\+\+Icon.\+icns
\item Only build documentation if doxygen is available
\item Added simple A\+NN finder
\item Plugin Configuration output
\begin{DoxyItemize}
\item Sort list of configured plugins
\item Add more spaces for longer plugin names
\item Sort plugin configuration details into groups
\item Output Build type when configuring
\end{DoxyItemize}
\item Additional mac path for qt\+\_\+menu.\+nib
\item License Manager changes. Global flag now controls if the license managers get enabled.
\item Added cmake macros for gtest dependencies used for unit testing
\item Flag for appstore compliance added (-\/\+D\+A\+P\+P\+\_\+\+S\+T\+O\+R\+E\+\_\+\+C\+O\+M\+P\+L\+I\+A\+NT)
\item Added cuda integration for plugins
\item Fixed include of global dependencies that havve to be integrated to core
\item Introduced Recursive dependecies (Parses flags like L\+I\+B\+R\+A\+R\+Y\+\_\+\+D\+E\+PS and L\+I\+B\+R\+A\+R\+Y\+\_\+\+O\+P\+T\+\_\+\+D\+E\+PS)
\end{DoxyItemize}
\item {\bfseries Packaging}
\begin{DoxyItemize}
\item Added file type association for mac OS
\item Flag for appstore compliance added
\item Changed the path to Open\+Flippers config dir to be app store compliant
\item Automatically copy qt plugins into bundle/installer
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item Fixed doxygen problem with missing includes
\item Fixed typo which caused Developer\+Doc to include user doc
\item Skeleton Documentation
\item Tutorial to add empty objects
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0.\+1 ( 03.\+21.\+2011 , 11158 )}
\begin{DoxyItemize}
\item {\bfseries Interface changes}
\begin{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item In \hyperlink{namespaceACG}{A\+CG} enter,enter\+Pick,leave,leave\+Pick,draw functions now get the draw mode as const reference. Please change your nodes accordingly
\end{DoxyItemize}
\item {\bfseries Interfaces}
\begin{DoxyItemize}
\item Remove get\+All\+Filters from \hyperlink{classLoadSaveInterface}{Load\+Save\+Interface} as the right functions are in the file interface
\item Moved opened\+File signal from \hyperlink{classLoadSaveInterface}{Load\+Save\+Interface} to \hyperlink{classFileInterface}{File\+Interface}
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item General
\begin{DoxyItemize}
\item Remove glew on Mac
\end{DoxyItemize}
\item G\+L\+State
\begin{DoxyItemize}
\item clearallbuffers fixed (cleared whole buffer instead of the viewport only( broke multiview of Open\+Flipper )
\end{DoxyItemize}
\item Draw\+Modes
\begin{DoxyItemize}
\item Made is\+Atomic const
\end{DoxyItemize}
\item Scenegraph
\begin{DoxyItemize}
\item enter,enter\+Pick,leave,leave\+Pick,draw functions now get the draw mode as const reference. Please change your nodes accordingly
\end{DoxyItemize}
\item Line\+Node
\begin{DoxyItemize}
\item Fixed rendering of line node in Line\+Segments mode where wrong color was used
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item Log Window
\begin{DoxyItemize}
\item Fixed log filter button staying pressed
\end{DoxyItemize}
\item About widget
\begin{DoxyItemize}
\item Added section about developers
\item Show library paths in about dialog
\end{DoxyItemize}
\item User Interface
\begin{DoxyItemize}
\item Scripting function to move toolboxes to top or bottom
\end{DoxyItemize}
\item Interfaces
\begin{DoxyItemize}
\item Make operator functions for == an != const in Object\+Iterator
\item Remove get\+All\+Filters from \hyperlink{classLoadSaveInterface}{Load\+Save\+Interface} as the right functions are in the file interface
\item Moved opened\+File signal from \hyperlink{classLoadSaveInterface}{Load\+Save\+Interface} to \hyperlink{classFileInterface}{File\+Interface}
\end{DoxyItemize}
\item Rendering
\begin{DoxyItemize}
\item Added option to set minimal scene size
\end{DoxyItemize}
\item Snapshot functions
\begin{DoxyItemize}
\item Trim snapshot filename (Fixes bug, where windows got confused when space was behind the filename which caused an inaccesible file )
\end{DoxyItemize}
\item Internals
\begin{DoxyItemize}
\item Renamed slot\+Object\+Opened in core to slot\+File\+Opened
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classLicenseManager}{License\+Manager}}
\begin{DoxyItemize}
\item Use separate Hashes for each network interface
\item Use more reliable windows native code to get windows interfaces
\item Include product id on windows
\item Fixed wrong core\+App path on Mac
\item Get rid of extra message box when license files are not found
\item Ovverride button to generate License without a request
\end{DoxyItemize}
\item {\bfseries Object\+Types}
\begin{DoxyItemize}
\item B\+Spline\+Curve
\begin{DoxyItemize}
\item Fixed some rendering errors
\end{DoxyItemize}
\item Coordsys Object
\begin{DoxyItemize}
\item New Object type for visualizing coordinate systems
\end{DoxyItemize}
\item Mesh\+Objects
\begin{DoxyItemize}
\item Bugfixes
\begin{DoxyItemize}
\item Fixed Status\+Node\+Mod for handle and modeling regions to return correct information about handle/modeling areas.
\end{DoxyItemize}
\end{DoxyItemize}
\item Skeleton\+Objects
\begin{DoxyItemize}
\item Update of Animation classes
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Selection
\begin{DoxyItemize}
\item Store halfedge selections in ini file
\end{DoxyItemize}
\item File\+O\+BJ
\begin{DoxyItemize}
\item Store textures to texture dir with name prefix of file to avoid ambigouties
\end{DoxyItemize}
\item File\+Skeleton
\begin{DoxyItemize}
\item Removed ( Is now File\+S\+KL)
\end{DoxyItemize}
\item Mesh\+Repair
\begin{DoxyItemize}
\item Made most functions scriptable
\item Some minor bugfixes
\end{DoxyItemize}
\item Move
\begin{DoxyItemize}
\item Fixed wrong update of normals
\item Transform skeletons correctly
\item Corrected set\+Position function to correctly transform mesh as desired.
\end{DoxyItemize}
\item View\+Control
\begin{DoxyItemize}
\item Scripting function to set projection mode of coordinate system
\end{DoxyItemize}
\item V\+SI (Visual scripting interface)
\begin{DoxyItemize}
\item Fixed bug that prevented usage of conditions and loops
\item Scripting functions for Mesh Repair Plugin
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item Developer Documentation
\begin{DoxyItemize}
\item Include all code in Open\+Flippers directory in the developer docs
\item Overview for datatypes
\item Document skeleton class
\item Document Mesh datatypes
\item Documentation for Interfaces
\end{DoxyItemize}
\item User Documentation
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Moved V\+E\+R\+S\+I\+ON file to Open\+Flipper subdir, as this represents more or less the core version
\item Be less verbose in doxygen configs
\item Updated doxygen macro
\item plugins can now provide user documentation in the user\+Doc subdir
\item Fixed missing A\+C\+G\+D\+LL definition when building pluginlib
\item install documentation along with Open\+Flipper
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0 ( 01.\+26.\+2011 , 10764 )}
\begin{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item G\+L\+State
\begin{DoxyItemize}
\item Enable or disable Mipmapping
\item Moved depth\+\_\+func\+\_\+ from Base\+Node to G\+L\+\_\+\+State
\item Pass Scene boundingbox through glstate (Allow nodes to get current boundingbox)
\end{DoxyItemize}
\item Dialogs
\begin{DoxyItemize}
\item Added Dialog for texture node
\item Qt\+Material\+Dialog (Fixed bugs and interference with round\+\_\+points / smooth\+\_\+line)
\end{DoxyItemize}
\item B\+Sline\+Curve\+Node
\begin{DoxyItemize}
\item Get colors from material\+Node rather than setting it in the node directly
\end{DoxyItemize}
\item B\+Sline\+Surface\+Node
\begin{DoxyItemize}
\item Get colors from material\+Node rather than setting it in the node directly
\end{DoxyItemize}
\item Coordsys Node
\begin{DoxyItemize}
\item Implemented orthogonal mode
\end{DoxyItemize}
\item G\+L\+State
\begin{DoxyItemize}
\item Correctly clear buffers
\end{DoxyItemize}
\item Gridnode
\begin{DoxyItemize}
\item Fixed size now works correctly
\end{DoxyItemize}
\item Light\+Node
\begin{DoxyItemize}
\item Picking implemented
\item Fixed Bounding\+Box computation
\end{DoxyItemize}
\item Material\+Node
\begin{DoxyItemize}
\item Added random color generator
\end{DoxyItemize}
\item Mesh\+Node
\begin{DoxyItemize}
\item Added per face per vertex normal buffer
\item New E\+D\+G\+E\+\_\+\+C\+O\+L\+O\+R\+ED draw mode
\item New H\+A\+L\+F\+E\+D\+GE and H\+A\+L\+F\+E\+D\+G\+E\+\_\+\+C\+O\+L\+O\+R\+ED draw mode
\item Fixed a bug in Mesh\+Node2T that would permanently change the depth comparison function instead of only temporarily
\item Correctly unbind texture if bound in Mesh\+Node
\end{DoxyItemize}
\item \hyperlink{classPlaneNode}{Plane\+Node}
\begin{DoxyItemize}
\item Fixed an error in the nonzero normal detection in Plane\+Node\+::set\+Position.
\end{DoxyItemize}
\item Pointnode
\begin{DoxyItemize}
\item Fixed null pointer dereference when no points are available
\end{DoxyItemize}
\item Qt\+Material\+Dialog
\begin{DoxyItemize}
\item Bugfix ( G\+L\+\_\+\+S\+C\+R\+\_\+\+A\+L\+P\+HA was missing as choice for blending param)
\end{DoxyItemize}
\item Quaternions
\begin{DoxyItemize}
\item Matrix constructor added
\item Added dual quaternions
\end{DoxyItemize}
\item Scenegraph
\begin{DoxyItemize}
\item Extend draw\+Mode Action to include a force mode (forces the given drawmode on all nodes)
\end{DoxyItemize}
\item Status\+Node
\begin{DoxyItemize}
\item Halfedge Selections
\item Fixed bug accessing element one of empty array
\end{DoxyItemize}
\item Texture\+Node
\begin{DoxyItemize}
\item Enable or disable Mipmapping
\end{DoxyItemize}
\item Transform Node
\begin{DoxyItemize}
\item Support planar 2D objects
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item About Dialog
\begin{DoxyItemize}
\item Added output for cpu information
\item Added output for memory information
\item Added output for os information
\end{DoxyItemize}
\item \hyperlink{classBaseObject}{Base\+Object}
\begin{DoxyItemize}
\item Remove all children from additional node when deleting the subtree(otherwise we get dangling pointers)
\item Function to set drawmode for all child nodes in an object
\end{DoxyItemize}
\item Backup Interface
\begin{DoxyItemize}
\item Icons for undo/redo
\item Intorduced backup groups (create groups of changes for undo/redo .. e.\+g. if multiple objects are involved)
\end{DoxyItemize}
\item Startup
\begin{DoxyItemize}
\item Added some functions to check for correct lib versions (prevent linking against newer qt than compile version)
\end{DoxyItemize}
\item Rendering
\begin{DoxyItemize}
\item Sanity Checks for Open\+GL Version. Test for GL capabilities on startup.
\item Removed light handling completely ( -\/$>$ Plugin-\/\+Type\+Light)
\item Added options to enable or disable mipmapping
\item Set minimal scene size for startup to 10
\item Implemented zoom to for orthogonal projection mode
\item Added option to set fov for the viewers
\item Added option to directly render depth buffer as image
\item Bugfix (lookat wrong for ortho mode)
\item Bugfix (Wrong parameters when resizing viewer)
\item Improved fly to functions
\end{DoxyItemize}
\item Key Handling
\begin{DoxyItemize}
\item Fixed alt-\/key bug where last mode was not restored correctly on windows
\end{DoxyItemize}
\item Info
\begin{DoxyItemize}
\item Show memory usage information in about dialog on linux
\end{DoxyItemize}
\item License Manager
\begin{DoxyItemize}
\item Improved license checks
\item Improved license keygen ui
\item Checks cpu as well
\end{DoxyItemize}
\item Load/\+Save
\begin{DoxyItemize}
\item Fixed bug when supported extensions are not parsed correctly
\item Fixed bug when filename extensions with capital letters where not marked as supported
\item Add files opened via command\+Line to recent files
\item Fixed bug which overrides colors loaded from files with random colors
\item Fixed bug where object\+Deleted(int) was called after the actual object is delete (making it impossible to cleanup on that signal)
\item Fixed bug where objects generated by a plugin could not be saved
\item Fixed bug, where sometimes the save to dialog returned wrong directory and saved to default folder instead
\item Fixed bug, where filenames with multiple dots where not handled correctly
\end{DoxyItemize}
\item Log Window
\begin{DoxyItemize}
\item Added filter \hyperlink{classMenu}{Menu} to disable \hyperlink{namespaceOpenMesh}{Open\+Mesh} error messages
\end{DoxyItemize}
\item Options
\begin{DoxyItemize}
\item Some gui cleanup for options widget
\end{DoxyItemize}
\item Settings
\begin{DoxyItemize}
\item Sanity checks if no default is given for Open\+Flipper\+Settings
\end{DoxyItemize}
\item Scripting
\begin{DoxyItemize}
\item Set fovy via scipting
\item set toolbox orientation via scripting
\end{DoxyItemize}
\item Snapshots
\begin{DoxyItemize}
\item Remember last states for snapshot dialog
\item Render snapshots offscreen (Arbitrary size)
\item Added option to hide coordsys in snapshots
\item Added options to set background to alpha in snapshots
\item Added option to enable/disable multisampling in snapshots (and adjust number of points used for multisampling)
\item Improved scripting functions for snapshots
\end{DoxyItemize}
\item Plugin\+Connection Interface
\begin{DoxyItemize}
\item Allow to connect signals and slots across plugins
\end{DoxyItemize}
\item Process Interface
\begin{DoxyItemize}
\item Show progress dialog centered at corewidget (not anywhere on screen)
\end{DoxyItemize}
\item Toolbox interface
\begin{DoxyItemize}
\item Support icons for toolboxes
\end{DoxyItemize}
\item User Interface
\begin{DoxyItemize}
\item Added option to show toolbox on the left
\item Added option to show/hide view mode controls
\end{DoxyItemize}
\item \hyperlink{structViewMode}{View\+Mode} Interface
\begin{DoxyItemize}
\item Allow setting of viewmodes
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Object\+Types}
\begin{DoxyItemize}
\item Mesh\+Objects
\begin{DoxyItemize}
\item B\+SP Tree
\begin{DoxyItemize}
\item Improve cutting planes to speedup search (more balanced tree)
\item Allow ray intersections for searching in tree (Search for all faces hit by ray)
\end{DoxyItemize}
\item Bugfixes
\begin{DoxyItemize}
\item Fixed wrong lower value computed for bounding boxes (wrong initialization clamping bounding box to upper part of (0.\+0,0.\+0,0.\+0) )
\end{DoxyItemize}
\end{DoxyItemize}
\item Poly\+Line\+Objects
\item new Skeleton object type
\end{DoxyItemize}
\item {\bfseries New Plugins}
\begin{DoxyItemize}
\item Backup
\begin{DoxyItemize}
\item Added Backup plugin to free branch
\end{DoxyItemize}
\item File\+S\+KL
\begin{DoxyItemize}
\item Load/\+Save Skeleton files (skl)
\end{DoxyItemize}
\item File\+B\+VH
\begin{DoxyItemize}
\item Load/\+Save B\+VH Skeleton Files (Bio\+Vision)
\end{DoxyItemize}
\item Mesh Repair
\begin{DoxyItemize}
\item Detect and remove some simple defects on meshes
\end{DoxyItemize}
\item Skeletal\+Animation
\begin{DoxyItemize}
\item Animates skeletons
\end{DoxyItemize}
\item Skeleton\+Editing
\begin{DoxyItemize}
\item Edit Skeletons
\end{DoxyItemize}
\item Subdivider
\begin{DoxyItemize}
\item Added \hyperlink{namespaceOpenMesh}{Open\+Mesh} subdivider plugin to the free branch
\end{DoxyItemize}
\item Type\+Skeleton
\begin{DoxyItemize}
\item Handles skeleton data type
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Data\+Control
\begin{DoxyItemize}
\item Added Object name and ID display to Datacontrol popup menu
\item Better on/off visualization for light sources
\item Collapse Additional boxes to save space
\end{DoxyItemize}
\item Decimater
\begin{DoxyItemize}
\item Support backup plugin ( -\/$>$undo )
\end{DoxyItemize}
\item File\+O\+BJ
\begin{DoxyItemize}
\item Bugfix for negative indices for vertices
\item Save texxtures and material files
\item Support negative vertex index for spline curves and surfaces
\item Fixed bug reading knot vector in wrong order for spline surfaces
\end{DoxyItemize}
\item File\+O\+FF
\begin{DoxyItemize}
\item Bugfix for crash when reading degenerate faces
\end{DoxyItemize}
\item File\+P\+LY
\begin{DoxyItemize}
\item Switch to point rendering if only points where read
\item Separate Reader from \hyperlink{namespaceOpenMesh}{Open\+Mesh} reader (created a new integrated reader/writer independent of \hyperlink{namespaceOpenMesh}{Open\+Mesh} IO)
\end{DoxyItemize}
\item Info
\begin{DoxyItemize}
\item Bugfix -\/$>$ Dihedral angle for quad meshes computed wrong
\item Improved performance when floodfilling mesh in order to count connected components.
\end{DoxyItemize}
\item Light
\begin{DoxyItemize}
\item Reduced brightness for default lights (Otherwise colors of objects are almost always white)
\item Added missing Layout to dialog
\item Added missing slot to react on fixed position checkbox change
\item Added functions to rotate and move lights
\item Fixed Open\+GL handling of directional light sources
\end{DoxyItemize}
\item Move
\begin{DoxyItemize}
\item Support backup plugin ( -\/$>$undo )
\end{DoxyItemize}
\item Selection Plugin
\begin{DoxyItemize}
\item Added halfedge selection
\item B\+Spline\+Surface Knot Selection
\item B\+Spline\+Surface Selection
\item Render Selections for B\+Spline Curve and Surface
\end{DoxyItemize}
\item Smoother
\begin{DoxyItemize}
\item Support backup plugin ( -\/$>$undo )
\end{DoxyItemize}
\item Texture\+Control
\begin{DoxyItemize}
\item Added min\+\_\+val parameter additionally to max\+\_\+val
\item Added histogramm controls
\item Added reader for tga files
\end{DoxyItemize}
\item View\+Control
\begin{DoxyItemize}
\item Support Splines
\item Support Poly\+Lines
\item New Scripting Function to set per object draw\+Mode directly
\item Fixed shader assignment
\item Preset buttons for basic viewing directions
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item More docs for backup interface (incl. Tutorial)
\item Do not include svn, standard build dirs in docs
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Do not include files starting with a dot when creating build lists
\item Copy qt\+\_\+menu.\+nib on mac
\item Raised qt warning level to 4.\+8 (4.\+7 tested on mac ... works)
\item Improved branding support (Including license text for installers)
\item When creating windows bundles, copy dlls required by plugins as well as core libraries (Creates independent bundle)
\item Fixed bug with integration of visual studio redistributable in installers
\item Don\textquotesingle{}t integrate \hyperlink{namespaceOpenMesh}{Open\+Mesh} libs and headers in installer package
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0 ( 06.\+23.\+2010 , 9691 R\+C7 )}
\begin{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item Added Light source management
\begin{DoxyItemize}
\item Added global nodes to handle light sources
\item Internal light handling can now be switched off via pluginfunctions (Used by Type\+Light to take control over lights)
\end{DoxyItemize}
\item About Dialog
\begin{DoxyItemize}
\item Show information about registered types
\item Show information about glu and glut
\end{DoxyItemize}
\item Process Manager
\begin{DoxyItemize}
\item Replaced Mutex by semaphore for waiting that a thread starts (mutex unlock does not work across threads in qt 4.\+6)
\item Bugfix when using blocking mode for new threads
\end{DoxyItemize}
\item File Dialog
\begin{DoxyItemize}
\item Fixed problems with keyboard interaction
\end{DoxyItemize}
\item Scripting
\begin{DoxyItemize}
\item Fixed bug with scriptdir not set correctly on command line open
\item Made core.\+load\+Object scriptable (automatically detects right file plugin to load object)
\item Fixed bug in scripted save\+Object function where supported type was not correctly detected
\item Fixed bug when converting matrix and vector types between scripting and core
\item New function to add icon for view modes via script
\end{DoxyItemize}
\item Debugging
\begin{DoxyItemize}
\item Windows debugging console for cerr and cout when building windows debug version
\item Increased stack frame size when doing debugging.
\end{DoxyItemize}
\item Bugfixes
\begin{DoxyItemize}
\item Bugfix for segfault on exit
\item Bugfix for simple viewer and qt 4.\+6
\end{DoxyItemize}
\item B\+SP Tree
\begin{DoxyItemize}
\item Faster generation
\item Tree, Ray intersection (find closest triangle hit by ray)
\end{DoxyItemize}
\item Plugin Handling
\begin{DoxyItemize}
\item Parallel plugin loader (The plugins are preloaded in parallel. This gives a large speedup on startup)
\end{DoxyItemize}
\item Added a global picking dialog to choose an object an algorithm should work on (Open\+Flipper/public\+Widgets)
\item Added Function to find the object to a node (Based on \hyperlink{classBaseObjectData}{Base\+Object\+Data})
\item Introduced update types to control partial uptdates (color,topology,geometry,...)
\item Added region picking functions ( render picking and get a region of the picking )
\item Removed unused update type
\item Sanity checks on startup (Check Open\+GL capabilities,library versions)
\end{DoxyItemize}
\item {\bfseries Object Types}
\begin{DoxyItemize}
\item New Light Object
\item New Sphere Object
\item New B\+Spline Curve Object
\item New B\+Spline Surface Object
\end{DoxyItemize}
\item {\bfseries Interfaces}
\begin{DoxyItemize}
\item \hyperlink{classBackupInterface}{Backup\+Interface}
\begin{DoxyItemize}
\item Full redesign
\item Multiple restore stages (before, do restore, after restore
\item External restore and backup signals/slots
\end{DoxyItemize}
\item \hyperlink{classBaseInterface}{Base\+Interface}
\begin{DoxyItemize}
\item Added a new parameter to updated\+Object which defies the update type (e.\+g. Topology, Geometry, selection)
\end{DoxyItemize}
\item \hyperlink{classFileInterface}{File\+Interface}
\begin{DoxyItemize}
\item Support writing multiple objects into one file
\end{DoxyItemize}
\item \hyperlink{classTextureInterface}{Texture\+Interface}
\begin{DoxyItemize}
\item updated texture\+Interface to save textures (including multitextures)
\end{DoxyItemize}
\item \hyperlink{namespacePluginFunctions}{Plugin\+Functions}
\begin{DoxyItemize}
\item New function to directly set look\+At
\item Improved error handling in some functions
\end{DoxyItemize}
\item Thread\+Interface
\begin{DoxyItemize}
\item Jobid is now passed to thread and the slots to identify sender
\end{DoxyItemize}
\item Types
\begin{DoxyItemize}
\item Added a function to check if types exist
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries UI}
\begin{DoxyItemize}
\item Improved mouse interaction(translation with middle mouse button is done in world coordinates now)
\item Added Context Menus to view modes (Depending on view mode context menus can be hidden now)
\item Added rotation locking to context menu for view settings.
\item Options
\begin{DoxyItemize}
\item Added functions to reset to factory settings
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Bugfix for glstate functions returning fovy and aspect ratio
\item Added glu\+Error handling function
\item New P\+I\+C\+K\+\_\+\+S\+P\+L\+I\+NE Pickmode added
\item Draw Modes
\begin{DoxyItemize}
\item Fixed bug with increment operator for drawmodes (shift in underlying bitset)
\item Added Cells Draw Mode
\end{DoxyItemize}
\item Scene\+Graph
\begin{DoxyItemize}
\item Fixed picking multipass bug where picking failed when blending or other color changing enter and leave functions where present
\end{DoxyItemize}
\item Glut\+Primitive Node
\begin{DoxyItemize}
\item Fixed bounding box computation which was centered around origin and not around center of object
\item Now handles multiple primitives in one node( and different colors for each of the primitives)
\item Includes a rotation to set the orientation of the objects
\item Draw\+Mode S\+O\+L\+I\+D\+\_\+\+F\+A\+C\+E\+S\+\_\+\+C\+O\+L\+O\+R\+ED supported
\end{DoxyItemize}
\item Material\+Node
\begin{DoxyItemize}
\item Add extra class to store all Material Information
\end{DoxyItemize}
\item Point\+Node
\begin{DoxyItemize}
\item Use Vec3d
\item Fixed bug in pointnode double was send to Open\+GL as float
\end{DoxyItemize}
\item Line\+Node
\begin{DoxyItemize}
\item Use Vec3d
\end{DoxyItemize}
\item Mesh\+Node2
\begin{DoxyItemize}
\item Fixed bug where stripes are sometimes not updated correctly
\item Fixed pick face bug, where picking buffer was updated to late
\item Fixed bug with point only meshes, where face and edge buffers were accessed but not there.
\item When updating colors, invalidate face and edge buffers too ( otherwise no update is done)
\item Be more carefull and check if mesh properties used for redering vanished between render passes (e.\+g. textures after restore from backups) -\/\+Qt\+Translation\+Manipulator\+Node
\item Added possibility to add Q\+Variants to the node
\end{DoxyItemize}
\item Scene\+Graph\+Widget
\begin{DoxyItemize}
\item Added system to register a widget for new nodes without changing the widget code.
\end{DoxyItemize}
\item Geometry
\begin{DoxyItemize}
\item Added more documentation to some algorithms
\item New functions
\begin{DoxyItemize}
\item Distances to planes
\item Projections (Point-\/$>$Triangle, Point-\/$>$Plane )
\item Intersection Ray, Axis aligned Bounding Box
\item Intersection Ray, triangle
\end{DoxyItemize}
\item Quaternions
\begin{DoxyItemize}
\item changed to template Vector function for rotate
\item disabled matrix constructor
\item added print\+\_\+info function
\end{DoxyItemize}
\item Math\+\_\+\+Tools/\+Geometry\+Functions.\+hh integrated into \hyperlink{Algorithms_8hh_source}{A\+C\+G/\+Geometry/\+Algorithms.\+hh}
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries New Plugins}
\begin{DoxyItemize}
\item Type\+Light
\begin{DoxyItemize}
\item New object type handling light sources
\end{DoxyItemize}
\item Type\+Sphele
\begin{DoxyItemize}
\item Simple sphere type
\end{DoxyItemize}
\item File\+Light
\begin{DoxyItemize}
\item Support for reading and writing light information
\end{DoxyItemize}
\item Slice
\begin{DoxyItemize}
\item Slicing plugin. Adds clipping planes to render only part of the scene
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item All
\begin{DoxyItemize}
\item Converted all plugins to new updated\+Object formats
\end{DoxyItemize}
\item Color
\begin{DoxyItemize}
\item Fixed wrong interface definitioni causing plugins not visible in ui menus (Thanks to Sergei Migdalskiy for reporting this bug)
\end{DoxyItemize}
\item Data\+Control
\begin{DoxyItemize}
\item Support for Light sources
\item Fixed Bug where delete key was not catched anymore in QT 4.\+6
\end{DoxyItemize}
\item File\+O\+FF
\begin{DoxyItemize}
\item non-\/manifold inputs are now duplicated and added as manifold meshes (These duplicates are marked in the \hyperlink{namespaceOpenMesh}{Open\+Mesh} status flag)
\end{DoxyItemize}
\item File\+O\+BJ
\begin{DoxyItemize}
\item non-\/manifold inputs are now duplicated and added as manifold meshes (These duplicates are marked in the \hyperlink{namespaceOpenMesh}{Open\+Mesh} status flag)
\end{DoxyItemize}
\item I\+NI
\begin{DoxyItemize}
\item Support Light sources
\item Write material data for all objects with materialnode
\end{DoxyItemize}
\item Iso\+Tropic Remesher
\begin{DoxyItemize}
\item Process indicator added
\end{DoxyItemize}
\item Info Plugin
\begin{DoxyItemize}
\item Fixed unsigned int/int conversion problem resulting in wrong genus computation
\item Fixed crash when infobar is not setup and objects are created ( fixed by initializing it earlier)
\item Don\textquotesingle{}t output dihedral angles for no or one face
\end{DoxyItemize}
\item Selection
\begin{DoxyItemize}
\item Fixed bounding box update for selection sphere
\item emit updatedobject on color change
\item B\+Spline Selections
\item Scripting for controling current selection mode
\end{DoxyItemize}
\item Texture\+Control
\begin{DoxyItemize}
\item Fixed bug when trying to create textures for lights (?!!)
\item Fixed wrong interface definitioni causing plugins not visible in ui menus (Thanks to Sergei Migdalskiy for reporting this bug)
\item Backup interface support (copy constructors for per object datas and restore functions)
\end{DoxyItemize}
\item Topology Plugin
\begin{DoxyItemize}
\item Added missing updates
\end{DoxyItemize}
\item Info Plugin
\begin{DoxyItemize}
\item Fixed unsigned int/int conversion problem resulting in wrong genus computation
\item Fixed crash when infobar is not setup and objects are created ( fixed by initializing it earlier)
\item Don\textquotesingle{}t output dihedral angles for no or one face
\end{DoxyItemize}
\item View\+Control
\begin{DoxyItemize}
\item Check if types exist before adding context menues (avoids warning)
\end{DoxyItemize}
\item V\+SI Plugin
\begin{DoxyItemize}
\item Fix script generation for qt 4.\+6 ( in -\/$>$ input rename as in causes a parse error )
\item Fixed draw errors on zooming
\item Additional Metadata for other algorithms
\item Fixed bug when converting matrix and vector types between scripting and core
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item Refactored documentation files ( One documentation directory, build targets)
\item Internal help files (qhc) are now searched automatically ( no need to specify at build time anymore!)
\item Added docs for the glstate to describe internal projection matrix construction and parameters
\item Improved Documentation for the process manager
\item Improved building instructions
\end{DoxyItemize}
\item {\bfseries Others}
\begin{DoxyItemize}
\item Fixed some crashes with Visual Studio 2010 builds (Some may still be there)
\end{DoxyItemize}
\item {\bfseries Build System}
\begin{DoxyItemize}
\item Added F\+F\+TW Finder
\item Added Petsc finder
\item Added a G\+L\+UT finder
\item Fixed the library dir in G\+L\+EW finder
\item Make windows capable of choosing debug and release version of superlu
\item Build ui files from Object\+Types (Required to register Widgets to the scenegraph dialog)
\item Branding support (looks in Toplevel/branding for image files)
\item Improved compiler flag settings for unix systems (easier setting of additional compiler flags)
\item Made R\+E\+L\+W\+I\+T\+H\+D\+E\+B\+I\+N\+FO build type working. (Release mode with debug symbols)
\item Added doc target ( For core and plugins )
\item Added search engine to help
\item Tutorial for \hyperlink{classViewModeInterface}{View\+Mode\+Interface}
\item Tutorial for \hyperlink{classTypeInterface}{Type\+Interface}
\item Tutorial for Threading\+Interface
\item Win
\begin{DoxyItemize}
\item Fixup Bundle for Windows (Copies required D\+L\+Ls to the build directory for easy execution)
\end{DoxyItemize}
\item Mac
\begin{DoxyItemize}
\item Only build dmg not tgz on mac package on make package
\item Fixed bug wher Mac bundles did not include the Qt Plugins (missing jpeg support/...)
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0 R\+C6 ( 2010/03/17 , 8742 )}
\begin{DoxyItemize}
\item {\bfseries \hyperlink{classCore}{Core}}
\begin{DoxyItemize}
\item Splitted File Plugins ( Now there are type plugins loaded first to register types and the file plugins to load data)
\item Moved loading code from \hyperlink{namespaceOpenMesh}{Open\+Mesh} to file plugins to support multiple data types
\item Changed handling of Object\+Selection\+Changed
\item Updated internal types handling (directly initialized by core now)
\item Handle object tree integration for Base\+Objects automatically (No longer necessary to call the set\+Parent Function)
\item selection\+Changed, visibility\+Changed and object\+Properties\+Changed are now handled internally. If One of these changes, the signals will be emitted by the core and passed to the plugins.
\item Basic implementation to copy per Object data along with copied object
\item Implemented drag and drop for files to Open\+Flipper
\item Fixes for building with QT 4.\+6
\item Added a map to find objects in the object\+Tree (large speedup when handling multiple objects)
\item Internal counters for targets, sources and objects avoiding iterations across all objects ( another speedup)
\end{DoxyItemize}
\item {\bfseries Plugin interface changes}
\begin{DoxyItemize}
\item Changed \hyperlink{namespacePluginFunctions}{Plugin\+Functions} to return 0 object for identifier -\/1
\item Provide a Q\+Settings interface to store per Plugin settings (called Open\+Flipper\+Settings in globaloptions)
\item \hyperlink{classCore}{Core} manages object\+Selection\+Changed, visibility\+Changed and object\+Properties\+Changed. (Do not emit these signals in your plugin anymore)
\item Added \hyperlink{classTypeInterface}{Type\+Interface} to register types from plugins (These plugins will be loaded first!)
\item Improvements to status bar interface (now accepts arbitrary widgets)
\item Renamed type id\+List to Id\+List
\item Process manager added
\item Updated update\+Object functionality which can specify the type of updates now
\end{DoxyItemize}
\item {\bfseries Data\+Types}
\begin{DoxyItemize}
\item Added Plane Datatype and plugin
\item Rewrote the mesh rendering node (now handling textures for poly meshes)
\end{DoxyItemize}
\item {\bfseries Internal changes}
\begin{DoxyItemize}
\item Updated internal types handling (directly initialized by core now)
\end{DoxyItemize}
\item {\bfseries UI}
\begin{DoxyItemize}
\item Updated cursors (new cursors for some modes)
\item Fixed hotspot of some cursors
\item Updated Icons
\begin{DoxyItemize}
\item New Icons for Object Types (Group,Plane Icon)
\item Icons for Datacontrol Context \hyperlink{classMenu}{Menu}
\end{DoxyItemize}
\item Updated About dialog to include used compiler for Open\+Flipper
\item Improved logger widget with filtering option
\end{DoxyItemize}
\item {\bfseries Scripting}
\begin{DoxyItemize}
\item Implimented new datatype representation which is also available in scripting now
\end{DoxyItemize}
\item {\bfseries GL Handling}
\begin{DoxyItemize}
\item Function to get maximum texture units
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item File Plugins
\begin{DoxyItemize}
\item New O\+BJ and O\+FF readers/writers which are independent of \hyperlink{namespaceOpenMesh}{Open\+Mesh} now
\item O\+BJ groups
\item Fixed errors reading O\+BJ files containing tabs
\item Basic support for splines and spline surfaces in O\+BJ files
\item Support for binary O\+FF files not following the specification ( without face color index )
\end{DoxyItemize}
\item Choose between opening meshes as triangle or poly mesh
\begin{DoxyItemize}
\item Added a default loading dialog
\end{DoxyItemize}
\item Plugin Info
\begin{DoxyItemize}
\item Shows number of primitives for open objects in the status bar
\end{DoxyItemize}
\item Plugin Datacontrol
\begin{DoxyItemize}
\item Some gui reworks
\item Use new signal processing correctly
\item \hyperlink{namespaceRPC}{R\+PC} Function for grouping now returns the id of the group
\item \hyperlink{namespaceRPC}{R\+PC} Function to ungroup
\end{DoxyItemize}
\item Plugin Decimater
\begin{DoxyItemize}
\item Enable Normal deviation constraint by default
\item Correctly set maximum for sliders
\end{DoxyItemize}
\item Plugin Iso\+Tropic Remesher
\begin{DoxyItemize}
\item respect boundaries and edge features
\end{DoxyItemize}
\item Plugin Selection
\begin{DoxyItemize}
\item Create mesh from selection added
\end{DoxyItemize}
\item Plugin Move
\begin{DoxyItemize}
\item Added function to hide Manipulators
\item Added some Icons
\item Fixed iterator bug causing slow operations
\end{DoxyItemize}
\item Plugin View\+Control
\begin{DoxyItemize}
\item Don\textquotesingle{}t set draw mode for all nodes
\end{DoxyItemize}
\item Plugin V\+SI
\begin{DoxyItemize}
\item New Plugin to create scripts via a visual scripting interface
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries \hyperlink{namespaceACG}{A\+CG}}
\begin{DoxyItemize}
\item Switched Bounding Box action to doubles
\item added Quaternion exponential, logarithm and from\+\_\+rotation\+\_\+matrix construction
\item Removed assertions in \hyperlink{namespaceGLSL}{G\+L\+SL} Shader Utils and replaced them by warnings (To support graphics cards without shaders)
\item Reimplementation of the drawmode which is now a separate class
\end{DoxyItemize}
\item {\bfseries Build system}
\begin{DoxyItemize}
\item Finder for libpre
\item Finder for libxml2
\item Updated \hyperlink{namespaceOpenMesh}{Open\+Mesh} Finder
\item New \hyperlink{structOption}{Option} to enable stl vector checking
\item First tests to enable cross compiling
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0 R\+C5 ( 10.\+26.\+2009, 7508 )}
\begin{DoxyItemize}
\item {\bfseries UI}
\begin{DoxyItemize}
\item Updated the view modes
\begin{DoxyItemize}
\item added toolbars to view modes
\item New widget for configuring view modes
\end{DoxyItemize}
\item First person navigation mode
\begin{DoxyItemize}
\item Added basic implementation for first person navigation in the scene (Keys wasd + mouse)
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Rendering}
\begin{DoxyItemize}
\item Support stereo mode for Philips 42-\/inch autostereoscopic 3D Displays
\end{DoxyItemize}
\item {\bfseries Plugin interface changes}
\begin{DoxyItemize}
\item Toolbox interface (Initialize\+\_\+toolbox is removed. please add the code from this function to initialize plugin and emit add\+Toolbox there)
\item Removed global access header
\end{DoxyItemize}
\item {\bfseries Plugins}
\begin{DoxyItemize}
\item Plugin Info
\begin{DoxyItemize}
\item Updated Info plugin (new user interface and more info about meshes)
\end{DoxyItemize}
\item Plugin Move
\begin{DoxyItemize}
\item Only scale manipulators if move plugin is active
\item Fixed normal update in move plugin
\item Fixed multiple connections in move plugin resulting in slow movement
\end{DoxyItemize}
\item Plugin Datacontrol
\begin{DoxyItemize}
\item Fixed double entries in datacontrol
\end{DoxyItemize}
\item {\bfseries Internal changes}
\item Changed ordering of main scenegraph nodes (and added pluginfunctions to add new nodes)
\end{DoxyItemize}
\item {\bfseries Documentation}
\begin{DoxyItemize}
\item refactor the documentation
\item adjust to changes
\end{DoxyItemize}
\item {\bfseries Build system}
\begin{DoxyItemize}
\item Add cmake configurations for object types
\item parse and integrate Qr resource files for plugins
\item Added lib subdirectory which is automatically build when a cmakelists file exists
\end{DoxyItemize}
\item {\bfseries General bugfixes}
\begin{DoxyItemize}
\item Fixed bug where rotation center and scene center interfered
\item Fixed translation in plane object
\end{DoxyItemize}
\item {\bfseries Internal libs}
\begin{DoxyItemize}
\item Updated \hyperlink{namespaceOpenMesh}{Open\+Mesh} to R\+C4
\end{DoxyItemize}
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0 R\+C4 ( 09.\+29.\+2009 ,7205)}
\begin{DoxyItemize}
\item Isotropic Remesher Plugin
\item Latest \hyperlink{namespaceOpenMesh}{Open\+Mesh} Version
\item Bugfixes
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0 R\+C3 ( 07.\+10.\+2009)}
\begin{DoxyItemize}
\item Switch to cmake
\item Creation of Windows and Mac\+OS Installer files
\item Bugfixes
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0 R\+C2 ( 04.\+19.\+2009)}
\begin{DoxyItemize}
\item Cmake support added .. needs more testing
\end{DoxyItemize}
\item {\bfseries Open\+Flipper 1.\+0 R\+C1 ( 03.\+27.\+2009 )}
\begin{DoxyItemize}
\item Initial Release 
\end{DoxyItemize}
\end{DoxyItemize}