Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Genrich <daniel.genrich@gmx.net>2008-04-22 01:30:50 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2008-04-22 01:30:50 +0400
commitc9c3c41815ab0b029d36530b8684e7dada81a8bc (patch)
tree1c2b39d8d4b0e8f96fd8a9146322d3766933c9fb
parent006d4d1176d87ff03446665436ace2c1d31eeaf3 (diff)
parent2a7fa9e14730d44cdb2d4302481be866735d7300 (diff)
svn merge -r 14236:14505 https://svn.blender.org/svnroot/bf-blender/trunk/blender
-rw-r--r--CMakeLists.txt9
-rw-r--r--Makefile9
-rw-r--r--SConstruct19
-rw-r--r--blenderplayer/CMakeLists.txt19
-rw-r--r--config/win32-vc-config.py2
-rw-r--r--extern/CMakeLists.txt9
-rw-r--r--extern/Makefile9
-rw-r--r--extern/SConscript7
-rw-r--r--extern/bFTGL/CMakeLists.txt9
-rw-r--r--extern/bFTGL/src/Makefile9
-rw-r--r--extern/bullet2/CMakeLists.txt9
-rw-r--r--extern/bullet2/Makefile9
-rw-r--r--extern/bullet2/src/Makefile9
-rw-r--r--extern/ode/Makefile9
-rw-r--r--extern/qhull/CMakeLists.txt9
-rw-r--r--extern/qhull/src/Makefile9
-rw-r--r--extern/solid/CMakeLists.txt9
-rw-r--r--extern/solid/Makefile9
-rw-r--r--extern/solid/src/Makefile9
-rw-r--r--extern/solid/src/broad/Makefile9
-rw-r--r--extern/solid/src/complex/Makefile9
-rw-r--r--extern/solid/src/convex/Makefile9
-rw-r--r--extern/verse/CMakeLists.txt9
-rw-r--r--extern/verse/Makefile9
-rw-r--r--extern/verse/dist/CMakeLists.txt9
-rw-r--r--extern/verse/dist/mkprot_cmd/CMakeLists.txt9
-rw-r--r--intern/CMakeLists.txt9
-rw-r--r--intern/Makefile9
-rw-r--r--intern/SoundSystem/CMakeLists.txt9
-rw-r--r--intern/SoundSystem/Makefile9
-rw-r--r--intern/SoundSystem/SND_C-api.h9
-rw-r--r--intern/SoundSystem/SND_CDObject.h9
-rw-r--r--intern/SoundSystem/SND_DependKludge.h9
-rw-r--r--intern/SoundSystem/SND_DeviceManager.h9
-rw-r--r--intern/SoundSystem/SND_IAudioDevice.h9
-rw-r--r--intern/SoundSystem/SND_Object.h9
-rw-r--r--intern/SoundSystem/SND_Scene.h9
-rw-r--r--intern/SoundSystem/SND_SoundListener.h9
-rw-r--r--intern/SoundSystem/SND_SoundObject.h9
-rw-r--r--intern/SoundSystem/SND_Utils.h9
-rw-r--r--intern/SoundSystem/SND_WaveCache.h9
-rw-r--r--intern/SoundSystem/SND_WaveSlot.h9
-rw-r--r--intern/SoundSystem/SND_test/Makefile9
-rw-r--r--intern/SoundSystem/SND_test/SND_test.c9
-rw-r--r--intern/SoundSystem/SoundDefines.h9
-rw-r--r--intern/SoundSystem/dummy/Makefile9
-rw-r--r--intern/SoundSystem/dummy/SND_DummyDevice.cpp9
-rw-r--r--intern/SoundSystem/dummy/SND_DummyDevice.h9
-rw-r--r--intern/SoundSystem/fmod/Makefile9
-rw-r--r--intern/SoundSystem/fmod/SND_FmodDevice.cpp9
-rw-r--r--intern/SoundSystem/fmod/SND_FmodDevice.h9
-rw-r--r--intern/SoundSystem/intern/Makefile9
-rw-r--r--intern/SoundSystem/intern/SND_AudioDevice.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_AudioDevice.h9
-rw-r--r--intern/SoundSystem/intern/SND_C-api.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_CDObject.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_DeviceManager.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_IdObject.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_IdObject.h9
-rw-r--r--intern/SoundSystem/intern/SND_Scene.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_SoundListener.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_SoundObject.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_Utils.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_WaveCache.cpp9
-rw-r--r--intern/SoundSystem/intern/SND_WaveSlot.cpp9
-rw-r--r--intern/SoundSystem/openal/Makefile9
-rw-r--r--intern/SoundSystem/openal/SND_OpenALDevice.cpp9
-rw-r--r--intern/SoundSystem/openal/SND_OpenALDevice.h9
-rw-r--r--intern/SoundSystem/openal/pthread_cancel.cpp9
-rw-r--r--intern/SoundSystem/sdl/Makefile9
-rw-r--r--intern/SoundSystem/sdl/SND_SDLCDDevice.cpp9
-rw-r--r--intern/SoundSystem/sdl/SND_SDLCDDevice.h9
-rw-r--r--intern/bmfont/BMF_Api.h9
-rw-r--r--intern/bmfont/BMF_Fonts.h9
-rw-r--r--intern/bmfont/BMF_Settings.h9
-rw-r--r--intern/bmfont/CMakeLists.txt9
-rw-r--r--intern/bmfont/Makefile9
-rw-r--r--intern/bmfont/intern/BMF_Api.cpp9
-rw-r--r--intern/bmfont/intern/BMF_BitmapFont.cpp9
-rw-r--r--intern/bmfont/intern/BMF_BitmapFont.h9
-rw-r--r--intern/bmfont/intern/BMF_FontData.h9
-rw-r--r--intern/bmfont/intern/BMF_font_helv10.cpp9
-rw-r--r--intern/bmfont/intern/BMF_font_helv12.cpp9
-rw-r--r--intern/bmfont/intern/BMF_font_helvb10.cpp9
-rw-r--r--intern/bmfont/intern/BMF_font_helvb12.cpp9
-rw-r--r--intern/bmfont/intern/BMF_font_helvb14.cpp9
-rw-r--r--intern/bmfont/intern/BMF_font_helvb8.cpp9
-rw-r--r--intern/bmfont/intern/BMF_font_scr12.cpp9
-rw-r--r--intern/bmfont/intern/BMF_font_scr14.cpp9
-rw-r--r--intern/bmfont/intern/BMF_font_scr15.cpp9
-rw-r--r--intern/bmfont/intern/Makefile9
-rw-r--r--intern/bmfont/test/Makefile9
-rw-r--r--intern/bmfont/test/simpletest/BMF_Test.cpp9
-rw-r--r--intern/bmfont/test/simpletest/Makefile9
-rw-r--r--intern/boolop/CMakeLists.txt9
-rw-r--r--intern/boolop/Makefile9
-rw-r--r--intern/boolop/extern/BOP_Interface.h9
-rw-r--r--intern/boolop/intern/BOP_BBox.cpp9
-rw-r--r--intern/boolop/intern/BOP_BBox.h9
-rw-r--r--intern/boolop/intern/BOP_BSPNode.cpp9
-rw-r--r--intern/boolop/intern/BOP_BSPNode.h9
-rw-r--r--intern/boolop/intern/BOP_BSPTree.cpp9
-rw-r--r--intern/boolop/intern/BOP_BSPTree.h9
-rw-r--r--intern/boolop/intern/BOP_Chrono.h9
-rw-r--r--intern/boolop/intern/BOP_Edge.cpp9
-rw-r--r--intern/boolop/intern/BOP_Edge.h9
-rw-r--r--intern/boolop/intern/BOP_Face.cpp9
-rw-r--r--intern/boolop/intern/BOP_Face.h9
-rw-r--r--intern/boolop/intern/BOP_Face2Face.cpp9
-rw-r--r--intern/boolop/intern/BOP_Face2Face.h9
-rw-r--r--intern/boolop/intern/BOP_Indexs.h9
-rw-r--r--intern/boolop/intern/BOP_Interface.cpp9
-rw-r--r--intern/boolop/intern/BOP_MathUtils.cpp9
-rw-r--r--intern/boolop/intern/BOP_MathUtils.h9
-rw-r--r--intern/boolop/intern/BOP_Merge.cpp9
-rw-r--r--intern/boolop/intern/BOP_Merge.h9
-rw-r--r--intern/boolop/intern/BOP_Mesh.cpp9
-rw-r--r--intern/boolop/intern/BOP_Mesh.h9
-rw-r--r--intern/boolop/intern/BOP_Segment.cpp9
-rw-r--r--intern/boolop/intern/BOP_Segment.h9
-rw-r--r--intern/boolop/intern/BOP_Splitter.cpp9
-rw-r--r--intern/boolop/intern/BOP_Splitter.h9
-rw-r--r--intern/boolop/intern/BOP_Tag.cpp9
-rw-r--r--intern/boolop/intern/BOP_Tag.h9
-rw-r--r--intern/boolop/intern/BOP_Triangulator.cpp9
-rw-r--r--intern/boolop/intern/BOP_Triangulator.h9
-rw-r--r--intern/boolop/intern/BOP_Vertex.cpp9
-rw-r--r--intern/boolop/intern/BOP_Vertex.h9
-rw-r--r--intern/boolop/intern/Makefile9
-rw-r--r--intern/bsp/CMakeLists.txt9
-rw-r--r--intern/bsp/Makefile9
-rw-r--r--intern/bsp/extern/CSG_BooleanOps.h9
-rw-r--r--intern/bsp/intern/BSP_CSGException.h9
-rw-r--r--intern/bsp/intern/BSP_CSGMesh.cpp9
-rw-r--r--intern/bsp/intern/BSP_CSGMesh.h9
-rw-r--r--intern/bsp/intern/BSP_CSGMesh_CFIterator.h9
-rw-r--r--intern/bsp/intern/BSP_MeshPrimitives.cpp9
-rw-r--r--intern/bsp/intern/BSP_MeshPrimitives.h9
-rw-r--r--intern/bsp/intern/CSG_BooleanOps.cpp9
-rw-r--r--intern/bsp/intern/Makefile9
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp9
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h9
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp9
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h9
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp9
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h9
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_TMesh.h9
-rw-r--r--intern/bsp/test/BSP_GhostTest/Makefile9
-rw-r--r--intern/bsp/test/BSP_GhostTest/main.cpp9
-rw-r--r--intern/bsp/test/BSP_GhostTest/ply.h9
-rw-r--r--intern/bsp/test/BSP_GhostTest/plyfile.c9
-rw-r--r--intern/bsp/test/Makefile9
-rw-r--r--intern/container/CMakeLists.txt9
-rw-r--r--intern/container/CTR_List.h40
-rw-r--r--intern/container/CTR_Map.h9
-rw-r--r--intern/container/CTR_TaggedIndex.h9
-rw-r--r--intern/container/CTR_TaggedSetOps.h9
-rw-r--r--intern/container/CTR_UHeap.h9
-rw-r--r--intern/container/Makefile9
-rw-r--r--intern/container/intern/CTR_List.cpp9
-rw-r--r--intern/container/intern/Makefile9
-rw-r--r--intern/decimation/CMakeLists.txt9
-rw-r--r--intern/decimation/Makefile9
-rw-r--r--intern/decimation/extern/LOD_decimation.h9
-rw-r--r--intern/decimation/intern/LOD_DecimationClass.h9
-rw-r--r--intern/decimation/intern/LOD_EdgeCollapser.cpp9
-rw-r--r--intern/decimation/intern/LOD_EdgeCollapser.h9
-rw-r--r--intern/decimation/intern/LOD_ExternBufferEditor.h9
-rw-r--r--intern/decimation/intern/LOD_ExternNormalEditor.cpp9
-rw-r--r--intern/decimation/intern/LOD_ExternNormalEditor.h9
-rw-r--r--intern/decimation/intern/LOD_FaceNormalEditor.cpp9
-rw-r--r--intern/decimation/intern/LOD_FaceNormalEditor.h9
-rw-r--r--intern/decimation/intern/LOD_ManMesh2.cpp9
-rw-r--r--intern/decimation/intern/LOD_ManMesh2.h9
-rw-r--r--intern/decimation/intern/LOD_MeshBounds.h9
-rw-r--r--intern/decimation/intern/LOD_MeshException.h9
-rw-r--r--intern/decimation/intern/LOD_MeshPrimitives.cpp9
-rw-r--r--intern/decimation/intern/LOD_MeshPrimitives.h9
-rw-r--r--intern/decimation/intern/LOD_QSDecimator.cpp9
-rw-r--r--intern/decimation/intern/LOD_QSDecimator.h9
-rw-r--r--intern/decimation/intern/LOD_Quadric.h9
-rw-r--r--intern/decimation/intern/LOD_QuadricEditor.cpp9
-rw-r--r--intern/decimation/intern/LOD_QuadricEditor.h9
-rw-r--r--intern/decimation/intern/LOD_decimation.cpp9
-rw-r--r--intern/decimation/intern/Makefile9
-rw-r--r--intern/elbeem/CMakeLists.txt9
-rw-r--r--intern/elbeem/Makefile9
-rw-r--r--intern/elbeem/extern/LBM_fluidsim.h9
-rw-r--r--intern/elbeem/intern/Makefile9
-rw-r--r--intern/elbeem/intern/ntl_vector3dim.h2
-rw-r--r--intern/elbeem/intern/solver_util.cpp8
-rw-r--r--intern/ghost/CMakeLists.txt9
-rw-r--r--intern/ghost/GHOST_C-api.h9
-rw-r--r--intern/ghost/GHOST_IEvent.h9
-rw-r--r--intern/ghost/GHOST_IEventConsumer.h9
-rw-r--r--intern/ghost/GHOST_ISystem.h9
-rw-r--r--intern/ghost/GHOST_ITimerTask.h9
-rw-r--r--intern/ghost/GHOST_IWindow.h9
-rw-r--r--intern/ghost/GHOST_Rect.h9
-rw-r--r--intern/ghost/GHOST_Types.h9
-rw-r--r--intern/ghost/Makefile9
-rw-r--r--intern/ghost/intern/GHOST_Buttons.cpp9
-rw-r--r--intern/ghost/intern/GHOST_Buttons.h9
-rw-r--r--intern/ghost/intern/GHOST_C-api.cpp9
-rw-r--r--intern/ghost/intern/GHOST_CallbackEventConsumer.cpp9
-rw-r--r--intern/ghost/intern/GHOST_CallbackEventConsumer.h9
-rw-r--r--intern/ghost/intern/GHOST_Debug.h9
-rw-r--r--intern/ghost/intern/GHOST_DisplayManager.cpp9
-rw-r--r--intern/ghost/intern/GHOST_DisplayManager.h9
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp9
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerCarbon.h9
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerWin32.cpp9
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerWin32.h9
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerX11.cpp9
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerX11.h9
-rw-r--r--intern/ghost/intern/GHOST_Event.h9
-rw-r--r--intern/ghost/intern/GHOST_EventButton.h9
-rw-r--r--intern/ghost/intern/GHOST_EventCursor.h9
-rw-r--r--intern/ghost/intern/GHOST_EventKey.h9
-rw-r--r--intern/ghost/intern/GHOST_EventManager.cpp9
-rw-r--r--intern/ghost/intern/GHOST_EventManager.h9
-rw-r--r--intern/ghost/intern/GHOST_EventPrinter.cpp9
-rw-r--r--intern/ghost/intern/GHOST_EventPrinter.h9
-rw-r--r--intern/ghost/intern/GHOST_EventWheel.h9
-rw-r--r--intern/ghost/intern/GHOST_ISystem.cpp9
-rw-r--r--intern/ghost/intern/GHOST_ModifierKeys.cpp9
-rw-r--r--intern/ghost/intern/GHOST_ModifierKeys.h9
-rw-r--r--intern/ghost/intern/GHOST_Rect.cpp9
-rw-r--r--intern/ghost/intern/GHOST_System.cpp9
-rw-r--r--intern/ghost/intern/GHOST_System.h9
-rw-r--r--intern/ghost/intern/GHOST_SystemCarbon.cpp9
-rw-r--r--intern/ghost/intern/GHOST_SystemCarbon.h9
-rw-r--r--intern/ghost/intern/GHOST_SystemWin32.cpp9
-rw-r--r--intern/ghost/intern/GHOST_SystemWin32.h9
-rw-r--r--intern/ghost/intern/GHOST_SystemX11.cpp9
-rw-r--r--intern/ghost/intern/GHOST_SystemX11.h9
-rw-r--r--intern/ghost/intern/GHOST_TimerManager.cpp9
-rw-r--r--intern/ghost/intern/GHOST_TimerManager.h9
-rw-r--r--intern/ghost/intern/GHOST_TimerTask.h9
-rw-r--r--intern/ghost/intern/GHOST_Window.cpp9
-rw-r--r--intern/ghost/intern/GHOST_Window.h9
-rw-r--r--intern/ghost/intern/GHOST_WindowCarbon.cpp9
-rw-r--r--intern/ghost/intern/GHOST_WindowCarbon.h9
-rw-r--r--intern/ghost/intern/GHOST_WindowManager.cpp9
-rw-r--r--intern/ghost/intern/GHOST_WindowManager.h9
-rw-r--r--intern/ghost/intern/GHOST_WindowWin32.cpp9
-rw-r--r--intern/ghost/intern/GHOST_WindowWin32.h9
-rw-r--r--intern/ghost/intern/GHOST_WindowX11.cpp9
-rw-r--r--intern/ghost/intern/GHOST_WindowX11.h9
-rw-r--r--intern/ghost/intern/Makefile9
-rw-r--r--intern/ghost/test/Makefile9
-rw-r--r--intern/ghost/test/gears/GHOST_C-Test.c9
-rw-r--r--intern/ghost/test/gears/GHOST_Test.cpp9
-rw-r--r--intern/ghost/test/gears/Makefile9
-rw-r--r--intern/ghost/test/multitest/Basic.c9
-rw-r--r--intern/ghost/test/multitest/Basic.h9
-rw-r--r--intern/ghost/test/multitest/EventToBuf.c9
-rw-r--r--intern/ghost/test/multitest/EventToBuf.h9
-rw-r--r--intern/ghost/test/multitest/GL.h9
-rw-r--r--intern/ghost/test/multitest/Makefile9
-rw-r--r--intern/ghost/test/multitest/MultiTest.c9
-rw-r--r--intern/ghost/test/multitest/ScrollBar.c9
-rw-r--r--intern/ghost/test/multitest/ScrollBar.h9
-rw-r--r--intern/ghost/test/multitest/Util.c9
-rw-r--r--intern/ghost/test/multitest/Util.h9
-rw-r--r--intern/ghost/test/multitest/WindowData.c9
-rw-r--r--intern/ghost/test/multitest/WindowData.h9
-rw-r--r--intern/guardedalloc/CMakeLists.txt9
-rw-r--r--intern/guardedalloc/MEM_guardedalloc.h9
-rw-r--r--intern/guardedalloc/Makefile9
-rw-r--r--intern/guardedalloc/intern/Makefile9
-rw-r--r--intern/guardedalloc/intern/mallocn.c9
-rw-r--r--intern/guardedalloc/test/Makefile9
-rw-r--r--intern/guardedalloc/test/simpletest/Makefile9
-rw-r--r--intern/guardedalloc/test/simpletest/memtest.c9
-rw-r--r--intern/iksolver/CMakeLists.txt9
-rw-r--r--intern/iksolver/Makefile9
-rw-r--r--intern/iksolver/extern/IK_solver.h9
-rw-r--r--intern/iksolver/intern/IK_QJacobian.cpp9
-rw-r--r--intern/iksolver/intern/IK_QJacobian.h9
-rw-r--r--intern/iksolver/intern/IK_QJacobianSolver.cpp9
-rw-r--r--intern/iksolver/intern/IK_QJacobianSolver.h9
-rw-r--r--intern/iksolver/intern/IK_QSegment.cpp9
-rw-r--r--intern/iksolver/intern/IK_QSegment.h9
-rw-r--r--intern/iksolver/intern/IK_QTask.cpp9
-rw-r--r--intern/iksolver/intern/IK_QTask.h9
-rw-r--r--intern/iksolver/intern/IK_Solver.cpp9
-rw-r--r--intern/iksolver/intern/MT_ExpMap.cpp9
-rw-r--r--intern/iksolver/intern/MT_ExpMap.h9
-rw-r--r--intern/iksolver/intern/Makefile9
-rw-r--r--intern/iksolver/test/Makefile9
-rw-r--r--intern/iksolver/test/ik_glut_test/Makefile9
-rw-r--r--intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp9
-rw-r--r--intern/iksolver/test/ik_glut_test/common/GlutDrawer.h9
-rw-r--r--intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp9
-rw-r--r--intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.h9
-rw-r--r--intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp9
-rw-r--r--intern/iksolver/test/ik_glut_test/common/GlutMouseManager.h9
-rw-r--r--intern/iksolver/test/ik_glut_test/common/Makefile9
-rw-r--r--intern/iksolver/test/ik_glut_test/intern/ChainDrawer.h9
-rw-r--r--intern/iksolver/test/ik_glut_test/intern/Makefile9
-rw-r--r--intern/iksolver/test/ik_glut_test/intern/MyGlutKeyHandler.h9
-rw-r--r--intern/iksolver/test/ik_glut_test/intern/MyGlutMouseHandler.h9
-rw-r--r--intern/iksolver/test/ik_glut_test/intern/main.cpp40
-rw-r--r--intern/memutil/CMakeLists.txt9
-rw-r--r--intern/memutil/MEM_Allocator.h9
-rw-r--r--intern/memutil/MEM_CacheLimiter.h9
-rw-r--r--intern/memutil/MEM_CacheLimiterC-Api.h9
-rw-r--r--intern/memutil/MEM_NonCopyable.h9
-rw-r--r--intern/memutil/MEM_RefCountPtr.h9
-rw-r--r--intern/memutil/MEM_RefCounted.h9
-rw-r--r--intern/memutil/MEM_RefCountedC-Api.h9
-rw-r--r--intern/memutil/MEM_SmartPtr.h9
-rw-r--r--intern/memutil/Makefile9
-rw-r--r--intern/memutil/intern/MEM_RefCountedC-Api.cpp9
-rw-r--r--intern/memutil/intern/Makefile9
-rw-r--r--intern/moto/CMakeLists.txt9
-rw-r--r--intern/moto/Makefile9
-rw-r--r--intern/moto/include/GEN_List.h40
-rw-r--r--intern/moto/include/GEN_Map.h9
-rw-r--r--intern/moto/include/MT_CmMatrix4x4.h9
-rw-r--r--intern/moto/include/MT_Matrix3x3.h9
-rw-r--r--intern/moto/include/MT_Matrix4x4.h9
-rw-r--r--intern/moto/include/MT_MinMax.h9
-rw-r--r--intern/moto/include/MT_Optimize.h9
-rw-r--r--intern/moto/include/MT_Plane3.h9
-rw-r--r--intern/moto/include/MT_Point2.h9
-rw-r--r--intern/moto/include/MT_Point3.h9
-rw-r--r--intern/moto/include/MT_Quaternion.h9
-rw-r--r--intern/moto/include/MT_Scalar.h9
-rw-r--r--intern/moto/include/MT_Stream.h9
-rw-r--r--intern/moto/include/MT_Transform.h9
-rw-r--r--intern/moto/include/MT_Tuple2.h9
-rw-r--r--intern/moto/include/MT_Tuple3.h9
-rw-r--r--intern/moto/include/MT_Tuple4.h9
-rw-r--r--intern/moto/include/MT_Vector2.h9
-rw-r--r--intern/moto/include/MT_Vector3.h9
-rw-r--r--intern/moto/include/MT_Vector4.h9
-rw-r--r--intern/moto/include/MT_assert.h9
-rw-r--r--intern/moto/include/MT_random.h9
-rw-r--r--intern/moto/include/NM_Scalar.h9
-rw-r--r--intern/moto/intern/MT_Assert.cpp9
-rw-r--r--intern/moto/intern/MT_CmMatrix4x4.cpp40
-rw-r--r--intern/moto/intern/MT_Matrix3x3.cpp9
-rw-r--r--intern/moto/intern/MT_Matrix4x4.cpp9
-rw-r--r--intern/moto/intern/MT_Plane3.cpp40
-rw-r--r--intern/moto/intern/MT_Point3.cpp9
-rw-r--r--intern/moto/intern/MT_Quaternion.cpp9
-rw-r--r--intern/moto/intern/MT_Transform.cpp9
-rw-r--r--intern/moto/intern/MT_Vector2.cpp9
-rw-r--r--intern/moto/intern/MT_Vector3.cpp9
-rw-r--r--intern/moto/intern/MT_Vector4.cpp9
-rw-r--r--intern/moto/intern/MT_random.cpp9
-rw-r--r--intern/moto/intern/Makefile9
-rw-r--r--intern/opennl/CMakeLists.txt9
-rw-r--r--intern/opennl/Makefile9
-rw-r--r--intern/opennl/intern/Makefile9
-rw-r--r--intern/opennl/superlu/Makefile9
-rw-r--r--intern/string/CMakeLists.txt9
-rw-r--r--intern/string/Makefile9
-rw-r--r--intern/string/STR_HashedString.h9
-rw-r--r--intern/string/STR_String.h9
-rw-r--r--intern/string/intern/Makefile9
-rw-r--r--intern/string/intern/STR_String.cpp9
-rw-r--r--po/Makefile9
-rw-r--r--projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj6
-rw-r--r--release/Makefile9
-rw-r--r--release/beos-4.5-i386/specific.sh9
-rw-r--r--release/beos-5.0-i386/specific.sh9
-rw-r--r--release/datafiles/datatoc.c9
-rw-r--r--release/datafiles/splash.jpgbin84581 -> 72804 bytes
-rw-r--r--release/irix-6.2-mips/specific.sh9
-rw-r--r--release/plugins/Makefile9
-rw-r--r--release/plugins/bmake9
-rw-r--r--release/plugins/sequence/Makefile9
-rw-r--r--release/plugins/sequence/blur.c9
-rw-r--r--release/plugins/sequence/scatter.c9
-rw-r--r--release/plugins/texture/Makefile9
-rw-r--r--release/plugins/texture/clouds2.c15
-rw-r--r--release/plugins/texture/tiles.c13
-rw-r--r--release/scripts/3ds_import.py47
-rw-r--r--release/scripts/bpymodules/BPyRegistry.py41
-rw-r--r--release/scripts/bpymodules/BPyRender.py24
-rw-r--r--release/scripts/export_cal3d.py1112
-rw-r--r--release/scripts/export_lightwave_motion.py15
-rw-r--r--release/scripts/export_mdd.py36
-rw-r--r--release/scripts/flt_export.py264
-rw-r--r--release/scripts/flt_import.py417
-rw-r--r--release/scripts/flt_properties.py19
-rw-r--r--release/scripts/flt_toolbar.py13
-rw-r--r--release/scripts/import_lightwave_motion.py244
-rw-r--r--release/scripts/md2_export.py184
-rw-r--r--release/scripts/md2_import.py2
-rw-r--r--release/scripts/ms3d_import.py381
-rw-r--r--release/scripts/wizard_curve2tree.py45
-rw-r--r--release/windows/installer/00.sconsblender.nsi282
-rw-r--r--release/windows/installer/data.ini34
-rwxr-xr-xrelease/windows/specific.sh9
-rw-r--r--source/CMakeLists.txt9
-rw-r--r--source/Makefile9
-rw-r--r--source/blender/CMakeLists.txt9
-rw-r--r--source/blender/Makefile9
-rw-r--r--source/blender/avi/AVI_avi.h9
-rw-r--r--source/blender/avi/CMakeLists.txt9
-rw-r--r--source/blender/avi/Makefile9
-rw-r--r--source/blender/avi/intern/Makefile9
-rw-r--r--source/blender/avi/intern/avi.c9
-rw-r--r--source/blender/avi/intern/avi_intern.h9
-rw-r--r--source/blender/avi/intern/avirgb.c9
-rw-r--r--source/blender/avi/intern/avirgb.h9
-rw-r--r--source/blender/avi/intern/codecs.c9
-rw-r--r--source/blender/avi/intern/endian.c9
-rw-r--r--source/blender/avi/intern/endian.h9
-rw-r--r--source/blender/avi/intern/mjpeg.c9
-rw-r--r--source/blender/avi/intern/mjpeg.h9
-rw-r--r--source/blender/avi/intern/options.c9
-rw-r--r--source/blender/avi/intern/rgb32.c9
-rw-r--r--source/blender/avi/intern/rgb32.h9
-rw-r--r--source/blender/blenkernel/BKE_DerivedMesh.h27
-rw-r--r--source/blender/blenkernel/BKE_action.h9
-rw-r--r--source/blender/blenkernel/BKE_anim.h9
-rw-r--r--source/blender/blenkernel/BKE_armature.h9
-rw-r--r--source/blender/blenkernel/BKE_bad_level_calls.h9
-rw-r--r--source/blender/blenkernel/BKE_blender.h11
-rw-r--r--source/blender/blenkernel/BKE_bmesh.h4
-rw-r--r--source/blender/blenkernel/BKE_bmfont.h9
-rw-r--r--source/blender/blenkernel/BKE_bmfont_types.h9
-rw-r--r--source/blender/blenkernel/BKE_booleanops.h9
-rw-r--r--source/blender/blenkernel/BKE_booleanops_mesh.h9
-rw-r--r--source/blender/blenkernel/BKE_brush.h11
-rw-r--r--source/blender/blenkernel/BKE_cloth.h39
-rw-r--r--source/blender/blenkernel/BKE_collision.h9
-rw-r--r--source/blender/blenkernel/BKE_constraint.h9
-rw-r--r--source/blender/blenkernel/BKE_curve.h9
-rw-r--r--source/blender/blenkernel/BKE_deform.h9
-rw-r--r--source/blender/blenkernel/BKE_depsgraph.h11
-rw-r--r--source/blender/blenkernel/BKE_displist.h9
-rw-r--r--source/blender/blenkernel/BKE_effect.h9
-rw-r--r--source/blender/blenkernel/BKE_endian.h9
-rw-r--r--source/blender/blenkernel/BKE_exotic.h9
-rw-r--r--source/blender/blenkernel/BKE_font.h9
-rw-r--r--source/blender/blenkernel/BKE_global.h9
-rw-r--r--source/blender/blenkernel/BKE_group.h9
-rw-r--r--source/blender/blenkernel/BKE_idprop.h9
-rw-r--r--source/blender/blenkernel/BKE_image.h9
-rw-r--r--source/blender/blenkernel/BKE_ipo.h9
-rw-r--r--source/blender/blenkernel/BKE_key.h9
-rw-r--r--source/blender/blenkernel/BKE_lattice.h9
-rw-r--r--source/blender/blenkernel/BKE_library.h9
-rw-r--r--source/blender/blenkernel/BKE_main.h11
-rw-r--r--source/blender/blenkernel/BKE_material.h9
-rw-r--r--source/blender/blenkernel/BKE_mball.h9
-rw-r--r--source/blender/blenkernel/BKE_mesh.h9
-rw-r--r--source/blender/blenkernel/BKE_modifier.h9
-rw-r--r--source/blender/blenkernel/BKE_nla.h9
-rw-r--r--source/blender/blenkernel/BKE_object.h11
-rw-r--r--source/blender/blenkernel/BKE_packedFile.h9
-rw-r--r--source/blender/blenkernel/BKE_particle.h26
-rw-r--r--source/blender/blenkernel/BKE_plugin_types.h14
-rw-r--r--source/blender/blenkernel/BKE_pointcache.h74
-rw-r--r--source/blender/blenkernel/BKE_property.h9
-rw-r--r--source/blender/blenkernel/BKE_sca.h9
-rw-r--r--source/blender/blenkernel/BKE_scene.h9
-rw-r--r--source/blender/blenkernel/BKE_screen.h9
-rw-r--r--source/blender/blenkernel/BKE_script.h9
-rw-r--r--source/blender/blenkernel/BKE_softbody.h14
-rw-r--r--source/blender/blenkernel/BKE_sound.h9
-rw-r--r--source/blender/blenkernel/BKE_subsurf.h9
-rw-r--r--source/blender/blenkernel/BKE_text.h9
-rw-r--r--source/blender/blenkernel/BKE_texture.h9
-rw-r--r--source/blender/blenkernel/BKE_utildefines.h9
-rw-r--r--source/blender/blenkernel/BKE_verse.h9
-rw-r--r--source/blender/blenkernel/BKE_world.h9
-rw-r--r--source/blender/blenkernel/BKE_writeavi.h9
-rw-r--r--source/blender/blenkernel/BKE_writeffmpeg.h11
-rw-r--r--source/blender/blenkernel/BKE_writeframeserver.h9
-rw-r--r--source/blender/blenkernel/CMakeLists.txt9
-rw-r--r--source/blender/blenkernel/Makefile9
-rw-r--r--source/blender/blenkernel/bad_level_call_stubs/CMakeLists.txt9
-rw-r--r--source/blender/blenkernel/bad_level_call_stubs/Makefile9
-rw-r--r--source/blender/blenkernel/bad_level_call_stubs/stubs.c12
-rw-r--r--source/blender/blenkernel/depsgraph_private.h12
-rw-r--r--source/blender/blenkernel/intern/BME_conversions.c8
-rw-r--r--source/blender/blenkernel/intern/BME_eulers.c8
-rw-r--r--source/blender/blenkernel/intern/BME_mesh.c8
-rw-r--r--source/blender/blenkernel/intern/BME_structure.c8
-rw-r--r--source/blender/blenkernel/intern/BME_tools.c9
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c57
-rw-r--r--source/blender/blenkernel/intern/Makefile9
-rw-r--r--source/blender/blenkernel/intern/action.c9
-rw-r--r--source/blender/blenkernel/intern/anim.c9
-rw-r--r--source/blender/blenkernel/intern/armature.c63
-rw-r--r--source/blender/blenkernel/intern/blender.c11
-rw-r--r--source/blender/blenkernel/intern/bmesh_private.h4
-rw-r--r--source/blender/blenkernel/intern/bmfont.c9
-rw-r--r--source/blender/blenkernel/intern/brush.c32
-rw-r--r--source/blender/blenkernel/intern/cloth.c548
-rw-r--r--source/blender/blenkernel/intern/collision.c997
-rw-r--r--source/blender/blenkernel/intern/colortools.c3
-rw-r--r--source/blender/blenkernel/intern/constraint.c24
-rw-r--r--source/blender/blenkernel/intern/curve.c9
-rw-r--r--source/blender/blenkernel/intern/customdata.c13
-rw-r--r--source/blender/blenkernel/intern/deform.c9
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c270
-rw-r--r--source/blender/blenkernel/intern/displist.c9
-rw-r--r--source/blender/blenkernel/intern/effect.c11
-rw-r--r--source/blender/blenkernel/intern/exotic.c9
-rw-r--r--source/blender/blenkernel/intern/font.c9
-rw-r--r--source/blender/blenkernel/intern/idprop.c9
-rw-r--r--source/blender/blenkernel/intern/image.c18
-rw-r--r--source/blender/blenkernel/intern/implicit.c27
-rw-r--r--source/blender/blenkernel/intern/ipo.c9
-rw-r--r--source/blender/blenkernel/intern/kdop.c40
-rw-r--r--source/blender/blenkernel/intern/key.c9
-rw-r--r--source/blender/blenkernel/intern/lattice.c28
-rw-r--r--source/blender/blenkernel/intern/library.c9
-rw-r--r--source/blender/blenkernel/intern/material.c9
-rw-r--r--source/blender/blenkernel/intern/mball.c9
-rw-r--r--source/blender/blenkernel/intern/mesh.c9
-rw-r--r--source/blender/blenkernel/intern/modifier.c2100
-rw-r--r--source/blender/blenkernel/intern/nla.c9
-rw-r--r--source/blender/blenkernel/intern/object.c101
-rw-r--r--source/blender/blenkernel/intern/packedFile.c13
-rw-r--r--source/blender/blenkernel/intern/particle.c88
-rw-r--r--source/blender/blenkernel/intern/particle_system.c739
-rw-r--r--source/blender/blenkernel/intern/pointcache.c406
-rw-r--r--source/blender/blenkernel/intern/property.c9
-rw-r--r--source/blender/blenkernel/intern/sca.c12
-rw-r--r--source/blender/blenkernel/intern/scene.c12
-rw-r--r--source/blender/blenkernel/intern/screen.c9
-rw-r--r--source/blender/blenkernel/intern/script.c9
-rw-r--r--source/blender/blenkernel/intern/softbody.c737
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c12
-rw-r--r--source/blender/blenkernel/intern/text.c9
-rw-r--r--source/blender/blenkernel/intern/texture.c11
-rw-r--r--source/blender/blenkernel/intern/verse_bitmap_node.c9
-rw-r--r--source/blender/blenkernel/intern/verse_geometry_node.c9
-rw-r--r--source/blender/blenkernel/intern/verse_method.c9
-rw-r--r--source/blender/blenkernel/intern/verse_node.c9
-rw-r--r--source/blender/blenkernel/intern/verse_object_node.c9
-rw-r--r--source/blender/blenkernel/intern/verse_session.c9
-rw-r--r--source/blender/blenkernel/intern/world.c9
-rw-r--r--source/blender/blenkernel/intern/writeavi.c9
-rw-r--r--source/blender/blenkernel/intern/writeffmpeg.c7
-rw-r--r--source/blender/blenlib/BLI_arithb.h9
-rw-r--r--source/blender/blenlib/BLI_blenlib.h10
-rw-r--r--source/blender/blenlib/BLI_boxpack2d.h9
-rw-r--r--source/blender/blenlib/BLI_bpath.h9
-rw-r--r--source/blender/blenlib/BLI_dynamiclist.h9
-rw-r--r--source/blender/blenlib/BLI_dynstr.h9
-rw-r--r--source/blender/blenlib/BLI_edgehash.h9
-rw-r--r--source/blender/blenlib/BLI_editVert.h9
-rw-r--r--source/blender/blenlib/BLI_ghash.h9
-rw-r--r--source/blender/blenlib/BLI_gsqueue.h9
-rw-r--r--source/blender/blenlib/BLI_heap.h9
-rw-r--r--source/blender/blenlib/BLI_kdtree.h9
-rw-r--r--source/blender/blenlib/BLI_linklist.h9
-rw-r--r--source/blender/blenlib/BLI_memarena.h9
-rw-r--r--source/blender/blenlib/BLI_rand.h9
-rw-r--r--source/blender/blenlib/BLI_storage_types.h9
-rw-r--r--source/blender/blenlib/BLI_vfontdata.h9
-rw-r--r--source/blender/blenlib/BLI_winstuff.h9
-rw-r--r--source/blender/blenlib/CMakeLists.txt9
-rw-r--r--source/blender/blenlib/MTC_matrixops.h9
-rw-r--r--source/blender/blenlib/MTC_vectorops.h9
-rw-r--r--source/blender/blenlib/Makefile9
-rw-r--r--source/blender/blenlib/PIL_dynlib.h9
-rw-r--r--source/blender/blenlib/PIL_time.h9
-rw-r--r--source/blender/blenlib/intern/BLI_callbacks.h9
-rw-r--r--source/blender/blenlib/intern/BLI_dynstr.c9
-rw-r--r--source/blender/blenlib/intern/BLI_fileops.h9
-rw-r--r--source/blender/blenlib/intern/BLI_ghash.c9
-rw-r--r--source/blender/blenlib/intern/BLI_heap.c9
-rw-r--r--source/blender/blenlib/intern/BLI_kdtree.c9
-rw-r--r--source/blender/blenlib/intern/BLI_linklist.c9
-rw-r--r--source/blender/blenlib/intern/BLI_memarena.c9
-rw-r--r--source/blender/blenlib/intern/BLI_scanfill.h9
-rw-r--r--source/blender/blenlib/intern/BLI_storage.h9
-rw-r--r--source/blender/blenlib/intern/BLI_util.h9
-rw-r--r--source/blender/blenlib/intern/Makefile9
-rw-r--r--source/blender/blenlib/intern/arithb.c30
-rw-r--r--source/blender/blenlib/intern/boxpack2d.c9
-rw-r--r--source/blender/blenlib/intern/bpath.c9
-rw-r--r--source/blender/blenlib/intern/dynlib.c9
-rw-r--r--source/blender/blenlib/intern/edgehash.c9
-rw-r--r--source/blender/blenlib/intern/fileops.c37
-rw-r--r--source/blender/blenlib/intern/freetypefont.c9
-rw-r--r--source/blender/blenlib/intern/gsqueue.c9
-rw-r--r--source/blender/blenlib/intern/matrixops.c9
-rw-r--r--source/blender/blenlib/intern/noise.c9
-rw-r--r--source/blender/blenlib/intern/psfont.c9
-rw-r--r--source/blender/blenlib/intern/rand.c9
-rw-r--r--source/blender/blenlib/intern/rct.c9
-rw-r--r--source/blender/blenlib/intern/scanfill.c9
-rw-r--r--source/blender/blenlib/intern/storage.c13
-rw-r--r--source/blender/blenlib/intern/time.c9
-rw-r--r--source/blender/blenlib/intern/util.c115
-rw-r--r--source/blender/blenlib/intern/vectorops.c9
-rw-r--r--source/blender/blenlib/intern/winstuff.c9
-rw-r--r--source/blender/blenloader/BLO_genfile.h9
-rw-r--r--source/blender/blenloader/BLO_readfile.h9
-rw-r--r--source/blender/blenloader/BLO_soundfile.h9
-rw-r--r--source/blender/blenloader/BLO_sys_types.h9
-rw-r--r--source/blender/blenloader/BLO_undofile.h9
-rw-r--r--source/blender/blenloader/BLO_writefile.h9
-rw-r--r--source/blender/blenloader/CMakeLists.txt9
-rw-r--r--source/blender/blenloader/Makefile9
-rw-r--r--source/blender/blenloader/intern/Makefile9
-rw-r--r--source/blender/blenloader/intern/genfile.c9
-rw-r--r--source/blender/blenloader/intern/genfile.h9
-rw-r--r--source/blender/blenloader/intern/readblenentry.c9
-rw-r--r--source/blender/blenloader/intern/readfile.c85
-rw-r--r--source/blender/blenloader/intern/readfile.h9
-rw-r--r--source/blender/blenloader/intern/undofile.c9
-rw-r--r--source/blender/blenloader/intern/writefile.c26
-rw-r--r--source/blender/blenpluginapi/CMakeLists.txt9
-rw-r--r--source/blender/blenpluginapi/Makefile9
-rw-r--r--source/blender/blenpluginapi/documentation.h9
-rw-r--r--source/blender/blenpluginapi/externdef.h5
-rw-r--r--source/blender/blenpluginapi/iff.h64
-rw-r--r--source/blender/blenpluginapi/intern/Makefile9
-rw-r--r--source/blender/blenpluginapi/intern/pluginapi.c9
-rw-r--r--source/blender/blenpluginapi/plugin.h19
-rw-r--r--source/blender/ftfont/CMakeLists.txt9
-rw-r--r--source/blender/ftfont/FTF_Api.h9
-rw-r--r--source/blender/ftfont/FTF_Settings.h9
-rw-r--r--source/blender/ftfont/Makefile9
-rw-r--r--source/blender/ftfont/intern/FTF_Api.cpp9
-rw-r--r--source/blender/ftfont/intern/FTF_TTFont.cpp9
-rw-r--r--source/blender/ftfont/intern/FTF_TTFont.h9
-rw-r--r--source/blender/ftfont/intern/Makefile9
-rw-r--r--source/blender/imbuf/CMakeLists.txt9
-rw-r--r--source/blender/imbuf/IMB_imbuf.h9
-rw-r--r--source/blender/imbuf/IMB_imbuf_types.h9
-rw-r--r--source/blender/imbuf/Makefile9
-rw-r--r--source/blender/imbuf/intern/IMB_allocimbuf.h9
-rw-r--r--source/blender/imbuf/intern/IMB_amiga.h9
-rw-r--r--source/blender/imbuf/intern/IMB_anim.h9
-rw-r--r--source/blender/imbuf/intern/IMB_bitplanes.h9
-rw-r--r--source/blender/imbuf/intern/IMB_bmp.h9
-rw-r--r--source/blender/imbuf/intern/IMB_cmap.h9
-rw-r--r--source/blender/imbuf/intern/IMB_divers.h9
-rw-r--r--source/blender/imbuf/intern/IMB_filter.h9
-rw-r--r--source/blender/imbuf/intern/IMB_ham.h9
-rw-r--r--source/blender/imbuf/intern/IMB_hamx.h9
-rw-r--r--source/blender/imbuf/intern/IMB_iff.h9
-rw-r--r--source/blender/imbuf/intern/IMB_iris.h9
-rw-r--r--source/blender/imbuf/intern/IMB_jpeg.h9
-rw-r--r--source/blender/imbuf/intern/IMB_png.h9
-rw-r--r--source/blender/imbuf/intern/IMB_targa.h9
-rw-r--r--source/blender/imbuf/intern/IMB_tiff.h9
-rw-r--r--source/blender/imbuf/intern/Makefile9
-rw-r--r--source/blender/imbuf/intern/allocimbuf.c9
-rw-r--r--source/blender/imbuf/intern/amiga.c9
-rw-r--r--source/blender/imbuf/intern/anim.c48
-rw-r--r--source/blender/imbuf/intern/anim5.c9
-rw-r--r--source/blender/imbuf/intern/antialias.c9
-rw-r--r--source/blender/imbuf/intern/bitplanes.c9
-rw-r--r--source/blender/imbuf/intern/bmp.c9
-rw-r--r--source/blender/imbuf/intern/cineon/CMakeLists.txt9
-rw-r--r--source/blender/imbuf/intern/cineon/Makefile9
-rw-r--r--source/blender/imbuf/intern/cineon/cineon_dpx.c8
-rw-r--r--source/blender/imbuf/intern/cmap.c9
-rw-r--r--source/blender/imbuf/intern/cspace.c9
-rw-r--r--source/blender/imbuf/intern/data.c9
-rw-r--r--source/blender/imbuf/intern/dds/BlockDXT.cpp51
-rw-r--r--source/blender/imbuf/intern/dds/BlockDXT.h67
-rw-r--r--source/blender/imbuf/intern/dds/Color.h9
-rw-r--r--source/blender/imbuf/intern/dds/ColorBlock.cpp24
-rw-r--r--source/blender/imbuf/intern/dds/ColorBlock.h11
-rw-r--r--source/blender/imbuf/intern/dds/Common.h9
-rw-r--r--source/blender/imbuf/intern/dds/DirectDrawSurface.cpp22
-rw-r--r--source/blender/imbuf/intern/dds/DirectDrawSurface.h9
-rw-r--r--source/blender/imbuf/intern/dds/Image.cpp9
-rw-r--r--source/blender/imbuf/intern/dds/Image.h9
-rw-r--r--source/blender/imbuf/intern/dds/Makefile9
-rw-r--r--source/blender/imbuf/intern/dds/PixelFormat.h9
-rw-r--r--source/blender/imbuf/intern/dds/Stream.cpp9
-rw-r--r--source/blender/imbuf/intern/dds/Stream.h9
-rw-r--r--source/blender/imbuf/intern/dds/dds_api.cpp9
-rw-r--r--source/blender/imbuf/intern/dds/dds_api.h9
-rw-r--r--source/blender/imbuf/intern/dither.c9
-rw-r--r--source/blender/imbuf/intern/divers.c9
-rw-r--r--source/blender/imbuf/intern/dynlibtiff.c9
-rw-r--r--source/blender/imbuf/intern/dynlibtiff.h9
-rw-r--r--source/blender/imbuf/intern/filter.c58
-rwxr-xr-xsource/blender/imbuf/intern/gen_dynlibtiff.py18
-rw-r--r--source/blender/imbuf/intern/ham.c9
-rw-r--r--source/blender/imbuf/intern/hamx.c9
-rw-r--r--source/blender/imbuf/intern/iff.c9
-rw-r--r--source/blender/imbuf/intern/imageprocess.c9
-rw-r--r--source/blender/imbuf/intern/imbuf.h9
-rw-r--r--source/blender/imbuf/intern/imbuf_patch.h9
-rw-r--r--source/blender/imbuf/intern/iris.c9
-rw-r--r--source/blender/imbuf/intern/jpeg.c9
-rw-r--r--source/blender/imbuf/intern/matrix.h9
-rw-r--r--source/blender/imbuf/intern/openexr/CMakeLists.txt9
-rw-r--r--source/blender/imbuf/intern/openexr/Makefile9
-rw-r--r--source/blender/imbuf/intern/png.c9
-rw-r--r--source/blender/imbuf/intern/radiance_hdr.c4
-rw-r--r--source/blender/imbuf/intern/readimage.c9
-rw-r--r--source/blender/imbuf/intern/rectop.c9
-rw-r--r--source/blender/imbuf/intern/rotate.c9
-rw-r--r--source/blender/imbuf/intern/scaling.c13
-rw-r--r--source/blender/imbuf/intern/targa.c9
-rw-r--r--source/blender/imbuf/intern/tiff.c9
-rw-r--r--source/blender/imbuf/intern/util.c9
-rw-r--r--source/blender/imbuf/intern/writeimage.c9
-rw-r--r--source/blender/include/BDR_drawaction.h9
-rw-r--r--source/blender/include/BDR_drawmesh.h9
-rw-r--r--source/blender/include/BDR_drawobject.h9
-rw-r--r--source/blender/include/BDR_editcurve.h9
-rw-r--r--source/blender/include/BDR_editface.h11
-rw-r--r--source/blender/include/BDR_editmball.h9
-rw-r--r--source/blender/include/BDR_editobject.h9
-rw-r--r--source/blender/include/BDR_imagepaint.h9
-rw-r--r--source/blender/include/BDR_unwrapper.h9
-rw-r--r--source/blender/include/BDR_vpaint.h9
-rw-r--r--source/blender/include/BIF_butspace.h9
-rw-r--r--source/blender/include/BIF_cursors.h9
-rw-r--r--source/blender/include/BIF_drawimage.h10
-rw-r--r--source/blender/include/BIF_drawoops.h9
-rw-r--r--source/blender/include/BIF_drawscene.h9
-rw-r--r--source/blender/include/BIF_drawscript.h9
-rw-r--r--source/blender/include/BIF_drawseq.h9
-rw-r--r--source/blender/include/BIF_drawtext.h9
-rw-r--r--source/blender/include/BIF_editaction.h9
-rw-r--r--source/blender/include/BIF_editarmature.h10
-rw-r--r--source/blender/include/BIF_editconstraint.h9
-rw-r--r--source/blender/include/BIF_editdeform.h9
-rw-r--r--source/blender/include/BIF_editfont.h9
-rw-r--r--source/blender/include/BIF_editgroup.h9
-rw-r--r--source/blender/include/BIF_editkey.h9
-rw-r--r--source/blender/include/BIF_editlattice.h9
-rw-r--r--source/blender/include/BIF_editmesh.h13
-rw-r--r--source/blender/include/BIF_editmode_undo.h9
-rw-r--r--source/blender/include/BIF_editnla.h9
-rw-r--r--source/blender/include/BIF_editoops.h9
-rw-r--r--source/blender/include/BIF_editparticle.h4
-rw-r--r--source/blender/include/BIF_editsca.h9
-rw-r--r--source/blender/include/BIF_editseq.h9
-rw-r--r--source/blender/include/BIF_editsima.h16
-rw-r--r--source/blender/include/BIF_editsound.h9
-rw-r--r--source/blender/include/BIF_editview.h9
-rw-r--r--source/blender/include/BIF_fsmenu.h9
-rw-r--r--source/blender/include/BIF_gl.h21
-rw-r--r--source/blender/include/BIF_glutil.h9
-rw-r--r--source/blender/include/BIF_graphics.h9
-rw-r--r--source/blender/include/BIF_imasel.h9
-rw-r--r--source/blender/include/BIF_interface.h9
-rw-r--r--source/blender/include/BIF_interface_icons.h9
-rw-r--r--source/blender/include/BIF_keyval.h9
-rw-r--r--source/blender/include/BIF_language.h9
-rw-r--r--source/blender/include/BIF_mainqueue.h9
-rw-r--r--source/blender/include/BIF_meshlaplacian.h9
-rw-r--r--source/blender/include/BIF_meshtools.h9
-rw-r--r--source/blender/include/BIF_mywindow.h9
-rw-r--r--source/blender/include/BIF_oops.h9
-rw-r--r--source/blender/include/BIF_outliner.h9
-rw-r--r--source/blender/include/BIF_poselib.h9
-rw-r--r--source/blender/include/BIF_poseobject.h9
-rw-r--r--source/blender/include/BIF_previewrender.h9
-rw-r--r--source/blender/include/BIF_renderwin.h9
-rw-r--r--source/blender/include/BIF_resources.h9
-rw-r--r--source/blender/include/BIF_scrarea.h9
-rw-r--r--source/blender/include/BIF_screen.h9
-rw-r--r--source/blender/include/BIF_space.h9
-rw-r--r--source/blender/include/BIF_spacetypes.h9
-rw-r--r--source/blender/include/BIF_tbcallback.h9
-rw-r--r--source/blender/include/BIF_toets.h9
-rw-r--r--source/blender/include/BIF_toolbox.h11
-rw-r--r--source/blender/include/BIF_transform.h9
-rw-r--r--source/blender/include/BIF_usiblender.h9
-rw-r--r--source/blender/include/BIF_verse.h9
-rw-r--r--source/blender/include/BIF_writeavicodec.h9
-rw-r--r--source/blender/include/BIF_writeimage.h9
-rw-r--r--source/blender/include/BIF_writemovie.h9
-rw-r--r--source/blender/include/BSE_drawimasel.h9
-rw-r--r--source/blender/include/BSE_drawipo.h9
-rw-r--r--source/blender/include/BSE_drawnla.h9
-rw-r--r--source/blender/include/BSE_drawoops.h9
-rw-r--r--source/blender/include/BSE_drawview.h9
-rw-r--r--source/blender/include/BSE_edit.h9
-rw-r--r--source/blender/include/BSE_editaction_types.h9
-rw-r--r--source/blender/include/BSE_editipo.h10
-rw-r--r--source/blender/include/BSE_editipo_types.h9
-rw-r--r--source/blender/include/BSE_editnla_types.h9
-rw-r--r--source/blender/include/BSE_filesel.h9
-rw-r--r--source/blender/include/BSE_headerbuttons.h9
-rw-r--r--source/blender/include/BSE_seqaudio.h9
-rw-r--r--source/blender/include/BSE_seqeffects.h9
-rw-r--r--source/blender/include/BSE_sequence.h9
-rw-r--r--source/blender/include/BSE_time.h7
-rw-r--r--source/blender/include/BSE_trans_types.h9
-rw-r--r--source/blender/include/BSE_types.h9
-rw-r--r--source/blender/include/BSE_view.h9
-rw-r--r--source/blender/include/LOD_DependKludge.h9
-rw-r--r--source/blender/include/blendef.h10
-rw-r--r--source/blender/include/butspace.h17
-rw-r--r--source/blender/include/datatoc.h9
-rw-r--r--source/blender/include/editlattice_ext.h9
-rw-r--r--source/blender/include/editmesh.h9
-rw-r--r--source/blender/include/interface.h9
-rw-r--r--source/blender/include/keyed_functions.h9
-rw-r--r--source/blender/include/license_key.h9
-rw-r--r--source/blender/include/mydevice.h9
-rw-r--r--source/blender/include/nla.h9
-rw-r--r--source/blender/include/objfnt.h9
-rw-r--r--source/blender/include/particle_effect.h9
-rw-r--r--source/blender/include/playanim_ext.h9
-rw-r--r--source/blender/include/transform.h22
-rw-r--r--source/blender/makesdna/CMakeLists.txt9
-rw-r--r--source/blender/makesdna/DNA_ID.h9
-rw-r--r--source/blender/makesdna/DNA_action_types.h4
-rw-r--r--source/blender/makesdna/DNA_actuator_types.h20
-rw-r--r--source/blender/makesdna/DNA_armature_types.h9
-rw-r--r--source/blender/makesdna/DNA_camera_types.h9
-rw-r--r--source/blender/makesdna/DNA_cloth_types.h34
-rw-r--r--source/blender/makesdna/DNA_constraint_types.h9
-rw-r--r--source/blender/makesdna/DNA_controller_types.h9
-rw-r--r--source/blender/makesdna/DNA_curve_types.h9
-rw-r--r--source/blender/makesdna/DNA_customdata_types.h9
-rw-r--r--source/blender/makesdna/DNA_documentation.h9
-rw-r--r--source/blender/makesdna/DNA_effect_types.h9
-rw-r--r--source/blender/makesdna/DNA_fileglobal_types.h9
-rw-r--r--source/blender/makesdna/DNA_group_types.h9
-rw-r--r--source/blender/makesdna/DNA_image_types.h9
-rw-r--r--source/blender/makesdna/DNA_ipo_types.h9
-rw-r--r--source/blender/makesdna/DNA_key_types.h9
-rw-r--r--source/blender/makesdna/DNA_lamp_types.h9
-rw-r--r--source/blender/makesdna/DNA_lattice_types.h9
-rw-r--r--source/blender/makesdna/DNA_listBase.h9
-rw-r--r--source/blender/makesdna/DNA_material_types.h10
-rw-r--r--source/blender/makesdna/DNA_mesh_types.h9
-rw-r--r--source/blender/makesdna/DNA_meshdata_types.h9
-rw-r--r--source/blender/makesdna/DNA_meta_types.h9
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h1
-rw-r--r--source/blender/makesdna/DNA_nla_types.h9
-rw-r--r--source/blender/makesdna/DNA_object_fluidsim.h9
-rw-r--r--source/blender/makesdna/DNA_object_force.h40
-rw-r--r--source/blender/makesdna/DNA_object_types.h9
-rw-r--r--source/blender/makesdna/DNA_oops_types.h9
-rw-r--r--source/blender/makesdna/DNA_packedFile_types.h9
-rw-r--r--source/blender/makesdna/DNA_particle_types.h18
-rw-r--r--source/blender/makesdna/DNA_property_types.h9
-rw-r--r--source/blender/makesdna/DNA_radio_types.h9
-rw-r--r--source/blender/makesdna/DNA_scene_types.h39
-rw-r--r--source/blender/makesdna/DNA_screen_types.h9
-rw-r--r--source/blender/makesdna/DNA_scriptlink_types.h9
-rw-r--r--source/blender/makesdna/DNA_sdna_types.h9
-rw-r--r--source/blender/makesdna/DNA_sensor_types.h9
-rw-r--r--source/blender/makesdna/DNA_sequence_types.h9
-rw-r--r--source/blender/makesdna/DNA_sound_types.h9
-rw-r--r--source/blender/makesdna/DNA_space_types.h25
-rw-r--r--source/blender/makesdna/DNA_text_types.h9
-rw-r--r--source/blender/makesdna/DNA_texture_types.h10
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h9
-rw-r--r--source/blender/makesdna/DNA_vec_types.h9
-rw-r--r--source/blender/makesdna/DNA_vfont_types.h9
-rw-r--r--source/blender/makesdna/DNA_view2d_types.h9
-rw-r--r--source/blender/makesdna/DNA_view3d_types.h21
-rw-r--r--source/blender/makesdna/DNA_wave_types.h9
-rw-r--r--source/blender/makesdna/DNA_world_types.h9
-rw-r--r--source/blender/makesdna/Makefile9
-rw-r--r--source/blender/makesdna/intern/CMakeLists.txt9
-rw-r--r--source/blender/makesdna/intern/Makefile9
-rw-r--r--source/blender/makesdna/intern/makesdna.c9
-rw-r--r--source/blender/nodes/CMakeLists.txt9
-rw-r--r--source/blender/nodes/Makefile9
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_defocus.c13
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_gamma.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_texture.c11
-rw-r--r--source/blender/nodes/intern/CMP_nodes/Makefile9
-rw-r--r--source/blender/nodes/intern/CMP_util.c121
-rw-r--r--source/blender/nodes/intern/CMP_util.h2
-rw-r--r--source/blender/nodes/intern/Makefile9
-rw-r--r--source/blender/nodes/intern/SHD_nodes/Makefile9
-rw-r--r--source/blender/python/BPY_extern.h9
-rw-r--r--source/blender/python/BPY_interface.c13
-rw-r--r--source/blender/python/BPY_menus.c37
-rw-r--r--source/blender/python/BPY_menus.h9
-rw-r--r--source/blender/python/CMakeLists.txt9
-rw-r--r--source/blender/python/Makefile9
-rw-r--r--source/blender/python/api2_2x/Armature.c13
-rw-r--r--source/blender/python/api2_2x/Armature.h11
-rw-r--r--source/blender/python/api2_2x/BGL.c9
-rw-r--r--source/blender/python/api2_2x/BGL.h11
-rw-r--r--source/blender/python/api2_2x/BezTriple.c11
-rw-r--r--source/blender/python/api2_2x/BezTriple.h11
-rw-r--r--source/blender/python/api2_2x/Blender.c53
-rw-r--r--source/blender/python/api2_2x/Blender.h11
-rw-r--r--source/blender/python/api2_2x/Bone.c11
-rw-r--r--source/blender/python/api2_2x/Bone.h11
-rw-r--r--source/blender/python/api2_2x/Camera.c22
-rw-r--r--source/blender/python/api2_2x/Camera.h11
-rw-r--r--source/blender/python/api2_2x/Constraint.c9
-rw-r--r--source/blender/python/api2_2x/Constraint.h11
-rw-r--r--source/blender/python/api2_2x/CurNurb.c17
-rw-r--r--source/blender/python/api2_2x/CurNurb.h11
-rw-r--r--source/blender/python/api2_2x/Curve.c11
-rw-r--r--source/blender/python/api2_2x/Curve.h11
-rw-r--r--source/blender/python/api2_2x/Draw.c15
-rw-r--r--source/blender/python/api2_2x/Draw.h11
-rw-r--r--source/blender/python/api2_2x/EXPP_interface.c11
-rw-r--r--source/blender/python/api2_2x/EXPP_interface.h11
-rw-r--r--source/blender/python/api2_2x/Effect.c9
-rw-r--r--source/blender/python/api2_2x/Effect.h11
-rw-r--r--source/blender/python/api2_2x/Font.c9
-rw-r--r--source/blender/python/api2_2x/Font.h11
-rw-r--r--source/blender/python/api2_2x/Geometry.c11
-rw-r--r--source/blender/python/api2_2x/Geometry.h11
-rw-r--r--source/blender/python/api2_2x/Group.c9
-rw-r--r--source/blender/python/api2_2x/Group.h11
-rw-r--r--source/blender/python/api2_2x/IDProp.c11
-rw-r--r--source/blender/python/api2_2x/IDProp.h9
-rw-r--r--source/blender/python/api2_2x/Image.c27
-rw-r--r--source/blender/python/api2_2x/Image.h11
-rw-r--r--source/blender/python/api2_2x/Ipo.c11
-rw-r--r--source/blender/python/api2_2x/Ipo.h11
-rw-r--r--source/blender/python/api2_2x/Ipocurve.c18
-rw-r--r--source/blender/python/api2_2x/Ipocurve.h11
-rw-r--r--source/blender/python/api2_2x/Key.c11
-rw-r--r--source/blender/python/api2_2x/Key.h11
-rw-r--r--source/blender/python/api2_2x/Lamp.c14
-rw-r--r--source/blender/python/api2_2x/Lamp.h11
-rw-r--r--source/blender/python/api2_2x/Lattice.c13
-rw-r--r--source/blender/python/api2_2x/Lattice.h11
-rw-r--r--source/blender/python/api2_2x/Library.c16
-rw-r--r--source/blender/python/api2_2x/Library.h11
-rw-r--r--source/blender/python/api2_2x/MTex.c14
-rw-r--r--source/blender/python/api2_2x/MTex.h11
-rw-r--r--source/blender/python/api2_2x/Makefile9
-rw-r--r--source/blender/python/api2_2x/Material.c17
-rw-r--r--source/blender/python/api2_2x/Material.h11
-rw-r--r--source/blender/python/api2_2x/Mathutils.c9
-rw-r--r--source/blender/python/api2_2x/Mathutils.h11
-rw-r--r--source/blender/python/api2_2x/Mesh.c19
-rw-r--r--source/blender/python/api2_2x/Mesh.h11
-rw-r--r--source/blender/python/api2_2x/Metaball.c11
-rw-r--r--source/blender/python/api2_2x/Metaball.h11
-rw-r--r--source/blender/python/api2_2x/Modifier.c9
-rw-r--r--source/blender/python/api2_2x/Modifier.h11
-rw-r--r--source/blender/python/api2_2x/NLA.c9
-rw-r--r--source/blender/python/api2_2x/NLA.h11
-rw-r--r--source/blender/python/api2_2x/NMesh.c30
-rw-r--r--source/blender/python/api2_2x/NMesh.h11
-rw-r--r--source/blender/python/api2_2x/Node.c15
-rw-r--r--source/blender/python/api2_2x/Node.h9
-rw-r--r--source/blender/python/api2_2x/Noise.c11
-rw-r--r--source/blender/python/api2_2x/Object.c237
-rw-r--r--source/blender/python/api2_2x/Object.h11
-rw-r--r--source/blender/python/api2_2x/Particle.c11
-rw-r--r--source/blender/python/api2_2x/Particle.h11
-rw-r--r--source/blender/python/api2_2x/Pose.c21
-rw-r--r--source/blender/python/api2_2x/Pose.h9
-rw-r--r--source/blender/python/api2_2x/Registry.c11
-rw-r--r--source/blender/python/api2_2x/Registry.h11
-rw-r--r--source/blender/python/api2_2x/Scene.c12
-rw-r--r--source/blender/python/api2_2x/Scene.h11
-rw-r--r--source/blender/python/api2_2x/Sound.c11
-rw-r--r--source/blender/python/api2_2x/Sound.h11
-rw-r--r--source/blender/python/api2_2x/SurfNurb.c9
-rw-r--r--source/blender/python/api2_2x/SurfNurb.h11
-rw-r--r--source/blender/python/api2_2x/Sys.c11
-rw-r--r--source/blender/python/api2_2x/Sys.h11
-rw-r--r--source/blender/python/api2_2x/Text.c9
-rw-r--r--source/blender/python/api2_2x/Text.h11
-rw-r--r--source/blender/python/api2_2x/Text3d.c16
-rw-r--r--source/blender/python/api2_2x/Text3d.h11
-rw-r--r--source/blender/python/api2_2x/Texture.c31
-rw-r--r--source/blender/python/api2_2x/Texture.h11
-rw-r--r--source/blender/python/api2_2x/Types.c11
-rw-r--r--source/blender/python/api2_2x/Types.h11
-rw-r--r--source/blender/python/api2_2x/Window.c9
-rw-r--r--source/blender/python/api2_2x/Window.h9
-rw-r--r--source/blender/python/api2_2x/World.c11
-rw-r--r--source/blender/python/api2_2x/World.h11
-rw-r--r--source/blender/python/api2_2x/bpy.c11
-rw-r--r--source/blender/python/api2_2x/bpy.h11
-rw-r--r--source/blender/python/api2_2x/bpy_config.c20
-rw-r--r--source/blender/python/api2_2x/bpy_config.h11
-rw-r--r--source/blender/python/api2_2x/bpy_data.c9
-rw-r--r--source/blender/python/api2_2x/bpy_data.h9
-rw-r--r--source/blender/python/api2_2x/bpy_types.h11
-rw-r--r--source/blender/python/api2_2x/charRGBA.c11
-rw-r--r--source/blender/python/api2_2x/charRGBA.h11
-rw-r--r--source/blender/python/api2_2x/constant.c11
-rw-r--r--source/blender/python/api2_2x/constant.h11
-rw-r--r--source/blender/python/api2_2x/doc/Constraint.py9
-rw-r--r--source/blender/python/api2_2x/doc/Mesh.py2
-rw-r--r--source/blender/python/api2_2x/doc/Object.py10
-rw-r--r--source/blender/python/api2_2x/doc/Render.py4
-rw-r--r--source/blender/python/api2_2x/doc/Texture.py1
-rw-r--r--source/blender/python/api2_2x/euler.c11
-rw-r--r--source/blender/python/api2_2x/euler.h11
-rw-r--r--source/blender/python/api2_2x/gen_library.h9
-rw-r--r--source/blender/python/api2_2x/gen_utils.c9
-rw-r--r--source/blender/python/api2_2x/gen_utils.h11
-rw-r--r--source/blender/python/api2_2x/logic.c11
-rw-r--r--source/blender/python/api2_2x/logic.h11
-rw-r--r--source/blender/python/api2_2x/matrix.c11
-rw-r--r--source/blender/python/api2_2x/matrix.h11
-rw-r--r--source/blender/python/api2_2x/meshPrimitive.c11
-rw-r--r--source/blender/python/api2_2x/meshPrimitive.h11
-rw-r--r--source/blender/python/api2_2x/modules.h11
-rw-r--r--source/blender/python/api2_2x/point.c11
-rw-r--r--source/blender/python/api2_2x/point.h11
-rw-r--r--source/blender/python/api2_2x/quat.c9
-rw-r--r--source/blender/python/api2_2x/quat.h11
-rw-r--r--source/blender/python/api2_2x/rgbTuple.c11
-rw-r--r--source/blender/python/api2_2x/rgbTuple.h11
-rw-r--r--source/blender/python/api2_2x/sceneRadio.c11
-rw-r--r--source/blender/python/api2_2x/sceneRadio.h11
-rw-r--r--source/blender/python/api2_2x/sceneRender.c95
-rw-r--r--source/blender/python/api2_2x/sceneRender.h9
-rw-r--r--source/blender/python/api2_2x/sceneSequence.c9
-rw-r--r--source/blender/python/api2_2x/sceneSequence.h11
-rw-r--r--source/blender/python/api2_2x/sceneTimeLine.c11
-rw-r--r--source/blender/python/api2_2x/sceneTimeLine.h11
-rw-r--r--source/blender/python/api2_2x/vector.c9
-rw-r--r--source/blender/python/api2_2x/vector.h11
-rw-r--r--source/blender/python/api2_2x/windowTheme.c9
-rw-r--r--source/blender/python/api2_2x/windowTheme.h11
-rw-r--r--source/blender/quicktime/CMakeLists.txt9
-rw-r--r--source/blender/quicktime/Makefile9
-rw-r--r--source/blender/quicktime/apple/Makefile9
-rw-r--r--source/blender/quicktime/apple/quicktime_export.c23
-rw-r--r--source/blender/quicktime/apple/quicktime_import.c9
-rw-r--r--source/blender/quicktime/quicktime_export.h9
-rw-r--r--source/blender/quicktime/quicktime_import.h9
-rw-r--r--source/blender/radiosity/CMakeLists.txt9
-rw-r--r--source/blender/radiosity/Makefile9
-rw-r--r--source/blender/radiosity/extern/include/radio.h9
-rw-r--r--source/blender/radiosity/extern/include/radio_types.h9
-rw-r--r--source/blender/radiosity/intern/Makefile9
-rw-r--r--source/blender/radiosity/intern/source/Makefile9
-rw-r--r--source/blender/radiosity/intern/source/raddisplay.c9
-rw-r--r--source/blender/radiosity/intern/source/radfactors.c9
-rw-r--r--source/blender/radiosity/intern/source/radio.c9
-rw-r--r--source/blender/radiosity/intern/source/radnode.c9
-rw-r--r--source/blender/radiosity/intern/source/radpostprocess.c9
-rw-r--r--source/blender/radiosity/intern/source/radpreprocess.c9
-rw-r--r--source/blender/radiosity/intern/source/radrender.c9
-rw-r--r--source/blender/readblenfile/BLO_readblenfile.h9
-rw-r--r--source/blender/readblenfile/CMakeLists.txt9
-rw-r--r--source/blender/readblenfile/Makefile9
-rw-r--r--source/blender/readblenfile/intern/BLO_readblenfile.c9
-rw-r--r--source/blender/readblenfile/intern/Makefile9
-rw-r--r--source/blender/readblenfile/stub/BLO_readblenfileSTUB.c9
-rw-r--r--source/blender/readblenfile/stub/Makefile9
-rw-r--r--source/blender/readblenfile/test/Makefile9
-rw-r--r--source/blender/readblenfile/test/test.c9
-rw-r--r--source/blender/render/CMakeLists.txt9
-rw-r--r--source/blender/render/Makefile9
-rw-r--r--source/blender/render/intern/Makefile9
-rw-r--r--source/blender/render/intern/include/envmap.h9
-rw-r--r--source/blender/render/intern/include/gammaCorrectionTables.h9
-rw-r--r--source/blender/render/intern/include/initrender.h9
-rw-r--r--source/blender/render/intern/include/pixelshading.h2
-rw-r--r--source/blender/render/intern/include/render_types.h5
-rw-r--r--source/blender/render/intern/include/rendercore.h13
-rw-r--r--source/blender/render/intern/include/shadbuf.h9
-rw-r--r--source/blender/render/intern/include/strand.h9
-rw-r--r--source/blender/render/intern/include/texture.h9
-rw-r--r--source/blender/render/intern/source/Makefile9
-rw-r--r--source/blender/render/intern/source/convertblender.c59
-rw-r--r--source/blender/render/intern/source/gammaCorrectionTables.c9
-rw-r--r--source/blender/render/intern/source/imagetexture.c5
-rw-r--r--source/blender/render/intern/source/initrender.c6
-rw-r--r--source/blender/render/intern/source/occlusion.c5
-rw-r--r--source/blender/render/intern/source/pipeline.c2
-rw-r--r--source/blender/render/intern/source/pixelshading.c88
-rw-r--r--source/blender/render/intern/source/rayshade.c86
-rw-r--r--source/blender/render/intern/source/raytrace.c7
-rw-r--r--source/blender/render/intern/source/rendercore.c114
-rw-r--r--source/blender/render/intern/source/shadeinput.c10
-rw-r--r--source/blender/render/intern/source/shadeoutput.c32
-rw-r--r--source/blender/render/intern/source/strand.c2
-rw-r--r--source/blender/render/intern/source/texture.c52
-rw-r--r--source/blender/src/Bfont.c9
-rw-r--r--source/blender/src/CMakeLists.txt9
-rw-r--r--source/blender/src/Makefile9
-rw-r--r--source/blender/src/booleanops.c13
-rw-r--r--source/blender/src/booleanops_mesh.c9
-rw-r--r--source/blender/src/butspace.c9
-rw-r--r--source/blender/src/buttons_editing.c117
-rw-r--r--source/blender/src/buttons_logic.c64
-rw-r--r--source/blender/src/buttons_object.c1203
-rw-r--r--source/blender/src/buttons_scene.c62
-rw-r--r--source/blender/src/buttons_script.c9
-rw-r--r--source/blender/src/buttons_shading.c71
-rw-r--r--source/blender/src/cmap.tga.c9
-rw-r--r--source/blender/src/cmovie.tga.c9
-rw-r--r--source/blender/src/cre/license.jpeg.c9
-rw-r--r--source/blender/src/cre/license_key.c9
-rw-r--r--source/blender/src/cursors.c9
-rw-r--r--source/blender/src/drawaction.c44
-rw-r--r--source/blender/src/drawdeps.c13
-rw-r--r--source/blender/src/drawimage.c248
-rw-r--r--source/blender/src/drawimasel.c11
-rw-r--r--source/blender/src/drawipo.c9
-rw-r--r--source/blender/src/drawmesh.c9
-rw-r--r--source/blender/src/drawnla.c9
-rw-r--r--source/blender/src/drawobject.c32
-rw-r--r--source/blender/src/drawoops.c9
-rw-r--r--source/blender/src/drawscene.c11
-rw-r--r--source/blender/src/drawscript.c25
-rw-r--r--source/blender/src/drawseq.c37
-rw-r--r--source/blender/src/drawsound.c9
-rw-r--r--source/blender/src/drawtext.c9
-rw-r--r--source/blender/src/drawview.c59
-rw-r--r--source/blender/src/edit.c24
-rw-r--r--source/blender/src/editaction.c45
-rw-r--r--source/blender/src/editarmature.c621
-rw-r--r--source/blender/src/editconstraint.c9
-rw-r--r--source/blender/src/editcurve.c11
-rw-r--r--source/blender/src/editdeform.c9
-rw-r--r--source/blender/src/editface.c100
-rw-r--r--source/blender/src/editfont.c9
-rw-r--r--source/blender/src/editgroup.c9
-rw-r--r--source/blender/src/editimasel.c39
-rw-r--r--source/blender/src/editipo.c76
-rw-r--r--source/blender/src/editipo_mods.c21
-rw-r--r--source/blender/src/editkey.c9
-rw-r--r--source/blender/src/editlattice.c9
-rw-r--r--source/blender/src/editmball.c9
-rw-r--r--source/blender/src/editmesh.c323
-rw-r--r--source/blender/src/editmesh_add.c9
-rw-r--r--source/blender/src/editmesh_lib.c62
-rw-r--r--source/blender/src/editmesh_loop.c9
-rw-r--r--source/blender/src/editmesh_mods.c131
-rw-r--r--source/blender/src/editmesh_tools.c40
-rw-r--r--source/blender/src/editmode_undo.c9
-rw-r--r--source/blender/src/editnla.c2
-rw-r--r--source/blender/src/editnode.c85
-rw-r--r--source/blender/src/editobject.c42
-rw-r--r--source/blender/src/editoops.c9
-rw-r--r--source/blender/src/editparticle.c75
-rw-r--r--source/blender/src/editscreen.c9
-rw-r--r--source/blender/src/editseq.c9
-rw-r--r--source/blender/src/editsima.c153
-rw-r--r--source/blender/src/editsound.c19
-rw-r--r--source/blender/src/editview.c31
-rw-r--r--source/blender/src/eventdebug.c9
-rw-r--r--source/blender/src/filelist.c10
-rw-r--r--source/blender/src/filesel.c56
-rw-r--r--source/blender/src/fluidsim.c17
-rw-r--r--source/blender/src/fsmenu.c9
-rw-r--r--source/blender/src/ghostwinlay.c9
-rw-r--r--source/blender/src/glutil.c46
-rw-r--r--source/blender/src/hddaudio.c9
-rw-r--r--source/blender/src/header_action.c25
-rw-r--r--source/blender/src/header_buttonswin.c9
-rw-r--r--source/blender/src/header_filesel.c9
-rw-r--r--source/blender/src/header_image.c82
-rw-r--r--source/blender/src/header_imasel.c11
-rw-r--r--source/blender/src/header_info.c21
-rw-r--r--source/blender/src/header_ipo.c37
-rw-r--r--source/blender/src/header_nla.c9
-rw-r--r--source/blender/src/header_script.c9
-rw-r--r--source/blender/src/header_seq.c9
-rw-r--r--source/blender/src/header_sound.c9
-rw-r--r--source/blender/src/header_text.c9
-rw-r--r--source/blender/src/header_time.c49
-rw-r--r--source/blender/src/header_view3d.c57
-rw-r--r--source/blender/src/headerbuttons.c31
-rw-r--r--source/blender/src/imagepaint.c9
-rw-r--r--source/blender/src/imasel.c9
-rw-r--r--source/blender/src/interface.c9
-rw-r--r--source/blender/src/interface_draw.c9
-rw-r--r--source/blender/src/interface_icons.c9
-rw-r--r--source/blender/src/interface_panel.c27
-rw-r--r--source/blender/src/keyval.c9
-rw-r--r--source/blender/src/language.c9
-rw-r--r--source/blender/src/lorem.c9
-rw-r--r--source/blender/src/mainqueue.c9
-rw-r--r--source/blender/src/meshlaplacian.c9
-rw-r--r--source/blender/src/meshtools.c9
-rw-r--r--source/blender/src/mywindow.c9
-rw-r--r--source/blender/src/oops.c9
-rw-r--r--source/blender/src/outliner.c6
-rw-r--r--source/blender/src/parametrizer.c22
-rw-r--r--source/blender/src/parametrizer.h4
-rw-r--r--source/blender/src/playanim.c9
-rw-r--r--source/blender/src/poselib.c24
-rw-r--r--source/blender/src/poseobject.c2
-rw-r--r--source/blender/src/previewrender.c9
-rw-r--r--source/blender/src/pub/license_key.c9
-rw-r--r--source/blender/src/renderwin.c33
-rw-r--r--source/blender/src/resources.c15
-rw-r--r--source/blender/src/scrarea.c9
-rw-r--r--source/blender/src/screendump.c9
-rw-r--r--source/blender/src/sculptmode.c62
-rw-r--r--source/blender/src/seqaudio.c9
-rw-r--r--source/blender/src/seqeffects.c273
-rw-r--r--source/blender/src/seqscopes.c9
-rw-r--r--source/blender/src/sequence.c20
-rw-r--r--source/blender/src/space.c80
-rw-r--r--source/blender/src/spacetypes.c9
-rw-r--r--source/blender/src/splash.jpg.c4922
-rw-r--r--source/blender/src/swapbuffers.c9
-rw-r--r--source/blender/src/toets.c57
-rw-r--r--source/blender/src/toolbox.c26
-rw-r--r--source/blender/src/transform.c27
-rw-r--r--source/blender/src/transform_constraints.c14
-rw-r--r--source/blender/src/transform_conversions.c106
-rw-r--r--source/blender/src/transform_generics.c97
-rw-r--r--source/blender/src/transform_manipulator.c9
-rw-r--r--source/blender/src/transform_ndofinput.c9
-rw-r--r--source/blender/src/transform_numinput.c9
-rw-r--r--source/blender/src/transform_orientations.c9
-rw-r--r--source/blender/src/transform_snap.c12
-rw-r--r--source/blender/src/unwrapper.c33
-rw-r--r--source/blender/src/usiblender.c18
-rw-r--r--source/blender/src/verse_common.c9
-rw-r--r--source/blender/src/verse_image.c9
-rw-r--r--source/blender/src/verse_mesh.c9
-rw-r--r--source/blender/src/verse_object.c9
-rw-r--r--source/blender/src/view.c90
-rw-r--r--source/blender/src/vpaint.c26
-rw-r--r--source/blender/src/winlay.h9
-rw-r--r--source/blender/src/writeavicodec.c9
-rw-r--r--source/blender/src/writeimage.c9
-rw-r--r--source/blender/src/writemovie.c9
-rw-r--r--source/blender/verify/BLO_sign_verify_Header.h9
-rw-r--r--source/blender/verify/BLO_signer_info.h9
-rw-r--r--source/blender/verify/BLO_verify.h9
-rw-r--r--source/blender/verify/Makefile9
-rw-r--r--source/blender/verify/intern/BLO_verify.c9
-rw-r--r--source/blender/verify/intern/Makefile9
-rw-r--r--source/blender/yafray/CMakeLists.txt9
-rw-r--r--source/blender/yafray/Makefile9
-rw-r--r--source/blender/yafray/intern/Makefile9
-rw-r--r--source/creator/CMakeLists.txt9
-rw-r--r--source/creator/Makefile9
-rw-r--r--source/creator/SConscript3
-rw-r--r--source/creator/buildinfo.c9
-rw-r--r--source/creator/creator.c59
-rw-r--r--source/darwin/Makefile9
-rw-r--r--source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp38
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderCanvas.h9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderGL.cpp37
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderGL.h9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.cpp9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.h9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp9
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderSystem.h9
-rw-r--r--source/gameengine/BlenderRoutines/Makefile13
-rw-r--r--source/gameengine/BlenderRoutines/SConscript3
-rw-r--r--source/gameengine/CMakeLists.txt9
-rw-r--r--source/gameengine/Converter/BL_ActionActuator.cpp9
-rw-r--r--source/gameengine/Converter/BL_ActionActuator.h9
-rw-r--r--source/gameengine/Converter/BL_ArmatureObject.cpp9
-rw-r--r--source/gameengine/Converter/BL_ArmatureObject.h9
-rw-r--r--source/gameengine/Converter/BL_BlenderDataConversion.cpp9
-rw-r--r--source/gameengine/Converter/BL_BlenderDataConversion.h9
-rw-r--r--source/gameengine/Converter/BL_DeformableGameObject.cpp9
-rw-r--r--source/gameengine/Converter/BL_DeformableGameObject.h9
-rw-r--r--source/gameengine/Converter/BL_MeshDeformer.cpp9
-rw-r--r--source/gameengine/Converter/BL_MeshDeformer.h9
-rw-r--r--source/gameengine/Converter/BL_SkinDeformer.cpp35
-rw-r--r--source/gameengine/Converter/BL_SkinDeformer.h24
-rw-r--r--source/gameengine/Converter/BL_SkinMeshObject.cpp9
-rw-r--r--source/gameengine/Converter/BL_SkinMeshObject.h9
-rw-r--r--source/gameengine/Converter/BlenderWorldInfo.cpp9
-rw-r--r--source/gameengine/Converter/BlenderWorldInfo.h9
-rw-r--r--source/gameengine/Converter/CMakeLists.txt9
-rw-r--r--source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp9
-rw-r--r--source/gameengine/Converter/KX_BlenderScalarInterpolator.h9
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.cpp9
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.h9
-rw-r--r--source/gameengine/Converter/KX_ConvertActuators.cpp43
-rw-r--r--source/gameengine/Converter/KX_ConvertActuators.h9
-rw-r--r--source/gameengine/Converter/KX_ConvertControllers.cpp9
-rw-r--r--source/gameengine/Converter/KX_ConvertControllers.h9
-rw-r--r--source/gameengine/Converter/KX_ConvertProperties.cpp9
-rw-r--r--source/gameengine/Converter/KX_ConvertProperties.h9
-rw-r--r--source/gameengine/Converter/KX_ConvertSensors.cpp9
-rw-r--r--source/gameengine/Converter/KX_ConvertSensors.h9
-rw-r--r--source/gameengine/Converter/KX_IpoConvert.cpp9
-rw-r--r--source/gameengine/Converter/KX_IpoConvert.h9
-rw-r--r--source/gameengine/Converter/Makefile9
-rw-r--r--source/gameengine/Expressions/CMakeLists.txt9
-rw-r--r--source/gameengine/Expressions/EXP_C-Api.cpp9
-rw-r--r--source/gameengine/Expressions/EXP_C-Api.h9
-rw-r--r--source/gameengine/Expressions/IdentifierExpr.cpp9
-rw-r--r--source/gameengine/Expressions/IdentifierExpr.h9
-rw-r--r--source/gameengine/Expressions/KX_HashedPtr.cpp9
-rw-r--r--source/gameengine/Expressions/KX_HashedPtr.h9
-rw-r--r--source/gameengine/Expressions/KX_Python.h9
-rw-r--r--source/gameengine/Expressions/KX_Python_dynamic.h9
-rw-r--r--source/gameengine/Expressions/KX_Python_static.h9
-rw-r--r--source/gameengine/Expressions/Makefile9
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.cpp9
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.h9
-rw-r--r--source/gameengine/Expressions/VoidValue.h9
-rw-r--r--source/gameengine/GameLogic/CMakeLists.txt9
-rw-r--r--source/gameengine/GameLogic/Joystick/Makefile9
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp37
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_Joystick.h29
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h9
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp9
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h9
-rw-r--r--source/gameengine/GameLogic/Makefile9
-rw-r--r--source/gameengine/GameLogic/SCA_ANDController.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_ANDController.h9
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysEventManager.h9
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysSensor.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysSensor.h9
-rw-r--r--source/gameengine/GameLogic/SCA_EventManager.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_EventManager.h9
-rw-r--r--source/gameengine/GameLogic/SCA_ExpressionController.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_ExpressionController.h9
-rw-r--r--source/gameengine/GameLogic/SCA_IActuator.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_IActuator.h9
-rw-r--r--source/gameengine/GameLogic/SCA_IController.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_IController.h9
-rw-r--r--source/gameengine/GameLogic/SCA_IInputDevice.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_IInputDevice.h9
-rw-r--r--source/gameengine/GameLogic/SCA_ILogicBrick.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_ILogicBrick.h9
-rw-r--r--source/gameengine/GameLogic/SCA_IObject.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_IObject.h9
-rw-r--r--source/gameengine/GameLogic/SCA_IScene.cpp31
-rw-r--r--source/gameengine/GameLogic/SCA_IScene.h12
-rw-r--r--source/gameengine/GameLogic/SCA_ISensor.cpp21
-rw-r--r--source/gameengine/GameLogic/SCA_ISensor.h10
-rw-r--r--source/gameengine/GameLogic/SCA_JoystickManager.cpp15
-rw-r--r--source/gameengine/GameLogic/SCA_JoystickManager.h9
-rw-r--r--source/gameengine/GameLogic/SCA_JoystickSensor.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_JoystickSensor.h9
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardManager.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardManager.h9
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardSensor.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardSensor.h9
-rw-r--r--source/gameengine/GameLogic/SCA_LogicManager.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_LogicManager.h9
-rw-r--r--source/gameengine/GameLogic/SCA_MouseManager.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_MouseManager.h9
-rw-r--r--source/gameengine/GameLogic/SCA_MouseSensor.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_MouseSensor.h9
-rw-r--r--source/gameengine/GameLogic/SCA_ORController.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_ORController.h9
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyActuator.cpp17
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyActuator.h11
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyEventManager.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyEventManager.h9
-rw-r--r--source/gameengine/GameLogic/SCA_PropertySensor.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_PropertySensor.h9
-rw-r--r--source/gameengine/GameLogic/SCA_PythonController.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_PythonController.h9
-rw-r--r--source/gameengine/GameLogic/SCA_RandomActuator.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_RandomActuator.h9
-rw-r--r--source/gameengine/GameLogic/SCA_RandomEventManager.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_RandomEventManager.h9
-rw-r--r--source/gameengine/GameLogic/SCA_RandomNumberGenerator.h9
-rw-r--r--source/gameengine/GameLogic/SCA_RandomSensor.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_RandomSensor.h9
-rw-r--r--source/gameengine/GameLogic/SCA_TimeEventManager.cpp9
-rw-r--r--source/gameengine/GameLogic/SCA_TimeEventManager.h9
-rw-r--r--source/gameengine/GamePlayer/CMakeLists.txt9
-rw-r--r--source/gameengine/GamePlayer/Makefile9
-rw-r--r--source/gameengine/GamePlayer/common/CMakeLists.txt9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Canvas.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Canvas.h9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Engine.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Engine.h9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h11
-rw-r--r--source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_MouseDevice.h9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_PolygonMaterial.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_PolygonMaterial.h9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawImage.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawImage.h9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RenderTools.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RenderTools.h9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_System.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_System.h9
-rw-r--r--source/gameengine/GamePlayer/common/Makefile13
-rw-r--r--source/gameengine/GamePlayer/common/bmfont.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/unix/GPU_Canvas.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/unix/GPU_Canvas.h9
-rw-r--r--source/gameengine/GamePlayer/common/unix/GPU_Engine.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/unix/GPU_Engine.h9
-rw-r--r--source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.h9
-rw-r--r--source/gameengine/GamePlayer/common/unix/GPU_PolygonMaterial.h9
-rw-r--r--source/gameengine/GamePlayer/common/unix/GPU_System.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/unix/GPU_System.h9
-rw-r--r--source/gameengine/GamePlayer/common/unix/Makefile9
-rw-r--r--source/gameengine/GamePlayer/common/windows/GPW_Canvas.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/windows/GPW_Canvas.h9
-rw-r--r--source/gameengine/GamePlayer/common/windows/GPW_Engine.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/windows/GPW_Engine.h9
-rw-r--r--source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.h9
-rw-r--r--source/gameengine/GamePlayer/common/windows/GPW_System.cpp9
-rw-r--r--source/gameengine/GamePlayer/common/windows/GPW_System.h9
-rw-r--r--source/gameengine/GamePlayer/common/windows/Makefile9
-rw-r--r--source/gameengine/GamePlayer/ghost/CMakeLists.txt9
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Application.cpp44
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Application.h9
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp9
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Canvas.h9
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp9
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h9
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_System.cpp9
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_System.h9
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_ghost.cpp11
-rw-r--r--source/gameengine/GamePlayer/ghost/Makefile12
-rw-r--r--source/gameengine/GamePlayer/ghost/SConscript4
-rw-r--r--source/gameengine/Ketsji/BL_Shader.cpp7
-rw-r--r--source/gameengine/Ketsji/BL_Texture.cpp113
-rw-r--r--source/gameengine/Ketsji/CMakeLists.txt9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/CMakeLists.txt9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/Makefile9
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.cpp5
-rw-r--r--source/gameengine/Ketsji/KX_CDActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_CDActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_Camera.cpp24
-rw-r--r--source/gameengine/Ketsji/KX_Camera.h27
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_CameraIpoSGController.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_CameraIpoSGController.h9
-rw-r--r--source/gameengine/Ketsji/KX_ClientObjectInfo.h9
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintWrapper.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintWrapper.h9
-rw-r--r--source/gameengine/Ketsji/KX_ConvertPhysicsObject.h9
-rw-r--r--source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_EmptyObject.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_EmptyObject.h9
-rw-r--r--source/gameengine/Ketsji/KX_GameActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_GameActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_GameObject.cpp114
-rw-r--r--source/gameengine/Ketsji/KX_GameObject.h21
-rw-r--r--source/gameengine/Ketsji/KX_IInterpolator.h9
-rw-r--r--source/gameengine/Ketsji/KX_IPOTransform.h9
-rw-r--r--source/gameengine/Ketsji/KX_IPO_SGController.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_IPO_SGController.h9
-rw-r--r--source/gameengine/Ketsji/KX_IPhysicsController.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_IPhysicsController.h9
-rw-r--r--source/gameengine/Ketsji/KX_IScalarInterpolator.h9
-rw-r--r--source/gameengine/Ketsji/KX_ISceneConverter.h9
-rw-r--r--source/gameengine/Ketsji/KX_ISystem.h9
-rw-r--r--source/gameengine/Ketsji/KX_IpoActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_IpoActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_KetsjiEngine.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_KetsjiEngine.h9
-rw-r--r--source/gameengine/Ketsji/KX_Light.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_Light.h9
-rw-r--r--source/gameengine/Ketsji/KX_LightIpoSGController.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_LightIpoSGController.h9
-rw-r--r--source/gameengine/Ketsji/KX_MeshProxy.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_MeshProxy.h9
-rw-r--r--source/gameengine/Ketsji/KX_MotionState.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_MotionState.h9
-rw-r--r--source/gameengine/Ketsji/KX_MouseFocusSensor.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_MouseFocusSensor.h9
-rw-r--r--source/gameengine/Ketsji/KX_NearSensor.cpp24
-rw-r--r--source/gameengine/Ketsji/KX_NearSensor.h10
-rw-r--r--source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_ObColorIpoSGController.h9
-rw-r--r--source/gameengine/Ketsji/KX_ObjectActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_ObjectActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_OdePhysicsController.cpp4
-rw-r--r--source/gameengine/Ketsji/KX_OdePhysicsController.h4
-rw-r--r--source/gameengine/Ketsji/KX_OrientationInterpolator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_OrientationInterpolator.h9
-rw-r--r--source/gameengine/Ketsji/KX_ParentActuator.cpp172
-rw-r--r--source/gameengine/Ketsji/KX_ParentActuator.h86
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsEngineEnums.h9
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h9
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h9
-rw-r--r--source/gameengine/Ketsji/KX_PolygonMaterial.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_PolygonMaterial.h9
-rw-r--r--source/gameengine/Ketsji/KX_PositionInterpolator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_PositionInterpolator.h9
-rw-r--r--source/gameengine/Ketsji/KX_PyConstraintBinding.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_PyConstraintBinding.h9
-rw-r--r--source/gameengine/Ketsji/KX_PyMath.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_PyMath.h9
-rw-r--r--source/gameengine/Ketsji/KX_PythonInit.cpp39
-rw-r--r--source/gameengine/Ketsji/KX_PythonInit.h9
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.cpp36
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.h9
-rw-r--r--source/gameengine/Ketsji/KX_RayCast.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_RayCast.h9
-rw-r--r--source/gameengine/Ketsji/KX_RayEventManager.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_RayEventManager.h9
-rw-r--r--source/gameengine/Ketsji/KX_RaySensor.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_RaySensor.h9
-rw-r--r--source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h10
-rw-r--r--source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_SG_NodeRelationships.h10
-rw-r--r--source/gameengine/Ketsji/KX_ScalarInterpolator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_ScalarInterpolator.h9
-rw-r--r--source/gameengine/Ketsji/KX_ScalingInterpolator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_ScalingInterpolator.h9
-rw-r--r--source/gameengine/Ketsji/KX_Scene.cpp15
-rw-r--r--source/gameengine/Ketsji/KX_Scene.h9
-rw-r--r--source/gameengine/Ketsji/KX_SceneActuator.cpp18
-rw-r--r--source/gameengine/Ketsji/KX_SceneActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_SoundActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_SoundActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_SumoPhysicsController.h9
-rw-r--r--source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_TimeCategoryLogger.h9
-rw-r--r--source/gameengine/Ketsji/KX_TimeLogger.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_TimeLogger.h9
-rw-r--r--source/gameengine/Ketsji/KX_TouchEventManager.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_TouchEventManager.h9
-rw-r--r--source/gameengine/Ketsji/KX_TouchSensor.cpp23
-rw-r--r--source/gameengine/Ketsji/KX_TouchSensor.h9
-rw-r--r--source/gameengine/Ketsji/KX_TrackToActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_TrackToActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_VertexProxy.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_VertexProxy.h9
-rw-r--r--source/gameengine/Ketsji/KX_VisibilityActuator.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_VisibilityActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_WorldInfo.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_WorldInfo.h9
-rw-r--r--source/gameengine/Ketsji/KX_WorldIpoController.cpp9
-rw-r--r--source/gameengine/Ketsji/KX_WorldIpoController.h9
-rw-r--r--source/gameengine/Ketsji/Makefile14
-rw-r--r--source/gameengine/Ketsji/SConscript3
-rw-r--r--source/gameengine/Makefile9
-rw-r--r--source/gameengine/Network/CMakeLists.txt9
-rw-r--r--source/gameengine/Network/LoopBackNetwork/CMakeLists.txt9
-rw-r--r--source/gameengine/Network/LoopBackNetwork/Makefile9
-rw-r--r--source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp9
-rw-r--r--source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h9
-rw-r--r--source/gameengine/Network/Makefile9
-rw-r--r--source/gameengine/Network/NG_NetworkDeviceInterface.h9
-rw-r--r--source/gameengine/Network/NG_NetworkMessage.cpp9
-rw-r--r--source/gameengine/Network/NG_NetworkMessage.h9
-rw-r--r--source/gameengine/Network/NG_NetworkObject.cpp9
-rw-r--r--source/gameengine/Network/NG_NetworkObject.h9
-rw-r--r--source/gameengine/Network/NG_NetworkScene.cpp9
-rw-r--r--source/gameengine/Network/NG_NetworkScene.h9
-rw-r--r--source/gameengine/Network/TerraplayNetwork/Makefile9
-rw-r--r--source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.cpp9
-rw-r--r--source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.h9
-rw-r--r--source/gameengine/Physics/BlOde/Makefile9
-rw-r--r--source/gameengine/Physics/BlOde/OdePhysicsController.cpp4
-rw-r--r--source/gameengine/Physics/BlOde/OdePhysicsController.h4
-rw-r--r--source/gameengine/Physics/BlOde/OdePhysicsEnvironment.cpp4
-rw-r--r--source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h4
-rw-r--r--source/gameengine/Physics/Bullet/CMakeLists.txt9
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp6
-rw-r--r--source/gameengine/Physics/Bullet/Makefile9
-rw-r--r--source/gameengine/Physics/Dummy/CMakeLists.txt9
-rw-r--r--source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp9
-rw-r--r--source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h9
-rw-r--r--source/gameengine/Physics/Dummy/Makefile9
-rw-r--r--source/gameengine/Physics/Makefile9
-rw-r--r--source/gameengine/Physics/Sumo/CMakeLists.txt9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/Makefile9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/include/SM_FhObject.h9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/include/SM_MotionState.h9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/include/SM_Object.h9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/include/SM_Props.h9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/include/SM_Scene.h9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/src/SM_FhObject.cpp9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/src/SM_MotionState.cpp9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/src/SM_Object.cpp9
-rw-r--r--source/gameengine/Physics/Sumo/Fuzzics/src/SM_Scene.cpp9
-rw-r--r--source/gameengine/Physics/Sumo/Makefile9
-rw-r--r--source/gameengine/Physics/Sumo/SumoPhysicsController.cpp9
-rw-r--r--source/gameengine/Physics/Sumo/SumoPhysicsController.h9
-rw-r--r--source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp9
-rw-r--r--source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h9
-rw-r--r--source/gameengine/Physics/common/CMakeLists.txt9
-rw-r--r--source/gameengine/Physics/common/Makefile9
-rw-r--r--source/gameengine/Physics/common/PHY_IMotionState.cpp9
-rw-r--r--source/gameengine/Physics/common/PHY_IMotionState.h9
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsController.cpp9
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsController.h9
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp9
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h9
-rw-r--r--source/gameengine/Physics/common/PHY_Pro.h9
-rw-r--r--source/gameengine/PyDoc/KX_GameObject.py25
-rw-r--r--source/gameengine/PyDoc/KX_ParentActuator.py22
-rw-r--r--source/gameengine/Rasterizer/CMakeLists.txt9
-rw-r--r--source/gameengine/Rasterizer/Makefile14
-rw-r--r--source/gameengine/Rasterizer/RAS_2DFilterManager.cpp17
-rw-r--r--source/gameengine/Rasterizer/RAS_2DFilterManager.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_BucketManager.cpp9
-rw-r--r--source/gameengine/Rasterizer/RAS_BucketManager.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_CameraData.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_Deformer.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_FramingManager.cpp9
-rw-r--r--source/gameengine/Rasterizer/RAS_FramingManager.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_ICanvas.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp9
-rw-r--r--source/gameengine/Rasterizer/RAS_IPolygonMaterial.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_IRasterizer.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_IRenderTools.cpp9
-rw-r--r--source/gameengine/Rasterizer/RAS_IRenderTools.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_LightObject.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_MaterialBucket.cpp9
-rw-r--r--source/gameengine/Rasterizer/RAS_MaterialBucket.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_MeshObject.cpp9
-rw-r--r--source/gameengine/Rasterizer/RAS_MeshObject.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_ObjectColor.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/CMakeLists.txt9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/Makefile13
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp168
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h23
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp888
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp85
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript3
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/glext.h6495
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/mkglext.py9
-rw-r--r--source/gameengine/Rasterizer/RAS_Polygon.cpp9
-rw-r--r--source/gameengine/Rasterizer/RAS_Polygon.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_Rect.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_TexMatrix.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_TexVert.cpp9
-rw-r--r--source/gameengine/Rasterizer/RAS_TexVert.h9
-rw-r--r--source/gameengine/Rasterizer/RAS_texmatrix.cpp9
-rw-r--r--source/gameengine/Rasterizer/SConscript4
-rw-r--r--source/gameengine/SceneGraph/CMakeLists.txt9
-rw-r--r--source/gameengine/SceneGraph/Makefile9
-rw-r--r--source/gameengine/SceneGraph/SG_BBox.cpp9
-rw-r--r--source/gameengine/SceneGraph/SG_BBox.h9
-rw-r--r--source/gameengine/SceneGraph/SG_Controller.cpp9
-rw-r--r--source/gameengine/SceneGraph/SG_Controller.h9
-rw-r--r--source/gameengine/SceneGraph/SG_IObject.cpp9
-rw-r--r--source/gameengine/SceneGraph/SG_IObject.h9
-rw-r--r--source/gameengine/SceneGraph/SG_Node.cpp9
-rw-r--r--source/gameengine/SceneGraph/SG_Node.h9
-rw-r--r--source/gameengine/SceneGraph/SG_ParentRelation.h9
-rw-r--r--source/gameengine/SceneGraph/SG_Spatial.cpp9
-rw-r--r--source/gameengine/SceneGraph/SG_Spatial.h9
-rw-r--r--source/gameengine/SceneGraph/SG_Tree.cpp9
-rw-r--r--source/gameengine/SceneGraph/SG_Tree.h9
-rw-r--r--source/icons/Makefile9
-rw-r--r--source/kernel/CMakeLists.txt9
-rw-r--r--source/kernel/Makefile9
-rw-r--r--source/kernel/gen_messaging/GEN_messaging.h9
-rw-r--r--source/kernel/gen_messaging/Makefile9
-rw-r--r--source/kernel/gen_messaging/intern/Makefile9
-rw-r--r--source/kernel/gen_messaging/intern/messaging.c9
-rw-r--r--source/kernel/gen_system/GEN_DataCache.h9
-rw-r--r--source/kernel/gen_system/GEN_HashedPtr.cpp9
-rw-r--r--source/kernel/gen_system/GEN_HashedPtr.h9
-rw-r--r--source/kernel/gen_system/GEN_Map.h9
-rw-r--r--source/kernel/gen_system/GEN_Matrix4x4.cpp9
-rw-r--r--source/kernel/gen_system/GEN_Matrix4x4.h9
-rw-r--r--source/kernel/gen_system/GEN_SmartPtr.h9
-rw-r--r--source/kernel/gen_system/Makefile9
-rw-r--r--source/kernel/gen_system/SYS_SingletonSystem.cpp9
-rw-r--r--source/kernel/gen_system/SYS_SingletonSystem.h9
-rw-r--r--source/kernel/gen_system/SYS_System.cpp9
-rw-r--r--source/kernel/gen_system/SYS_System.h9
-rw-r--r--source/nan_compile.mk9
-rw-r--r--source/nan_definitions.mk14
-rw-r--r--source/nan_link.mk9
-rw-r--r--source/nan_subdirs.mk9
-rw-r--r--source/nan_warn.mk9
-rw-r--r--tools/Blender.py2
-rwxr-xr-xtools/btools.py2
1710 files changed, 18271 insertions, 26691 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 933203a459e..fbcc0c933ce 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#-----------------------------------------------------------------------------
# We don't allow in-source builds. This causes no end of troubles because
diff --git a/Makefile b/Makefile
index 1189a3abeea..b983779fb31 100644
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,11 @@
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Toplevel Makefile for blender. Bounces make to subdirectories.
# Available targets: 'all' 'debug' 'release'
diff --git a/SConstruct b/SConstruct
index 4c80c07a889..47914b8853d 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1,14 +1,11 @@
#!/usr/bin/env python
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
#
# Contributor(s): Nathan Letwory.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Main entry-point for the SCons building system
# Set up some custom actions and target/argument handling
@@ -39,6 +36,7 @@ import string
import shutil
import glob
import re
+from tempfile import mkdtemp
import tools.Blender
import tools.btools
@@ -191,7 +189,6 @@ if env['WITH_BF_OPENMP'] == 1:
env['CPPFLAGS'].append('-openmp')
env['CXXFLAGS'].append('-openmp')
else:
- env.Append(LINKFLAGS=['-lgomp'])
env['CCFLAGS'].append('-fopenmp')
env['CPPFLAGS'].append('-fopenmp')
env['CXXFLAGS'].append('-fopenmp')
@@ -224,16 +221,18 @@ if env['OURPLATFORM'] == 'linux2' :
return result
env2 = env.Copy( LIBPATH = env['BF_OPENAL'] )
- conf = Configure( env2, {'CheckFreeAlut' : CheckFreeAlut}, '.sconf_temp', '/dev/null' )
+ sconf_temp = mkdtemp()
+ conf = Configure( env2, {'CheckFreeAlut' : CheckFreeAlut}, sconf_temp, '/dev/null' )
if conf.CheckFreeAlut( env2 ):
env['BF_OPENAL_LIB'] += ' alut'
del env2
- for root, dirs, files in os.walk('.sconf_temp', topdown=False):
+ root = ''
+ for root, dirs, files in os.walk(sconf_temp, topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
os.rmdir(os.path.join(root, name))
- os.rmdir(root)
+ if root: os.rmdir(root)
if len(B.quickdebug) > 0 and printdebug != 0:
print B.bc.OKGREEN + "Buildings these libs with debug symbols:" + B.bc.ENDC
diff --git a/blenderplayer/CMakeLists.txt b/blenderplayer/CMakeLists.txt
index 4a2fc330077..62b64ff04bb 100644
--- a/blenderplayer/CMakeLists.txt
+++ b/blenderplayer/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
MESSAGE(STATUS "Configuring blenderplayer")
@@ -35,6 +32,11 @@ IF(WITH_QUICKTIME)
ADD_DEFINITIONS(-DWITH_QUICKTIME)
ENDIF(WITH_QUICKTIME)
+IF(LINUX)
+ ADD_DEFINITIONS(-DWITH_BINRELOC)
+ INCLUDE_DIRECTORIES(${BINRELOC_INC})
+endif(LINUX)
+
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/dna.c
COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/makesdna ${CMAKE_CURRENT_BINARY_DIR}/dna.c ${CMAKE_SOURCE_DIR}/source/blender/makesdna/
@@ -53,6 +55,10 @@ FILE(READ ${CMAKE_BINARY_DIR}/cmake_blender_libs.txt BLENDER_LINK_LIBS)
SET(BLENDER_LINK_LIBS ${BLENDER_LINK_LIBS} gp_common gp_ghost blenkernel_blc)
+IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ SET(BLENDER_LINK_LIBS ${BLENDER_LINK_LIBS} extern_binreloc)
+ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
+
IF(UNIX)
# Sort libraries
SET(BLENDER_SORTED_LIBS
@@ -101,6 +107,7 @@ IF(UNIX)
bf_readblenfile
blenkernel_blc
bf_quicktime
+ extern_binreloc
)
FOREACH(SORTLIB ${BLENDER_SORTED_LIBS})
diff --git a/config/win32-vc-config.py b/config/win32-vc-config.py
index 1b75f981a37..1f7e62102af 100644
--- a/config/win32-vc-config.py
+++ b/config/win32-vc-config.py
@@ -9,7 +9,7 @@ WITH_BF_FFMPEG = 'false' # -DWITH_FFMPEG
BF_FFMPEG = LIBDIR +'/ffmpeg'
BF_FFMPEG_INC = '${BF_FFMPEG}/include'
BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat-51.lib avcodec-51.lib avutil-49.lib'
+BF_FFMPEG_LIB = 'avformat-52.lib avcodec-51.lib avdevice-52.lib avutil-49.lib swscale-0.lib'
BF_PYTHON = LIBDIR + '/python'
BF_PYTHON_VERSION = '2.5'
diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt
index 8d2e1f9dc9b..d092e0d494d 100644
--- a/extern/CMakeLists.txt
+++ b/extern/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
IF(WITH_GAMEENGINE)
SUBDIRS(qhull solid)
diff --git a/extern/Makefile b/extern/Makefile
index 4ca63b6e7f9..fd4573cc8b1 100644
--- a/extern/Makefile
+++ b/extern/Makefile
@@ -1,14 +1,11 @@
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# Bounces make to subdirectories. Also installs after succesful all target.
include nan_definitions.mk
diff --git a/extern/SConscript b/extern/SConscript
index bcf67055788..09eaf080c28 100644
--- a/extern/SConscript
+++ b/extern/SConscript
@@ -16,7 +16,10 @@ if env['WITH_BF_VERSE']:
SConscript(['verse/dist/SConstruct'])
if env['WITH_BF_FFMPEG'] and env['BF_FFMPEG_LIB'] == '':
- SConscript(['ffmpeg/SConscript']);
+ SConscript(['x264/SConscript'])
+ SConscript(['libmp3lame/SConscript'])
+ SConscript(['xvidcore/SConscript'])
+ SConscript(['ffmpeg/SConscript'])
if env['OURPLATFORM'] == 'linux2':
- SConscript(['binreloc/SConscript']); \ No newline at end of file
+ SConscript(['binreloc/SConscript']);
diff --git a/extern/bFTGL/CMakeLists.txt b/extern/bFTGL/CMakeLists.txt
index fc9aea8ea4e..529dc74a4d2 100644
--- a/extern/bFTGL/CMakeLists.txt
+++ b/extern/bFTGL/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC include src ${FREETYPE_INC})
diff --git a/extern/bFTGL/src/Makefile b/extern/bFTGL/src/Makefile
index 3ebf9bee45c..17c6016ad03 100644
--- a/extern/bFTGL/src/Makefile
+++ b/extern/bFTGL/src/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/extern/bullet2/CMakeLists.txt b/extern/bullet2/CMakeLists.txt
index 19dc6e2ba77..c5495fdf92b 100644
--- a/extern/bullet2/CMakeLists.txt
+++ b/extern/bullet2/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurai, Erwin Coumans
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC . src)
diff --git a/extern/bullet2/Makefile b/extern/bullet2/Makefile
index be242c290ff..e05d441a6be 100644
--- a/extern/bullet2/Makefile
+++ b/extern/bullet2/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s):
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
LIBNAME = bullet2
include nan_definitions.mk
SOURCEDIR = extern/$(LIBNAME)
diff --git a/extern/bullet2/src/Makefile b/extern/bullet2/src/Makefile
index 567811bae28..24f3ca9767d 100644
--- a/extern/bullet2/src/Makefile
+++ b/extern/bullet2/src/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
LIBNAME = bullet2
diff --git a/extern/ode/Makefile b/extern/ode/Makefile
index f1d2c98fe23..51be666aa69 100644
--- a/extern/ode/Makefile
+++ b/extern/ode/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
include nan_definitions.mk
diff --git a/extern/qhull/CMakeLists.txt b/extern/qhull/CMakeLists.txt
index 2da72acbb44..f2ac24afff3 100644
--- a/extern/qhull/CMakeLists.txt
+++ b/extern/qhull/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC include src)
diff --git a/extern/qhull/src/Makefile b/extern/qhull/src/Makefile
index a4f2aa4b5b9..8201e44f01b 100644
--- a/extern/qhull/src/Makefile
+++ b/extern/qhull/src/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/extern/solid/CMakeLists.txt b/extern/solid/CMakeLists.txt
index 496618c5914..7840dd6b423 100644
--- a/extern/solid/CMakeLists.txt
+++ b/extern/solid/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC include src src/broad src/complex src/convex ../qhull/include)
diff --git a/extern/solid/Makefile b/extern/solid/Makefile
index ed5a1359cf4..3b333c5141d 100644
--- a/extern/solid/Makefile
+++ b/extern/solid/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/extern/solid/src/Makefile b/extern/solid/src/Makefile
index b45a1da9cd3..e8ef7a606c9 100644
--- a/extern/solid/src/Makefile
+++ b/extern/solid/src/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/extern/solid/src/broad/Makefile b/extern/solid/src/broad/Makefile
index 90445c3cd7a..ce10e5f0bcf 100644
--- a/extern/solid/src/broad/Makefile
+++ b/extern/solid/src/broad/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/extern/solid/src/complex/Makefile b/extern/solid/src/complex/Makefile
index 99e786276b0..e8df4df51a3 100644
--- a/extern/solid/src/complex/Makefile
+++ b/extern/solid/src/complex/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/extern/solid/src/convex/Makefile b/extern/solid/src/convex/Makefile
index 406a89f2989..75fa578a292 100644
--- a/extern/solid/src/convex/Makefile
+++ b/extern/solid/src/convex/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/extern/verse/CMakeLists.txt b/extern/verse/CMakeLists.txt
index 409372c10f6..318a550668e 100644
--- a/extern/verse/CMakeLists.txt
+++ b/extern/verse/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SUBDIRS(dist)
diff --git a/extern/verse/Makefile b/extern/verse/Makefile
index bd8bba33195..51dc5543d2a 100644
--- a/extern/verse/Makefile
+++ b/extern/verse/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Jiri Hnidek
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
LIBNAME = verse
SOURCEDIR = extern/$(LIBNAME)
DIR = $(OCGDIR)/$(SOURCEDIR)
diff --git a/extern/verse/dist/CMakeLists.txt b/extern/verse/dist/CMakeLists.txt
index 2f8fcd0b449..ae130df6410 100644
--- a/extern/verse/dist/CMakeLists.txt
+++ b/extern/verse/dist/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SUBDIRS(mkprot_cmd)
diff --git a/extern/verse/dist/mkprot_cmd/CMakeLists.txt b/extern/verse/dist/mkprot_cmd/CMakeLists.txt
index c4e3128b7f8..f6e89f912e5 100644
--- a/extern/verse/dist/mkprot_cmd/CMakeLists.txt
+++ b/extern/verse/dist/mkprot_cmd/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC
../v_cmd_gen.c
diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt
index aa5b1a8531c..81ef8c121d1 100644
--- a/intern/CMakeLists.txt
+++ b/intern/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SUBDIRS(SoundSystem string ghost guardedalloc bmfont moto container memutil decimation iksolver boolop opennl)
diff --git a/intern/Makefile b/intern/Makefile
index 7eaabd5b6bb..357e28309e3 100644
--- a/intern/Makefile
+++ b/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# Bounces make to subdirectories. Also installs after succesful all target.
SOURCEDIR = intern
diff --git a/intern/SoundSystem/CMakeLists.txt b/intern/SoundSystem/CMakeLists.txt
index 428b8db01ee..9a370af2268 100644
--- a/intern/SoundSystem/CMakeLists.txt
+++ b/intern/SoundSystem/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC . intern ../moto/include ../string dummy openal sdl)
diff --git a/intern/SoundSystem/Makefile b/intern/SoundSystem/Makefile
index 757301e4a35..d00339f351c 100644
--- a/intern/SoundSystem/Makefile
+++ b/intern/SoundSystem/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/intern/SoundSystem/SND_C-api.h b/intern/SoundSystem/SND_C-api.h
index 03470f7e998..f8e439a9c26 100644
--- a/intern/SoundSystem/SND_C-api.h
+++ b/intern/SoundSystem/SND_C-api.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SND_BLENDER_H
#define SND_BLENDER_H
diff --git a/intern/SoundSystem/SND_CDObject.h b/intern/SoundSystem/SND_CDObject.h
index 5af2005d34a..c79f62d9862 100644
--- a/intern/SoundSystem/SND_CDObject.h
+++ b/intern/SoundSystem/SND_CDObject.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SND_CDOBJECT_H
diff --git a/intern/SoundSystem/SND_DependKludge.h b/intern/SoundSystem/SND_DependKludge.h
index 71514a87ca2..1a95f977abe 100644
--- a/intern/SoundSystem/SND_DependKludge.h
+++ b/intern/SoundSystem/SND_DependKludge.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef HAVE_CONFIG_H
diff --git a/intern/SoundSystem/SND_DeviceManager.h b/intern/SoundSystem/SND_DeviceManager.h
index b0b2a28ffb8..708db030519 100644
--- a/intern/SoundSystem/SND_DeviceManager.h
+++ b/intern/SoundSystem/SND_DeviceManager.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SND_DEVICEMANAGER_H
diff --git a/intern/SoundSystem/SND_IAudioDevice.h b/intern/SoundSystem/SND_IAudioDevice.h
index 73d52e13c05..d6b3936e6ef 100644
--- a/intern/SoundSystem/SND_IAudioDevice.h
+++ b/intern/SoundSystem/SND_IAudioDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SND_IAUDIODEVICE
#define SND_IAUDIODEVICE
diff --git a/intern/SoundSystem/SND_Object.h b/intern/SoundSystem/SND_Object.h
index b67ae3ee396..f23827974e3 100644
--- a/intern/SoundSystem/SND_Object.h
+++ b/intern/SoundSystem/SND_Object.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SND_OBJECT_H
diff --git a/intern/SoundSystem/SND_Scene.h b/intern/SoundSystem/SND_Scene.h
index 49cb40de714..bb3ff932bce 100644
--- a/intern/SoundSystem/SND_Scene.h
+++ b/intern/SoundSystem/SND_Scene.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WIN32
diff --git a/intern/SoundSystem/SND_SoundListener.h b/intern/SoundSystem/SND_SoundListener.h
index ce8315e6375..2f6a6e8cddd 100644
--- a/intern/SoundSystem/SND_SoundListener.h
+++ b/intern/SoundSystem/SND_SoundListener.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SND_SOUNDLISTENER_H
diff --git a/intern/SoundSystem/SND_SoundObject.h b/intern/SoundSystem/SND_SoundObject.h
index a6a98fba220..7bd43fb4e66 100644
--- a/intern/SoundSystem/SND_SoundObject.h
+++ b/intern/SoundSystem/SND_SoundObject.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SND_SOUNDOBJECT_H
diff --git a/intern/SoundSystem/SND_Utils.h b/intern/SoundSystem/SND_Utils.h
index de36065c48f..c54aa434eec 100644
--- a/intern/SoundSystem/SND_Utils.h
+++ b/intern/SoundSystem/SND_Utils.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SND_UTILS_H
#define SND_UTILS_H
diff --git a/intern/SoundSystem/SND_WaveCache.h b/intern/SoundSystem/SND_WaveCache.h
index 1a6445be966..2c457797768 100644
--- a/intern/SoundSystem/SND_WaveCache.h
+++ b/intern/SoundSystem/SND_WaveCache.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WIN32
diff --git a/intern/SoundSystem/SND_WaveSlot.h b/intern/SoundSystem/SND_WaveSlot.h
index bc92829d3d3..75cddfa36d8 100644
--- a/intern/SoundSystem/SND_WaveSlot.h
+++ b/intern/SoundSystem/SND_WaveSlot.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SND_WAVESLOT_H
diff --git a/intern/SoundSystem/SND_test/Makefile b/intern/SoundSystem/SND_test/Makefile
index 2fc531ae37e..279eeace0d8 100644
--- a/intern/SoundSystem/SND_test/Makefile
+++ b/intern/SoundSystem/SND_test/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/intern/SoundSystem/SND_test/SND_test.c b/intern/SoundSystem/SND_test/SND_test.c
index 99de147c8a0..0d19dc2e131 100644
--- a/intern/SoundSystem/SND_test/SND_test.c
+++ b/intern/SoundSystem/SND_test/SND_test.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SND_C-api.h"
diff --git a/intern/SoundSystem/SoundDefines.h b/intern/SoundSystem/SoundDefines.h
index f7a3a3c6619..5d425a8dc94 100644
--- a/intern/SoundSystem/SoundDefines.h
+++ b/intern/SoundSystem/SoundDefines.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SOUNDDEFINES_H
diff --git a/intern/SoundSystem/dummy/Makefile b/intern/SoundSystem/dummy/Makefile
index 5d23d1a8a6a..829135dde98 100644
--- a/intern/SoundSystem/dummy/Makefile
+++ b/intern/SoundSystem/dummy/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/intern/SoundSystem/dummy/SND_DummyDevice.cpp b/intern/SoundSystem/dummy/SND_DummyDevice.cpp
index 7b99ec461df..3e5874f02ca 100644
--- a/intern/SoundSystem/dummy/SND_DummyDevice.cpp
+++ b/intern/SoundSystem/dummy/SND_DummyDevice.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* SND_FmodDevice derived from SND_IAudioDevice
*/
diff --git a/intern/SoundSystem/dummy/SND_DummyDevice.h b/intern/SoundSystem/dummy/SND_DummyDevice.h
index 6dff52d40d5..988f731d1bf 100644
--- a/intern/SoundSystem/dummy/SND_DummyDevice.h
+++ b/intern/SoundSystem/dummy/SND_DummyDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SND_DUMMYDEVICE
#define SND_DUMMYDEVICE
diff --git a/intern/SoundSystem/fmod/Makefile b/intern/SoundSystem/fmod/Makefile
index d2810e8fa2f..47bc0348fe2 100644
--- a/intern/SoundSystem/fmod/Makefile
+++ b/intern/SoundSystem/fmod/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/intern/SoundSystem/fmod/SND_FmodDevice.cpp b/intern/SoundSystem/fmod/SND_FmodDevice.cpp
index 06bcbc2f393..cc252954fea 100644
--- a/intern/SoundSystem/fmod/SND_FmodDevice.cpp
+++ b/intern/SoundSystem/fmod/SND_FmodDevice.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* SND_FmodDevice derived from SND_IAudioDevice
*/
diff --git a/intern/SoundSystem/fmod/SND_FmodDevice.h b/intern/SoundSystem/fmod/SND_FmodDevice.h
index d44cfb9d937..294ee4e3a72 100644
--- a/intern/SoundSystem/fmod/SND_FmodDevice.h
+++ b/intern/SoundSystem/fmod/SND_FmodDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SND_FMODDEVICE
#define SND_FMODDEVICE
diff --git a/intern/SoundSystem/intern/Makefile b/intern/SoundSystem/intern/Makefile
index cf793bdba25..c52be01f69f 100644
--- a/intern/SoundSystem/intern/Makefile
+++ b/intern/SoundSystem/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/intern/SoundSystem/intern/SND_AudioDevice.cpp b/intern/SoundSystem/intern/SND_AudioDevice.cpp
index 828edaed4b4..4a5c0e2c498 100644
--- a/intern/SoundSystem/intern/SND_AudioDevice.cpp
+++ b/intern/SoundSystem/intern/SND_AudioDevice.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SND_AudioDevice.h"
diff --git a/intern/SoundSystem/intern/SND_AudioDevice.h b/intern/SoundSystem/intern/SND_AudioDevice.h
index 6edd52955ae..54e8feea90e 100644
--- a/intern/SoundSystem/intern/SND_AudioDevice.h
+++ b/intern/SoundSystem/intern/SND_AudioDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SND_AUDIODEVICE
#define SND_AUDIODEVICE
diff --git a/intern/SoundSystem/intern/SND_C-api.cpp b/intern/SoundSystem/intern/SND_C-api.cpp
index 1b03d66562c..09846269dcc 100644
--- a/intern/SoundSystem/intern/SND_C-api.cpp
+++ b/intern/SoundSystem/intern/SND_C-api.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/SoundSystem/intern/SND_CDObject.cpp b/intern/SoundSystem/intern/SND_CDObject.cpp
index e4fcdfaceeb..089e0d554e4 100644
--- a/intern/SoundSystem/intern/SND_CDObject.cpp
+++ b/intern/SoundSystem/intern/SND_CDObject.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SND_CDObject.h"
diff --git a/intern/SoundSystem/intern/SND_DeviceManager.cpp b/intern/SoundSystem/intern/SND_DeviceManager.cpp
index 37487686d71..215c0f5b6fa 100644
--- a/intern/SoundSystem/intern/SND_DeviceManager.cpp
+++ b/intern/SoundSystem/intern/SND_DeviceManager.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/SoundSystem/intern/SND_IdObject.cpp b/intern/SoundSystem/intern/SND_IdObject.cpp
index eac95de64a4..b261442db0a 100644
--- a/intern/SoundSystem/intern/SND_IdObject.cpp
+++ b/intern/SoundSystem/intern/SND_IdObject.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SND_IdObject.h"
diff --git a/intern/SoundSystem/intern/SND_IdObject.h b/intern/SoundSystem/intern/SND_IdObject.h
index fc9608b97bf..86611b026f0 100644
--- a/intern/SoundSystem/intern/SND_IdObject.h
+++ b/intern/SoundSystem/intern/SND_IdObject.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SND_IDOBJECT_H
diff --git a/intern/SoundSystem/intern/SND_Scene.cpp b/intern/SoundSystem/intern/SND_Scene.cpp
index ffb1cd44108..bbf971ddc87 100644
--- a/intern/SoundSystem/intern/SND_Scene.cpp
+++ b/intern/SoundSystem/intern/SND_Scene.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/SoundSystem/intern/SND_SoundListener.cpp b/intern/SoundSystem/intern/SND_SoundListener.cpp
index 0209ac5683a..26163e87765 100644
--- a/intern/SoundSystem/intern/SND_SoundListener.cpp
+++ b/intern/SoundSystem/intern/SND_SoundListener.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SND_SoundListener.h"
diff --git a/intern/SoundSystem/intern/SND_SoundObject.cpp b/intern/SoundSystem/intern/SND_SoundObject.cpp
index e835b012ac1..e514a186e5e 100644
--- a/intern/SoundSystem/intern/SND_SoundObject.cpp
+++ b/intern/SoundSystem/intern/SND_SoundObject.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SND_SoundObject.h"
diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp
index 0880576c292..7d441964b24 100644
--- a/intern/SoundSystem/intern/SND_Utils.cpp
+++ b/intern/SoundSystem/intern/SND_Utils.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SND_Utils.h"
diff --git a/intern/SoundSystem/intern/SND_WaveCache.cpp b/intern/SoundSystem/intern/SND_WaveCache.cpp
index e9868f77f57..a678bd554bb 100644
--- a/intern/SoundSystem/intern/SND_WaveCache.cpp
+++ b/intern/SoundSystem/intern/SND_WaveCache.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/SoundSystem/intern/SND_WaveSlot.cpp b/intern/SoundSystem/intern/SND_WaveSlot.cpp
index 6c74e326743..43b2bb55892 100644
--- a/intern/SoundSystem/intern/SND_WaveSlot.cpp
+++ b/intern/SoundSystem/intern/SND_WaveSlot.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SND_WaveSlot.h"
diff --git a/intern/SoundSystem/openal/Makefile b/intern/SoundSystem/openal/Makefile
index 84ae9b007b6..b28ab628d4c 100644
--- a/intern/SoundSystem/openal/Makefile
+++ b/intern/SoundSystem/openal/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/intern/SoundSystem/openal/SND_OpenALDevice.cpp b/intern/SoundSystem/openal/SND_OpenALDevice.cpp
index bb0204af53b..82ed1c8a808 100644
--- a/intern/SoundSystem/openal/SND_OpenALDevice.cpp
+++ b/intern/SoundSystem/openal/SND_OpenALDevice.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* SND_OpenALDevice derived from SND_IAudioDevice
*/
diff --git a/intern/SoundSystem/openal/SND_OpenALDevice.h b/intern/SoundSystem/openal/SND_OpenALDevice.h
index e54c0443462..b8c64762a56 100644
--- a/intern/SoundSystem/openal/SND_OpenALDevice.h
+++ b/intern/SoundSystem/openal/SND_OpenALDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SND_OPENALDEVICE
#define SND_OPENALDEVICE
diff --git a/intern/SoundSystem/openal/pthread_cancel.cpp b/intern/SoundSystem/openal/pthread_cancel.cpp
index 7651417db0b..bb36d1dd136 100644
--- a/intern/SoundSystem/openal/pthread_cancel.cpp
+++ b/intern/SoundSystem/openal/pthread_cancel.cpp
@@ -1,14 +1,11 @@
/* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* FreeBSD 3.4 does not yet have pthread_cancel (3.5 and above do)
*/
diff --git a/intern/SoundSystem/sdl/Makefile b/intern/SoundSystem/sdl/Makefile
index 0a1632c4a41..669d7110797 100644
--- a/intern/SoundSystem/sdl/Makefile
+++ b/intern/SoundSystem/sdl/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp b/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp
index e2419b47269..8bb6c642b11 100644
--- a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp
+++ b/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* SND_SDLCDDevice
*/
diff --git a/intern/SoundSystem/sdl/SND_SDLCDDevice.h b/intern/SoundSystem/sdl/SND_SDLCDDevice.h
index 829f361ea22..15cb1975d74 100644
--- a/intern/SoundSystem/sdl/SND_SDLCDDevice.h
+++ b/intern/SoundSystem/sdl/SND_SDLCDDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SND_SDLCDDEVICE
#define SND_SDLCDDEVICE
diff --git a/intern/bmfont/BMF_Api.h b/intern/bmfont/BMF_Api.h
index 4465242e9fa..252f60623a7 100644
--- a/intern/bmfont/BMF_Api.h
+++ b/intern/bmfont/BMF_Api.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bmfont/BMF_Fonts.h b/intern/bmfont/BMF_Fonts.h
index bf7c370e47e..00a902573fb 100644
--- a/intern/bmfont/BMF_Fonts.h
+++ b/intern/bmfont/BMF_Fonts.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bmfont/BMF_Settings.h b/intern/bmfont/BMF_Settings.h
index 247f9e474fc..b599c97d6ee 100644
--- a/intern/bmfont/BMF_Settings.h
+++ b/intern/bmfont/BMF_Settings.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bmfont/CMakeLists.txt b/intern/bmfont/CMakeLists.txt
index e3b8242ceac..3ae636a6097 100644
--- a/intern/bmfont/CMakeLists.txt
+++ b/intern/bmfont/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC . intern)
diff --git a/intern/bmfont/Makefile b/intern/bmfont/Makefile
index 9c0193fee1b..bc42f52a1fb 100644
--- a/intern/bmfont/Makefile
+++ b/intern/bmfont/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# bmfont main makefile.
#
diff --git a/intern/bmfont/intern/BMF_Api.cpp b/intern/bmfont/intern/BMF_Api.cpp
index 24e053515fb..1699393e53d 100644
--- a/intern/bmfont/intern/BMF_Api.cpp
+++ b/intern/bmfont/intern/BMF_Api.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bmfont/intern/BMF_BitmapFont.cpp b/intern/bmfont/intern/BMF_BitmapFont.cpp
index afdcf7fbfbb..0111e9c3f93 100644
--- a/intern/bmfont/intern/BMF_BitmapFont.cpp
+++ b/intern/bmfont/intern/BMF_BitmapFont.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bmfont/intern/BMF_BitmapFont.h b/intern/bmfont/intern/BMF_BitmapFont.h
index f8d3d5370dd..ed060818f71 100644
--- a/intern/bmfont/intern/BMF_BitmapFont.h
+++ b/intern/bmfont/intern/BMF_BitmapFont.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bmfont/intern/BMF_FontData.h b/intern/bmfont/intern/BMF_FontData.h
index 512bdf1a53d..603d291d47d 100644
--- a/intern/bmfont/intern/BMF_FontData.h
+++ b/intern/bmfont/intern/BMF_FontData.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bmfont/intern/BMF_font_helv10.cpp b/intern/bmfont/intern/BMF_font_helv10.cpp
index 636ac78c5d6..2430e9f6d81 100644
--- a/intern/bmfont/intern/BMF_font_helv10.cpp
+++ b/intern/bmfont/intern/BMF_font_helv10.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bmfont/intern/BMF_font_helv12.cpp b/intern/bmfont/intern/BMF_font_helv12.cpp
index 813d22475eb..29b08b659ee 100644
--- a/intern/bmfont/intern/BMF_font_helv12.cpp
+++ b/intern/bmfont/intern/BMF_font_helv12.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bmfont/intern/BMF_font_helvb10.cpp b/intern/bmfont/intern/BMF_font_helvb10.cpp
index 66583767ffb..cdd3656c5c0 100644
--- a/intern/bmfont/intern/BMF_font_helvb10.cpp
+++ b/intern/bmfont/intern/BMF_font_helvb10.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bmfont/intern/BMF_font_helvb12.cpp b/intern/bmfont/intern/BMF_font_helvb12.cpp
index 69230d48ae8..8b56bdceee7 100644
--- a/intern/bmfont/intern/BMF_font_helvb12.cpp
+++ b/intern/bmfont/intern/BMF_font_helvb12.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bmfont/intern/BMF_font_helvb14.cpp b/intern/bmfont/intern/BMF_font_helvb14.cpp
index e793295f295..c6d3e0ec701 100644
--- a/intern/bmfont/intern/BMF_font_helvb14.cpp
+++ b/intern/bmfont/intern/BMF_font_helvb14.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bmfont/intern/BMF_font_helvb8.cpp b/intern/bmfont/intern/BMF_font_helvb8.cpp
index 79651b06519..fb56049c8fe 100644
--- a/intern/bmfont/intern/BMF_font_helvb8.cpp
+++ b/intern/bmfont/intern/BMF_font_helvb8.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bmfont/intern/BMF_font_scr12.cpp b/intern/bmfont/intern/BMF_font_scr12.cpp
index bcdb87fcc0b..be0be544474 100644
--- a/intern/bmfont/intern/BMF_font_scr12.cpp
+++ b/intern/bmfont/intern/BMF_font_scr12.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bmfont/intern/BMF_font_scr14.cpp b/intern/bmfont/intern/BMF_font_scr14.cpp
index 6a3ee9dd710..596442885e1 100644
--- a/intern/bmfont/intern/BMF_font_scr14.cpp
+++ b/intern/bmfont/intern/BMF_font_scr14.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bmfont/intern/BMF_font_scr15.cpp b/intern/bmfont/intern/BMF_font_scr15.cpp
index c130fadbf52..8490e999bdb 100644
--- a/intern/bmfont/intern/BMF_font_scr15.cpp
+++ b/intern/bmfont/intern/BMF_font_scr15.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bmfont/intern/Makefile b/intern/bmfont/intern/Makefile
index cd02eaa31bd..f420cfcf1e6 100644
--- a/intern/bmfont/intern/Makefile
+++ b/intern/bmfont/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# bmfont intern Makefile
#
diff --git a/intern/bmfont/test/Makefile b/intern/bmfont/test/Makefile
index f7e0f927722..135db74f38b 100644
--- a/intern/bmfont/test/Makefile
+++ b/intern/bmfont/test/Makefile
@@ -1,12 +1,9 @@
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# Test the bmfont module
#
diff --git a/intern/bmfont/test/simpletest/BMF_Test.cpp b/intern/bmfont/test/simpletest/BMF_Test.cpp
index 00f7bc30f45..93a55042a4f 100644
--- a/intern/bmfont/test/simpletest/BMF_Test.cpp
+++ b/intern/bmfont/test/simpletest/BMF_Test.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bmfont/test/simpletest/Makefile b/intern/bmfont/test/simpletest/Makefile
index 190a39f0e9b..5c5e32f2ed2 100644
--- a/intern/bmfont/test/simpletest/Makefile
+++ b/intern/bmfont/test/simpletest/Makefile
@@ -1,12 +1,9 @@
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# Test the bmfont module
#
diff --git a/intern/boolop/CMakeLists.txt b/intern/boolop/CMakeLists.txt
index 0db6675237b..346e76f28fd 100644
--- a/intern/boolop/CMakeLists.txt
+++ b/intern/boolop/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC . intern extern ../moto/include ../container ../memutil ../../source/blender/makesdna ../guardedalloc ../../source/blender/blenlib)
diff --git a/intern/boolop/Makefile b/intern/boolop/Makefile
index 85e6754132e..4058c4ca7c1 100644
--- a/intern/boolop/Makefile
+++ b/intern/boolop/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# bsp main makefile.
#
diff --git a/intern/boolop/extern/BOP_Interface.h b/intern/boolop/extern/BOP_Interface.h
index 7fe7ae226fd..bdd1269abca 100644
--- a/intern/boolop/extern/BOP_Interface.h
+++ b/intern/boolop/extern/BOP_Interface.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_INTERFACE_H
diff --git a/intern/boolop/intern/BOP_BBox.cpp b/intern/boolop/intern/BOP_BBox.cpp
index 767847e1e09..c988fbc8024 100644
--- a/intern/boolop/intern/BOP_BBox.cpp
+++ b/intern/boolop/intern/BOP_BBox.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_BBox.h"
diff --git a/intern/boolop/intern/BOP_BBox.h b/intern/boolop/intern/BOP_BBox.h
index 473a9828a1a..0ecae1d14b5 100644
--- a/intern/boolop/intern/BOP_BBox.h
+++ b/intern/boolop/intern/BOP_BBox.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_BBOX_H
diff --git a/intern/boolop/intern/BOP_BSPNode.cpp b/intern/boolop/intern/BOP_BSPNode.cpp
index 68a20d7a5a4..80a1d5c9d7e 100644
--- a/intern/boolop/intern/BOP_BSPNode.cpp
+++ b/intern/boolop/intern/BOP_BSPNode.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_MathUtils.h"
diff --git a/intern/boolop/intern/BOP_BSPNode.h b/intern/boolop/intern/BOP_BSPNode.h
index 39a84b94dec..688b57d948f 100644
--- a/intern/boolop/intern/BOP_BSPNode.h
+++ b/intern/boolop/intern/BOP_BSPNode.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_BSPNODE_H
diff --git a/intern/boolop/intern/BOP_BSPTree.cpp b/intern/boolop/intern/BOP_BSPTree.cpp
index 3ae375294cd..734b4ab7660 100644
--- a/intern/boolop/intern/BOP_BSPTree.cpp
+++ b/intern/boolop/intern/BOP_BSPTree.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_BSPTree.h"
diff --git a/intern/boolop/intern/BOP_BSPTree.h b/intern/boolop/intern/BOP_BSPTree.h
index 412d5a40753..1ea2486653d 100644
--- a/intern/boolop/intern/BOP_BSPTree.h
+++ b/intern/boolop/intern/BOP_BSPTree.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_BSPTREE_H
diff --git a/intern/boolop/intern/BOP_Chrono.h b/intern/boolop/intern/BOP_Chrono.h
index 5ce64f7a57c..a2a230bf70d 100644
--- a/intern/boolop/intern/BOP_Chrono.h
+++ b/intern/boolop/intern/BOP_Chrono.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_CHRONO_H
diff --git a/intern/boolop/intern/BOP_Edge.cpp b/intern/boolop/intern/BOP_Edge.cpp
index 31411133878..ac302b530df 100644
--- a/intern/boolop/intern/BOP_Edge.cpp
+++ b/intern/boolop/intern/BOP_Edge.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Edge.h"
diff --git a/intern/boolop/intern/BOP_Edge.h b/intern/boolop/intern/BOP_Edge.h
index abf5dd0a8c8..13426f6e63c 100644
--- a/intern/boolop/intern/BOP_Edge.h
+++ b/intern/boolop/intern/BOP_Edge.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_EDGE_H
diff --git a/intern/boolop/intern/BOP_Face.cpp b/intern/boolop/intern/BOP_Face.cpp
index ebe34237d4f..12c94624517 100644
--- a/intern/boolop/intern/BOP_Face.cpp
+++ b/intern/boolop/intern/BOP_Face.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Face.h"
diff --git a/intern/boolop/intern/BOP_Face.h b/intern/boolop/intern/BOP_Face.h
index 1d854ec00ca..e16425f78b3 100644
--- a/intern/boolop/intern/BOP_Face.h
+++ b/intern/boolop/intern/BOP_Face.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_FACE_H
diff --git a/intern/boolop/intern/BOP_Face2Face.cpp b/intern/boolop/intern/BOP_Face2Face.cpp
index ef67e5dd24b..38841e34567 100644
--- a/intern/boolop/intern/BOP_Face2Face.cpp
+++ b/intern/boolop/intern/BOP_Face2Face.cpp
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): Marc Freixas, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Face2Face.h"
diff --git a/intern/boolop/intern/BOP_Face2Face.h b/intern/boolop/intern/BOP_Face2Face.h
index 09ed4edd076..66b532700fd 100644
--- a/intern/boolop/intern/BOP_Face2Face.h
+++ b/intern/boolop/intern/BOP_Face2Face.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_FACE2FACE_H
diff --git a/intern/boolop/intern/BOP_Indexs.h b/intern/boolop/intern/BOP_Indexs.h
index c5546e73252..f86916cbf47 100644
--- a/intern/boolop/intern/BOP_Indexs.h
+++ b/intern/boolop/intern/BOP_Indexs.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_Indexs_H
diff --git a/intern/boolop/intern/BOP_Interface.cpp b/intern/boolop/intern/BOP_Interface.cpp
index 3c61fd6c7b8..2a198103931 100644
--- a/intern/boolop/intern/BOP_Interface.cpp
+++ b/intern/boolop/intern/BOP_Interface.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <iostream>
diff --git a/intern/boolop/intern/BOP_MathUtils.cpp b/intern/boolop/intern/BOP_MathUtils.cpp
index e0d96b465ee..8c7d10f1d23 100644
--- a/intern/boolop/intern/BOP_MathUtils.cpp
+++ b/intern/boolop/intern/BOP_MathUtils.cpp
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): Marc Freixas, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_MathUtils.h"
diff --git a/intern/boolop/intern/BOP_MathUtils.h b/intern/boolop/intern/BOP_MathUtils.h
index 3cff2d6a23b..ee2dfbf37fc 100644
--- a/intern/boolop/intern/BOP_MathUtils.h
+++ b/intern/boolop/intern/BOP_MathUtils.h
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): Marc Freixas, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_MATHUTILS_H
diff --git a/intern/boolop/intern/BOP_Merge.cpp b/intern/boolop/intern/BOP_Merge.cpp
index c2b1a2db2b7..1e4139ab971 100644
--- a/intern/boolop/intern/BOP_Merge.cpp
+++ b/intern/boolop/intern/BOP_Merge.cpp
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): Marc Freixas, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Merge.h"
diff --git a/intern/boolop/intern/BOP_Merge.h b/intern/boolop/intern/BOP_Merge.h
index 2ccce8e137b..88999b2e734 100644
--- a/intern/boolop/intern/BOP_Merge.h
+++ b/intern/boolop/intern/BOP_Merge.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_MERGE_H
diff --git a/intern/boolop/intern/BOP_Mesh.cpp b/intern/boolop/intern/BOP_Mesh.cpp
index 0b70cc61533..5659cd62a3f 100644
--- a/intern/boolop/intern/BOP_Mesh.cpp
+++ b/intern/boolop/intern/BOP_Mesh.cpp
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Mesh.h"
diff --git a/intern/boolop/intern/BOP_Mesh.h b/intern/boolop/intern/BOP_Mesh.h
index f671b9a96c9..9abff52545f 100644
--- a/intern/boolop/intern/BOP_Mesh.h
+++ b/intern/boolop/intern/BOP_Mesh.h
@@ -9,15 +9,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -35,7 +32,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_MESH_H
diff --git a/intern/boolop/intern/BOP_Segment.cpp b/intern/boolop/intern/BOP_Segment.cpp
index 2a81660c4ff..ed0cd6a0548 100644
--- a/intern/boolop/intern/BOP_Segment.cpp
+++ b/intern/boolop/intern/BOP_Segment.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Segment.h"
diff --git a/intern/boolop/intern/BOP_Segment.h b/intern/boolop/intern/BOP_Segment.h
index caa6157346c..4c8f82d8869 100644
--- a/intern/boolop/intern/BOP_Segment.h
+++ b/intern/boolop/intern/BOP_Segment.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_SEGMENT_H
diff --git a/intern/boolop/intern/BOP_Splitter.cpp b/intern/boolop/intern/BOP_Splitter.cpp
index 07f1f4d6c96..7dd3884e9de 100644
--- a/intern/boolop/intern/BOP_Splitter.cpp
+++ b/intern/boolop/intern/BOP_Splitter.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Splitter.h"
diff --git a/intern/boolop/intern/BOP_Splitter.h b/intern/boolop/intern/BOP_Splitter.h
index 02cbdd2aa72..59b8251b07a 100644
--- a/intern/boolop/intern/BOP_Splitter.h
+++ b/intern/boolop/intern/BOP_Splitter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_SPLITTER_H
diff --git a/intern/boolop/intern/BOP_Tag.cpp b/intern/boolop/intern/BOP_Tag.cpp
index 6a8832870fa..92382caf70f 100644
--- a/intern/boolop/intern/BOP_Tag.cpp
+++ b/intern/boolop/intern/BOP_Tag.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Tag.h"
diff --git a/intern/boolop/intern/BOP_Tag.h b/intern/boolop/intern/BOP_Tag.h
index 2b6ff93b679..705f4885866 100644
--- a/intern/boolop/intern/BOP_Tag.h
+++ b/intern/boolop/intern/BOP_Tag.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/intern/boolop/intern/BOP_Triangulator.cpp b/intern/boolop/intern/BOP_Triangulator.cpp
index fd7b3154195..6b00e878e57 100644
--- a/intern/boolop/intern/BOP_Triangulator.cpp
+++ b/intern/boolop/intern/BOP_Triangulator.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Triangulator.h"
diff --git a/intern/boolop/intern/BOP_Triangulator.h b/intern/boolop/intern/BOP_Triangulator.h
index 12223e1ea1f..43b6c102262 100644
--- a/intern/boolop/intern/BOP_Triangulator.h
+++ b/intern/boolop/intern/BOP_Triangulator.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_TRIANGULATOR_H
diff --git a/intern/boolop/intern/BOP_Vertex.cpp b/intern/boolop/intern/BOP_Vertex.cpp
index c039df5775d..a429c26d204 100644
--- a/intern/boolop/intern/BOP_Vertex.cpp
+++ b/intern/boolop/intern/BOP_Vertex.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BOP_Vertex.h"
diff --git a/intern/boolop/intern/BOP_Vertex.h b/intern/boolop/intern/BOP_Vertex.h
index a781407af34..3a9895df6d3 100644
--- a/intern/boolop/intern/BOP_Vertex.h
+++ b/intern/boolop/intern/BOP_Vertex.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BOP_VERTEX_H
diff --git a/intern/boolop/intern/Makefile b/intern/boolop/intern/Makefile
index 0838f44ca8a..6fc8d448a10 100644
--- a/intern/boolop/intern/Makefile
+++ b/intern/boolop/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# string intern Makefile
#
diff --git a/intern/bsp/CMakeLists.txt b/intern/bsp/CMakeLists.txt
index b6fbb8e4812..9980f007db8 100644
--- a/intern/bsp/CMakeLists.txt
+++ b/intern/bsp/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC intern ../container ../moto/include ../memutil)
diff --git a/intern/bsp/Makefile b/intern/bsp/Makefile
index 818e4d69606..fd106acab83 100644
--- a/intern/bsp/Makefile
+++ b/intern/bsp/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# bsp main makefile.
#
diff --git a/intern/bsp/extern/CSG_BooleanOps.h b/intern/bsp/extern/CSG_BooleanOps.h
index 1e862568cda..635e0a42358 100644
--- a/intern/bsp/extern/CSG_BooleanOps.h
+++ b/intern/bsp/extern/CSG_BooleanOps.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef CSG_BOOLEANOPS_H
diff --git a/intern/bsp/intern/BSP_CSGException.h b/intern/bsp/intern/BSP_CSGException.h
index c2d79630be2..f0e5aa2fa9f 100644
--- a/intern/bsp/intern/BSP_CSGException.h
+++ b/intern/bsp/intern/BSP_CSGException.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_CSGException_h
diff --git a/intern/bsp/intern/BSP_CSGMesh.cpp b/intern/bsp/intern/BSP_CSGMesh.cpp
index 5da39c8d551..553f39a4642 100644
--- a/intern/bsp/intern/BSP_CSGMesh.cpp
+++ b/intern/bsp/intern/BSP_CSGMesh.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/intern/bsp/intern/BSP_CSGMesh.h b/intern/bsp/intern/BSP_CSGMesh.h
index 47903520157..64ecafc2fc0 100644
--- a/intern/bsp/intern/BSP_CSGMesh.h
+++ b/intern/bsp/intern/BSP_CSGMesh.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_BSP_CSGMesh_h
diff --git a/intern/bsp/intern/BSP_CSGMesh_CFIterator.h b/intern/bsp/intern/BSP_CSGMesh_CFIterator.h
index 010f62159a5..83921a30e43 100644
--- a/intern/bsp/intern/BSP_CSGMesh_CFIterator.h
+++ b/intern/bsp/intern/BSP_CSGMesh_CFIterator.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSP_CSGMesh_CFIterator_h
diff --git a/intern/bsp/intern/BSP_MeshPrimitives.cpp b/intern/bsp/intern/BSP_MeshPrimitives.cpp
index 54db5851be3..2bc05f5536c 100644
--- a/intern/bsp/intern/BSP_MeshPrimitives.cpp
+++ b/intern/bsp/intern/BSP_MeshPrimitives.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bsp/intern/BSP_MeshPrimitives.h b/intern/bsp/intern/BSP_MeshPrimitives.h
index d245ed02524..370f0f646f5 100644
--- a/intern/bsp/intern/BSP_MeshPrimitives.h
+++ b/intern/bsp/intern/BSP_MeshPrimitives.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_BSP_MeshPrimitives
diff --git a/intern/bsp/intern/CSG_BooleanOps.cpp b/intern/bsp/intern/CSG_BooleanOps.cpp
index c6f4c5d34d0..c67cc83bf9e 100644
--- a/intern/bsp/intern/CSG_BooleanOps.cpp
+++ b/intern/bsp/intern/CSG_BooleanOps.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bsp/intern/Makefile b/intern/bsp/intern/Makefile
index a5e8565a6ff..99a21fda7d4 100644
--- a/intern/bsp/intern/Makefile
+++ b/intern/bsp/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# string intern Makefile
#
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp
index ec34b104e4a..ea580ece05e 100644
--- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp
+++ b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h
index 042c73174a6..dc4cc658c74 100644
--- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h
+++ b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSP_GhostTest_h
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp
index 4f5f5d46535..f7e3f05850b 100644
--- a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp
+++ b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h
index 314b9691137..82fef731214 100644
--- a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h
+++ b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSP_MeshDrawer_h
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp
index f148250f1aa..92de4fb0ac1 100644
--- a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp
+++ b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h
index d2e9b8cd2cc..9a74c4477c7 100644
--- a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h
+++ b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSP_PlyLoader_h
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h b/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h
index eeb4df3d0d9..daec3957a37 100644
--- a/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h
+++ b/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSP_TMesh_h
diff --git a/intern/bsp/test/BSP_GhostTest/Makefile b/intern/bsp/test/BSP_GhostTest/Makefile
index 06dded40a17..801c34bab83 100644
--- a/intern/bsp/test/BSP_GhostTest/Makefile
+++ b/intern/bsp/test/BSP_GhostTest/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# BSP_GhostTest Makefile
#
diff --git a/intern/bsp/test/BSP_GhostTest/main.cpp b/intern/bsp/test/BSP_GhostTest/main.cpp
index 6b0e0d66234..4cc7b4ea941 100644
--- a/intern/bsp/test/BSP_GhostTest/main.cpp
+++ b/intern/bsp/test/BSP_GhostTest/main.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/bsp/test/BSP_GhostTest/ply.h b/intern/bsp/test/BSP_GhostTest/ply.h
index 7947d224c5f..3b10b2f0cd5 100644
--- a/intern/bsp/test/BSP_GhostTest/ply.h
+++ b/intern/bsp/test/BSP_GhostTest/ply.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/bsp/test/BSP_GhostTest/plyfile.c b/intern/bsp/test/BSP_GhostTest/plyfile.c
index fd808aa0889..45336a677e4 100644
--- a/intern/bsp/test/BSP_GhostTest/plyfile.c
+++ b/intern/bsp/test/BSP_GhostTest/plyfile.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/bsp/test/Makefile b/intern/bsp/test/Makefile
index 17ed638d745..eebf7470a0f 100644
--- a/intern/bsp/test/Makefile
+++ b/intern/bsp/test/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# bsp test makefile.
#
diff --git a/intern/container/CMakeLists.txt b/intern/container/CMakeLists.txt
index 497a7355edf..c1057ebfe70 100644
--- a/intern/container/CMakeLists.txt
+++ b/intern/container/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC .)
diff --git a/intern/container/CTR_List.h b/intern/container/CTR_List.h
index 2ca2d60d0e7..8d62daf2139 100644
--- a/intern/container/CTR_List.h
+++ b/intern/container/CTR_List.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,38 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/intern/container/CTR_Map.h b/intern/container/CTR_Map.h
index 8329337479b..cc798186486 100644
--- a/intern/container/CTR_Map.h
+++ b/intern/container/CTR_Map.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef CTR_MAP_H
diff --git a/intern/container/CTR_TaggedIndex.h b/intern/container/CTR_TaggedIndex.h
index 87bc8a4315e..7a7bd85e890 100644
--- a/intern/container/CTR_TaggedIndex.h
+++ b/intern/container/CTR_TaggedIndex.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/container/CTR_TaggedSetOps.h b/intern/container/CTR_TaggedSetOps.h
index 0a0367ec673..7d64dbaa8ce 100644
--- a/intern/container/CTR_TaggedSetOps.h
+++ b/intern/container/CTR_TaggedSetOps.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_LOD_TaggedSetOps_h
diff --git a/intern/container/CTR_UHeap.h b/intern/container/CTR_UHeap.h
index a7fc33387ee..797c4f2b988 100644
--- a/intern/container/CTR_UHeap.h
+++ b/intern/container/CTR_UHeap.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/container/Makefile b/intern/container/Makefile
index 48343612ef2..76cba5b3ea1 100644
--- a/intern/container/Makefile
+++ b/intern/container/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# container main makefile.
#
diff --git a/intern/container/intern/CTR_List.cpp b/intern/container/intern/CTR_List.cpp
index 9cbb384c835..31db99faac7 100644
--- a/intern/container/intern/CTR_List.cpp
+++ b/intern/container/intern/CTR_List.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/container/intern/Makefile b/intern/container/intern/Makefile
index 292df5b7cbc..8bca6936d6b 100644
--- a/intern/container/intern/Makefile
+++ b/intern/container/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# container intern Makefile
#
diff --git a/intern/decimation/CMakeLists.txt b/intern/decimation/CMakeLists.txt
index 3b7f428c9b9..8d3708951b7 100644
--- a/intern/decimation/CMakeLists.txt
+++ b/intern/decimation/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC . ../moto/include ../container ../memutil)
diff --git a/intern/decimation/Makefile b/intern/decimation/Makefile
index 7bf645a39c9..9241d87c3a3 100644
--- a/intern/decimation/Makefile
+++ b/intern/decimation/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# decimation main makefile.
#
diff --git a/intern/decimation/extern/LOD_decimation.h b/intern/decimation/extern/LOD_decimation.h
index 6ebce0206f3..6455add5998 100644
--- a/intern/decimation/extern/LOD_decimation.h
+++ b/intern/decimation/extern/LOD_decimation.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/decimation/intern/LOD_DecimationClass.h b/intern/decimation/intern/LOD_DecimationClass.h
index 1a3e8dd3620..51c9c180910 100644
--- a/intern/decimation/intern/LOD_DecimationClass.h
+++ b/intern/decimation/intern/LOD_DecimationClass.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_LOD_DecimationClass_h
diff --git a/intern/decimation/intern/LOD_EdgeCollapser.cpp b/intern/decimation/intern/LOD_EdgeCollapser.cpp
index 86b2fbaf423..52b0481d126 100644
--- a/intern/decimation/intern/LOD_EdgeCollapser.cpp
+++ b/intern/decimation/intern/LOD_EdgeCollapser.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/decimation/intern/LOD_EdgeCollapser.h b/intern/decimation/intern/LOD_EdgeCollapser.h
index 482eccacec2..b0b2163d173 100644
--- a/intern/decimation/intern/LOD_EdgeCollapser.h
+++ b/intern/decimation/intern/LOD_EdgeCollapser.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLDUED_EgdeCollapser_h
diff --git a/intern/decimation/intern/LOD_ExternBufferEditor.h b/intern/decimation/intern/LOD_ExternBufferEditor.h
index 9f628c4455b..f4178a4b965 100644
--- a/intern/decimation/intern/LOD_ExternBufferEditor.h
+++ b/intern/decimation/intern/LOD_ExternBufferEditor.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/decimation/intern/LOD_ExternNormalEditor.cpp b/intern/decimation/intern/LOD_ExternNormalEditor.cpp
index 7c9191b60c7..b7c7b5a529b 100644
--- a/intern/decimation/intern/LOD_ExternNormalEditor.cpp
+++ b/intern/decimation/intern/LOD_ExternNormalEditor.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "LOD_ExternNormalEditor.h"
diff --git a/intern/decimation/intern/LOD_ExternNormalEditor.h b/intern/decimation/intern/LOD_ExternNormalEditor.h
index 190ea5bdd8c..83b50645e26 100644
--- a/intern/decimation/intern/LOD_ExternNormalEditor.h
+++ b/intern/decimation/intern/LOD_ExternNormalEditor.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_ExternNormalEditor_h
diff --git a/intern/decimation/intern/LOD_FaceNormalEditor.cpp b/intern/decimation/intern/LOD_FaceNormalEditor.cpp
index bb384dca04c..0f5086e3e95 100644
--- a/intern/decimation/intern/LOD_FaceNormalEditor.cpp
+++ b/intern/decimation/intern/LOD_FaceNormalEditor.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
// implementation of LOD_FaceNormalEditor.h
diff --git a/intern/decimation/intern/LOD_FaceNormalEditor.h b/intern/decimation/intern/LOD_FaceNormalEditor.h
index 892e1f0fbc7..f4dced1370b 100644
--- a/intern/decimation/intern/LOD_FaceNormalEditor.h
+++ b/intern/decimation/intern/LOD_FaceNormalEditor.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_FaceNormalEditor_h
diff --git a/intern/decimation/intern/LOD_ManMesh2.cpp b/intern/decimation/intern/LOD_ManMesh2.cpp
index 322a48e337b..eeb497bb09e 100644
--- a/intern/decimation/intern/LOD_ManMesh2.cpp
+++ b/intern/decimation/intern/LOD_ManMesh2.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/decimation/intern/LOD_ManMesh2.h b/intern/decimation/intern/LOD_ManMesh2.h
index 46ddcff5d80..cfa1422313a 100644
--- a/intern/decimation/intern/LOD_ManMesh2.h
+++ b/intern/decimation/intern/LOD_ManMesh2.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_ManMesh2_h
diff --git a/intern/decimation/intern/LOD_MeshBounds.h b/intern/decimation/intern/LOD_MeshBounds.h
index f694ff2dcb3..a8b29eb44f2 100644
--- a/intern/decimation/intern/LOD_MeshBounds.h
+++ b/intern/decimation/intern/LOD_MeshBounds.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_MeshBounds_h
diff --git a/intern/decimation/intern/LOD_MeshException.h b/intern/decimation/intern/LOD_MeshException.h
index 4bad167a81b..9358e0fd7e8 100644
--- a/intern/decimation/intern/LOD_MeshException.h
+++ b/intern/decimation/intern/LOD_MeshException.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_MeshExceptions_h
diff --git a/intern/decimation/intern/LOD_MeshPrimitives.cpp b/intern/decimation/intern/LOD_MeshPrimitives.cpp
index 42707252a45..e2e4481b13e 100644
--- a/intern/decimation/intern/LOD_MeshPrimitives.cpp
+++ b/intern/decimation/intern/LOD_MeshPrimitives.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/decimation/intern/LOD_MeshPrimitives.h b/intern/decimation/intern/LOD_MeshPrimitives.h
index 1168c9cc813..f5a4767f0de 100644
--- a/intern/decimation/intern/LOD_MeshPrimitives.h
+++ b/intern/decimation/intern/LOD_MeshPrimitives.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_MeshPrimitives_h
diff --git a/intern/decimation/intern/LOD_QSDecimator.cpp b/intern/decimation/intern/LOD_QSDecimator.cpp
index a9fd5267c54..1a0ec87f05b 100644
--- a/intern/decimation/intern/LOD_QSDecimator.cpp
+++ b/intern/decimation/intern/LOD_QSDecimator.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/decimation/intern/LOD_QSDecimator.h b/intern/decimation/intern/LOD_QSDecimator.h
index 0492e0bf09e..77809037d7b 100644
--- a/intern/decimation/intern/LOD_QSDecimator.h
+++ b/intern/decimation/intern/LOD_QSDecimator.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_LOD_QSDecimator_H
diff --git a/intern/decimation/intern/LOD_Quadric.h b/intern/decimation/intern/LOD_Quadric.h
index f06b0af65b0..65ba4759f0c 100644
--- a/intern/decimation/intern/LOD_Quadric.h
+++ b/intern/decimation/intern/LOD_Quadric.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_LOD_Quadric_h
diff --git a/intern/decimation/intern/LOD_QuadricEditor.cpp b/intern/decimation/intern/LOD_QuadricEditor.cpp
index c1e5614b01d..8858450ecd1 100644
--- a/intern/decimation/intern/LOD_QuadricEditor.cpp
+++ b/intern/decimation/intern/LOD_QuadricEditor.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/decimation/intern/LOD_QuadricEditor.h b/intern/decimation/intern/LOD_QuadricEditor.h
index 41e7d227d54..925045bc1e6 100644
--- a/intern/decimation/intern/LOD_QuadricEditor.h
+++ b/intern/decimation/intern/LOD_QuadricEditor.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_LOD_QuadricEditor_h
diff --git a/intern/decimation/intern/LOD_decimation.cpp b/intern/decimation/intern/LOD_decimation.cpp
index 0f6500b829d..be10c180319 100644
--- a/intern/decimation/intern/LOD_decimation.cpp
+++ b/intern/decimation/intern/LOD_decimation.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
// implementation of external c api
diff --git a/intern/decimation/intern/Makefile b/intern/decimation/intern/Makefile
index d7c9d89d9c7..49720b2d975 100644
--- a/intern/decimation/intern/Makefile
+++ b/intern/decimation/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# decimation intern Makefile
#
diff --git a/intern/elbeem/CMakeLists.txt b/intern/elbeem/CMakeLists.txt
index c0484846c6b..45e9b95e5ff 100644
--- a/intern/elbeem/CMakeLists.txt
+++ b/intern/elbeem/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC ${PNG_INC} ${ZLIB_INC} ${SDL_INC})
diff --git a/intern/elbeem/Makefile b/intern/elbeem/Makefile
index 3e0333fb3cd..9ea08d63374 100644
--- a/intern/elbeem/Makefile
+++ b/intern/elbeem/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# elbeem main makefile.
#
diff --git a/intern/elbeem/extern/LBM_fluidsim.h b/intern/elbeem/extern/LBM_fluidsim.h
index 0f7e0e1ef5d..6e7fc86213c 100644
--- a/intern/elbeem/extern/LBM_fluidsim.h
+++ b/intern/elbeem/extern/LBM_fluidsim.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef LBM_FLUIDSIM_H
#define LBM_FLUIDSIM_H
diff --git a/intern/elbeem/intern/Makefile b/intern/elbeem/intern/Makefile
index 49f0b936e6b..c03b8678186 100644
--- a/intern/elbeem/intern/Makefile
+++ b/intern/elbeem/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# elbeem intern Makefile
#
diff --git a/intern/elbeem/intern/ntl_vector3dim.h b/intern/elbeem/intern/ntl_vector3dim.h
index 27c3be0d71f..6f17f9f5e7b 100644
--- a/intern/elbeem/intern/ntl_vector3dim.h
+++ b/intern/elbeem/intern/ntl_vector3dim.h
@@ -825,7 +825,7 @@ template<class T> inline ntlColor vec2Col(T v) { return ntlColor(v[0],v[1],v[2])
#endif
#endif
#endif
-
+
#if GFX_PRECISION==1
typedef float gfxReal;
#define GFX_REAL_MAX __FLT_MAX__
diff --git a/intern/elbeem/intern/solver_util.cpp b/intern/elbeem/intern/solver_util.cpp
index a6685babe68..25b8b98b3c6 100644
--- a/intern/elbeem/intern/solver_util.cpp
+++ b/intern/elbeem/intern/solver_util.cpp
@@ -37,10 +37,10 @@ void LbmFsgrSolver::prepareVisualization( void ) {
int lev = mMaxRefine;
int workSet = mLevel[lev].setCurr;
- int mainGravDir=0;
+ int mainGravDir=6; // if normalizing fails, we asume z-direction gravity
LbmFloat mainGravLen = 0.;
FORDF1{
- LbmFloat thisGravLen = dot(LbmVec(dfVecX[l],dfVecY[l],dfVecZ[l]), getNormalized(mLevel[mMaxRefine].gravity) );
+ LbmFloat thisGravLen = dot(LbmVec(dfVecX[l],dfVecY[l],dfVecZ[l]), mLevel[mMaxRefine].gravity );
if(thisGravLen>mainGravLen) {
mainGravLen = thisGravLen;
mainGravDir = l;
@@ -112,6 +112,7 @@ void LbmFsgrSolver::prepareVisualization( void ) {
const CellFlagType nbflag = RFLAG_NB(lev, i,j,k, workSet,l);
if(nbflag&CFInter){ intercnt++; }
+ // check all directions otherwise we get bugs with splashes on obstacles
if(l!=mainGravDir) continue; // only check bnd along main grav. dir
//if((nbflag&CFBnd)&&(nbflag&CFBndNoslip)){ noslipbnd=1; }
if((nbflag&CFBnd)){ noslipbnd=1; }
@@ -140,11 +141,10 @@ void LbmFsgrSolver::prepareVisualization( void ) {
if(val<minval) val = minval;
*mpIso->lbmGetData(i,j,ZKOFF) += minval-( val * mIsoWeight[13] );
}
-#endif // SURFACE_ENH>0
-
} else { // all others, unused?
continue;
}
+#endif // SURFACE_ENH>0
*mpIso->lbmGetData( i-1 , j-1 ,ZKOFF-ZKD1) += ( val * mIsoWeight[0] );
*mpIso->lbmGetData( i , j-1 ,ZKOFF-ZKD1) += ( val * mIsoWeight[1] );
diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt
index 1e1380df9a3..b559d49958c 100644
--- a/intern/ghost/CMakeLists.txt
+++ b/intern/ghost/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC . ../string ${WINTAB_INC})
diff --git a/intern/ghost/GHOST_C-api.h b/intern/ghost/GHOST_C-api.h
index 11b0204eacb..cb1eac7a9a6 100644
--- a/intern/ghost/GHOST_C-api.h
+++ b/intern/ghost/GHOST_C-api.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_C-api.h
diff --git a/intern/ghost/GHOST_IEvent.h b/intern/ghost/GHOST_IEvent.h
index 4ec47c6d732..c668649d658 100644
--- a/intern/ghost/GHOST_IEvent.h
+++ b/intern/ghost/GHOST_IEvent.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_IEvent.h
diff --git a/intern/ghost/GHOST_IEventConsumer.h b/intern/ghost/GHOST_IEventConsumer.h
index 4186d4c1cab..59f39968a79 100644
--- a/intern/ghost/GHOST_IEventConsumer.h
+++ b/intern/ghost/GHOST_IEventConsumer.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_IEventConsumer.h
diff --git a/intern/ghost/GHOST_ISystem.h b/intern/ghost/GHOST_ISystem.h
index 0cb860d8158..2ad2e9ddce7 100644
--- a/intern/ghost/GHOST_ISystem.h
+++ b/intern/ghost/GHOST_ISystem.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_ISystem.h
diff --git a/intern/ghost/GHOST_ITimerTask.h b/intern/ghost/GHOST_ITimerTask.h
index fa2f788823f..dec5c21b3db 100644
--- a/intern/ghost/GHOST_ITimerTask.h
+++ b/intern/ghost/GHOST_ITimerTask.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_ITimerTask.h
diff --git a/intern/ghost/GHOST_IWindow.h b/intern/ghost/GHOST_IWindow.h
index 5f6bbe553c6..0861d8b8946 100644
--- a/intern/ghost/GHOST_IWindow.h
+++ b/intern/ghost/GHOST_IWindow.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_IWindow.h
diff --git a/intern/ghost/GHOST_Rect.h b/intern/ghost/GHOST_Rect.h
index 6b303504572..6271ecad408 100644
--- a/intern/ghost/GHOST_Rect.h
+++ b/intern/ghost/GHOST_Rect.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_Rect.h
diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h
index 7b791c44fd8..f81192f1887 100644
--- a/intern/ghost/GHOST_Types.h
+++ b/intern/ghost/GHOST_Types.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _GHOST_TYPES_H_
diff --git a/intern/ghost/Makefile b/intern/ghost/Makefile
index fe65afbfb93..f809a32ac8f 100644
--- a/intern/ghost/Makefile
+++ b/intern/ghost/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# ghost main makefile.
#
diff --git a/intern/ghost/intern/GHOST_Buttons.cpp b/intern/ghost/intern/GHOST_Buttons.cpp
index def01b0786f..3db6bfe9f2c 100644
--- a/intern/ghost/intern/GHOST_Buttons.cpp
+++ b/intern/ghost/intern/GHOST_Buttons.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GHOST_Buttons.h"
diff --git a/intern/ghost/intern/GHOST_Buttons.h b/intern/ghost/intern/GHOST_Buttons.h
index e244d54b2c6..5a5e32b1f45 100644
--- a/intern/ghost/intern/GHOST_Buttons.h
+++ b/intern/ghost/intern/GHOST_Buttons.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_Buttons.h
diff --git a/intern/ghost/intern/GHOST_C-api.cpp b/intern/ghost/intern/GHOST_C-api.cpp
index fe5ed2bf86a..b7643784250 100644
--- a/intern/ghost/intern/GHOST_C-api.cpp
+++ b/intern/ghost/intern/GHOST_C-api.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp b/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp
index 2a5e7fb9b71..9e7337c2721 100644
--- a/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp
+++ b/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_CallbackEventConsumer.h b/intern/ghost/intern/GHOST_CallbackEventConsumer.h
index eb54d1c0e14..0929ba64c65 100644
--- a/intern/ghost/intern/GHOST_CallbackEventConsumer.h
+++ b/intern/ghost/intern/GHOST_CallbackEventConsumer.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_CallbackEventConsumer.h
diff --git a/intern/ghost/intern/GHOST_Debug.h b/intern/ghost/intern/GHOST_Debug.h
index 5a56c8ef6ea..7f836202720 100644
--- a/intern/ghost/intern/GHOST_Debug.h
+++ b/intern/ghost/intern/GHOST_Debug.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_DisplayManager.cpp b/intern/ghost/intern/GHOST_DisplayManager.cpp
index f806daee86b..a06692797c7 100644
--- a/intern/ghost/intern/GHOST_DisplayManager.cpp
+++ b/intern/ghost/intern/GHOST_DisplayManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_DisplayManager.h b/intern/ghost/intern/GHOST_DisplayManager.h
index d7133f4401f..a707b5aeddd 100644
--- a/intern/ghost/intern/GHOST_DisplayManager.h
+++ b/intern/ghost/intern/GHOST_DisplayManager.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_DisplayManager.h
diff --git a/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp b/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp
index 9877d55d8a5..a0e0f6a8c0a 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp
+++ b/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_DisplayManagerCarbon.h b/intern/ghost/intern/GHOST_DisplayManagerCarbon.h
index 42a1aa37a5a..3655fe86253 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerCarbon.h
+++ b/intern/ghost/intern/GHOST_DisplayManagerCarbon.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_DisplayManagerCarbon.h
diff --git a/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp b/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp
index 3fbacfb1db8..a8565578967 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp
+++ b/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_DisplayManagerWin32.h b/intern/ghost/intern/GHOST_DisplayManagerWin32.h
index 71fc56257f8..63bd26c97bc 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerWin32.h
+++ b/intern/ghost/intern/GHOST_DisplayManagerWin32.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_DisplayManagerWin32.h
diff --git a/intern/ghost/intern/GHOST_DisplayManagerX11.cpp b/intern/ghost/intern/GHOST_DisplayManagerX11.cpp
index 9695e24e737..85170de9458 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerX11.cpp
+++ b/intern/ghost/intern/GHOST_DisplayManagerX11.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/ghost/intern/GHOST_DisplayManagerX11.h b/intern/ghost/intern/GHOST_DisplayManagerX11.h
index 18226a25e74..4fbc7231b29 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerX11.h
+++ b/intern/ghost/intern/GHOST_DisplayManagerX11.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_DisplayManagerX11.h
diff --git a/intern/ghost/intern/GHOST_Event.h b/intern/ghost/intern/GHOST_Event.h
index e4844f9bab5..20703b66c4f 100644
--- a/intern/ghost/intern/GHOST_Event.h
+++ b/intern/ghost/intern/GHOST_Event.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_Event.h
diff --git a/intern/ghost/intern/GHOST_EventButton.h b/intern/ghost/intern/GHOST_EventButton.h
index c808fd44430..82abec8d547 100644
--- a/intern/ghost/intern/GHOST_EventButton.h
+++ b/intern/ghost/intern/GHOST_EventButton.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_EventButton.h
diff --git a/intern/ghost/intern/GHOST_EventCursor.h b/intern/ghost/intern/GHOST_EventCursor.h
index a174242653e..1d1474c96d8 100644
--- a/intern/ghost/intern/GHOST_EventCursor.h
+++ b/intern/ghost/intern/GHOST_EventCursor.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_EventCursor.h
diff --git a/intern/ghost/intern/GHOST_EventKey.h b/intern/ghost/intern/GHOST_EventKey.h
index b170d5a9a48..9f2767ee97a 100644
--- a/intern/ghost/intern/GHOST_EventKey.h
+++ b/intern/ghost/intern/GHOST_EventKey.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_EventKey.h
diff --git a/intern/ghost/intern/GHOST_EventManager.cpp b/intern/ghost/intern/GHOST_EventManager.cpp
index ba20cce12fd..f9b13115f32 100644
--- a/intern/ghost/intern/GHOST_EventManager.cpp
+++ b/intern/ghost/intern/GHOST_EventManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_EventManager.h b/intern/ghost/intern/GHOST_EventManager.h
index 068ded8ddee..33e5c2f20ba 100644
--- a/intern/ghost/intern/GHOST_EventManager.h
+++ b/intern/ghost/intern/GHOST_EventManager.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_EventManager.h
diff --git a/intern/ghost/intern/GHOST_EventPrinter.cpp b/intern/ghost/intern/GHOST_EventPrinter.cpp
index ad65d1fbb18..ae9c0d81a01 100644
--- a/intern/ghost/intern/GHOST_EventPrinter.cpp
+++ b/intern/ghost/intern/GHOST_EventPrinter.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_EventPrinter.h
diff --git a/intern/ghost/intern/GHOST_EventPrinter.h b/intern/ghost/intern/GHOST_EventPrinter.h
index 9838d2fb6d5..ceba260d7b3 100644
--- a/intern/ghost/intern/GHOST_EventPrinter.h
+++ b/intern/ghost/intern/GHOST_EventPrinter.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_EventPrinter.h
diff --git a/intern/ghost/intern/GHOST_EventWheel.h b/intern/ghost/intern/GHOST_EventWheel.h
index 7776a1778db..4b850609976 100644
--- a/intern/ghost/intern/GHOST_EventWheel.h
+++ b/intern/ghost/intern/GHOST_EventWheel.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_EventWheel.h
diff --git a/intern/ghost/intern/GHOST_ISystem.cpp b/intern/ghost/intern/GHOST_ISystem.cpp
index 677978973aa..9329e68132b 100644
--- a/intern/ghost/intern/GHOST_ISystem.cpp
+++ b/intern/ghost/intern/GHOST_ISystem.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_ModifierKeys.cpp b/intern/ghost/intern/GHOST_ModifierKeys.cpp
index 36293d87c26..6cc95fda43e 100644
--- a/intern/ghost/intern/GHOST_ModifierKeys.cpp
+++ b/intern/ghost/intern/GHOST_ModifierKeys.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_ModifierKeys.h b/intern/ghost/intern/GHOST_ModifierKeys.h
index 6b26dd5829e..fcb9f3d41c2 100644
--- a/intern/ghost/intern/GHOST_ModifierKeys.h
+++ b/intern/ghost/intern/GHOST_ModifierKeys.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_ModifierKeys.h
diff --git a/intern/ghost/intern/GHOST_Rect.cpp b/intern/ghost/intern/GHOST_Rect.cpp
index 70773fe1497..2d6464d9b95 100644
--- a/intern/ghost/intern/GHOST_Rect.cpp
+++ b/intern/ghost/intern/GHOST_Rect.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/ghost/intern/GHOST_System.cpp b/intern/ghost/intern/GHOST_System.cpp
index b0095a6a5a7..458a35bf34b 100644
--- a/intern/ghost/intern/GHOST_System.cpp
+++ b/intern/ghost/intern/GHOST_System.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_System.h b/intern/ghost/intern/GHOST_System.h
index 8477d70c42f..efce931860a 100644
--- a/intern/ghost/intern/GHOST_System.h
+++ b/intern/ghost/intern/GHOST_System.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_System.h
diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp
index c14ea101c6b..568f7ecf9b8 100644
--- a/intern/ghost/intern/GHOST_SystemCarbon.cpp
+++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_SystemCarbon.h b/intern/ghost/intern/GHOST_SystemCarbon.h
index 68e2d059226..2afc8e0885a 100644
--- a/intern/ghost/intern/GHOST_SystemCarbon.h
+++ b/intern/ghost/intern/GHOST_SystemCarbon.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_SystemCarbon.h
diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp
index c15e4f1246c..82a76b3c706 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.cpp
+++ b/intern/ghost/intern/GHOST_SystemWin32.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_SystemWin32.h b/intern/ghost/intern/GHOST_SystemWin32.h
index 762e5a988a4..c26ef25e366 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.h
+++ b/intern/ghost/intern/GHOST_SystemWin32.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_SystemWin32.h
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp
index 1b0d4448f1d..d6868d143dd 100644
--- a/intern/ghost/intern/GHOST_SystemX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemX11.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h
index 1c100bee852..726cdfb2fff 100644
--- a/intern/ghost/intern/GHOST_SystemX11.h
+++ b/intern/ghost/intern/GHOST_SystemX11.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_SystemX11.h
diff --git a/intern/ghost/intern/GHOST_TimerManager.cpp b/intern/ghost/intern/GHOST_TimerManager.cpp
index 9f50b350baa..14b78ab6f7c 100644
--- a/intern/ghost/intern/GHOST_TimerManager.cpp
+++ b/intern/ghost/intern/GHOST_TimerManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_TimerManager.h b/intern/ghost/intern/GHOST_TimerManager.h
index ff42f95fc0f..27bbdb1ea1d 100644
--- a/intern/ghost/intern/GHOST_TimerManager.h
+++ b/intern/ghost/intern/GHOST_TimerManager.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_TimerManager.h
diff --git a/intern/ghost/intern/GHOST_TimerTask.h b/intern/ghost/intern/GHOST_TimerTask.h
index 49bbe5e09ab..14ddcc63c2c 100644
--- a/intern/ghost/intern/GHOST_TimerTask.h
+++ b/intern/ghost/intern/GHOST_TimerTask.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_TimerTask.h
diff --git a/intern/ghost/intern/GHOST_Window.cpp b/intern/ghost/intern/GHOST_Window.cpp
index f4f7c581814..a35680d1586 100644
--- a/intern/ghost/intern/GHOST_Window.cpp
+++ b/intern/ghost/intern/GHOST_Window.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_Window.h b/intern/ghost/intern/GHOST_Window.h
index acf28177b37..06318613b14 100644
--- a/intern/ghost/intern/GHOST_Window.h
+++ b/intern/ghost/intern/GHOST_Window.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_Window.h
diff --git a/intern/ghost/intern/GHOST_WindowCarbon.cpp b/intern/ghost/intern/GHOST_WindowCarbon.cpp
index 04debe36191..9ae9e283b69 100644
--- a/intern/ghost/intern/GHOST_WindowCarbon.cpp
+++ b/intern/ghost/intern/GHOST_WindowCarbon.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_WindowCarbon.h b/intern/ghost/intern/GHOST_WindowCarbon.h
index 5b81470a030..dd00add7fb1 100644
--- a/intern/ghost/intern/GHOST_WindowCarbon.h
+++ b/intern/ghost/intern/GHOST_WindowCarbon.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_WindowCarbon.h
diff --git a/intern/ghost/intern/GHOST_WindowManager.cpp b/intern/ghost/intern/GHOST_WindowManager.cpp
index 775260a9503..2b0809929c5 100644
--- a/intern/ghost/intern/GHOST_WindowManager.cpp
+++ b/intern/ghost/intern/GHOST_WindowManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_WindowManager.h b/intern/ghost/intern/GHOST_WindowManager.h
index f2ad003d801..46d8036328e 100644
--- a/intern/ghost/intern/GHOST_WindowManager.h
+++ b/intern/ghost/intern/GHOST_WindowManager.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_WindowManager.h
diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp
index ef7294c2354..230df02c359 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.cpp
+++ b/intern/ghost/intern/GHOST_WindowWin32.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/intern/GHOST_WindowWin32.h b/intern/ghost/intern/GHOST_WindowWin32.h
index 08209c0ec29..8b461802fa4 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.h
+++ b/intern/ghost/intern/GHOST_WindowWin32.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_WindowWin32.h
diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp
index 1b9b3c491d5..a98a59377c7 100644
--- a/intern/ghost/intern/GHOST_WindowX11.cpp
+++ b/intern/ghost/intern/GHOST_WindowX11.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GHOST_WindowX11.h"
diff --git a/intern/ghost/intern/GHOST_WindowX11.h b/intern/ghost/intern/GHOST_WindowX11.h
index 0de4f65acd1..1203dbde80d 100644
--- a/intern/ghost/intern/GHOST_WindowX11.h
+++ b/intern/ghost/intern/GHOST_WindowX11.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file GHOST_WindowX11.h
diff --git a/intern/ghost/intern/Makefile b/intern/ghost/intern/Makefile
index cccbf9a822b..467ec768720 100644
--- a/intern/ghost/intern/Makefile
+++ b/intern/ghost/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# ghost intern Makefile
#
diff --git a/intern/ghost/test/Makefile b/intern/ghost/test/Makefile
index ded21c32cc6..d4250cecf26 100644
--- a/intern/ghost/test/Makefile
+++ b/intern/ghost/test/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# GHOST test applications makefile.
# This bounces to test application directories.
#
diff --git a/intern/ghost/test/gears/GHOST_C-Test.c b/intern/ghost/test/gears/GHOST_C-Test.c
index 9fd4e155b3b..958b4da46af 100644
--- a/intern/ghost/test/gears/GHOST_C-Test.c
+++ b/intern/ghost/test/gears/GHOST_C-Test.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/test/gears/GHOST_Test.cpp b/intern/ghost/test/gears/GHOST_Test.cpp
index 3abdd3977eb..974deeb72fd 100644
--- a/intern/ghost/test/gears/GHOST_Test.cpp
+++ b/intern/ghost/test/gears/GHOST_Test.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/ghost/test/gears/Makefile b/intern/ghost/test/gears/Makefile
index b7966b4d157..23e76778f69 100644
--- a/intern/ghost/test/gears/Makefile
+++ b/intern/ghost/test/gears/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# GHOST gears test application Makefile
#
diff --git a/intern/ghost/test/multitest/Basic.c b/intern/ghost/test/multitest/Basic.c
index db2ad9428b2..20d40278798 100644
--- a/intern/ghost/test/multitest/Basic.c
+++ b/intern/ghost/test/multitest/Basic.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Basic.h"
diff --git a/intern/ghost/test/multitest/Basic.h b/intern/ghost/test/multitest/Basic.h
index 94fb0cdfc17..351fdf43661 100644
--- a/intern/ghost/test/multitest/Basic.h
+++ b/intern/ghost/test/multitest/Basic.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
int min_i (int a, int b);
diff --git a/intern/ghost/test/multitest/EventToBuf.c b/intern/ghost/test/multitest/EventToBuf.c
index 8ca8c9cecc8..7443872ae1c 100644
--- a/intern/ghost/test/multitest/EventToBuf.c
+++ b/intern/ghost/test/multitest/EventToBuf.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/intern/ghost/test/multitest/EventToBuf.h b/intern/ghost/test/multitest/EventToBuf.h
index 0324af1f73f..a7fce592ff9 100644
--- a/intern/ghost/test/multitest/EventToBuf.h
+++ b/intern/ghost/test/multitest/EventToBuf.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
char *eventtype_to_string(GHOST_TEventType type);
diff --git a/intern/ghost/test/multitest/GL.h b/intern/ghost/test/multitest/GL.h
index 7a96ae9e9f8..172796ba557 100644
--- a/intern/ghost/test/multitest/GL.h
+++ b/intern/ghost/test/multitest/GL.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#if defined(WIN32) || defined(__APPLE__)
diff --git a/intern/ghost/test/multitest/Makefile b/intern/ghost/test/multitest/Makefile
index a424a397502..e67faf012d2 100644
--- a/intern/ghost/test/multitest/Makefile
+++ b/intern/ghost/test/multitest/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# GHOST gears test application Makefile
#
diff --git a/intern/ghost/test/multitest/MultiTest.c b/intern/ghost/test/multitest/MultiTest.c
index e81fb3c034e..1219ae83301 100644
--- a/intern/ghost/test/multitest/MultiTest.c
+++ b/intern/ghost/test/multitest/MultiTest.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#define FALSE 0
diff --git a/intern/ghost/test/multitest/ScrollBar.c b/intern/ghost/test/multitest/ScrollBar.c
index 6ede0619b5f..5c7586037d4 100644
--- a/intern/ghost/test/multitest/ScrollBar.c
+++ b/intern/ghost/test/multitest/ScrollBar.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/intern/ghost/test/multitest/ScrollBar.h b/intern/ghost/test/multitest/ScrollBar.h
index b49ad041415..d6fd3dc2552 100644
--- a/intern/ghost/test/multitest/ScrollBar.h
+++ b/intern/ghost/test/multitest/ScrollBar.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
typedef struct _ScrollBar ScrollBar;
diff --git a/intern/ghost/test/multitest/Util.c b/intern/ghost/test/multitest/Util.c
index 4cf23ff06a9..c4d5e890adb 100644
--- a/intern/ghost/test/multitest/Util.c
+++ b/intern/ghost/test/multitest/Util.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/intern/ghost/test/multitest/Util.h b/intern/ghost/test/multitest/Util.h
index e3e51824515..33632308ae2 100644
--- a/intern/ghost/test/multitest/Util.h
+++ b/intern/ghost/test/multitest/Util.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
void* memdbl (void *mem, int *size_pr, int item_size);
diff --git a/intern/ghost/test/multitest/WindowData.c b/intern/ghost/test/multitest/WindowData.c
index 3c5739fd593..2e67b559b48 100644
--- a/intern/ghost/test/multitest/WindowData.c
+++ b/intern/ghost/test/multitest/WindowData.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/intern/ghost/test/multitest/WindowData.h b/intern/ghost/test/multitest/WindowData.h
index 10a1ca710f2..311a5194a5c 100644
--- a/intern/ghost/test/multitest/WindowData.h
+++ b/intern/ghost/test/multitest/WindowData.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
typedef void (*WindowDataHandler)(void *priv, GHOST_EventHandle evt);
diff --git a/intern/guardedalloc/CMakeLists.txt b/intern/guardedalloc/CMakeLists.txt
index 71e3a40fefc..af64fb99d58 100644
--- a/intern/guardedalloc/CMakeLists.txt
+++ b/intern/guardedalloc/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC .)
diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h
index 73eddff7d8a..d004e7952cc 100644
--- a/intern/guardedalloc/MEM_guardedalloc.h
+++ b/intern/guardedalloc/MEM_guardedalloc.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/guardedalloc/Makefile b/intern/guardedalloc/Makefile
index 702e7d5264f..f0cef3d222c 100644
--- a/intern/guardedalloc/Makefile
+++ b/intern/guardedalloc/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# decimation main makefile.
#
diff --git a/intern/guardedalloc/intern/Makefile b/intern/guardedalloc/intern/Makefile
index bc96ba5f27f..a55d6375014 100644
--- a/intern/guardedalloc/intern/Makefile
+++ b/intern/guardedalloc/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# guardedalloc intern Makefile
#
diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c
index af9443428f7..f95d9aa418a 100644
--- a/intern/guardedalloc/intern/mallocn.c
+++ b/intern/guardedalloc/intern/mallocn.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/guardedalloc/test/Makefile b/intern/guardedalloc/test/Makefile
index 760695bd19e..a0feb359940 100644
--- a/intern/guardedalloc/test/Makefile
+++ b/intern/guardedalloc/test/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# Test the guarded memory module
#
diff --git a/intern/guardedalloc/test/simpletest/Makefile b/intern/guardedalloc/test/simpletest/Makefile
index 8f1db9c4cac..2ee39564b75 100644
--- a/intern/guardedalloc/test/simpletest/Makefile
+++ b/intern/guardedalloc/test/simpletest/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# Test the guarded memory module
#
diff --git a/intern/guardedalloc/test/simpletest/memtest.c b/intern/guardedalloc/test/simpletest/memtest.c
index c35af2d9ce2..ab8ccf942a7 100644
--- a/intern/guardedalloc/test/simpletest/memtest.c
+++ b/intern/guardedalloc/test/simpletest/memtest.c
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/iksolver/CMakeLists.txt b/intern/iksolver/CMakeLists.txt
index c0990c2a405..da69f2a3332 100644
--- a/intern/iksolver/CMakeLists.txt
+++ b/intern/iksolver/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC intern ../moto/include ../memutil)
diff --git a/intern/iksolver/Makefile b/intern/iksolver/Makefile
index b439dcf8fa3..a6cfa88eb30 100644
--- a/intern/iksolver/Makefile
+++ b/intern/iksolver/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# iksolver main makefile.
#
diff --git a/intern/iksolver/extern/IK_solver.h b/intern/iksolver/extern/IK_solver.h
index bf53a9e3724..e80f66b22f9 100644
--- a/intern/iksolver/extern/IK_solver.h
+++ b/intern/iksolver/extern/IK_solver.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/iksolver/intern/IK_QJacobian.cpp b/intern/iksolver/intern/IK_QJacobian.cpp
index 1dd4d086aa8..f2b350599d0 100644
--- a/intern/iksolver/intern/IK_QJacobian.cpp
+++ b/intern/iksolver/intern/IK_QJacobian.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original Author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "IK_QJacobian.h"
diff --git a/intern/iksolver/intern/IK_QJacobian.h b/intern/iksolver/intern/IK_QJacobian.h
index 3e20e4a9fd0..9c63ef91fec 100644
--- a/intern/iksolver/intern/IK_QJacobian.h
+++ b/intern/iksolver/intern/IK_QJacobian.h
@@ -1,15 +1,12 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Original Author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_IK_QJacobian_h
diff --git a/intern/iksolver/intern/IK_QJacobianSolver.cpp b/intern/iksolver/intern/IK_QJacobianSolver.cpp
index 17750a7195f..a0a0e277631 100644
--- a/intern/iksolver/intern/IK_QJacobianSolver.cpp
+++ b/intern/iksolver/intern/IK_QJacobianSolver.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original Author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/intern/iksolver/intern/IK_QJacobianSolver.h b/intern/iksolver/intern/IK_QJacobianSolver.h
index 9ad46cd0aa6..afe18f5522d 100644
--- a/intern/iksolver/intern/IK_QJacobianSolver.h
+++ b/intern/iksolver/intern/IK_QJacobianSolver.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original Author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_IK_QJacobianSolver_h
diff --git a/intern/iksolver/intern/IK_QSegment.cpp b/intern/iksolver/intern/IK_QSegment.cpp
index bf38c369363..c52f1e596b9 100644
--- a/intern/iksolver/intern/IK_QSegment.cpp
+++ b/intern/iksolver/intern/IK_QSegment.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original Author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "IK_QSegment.h"
diff --git a/intern/iksolver/intern/IK_QSegment.h b/intern/iksolver/intern/IK_QSegment.h
index 3c5df463468..23f7d4cf0d2 100644
--- a/intern/iksolver/intern/IK_QSegment.h
+++ b/intern/iksolver/intern/IK_QSegment.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_IK_QSegment_h
diff --git a/intern/iksolver/intern/IK_QTask.cpp b/intern/iksolver/intern/IK_QTask.cpp
index c72f146b36e..91c89fb2e80 100644
--- a/intern/iksolver/intern/IK_QTask.cpp
+++ b/intern/iksolver/intern/IK_QTask.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original Author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "IK_QTask.h"
diff --git a/intern/iksolver/intern/IK_QTask.h b/intern/iksolver/intern/IK_QTask.h
index f2fd34119a1..c291a0e7e50 100644
--- a/intern/iksolver/intern/IK_QTask.h
+++ b/intern/iksolver/intern/IK_QTask.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_IK_QTask_h
diff --git a/intern/iksolver/intern/IK_Solver.cpp b/intern/iksolver/intern/IK_Solver.cpp
index 140c35c8c46..9de937ea4b2 100644
--- a/intern/iksolver/intern/IK_Solver.cpp
+++ b/intern/iksolver/intern/IK_Solver.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original Author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "../extern/IK_solver.h"
diff --git a/intern/iksolver/intern/MT_ExpMap.cpp b/intern/iksolver/intern/MT_ExpMap.cpp
index 9b758103de8..23379e829cb 100644
--- a/intern/iksolver/intern/MT_ExpMap.cpp
+++ b/intern/iksolver/intern/MT_ExpMap.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original Author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "MT_ExpMap.h"
diff --git a/intern/iksolver/intern/MT_ExpMap.h b/intern/iksolver/intern/MT_ExpMap.h
index 401993764aa..03dbb79e906 100644
--- a/intern/iksolver/intern/MT_ExpMap.h
+++ b/intern/iksolver/intern/MT_ExpMap.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Original author: Laurence
* Contributor(s): Brecht
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef MT_ExpMap_H
diff --git a/intern/iksolver/intern/Makefile b/intern/iksolver/intern/Makefile
index fff4aec252d..8c90a9d5759 100644
--- a/intern/iksolver/intern/Makefile
+++ b/intern/iksolver/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# iksolver intern Makefile
#
diff --git a/intern/iksolver/test/Makefile b/intern/iksolver/test/Makefile
index c472c514bad..4ab317f9e9f 100644
--- a/intern/iksolver/test/Makefile
+++ b/intern/iksolver/test/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# iksolver test makefile.
#
diff --git a/intern/iksolver/test/ik_glut_test/Makefile b/intern/iksolver/test/ik_glut_test/Makefile
index 4b47af16599..55f7d9ee659 100644
--- a/intern/iksolver/test/ik_glut_test/Makefile
+++ b/intern/iksolver/test/ik_glut_test/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# iksolver subdir bouncer. Pure waste.
#
diff --git a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp
index 6161addc170..42bc5b5f15e 100644
--- a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp
+++ b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.h b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.h
index 706ccb92dec..87149eb5e2f 100644
--- a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.h
+++ b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_GlutDrawer
diff --git a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp
index 454e76f11bb..ef7a9cadff4 100644
--- a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp
+++ b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.h b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.h
index 595e5e19d0e..30330c3b3c6 100644
--- a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.h
+++ b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_GlutKeyboardManager
diff --git a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp
index 8221cb55a00..3bc92693882 100644
--- a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp
+++ b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.h b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.h
index 9675bd3ca1c..0c4b70a8cfd 100644
--- a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.h
+++ b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_GlutMouseManager_h
diff --git a/intern/iksolver/test/ik_glut_test/common/Makefile b/intern/iksolver/test/ik_glut_test/common/Makefile
index 07ad1837a7d..df0286040cd 100644
--- a/intern/iksolver/test/ik_glut_test/common/Makefile
+++ b/intern/iksolver/test/ik_glut_test/common/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# iksolver test intern Makefile
#
diff --git a/intern/iksolver/test/ik_glut_test/intern/ChainDrawer.h b/intern/iksolver/test/ik_glut_test/intern/ChainDrawer.h
index 6312d9c23f9..e54c1c8ade3 100644
--- a/intern/iksolver/test/ik_glut_test/intern/ChainDrawer.h
+++ b/intern/iksolver/test/ik_glut_test/intern/ChainDrawer.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_ChainDrawer_h
diff --git a/intern/iksolver/test/ik_glut_test/intern/Makefile b/intern/iksolver/test/ik_glut_test/intern/Makefile
index fe1f4b54182..8bb1d0ccd36 100644
--- a/intern/iksolver/test/ik_glut_test/intern/Makefile
+++ b/intern/iksolver/test/ik_glut_test/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# iksolver test intern Makefile
#
diff --git a/intern/iksolver/test/ik_glut_test/intern/MyGlutKeyHandler.h b/intern/iksolver/test/ik_glut_test/intern/MyGlutKeyHandler.h
index e9a85fad320..5ef17be523e 100644
--- a/intern/iksolver/test/ik_glut_test/intern/MyGlutKeyHandler.h
+++ b/intern/iksolver/test/ik_glut_test/intern/MyGlutKeyHandler.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_MyGlutKeyHandler_h
diff --git a/intern/iksolver/test/ik_glut_test/intern/MyGlutMouseHandler.h b/intern/iksolver/test/ik_glut_test/intern/MyGlutMouseHandler.h
index 978d9693692..6f0cd0f6e78 100644
--- a/intern/iksolver/test/ik_glut_test/intern/MyGlutMouseHandler.h
+++ b/intern/iksolver/test/ik_glut_test/intern/MyGlutMouseHandler.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NAN_INCLUDED_MyGlutMouseHandler_h
diff --git a/intern/iksolver/test/ik_glut_test/intern/main.cpp b/intern/iksolver/test/ik_glut_test/intern/main.cpp
index 7f1cce80a7e..7372b3f1858 100644
--- a/intern/iksolver/test/ik_glut_test/intern/main.cpp
+++ b/intern/iksolver/test/ik_glut_test/intern/main.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,38 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/memutil/CMakeLists.txt b/intern/memutil/CMakeLists.txt
index a116ca8b721..ce7872a4f8f 100644
--- a/intern/memutil/CMakeLists.txt
+++ b/intern/memutil/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC . ..)
diff --git a/intern/memutil/MEM_Allocator.h b/intern/memutil/MEM_Allocator.h
index 68712e45558..d5ae94cc6b8 100644
--- a/intern/memutil/MEM_Allocator.h
+++ b/intern/memutil/MEM_Allocator.h
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,7 +18,7 @@
*
* Contributor(s): Peter Schlaile <peter@schlaile.de> 2005
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __MEM_Allocator_h_included__
diff --git a/intern/memutil/MEM_CacheLimiter.h b/intern/memutil/MEM_CacheLimiter.h
index 13fb6b23446..cada06ae523 100644
--- a/intern/memutil/MEM_CacheLimiter.h
+++ b/intern/memutil/MEM_CacheLimiter.h
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,7 +18,7 @@
*
* Contributor(s): Peter Schlaile <peter@schlaile.de> 2005
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __MEM_cache_limiter_h_included__
diff --git a/intern/memutil/MEM_CacheLimiterC-Api.h b/intern/memutil/MEM_CacheLimiterC-Api.h
index f06acb5adea..21e249799f5 100644
--- a/intern/memutil/MEM_CacheLimiterC-Api.h
+++ b/intern/memutil/MEM_CacheLimiterC-Api.h
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,7 +18,7 @@
*
* Contributor(s): Peter Schlaile <peter@schlaile.de> 2005
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __MEM_cache_limiter_c_api_h_included__
diff --git a/intern/memutil/MEM_NonCopyable.h b/intern/memutil/MEM_NonCopyable.h
index e413c2ce28c..b517c54e378 100644
--- a/intern/memutil/MEM_NonCopyable.h
+++ b/intern/memutil/MEM_NonCopyable.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file MEM_NonCopyable.h
diff --git a/intern/memutil/MEM_RefCountPtr.h b/intern/memutil/MEM_RefCountPtr.h
index 042c90fa0cb..0cfb0066ff7 100644
--- a/intern/memutil/MEM_RefCountPtr.h
+++ b/intern/memutil/MEM_RefCountPtr.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file MEM_RefCountPtr.h
diff --git a/intern/memutil/MEM_RefCounted.h b/intern/memutil/MEM_RefCounted.h
index 239465cdf34..aed6d48271f 100644
--- a/intern/memutil/MEM_RefCounted.h
+++ b/intern/memutil/MEM_RefCounted.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file MEM_RefCounted.h
diff --git a/intern/memutil/MEM_RefCountedC-Api.h b/intern/memutil/MEM_RefCountedC-Api.h
index f78194fe2f6..fbfb5498002 100644
--- a/intern/memutil/MEM_RefCountedC-Api.h
+++ b/intern/memutil/MEM_RefCountedC-Api.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file MEM_RefCountedC-Api.h
diff --git a/intern/memutil/MEM_SmartPtr.h b/intern/memutil/MEM_SmartPtr.h
index 55bae151027..ad92cddbda5 100644
--- a/intern/memutil/MEM_SmartPtr.h
+++ b/intern/memutil/MEM_SmartPtr.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* @file MEM_SmartPtr.h
diff --git a/intern/memutil/Makefile b/intern/memutil/Makefile
index 57a8adc8e10..787ca4fd58f 100644
--- a/intern/memutil/Makefile
+++ b/intern/memutil/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# memutil main makefile.
#
diff --git a/intern/memutil/intern/MEM_RefCountedC-Api.cpp b/intern/memutil/intern/MEM_RefCountedC-Api.cpp
index 873b2c99a59..26822f84729 100644
--- a/intern/memutil/intern/MEM_RefCountedC-Api.cpp
+++ b/intern/memutil/intern/MEM_RefCountedC-Api.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/memutil/intern/Makefile b/intern/memutil/intern/Makefile
index 71ffa6fa7e4..b77c2310b75 100644
--- a/intern/memutil/intern/Makefile
+++ b/intern/memutil/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# memutil intern Makefile
#
diff --git a/intern/moto/CMakeLists.txt b/intern/moto/CMakeLists.txt
index 9004e4c435d..c916817dd0c 100644
--- a/intern/moto/CMakeLists.txt
+++ b/intern/moto/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC include)
diff --git a/intern/moto/Makefile b/intern/moto/Makefile
index 0649719e92e..7bd7ea10abc 100644
--- a/intern/moto/Makefile
+++ b/intern/moto/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# moto main makefile.
#
diff --git a/intern/moto/include/GEN_List.h b/intern/moto/include/GEN_List.h
index 00fdbb85ad1..9eb3901a7d5 100644
--- a/intern/moto/include/GEN_List.h
+++ b/intern/moto/include/GEN_List.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,38 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef GEN_LIST_H
diff --git a/intern/moto/include/GEN_Map.h b/intern/moto/include/GEN_Map.h
index 64a2c3cfc6e..db3335d6110 100644
--- a/intern/moto/include/GEN_Map.h
+++ b/intern/moto/include/GEN_Map.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef GEN_MAP_H
diff --git a/intern/moto/include/MT_CmMatrix4x4.h b/intern/moto/include/MT_CmMatrix4x4.h
index 86858576abf..dc4f771dcba 100644
--- a/intern/moto/include/MT_CmMatrix4x4.h
+++ b/intern/moto/include/MT_CmMatrix4x4.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef INCLUDED_MT_CmMatrix4x4
diff --git a/intern/moto/include/MT_Matrix3x3.h b/intern/moto/include/MT_Matrix3x3.h
index 98851e73040..899a2731588 100644
--- a/intern/moto/include/MT_Matrix3x3.h
+++ b/intern/moto/include/MT_Matrix3x3.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Matrix4x4.h b/intern/moto/include/MT_Matrix4x4.h
index fc930055524..823541347b7 100644
--- a/intern/moto/include/MT_Matrix4x4.h
+++ b/intern/moto/include/MT_Matrix4x4.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/moto/include/MT_MinMax.h b/intern/moto/include/MT_MinMax.h
index 06f8a8d18c8..958108549ad 100644
--- a/intern/moto/include/MT_MinMax.h
+++ b/intern/moto/include/MT_MinMax.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Optimize.h b/intern/moto/include/MT_Optimize.h
index c09a9431a34..3e0b16fdb02 100644
--- a/intern/moto/include/MT_Optimize.h
+++ b/intern/moto/include/MT_Optimize.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef GEN_OPTIMIZE_H
diff --git a/intern/moto/include/MT_Plane3.h b/intern/moto/include/MT_Plane3.h
index 5caf1c4c36e..62bce716dd7 100644
--- a/intern/moto/include/MT_Plane3.h
+++ b/intern/moto/include/MT_Plane3.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef MT_PLANE3
diff --git a/intern/moto/include/MT_Point2.h b/intern/moto/include/MT_Point2.h
index cc6819039fc..67372118954 100644
--- a/intern/moto/include/MT_Point2.h
+++ b/intern/moto/include/MT_Point2.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Point3.h b/intern/moto/include/MT_Point3.h
index 372718af312..b0ee1f5b8f4 100644
--- a/intern/moto/include/MT_Point3.h
+++ b/intern/moto/include/MT_Point3.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Quaternion.h b/intern/moto/include/MT_Quaternion.h
index 98046292982..c2226820066 100644
--- a/intern/moto/include/MT_Quaternion.h
+++ b/intern/moto/include/MT_Quaternion.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Scalar.h b/intern/moto/include/MT_Scalar.h
index 5cf9f76e592..c4128d50d77 100644
--- a/intern/moto/include/MT_Scalar.h
+++ b/intern/moto/include/MT_Scalar.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Stream.h b/intern/moto/include/MT_Stream.h
index 49378eceb18..238fdc5c9ee 100644
--- a/intern/moto/include/MT_Stream.h
+++ b/intern/moto/include/MT_Stream.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef GEN_STREAM_H
diff --git a/intern/moto/include/MT_Transform.h b/intern/moto/include/MT_Transform.h
index ee5ae29dc41..438975f1f19 100644
--- a/intern/moto/include/MT_Transform.h
+++ b/intern/moto/include/MT_Transform.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Tuple2.h b/intern/moto/include/MT_Tuple2.h
index 84280bec50a..5d6a4ca42fb 100644
--- a/intern/moto/include/MT_Tuple2.h
+++ b/intern/moto/include/MT_Tuple2.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Tuple3.h b/intern/moto/include/MT_Tuple3.h
index 271e323aab5..1d33a2edaf4 100644
--- a/intern/moto/include/MT_Tuple3.h
+++ b/intern/moto/include/MT_Tuple3.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Tuple4.h b/intern/moto/include/MT_Tuple4.h
index 9a484dbedde..0a7986db3f6 100644
--- a/intern/moto/include/MT_Tuple4.h
+++ b/intern/moto/include/MT_Tuple4.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Vector2.h b/intern/moto/include/MT_Vector2.h
index 629d962a781..552c559cc28 100644
--- a/intern/moto/include/MT_Vector2.h
+++ b/intern/moto/include/MT_Vector2.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Vector3.h b/intern/moto/include/MT_Vector3.h
index c35a9d47234..2e94239c38b 100644
--- a/intern/moto/include/MT_Vector3.h
+++ b/intern/moto/include/MT_Vector3.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_Vector4.h b/intern/moto/include/MT_Vector4.h
index 5f1ee99d584..284b5bc95d9 100644
--- a/intern/moto/include/MT_Vector4.h
+++ b/intern/moto/include/MT_Vector4.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/include/MT_assert.h b/intern/moto/include/MT_assert.h
index 54aea403cda..22f6b6a555c 100644
--- a/intern/moto/include/MT_assert.h
+++ b/intern/moto/include/MT_assert.h
@@ -1,14 +1,11 @@
/**
* $Id$
-* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version. The Blender
-* Foundation also sells licenses for use in proprietary software under
-* the Blender License. See http://www.blender.org/BL/ for information
-* about this.
+* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
-* ***** END GPL/BL DUAL LICENSE BLOCK *****
+* ***** END GPL LICENSE BLOCK *****
*/
#ifndef MT_ASSERT_H
diff --git a/intern/moto/include/MT_random.h b/intern/moto/include/MT_random.h
index 8a578fa7d09..d7da546cf03 100644
--- a/intern/moto/include/MT_random.h
+++ b/intern/moto/include/MT_random.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef MT_RANDOM_H
diff --git a/intern/moto/include/NM_Scalar.h b/intern/moto/include/NM_Scalar.h
index a15b187cab9..9e3b96cac1a 100644
--- a/intern/moto/include/NM_Scalar.h
+++ b/intern/moto/include/NM_Scalar.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/intern/moto/intern/MT_Assert.cpp b/intern/moto/intern/MT_Assert.cpp
index c16c43f2045..c71dc0eb7bf 100644
--- a/intern/moto/intern/MT_Assert.cpp
+++ b/intern/moto/intern/MT_Assert.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/intern/moto/intern/MT_CmMatrix4x4.cpp b/intern/moto/intern/MT_CmMatrix4x4.cpp
index 64ff3512c7a..98e8d68ed06 100644
--- a/intern/moto/intern/MT_CmMatrix4x4.cpp
+++ b/intern/moto/intern/MT_CmMatrix4x4.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,38 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/moto/intern/MT_Matrix3x3.cpp b/intern/moto/intern/MT_Matrix3x3.cpp
index 61dcc3b2d02..d681141c099 100644
--- a/intern/moto/intern/MT_Matrix3x3.cpp
+++ b/intern/moto/intern/MT_Matrix3x3.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/moto/intern/MT_Matrix4x4.cpp b/intern/moto/intern/MT_Matrix4x4.cpp
index ff0ad3caba7..aac9c073a31 100644
--- a/intern/moto/intern/MT_Matrix4x4.cpp
+++ b/intern/moto/intern/MT_Matrix4x4.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/moto/intern/MT_Plane3.cpp b/intern/moto/intern/MT_Plane3.cpp
index 054b09a48cc..a2510476724 100644
--- a/intern/moto/intern/MT_Plane3.cpp
+++ b/intern/moto/intern/MT_Plane3.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,38 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/moto/intern/MT_Point3.cpp b/intern/moto/intern/MT_Point3.cpp
index 1c585ad5eb4..8a269cd8733 100644
--- a/intern/moto/intern/MT_Point3.cpp
+++ b/intern/moto/intern/MT_Point3.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/moto/intern/MT_Quaternion.cpp b/intern/moto/intern/MT_Quaternion.cpp
index 6dd08ad484f..02fcefff228 100644
--- a/intern/moto/intern/MT_Quaternion.cpp
+++ b/intern/moto/intern/MT_Quaternion.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/moto/intern/MT_Transform.cpp b/intern/moto/intern/MT_Transform.cpp
index 1af52abca3b..a6b9211b389 100644
--- a/intern/moto/intern/MT_Transform.cpp
+++ b/intern/moto/intern/MT_Transform.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/intern/moto/intern/MT_Vector2.cpp b/intern/moto/intern/MT_Vector2.cpp
index c8ac08210e5..c89343db1c3 100644
--- a/intern/moto/intern/MT_Vector2.cpp
+++ b/intern/moto/intern/MT_Vector2.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/moto/intern/MT_Vector3.cpp b/intern/moto/intern/MT_Vector3.cpp
index 9285f2fcb19..654b95881d1 100644
--- a/intern/moto/intern/MT_Vector3.cpp
+++ b/intern/moto/intern/MT_Vector3.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/moto/intern/MT_Vector4.cpp b/intern/moto/intern/MT_Vector4.cpp
index efe7d3e7b04..b083f80b2f2 100644
--- a/intern/moto/intern/MT_Vector4.cpp
+++ b/intern/moto/intern/MT_Vector4.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/intern/moto/intern/MT_random.cpp b/intern/moto/intern/MT_random.cpp
index 0c46211c3e8..96cb394d3da 100644
--- a/intern/moto/intern/MT_random.cpp
+++ b/intern/moto/intern/MT_random.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* A C-program for MT19937: Real number version */
diff --git a/intern/moto/intern/Makefile b/intern/moto/intern/Makefile
index eeba381ab2a..a867fcadf96 100644
--- a/intern/moto/intern/Makefile
+++ b/intern/moto/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# moto intern Makefile
#
diff --git a/intern/opennl/CMakeLists.txt b/intern/opennl/CMakeLists.txt
index 78e2359eec5..07846289d63 100644
--- a/intern/opennl/CMakeLists.txt
+++ b/intern/opennl/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC extern superlu)
diff --git a/intern/opennl/Makefile b/intern/opennl/Makefile
index 8aa0d4f590b..a84fd135d1d 100644
--- a/intern/opennl/Makefile
+++ b/intern/opennl/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# opennl main makefile.
#
diff --git a/intern/opennl/intern/Makefile b/intern/opennl/intern/Makefile
index 2e57905d931..04b158aaec0 100644
--- a/intern/opennl/intern/Makefile
+++ b/intern/opennl/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# opennl intern Makefile
#
diff --git a/intern/opennl/superlu/Makefile b/intern/opennl/superlu/Makefile
index 942ceebc79c..46b1066a676 100644
--- a/intern/opennl/superlu/Makefile
+++ b/intern/opennl/superlu/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# opennl intern Makefile
#
diff --git a/intern/string/CMakeLists.txt b/intern/string/CMakeLists.txt
index bee946d3c15..e92a9f976c2 100644
--- a/intern/string/CMakeLists.txt
+++ b/intern/string/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC .)
diff --git a/intern/string/Makefile b/intern/string/Makefile
index e3dffbe9e44..e885b87babe 100644
--- a/intern/string/Makefile
+++ b/intern/string/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Hans Lambermont
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# string main makefile.
#
diff --git a/intern/string/STR_HashedString.h b/intern/string/STR_HashedString.h
index bf18a4e4da6..b052e92f1fe 100644
--- a/intern/string/STR_HashedString.h
+++ b/intern/string/STR_HashedString.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/string/STR_String.h b/intern/string/STR_String.h
index 7b02e6c1855..ec945c80c7c 100644
--- a/intern/string/STR_String.h
+++ b/intern/string/STR_String.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/intern/string/intern/Makefile b/intern/string/intern/Makefile
index 925cdfed54a..4a461fb03b3 100644
--- a/intern/string/intern/Makefile
+++ b/intern/string/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# string intern Makefile
#
diff --git a/intern/string/intern/STR_String.cpp b/intern/string/intern/STR_String.cpp
index af8f0d11445..dcc52e2a3e7 100644
--- a/intern/string/intern/STR_String.cpp
+++ b/intern/string/intern/STR_String.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/po/Makefile b/po/Makefile
index ea0bc6cbe5e..f7212e611b0 100644
--- a/po/Makefile
+++ b/po/Makefile
@@ -1,14 +1,11 @@
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Wouter van Heyst
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# po Makefile for blender. Compiles the translations and places them
# where release can pick them up.
diff --git a/projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj b/projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj
index a18b944a189..e73e72316c1 100644
--- a/projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj
+++ b/projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj
@@ -454,6 +454,9 @@
RelativePath="..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.cpp">
</File>
<File
+ RelativePath="..\..\..\source\gameengine\Ketsji\KX_ParentActuator.cpp">
+ </File>
+ <File
RelativePath="..\..\..\source\gameengine\Ketsji\KX_SCA_AddObjectActuator.cpp">
</File>
<File
@@ -669,6 +672,9 @@
RelativePath="..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.h">
</File>
<File
+ RelativePath="..\..\..\source\gameengine\Ketsji\KX_ParentActuator.h">
+ </File>
+ <File
RelativePath="..\..\..\source\gameengine\Ketsji\KX_SCA_AddObjectActuator.h">
</File>
<File
diff --git a/release/Makefile b/release/Makefile
index fa288314f03..953144b5223 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
include nan_definitions.mk
diff --git a/release/beos-4.5-i386/specific.sh b/release/beos-4.5-i386/specific.sh
index 66ce08c4613..9ce063b27a9 100644
--- a/release/beos-4.5-i386/specific.sh
+++ b/release/beos-4.5-i386/specific.sh
@@ -2,15 +2,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# OS specific stuff for the package, only to be executed by ../Makefile
diff --git a/release/beos-5.0-i386/specific.sh b/release/beos-5.0-i386/specific.sh
index 66ce08c4613..9ce063b27a9 100644
--- a/release/beos-5.0-i386/specific.sh
+++ b/release/beos-5.0-i386/specific.sh
@@ -2,15 +2,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# OS specific stuff for the package, only to be executed by ../Makefile
diff --git a/release/datafiles/datatoc.c b/release/datafiles/datatoc.c
index ca101322c9a..75f789b378a 100644
--- a/release/datafiles/datatoc.c
+++ b/release/datafiles/datatoc.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/release/datafiles/splash.jpg b/release/datafiles/splash.jpg
index 243e779273d..0d328ee4b7c 100644
--- a/release/datafiles/splash.jpg
+++ b/release/datafiles/splash.jpg
Binary files differ
diff --git a/release/irix-6.2-mips/specific.sh b/release/irix-6.2-mips/specific.sh
index 1b8911a2542..1b053ce6a3e 100644
--- a/release/irix-6.2-mips/specific.sh
+++ b/release/irix-6.2-mips/specific.sh
@@ -2,15 +2,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# OS specific stuff for the package, only to be executed by ../Makefile
#
diff --git a/release/plugins/Makefile b/release/plugins/Makefile
index db013d6e08e..3ed2ee2161e 100644
--- a/release/plugins/Makefile
+++ b/release/plugins/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
all: textures sequences
diff --git a/release/plugins/bmake b/release/plugins/bmake
index 6e65f0bcbc8..f03e9270011 100644
--- a/release/plugins/bmake
+++ b/release/plugins/bmake
@@ -2,15 +2,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
# detect the system
diff --git a/release/plugins/sequence/Makefile b/release/plugins/sequence/Makefile
index dc632c5d2e7..0e1463fae7f 100644
--- a/release/plugins/sequence/Makefile
+++ b/release/plugins/sequence/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
all: plugins
diff --git a/release/plugins/sequence/blur.c b/release/plugins/sequence/blur.c
index 80db53268dc..6915a505bc5 100644
--- a/release/plugins/sequence/blur.c
+++ b/release/plugins/sequence/blur.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/release/plugins/sequence/scatter.c b/release/plugins/sequence/scatter.c
index 277529690c4..b093adf93c4 100644
--- a/release/plugins/sequence/scatter.c
+++ b/release/plugins/sequence/scatter.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "plugin.h"
diff --git a/release/plugins/texture/Makefile b/release/plugins/texture/Makefile
index dc632c5d2e7..0e1463fae7f 100644
--- a/release/plugins/texture/Makefile
+++ b/release/plugins/texture/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
all: plugins
diff --git a/release/plugins/texture/clouds2.c b/release/plugins/texture/clouds2.c
index 69f890e4df3..1e7296e69c2 100644
--- a/release/plugins/texture/clouds2.c
+++ b/release/plugins/texture/clouds2.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "math.h"
@@ -76,7 +73,7 @@ float result[8];
float cfra;
-int plugin_tex_doit(int, Cast*, float*, float*, float*);
+int plugin_tex_doit(int, Cast*, float*, float*, float*, float*);
void plugin_instance_init(Cast*);
/* ******************** Fixed functions ***************** */
@@ -117,7 +114,7 @@ void plugin_getinfo(PluginInfo *info)
info->varstr= varstr;
info->init= plugin_init;
- info->tex_doit= (TexDoit) plugin_tex_doit;
+ info->tex_doit= (TexDoit) plugin_tex_doit;
info->callback= plugin_but_changed;
info->instance_init= (void (*)(void *)) plugin_instance_init;
}
@@ -125,7 +122,7 @@ void plugin_getinfo(PluginInfo *info)
/* ********************* the texture ******************** */
-int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt)
+int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt, float *result)
{
float val = 0.0;
float a = 1.0;
diff --git a/release/plugins/texture/tiles.c b/release/plugins/texture/tiles.c
index 2bdf669f9ca..bc2bf3a8140 100644
--- a/release/plugins/texture/tiles.c
+++ b/release/plugins/texture/tiles.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "math.h"
@@ -65,7 +62,7 @@ float result[8];
float cfra;
-int plugin_tex_doit(int, Cast *, float *, float *, float *);
+int plugin_tex_doit(int, Cast *, float *, float *, float *, float *);
void plugin_instance_init(Cast*);
/* ******************** Fixed functions ***************** */
@@ -153,7 +150,7 @@ float sample_wave(float freq, float coord, float pixsize)
return retval;
}
-int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt)
+int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt, float *result)
{
float xwave, ywave;
diff --git a/release/scripts/3ds_import.py b/release/scripts/3ds_import.py
index 07da4df1603..8c7c93018db 100644
--- a/release/scripts/3ds_import.py
+++ b/release/scripts/3ds_import.py
@@ -6,9 +6,9 @@ Group: 'Import'
Tooltip: 'Import from 3DS file format (.3ds)'
"""
-__author__= ['Bob Holcomb', 'Richard L?rk?ng', 'Damien McGinnes', 'Campbell Barton']
+__author__= ['Bob Holcomb', 'Richard L?rk?ng', 'Damien McGinnes', 'Campbell Barton', 'Mario Lapin']
__url__ = ("blenderartists.org", "www.blender.org", "www.gametutorials.com", "lib3ds.sourceforge.net/")
-__version__= '0.995'
+__version__= '0.996'
__bpydoc__= '''\
3ds Importer
@@ -17,6 +17,15 @@ This script imports a 3ds file and the materials into Blender for editing.
Loader is based on 3ds loader from www.gametutorials.com (Thanks DigiBen).
+0.996 by Mario Lapin (mario.lapin@gmail.com) 13/04/200 <br>
+ - Implemented workaround to correct association between name, geometry and materials of
+ imported meshes.
+
+ Without this patch, version 0.995 of this importer would associate to each mesh object the
+ geometry and the materials of the previously parsed mesh object. By so, the name of the
+ first mesh object would be thrown away, and the name of the last mesh object would be
+ automatically merged with a '.001' at the end. No object would desappear, however object's
+ names and materials would be completely jumbled.
0.995 by Campbell Barton<br>
- workaround for buggy mesh vert delete
@@ -319,6 +328,7 @@ def process_next_chunk(file, previous_chunk, importedObjects, IMAGE_SEARCH):
contextMesh_vertls= None
contextMesh_facels= None
contextMeshMaterials= {} # matname:[face_idxs]
+ contextMeshUV= None
TEXTURE_DICT={}
MATDICT={}
@@ -422,6 +432,8 @@ def process_next_chunk(file, previous_chunk, importedObjects, IMAGE_SEARCH):
#a spare chunk
new_chunk= chunk()
temp_chunk= chunk()
+
+ CreateBlenderObject = False
#loop through all the data for this chunk (previous chunk) and see what it is
while (previous_chunk.bytes_read<previous_chunk.length):
@@ -454,6 +466,20 @@ def process_next_chunk(file, previous_chunk, importedObjects, IMAGE_SEARCH):
#is it an object chunk?
elif (new_chunk.ID==OBJECT):
+
+ if CreateBlenderObject:
+ putContextMesh(contextMesh_vertls, contextMesh_facels, contextMeshMaterials)
+ contextMesh_vertls= []; contextMesh_facels= []
+
+ ## preparando para receber o proximo objeto
+ contextMeshMaterials= {} # matname:[face_idxs]
+ contextMeshUV= None
+ #contextMesh.vertexUV= 1 # Make sticky coords.
+ # Reset matrix
+ contextMatrix_rot= None
+ #contextMatrix_tx= None
+
+ CreateBlenderObject= True
tempName= read_string(file)
contextObName= tempName
new_chunk.bytes_read += len(tempName)+1
@@ -637,20 +663,9 @@ def process_next_chunk(file, previous_chunk, importedObjects, IMAGE_SEARCH):
#contextMatrix_tx= None
#print contextLamp.name,
-
elif (new_chunk.ID==OBJECT_MESH):
- # print 'Found an OBJECT_MESH chunk'
- if contextMesh_facels != None: # Write context mesh if we have one.
- putContextMesh(contextMesh_vertls, contextMesh_facels, contextMeshMaterials)
-
- contextMesh_vertls= []; contextMesh_facels= []
-
- contextMeshMaterials= {} # matname:[face_idxs]
- contextMeshUV= None
- #contextMesh.vertexUV= 1 # Make sticky coords.
- # Reset matrix
- contextMatrix_rot= None
- #contextMatrix_tx= None
+ ## @@ PATCH
+ print 'Found an OBJECT_MESH chunk'
elif (new_chunk.ID==OBJECT_VERTICES):
'''
@@ -979,4 +994,4 @@ else:
print 'TOTAL TIME: %.6f' % (Blender.sys.time() - TIME)
-''' \ No newline at end of file
+'''
diff --git a/release/scripts/bpymodules/BPyRegistry.py b/release/scripts/bpymodules/BPyRegistry.py
index f0d6da82d52..4d681e15937 100644
--- a/release/scripts/bpymodules/BPyRegistry.py
+++ b/release/scripts/bpymodules/BPyRegistry.py
@@ -193,14 +193,17 @@ def LoadConfigData (key = None):
if bsys.exists(fname): files.append(fname)
for p in files:
- f = file(p, 'r')
- lines = f.readlines()
- f.close()
- if lines: # Lines may be blank
- mainkey = lines[0].split('=')[0].strip()
- pysrc = "\n".join(lines)
- exec(pysrc)
- exec("Registry.SetKey('%s', %s)" % (str(mainkey), mainkey))
+ try:
+ f = file(p, 'r')
+ lines = f.readlines()
+ f.close()
+ if lines: # Lines may be blank
+ mainkey = lines[0].split('=')[0].strip()
+ pysrc = "\n".join(lines)
+ exec(pysrc)
+ exec("Registry.SetKey('%s', %s)" % (str(mainkey), mainkey))
+ except Exception, e:
+ raise Warning(e) # Resend exception as warning
def RemoveConfigData (key = None):
@@ -223,8 +226,11 @@ def RemoveConfigData (key = None):
import os
- for p in files:
- os.remove(p) # remove the file(s)
+ try:
+ for p in files:
+ os.remove(p) # remove the file(s)
+ except Exception, e:
+ raise Warning(e) # Resend exception as warning
def SaveConfigData (key = None):
@@ -250,9 +256,12 @@ def SaveConfigData (key = None):
if not cfgdict: continue
- filename = bsys.join(_CFG_DIR, "%s%s" % (mainkey, _EXT))
- f = file(filename, 'w')
- output = _dict_to_str(mainkey, _sanitize(cfgdict))
- if output!='None':
- f.write(output)
- f.close()
+ try:
+ filename = bsys.join(_CFG_DIR, "%s%s" % (mainkey, _EXT))
+ f = file(filename, 'w')
+ output = _dict_to_str(mainkey, _sanitize(cfgdict))
+ if output!='None':
+ f.write(output)
+ f.close()
+ except Exception, e:
+ raise Warning(e) # Resend exception as warning
diff --git a/release/scripts/bpymodules/BPyRender.py b/release/scripts/bpymodules/BPyRender.py
index a83eb6a8de8..951e1ae6300 100644
--- a/release/scripts/bpymodules/BPyRender.py
+++ b/release/scripts/bpymodules/BPyRender.py
@@ -125,14 +125,14 @@ def imageFromObjectsOrtho(objects, path, width, height, smooth, alpha= True, cam
# camera is wider then image res.
# to make the image wider, reduce the aspy
asp_diff= asp_image_res/asp_cam_mat
- min_asp= int(round(asp_diff * 200))
+ min_asp= asp_diff * 200
#print 'X', min_asp
elif asp_cam_mat < asp_image_res: # asp_cam_mat < asp_image_res
# camera is narrower then image res
# to make the image narrower, reduce the aspx
asp_diff= asp_cam_mat/asp_image_res
- min_asp= int(round(asp_diff * 200))
+ min_asp= asp_diff * 200
#print 'Y', min_asp
else:
min_asp= 200
@@ -496,7 +496,7 @@ def vcol2image(me_s,\
return image
-def bakeToPlane(sce, ob_from, width, height, bakemodes, axis='z', margin=0):
+def bakeToPlane(sce, ob_from, width, height, bakemodes, axis='z', margin=0, depth=32):
'''
Bakes terrain onto a plane from one object
sce - scene to bake with
@@ -505,7 +505,7 @@ def bakeToPlane(sce, ob_from, width, height, bakemodes, axis='z', margin=0):
bakemodes - list of baking modes to use, Blender.Scene.Render.BakeModes.NORMALS, Blender.Scene.Render.BakeModes.AO ... etc
axis - axis to allign the plane to.
margin - margin setting for baking.
-
+ depth - bit depth for the images to bake into, (32 or 128 for floating point images)
Example:
import Blender
from Blender import *
@@ -523,6 +523,7 @@ def bakeToPlane(sce, ob_from, width, height, bakemodes, axis='z', margin=0):
BACKUP_bakeClear = rend.bakeClear
BACKUP_bakeMargin = rend.bakeMargin
BACKUP_bakeToActive = rend.bakeToActive
+ BACKUP_bakeNormalize = rend.bakeNormalize
# Backup object selection
BACKUP_obsel = list(sce.objects.selected)
@@ -531,7 +532,8 @@ def bakeToPlane(sce, ob_from, width, height, bakemodes, axis='z', margin=0):
# New bake settings
rend.bakeClear = True
rend.bakeMargin = margin
- BACKUP_bakeToActive = True
+ rend.bakeToActive = True
+ rend.bakeNormalize = True
# Assume a mesh
me_from = ob_from.getData(mesh=1)
@@ -554,28 +556,28 @@ def bakeToPlane(sce, ob_from, width, height, bakemodes, axis='z', margin=0):
xmin = min(xmin, x)
ymin = min(ymin, y)
zmin = min(zmin, z)
-
+
if axis=='x':
xmed = (xmin+xmax)/2.0
co1 = (xmed, ymin, zmin)
co2 = (xmed, ymin, zmax)
co3 = (xmed, ymax, zmax)
co4 = (xmed, ymax, zmin)
- rend.bakeDist = (xmax-xmin)/2.0
+ rend.bakeDist = ((xmax-xmin)/2.0) + 0.000001 # we need a euler value for this since it
elif axis=='y':
ymed = (ymin+ymax)/2.0
co1 = (xmin, ymed, zmin)
co2 = (xmin, ymed, zmax)
co3 = (xmax, ymed, zmax)
co4 = (xmax, ymed, zmin)
- rend.bakeDist = (ymax-ymin)/2.0
+ rend.bakeDist = ((ymax-ymin)/2.0) + 0.000001
elif axis=='z':
zmed = (zmin+zmax)/2.0
co1 = (xmin, ymin, zmed)
co2 = (xmin, ymax, zmed)
co3 = (xmax, ymax, zmed)
co4 = (xmax, ymin, zmed)
- rend.bakeDist = (zmax-zmin)/2.0
+ rend.bakeDist = ((zmax-zmin)/2.0) + 0.000001
else:
raise "invalid axis"
me_plane = Blender.Mesh.New()
@@ -601,7 +603,7 @@ def bakeToPlane(sce, ob_from, width, height, bakemodes, axis='z', margin=0):
images_return = []
for mode in bakemodes:
- img = Blender.Image.New('bake', width, height, 24)
+ img = Blender.Image.New('bake', width, height, depth)
me_plane_face.image = img
rend.bakeMode = mode
@@ -616,6 +618,8 @@ def bakeToPlane(sce, ob_from, width, height, bakemodes, axis='z', margin=0):
rend.bakeClear = BACKUP_bakeClear
rend.bakeMargin = BACKUP_bakeMargin
rend.bakeToActive = BACKUP_bakeToActive
+ rend.bakeNormalize = BACKUP_bakeNormalize
+
# Restore obsel
sce.objects.selected = BACKUP_obsel
diff --git a/release/scripts/export_cal3d.py b/release/scripts/export_cal3d.py
deleted file mode 100644
index 990ac480e3d..00000000000
--- a/release/scripts/export_cal3d.py
+++ /dev/null
@@ -1,1112 +0,0 @@
-#!BPY
-"""
-Name: 'Cal3D (.cfg .xaf .xsf .xmf .xrf)...'
-Blender: 243
-Group: 'Export'
-Tip: 'Export armature/bone/mesh/action data to the Cal3D format.'
-"""
-
-# export_cal3d.py
-# Copyright (C) 2003-2004 Jean-Baptiste LAMY -- jibalamy@free.fr
-# Copyright (C) 2004 Matthias Braun -- matze@braunis.de
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-__version__ = '0.9f'
-__author__ = 'Jean-Baptiste, Jiba, Lamy, Campbell Barton (Ideasman42)'
-__email__ = ['Authors email, jibalamy:free*fr']
-__url__ = ['Soya3ds homepage, http://home.gna.org/oomadness/en/soya/', 'Cal3d, http://cal3d.sourceforge.net']
-__bpydoc__ =\
-'''This script is a Blender => Cal3D converter.
-(See http://blender.org and http://cal3d.sourceforge.net)
-
-USAGE:
-
-To install it, place the script in your $HOME/.blender/scripts directory.
-
-Then open the File->Export->Cal3d v0.9 menu. And select the filename of the .cfg file.
-The exporter will create a set of other files with same prefix (ie. bla.cfg, bla.xsf,
-bla_Action1.xaf, bla_Action2.xaf, ...).
-
-You should be able to open the .cfg file in cal3d_miniviewer.
-
-
-NOT (YET) SUPPORTED:
-
- - Rotation, translation, or stretching Blender objects is still quite
-buggy, so AVOID MOVING / ROTATING / RESIZE OBJECTS (either mesh or armature) !
-Instead, edit the object (with tab), select all points / bones (with "a"),
-and move / rotate / resize them.<br>
- - no support for exporting springs yet<br>
- - no support for exporting material colors (most games should only use images
-I think...)
-
-
-KNOWN ISSUES:
-
- - Cal3D versions <=0.9.1 have a bug where animations aren't played when the root bone
-is not animated;<br>
- - Cal3D versions <=0.9.1 have a bug where objects that aren't influenced by any bones
-are not drawn (fixed in Cal3D CVS).
-
-
-NOTES:
-
-It requires a very recent version of Blender (>= 2.44).
-
-Build a model following a few rules:<br>
- - Use only a single armature;<br>
- - Use only a single rootbone (Cal3D doesn't support floating bones);<br>
- - Use only locrot keys (Cal3D doesn't support bone's size change);<br>
- - Don't try to create child/parent constructs in blender object, that gets exported
-incorrectly at the moment;<br>
- - Objects or animations whose names start by "_" are not exported (hidden object).
-
-You can pass as many parameters as you want at the end, "EXPORT_FOR_SOYA=1" is just an
-example. The parameters are the same as below.
-'''
-
-# True (=1) to export for the Soya 3D engine
-# (http://oomadness.tuxfamily.org/en/soya).
-# (=> rotate meshes and skeletons so as X is right, Y is top and -Z is front)
-# EXPORT_FOR_SOYA = 0
-
-# Enables LODs computation. LODs computation is quite slow, and the algo is
-# surely not optimal :-(
-LODS = 0
-
-# Scale the model (not supported by Soya).
-
-# See also BASE_MATRIX below, if you want to rotate/scale/translate the model at
-# the exportation.
-
-#########################################################################################
-# Code starts here.
-# The script should be quite re-useable for writing another Blender animation exporter.
-# Most of the hell of it is to deal with Blender's head-tail-roll bone's definition.
-
-import math
-import Blender
-import BPyMesh
-import BPySys
-import BPyArmature
-import BPyObject
-import bpy
-
-def best_armature_root(armature):
- '''
- Find the armature root bone with the most children, return that bone
- '''
-
- bones = [bone for bone in armature.bones.values() if bone.hasChildren() == True]
- if len(bones) == 1:
- return bones[0]
-
- # Get the best root since we have more then 1
- bones = [(len(bone.getAllChildren()), bone) for bone in bones]
- bones.sort()
- return bones[-1][1] # bone with most children
-
-
-Vector = Blender.Mathutils.Vector
-Quaternion = Blender.Mathutils.Quaternion
-Matrix = Blender.Mathutils.Matrix
-
-# HACK -- it seems that some Blender versions don't define sys.argv,
-# which may crash Python if a warning occurs.
-# if not hasattr(sys, 'argv'): sys.argv = ['???']
-
-def matrix_multiply(b, a):
- return [ [
- a[0][0] * b[0][0] + a[0][1] * b[1][0] + a[0][2] * b[2][0],
- a[0][0] * b[0][1] + a[0][1] * b[1][1] + a[0][2] * b[2][1],
- a[0][0] * b[0][2] + a[0][1] * b[1][2] + a[0][2] * b[2][2],
- 0.0,
- ], [
- a[1][0] * b[0][0] + a[1][1] * b[1][0] + a[1][2] * b[2][0],
- a[1][0] * b[0][1] + a[1][1] * b[1][1] + a[1][2] * b[2][1],
- a[1][0] * b[0][2] + a[1][1] * b[1][2] + a[1][2] * b[2][2],
- 0.0,
- ], [
- a[2][0] * b[0][0] + a[2][1] * b[1][0] + a[2][2] * b[2][0],
- a[2][0] * b[0][1] + a[2][1] * b[1][1] + a[2][2] * b[2][1],
- a[2][0] * b[0][2] + a[2][1] * b[1][2] + a[2][2] * b[2][2],
- 0.0,
- ], [
- a[3][0] * b[0][0] + a[3][1] * b[1][0] + a[3][2] * b[2][0] + b[3][0],
- a[3][0] * b[0][1] + a[3][1] * b[1][1] + a[3][2] * b[2][1] + b[3][1],
- a[3][0] * b[0][2] + a[3][1] * b[1][2] + a[3][2] * b[2][2] + b[3][2],
- 1.0,
- ] ]
-
-# multiplies 2 quaternions in x,y,z,w notation
-def quaternion_multiply(q1, q2):
- return Quaternion(\
- q2[3] * q1[0] + q2[0] * q1[3] + q2[1] * q1[2] - q2[2] * q1[1],
- q2[3] * q1[1] + q2[1] * q1[3] + q2[2] * q1[0] - q2[0] * q1[2],
- q2[3] * q1[2] + q2[2] * q1[3] + q2[0] * q1[1] - q2[1] * q1[0],
- q2[3] * q1[3] - q2[0] * q1[0] - q2[1] * q1[1] - q2[2] * q1[2],\
- )
-
-def matrix_translate(m, v):
- m[3][0] += v[0]
- m[3][1] += v[1]
- m[3][2] += v[2]
- return m
-
-def matrix2quaternion(m):
- s = math.sqrt(abs(m[0][0] + m[1][1] + m[2][2] + m[3][3]))
- if s == 0.0:
- x = abs(m[2][1] - m[1][2])
- y = abs(m[0][2] - m[2][0])
- z = abs(m[1][0] - m[0][1])
- if (x >= y) and (x >= z): return Quaternion(1.0, 0.0, 0.0, 0.0)
- elif (y >= x) and (y >= z): return Quaternion(0.0, 1.0, 0.0, 0.0)
- else: return Quaternion(0.0, 0.0, 1.0, 0.0)
-
- q = Quaternion([
- -(m[2][1] - m[1][2]) / (2.0 * s),
- -(m[0][2] - m[2][0]) / (2.0 * s),
- -(m[1][0] - m[0][1]) / (2.0 * s),
- 0.5 * s,
- ])
- q.normalize()
- #print q
- return q
-
-def vector_by_matrix_3x3(p, m):
- return [p[0] * m[0][0] + p[1] * m[1][0] + p[2] * m[2][0],
- p[0] * m[0][1] + p[1] * m[1][1] + p[2] * m[2][1],
- p[0] * m[0][2] + p[1] * m[1][2] + p[2] * m[2][2]]
-
-def vector_add(v1, v2):
- return [v1[0]+v2[0], v1[1]+v2[1], v1[2]+v2[2]]
-
-def vector_sub(v1, v2):
- return [v1[0]-v2[0], v1[1]-v2[1], v1[2]-v2[2]]
-
-def quaternion2matrix(q):
- xx = q[0] * q[0]
- yy = q[1] * q[1]
- zz = q[2] * q[2]
- xy = q[0] * q[1]
- xz = q[0] * q[2]
- yz = q[1] * q[2]
- wx = q[3] * q[0]
- wy = q[3] * q[1]
- wz = q[3] * q[2]
- return Matrix([1.0 - 2.0 * (yy + zz), 2.0 * (xy + wz), 2.0 * (xz - wy), 0.0],
- [ 2.0 * (xy - wz), 1.0 - 2.0 * (xx + zz), 2.0 * (yz + wx), 0.0],
- [ 2.0 * (xz + wy), 2.0 * (yz - wx), 1.0 - 2.0 * (xx + yy), 0.0],
- [0.0 , 0.0 , 0.0 , 1.0])
-
-def matrix_invert(m):
- det = (m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2])
- - m[1][0] * (m[0][1] * m[2][2] - m[2][1] * m[0][2])
- + m[2][0] * (m[0][1] * m[1][2] - m[1][1] * m[0][2]))
- if det == 0.0: return None
- det = 1.0 / det
- r = [ [
- det * (m[1][1] * m[2][2] - m[2][1] * m[1][2]),
- - det * (m[0][1] * m[2][2] - m[2][1] * m[0][2]),
- det * (m[0][1] * m[1][2] - m[1][1] * m[0][2]),
- 0.0,
- ], [
- - det * (m[1][0] * m[2][2] - m[2][0] * m[1][2]),
- det * (m[0][0] * m[2][2] - m[2][0] * m[0][2]),
- - det * (m[0][0] * m[1][2] - m[1][0] * m[0][2]),
- 0.0
- ], [
- det * (m[1][0] * m[2][1] - m[2][0] * m[1][1]),
- - det * (m[0][0] * m[2][1] - m[2][0] * m[0][1]),
- det * (m[0][0] * m[1][1] - m[1][0] * m[0][1]),
- 0.0,
- ] ]
- r.append([
- -(m[3][0] * r[0][0] + m[3][1] * r[1][0] + m[3][2] * r[2][0]),
- -(m[3][0] * r[0][1] + m[3][1] * r[1][1] + m[3][2] * r[2][1]),
- -(m[3][0] * r[0][2] + m[3][1] * r[1][2] + m[3][2] * r[2][2]),
- 1.0,
- ])
- return r
-
-
-def point_by_matrix(p, m):
- return [p[0] * m[0][0] + p[1] * m[1][0] + p[2] * m[2][0] + m[3][0],
- p[0] * m[0][1] + p[1] * m[1][1] + p[2] * m[2][1] + m[3][1],
- p[0] * m[0][2] + p[1] * m[1][2] + p[2] * m[2][2] + m[3][2]]
-
-# Hack for having the model rotated right.
-# Put in BASE_MATRIX your own rotation if you need some.
-
-BASE_MATRIX = None
-
-
-# Cal3D data structures
-
-CAL3D_VERSION = 910
-MATERIALS = {} # keys are (mat.name, img.name)
-
-class Cal3DMaterial(object):
- __slots__ = 'amb', 'diff', 'spec', 'shininess', 'maps_filenames', 'id'
- def __init__(self, blend_world, blend_material, blend_images):
-
- # Material Settings
- if blend_world: amb = [ int(c*255) for c in blend_world.amb ]
- else: amb = [0,0,0] # Default value
-
- if blend_material:
- self.amb = tuple([int(c*blend_material.amb) for c in amb] + [255])
- self.diff = tuple([int(c*255) for c in blend_material.rgbCol] + [int(blend_material.alpha*255)])
- self.spec = tuple([int(c*255) for c in blend_material.rgbCol] + [int(blend_material.alpha*255)])
- self.shininess = (float(blend_material.hard)-1)/5.10
- else:
- self.amb = tuple(amb + [255])
- self.diff = (255,255,255,255)
- self.spec = (255,255,255,255)
- self.shininess = 1.0
-
- self.maps_filenames = []
- for image in blend_images:
- if image:
- self.maps_filenames.append( image.filename.split('\\')[-1].split('/')[-1] )
-
- self.id = len(MATERIALS)
- MATERIALS[blend_material, blend_images] = self
-
- # new xml format
- def writeCal3D(self, file):
- file.write('<?xml version="1.0"?>\n')
- file.write('<HEADER MAGIC="XRF" VERSION="%i"/>\n' % CAL3D_VERSION)
- file.write('<MATERIAL NUMMAPS="%s">\n' % len(self.maps_filenames))
- file.write('\t<AMBIENT>%i %i %i %i</AMBIENT>\n' % self.amb)
- file.write('\t<DIFFUSE>%i %i %i %i</DIFFUSE>\n' % self.diff)
- file.write('\t<SPECULAR>%i %i %i %i</SPECULAR>\n' % self.spec)
- file.write('\t<SHININESS>%.6f</SHININESS>\n' % self.shininess)
-
- for map_filename in self.maps_filenames:
- file.write('\t<MAP>%s</MAP>\n' % map_filename)
-
- file.write('</MATERIAL>\n')
-
-
-class Cal3DMesh(object):
- __slots__ = 'name', 'submeshes', 'matrix', 'matrix_normal'
- def __init__(self, ob, blend_mesh, blend_world):
- self.name = ob.name
- self.submeshes = []
-
- BPyMesh.meshCalcNormals(blend_mesh)
-
- self.matrix = ob.matrixWorld
- self.matrix_normal = self.matrix.copy().rotationPart()
-
- #if BASE_MATRIX:
- # matrix = matrix_multiply(BASE_MATRIX, matrix)
-
- face_groups = {}
- blend_materials = blend_mesh.materials
- uvlayers = ()
- mat = None # incase we have no materials
- if blend_mesh.faceUV:
- uvlayers = blend_mesh.getUVLayerNames()
- if len(uvlayers) == 1:
- for f in blend_mesh.faces:
- image = (f.image,) # bit in a tuple so we can match multi UV code
- if blend_materials: mat = blend_materials[f.mat] # if no materials, mat will always be None
- face_groups.setdefault( (mat,image), (mat,image,[]) )[2].append( f )
- else:
- # Multi UV's
- face_multi_images = [[] for i in xrange(len(blend_mesh.faces))]
- face_multi_uvs = [[[] for i in xrange(len(f)) ] for f in blend_mesh.faces]
- for uvlayer in uvlayers:
- blend_mesh.activeUVLayer = uvlayer
- for i, f in enumerate(blend_mesh.faces):
- face_multi_images[i].append(f.image)
- if f.image:
- for j, uv in enumerate(f.uv):
- face_multi_uvs[i][j].append( tuple(uv) )
-
- # Convert UV's to tuples so they can be compared with eachother
- # when creating new verts
- for fuv in face_multi_uvs:
- for i, uv in enumerate(fuv):
- fuv[i] = tuple(uv)
-
- for i, f in enumerate(blend_mesh.faces):
- image = tuple(face_multi_images[i])
- if blend_materials: mat = blend_materials[f.mat]
- face_groups.setdefault( (mat,image), (mat,image,[]) )[2].append( f )
- else:
- # No UV's
- for f in blend_mesh.faces:
- if blend_materials: mat = blend_materials[f.mat]
- face_groups.setdefault( (mat,()), (mat,(),[]) )[2].append( f )
-
- for blend_material, blend_images, faces in face_groups.itervalues():
-
- try: material = MATERIALS[blend_material, blend_images]
- except: material = MATERIALS[blend_material, blend_images] = Cal3DMaterial(blend_world, blend_material, blend_images)
-
- submesh = Cal3DSubMesh(self, material, len(self.submeshes))
- self.submeshes.append(submesh)
-
- # Check weather we need to write UVs, dont do it if theres no image
- # Multilayer UV's have alredy checked that they have images when
- # building face_multi_uvs
- if len(uvlayers) == 1:
- if blend_images == (None,):
- write_single_layer_uvs = False
- else:
- write_single_layer_uvs = True
-
-
- for face in faces:
-
- if not face.smooth:
- normal = face.no
-
- face_vertices = []
- face_v = face.v
-
-
- if len(uvlayers)>1:
- for i, blend_vert in enumerate(face_v):
- if face.smooth: normal = blend_vert.no
- vertex = submesh.getVertex(blend_mesh, blend_vert, normal, face_multi_uvs[face.index][i])
- face_vertices.append(vertex)
-
- elif len(uvlayers)==1:
- if write_single_layer_uvs:
- face_uv = face.uv
-
- for i, blend_vert in enumerate(face_v):
- if face.smooth: normal = blend_vert.no
- if write_single_layer_uvs: uvs = (tuple(face_uv[i]),)
- else: uvs = ()
-
- vertex = submesh.getVertex(blend_mesh, blend_vert, normal, uvs )
- face_vertices.append(vertex)
- else:
- # No UVs
- for i, blend_vert in enumerate(face_v):
- if face.smooth: normal = blend_vert.no
- vertex = submesh.getVertex(blend_mesh, blend_vert, normal, () )
- face_vertices.append(vertex)
-
-
- # Split faces with more than 3 vertices
- for i in xrange(1, len(face) - 1):
- submesh.faces.append(Cal3DFace(face_vertices[0], face_vertices[i], face_vertices[i + 1]))
-
- def writeCal3D(self, file):
- file.write('<?xml version="1.0"?>\n')
- file.write('<HEADER MAGIC="XMF" VERSION="%i"/>\n' % CAL3D_VERSION)
- file.write('<MESH NUMSUBMESH="%i">\n' % len(self.submeshes))
- for submesh in self.submeshes:
- submesh.writeCal3D(file, self.matrix, self.matrix_normal)
- file.write('</MESH>\n')
-
-
-class Cal3DSubMesh(object):
- __slots__ = 'material', 'vertices', 'vert_mapping', 'vert_count', 'faces', 'nb_lodsteps', 'springs', 'id'
- def __init__(self, mesh, material, id):
- self.material = material
- self.vertices = []
- self.vert_mapping = {} # map original indicies to local
- self.vert_count = 0
- self.faces = []
- self.nb_lodsteps = 0
- self.springs = []
- self.id = id
-
- def getVertex(self, blend_mesh, blend_vert, normal, maps):
- '''
- Request a vertex, and create a new one or return a matching vertex
- '''
- blend_index = blend_vert.index
- index_map = self.vert_mapping.get(blend_index)
-
- if index_map == None:
- vertex = Cal3DVertex(blend_vert.co, normal, maps, blend_mesh.getVertexInfluences(blend_index))
- self.vertices.append([vertex])
- self.vert_mapping[blend_index] = len(self.vert_mapping)
- self.vert_count +=1
- return vertex
- else:
- vertex_list = self.vertices[index_map]
-
- for v in vertex_list:
- if v.normal == normal and\
- v.maps == maps:
- return v # reusing
-
- # No match, add a new vert
- # Use the first verts influences
- vertex = Cal3DVertex(blend_vert.co, normal, maps, vertex_list[0].influences)
- vertex_list.append(vertex)
- # self.vert_mapping[blend_index] = len(self.vert_mapping)
- self.vert_count +=1
- return vertex
-
-
- def compute_lods(self):
- '''Computes LODs info for Cal3D (there's no Blender related stuff here).'''
-
- print 'Start LODs computation...'
- vertex2faces = {}
- for face in self.faces:
- for vertex in (face.vertex1, face.vertex2, face.vertex3):
- l = vertex2faces.get(vertex)
- if not l: vertex2faces[vertex] = [face]
- else: l.append(face)
-
- couple_treated = {}
- couple_collapse_factor = []
- for face in self.faces:
- for a, b in ((face.vertex1, face.vertex2), (face.vertex1, face.vertex3), (face.vertex2, face.vertex3)):
- a = a.cloned_from or a
- b = b.cloned_from or b
- if a.id > b.id: a, b = b, a
- if not couple_treated.has_key((a, b)):
- # The collapse factor is simply the distance between the 2 points :-(
- # This should be improved !!
- if vector_dotproduct(a.normal, b.normal) < 0.9: continue
- couple_collapse_factor.append((point_distance(a.loc, b.loc), a, b))
- couple_treated[a, b] = 1
-
- couple_collapse_factor.sort()
-
- collapsed = {}
- new_vertices = []
- new_faces = []
- for factor, v1, v2 in couple_collapse_factor:
- # Determines if v1 collapses to v2 or v2 to v1.
- # We choose to keep the vertex which is on the smaller number of faces, since
- # this one has more chance of being in an extrimity of the body.
- # Though heuristic, this rule yields very good results in practice.
- if len(vertex2faces[v1]) < len(vertex2faces[v2]): v2, v1 = v1, v2
- elif len(vertex2faces[v1]) == len(vertex2faces[v2]):
- if collapsed.get(v1, 0): v2, v1 = v1, v2 # v1 already collapsed, try v2
-
- if (not collapsed.get(v1, 0)) and (not collapsed.get(v2, 0)):
- collapsed[v1] = 1
- collapsed[v2] = 1
-
- # Check if v2 is already colapsed
- while v2.collapse_to: v2 = v2.collapse_to
-
- common_faces = filter(vertex2faces[v1].__contains__, vertex2faces[v2])
-
- v1.collapse_to = v2
- v1.face_collapse_count = len(common_faces)
-
- for clone in v1.clones:
- # Find the clone of v2 that correspond to this clone of v1
- possibles = []
- for face in vertex2faces[clone]:
- possibles.append(face.vertex1)
- possibles.append(face.vertex2)
- possibles.append(face.vertex3)
- clone.collapse_to = v2
- for vertex in v2.clones:
- if vertex in possibles:
- clone.collapse_to = vertex
- break
-
- clone.face_collapse_count = 0
- new_vertices.append(clone)
-
- # HACK -- all faces get collapsed with v1 (and no faces are collapsed with v1's
- # clones). This is why we add v1 in new_vertices after v1's clones.
- # This hack has no other incidence that consuming a little few memory for the
- # extra faces if some v1's clone are collapsed but v1 is not.
- new_vertices.append(v1)
-
- self.nb_lodsteps += 1 + len(v1.clones)
-
- new_faces.extend(common_faces)
- for face in common_faces:
- face.can_collapse = 1
-
- # Updates vertex2faces
- vertex2faces[face.vertex1].remove(face)
- vertex2faces[face.vertex2].remove(face)
- vertex2faces[face.vertex3].remove(face)
- vertex2faces[v2].extend(vertex2faces[v1])
-
- new_vertices.extend(filter(lambda vertex: not vertex.collapse_to, self.vertices))
- new_vertices.reverse() # Cal3D want LODed vertices at the end
- for i in xrange(len(new_vertices)): new_vertices[i].id = i
- self.vertices = new_vertices
-
- new_faces.extend(filter(lambda face: not face.can_collapse, self.faces))
- new_faces.reverse() # Cal3D want LODed faces at the end
- self.faces = new_faces
-
- print 'LODs computed : %s vertices can be removed (from a total of %s).' % (self.nb_lodsteps, len(self.vertices))
-
-
- def writeCal3D(self, file, matrix, matrix_normal):
-
- file.write('\t<SUBMESH NUMVERTICES="%i" NUMFACES="%i" MATERIAL="%i" ' % \
- (self.vert_count, len(self.faces), self.material.id))
- file.write('NUMLODSTEPS="%i" NUMSPRINGS="%i" NUMTEXCOORDS="%i">\n' % \
- (self.nb_lodsteps, len(self.springs),
- len(self.material.maps_filenames)))
-
- i = 0
- for v in self.vertices:
- for item in v:
- item.id = i
- item.writeCal3D(file, matrix, matrix_normal)
- i += 1
-
- for item in self.springs:
- item.writeCal3D(file)
- for item in self.faces:
- item.writeCal3D(file)
-
- file.write('\t</SUBMESH>\n')
-
-class Cal3DVertex(object):
- __slots__ = 'loc','normal','collapse_to','face_collapse_count','maps','influences','weight','cloned_from','clones','id'
- def __init__(self, loc, normal, maps, blend_influences):
- self.loc = loc
- self.normal = normal
- self.collapse_to = None
- self.face_collapse_count = 0
- self.maps = maps
- self.weight = None
-
- self.cloned_from = None
- self.clones = []
-
- self.id = -1
-
- if len(blend_influences) == 0 or isinstance(blend_influences[0], Cal3DInfluence):
- # This is a copy from another vert
- self.influences = blend_influences
- else:
- # Pass the blender influences
-
- self.influences = []
- # should this really be a warning? (well currently enabled,
- # because blender has some bugs where it doesn't return
- # influences in python api though they are set, and because
- # cal3d<=0.9.1 had bugs where objects without influences
- # aren't drawn.
- #if not blend_influences:
- # print 'A vertex of object "%s" has no influences.\n(This occurs on objects placed in an invisible layer, you can fix it by using a single layer)' % ob.name
-
- # sum of influences is not always 1.0 in Blender ?!?!
- sum = 0.0
-
- for bone_name, weight in blend_influences:
- sum += weight
-
- for bone_name, weight in blend_influences:
- bone = BONES.get(bone_name)
- if not bone: # keys
- # print 'Couldnt find bone "%s" which influences object "%s"' % (bone_name, ob.name)
- continue
-
- if weight:
- self.influences.append(Cal3DInfluence(bone, weight / sum))
-
-
- def writeCal3D(self, file, matrix, matrix_normal):
- if self.collapse_to:
- collapse_id = self.collapse_to.id
- else:
- collapse_id = -1
- file.write('\t\t<VERTEX ID="%i" NUMINFLUENCES="%i">\n' % \
- (self.id, len(self.influences)))
- file.write('\t\t\t<POS>%.6f %.6f %.6f</POS>\n' % tuple(self.loc*matrix))
- file.write('\t\t\t<NORM>%.6f %.6f %.6f</NORM>\n' % tuple( (self.normal*matrix_normal).normalize() ))
- if collapse_id != -1:
- file.write('\t\t\t<COLLAPSEID>%i</COLLAPSEID>\n' % collapse_id)
- file.write('\t\t\t<COLLAPSECOUNT>%i</COLLAPSECOUNT>\n' % \
- self.face_collapse_count)
-
- for uv in self.maps:
- # we cant have more UV's then our materials image maps
- # check for this
- file.write('\t\t\t<TEXCOORD>%.6f %.6f</TEXCOORD>\n' % uv)
-
- for item in self.influences:
- item.writeCal3D(file)
-
- if self.weight != None:
- file.write('\t\t\t<PHYSIQUE>%.6f</PHYSIQUE>\n' % len(self.weight))
- file.write('\t\t</VERTEX>\n')
-
-class Cal3DInfluence(object):
- __slots__ = 'bone', 'weight'
- def __init__(self, bone, weight):
- self.bone = bone
- self.weight = weight
-
- def writeCal3D(self, file):
- file.write('\t\t\t<INFLUENCE ID="%i">%.6f</INFLUENCE>\n' % \
- (self.bone.id, self.weight))
-
-class Cal3DSpring(object):
- __slots__ = 'vertex1', 'vertex2', 'spring_coefficient', 'idlelength'
- def __init__(self, vertex1, vertex2):
- self.vertex1 = vertex1
- self.vertex2 = vertex2
- self.spring_coefficient = 0.0
- self.idlelength = 0.0
-
- def writeCal3D(self, file):
- file.write('\t\t<SPRING VERTEXID="%i %i" COEF="%.6f" LENGTH="%.6f"/>\n' % \
- (self.vertex1.id, self.vertex2.id, self.spring_coefficient, self.idlelength))
-
-class Cal3DFace(object):
- __slots__ = 'vertex1', 'vertex2', 'vertex3', 'can_collapse',
- def __init__(self, vertex1, vertex2, vertex3):
- self.vertex1 = vertex1
- self.vertex2 = vertex2
- self.vertex3 = vertex3
- self.can_collapse = 0
-
- def writeCal3D(self, file):
- file.write('\t\t<FACE VERTEXID="%i %i %i"/>\n' % \
- (self.vertex1.id, self.vertex2.id, self.vertex3.id))
-
-class Cal3DSkeleton(object):
- __slots__ = 'bones'
- def __init__(self):
- self.bones = []
-
- def writeCal3D(self, file):
- file.write('<?xml version="1.0"?>\n')
- file.write('<HEADER MAGIC="XSF" VERSION="%i"/>\n' % CAL3D_VERSION)
- file.write('<SKELETON NUMBONES="%i">\n' % len(self.bones))
- for item in self.bones:
- item.writeCal3D(file)
-
- file.write('</SKELETON>\n')
-
-BONES = {}
-POSEBONES= {}
-class Cal3DBone(object):
- __slots__ = 'head', 'tail', 'name', 'cal3d_parent', 'loc', 'quat', 'children', 'matrix', 'lloc', 'lquat', 'id'
- def __init__(self, skeleton, blend_bone, arm_matrix, cal3d_parent=None):
-
- # def treat_bone(b, parent = None):
- head = blend_bone.head['BONESPACE']
- tail = blend_bone.tail['BONESPACE']
- #print parent.quat
- # Turns the Blender's head-tail-roll notation into a quaternion
- #quat = matrix2quaternion(blender_bone2matrix(head, tail, blend_bone.roll['BONESPACE']))
- quat = matrix2quaternion(blend_bone.matrix['BONESPACE'].copy().resize4x4())
-
- # Pose location
- ploc = POSEBONES[blend_bone.name].loc
-
- if cal3d_parent:
- # Compute the translation from the parent bone's head to the child
- # bone's head, in the parent bone coordinate system.
- # The translation is parent_tail - parent_head + child_head,
- # but parent_tail and parent_head must be converted from the parent's parent
- # system coordinate into the parent system coordinate.
-
- parent_invert_transform = matrix_invert(quaternion2matrix(cal3d_parent.quat))
- parent_head = vector_by_matrix_3x3(cal3d_parent.head, parent_invert_transform)
- parent_tail = vector_by_matrix_3x3(cal3d_parent.tail, parent_invert_transform)
- ploc = vector_add(ploc, blend_bone.head['BONESPACE'])
-
- # EDIT!!! FIX BONE OFFSET BE CAREFULL OF THIS PART!!! ??
- #diff = vector_by_matrix_3x3(head, parent_invert_transform)
- parent_tail= vector_add(parent_tail, head)
- # DONE!!!
-
- parentheadtotail = vector_sub(parent_tail, parent_head)
- # hmm this should be handled by the IPos, but isn't for non-animated
- # bones which are transformed in the pose mode...
- loc = parentheadtotail
-
- else:
- # Apply the armature's matrix to the root bones
- head = point_by_matrix(head, arm_matrix)
- tail = point_by_matrix(tail, arm_matrix)
-
- loc = head
- quat = matrix2quaternion(matrix_multiply(arm_matrix, quaternion2matrix(quat))) # Probably not optimal
-
- self.head = head
- self.tail = tail
-
- self.cal3d_parent = cal3d_parent
- self.name = blend_bone.name
- self.loc = loc
- self.quat = quat
- self.children = []
-
- self.matrix = matrix_translate(quaternion2matrix(quat), loc)
- if cal3d_parent:
- self.matrix = matrix_multiply(cal3d_parent.matrix, self.matrix)
-
- # lloc and lquat are the bone => model space transformation (translation and rotation).
- # They are probably specific to Cal3D.
- m = matrix_invert(self.matrix)
- self.lloc = m[3][0], m[3][1], m[3][2]
- self.lquat = matrix2quaternion(m)
-
- self.id = len(skeleton.bones)
- skeleton.bones.append(self)
- BONES[self.name] = self
-
- if not blend_bone.hasChildren(): return
- for blend_child in blend_bone.children:
- self.children.append(Cal3DBone(skeleton, blend_child, arm_matrix, self))
-
-
- def writeCal3D(self, file):
- file.write('\t<BONE ID="%i" NAME="%s" NUMCHILD="%i">\n' % \
- (self.id, self.name, len(self.children)))
- # We need to negate quaternion W value, but why ?
- file.write('\t\t<TRANSLATION>%.6f %.6f %.6f</TRANSLATION>\n' % \
- (self.loc[0], self.loc[1], self.loc[2]))
- file.write('\t\t<ROTATION>%.6f %.6f %.6f %.6f</ROTATION>\n' % \
- (self.quat[0], self.quat[1], self.quat[2], -self.quat[3]))
- file.write('\t\t<LOCALTRANSLATION>%.6f %.6f %.6f</LOCALTRANSLATION>\n' % \
- (self.lloc[0], self.lloc[1], self.lloc[2]))
- file.write('\t\t<LOCALROTATION>%.6f %.6f %.6f %.6f</LOCALROTATION>\n' % \
- (self.lquat[0], self.lquat[1], self.lquat[2], -self.lquat[3]))
- if self.cal3d_parent:
- file.write('\t\t<PARENTID>%i</PARENTID>\n' % self.cal3d_parent.id)
- else:
- file.write('\t\t<PARENTID>%i</PARENTID>\n' % -1)
-
- for item in self.children:
- file.write('\t\t<CHILDID>%i</CHILDID>\n' % item.id)
-
- file.write('\t</BONE>\n')
-
-class Cal3DAnimation:
- def __init__(self, name, duration = 0.0):
- self.name = name
- self.duration = duration
- self.tracks = {} # Map bone names to tracks
-
- def writeCal3D(self, file):
- file.write('<?xml version="1.0"?>\n')
- file.write('<HEADER MAGIC="XAF" VERSION="%i"/>\n' % CAL3D_VERSION)
- file.write('<ANIMATION DURATION="%.6f" NUMTRACKS="%i">\n' % \
- (self.duration, len(self.tracks)))
-
- for item in self.tracks.itervalues():
- item.writeCal3D(file)
-
- file.write('</ANIMATION>\n')
-
-class Cal3DTrack(object):
- __slots__ = 'bone', 'keyframes'
- def __init__(self, bone):
- self.bone = bone
- self.keyframes = []
-
- def writeCal3D(self, file):
- file.write('\t<TRACK BONEID="%i" NUMKEYFRAMES="%i">\n' %
- (self.bone.id, len(self.keyframes)))
- for item in self.keyframes:
- item.writeCal3D(file)
- file.write('\t</TRACK>\n')
-
-class Cal3DKeyFrame(object):
- __slots__ = 'time', 'loc', 'quat'
- def __init__(self, time, loc, quat):
- self.time = time
- self.loc = loc
- self.quat = quat
-
- def writeCal3D(self, file):
- file.write('\t\t<KEYFRAME TIME="%.6f">\n' % self.time)
- file.write('\t\t\t<TRANSLATION>%.6f %.6f %.6f</TRANSLATION>\n' % \
- (self.loc[0], self.loc[1], self.loc[2]))
- # We need to negate quaternion W value, but why ?
- file.write('\t\t\t<ROTATION>%.6f %.6f %.6f %.6f</ROTATION>\n' % \
- (self.quat[0], self.quat[1], self.quat[2], -self.quat[3]))
- file.write('\t\t</KEYFRAME>\n')
-
-def export_cal3d(filename, PREF_SCALE=0.1, PREF_BAKE_MOTION = True, PREF_ACT_ACTION_ONLY=True, PREF_SCENE_FRAMES=False):
- if not filename.endswith('.cfg'):
- filename += '.cfg'
-
- file_only = filename.split('/')[-1].split('\\')[-1]
- file_only_noext = file_only.split('.')[0]
- base_only = filename[:-len(file_only)]
-
- def new_name(dataname, ext):
- return file_only_noext + '_' + BPySys.cleanName(dataname) + ext
-
- #if EXPORT_FOR_SOYA:
- # global BASE_MATRIX
- # BASE_MATRIX = matrix_rotate_x(-math.pi / 2.0)
- # Get the sce
-
- sce = bpy.data.scenes.active
- blend_world = sce.world
- # ---- Export skeleton (armature) ----------------------------------------
-
- skeleton = Cal3DSkeleton()
- blender_armature = [ob for ob in sce.objects.context if ob.type == 'Armature']
- if len(blender_armature) > 1: print "Found multiple armatures! using ",armatures[0].name
- if blender_armature: blender_armature = blender_armature[0]
- else:
- # Try find a meshes armature
- for ob in sce.objects.context:
- blender_armature = BPyObject.getObjectArmature(ob)
- if blender_armature:
- break
-
- if not blender_armature:
- Blender.Draw.PupMenu('Aborting%t|No Armature in selection')
- return
-
- # we need pose bone locations
- for pbone in blender_armature.getPose().bones.values():
- POSEBONES[pbone.name] = pbone
-
- Cal3DBone(skeleton, best_armature_root(blender_armature.getData()), blender_armature.matrixWorld)
-
- # ---- Export Mesh data ---------------------------------------------------
- meshes = []
- for ob in sce.objects.context:
- if ob.type != 'Mesh': continue
- blend_mesh = ob.getData(mesh=1)
-
- if not blend_mesh.faces: continue
- meshes.append( Cal3DMesh(ob, blend_mesh, blend_world) )
-
- # ---- Export animations --------------------------------------------------
- backup_action = blender_armature.action
-
- ANIMATIONS = []
- SUPPORTED_IPOS = 'QuatW', 'QuatX', 'QuatY', 'QuatZ', 'LocX', 'LocY', 'LocZ'
-
- if PREF_ACT_ACTION_ONLY: action_items = [(blender_armature.action.name, blender_armature.action)]
- else: action_items = Blender.Armature.NLA.GetActions().items()
-
- print len(action_items), 'action_items'
-
- for animation_name, blend_action in action_items:
-
- # get frame range
- if PREF_SCENE_FRAMES:
- action_start= Blender.Get('staframe')
- action_end= Blender.Get('endframe')
- else:
- _frames = blend_action.getFrameNumbers()
- action_start= min(_frames);
- action_end= max(_frames);
- del _frames
-
- blender_armature.action = blend_action
-
- if PREF_BAKE_MOTION:
- # We need to set the action active if we are getting baked data
- pose_data = BPyArmature.getBakedPoseData(blender_armature, action_start, action_end)
-
- # Fake, all we need is bone names
- blend_action_ipos_items = [(pbone, True) for pbone in POSEBONES.iterkeys()]
- else:
- # real (bone_name, ipo) pairs
- blend_action_ipos_items = blend_action.getAllChannelIpos().items()
-
- # Now we mau have some bones with no channels, easiest to add their names and an empty list here
- # this way they are exported with dummy keyfraames at teh first used frame
- action_bone_names = [name for name, ipo in blend_action_ipos_items]
- for bone_name in BONES: # iterkeys
- if bone_name not in action_bone_names:
- blend_action_ipos_items.append( (bone_name, []) )
-
- animation = Cal3DAnimation(animation_name)
- # ----------------------------
- ANIMATIONS.append(animation)
- animation.duration = 0.0
-
- for bone_name, ipo in blend_action_ipos_items:
- # Baked bones may have no IPO's width motion still
- if bone_name not in BONES:
- print '\tNo Bone "' + bone_name + '" in (from Animation "' + animation_name + '") ?!?'
- continue
-
- # So we can loop without errors
- if ipo==None: ipo = []
-
- bone = BONES[bone_name]
- track = animation.tracks[bone_name] = Cal3DTrack(bone)
-
- if PREF_BAKE_MOTION:
- for i in xrange(action_end - action_start):
- cal3dtime = i / 25.0 # assume 25FPS by default
-
- if cal3dtime > animation.duration:
- animation.duration = cal3dtime
-
- #print pose_data[i][bone_name], i
- loc, quat = pose_data[i][bone_name]
-
- loc = vector_by_matrix_3x3(loc, bone.matrix)
- loc = vector_add(bone.loc, loc)
- quat = quaternion_multiply(quat, bone.quat)
- quat = Quaternion(quat)
-
- quat.normalize()
- quat = tuple(quat)
-
- track.keyframes.append( Cal3DKeyFrame(cal3dtime, loc, quat) )
-
- else:
- #run 1: we need to find all time values where we need to produce keyframes
- times = set()
- for curve in ipo:
- curve_name = curve.name
- if curve_name in SUPPORTED_IPOS:
- for p in curve.bezierPoints:
- times.add( p.pt[0] )
-
- times = list(times)
- times.sort()
-
- # Incase we have no keys here or ipo==None
- if not times: times.append(action_start)
-
- # run2: now create keyframes
- for time in times:
- cal3dtime = (time-1) / 25.0 # assume 25FPS by default
- if cal3dtime > animation.duration:
- animation.duration = cal3dtime
-
- trans = Vector()
- quat = Quaternion()
-
- for curve in ipo:
- val = curve.evaluate(time)
- # val = 0.0
- curve_name= curve.name
- if curve_name == 'LocX': trans[0] = val
- elif curve_name == 'LocY': trans[1] = val
- elif curve_name == 'LocZ': trans[2] = val
- elif curve_name == 'QuatW': quat[3] = val
- elif curve_name == 'QuatX': quat[0] = val
- elif curve_name == 'QuatY': quat[1] = val
- elif curve_name == 'QuatZ': quat[2] = val
-
- transt = vector_by_matrix_3x3(trans, bone.matrix)
- loc = vector_add(bone.loc, transt)
- quat = quaternion_multiply(quat, bone.quat)
- quat = Quaternion(quat)
-
- quat.normalize()
- quat = tuple(quat)
-
- track.keyframes.append( Cal3DKeyFrame(cal3dtime, loc, quat) )
-
-
- if animation.duration <= 0:
- print 'Ignoring Animation "' + animation_name + '": duration is 0.\n'
- continue
-
- # Restore the original armature
- blender_armature.action = backup_action
- # ------------------------------------- End Animation
-
-
-
- cfg = open((filename), 'wb')
- cfg.write('# Cal3D model exported from Blender with export_cal3d.py\n# from %s\n' % Blender.Get('filename'))
-
- if PREF_SCALE != 1.0: cfg.write('scale=%.6f\n' % PREF_SCALE)
-
- fname = file_only_noext + '.xsf'
- file = open( base_only + fname, 'wb')
- skeleton.writeCal3D(file)
- file.close()
-
- cfg.write('skeleton=%s\n' % fname)
-
- for animation in ANIMATIONS:
- if not animation.name.startswith('_'):
- if animation.duration > 0.1: # Cal3D does not support animation with only one state
- fname = new_name(animation.name, '.xaf')
- file = open(base_only + fname, 'wb')
- animation.writeCal3D(file)
- file.close()
- cfg.write('animation=%s\n' % fname)
-
- for mesh in meshes:
- if not mesh.name.startswith('_'):
- fname = new_name(mesh.name, '.xmf')
- file = open(base_only + fname, 'wb')
- mesh.writeCal3D(file)
- file.close()
-
- cfg.write('mesh=%s\n' % fname)
-
- materials = MATERIALS.values()
- materials.sort(key = lambda a: a.id)
- for material in materials:
- # Just number materials, its less trouble
- fname = new_name(str(material.id), '.xrf')
-
- file = open(base_only + fname, 'wb')
- material.writeCal3D(file)
- file.close()
-
- cfg.write('material=%s\n' % fname)
-
- print 'Cal3D Saved to "%s.cfg"' % file_only_noext
-
- # Warnings
- if len(animation.tracks) < 2:
- Blender.Draw.PupMenu('Warning, the armature has less then 2 tracks, file may not load in Cal3d')
-
-
-def export_cal3d_ui(filename):
-
- PREF_SCALE= Blender.Draw.Create(1.0)
- PREF_BAKE_MOTION = Blender.Draw.Create(1)
- PREF_ACT_ACTION_ONLY= Blender.Draw.Create(1)
- PREF_SCENE_FRAMES= Blender.Draw.Create(0)
-
- block = [\
- ('Scale: ', PREF_SCALE, 0.01, 100, 'The scale to set in the Cal3d .cfg file (unsupported by soya)'),\
- ('Baked Motion', PREF_BAKE_MOTION, 'use final pose position instead of ipo keyframes (IK and constraint support)'),\
- ('Active Action', PREF_ACT_ACTION_ONLY, 'Only export action applied to this armature, else export all actions.'),\
- ('Scene Frames', PREF_SCENE_FRAMES, 'Use scene frame range, else the actions start/end'),\
- ]
-
- if not Blender.Draw.PupBlock('Cal3D Options', block):
- return
-
- Blender.Window.WaitCursor(1)
- export_cal3d(filename, 1.0/PREF_SCALE.val, PREF_BAKE_MOTION.val, PREF_ACT_ACTION_ONLY.val, PREF_SCENE_FRAMES.val)
- Blender.Window.WaitCursor(0)
-
-
-#import os
-if __name__ == '__main__':
- Blender.Window.FileSelector(export_cal3d_ui, 'Cal3D Export', Blender.Get('filename').replace('.blend', '.cfg'))
- #export_cal3d('/cally/data/skeleton/skeleton' + '.cfg', 1.0, True, False, False)
- #export_cal3d('/test' + '.cfg')
- #export_cal3d_ui('/test' + '.cfg')
- #os.system('cd /; wine /cal3d_miniviewer.exe /skeleton.cfg')
- #os.system('cd /cally/;wine cally')
diff --git a/release/scripts/export_lightwave_motion.py b/release/scripts/export_lightwave_motion.py
index cabc4cf5fc6..93a5961baef 100644
--- a/release/scripts/export_lightwave_motion.py
+++ b/release/scripts/export_lightwave_motion.py
@@ -10,11 +10,11 @@ Tip: 'Export Loc Rot Size chanels to a Lightwave .mot file'
__author__ = "Daniel Salazar (ZanQdo)"
__url__ = ("blender", "elysiun",
"e-mail: zanqdo@gmail.com")
-__version__ = "24/03/06"
+__version__ = "16/04/08"
__bpydoc__ = """\
-This script exports the selected object's motion channels to a Lightwave
-motion file (.mot).
+This script exports the selected object's motion channels to Lightwave
+motion files (.mot).
Usage:
Run the script with one or more objects selected (any kind), frames exported
@@ -45,6 +45,7 @@ are between Start and End frames in Render buttons.
# ***** END GPL LICENCE BLOCK *****
# --------------------------------------------------------------------------
import Blender as B
+import math as M
#------------------------------------
#Declarados:
TotalCanales = 9
@@ -116,11 +117,11 @@ def FuncionPrincipal (Dir):
elif NumCanal == 2:
Val = mat.translationPart().y
elif NumCanal == 3:
- Val = -mat.toEuler().z
+ Val = M.radians (-mat.toEuler().z)
elif NumCanal == 4:
- Val = -mat.toEuler().x
+ Val = M.radians (-mat.toEuler().x)
elif NumCanal == 5:
- Val = -mat.toEuler().y
+ Val = M.radians (-mat.toEuler().y)
elif NumCanal == 6:
Val = mat.scalePart().x
elif NumCanal == 7:
@@ -153,4 +154,4 @@ def main():
B.Window.FileSelector(FuncionPrincipal, "Write .mot File", B.sys.makename(ext='.mot'))
if __name__=='__main__':
- main() \ No newline at end of file
+ main()
diff --git a/release/scripts/export_mdd.py b/release/scripts/export_mdd.py
index 8173059ca5a..4f99c9175fd 100644
--- a/release/scripts/export_mdd.py
+++ b/release/scripts/export_mdd.py
@@ -45,7 +45,7 @@ try:
except:
pack = None
-
+
def zero_file(filepath):
'''
If a file fails, this replaces it with 1 char, better not remove it?
@@ -54,6 +54,18 @@ def zero_file(filepath):
file.write('\n') # aparently macosx needs some data in a blank file?
file.close()
+
+def check_vertcount(mesh,vertcount):
+ '''
+ check and make sure the vertcount is consistent throghout the frame range
+ '''
+ if len(mesh.verts) != vertcount:
+ Blender.Draw.PupMenu('Error%t|Number of verts has changed during animation|cannot export')
+ f.close()
+ zero_file(filepath)
+ return
+
+
def mdd_export(filepath, ob, PREF_STARTFRAME, PREF_ENDFRAME, PREF_FPS):
Window.EditMode(0)
@@ -84,23 +96,25 @@ def mdd_export(filepath, ob, PREF_STARTFRAME, PREF_ENDFRAME, PREF_FPS):
f = open(filepath, 'wb') #no Errors yet:Safe to create file
# Write the header
- f.write(pack(">2i", numframes-1, numverts))
+ f.write(pack(">2i", numframes, numverts))
# Write the frame times (should we use the time IPO??)
- f.write( pack(">%df" % (numframes-1), *[frame/PREF_FPS for frame in xrange(numframes-1)]) ) # seconds
+ f.write( pack(">%df" % (numframes), *[frame/PREF_FPS for frame in xrange(numframes)]) ) # seconds
+ #rest frame needed to keep frames in sync
Blender.Set('curframe', PREF_STARTFRAME)
+ me_tmp.getFromObject(ob.name)
+ check_vertcount(me_tmp,numverts)
+ me_tmp.transform(ob.matrixWorld * mat_flip)
+ f.write(pack(">%df" % (numverts*3), *[axis for v in me_tmp.verts for axis in v.co]))
+ me_tmp.verts= None
+
for frame in xrange(PREF_STARTFRAME,PREF_ENDFRAME+1):#in order to start at desired frame
Blender.Set('curframe', frame)
- # Blender.Window.RedrawAll() # not needed
+
me_tmp.getFromObject(ob.name)
- if len(me_tmp.verts) != numverts:
- Blender.Draw.PupMenu('Error%t|Number of verts has changed during animation|cannot export')
- Blender.Window.WaitCursor(0)
- f.close() # should we zero?
- zero_file(filepath)
- return
+ check_vertcount(me_tmp,numverts)
me_tmp.transform(ob.matrixWorld * mat_flip)
@@ -151,4 +165,4 @@ if __name__=='__main__':
if not pack:
Draw.PupMenu('Error%t|This script requires a full python install')
- Blender.Window.FileSelector(mdd_export_ui, 'EXPORT MDD', sys.makename(ext='.mdd'))
+ Blender.Window.FileSelector(mdd_export_ui, 'EXPORT MDD', sys.makename(ext='.mdd')) \ No newline at end of file
diff --git a/release/scripts/flt_export.py b/release/scripts/flt_export.py
index 5e69e203374..80d68d10b62 100644
--- a/release/scripts/flt_export.py
+++ b/release/scripts/flt_export.py
@@ -47,45 +47,51 @@ import shutil
FF = FileFinder()
records = process_recordDefs()
-
+
class ExporterOptions:
+
+ def read_state(self):
+ reg = Blender.Registry.GetKey('flt_export',1)
+ if reg:
+ for key in self.state:
+ if reg.has_key(key):
+ self.state[key] = reg[key]
+
+ def write_state(self):
+ d = dict()
+ for key in self.state:
+ d[key] = self.state[key]
+ Blender.Registry.SetKey('flt_export', d, 1)
def __init__(self):
self.verbose = 1
self.tolerance = 0.001
self.writevcol = True
- #new stuff
- self.export_shading = 0
- self.shading_default = 45.0
- self.basepath = os.path.dirname(Blender.Get('filename'))
- self.scale = 1.0
-
- #set externals path
- if(os.path.exists(os.path.join(self.basepath,'externals'))):
- self.externalspath = os.path.join(self.basepath,'externals')
+ self.state = {'export_shading' : 0,
+ 'shading_default' : 45,
+ 'basepath' : os.path.dirname(Blender.Get('filename')),
+ 'scale': 1.0,
+ 'doxrefs' : 1,
+ 'attrib' : 0,
+ 'copytex' : 0,
+ 'transform' : 0,
+ 'xapp' : 1}
+
+ #default externals path
+ if(os.path.exists(os.path.join(self.state['basepath'],'externals'))):
+ self.state['externalspath'] = os.path.join(self.state['basepath'],'externals')
else:
- self.externalspath = self.basepath
+ self.state['externalspath'] = self.state['basepath']
- self.doxrefs = 1
-
- #texture options
- if(os.path.exists(os.path.join(self.basepath,'textures'))):
- self.texturespath = os.path.join(self.basepath,'textures')
+ if(os.path.exists(os.path.join(self.state['basepath'],'textures'))):
+ self.state['texturespath'] = os.path.join(self.state['basepath'],'textures')
else:
- self.texturespath = self.basepath
+ self.state['texturespath'] = self.state['basepath']
+
+ self.state['xappath'] = ''
+ self.read_state() #read from registry
- #misc
- self.write_attrib_files = 0
- self.copy_textures = 0
- self.export_transform = 0
- self.flattenmesh = False
- self.xapp = 1
- reg = Blender.Registry.GetKey('flt_export',1)
- if(reg and 'xappath' in reg.keys()):
- self.xappath = reg['xappath']
- else:
- self.xappath = ''
options = ExporterOptions()
tex_files = dict() #a list of (possibly) modified texture path names
@@ -221,7 +227,7 @@ class GlobalResourceRepository:
indexhash = self.namehash[object.name]
#export in global space? THIS HAS BEEN MADE REDUNDANT... REMOVE ME
- if not options.export_transform:
+ if not options.state['transform']:
vertex = shadowVert(vertex,object,True,flatShadeNorm)
else:
vertex = shadowVert(vertex,object,False,flatShadeNorm)
@@ -391,6 +397,7 @@ class Node:
print '\t' * level[0], self.name, self.object.type
level[0] += 1
+ self.children.reverse()
for child in self.children:
child.blender_export()
@@ -415,14 +422,26 @@ class Node:
def write_pop(self):
self.header.fw.write_short(11)
self.header.fw.write_ushort(4)
-
+
+ def write_push_extension(self):
+ self.header.fw.write_short(21)
+ self.header.fw.write_ushort(24)
+ self.header.fw.pad(18)
+ self.header.fw.write_ushort(0)
+
+ def write_pop_extension(self):
+ self.header.fw.write_short(22)
+ self.header.fw.write_ushort(24)
+ self.header.fw.pad(18)
+ self.header.fw.write_ushort(0)
+
def write_longid(self, name):
length = len(name)
if length >= 8:
self.header.fw.write_short(33) # Long ID opcode
self.header.fw.write_ushort(length+5) # Length of record
self.header.fw.write_string(name, length+1) # name + zero terminator
-
+
def write_comment(self,comment):
length = len(comment)
if length >= 65535:
@@ -450,9 +469,9 @@ class Node:
self.object = object
if object:
self.name = self.object.name
- if not options.export_transform:
+ if not options.state['transform']:
oloc = Blender.Mathutils.Vector(object.getLocation('worldspace'))
- vec = Blender.Mathutils.Vector(oloc[0] * options.scale, oloc[1] * options.scale, oloc[2] * options.scale) #scale
+ vec = Blender.Mathutils.Vector(oloc[0] * options.state['scale'], oloc[1] * options.state['scale'], oloc[2] * options.state['scale']) #scale
self.matrix = self.object.getMatrix('worldspace') * Blender.Mathutils.TranslationMatrix(vec - oloc)
else:
self.matrix = self.object.getMatrix('localspace') #do matrix mult here.
@@ -473,31 +492,31 @@ class Node:
for child in self.child_objects:
if(not child.restrictDisplay):
childprops = None
- type = None
+ ftype = None
if not child.properties.has_key('FLT'):
if child.type == 'Empty':
if child.DupGroup:
childprops = FLTXRef.copy()
- type = 63
+ ftype = 63
else:
childprops = FLTGroup.copy()
- type = 2
+ ftype = 2
elif child.type == 'Mesh':
if self.header.childhash[child.name] or not child.parent:
childprops = FLTGroup.copy()
- type = 2
+ ftype = 2
else:
childprops = FLTObject.copy()
- type = 4
+ ftype = 4
else:
childprops = dict()
for prop in child.properties['FLT']:
childprops[prop] = child.properties['FLT'][prop]
- type = child.properties['FLT']['type']
+ ftype = child.properties['FLT']['type']
- if type in self.childtypes and type in alltypes:
- Newnode = FLTNode(self,header,child,childprops,type)
+ if ftype in self.childtypes and ftype in alltypes:
+ Newnode = FLTNode(self,header,child,childprops,ftype)
if child.type == 'Mesh':
self.header.mnodes.append(Newnode)
class FaceDesc:
@@ -636,11 +655,11 @@ class FLTNode(Node):
#now go through the loops and append.
for l in loops:
- (type, loop) = l
+ (ftype, loop) = l
face_desc = FaceDesc()
for i,vert in enumerate(loop):
face_desc.vertex_index_lst.append(self.header.GRR.request_vertex_index(self.object,self.exportmesh,loop,i,0,0))
- if type == 'closed':
+ if ftype == 'closed':
face_desc.renderstyle = 2
else:
face_desc.renderstyle = 3
@@ -789,13 +808,13 @@ class FLTNode(Node):
self.exportmesh.getFromObject(self.object.name)
for vert in self.exportmesh.verts:
- if not options.export_transform:
+ if not options.state['transform']:
vec = vert.co
- vec = Blender.Mathutils.Vector(vec[0] * options.scale, vec[1] * options.scale, vec[2] * options.scale) #scale
+ vec = Blender.Mathutils.Vector(vec[0] * options.state['scale'], vec[1] * options.state['scale'], vec[2] * options.state['scale']) #scale
vert.co = Blender.Mathutils.TranslationMatrix(vec) * (vert.co * self.object.getMatrix('worldspace'))
- if options.scale != 1.0:
- vert.co = vert.co * options.scale
+ if options.state['scale'] != 1.0:
+ vert.co = vert.co * options.state['scale']
if("FLT_VCOL") in self.mesh.verts.properties:
for v in self.exportmesh.verts:
@@ -812,7 +831,7 @@ class FLTNode(Node):
default = None
- if options.export_shading:
+ if options.state['export_shading']:
mods = self.object.modifiers
hasedsplit = False
for mod in mods:
@@ -821,7 +840,7 @@ class FLTNode(Node):
break
if not hasedsplit:
default = mods.append(Modifier.Types.EDGESPLIT)
- default[Modifier.Settings.EDGESPLIT_ANGLE] = options.shading_default
+ default[Modifier.Settings.EDGESPLIT_ANGLE] = options.state['shading_default']
default[Modifier.Settings.EDGESPLIT_FROM_ANGLE] = True
default[Modifier.Settings.EDGESPLIT_FROM_SHARP] = False
self.object.makeDisplayList()
@@ -830,17 +849,17 @@ class FLTNode(Node):
#recalculate vertex positions
for vert in self.exportmesh.verts:
- if not options.export_transform:
+ if not options.state['transform']:
vec = vert.co
- vec = Blender.Mathutils.Vector(vec[0] * options.scale, vec[1] * options.scale, vec[2] * options.scale) #scale
+ vec = Blender.Mathutils.Vector(vec[0] * options.state['scale'], vec[1] * options.state['scale'], vec[2] * options.state['scale']) #scale
vert.co = Blender.Mathutils.TranslationMatrix(vec) * (vert.co * self.object.getMatrix('worldspace'))
- if options.scale != 1.0:
- vert.co = vert.co * options.scale
+ if options.state['scale'] != 1.0:
+ vert.co = vert.co * options.state['scale']
flipped = self.object.getMatrix('worldspace').determinant()
- if not options.export_transform:
+ if not options.state['transform']:
self.exportmesh.calcNormals()
@@ -872,7 +891,7 @@ class FLTNode(Node):
self.buildNormFaces()
self.buildTexData()
- if not options.export_transform:
+ if not options.state['transform']:
if flipped < 0:
for vdesc in self.header.GRR.vertex_lst:
vdesc.accum = 0
@@ -1028,23 +1047,37 @@ class FLTNode(Node):
if self.props.has_key(key):
exportdict[key] = self.props[key]
- if self.opcode == 63 and options.externalspath:
+ if self.opcode == 63 and options.state['externalspath']:
try:
- exportdict['3t200!filename'] = os.path.join(options.externalspath,self.object.DupGroup.name+'.flt')
+ exportdict['3t200!filename'] = os.path.join(options.state['externalspath'],self.object.DupGroup.name+'.flt')
self.header.xrefnames.append(self.object.DupGroup.name)
except:
pass
for key in records[self.opcode]:
- (type,length,propname) = records[self.opcode][key]
- write_prop(self.header.fw,type,exportdict[propname],length)
+ (ftype,length,propname) = records[self.opcode][key]
+ write_prop(self.header.fw,ftype,exportdict[propname],length)
if self.props.has_key('comment'):
self.write_comment(self.props['comment'])
-
+
+ if self.object and self.object.properties.has_key('FLT') and self.object.properties['FLT'].has_key('EXT'):
+ datalen = len(self.object.properties['FLT']['EXT']['data'])
+ self.write_push_extension()
+ self.header.fw.write_short(100)
+ self.header.fw.write_ushort(24 + datalen)
+ for key in records[100]:
+ (ftype,length,propname) = records[100][key]
+ write_prop(self.header.fw,ftype,self.object.properties['FLT']['EXT'][propname],length)
+ #write extension data
+ for i in xrange(datalen):
+ self.header.fw.write_char(self.object.properties['FLT']['EXT']['data'][i])
+ self.write_pop_extension()
+
+
self.write_longid(self.name) #fix this!
- if options.export_transform or self.opcode == 63:
+ if options.state['transform'] or self.opcode == 63:
#writing transform matrix....
self.write_matrix()
@@ -1064,8 +1097,8 @@ class FLTNode(Node):
#self.write_pop()
self.write_pop()
- def __init__(self, parent, header, object,props,type):
- self.opcode = type #both these next two lines need to be in the node class....
+ def __init__(self, parent, header, object,props,ftype):
+ self.opcode = ftype #both these next two lines need to be in the node class....
self.childtypes = childtypes[self.opcode]
Node.__init__(self, parent, header, object,props)
self.face_lst = []
@@ -1207,21 +1240,16 @@ class Database(Node):
self.write_push()
- if options.flattenmesh:
- self.mnodes.reverse()
- for mnode in self.mnodes:
- mnode.write_faces()
- else:
- for child in self.children:
- child.write()
+ for child in self.children:
+ child.write()
self.write_pop()
def export_textures(self,texturepath):
for i in xrange(self.GRR.texture_count()):
texture = self.GRR.texture_lst[i]
- if options.copy_textures:
- filename = os.path.normpath(os.path.join(options.texturespath, os.path.basename(self.GRR.request_texture_filename(i))))
+ if options.state['copytex']:
+ filename = os.path.normpath(os.path.join(options.state['texturespath'], os.path.basename(self.GRR.request_texture_filename(i))))
else:
filename = os.path.normpath(self.GRR.request_texture_filename(i))
@@ -1295,8 +1323,8 @@ def write_attribute_files():
fw.write_int(size[0])
fw.write_int(size[1])
for key in records['Image']:
- (type,length,propname) = records['Image'][key]
- write_prop(fw,type,exportdict[propname],length)
+ (ftype,length,propname) = records['Image'][key]
+ write_prop(fw,ftype,exportdict[propname],length)
fw.close_file()
#globals used by the scene export function
@@ -1308,10 +1336,10 @@ def dbexport_internal(scene):
global xrefsdone
global options
- if exportlevel == 0 or not options.externalspath:
- fname = os.path.join(options.basepath,scene.name + '.flt')
+ if exportlevel == 0 or not options.state['externalspath']:
+ fname = os.path.join(options.state['basepath'],scene.name + '.flt')
else:
- fname = os.path.join(options.externalspath,scene.name + '.flt')
+ fname = os.path.join(options.state['externalspath'],scene.name + '.flt')
fw = FltOut(fname)
db = Database(scene,fw)
@@ -1325,7 +1353,7 @@ def dbexport_internal(scene):
db.write()
fw.close_file()
- if options.doxrefs:
+ if options.state['doxrefs']:
for xname in xreflist:
try:
xrefscene = Blender.Scene.Get(xname)
@@ -1360,7 +1388,7 @@ def dbexport():
Blender.Window.WaitCursor(False)
#optional: Copy textures
- if options.copy_textures:
+ if options.state['copytex']:
for imgname in tex_files:
#Check to see if texture exists in target directory
if not os.path.exists(tex_files[imgname]):
@@ -1371,11 +1399,11 @@ def dbexport():
shutil.copyfile(origpath,tex_files[imgname])
#optional: Write attribute files
- if options.write_attrib_files:
+ if options.state['attrib']:
write_attribute_files()
- if options.xapp:
- cmd= options.xappath + " " + fname
+ if options.state['xapp']:
+ cmd= options.state['xappath'] + " " + fname
status = os.system(cmd)
@@ -1415,31 +1443,28 @@ FLTAttrib = None
def setshadingangle(ID,val):
global options
- options.shading_default = val
+ options.state['shading_default'] = val
def setBpath(fname):
global options
- options.basepath = os.path.dirname(fname)
+ options.state['basepath'] = os.path.dirname(fname)
#update xref and textures path too....
- if(os.path.exists(os.path.join(options.basepath,'externals'))):
- options.externalspath = os.path.join(options.basepath,'externals')
- if(os.path.exists(os.path.join(options.texturespath,'textures'))):
- options.texturespath = os.path.join(options.basepath,'textures')
+ if(os.path.exists(os.path.join(options.state['basepath'],'externals'))):
+ options.state['externalspath'] = os.path.join(options.state['basepath'],'externals')
+ if(os.path.exists(os.path.join(options.state['basepath'],'textures'))):
+ options.state['texturespath'] = os.path.join(options.state['basepath'],'textures')
def setexportscale(ID,val):
global options
- options.scale = val
+ options.state['scale'] = val
def setTpath(fname):
global options
- options.texturespath = os.path.dirname(fname)
+ options.state['texturespath'] = os.path.dirname(fname)
def setXpath(fname):
global options
- options.externalspath = os.path.dirname(fname)
+ options.state['externalspath'] = os.path.dirname(fname)
def setXApath(fname):
global options
- options.xappath = fname
- d = dict()
- d['xappath'] = options.xappath
- Blender.Registry.SetKey('flt_export', d, 1)
+ options.state['xappath'] = fname
def event(evt, val):
x = 1
def but_event(evt):
@@ -1479,39 +1504,37 @@ def but_event(evt):
global FLTAttrib
-
-
#choose base path for export
if evt == 4:
- Blender.Window.FileSelector(setBpath, "DB Root", options.basepath)
+ Blender.Window.FileSelector(setBpath, "DB Root", options.state['basepath'])
#choose XREF path
if evt == 6:
- Blender.Window.FileSelector(setXpath,"DB Externals",options.externalspath)
+ Blender.Window.FileSelector(setXpath,"DB Externals",options.state['externalspath'])
#choose texture path
if evt == 8:
- Blender.Window.FileSelector(setTpath,"DB Textures",options.texturespath)
+ Blender.Window.FileSelector(setTpath,"DB Textures",options.state['texturespath'])
#export shading toggle
if evt == 9:
- options.export_shading = FLTShadeExport.val
+ options.state['export_shading'] = FLTShadeExport.val
#export Textures
if evt == 11:
- options.copy_textures = FLTCopyTex.val
+ options.state['copytex']= FLTCopyTex.val
#export XRefs
if evt == 13:
- options.doxrefs = FLTDoXRef.val
+ options.state['doxrefs'] = FLTDoXRef.val
#export Transforms
if evt == 12:
- options.export_transform = FLTGlobal.val
+ options.state['transform'] = FLTGlobal.val
if evt == 14:
- options.xapp = FLTXAPP.val
+ options.state['xapp'] = FLTXAPP.val
if evt == 16:
- Blender.Window.FileSelector(setXApath,"External Application",options.xappath)
+ Blender.Window.FileSelector(setXApath,"External Application",options.state['xappath'])
if evt == 20:
- options.write_attrib_files = FLTAttrib.val
+ options.state['attrib'] = FLTAttrib.val
#Export DB
if evt == 1:
@@ -1521,6 +1544,8 @@ def but_event(evt):
if evt == 2:
Draw.Exit()
+ options.write_state()
+
from Blender.BGL import *
from Blender import Draw
def gui():
@@ -1581,47 +1606,46 @@ def gui():
#FLTLabel = Draw.Text("FLT Exporter V2.0",'large')
cy = height - 80
- #base path
FLTBaseLabel = Draw.Label("Base Path:",cx,cy,100,20)
- FLTBaseString = Draw.String("",3,cx+100,cy,300,20,options.basepath,255,"Folder to export to")
+ FLTBaseString = Draw.String("",3,cx+100,cy,300,20,options.state['basepath'],255,"Folder to export to")
FLTBaseChooser = Draw.PushButton("...",4,cx+400,cy,20,20,"Choose Folder")
cy = cy-40
#externals path
FLTXRefLabel = Draw.Label("XRefs:",cx,cy,100,20)
- FLTXRefString = Draw.String("",5,cx+100,cy,300,20,options.externalspath,255,"Folder for external references")
+ FLTXRefString = Draw.String("",5,cx+100,cy,300,20,options.state['externalspath'],255,"Folder for external references")
FLTXRefChooser = Draw.PushButton("...",6,cx+400,cy,20,20,"Choose Folder")
cy = cy-40
#Textures path
FLTTextureLabel = Draw.Label("Textures:",cx,cy,100,20)
- FLTTextureString = Draw.String("",7,cx+100,cy,300,20,options.texturespath,255,"Folder for texture files")
+ FLTTextureString = Draw.String("",7,cx+100,cy,300,20,options.state['texturespath'],255,"Folder for texture files")
FLTTextureChooser = Draw.PushButton("...",8,cx+400,cy,20,20,"Choose Folder")
cy=cy-40
#External application path
FLTXAPPLabel = Draw.Label("XApp:",cx,cy,100,20)
- FLTXAPPString = Draw.String("",15,cx+100,cy,300,20,options.xappath,255,"External application to launch when done")
+ FLTXAPPString = Draw.String("",15,cx+100,cy,300,20,options.state['xappath'],255,"External application to launch when done")
FLTXAPPChooser = Draw.PushButton("...",16,cx+400, cy,20,20,"Choose Folder")
cy = cy-60
#Shading Options
- FLTShadeExport = Draw.Toggle("Default Shading",9,cx,cy,100,20,options.export_shading,"Turn on export of custom shading")
- FLTShadDefault = Draw.Number("",10,cx + 120,cy,100,20,options.shading_default,0.0,180.0,"Default shading angle for objects with no custom shading assigned",setshadingangle)
+ FLTShadeExport = Draw.Toggle("Default Shading",9,cx,cy,100,20,options.state['export_shading'],"Turn on export of custom shading")
+ FLTShadDefault = Draw.Number("",10,cx + 120,cy,100,20,options.state['shading_default'],0.0,180.0,"Default shading angle for objects with no custom shading assigned",setshadingangle)
cy = cy-40
- FLTScale = Draw.Number("Export Scale",14,cx,cy,220,20,options.scale,0.0,100.0,"Export scaling factor",setexportscale)
+ FLTScale = Draw.Number("Export Scale",14,cx,cy,220,20,options.state['scale'],0.0,100.0,"Export scaling factor",setexportscale)
cy = cy-40
#misc Options
- FLTCopyTex = Draw.Toggle("Copy Textures",11,cx,cy,220,20,options.copy_textures,"Copy textures to folder indicated above")
+ FLTCopyTex = Draw.Toggle("Copy Textures",11,cx,cy,220,20,options.state['copytex'],"Copy textures to folder indicated above")
cy = cy-40
- FLTGlobal = Draw.Toggle("Export Transforms",12,cx,cy,220,20,options.export_transform,"If unchecked, Global coordinates are used (recommended)")
+ FLTGlobal = Draw.Toggle("Export Transforms",12,cx,cy,220,20,options.state['transform'],"If unchecked, Global coordinates are used (recommended)")
cy = cy-40
- FLTDoXRef = Draw.Toggle("Export XRefs", 13,cx,cy,220,20,options.doxrefs,"Export External references (only those below current scene!)")
+ FLTDoXRef = Draw.Toggle("Export XRefs", 13,cx,cy,220,20,options.state['doxrefs'],"Export External references (only those below current scene!)")
cy = cy-40
- FLTXAPP = Draw.Toggle("Launch External App", 14, cx,cy,220,20,options.xapp,"Launch External Application on export")
+ FLTXAPP = Draw.Toggle("Launch External App", 14, cx,cy,220,20,options.state['xapp'],"Launch External Application on export")
cy = cy-40
- FLTAttrib = Draw.Toggle("Write Attribute Files", 20, cx, cy, 220,20,options.write_attrib_files, "Write Texture Attribute files")
+ FLTAttrib = Draw.Toggle("Write Attribute Files", 20, cx, cy, 220,20,options.state['attrib'], "Write Texture Attribute files")
#FLTXAPPATH = Draw.String("",15,cx,cy,300,20,options.xappath,255,"External application path")
diff --git a/release/scripts/flt_import.py b/release/scripts/flt_import.py
index 1df7c937842..d31376995d4 100644
--- a/release/scripts/flt_import.py
+++ b/release/scripts/flt_import.py
@@ -85,8 +85,16 @@ global_prefs['scale'] = 1.0
global_prefs['attrib'] = 0
msg_once = False
+reg = Blender.Registry.GetKey('flt_import',1)
+if reg:
+ for key in global_prefs:
+ if reg.has_key(key):
+ global_prefs[key] = reg[key]
+
+
+
throw_back_opcodes = [2, 73, 4, 11, 96, 14, 91, 98, 63,111] # Opcodes that indicate its time to return control to parent.
-do_not_report_opcodes = [76, 78, 79, 80, 81, 82, 94, 83, 33, 112, 100, 101, 102, 97, 31, 103, 104, 117, 118, 120, 121, 124, 125]
+do_not_report_opcodes = [76, 78, 79, 80, 81, 82, 94, 83, 33, 112, 101, 102, 97, 31, 103, 104, 117, 118, 120, 121, 124, 125]
#Process FLT record definitions
for record in FLT_Records:
@@ -488,6 +496,20 @@ class Node:
self.props['comment'] = self.header.fw.read_string(self.header.fw.get_length()-4)
return True
+ def parse_extension(self):
+ extension = dict()
+ props = records[100]
+ propkeys = props.keys()
+ propkeys.sort()
+ for position in propkeys:
+ (type,length,name) = props[position]
+ extension[name] = read_prop(self.header.fw,type,length)
+ #read extension data.
+ dstring = list()
+ for i in xrange(self.header.fw.get_length()-24):
+ dstring.append(self.header.fw.read_char())
+ extension['data'] = dstring
+ self.extension = extension
def parse_record(self):
self.props['type'] = self.opcode
props = records[self.opcode]
@@ -620,10 +642,12 @@ class VertexPalette(Node):
def parse(self): # Run once per import
Node.parse(self)
+
class InterNode(Node):
def __init__(self):
self.object = None
self.mesh = None
+ self.swapmesh = None
self.hasMesh = False
self.faceLs= []
self.matrix = None
@@ -632,12 +656,296 @@ class InterNode(Node):
self.uvlayers = dict()
self.blayernames = dict()
self.subfacelevel = 0
+ self.extension = None
mask = 2147483648
for i in xrange(7):
self.uvlayers[mask] = False
mask = mask / 2
+ #######################################################
+ ## Begin Remove Doubles Replacement ##
+ #######################################################
+ def __xvertsort(self,__a,__b):
+ (__vert, __x1) = __a
+ (__vert2,__x2) = __b
+
+ if __x1 > __x2:
+ return 1
+ elif __x1 < __x2:
+ return -1
+ return 0
+ def __calcFaceNorm(self,__face):
+ if len(__face) == 3:
+ return Blender.Mathutils.TriangleNormal(__face[0].co, __face[1].co, __face[2].co)
+ elif len(__face) == 4:
+ return Blender.Mathutils.QuadNormal(__face[0].co, __face[1].co, __face[2].co, __face[3].co)
+
+ def __replaceFaceVert(self,__weldface, __oldvert, __newvert):
+ __index = None
+ for __i, __v in enumerate(__weldface):
+ if __v == __oldvert:
+ __index = __i
+ break
+ __weldface[__index] = __newvert
+
+ def __matchEdge(self,__weldmesh, __edge1, __edge2):
+ if __edge1[0] in __weldmesh['Vertex Disk'][__edge2[1]] and __edge1[1] in __weldmesh['Vertex Disk'][__edge2[0]]:
+ return True
+ return False
+ #have to compare original faces!
+ def __faceWinding(self, __weldmesh, __face1, __face2):
+
+ __f1edges = list()
+ __f2edges = list()
+
+ __f1edges.append((__face1.verts[0], __face1.verts[1]))
+ __f1edges.append((__face1.verts[1], __face1.verts[2]))
+ if len(__face1.verts) == 3:
+ __f1edges.append((__face1.verts[2], __face1.verts[0]))
+ else:
+ __f1edges.append((__face1.verts[2], __face1.verts[3]))
+ __f1edges.append((__face1.verts[3], __face1.verts[0]))
+
+ __f2edges.append((__face2.verts[0], __face2.verts[1]))
+ __f2edges.append((__face2.verts[1], __face2.verts[2]))
+ if len(__face2.verts) == 3:
+ __f2edges.append((__face2.verts[2], __face2.verts[0]))
+ else:
+ __f2edges.append((__face2.verts[2], __face2.verts[3]))
+ __f2edges.append((__face2.verts[3], __face2.verts[0]))
+
+
+ #find a matching edge
+ for __edge1 in __f1edges:
+ for __edge2 in __f2edges:
+ if self.__matchEdge(__weldmesh, __edge1, __edge2): #no more tests nessecary
+ return True
+
+ return False
+
+ def __floatcompare(self, __f1, __f2):
+ epsilon = 0.1
+ if ((__f1 + epsilon) > __f2) and ((__f1 - epsilon) < __f2):
+ return True
+ return False
+ def __testFace(self,__weldmesh,__v1face, __v2face, __v1bface, __v2bface):
+ limit = 0.01
+ __matchvert = None
+ #frst test (for real this time!). Are the faces the same face?
+ if __v1face == __v2face:
+ return False
+
+ #first test: Do the faces possibly geometrically share more than two vertices? we should be comparing original faces for this? - Yes.....
+ __match = 0
+ for __vert in __v1bface.verts:
+ for __vert2 in __v2bface.verts:
+ #if (abs(__vert.co[0] - __vert2.co[0]) <= limit) and (abs(__vert.co[1] - __vert2.co[1]) <= limit) and (abs(__vert.co[2] - __vert2.co[2]) <= limit): #this needs to be fixed!
+ if __vert2 in __weldmesh['Vertex Disk'][__vert] or __vert == __vert2:
+ __match += 1
+ __matchvert = __vert2
+ #avoid faces sharing more than two verts
+ if __match > 2:
+ return False
+
+ #consistent winding for face normals
+ if __match == 2:
+ if not self.__faceWinding(__weldmesh, __v1bface, __v2bface):
+ return False
+
+ #second test: Compatible normals.Anything beyond almost exact opposite is 'ok'
+ __v1facenorm = self.__calcFaceNorm(__v1face)
+ __v2facenorm = self.__calcFaceNorm(__v2face)
+
+ #dont even mess with zero length faces
+ if __v1facenorm.length < limit:
+ return False
+ if __v2facenorm.length < limit:
+ return False
+
+ __v1facenorm.normalize()
+ __v2facenorm.normalize()
+
+ if __match == 1:
+ #special case, look for comparison of normals angle
+ __angle = Blender.Mathutils.AngleBetweenVecs(__v1facenorm, __v2facenorm)
+ if __angle > 70.0:
+ return False
+
+
+
+ __v2facenorm = __v2facenorm.negate()
+
+ if self.__floatcompare(__v1facenorm[0], __v2facenorm[0]) and self.__floatcompare(__v1facenorm[1], __v2facenorm[1]) and self.__floatcompare(__v1facenorm[2], __v2facenorm[2]):
+ return False
+
+ #next test: dont weld a subface to a non-subface!
+ if __v1bface.getProperty("FLT_SFLEVEL") != __v2bface.getProperty("FLT_SFLEVEL"):
+ return False
+
+ #final test: edge test - We dont want to create a non-manifold edge through our weld operation
+
+ return True
+
+ def __copyFaceData(self, __source, __target):
+ #copy vcolor layers.
+ __actColLayer = self.mesh.activeColorLayer
+ for __colorlayer in self.mesh.getColorLayerNames():
+ self.mesh.activeColorLayer = __colorlayer
+ for __i, __col in enumerate(__source.col):
+ __target.col[__i].r = __col.r
+ __target.col[__i].g = __col.g
+ __target.col[__i].b = __col.b
+
+ self.mesh.activeColorLayer = __actColLayer
+ #copy uv layers.
+ __actUVLayer = self.mesh.activeUVLayer
+ for __uvlayer in self.mesh.getUVLayerNames():
+ self.mesh.activeUVLayer = __uvlayer
+ __target.image = __source.image
+ __target.mode = __source.mode
+ __target.smooth = __source.smooth
+ __target.transp = __source.transp
+ for __i, __uv in enumerate(__source.uv):
+ __target.uv[__i][0] = __uv[0]
+ __target.uv[__i][1] = __uv[1]
+
+ self.mesh.activeUVLayer = __actUVLayer
+ #copy property layers
+ for __property in self.mesh.faces.properties:
+ __target.setProperty(__property, __source.getProperty(__property))
+
+ def findDoubles(self):
+ limit = 0.01
+ sortblock = list()
+ double = dict()
+ for vert in self.mesh.verts:
+ double[vert] = None
+ sortblock.append((vert, vert.co[0] + vert.co[1] + vert.co[2]))
+ sortblock.sort(self.__xvertsort)
+
+ a = 0
+ while a < len(self.mesh.verts):
+ (vert,xsort) = sortblock[a]
+ b = a+1
+ if not double[vert]:
+ while b < len(self.mesh.verts):
+ (vert2, xsort2) = sortblock[b]
+ if not double[vert2]:
+ #first test, simple distance
+ if (xsort2 - xsort) > limit:
+ break
+ #second test, more expensive
+ if (abs(vert.co[0] - vert2.co[0]) <= limit) and (abs(vert.co[1] - vert2.co[1]) <= limit) and (abs(vert.co[2] - vert2.co[2]) <= limit):
+ double[vert2] = vert
+ b+=1
+ a+=1
+
+ return double
+
+ def buildWeldMesh(self):
+
+ weldmesh = dict()
+ weldmesh['Vertex Disk'] = dict() #this is geometric adjacency
+ weldmesh['Vertex Faces'] = dict() #topological adjacency
+
+ #find the doubles for this mesh
+ double = self.findDoubles()
+
+ for vert in self.mesh.verts:
+ weldmesh['Vertex Faces'][vert] = list()
+
+ #create weld faces
+ weldfaces = list()
+ originalfaces = list()
+ for face in self.mesh.faces:
+ weldface = list()
+ for vert in face.verts:
+ weldface.append(vert)
+ weldfaces.append(weldface)
+ originalfaces.append(face)
+ for i, weldface in enumerate(weldfaces):
+ for vert in weldface:
+ weldmesh['Vertex Faces'][vert].append(i)
+ weldmesh['Weld Faces'] = weldfaces
+ weldmesh['Original Faces'] = originalfaces
+
+ #Now we need to build the vertex disk data. first we do just the 'target' vertices
+ for vert in self.mesh.verts:
+ if not double[vert]: #its a target
+ weldmesh['Vertex Disk'][vert] = list()
+ for vert in self.mesh.verts:
+ if double[vert]: #its a double
+ weldmesh['Vertex Disk'][double[vert]].append(vert)
+
+ #Now we need to create the disk information for the remaining vertices
+ targets = weldmesh['Vertex Disk'].keys()
+ for target in targets:
+ for doublevert in weldmesh['Vertex Disk'][target]:
+ weldmesh['Vertex Disk'][doublevert] = [target]
+ for othervert in weldmesh['Vertex Disk'][target]:
+ if othervert != doublevert:
+ weldmesh['Vertex Disk'][doublevert].append(othervert)
+
+ return weldmesh
+
+ def weldFuseFaces(self,weldmesh):
+ #slight modification here: we need to walk around the mesh as many times as it takes to have no more matches
+ done = 0
+ while not done:
+ done = 1
+ for windex, weldface in enumerate(weldmesh['Weld Faces']):
+ for vertex in weldface:
+ #we walk around the faces of the doubles of this vertex and if possible, we weld them.
+ for doublevert in weldmesh['Vertex Disk'][vertex]:
+ removeFaces = list() #list of faces to remove from doubleverts face list
+ for doublefaceindex in weldmesh['Vertex Faces'][doublevert]:
+ doubleface = weldmesh['Weld Faces'][doublefaceindex]
+ oface1 = self.mesh.faces[windex]
+ oface2 = self.mesh.faces[doublefaceindex]
+ ok = self.__testFace(weldmesh, weldface, doubleface, oface1, oface2)
+ if ok:
+ done = 0
+ removeFaces.append(doublefaceindex)
+ self.__replaceFaceVert(doubleface, doublevert, vertex)
+ for doublefaceindex in removeFaces:
+ weldmesh['Vertex Faces'][doublevert].remove(doublefaceindex)
+ #old faces first
+ oldindices = list()
+ for face in self.mesh.faces:
+ oldindices.append(face.index)
+ #make our new faces.
+ newfaces = list()
+ for weldface in weldmesh['Weld Faces']:
+ newfaces.append(weldface)
+ newindices = self.mesh.faces.extend(newfaces, indexList=True, ignoreDups=True)
+ #copy custom data over
+ for i, newindex in enumerate(newindices):
+ try:
+ self.__copyFaceData(self.mesh.faces[oldindices[i]], self.mesh.faces[newindex])
+ except:
+ print "warning, could not copy face data!"
+ #delete the old faces
+ self.mesh.faces.delete(1, oldindices)
+
+ #Clean up stray vertices
+ vertuse = dict()
+ for vert in self.mesh.verts:
+ vertuse[vert] = 0
+ for face in self.mesh.faces:
+ for vert in face.verts:
+ vertuse[vert] += 1
+ delverts = list()
+ for vert in self.mesh.verts:
+ if not vertuse[vert] and vert.index != 0:
+ delverts.append(vert)
+
+ self.mesh.verts.delete(delverts)
+
+
+ #######################################################
+ ## End Remove Doubles Replacement ##
+ #######################################################
def blender_import_my_faces(self):
@@ -750,6 +1058,8 @@ class InterNode(Node):
if props[6]['template billboard'] == 2:
f.mode |= Blender.Mesh.FaceModes["BILLBOARD"]
f.mode |= Blender.Mesh.FaceModes["LIGHT"]
+ if props[6]['draw type'] == 1:
+ f.mode |= Blender.Mesh.FaceModes["TWOSIDE"]
#f.mat = props[0]
f.image = props[1]
@@ -795,6 +1105,8 @@ class InterNode(Node):
if self.uvlayers[mask]:
self.mesh.activeUVLayer = self.blayernames[mask]
for j, f in enumerate(self.mesh.faces):
+ if props[6]['draw type'] == 1:
+ f.mode |= Blender.Mesh.FaceModes["TWOSIDE"]
f.transp |= Blender.Mesh.FaceTranspModes["ALPHA"]
f.mode |= Blender.Mesh.FaceModes["LIGHT"]
props = new_faces_props[j]
@@ -848,10 +1160,13 @@ class InterNode(Node):
#Finally, go through, remove dummy vertex, remove doubles and add edgesplit modifier.
Blender.Mesh.Mode(Blender.Mesh.SelectModes['VERTEX'])
- self.mesh.verts.delete(0) # remove the dummy vert
self.mesh.sel= 1
self.header.scene.update(1) #slow!
- self.mesh.remDoubles(0.0001)
+
+ #self.mesh.remDoubles(0.0001)
+ weldmesh = self.buildWeldMesh()
+ welded = self.weldFuseFaces(weldmesh)
+ self.mesh.verts.delete(0) # remove the dummy vert
edgeHash = dict()
@@ -930,10 +1245,11 @@ class InterNode(Node):
self.mesh.activeUVLayer = actuvlayer
def blender_import(self):
- if self.vis and self.parent:
+ if self.vis and self.parent.object:
self.vis = self.parent.vis
name = self.props['id']
+
if self.hasMesh:
self.mesh = Blender.Mesh.New()
self.mesh.name = 'FLT_FaceList'
@@ -955,12 +1271,17 @@ class InterNode(Node):
pass
+ if self.extension:
+ self.object.properties['FLT']['EXT'] = dict()
+ for key in self.extension:
+ self.object.properties['FLT']['EXT'][key] = self.extension[key]
+
if self.parent and self.parent.object and (self.header.scene == self.parent.header.scene):
self.parent.object.makeParent([self.object],1)
if self.matrix:
self.object.setMatrix(self.matrix)
-
+
if self.vis == False:
self.object.restrictDisplay = True
self.object.restrictRender = True
@@ -969,21 +1290,23 @@ class InterNode(Node):
lodlist = list()
for child in self.children:
if child.props.has_key('type') and child.props['type'] == 73:
- lodlist.append(child)
-
- def LODmin(a,b):
- if a.props['5d!switch in'] < b.props['5d!switch in']:
- return a
- return b
-
- min= None
- if len(lodlist) > 1:
- for lod in lodlist:
- lod.vis = False
- min = lodlist[0]
- for i in xrange(len(lodlist)):
- min= LODmin(min,lodlist[i])
- min.vis = True
+ if child.props['6d!switch out'] != 0.0:
+ child.vis = False
+ #lodlist.append(child)
+
+ #def LODmin(a,b):
+ # if a.props['5d!switch in'] < b.props['5d!switch in']:
+ # return a
+ # return b
+
+ #min= None
+ #if len(lodlist) > 1:
+ # for lod in lodlist:
+ # lod.vis = False
+ # min = lodlist[0]
+ # for i in xrange(len(lodlist)):
+ # min= LODmin(min,lodlist[i])
+ # min.vis = True
Node.blender_import(self) # Attach faces to self.faceLs
@@ -1223,9 +1546,10 @@ class Object(InterNode):
InterNode.__init__(self)
self.root_handler.set_handler({33: self.parse_long_id,
- 31: self.parse_comment,
- 10: self.parse_push,
- 49: self.parse_matrix})
+ 21: self.parse_push_extension,
+ 31: self.parse_comment,
+ 10: self.parse_push,
+ 49: self.parse_matrix})
self.root_handler.set_throw_back_lst(throw_back_opcodes)
self.child_handler.set_handler({5: self.parse_face,
@@ -1234,7 +1558,10 @@ class Object(InterNode):
111: self.parse_inline_light_point,
10: self.parse_push,
11: self.parse_pop})
-
+ self.extension_handler.set_handler({22: self.parse_pop_extension,
+ 100: self.parse_extension})
+
+ self.extension = dict()
self.props = dict()
self.props['comment'] = ''
self.parse_record()
@@ -1247,7 +1574,8 @@ class Group(InterNode):
self.root_handler.set_handler({33: self.parse_long_id,
31: self.parse_comment,
10: self.parse_push,
- 49: self.parse_matrix})
+ 49: self.parse_matrix,
+ 21: self.parse_push_extension})
self.root_handler.set_throw_back_lst(throw_back_opcodes)
self.child_handler.set_handler({5: self.parse_face,
@@ -1264,6 +1592,10 @@ class Group(InterNode):
91: self.parse_unhandled,
98: self.parse_unhandled,
63: self.parse_xref})
+
+ self.extension_handler.set_handler({22: self.parse_pop_extension,
+ 100: self.parse_extension})
+
self.props = dict.fromkeys(['type', 'id', 'comment', 'priority', 'flags', 'special1',
'special2', 'significance', 'layer code', 'loop count',
'loop duration', 'last frame duration'])
@@ -1291,7 +1623,8 @@ class DOF(InterNode):
self.root_handler.set_handler({33: self.parse_long_id,
31: self.parse_comment,
10: self.parse_push,
- 49: self.parse_matrix})
+ 49: self.parse_matrix,
+ 21: self.parse_push_extension})
self.root_handler.set_throw_back_lst(throw_back_opcodes)
self.child_handler.set_handler({#130: self.parse_indexed_light_point,
@@ -1306,6 +1639,8 @@ class DOF(InterNode):
91: self.parse_unhandled,
98: self.parse_unhandled,
63: self.parse_xref})
+ self.extension_handler.set_handler({22: self.parse_pop_extension,
+ 100: self.parse_extension})
self.props = dict()
self.props['comment'] = ''
self.parse_record()
@@ -1395,7 +1730,8 @@ class LOD(InterNode):
self.root_handler.set_handler({33: self.parse_long_id,
31: self.parse_comment,
10: self.parse_push,
- 49: self.parse_matrix})
+ 49: self.parse_matrix,
+ 21: self.parse_push_extension})
self.root_handler.set_throw_back_lst(throw_back_opcodes)
self.child_handler.set_handler({2: self.parse_group,
@@ -1409,6 +1745,9 @@ class LOD(InterNode):
91: self.parse_unhandled, # sound
98: self.parse_unhandled, # clip
63: self.parse_xref})
+ self.extension_handler.set_handler({22: self.parse_pop_extension,
+ 100: self.parse_extension})
+
self.props = dict()
self.props['comment'] = ''
@@ -1421,13 +1760,16 @@ class InlineLightPoint(InterNode):
self.root_handler.set_handler({33: self.parse_long_id,
31: self.parse_comment,
10: self.parse_push,
+ 21: self.parse_push_extension,
49: self.parse_matrix})
self.root_handler.set_throw_back_lst(throw_back_opcodes)
self.child_handler.set_handler({72: self.parse_vertex_list,
10: self.parse_push,
11: self.parse_pop})
-
+ self.extension_handler.set_handler({22: self.parse_pop_extension,
+ 100: self.parse_extension})
+
self.indices = list()
self.props = dict()
self.props['comment'] = ''
@@ -1453,6 +1795,11 @@ class InlineLightPoint(InterNode):
except: #horrible...
pass
+ if self.extension:
+ self.object.properties['FLT']['EXT'] = dict()
+ for key in self.extension:
+ self.object.properties['FLT']['EXT'][key] = self.extension[key]
+
if self.parent and self.parent.object and self.header.scene == self.parent.header.scene:
self.parent.object.makeParent([self.object])
@@ -1655,6 +2002,11 @@ class Database(InterNode):
self.scene.properties['FLT']['Main'] = 0
self.scene.properties['FLT']['Filename'] = self.bname
+ for child in self.children:
+ if child.props.has_key('type') and child.props['type'] == 73:
+ if child.props['6d!switch out'] != 0.0:
+ child.vis = False
+
#import color palette
carray = list()
for color in self.col_pal:
@@ -2046,6 +2398,10 @@ def setimportscale(ID,val):
global_prefs['scale'] = val
def setBpath(fname):
global_prefs['fltfile'] = fname
+ d = dict()
+ for key in global_prefs:
+ d[key] = global_prefs[key]
+ Blender.Registry.SetKey('flt_import', d, 1)
def event(evt,val):
pass
@@ -2090,7 +2446,10 @@ def but_event(evt):
if evt == 2:
Draw.Exit()
-
+ d = dict()
+ for key in global_prefs:
+ d[key] = global_prefs[key]
+ Blender.Registry.SetKey('flt_import', d, 1)
from Blender.BGL import *
diff --git a/release/scripts/flt_properties.py b/release/scripts/flt_properties.py
index 2c9e9d7667b..bc7c972ca66 100644
--- a/release/scripts/flt_properties.py
+++ b/release/scripts/flt_properties.py
@@ -227,6 +227,14 @@ def read_prop(fw,type,length):
rval = fw.read_string(length)
return rval
+
+FLTExt = {
+ '3t8!id' : 'Ext',
+ '4t8!sid' : '',
+ '5c!reserved': 0,
+ '6c!revision' : 0,
+ '7S!recordcode' : 0
+}
FLTGroup = {
'3t8!id' : 'G',
'4s!priority' : 0,
@@ -280,7 +288,7 @@ FLTInlineLP = {
'7C!back color: b' : 255,
'8C!back color: g' : 255,
'9C!back color: r' : 255,
- '10i!display mode' : 255,
+ '10i!display mode' : 0,
'11f!intensity' : 1.0,
'12f!back intensity' : 0.0,
'13f!minimum defocus' : 0.0,
@@ -305,15 +313,15 @@ FLTInlineLP = {
'32f!lobe roll angle' : 0.0,
'33f!dir falloff exponent' : 1.0,
'34f!dir ambient intensity' : 0.1,
- '35f!anim period' : 0,
+ '35f!anim period' : 2,
'36f!anim phase' : 0,
- '37f!anim enabled' : 0,
+ '37f!anim enabled' : 1.0,
'38f!significance' : 0.0,
'39i!draw order' : 0,
- '40I!flags' : 813875616,
+ '40I!flags' : 277004288,
'41f!roti' : 0,
'42f!rotj' : 0,
- '43f!rotk' : 0
+ '43f!rotk' : 1.0
}
FLTInlineLPDisplay = [35,36,37,41,42,43]
@@ -587,6 +595,7 @@ FLT_Records = {
14 : FLTDOF,
1 : FLTHeader,
111 : FLTInlineLP,
+ 100 : FLTExt,
'Image' : FLTImage
}
diff --git a/release/scripts/flt_toolbar.py b/release/scripts/flt_toolbar.py
index 249c3f83dfc..565849859c1 100644
--- a/release/scripts/flt_toolbar.py
+++ b/release/scripts/flt_toolbar.py
@@ -134,8 +134,8 @@ def RGBtoHSV( r, g, b):
def update_state():
state = dict()
- state["activeScene"] = Blender.Scene.getCurrent()
- state["activeObject"] = state["activeScene"].getActiveObject()
+ state["activeScene"] = Blender.Scene.GetCurrent()
+ state["activeObject"] = state["activeScene"].objects.active
if state["activeObject"] and not state["activeObject"].sel:
state["activeObject"] = None
state["activeMesh"] = None
@@ -290,12 +290,12 @@ def update_all():
Blender.Window.EditMode(0)
editmode = 1
state = update_state()
-
+ colors = None
if state["activeScene"].properties.has_key('FLT'):
try:
colors = state["activeScene"].properties['FLT']['Color Palette']
except:
- colors = None
+ pass
if colors:
#update the baked FLT colors for all meshes.
for object in state["activeScene"].objects:
@@ -596,7 +596,10 @@ def dfromact():
if not dof:
dof = object
else:
- return
+ break
+
+ if not dof:
+ return
if 'FLT' not in dof.properties:
dof.properties['FLT'] = dict()
diff --git a/release/scripts/import_lightwave_motion.py b/release/scripts/import_lightwave_motion.py
new file mode 100644
index 00000000000..bec988c8da5
--- /dev/null
+++ b/release/scripts/import_lightwave_motion.py
@@ -0,0 +1,244 @@
+#!BPY
+
+""" Registration info for Blender menus: <- these words are ignored
+Name: 'Lightwave Motion (.mot)...'
+Blender: 245
+Group: 'Import'
+Tip: 'Import Loc Rot Size chanels from a Lightwave .mot file'
+"""
+
+__author__ = "Daniel Salazar (ZanQdo)"
+__url__ = ("blender", "elysiun",
+"e-mail: zanqdo@gmail.com")
+__version__ = "16/04/08"
+
+__bpydoc__ = """\
+This script loads Lightwave motion files (.mot)
+into the selected objects
+
+Usage:
+Run the script with one or more objects selected (any kind)
+Be sure to set the framerate correctly
+
+"""
+
+# $Id: export_lightwave_motion.py 9924 2007-01-27 02:15:14Z campbellbarton $
+# --------------------------------------------------------------------------
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# Copyright (C) 2003, 2004: A Vanpoucke
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# ***** END GPL LICENCE BLOCK *****
+# --------------------------------------------------------------------------
+
+import math as M
+import Blender as B
+import bpy
+
+
+def FuncionPrincipal (Dir):
+ B.Window.WaitCursor(1)
+ ObjSelect = B.Object.GetSelected()
+
+ if not ObjSelect:
+ B.Draw.PupMenu('Select one or more objects, aborting.')
+ return
+
+
+ SC = B.Scene.GetCurrent()
+ SCR = SC.getRenderingContext()
+ FrameRate = float(SCR.framesPerSec())
+
+
+ # Creating new IPO
+
+ IPO = B.Ipo.New('Object', 'LW_Motion')
+
+
+ # Creating Curves in the IPO
+
+ LocX = IPO.addCurve("LocX")
+ LocX.setInterpolation("Bezier")
+
+ LocY = IPO.addCurve("LocY")
+ LocX.setInterpolation("Bezier")
+
+ LocZ = IPO.addCurve("LocZ")
+ LocX.setInterpolation("Bezier")
+
+ RotX = IPO.addCurve("RotX")
+ LocX.setInterpolation("Bezier")
+
+ RotY = IPO.addCurve("RotY")
+ LocX.setInterpolation("Bezier")
+
+ RotZ = IPO.addCurve("RotZ")
+ LocX.setInterpolation("Bezier")
+
+ ScaleX = IPO.addCurve("ScaleX")
+ LocX.setInterpolation("Bezier")
+
+ ScaleY = IPO.addCurve("ScaleY")
+ LocX.setInterpolation("Bezier")
+
+ ScaleZ = IPO.addCurve("ScaleZ")
+ LocX.setInterpolation("Bezier")
+
+
+ # Opening the mot file
+
+ File = open (Dir, 'rU')
+
+
+ # Init flags
+
+ CurChannel = -1
+ ScaleFlag = 0
+
+ # Main file reading cycle
+
+ for Line in File:
+
+ '''
+ # Number of channels in the file
+
+ if "NumChannels" in Line:
+ Line = Line.split (' ')
+ NumChannels = int(Line[1])
+ '''
+
+ # Current Channel Flag
+
+ if "Channel 0" in Line:
+ CurChannel = 0
+
+ elif "Channel 1" in Line:
+ CurChannel = 1
+
+ elif "Channel 2" in Line:
+ CurChannel = 2
+
+ elif "Channel 3" in Line:
+ CurChannel = 3
+
+ elif "Channel 4" in Line:
+ CurChannel = 4
+
+ elif "Channel 5" in Line:
+ CurChannel = 5
+
+ elif "Channel 6" in Line:
+ CurChannel = 6
+
+ elif "Channel 7" in Line:
+ CurChannel = 7
+
+ elif "Channel 8" in Line:
+ CurChannel = 8
+
+
+ # Getting the data and writing to IPOs
+
+ if CurChannel == 0:
+ if "Key" in Line:
+ Line = Line.split (' ')
+ ValCh_0 = float (Line [3])
+ TimeCh_0 = float (Line [4]) * FrameRate
+ LocX.addBezier ((TimeCh_0, ValCh_0))
+
+ if CurChannel == 1:
+ if "Key" in Line:
+ Line = Line.split (' ')
+ ValCh_1 = float (Line [3])
+ TimeCh_1 = float (Line [4]) * FrameRate
+ LocZ.addBezier ((TimeCh_1, ValCh_1))
+
+ if CurChannel == 2:
+ if "Key" in Line:
+ Line = Line.split (' ')
+ ValCh_2 = float (Line [3])
+ TimeCh_2 = float (Line [4]) * FrameRate
+ LocY.addBezier ((TimeCh_2, ValCh_2))
+
+ if CurChannel == 3:
+ if "Key" in Line:
+ Line = Line.split (' ')
+ ValCh_3 = M.degrees ( - float (Line [3]) ) / 10
+ TimeCh_3 = float (Line [4]) * FrameRate
+ RotZ.addBezier ((TimeCh_3, ValCh_3))
+
+ if CurChannel == 4:
+ if "Key" in Line:
+ Line = Line.split (' ')
+ ValCh_4 = M.degrees ( - float (Line [3]) ) / 10
+ TimeCh_4 = float (Line [4]) * FrameRate
+ RotX.addBezier ((TimeCh_4, ValCh_4))
+
+ if CurChannel == 5:
+ if "Key" in Line:
+ Line = Line.split (' ')
+ ValCh_5 = M.degrees ( - float (Line [3]) ) / 10
+ TimeCh_5 = float (Line [4]) * FrameRate
+ RotY.addBezier ((TimeCh_5, ValCh_5))
+
+ if CurChannel == 6:
+ if "Key" in Line:
+ Line = Line.split (' ')
+ ValCh_6 = float (Line [3])
+ TimeCh_6 = float (Line [4]) * FrameRate
+ ScaleX.addBezier ((TimeCh_6, ValCh_6))
+ elif ScaleFlag < 3:
+ ScaleFlag += 1
+ ScaleX.addBezier ((0, 1))
+
+ if CurChannel == 7:
+ if "Key" in Line:
+ Line = Line.split (' ')
+ ValCh_7 = float (Line [3])
+ TimeCh_7 = float (Line [4]) * FrameRate
+ ScaleZ.addBezier ((TimeCh_7, ValCh_7))
+ elif ScaleFlag < 3:
+ ScaleFlag += 1
+ ScaleZ.addBezier ((0, 1))
+
+ if CurChannel == 8:
+ if "Key" in Line:
+ Line = Line.split (' ')
+ ValCh_8 = float (Line [3])
+ TimeCh_8 = float (Line [4]) * FrameRate
+ ScaleY.addBezier ((TimeCh_8, ValCh_8))
+ elif ScaleFlag < 3:
+ ScaleFlag += 1
+ ScaleY.addBezier ((0, 1))
+
+
+ # Link the IPO to all selected objects
+
+ for ob in ObjSelect:
+ ob.setIpo(IPO)
+
+ File.close()
+
+ print '\nDone, the following motion file has been loaded:\n\n%s' % Dir
+ B.Window.WaitCursor(0)
+
+def main():
+ B.Window.FileSelector(FuncionPrincipal, "Load IPO from .mot File", B.sys.makename(ext='.mot'))
+
+if __name__=='__main__':
+ main()
+
diff --git a/release/scripts/md2_export.py b/release/scripts/md2_export.py
index 71e056a5f53..6fc7c1adfa2 100644
--- a/release/scripts/md2_export.py
+++ b/release/scripts/md2_export.py
@@ -8,7 +8,7 @@ Tooltip: 'Export to Quake file format (.md2).'
"""
__author__ = 'Bob Holcomb'
-__version__ = '0.18.1'
+__version__ = '0.18.1 patch 1'
__url__ = ["Bob's site, http://bane.servebeer.com",
"Support forum, http://bane.servebeer.com", "blender", "elysiun"]
__email__ = ["Bob Holcomb, bob_holcomb:hotmail*com", "scripts"]
@@ -19,6 +19,12 @@ This script Exports a Quake 2 file (MD2).
Thanks Guys!
"""
+# This is a PATCHED VERSION, fixing the bug due to which animations would
+# (almost) never work. It is now also possible to output a MD2 model without
+# texture.
+# On: 23 january 2008
+# By: Boris van Schooten (schooten@cs.utwente.nl)
+
# ***** BEGIN GPL LICENSE BLOCK *****
#
# Script copyright (C): Bob Holcomb
@@ -105,13 +111,13 @@ def draw_gui():
g_filename = String("MD2 file to save: ", EVENT_NOEVENT, 10, 75, 210, 18,
g_filename.val, 255, "MD2 file to save")
########## MD2 File Search Button
- Button("Search",EVENT_CHOOSE_FILENAME,220,75,80,18)
+ Button("Browse",EVENT_CHOOSE_FILENAME,220,75,80,18)
########## MD2 Frame List Text entry
g_frame_filename = String("Frame List file to load: ", EVENT_NOEVENT, 10, 55, 210, 18,
g_frame_filename.val, 255, "Frame List to load-overrides MD2 defaults")
########## Frame List Search Button
- Button("Search",EVENT_CHOOSE_FRAME,220,55,80,18)
+ Button("Browse",EVENT_CHOOSE_FRAME,220,55,80,18)
########## Texture path to append
g_texture_path=String("Texture Path: ", EVENT_NOEVENT, 10,35,210,18,
@@ -143,14 +149,9 @@ def bevent(evt):
elif (evt==EVENT_CHOOSE_FRAME):
FileSelector(frame_callback, "Frame Selection")
elif (evt==EVENT_SAVE_MD2):
- if (g_filename.val == "model"):
- save_md2("blender.md2")
- Blender.Draw.Exit()
- return
- else:
- save_md2(g_filename.val)
- Blender.Draw.Exit()
- return
+ save_md2(g_filename.val)
+ Blender.Draw.Exit()
+ return
Register(draw_gui, event, bevent)
@@ -616,21 +617,24 @@ def validation(object):
#move the object to the origin if it's not already there
if object.getLocation('worldspace')!=(0.0, 0.0, 0.0):
- object.setLocation(0.0,0.0,0.0)
- print "Model not centered at origin-Centering"
- result=Blender.Draw.PupMenu("Model not centered at origin-Centering for you")
+ print "Model not centered at origin"
+ result=Blender.Draw.PupMenu("Model not centered at origin%t|Center (will not work with animations!)|Do not center")
+ if result==1:
+ object.setLocation(0.0,0.0,0.0)
#resize the object in case it is not the right size
if object.getSize('worldspace')!=(1.0,1.0,1.0):
- object.setSize(1.0,1.0,1.0)
print "Object is scaled-You should scale the mesh verts, not the object"
- result=Blender.Draw.PupMenu("Object is scaled-You should scale the mesh verts, not the object-fixing for you")
+ result=Blender.Draw.PupMenu("Object is scaled-You should scale the mesh verts, not the object%t|Fix scale (will not work with animations!)|Do not scale")
+ if result==1:
+ object.setSize(1.0,1.0,1.0)
if object.getEuler('worldspace')!=Blender.Mathutils.Euler(0.0,0.0,0.0):
print "object.rot: ", object.getEuler('worldspace')
- object.setEuler([0.0,0.0,0.0])
print "Object is rotated-You should rotate the mesh verts, not the object"
- result=Blender.Draw.PupMenu("Object is rotated-You should rotate the mesh verts, not the object-fixing for you")
+ result=Blender.Draw.PupMenu("Object is rotated-You should rotate the mesh verts, not the object%t|Fix rotation (will not work with animations!)|Do not rotate")
+ if result==1:
+ object.setEuler([0.0,0.0,0.0])
#get access to the mesh data
mesh=object.getData(False, True) #get the object (not just name) and the Mesh, not NMesh
@@ -643,7 +647,7 @@ def validation(object):
face.sel=1
if result==0: #first time we have this problem, don't pop-up a window every time it finds a quad
print "Model not made entirely of triangles"
- result=Blender.Draw.PupMenu("Model not made entirely out of Triangles-Convert?%t|YES|NO")
+ result=Blender.Draw.PupMenu("Model not made entirely out of Triangles-Convert?%t|YES|Quit")
#triangulate or quit
if result==1:
@@ -672,36 +676,34 @@ def validation(object):
else:
print "Model does not have UV (face or vertex)"
- result=Blender.Draw.PupMenu("Model does not have UV (face or vertex)%t|Quit")
- return False
+ result=Blender.Draw.PupMenu("Model does not have UV (face or vertex)%t|Output (0,0) as UV coordinates and do not generate GL commands|Quit")
+ if result==2:
+ return False
#check it has an associated texture map
last_face=""
- last_face=mesh.faces[0].image
- if last_face=="":
- print "Model does not have a texture Map"
- result=Blender.Draw.PupMenu("Model does not have a texture Map%t|Quit")
- return False
+ if mesh.faceUV:
+ last_face=mesh.faces[0].image
+ #check if each face uses the same texture map (only one allowed)
+ for face in mesh.faces:
+ mesh_image=face.image
+ if not mesh_image:
+ print "Model has a face without a texture Map"
+ result=Blender.Draw.PupMenu("Model has a face without a texture Map%t|This should never happen!")
+ #return False
+ if mesh_image!=last_face:
+ print "Model has more than 1 texture map assigned"
+ result=Blender.Draw.PupMenu("Model has more than 1 texture map assigned%t|Quit")
+ #return False
+ if mesh_image:
+ size=mesh_image.getSize()
+ #is this really what the user wants
+ if (size[0]!=256 or size[1]!=256):
+ print "Texture map size is non-standard (not 256x256), it is: ",size[0],"x",size[1]
+ result=Blender.Draw.PupMenu("Texture map size is non-standard (not 256x256), it is: "+str(size[0])+"x"+str(size[1])+": Continue?%t|YES|NO")
+ if(result==2):
+ return False
- #check if each face uses the same texture map (only one allowed)
- for face in mesh.faces:
- mesh_image=face.image
- if not mesh_image:
- print "Model has a face without a texture Map"
- result=Blender.Draw.PupMenu("Model has a face without a texture Map%t|Quit")
- return False
- if mesh_image!=last_face:
- print "Model has more than 1 texture map assigned"
- result=Blender.Draw.PupMenu("Model has more than 1 texture map assigned%t|Quit")
- return False
-
- size=mesh_image.getSize()
- #is this really what the user wants
- if (size[0]!=256 or size[1]!=256):
- print "Texture map size is non-standard (not 256x256), it is: ",size[0],"x",size[1]
- result=Blender.Draw.PupMenu("Texture map size is non-standard (not 256x256), it is: "+str(size[0])+"x"+str(size[1])+": Continue?%t|YES|NO")
- if(result==2):
- return False
#verify frame list data
user_frame_list=get_frame_list()
@@ -743,7 +745,8 @@ def fill_md2(md2, object):
#get a Mesh, not NMesh
mesh=object.getData(False, True)
-
+ #don't forget to copy the data! -- Boris van Schooten
+ mesh=mesh.__copy__();
#load up some intermediate data structures
tex_list={}
tex_count=0
@@ -758,31 +761,35 @@ def fill_md2(md2, object):
#get the skin information
#use the first faces' image for the texture information
- mesh_image=mesh.faces[0].image
- size=mesh_image.getSize()
- md2.skin_width=size[0]
- md2.skin_height=size[1]
- md2.num_skins=1
- #add a skin node to the md2 data structure
- md2.skins.append(md2_skin())
- md2.skins[0].name=g_texture_path.val+Blender.sys.basename(mesh_image.getFilename())
- if len(md2.skins[0].name)>64:
- print "Texture Path and name is more than 64 characters"
- result=Blender.Draw.PupMenu("Texture path and name is more than 64 characters-Quitting")
- return False
+ if mesh.faceUV:
+ mesh_image=mesh.faces[0].image
+ size=mesh_image.getSize()
+ md2.skin_width=size[0]
+ md2.skin_height=size[1]
+ md2.num_skins=1
+ #add a skin node to the md2 data structure
+ md2.skins.append(md2_skin())
+ md2.skins[0].name=g_texture_path.val+Blender.sys.basename(mesh_image.getFilename())
+ if len(md2.skins[0].name)>64:
+ print "Texture Path and name is more than 64 characters"
+ result=Blender.Draw.PupMenu("Texture path and name is more than 64 characters-Quitting")
+ return False
#put texture information in the md2 structure
#build UV coord dictionary (prevents double entries-saves space)
for face in mesh.faces:
- for i in range(0,3):
- t=(face.uv[i])
+ for i in xrange(0,3):
+ if mesh.faceUV:
+ t=(face.uv[i])
+ else:
+ t=(0,0)
tex_key=(t[0],t[1])
if not tex_list.has_key(tex_key):
tex_list[tex_key]=tex_count
tex_count+=1
md2.num_tex_coords=tex_count #each vert has its own UV coord
- for this_tex in range (0, md2.num_tex_coords):
+ for this_tex in xrange (0, md2.num_tex_coords):
md2.tex_coords.append(md2_tex_coord())
for coord, index in tex_list.iteritems():
#md2.tex_coords.append(md2_tex_coord())
@@ -791,13 +798,16 @@ def fill_md2(md2, object):
#put faces in the md2 structure
#for each face in the model
- for this_face in range(0, md2.num_faces):
+ for this_face in xrange(0, md2.num_faces):
md2.faces.append(md2_face())
- for i in range(0,3):
+ for i in xrange(0,3):
#blender uses indexed vertexes so this works very well
md2.faces[this_face].vertex_index[i]=mesh.faces[this_face].verts[i].index
#lookup texture index in dictionary
- uv_coord=(mesh.faces[this_face].uv[i])
+ if mesh.faceUV:
+ uv_coord=(mesh.faces[this_face].uv[i])
+ else:
+ uv_coord=(0,0)
tex_key=(uv_coord[0],uv_coord[1])
tex_index=tex_list[tex_key]
md2.faces[this_face].texture_index[i]=tex_index
@@ -824,7 +834,7 @@ def fill_md2(md2, object):
progressIncrement=0.25/md2.num_frames
#fill in each frame with frame info and all the vertex data for that frame
- for frame_counter in range(0,md2.num_frames):
+ for frame_counter in xrange(0,md2.num_frames):
progress+=progressIncrement
Blender.Window.DrawProgressBar(progress, "Calculating Frame: "+str(frame_counter))
@@ -865,6 +875,10 @@ def fill_md2(md2, object):
frame_scale_y=(frame_max_y-frame_min_y)/255
frame_scale_z=(frame_max_z-frame_min_z)/255
+ if frame_scale_x == 0: frame_scale_x = 1.0
+ if frame_scale_y == 0: frame_scale_y = 1.0
+ if frame_scale_z == 0: frame_scale_z = 1.0
+
#translate value of the mesh to center it on the origin
frame_trans_x=frame_min_x
frame_trans_y=frame_min_y
@@ -875,7 +889,7 @@ def fill_md2(md2, object):
md2.frames[frame_counter].translate=(-frame_trans_x, frame_trans_y, frame_trans_z)
#now for the vertices
- for vert_counter in range(0, md2.num_vertices):
+ for vert_counter in xrange(0, md2.num_vertices):
#add a vertex to the md2 structure
md2.frames[frame_counter].vertices.append(md2_point())
#figure out the new coords based on scale and transform
@@ -893,12 +907,12 @@ def fill_md2(md2, object):
maxdotindex = -1;
- for j in range(0,162):
+ #swap y and x for difference in axis orientation
+ x1=-mesh.verts[vert_counter].no[1]
+ y1=mesh.verts[vert_counter].no[0]
+ z1=mesh.verts[vert_counter].no[2]
+ for j in xrange(0,162):
#dot = (x[0]*y[0]+x[1]*y[1]+x[2]*y[2])
- #swap y and x for difference in axis orientation
- x1=-mesh.verts[vert_counter].no[1]
- y1=mesh.verts[vert_counter].no[0]
- z1=mesh.verts[vert_counter].no[2]
dot = (x1*MD2_NORMALS[j][0]+
y1*MD2_NORMALS[j][1]+
z1*MD2_NORMALS[j][2]);
@@ -916,7 +930,7 @@ def fill_md2(md2, object):
#output all the frame names-user_frame_list is loaded during the validation
for frame_set in user_frame_list:
- for counter in range(frame_set[1]-1, frame_set[2]):
+ for counter in xrange(frame_set[1]-1, frame_set[2]):
md2.frames[counter].name=frame_set[0]+"_"+str(counter-frame_set[1]+2)
#compute these after everthing is loaded into a md2 structure
@@ -954,14 +968,14 @@ def get_frame_list():
file.close()
#check header (first line)
- if lines[0].stip()<>"# MD2 Frame Name List":
+ if lines[0].strip() != "# MD2 Frame Name List":
print "its not a valid file"
result=Blender.Draw.PupMenu("This is not a valid frame definition file-using default%t|OK")
return MD2_FRAME_NAME_LIST
else:
#read in the data
num_frames=0
- for counter in range(1, len(lines)):
+ for counter in xrange(1, len(lines)):
current_line=lines[counter].strip()
if current_line[0]=="#":
#found a comment
@@ -1025,7 +1039,7 @@ def find_strip_length(mesh, start_tri, edge_key):
pass
else:
#find non-shared vert
- for vert_counter in range(0,3):
+ for vert_counter in xrange(0,3):
if (face.verts[vert_counter].index!=edge_key[0] and face.verts[vert_counter].index!=edge_key[1]):
next_vert=vert_counter
@@ -1089,11 +1103,11 @@ def stripify_tri_list(mesh, edge_key):
#print "strip tris: ", strip_tris
#print "strip_tri length: ", len(strip_tris)
- for tri_counter in range(0, len(strip_tris)):
+ for tri_counter in xrange(0, len(strip_tris)):
face=mesh.faces[strip_tris[tri_counter]]
if (tri_counter==0): #first one only
#find non-edge vert
- for vert_counter in range(0,3):
+ for vert_counter in xrange(0,3):
if (face.verts[vert_counter].index!=edge_key[0] and face.verts[vert_counter].index!=edge_key[1]):
start_vert=vert_counter
strip_verts.append(face.verts[start_vert].index)
@@ -1105,7 +1119,7 @@ def stripify_tri_list(mesh, edge_key):
strip_verts.append(face.verts[(start_vert+1)%3].index)
strip_st.append(face.uv[(start_vert+1)%3])
else:
- for vert_counter in range(0,3):
+ for vert_counter in xrange(0,3):
if(face.verts[vert_counter].index!=strip_verts[-1] and face.verts[vert_counter].index!=strip_verts[-2]):
strip_verts.append(face.verts[vert_counter].index)
strip_st.append(face.uv[vert_counter])
@@ -1117,8 +1131,13 @@ def stripify_tri_list(mesh, edge_key):
# Build GL command List
######################################################
def build_GL_commands(md2, mesh):
+ # we can't output gl command structure without uv
+ if not mesh.faceUV:
+ print "No UV: not building GL Commands"
+ return 0
+
print "Building GL Commands"
-
+
global used_tris
global edge_dict
global strip_verts
@@ -1138,7 +1157,7 @@ def build_GL_commands(md2, mesh):
#print "edge Dict: ", edge_dict
- for tri_counter in range(0,len(mesh.faces)):
+ for tri_counter in xrange(0,len(mesh.faces)):
if used_tris[tri_counter]!=0:
#print "Found a used triangle: ", tri_counter
pass
@@ -1156,7 +1175,7 @@ def build_GL_commands(md2, mesh):
strip_length=find_strip_length(mesh, tri_counter, mesh.faces[tri_counter].edge_keys[0])
#mark tris as used
- for used_counter in range(0,strip_length):
+ for used_counter in xrange(0,strip_length):
used_tris[strip_tris[used_counter]]=1
stripify_tri_list(mesh, mesh.faces[tri_counter].edge_keys[0])
@@ -1169,7 +1188,7 @@ def build_GL_commands(md2, mesh):
num_commands+=1
#add s,t,vert for this command list
- for command_counter in range(0, len(strip_tris)+2):
+ for command_counter in xrange(0, len(strip_tris)+2):
cmd=md2_GL_command()
cmd.s=strip_st[command_counter][0]
cmd.t=1.0-strip_st[command_counter][1] #flip upside down
@@ -1245,3 +1264,4 @@ def save_md2(filename):
md2=0
print "Closed the file"
+
diff --git a/release/scripts/md2_import.py b/release/scripts/md2_import.py
index e39b2ca85ec..ec778c1e1b8 100644
--- a/release/scripts/md2_import.py
+++ b/release/scripts/md2_import.py
@@ -448,6 +448,8 @@ def load_md2(md2_filename, texture_filename):
w = float(md2.skin_width)
h = float(md2.skin_height)
+ if w <= 0.0: w = 1.0
+ if h <= 0.0: h = 1.0
#for some reason quake2 texture maps are upside down, flip that
uv_list = [Vector(co.u/w, 1-(co.v/h)) for co in md2.tex_coords]
del w, h
diff --git a/release/scripts/ms3d_import.py b/release/scripts/ms3d_import.py
new file mode 100644
index 00000000000..78ffbb92847
--- /dev/null
+++ b/release/scripts/ms3d_import.py
@@ -0,0 +1,381 @@
+#!BPY
+"""
+Name: 'MilkShape3D (.ms3d)...'
+Blender: 245
+Group: 'Import'
+Tooltip: 'Import from MilkShape3D file format (.ms3d)'
+"""
+#
+# Author: Markus Ilmola
+# Email: markus.ilmola@pp.inet.fi
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+# import needed stuff
+import os.path
+import math
+from math import *
+import struct
+import Blender
+from Blender import Mathutils
+from Blender.Mathutils import *
+
+
+# trims a string by removing ending 0 and everything after it
+def uku(s):
+ try:
+ return s[:s.index('\0')]
+ except:
+ return s
+
+
+# Converts ms3d euler angles to a rotation matrix
+def RM(a):
+ sy = sin(a[2])
+ cy = cos(a[2])
+ sp = sin(a[1])
+ cp = cos(a[1])
+ sr = sin(a[0])
+ cr = cos(a[0])
+ return Matrix([cp*cy, sr*sp*cy+cr*-sy, cr*sp*cy+-sr*-sy],[cp*sy, sr*sp*sy+cr*cy, cr*sp*sy+-sr*cy], [-sp, sr*cp, cr*cp])
+
+
+# Converts ms3d euler angles to a quaternion
+def RQ(a):
+ angle = a[2] * 0.5;
+ sy = sin(angle);
+ cy = cos(angle);
+ angle = a[1] * 0.5;
+ sp = sin(angle);
+ cp = cos(angle);
+ angle = a[0] * 0.5;
+ sr = sin(angle);
+ cr = cos(angle);
+ return Quaternion(cr*cp*cy+sr*sp*sy, sr*cp*cy-cr*sp*sy, cr*sp*cy+sr*cp*sy, cr*cp*sy-sr*sp*cy)
+
+
+# takes a texture filename and tries to load it
+def loadImage(path, filename):
+ image = None
+ try:
+ image = Blender.Image.Load(os.path.abspath(filename))
+ except IOError:
+ print "Warning: Failed to load image: " + filename + ". Trying short path instead...\n"
+ try:
+ image = Blender.Image.Load(os.path.dirname(path) + "/" + os.path.basename(filename))
+ except IOError:
+ print "Warning: Failed to load image: " + os.path.basename(filename) + "!\n"
+ return image
+
+
+# imports a ms3d file to the current scene
+def import_ms3d(path):
+ # get scene
+ scn = Blender.Scene.GetCurrent()
+ if scn == None:
+ return "No scene to import to!"
+
+ # open the file
+ try:
+ file = open(path, 'rb')
+ except IOError:
+ return "Failed to open the file!"
+
+ # read id
+ id = file.read(10)
+ if id!="MS3D000000":
+ return "The file is not a MS3D file!"
+
+ # read version
+ version = struct.unpack("i", file.read(4))[0]
+ if version!=4:
+ return "The file has invalid version!"
+
+ # Create the mesh
+ scn.objects.selected = []
+ mesh = Blender.Mesh.New("MilkShape3D Mesh")
+ meshOb = scn.objects.new(mesh)
+
+ # read the number of vertices
+ numVertices = struct.unpack("H", file.read(2))[0]
+
+ # read vertices
+ coords = []
+ boneIds = []
+ for i in xrange(numVertices):
+ # skip flags
+ file.read(1)
+
+ # read coords
+ coords.append(struct.unpack("fff", file.read(3*4)))
+
+ # read bone ids
+ boneIds.append(struct.unpack("B", file.read(1))[0])
+
+ # skip refcount
+ file.read(1)
+
+ # add the vertices to the mesh
+ mesh.verts.extend(coords)
+
+ # read number of triangles
+ numTriangles = struct.unpack("H", file.read(2))[0]
+
+ # read triangles
+ faces = []
+ uvs = []
+ for i in xrange(numTriangles):
+ # skip flags
+ file.read(2)
+
+ # read indices (faces)
+ faces.append(struct.unpack("HHH", file.read(3*2)))
+
+ # read normals
+ normals = struct.unpack("fffffffff", file.read(3*3*4))
+
+ # read texture coordinates
+ s = struct.unpack("fff", file.read(3*4))
+ t = struct.unpack("fff", file.read(3*4))
+
+ # store texture coordinates
+ uvs.append([[s[0], 1-t[0]], [s[1], 1-t[1]], [s[2], 1-t[2]]])
+
+ if faces[-1][2] == 0: # Cant have zero at the third index
+ faces[-1] = faces[-1][1], faces[-1][2], faces[-1][0]
+ uvs[-1] = uvs[-1][1], uvs[-1][2], uvs[-1][0]
+
+ # skip smooth group
+ file.read(1)
+
+ # skip group
+ file.read(1)
+
+ # add the faces to the mesh
+ mesh.faces.extend(faces)
+
+ # set texture coordinates
+ for i in xrange(numTriangles):
+ mesh.faces[i].uv = [Vector(uvs[i][0]), Vector(uvs[i][1]), Vector(uvs[i][2])]
+
+ # read number of groups
+ numGroups = struct.unpack("H", file.read(2))[0]
+
+ # read groups
+ for i in xrange(numGroups):
+ # skip flags
+ file.read(1)
+
+ # skip name
+ file.read(32)
+
+ # read the number of triangles in the group
+ numGroupTriangles = struct.unpack("H", file.read(2))[0]
+
+ # read the group triangles
+ if numGroupTriangles > 0:
+ triangleIndices = struct.unpack(str(numGroupTriangles) + "H", file.read(2*numGroupTriangles));
+
+ # read material
+ material = struct.unpack("B", file.read(1))[0]
+ for j in xrange(numGroupTriangles):
+ mesh.faces[triangleIndices[j]].mat = material
+
+ # read the number of materials
+ numMaterials = struct.unpack("H", file.read(2))[0]
+
+ # read materials
+ for i in xrange(numMaterials):
+ # read name
+ name = uku(file.read(32))
+
+ # create the material
+ mat = Blender.Material.New(name)
+ mesh.materials += [mat]
+
+ # read ambient color
+ ambient = struct.unpack("ffff", file.read(4*4))[0:3]
+ mat.setAmb((ambient[0]+ambient[1]+ambient[2])/3)
+
+ # read diffuse color
+ diffuse = struct.unpack("ffff", file.read(4*4))[0:3]
+ mat.setRGBCol(diffuse)
+
+ # read specular color
+ specular = struct.unpack("ffff", file.read(4*4))[0:3]
+ mat.setSpecCol(specular)
+
+ # read emissive color
+ emissive = struct.unpack("ffff", file.read(4*4))[0:3]
+ mat.setEmit((emissive[0]+emissive[1]+emissive[2])/3)
+
+ # read shininess
+ shininess = struct.unpack("f", file.read(4))[0]
+ print "Shininess: " + str(shininess)
+
+ # read transparency
+ transparency = struct.unpack("f", file.read(4))[0]
+ mat.setAlpha(transparency)
+ if transparency < 1:
+ mat.mode |= Blender.Material.Modes.ZTRANSP
+
+ # read mode
+ mode = struct.unpack("B", file.read(1))[0]
+
+ # read texturemap
+ texturemap = uku(file.read(128))
+ if len(texturemap)>0:
+ colorTexture = Blender.Texture.New(name + "_texture")
+ colorTexture.setType('Image')
+ colorTexture.setImage(loadImage(path, texturemap))
+ mat.setTexture(0, colorTexture, Blender.Texture.TexCo.UV, Blender.Texture.MapTo.COL)
+
+ # read alphamap
+ alphamap = uku(file.read(128))
+ if len(alphamap)>0:
+ alphaTexture = Blender.Texture.New(name + "_alpha")
+ alphaTexture.setType('Image')
+ alphaTexture.setImage(loadImage(path, alphamap))
+ mat.setTexture(1, alphaTexture, Blender.Texture.TexCo.UV, Blender.Texture.MapTo.ALPHA)
+
+ # read animation
+ fps = struct.unpack("f", file.read(4))[0]
+ time = struct.unpack("f", file.read(4))[0]
+ frames = struct.unpack("i", file.read(4))[0]
+
+ # read the number of joints
+ numJoints = struct.unpack("H", file.read(2))[0]
+
+ # create the armature
+ armature = 0
+ armOb = 0
+ if numJoints > 0:
+ armOb = Blender.Object.New('Armature', "MilkShape3D Skeleton")
+ armature = Blender.Armature.New("MilkShape3D Skeleton")
+ armature.drawType = Blender.Armature.STICK
+ armOb.link(armature)
+ scn.objects.link(armOb)
+ armOb.makeParentDeform([meshOb])
+ armature.makeEditable()
+
+ # read joints
+ rotKeys = {}
+ posKeys = {}
+ for i in xrange(numJoints):
+ # skip flags
+ file.read(1)
+
+ # read name
+ name = uku(file.read(32))
+
+ # create the bone
+ bone = Blender.Armature.Editbone()
+ armature.bones[name] = bone
+
+ # read parent
+ parent = uku(file.read(32))
+ if len(parent)>0:
+ bone.parent = armature.bones[parent]
+
+ # read orientation
+ rot = struct.unpack("fff", file.read(3*4))
+
+ # read position
+ pos = struct.unpack("fff", file.read(3*4))
+
+ # set head
+ if bone.hasParent():
+ bone.head = bone.parent.matrix * Vector(pos) + bone.parent.head
+ bone.matrix = bone.parent.matrix * RM(rot)
+ else:
+ bone.head = Vector(pos)
+ bone.matrix = RM(rot)
+
+ # set tail
+ bvec = bone.tail - bone.head
+ bvec.normalize()
+ bone.tail = bone.head + 0.01 * bvec
+
+ # Create vertex group for this bone
+ mesh.addVertGroup(name)
+ vgroup = []
+ for index, v in enumerate(boneIds):
+ if v==i:
+ vgroup.append(index)
+ mesh.assignVertsToGroup(name, vgroup, 1.0, 1)
+
+ # read the number of rotation keys
+ numKeyFramesRot = struct.unpack("H", file.read(2))[0]
+
+ # read the number of postions keys
+ numKeyFramesPos = struct.unpack("H", file.read(2))[0]
+
+ # read rotation keys
+ rotKeys[name] = []
+ for j in xrange(numKeyFramesRot):
+ # read time
+ time = fps * struct.unpack("f", file.read(4))[0]
+ # read data
+ rotKeys[name].append([time, struct.unpack("fff", file.read(3*4))])
+
+ # read position keys
+ posKeys[name] = []
+ for j in xrange(numKeyFramesPos):
+ # read time
+ time = fps * struct.unpack("f", file.read(4))[0]
+ # read data
+ posKeys[name].append([time, struct.unpack("fff", file.read(3*4))])
+
+ # create action and pose
+ action = 0
+ pose = 0
+ if armature!=0:
+ armature.update()
+ pose = armOb.getPose()
+ action = armOb.getAction()
+ if not action:
+ action = Blender.Armature.NLA.NewAction()
+ action.setActive(armOb)
+
+ # create animation key frames
+ for name, pbone in pose.bones.items():
+ # create position keys
+ for key in posKeys[name]:
+ pbone.loc = Vector(key[1])
+ pbone.insertKey(armOb, int(key[0]), Blender.Object.Pose.LOC, True)
+
+ # create rotation keys
+ for key in rotKeys[name]:
+ pbone.quat = RQ(key[1])
+ pbone.insertKey(armOb, int(key[0]), Blender.Object.Pose.ROT, True)
+
+ Blender.Redraw()
+
+ # close the file
+ file.close()
+
+ # succes return empty error string
+ return ""
+
+
+# load the model
+def fileCallback(filename):
+ error = import_ms3d(filename)
+ if error!="":
+ Blender.Draw.PupMenu("An error occured during import: " + error + "|Not all data might have been imported succesfully.", 2)
+
+Blender.Window.FileSelector(fileCallback, 'Import')
+
diff --git a/release/scripts/wizard_curve2tree.py b/release/scripts/wizard_curve2tree.py
index f11d797636f..2dcda953a89 100644
--- a/release/scripts/wizard_curve2tree.py
+++ b/release/scripts/wizard_curve2tree.py
@@ -46,6 +46,15 @@ from Blender.Noise import randuvec
GLOBALS = {}
GLOBALS['non_bez_error'] = 0
+'''
+def debugVec(v1,v2):
+ sce = bpy.data.scenes.active
+ me = bpy.data.meshes.new()
+ me.verts.extend( [v1,v2] )
+ me.edges.extend( [(0,1)] )
+ sce.objects.new(me)
+'''
+
def AngleBetweenVecsSafe(a1, a2):
try:
return AngleBetweenVecs(a1,a2)
@@ -360,7 +369,12 @@ class tree:
pt_best_j, dist = brch_j.findClosest(brch_i.bpoints[0].co)
# Check its in range, allow for a bit out - hense the sloppy
- if dist < pt_best_j.radius * sloppy:
+ # The second check in the following IF was added incase the point is close enough to the line but the midpoint is further away
+ # ...in this case the the resulting mesh will be adjusted to fit the join so its best to make it.
+ if (dist < pt_best_j.radius * sloppy) or \
+ ((brch_i.bpoints[0].co - pt_best_j.co).length < pt_best_j.radius * sloppy):
+
+
brch_i.parent_pt = pt_best_j
pt_best_j.childCount += 1 # dont remove me
@@ -1487,7 +1501,7 @@ class tree:
else:
# our roll was set from the branches parent and needs no changing
# set it to zero so the following functions know to interpolate.
- brch.bpoints[0].roll_angle = 45.0
+ brch.bpoints[0].roll_angle = 0.0
#brch.bpoints[1].roll_angle = 0.0
'''
@@ -2407,6 +2421,7 @@ class bpoint(object):
Roll the quad about its normal
use for aurienting the sides of a quad to meet a branch that stems from here...
'''
+ # debugVec(self.co, self.co + self.no)
mat = RotationMatrix(angle, 3, 'r', self.no)
for i in xrange(4):
@@ -2451,7 +2466,7 @@ class bpoint(object):
def calcVerts(self):
if self.prev == None:
if self.branch.parent_pt:
- cross = CrossVecs(self.no, self.branch.getParentFaceCent() - self.branch.parent_pt.getAbsVec( self.branch.getParentQuadIndex() ))
+ cross = CrossVecs(self.no, self.branch.parent_pt.no) * RotationMatrix(-45, 3, 'r', self.no)
else:
# parentless branch - for best results get a cross thats not the same as the normal, in rare cases this happens.
@@ -2666,6 +2681,7 @@ class branch:
co_on_line, fac = ClosestPointOnLine(co, pt.co, pt.next.co)
print fac
if fac >= 0.0 and fac <= 1.0:
+
return pt, (co-co_on_line).length
return best, best_dist
@@ -3041,7 +3057,7 @@ EVENT_REDRAW = 3
# Prefs for each tree
PREFS = {}
-PREFS['connect_sloppy'] = Draw.Create(1.0)
+PREFS['connect_sloppy'] = Draw.Create(1.5)
PREFS['connect_base_trim'] = Draw.Create(1.0)
PREFS['seg_density'] = Draw.Create(0.5)
PREFS['seg_density_angle'] = Draw.Create(20.0)
@@ -3537,7 +3553,7 @@ def do_pref_clear(e,v):
return
for ob in objects:
- try: del idprop[ID_SLOT_NAME]
+ try: del ob.properties[ID_SLOT_NAME]
except: pass
def do_tex_check(e,v):
@@ -3620,8 +3636,18 @@ def do_tree_generate(e,v):
Blender.Draw.PupMenu('Error%t|Nurbs and Poly curve types cant be used!')
GLOBALS['non_bez_error'] = 0
+def do_tree_help(e,v):
+ url = 'http://wiki.blender.org/index.php/Scripts/Manual/Export/autodesk_fbx'
+ print 'Trying to open web browser with documentation at this address...'
+ print '\t' + url
-
+ try:
+ import webbrowser
+ webbrowser.open(url)
+ except:
+ print '...could not open a browser window.'
+
+
def evt(e,val):
pass
@@ -3957,7 +3983,7 @@ def gui():
xtmp = x
# ---------- ---------- ---------- ----------
- PREFS['connect_sloppy'] = Draw.Number('Connect Limit',EVENT_UPDATE, xtmp, y, but_width*2, but_height, PREFS['connect_sloppy'].val, 0.1, 2.0, 'Strictness when connecting branches'); xtmp += but_width*2;
+ PREFS['connect_sloppy'] = Draw.Number('Connect Limit',EVENT_UPDATE, xtmp, y, but_width*2, but_height, PREFS['connect_sloppy'].val, 0.1, 3.0, 'Strictness when connecting branches'); xtmp += but_width*2;
PREFS['connect_base_trim'] = Draw.Number('Joint Bevel', EVENT_UPDATE, xtmp, y, but_width*2, but_height, PREFS['connect_base_trim'].val, 0.0, 2.0, 'low value for a tight join, hi for a smoother bevel'); xtmp += but_width*2;
Blender.Draw.EndAlign()
y-=but_height+MARGIN
@@ -3989,8 +4015,9 @@ def gui():
# ---------- ---------- ---------- ----------
Blender.Draw.BeginAlign()
- Draw.PushButton('Exit', EVENT_EXIT, xtmp, y, but_width, but_height, '', do_active_image); xtmp += but_width;
- Draw.PushButton('Generate from selection', EVENT_REDRAW, xtmp, y, but_width*3, but_height, 'Generate mesh', do_tree_generate); xtmp += but_width*3;
+ Draw.PushButton('Exit', EVENT_EXIT, xtmp, y, but_width, but_height, ''); xtmp += but_width;
+ Draw.PushButton('Help', EVENT_NONE, xtmp, y, but_width, but_height, '', do_tree_help); xtmp += but_width;
+ Draw.PushButton('Generate from selection', EVENT_REDRAW, xtmp, y, but_width*2, but_height, 'Generate mesh', do_tree_generate); xtmp += but_width*3;
Blender.Draw.EndAlign()
y-=but_height+MARGIN
xtmp = x
diff --git a/release/windows/installer/00.sconsblender.nsi b/release/windows/installer/00.sconsblender.nsi
index 5875be289b6..c4e504a5bff 100644
--- a/release/windows/installer/00.sconsblender.nsi
+++ b/release/windows/installer/00.sconsblender.nsi
@@ -7,8 +7,10 @@
;
!include "MUI.nsh"
+!include "WinVer.nsh"
!include "FileFunc.nsh"
!include "WordFunc.nsh"
+!include "nsDialogs.nsh"
SetCompressor /SOLID lzma
@@ -29,7 +31,9 @@ Name "Blender VERSION"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
-Page custom DataLocation
+Page custom DataLocation DataLocationOnLeave
+Page custom AppDataChoice AppDataChoiceOnLeave
+Page custom PreMigrateUserSettings MigrateUserSettings
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
@@ -66,101 +70,13 @@ Caption "Blender VERSION Installer"
OutFile "DISTDIR\..\blender-VERSION-windows.exe"
InstallDir "$PROGRAMFILES\Blender Foundation\Blender"
-BrandingText "http://www.blender.org/bf"
+BrandingText "http://www.blender.org"
ComponentText "This will install Blender VERSION on your computer."
DirText "Use the field below to specify the folder where you want Blender to be copied to. To specify a different folder, type a new name or use the Browse button to select an existing folder."
SilentUnInstall normal
-; GetWindowsVersion
-;
-; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
-; Updated by Joost Verburg
-;
-; Returns on top of stack
-;
-; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
-; or
-; '' (Unknown Windows Version)
-;
-; Usage:
-; Call GetWindowsVersion
-; Pop $R0
-; ; at this point $R0 is "NT 4.0" or whatnot
-
-Function GetWindowsVersion
-
- Push $R0
- Push $R1
-
- ReadRegStr $R0 HKLM \
- "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
-
- IfErrors 0 lbl_winnt
-
- ; we are not NT
- ReadRegStr $R0 HKLM \
- "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
-
- StrCpy $R1 $R0 1
- StrCmp $R1 '4' 0 lbl_error
-
- StrCpy $R1 $R0 3
-
- StrCmp $R1 '4.0' lbl_win32_95
- StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
-
- lbl_win32_95:
- StrCpy $R0 '95'
- Goto lbl_done
-
- lbl_win32_98:
- StrCpy $R0 '98'
- Goto lbl_done
-
- lbl_win32_ME:
- StrCpy $R0 'ME'
- Goto lbl_done
-
- lbl_winnt:
-
- StrCpy $R1 $R0 1
-
- StrCmp $R1 '3' lbl_winnt_x
- StrCmp $R1 '4' lbl_winnt_x
-
- StrCpy $R1 $R0 3
-
- StrCmp $R1 '5.0' lbl_winnt_2000
- StrCmp $R1 '5.1' lbl_winnt_XP
- StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
-
- lbl_winnt_x:
- StrCpy $R0 "NT $R0" 6
- Goto lbl_done
-
- lbl_winnt_2000:
- Strcpy $R0 '2000'
- Goto lbl_done
-
- lbl_winnt_XP:
- Strcpy $R0 'XP'
- Goto lbl_done
-
- lbl_winnt_2003:
- Strcpy $R0 '2003'
- Goto lbl_done
-
- lbl_error:
- Strcpy $R0 ''
- lbl_done:
-
- Pop $R1
- Exch $R0
-
-FunctionEnd
-
# Uses $0
Function openLinkNewWindow
Push $3
@@ -196,22 +112,74 @@ Function openLinkNewWindow
FunctionEnd
Var BLENDERHOME
-Var winversion
Var DLL_found
+Var PREVHOME
+
+Function SetWinXPPathCurrentUser
+ SetShellVarContext current
+ StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"
+FunctionEnd
-Function SetWinXPPath
- StrCpy $BLENDERHOME "$PROFILE\Application Data\Blender Foundation\Blender"
+Function SetWinXPPathAllUsers
+ SetShellVarContext all
+ StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"
FunctionEnd
Function SetWin9xPath
StrCpy $BLENDERHOME $INSTDIR
FunctionEnd
-Function .onInit
- Call GetWindowsVersion
- Pop $R0
- Strcpy $winversion $R0
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "RELDIR\data.ini" "data.ini"
+; custom controls
+Var HWND
+
+Var HWND_APPDATA
+Var HWND_INSTDIR
+Var HWND_HOMEDIR
+
+Var HWND_BUTTON_YES
+Var HWND_BUTTON_NO
+
+Var SETUSERCONTEXT
+
+Function PreMigrateUserSettings
+ StrCpy $PREVHOME "$PROFILE\Application Data\Blender Foundation\Blender"
+ StrCpy $0 "$PROFILE\Application Data\Blender Foundation\Blender\.blender"
+
+ IfFileExists $0 0 nochange
+
+ StrCmp $BLENDERHOME $PREVHOME nochange
+
+ nsDialogs::Create /NOUNLOAD 1018
+ Pop $HWND
+
+ ${If} $HWND == error
+ Abort
+ ${EndIf}
+
+ ${NSD_CreateLabel} 0 0 100% 12u "You have existing settings at:"
+ ${NSD_CreateLabel} 0 20 100% 12u $PREVHOME
+ ${NSD_CreateLabel} 0 40 100% 12u "Do you wish to migrate this data to:"
+ ${NSD_CreateLabel} 0 60 100% 12u $BLENDERHOME
+ ${NSD_CreateLabel} 0 80 100% 12u "Please note: If you choose no, Blender will not be able to use these files!"
+ ${NSD_CreateRadioButton} 0 100 100% 12u "Yes"
+ Pop $HWND_BUTTON_YES
+ ${NSD_CreateRadioButton} 0 120 100% 12u "No"
+ Pop $HWND_BUTTON_NO
+
+ SendMessage $HWND_BUTTON_YES ${BM_SETCHECK} 1 0
+
+ nsDialogs::Show
+ nochange:
+
+FunctionEnd
+
+Function MigrateUserSettings
+ ${NSD_GetState} $HWND_BUTTON_YES $R0
+ ${If} $R0 == "1"
+ CreateDirectory $BLENDERHOME
+ CopyFiles $PREVHOME\*.* $BLENDERHOME
+ ;RMDir /r $PREVHOME
+ ${EndIf}
FunctionEnd
!define DLL_VER "8.00.50727.42"
@@ -271,70 +239,90 @@ Function PythonInstall
Call openLinkNewWindow
FunctionEnd
-Var HWND
-Var DLGITEM
-Var is2KXP
-
Function DataLocation
- !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" ""
-
- ; Set default choice
- !insertmacro MUI_INSTALLOPTIONS_WRITE "data.ini" "Field 3" "State" 1
-
- StrCpy $R1 $winversion 2
- StrCmp $R1 "NT" do_win2kxp
- StrCmp $winversion "2000" do_win2kxp
- StrCmp $winversion "XP" do_win2kxp
- StrCmp $winversion "2003" do_win2kxp
+ nsDialogs::Create /NOUNLOAD 1018
+ Pop $HWND
- ;else...
- Strcpy $is2KXP "false"
-
- Goto continue
-
- do_win2kXP:
- Strcpy $is2KXP "true"
-
- continue:
+ ${If} $HWND == error
+ Abort
+ ${EndIf}
- !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "data.ini"
- Pop $HWND
+ ${NSD_CreateLabel} 0 0 100% 12u "Please specify where you wish to install Blender's user data files."
+ ${NSD_CreateRadioButton} 0 20 100% 12u "Use the Application Data directory (Requires Windows 2000 or better)"
+ Pop $HWND_APPDATA
+ ${NSD_CreateRadioButton} 0 50 100% 12u "Use the installation directory (ie. location chosen to install blender.exe)."
+ Pop $HWND_INSTDIR
+ ${NSD_CreateRadioButton} 0 80 100% 12u "I have defined a %HOME% variable, please install files here."
+ Pop $HWND_HOMEDIR
- Strcmp $is2KXP "true" do_dlg
+ ${If} ${AtMostWinME}
+ GetDlgItem $0 $HWND $HWND_APPDATA
+ EnableWindow $0 0
+ SendMessage $HWND_INSTDIR ${BM_SETCHECK} 1 0
+ ${Else}
+ SendMessage $HWND_APPDATA ${BM_SETCHECK} 1 0
+ ${EndIf}
- ; Disable App Data option on Win9x
+ nsDialogs::Show
- GetDlgItem $DLGITEM $HWND 1201
- EnableWindow $DLGITEM 0
+FunctionEnd
+
+Function DataLocationOnLeave
+ StrCpy $SETUSERCONTEXT "false"
+ ${NSD_GetState} $HWND_APPDATA $R0
+ ${If} $R0 == "1"
+ StrCpy $SETUSERCONTEXT "true"
+ ${Else}
+ ${NSD_GetState} $HWND_INSTDIR $R0
+ ${If} $R0 == "1"
+ Call SetWin9xPath
+ ${Else}
+ ${NSD_GetState} $HWND_HOMEDIR $R0
+ ${If} $R0 == "1"
+ ReadEnvStr $BLENDERHOME "HOME"
+ ${EndIf}
+ ${EndIf}
+ ${EndIf}
+FunctionEnd
+
+Var HWND_APPDATA_CURRENT
+Var HWND_APPDATA_ALLUSERS
+
+Function AppDataChoice
+ StrCmp $SETUSERCONTEXT "false" skip
- do_dlg:
+ nsDialogs::Create /NOUNLOAD 1018
+ Pop $HWND
- !insertmacro MUI_INSTALLOPTIONS_SHOW
- !insertmacro MUI_INSTALLOPTIONS_READ $R0 "data.ini" "Field 2" "State" ; App Dir
- Strcmp $R0 1 do_app_data
- !insertmacro MUI_INSTALLOPTIONS_READ $R0 "data.ini" "Field 3" "State" ; Inst Dir
- Strcmp $R0 1 do_inst_path
- !insertmacro MUI_INSTALLOPTIONS_READ $R0 "data.ini" "Field 4" "State" ; Home Dir
- Strcmp $R0 1 do_home_path
+ ${NSD_CreateLabel} 0 0 100% 12u "Please choose which Application Data directory to use."
+ ${NSD_CreateRadioButton} 0 40 100% 12u "Current User"
+ Pop $HWND_APPDATA_CURRENT
+ ${NSD_CreateRadioButton} 0 70 100% 12u "All Users"
+ Pop $HWND_APPDATA_ALLUSERS
- Goto end
+ SendMessage $HWND_APPDATA_CURRENT ${BM_SETCHECK} 1 0
- do_app_data:
- Call SetWinXPPath
- Goto end
- do_home_path:
- ReadEnvStr $BLENDERHOME "HOME"
- Goto end
- do_inst_path:
- Call SetWin9xPath
- end:
+ StrCmp $SETUSERCONTEXT "true" 0 skip ; show dialog if we need to set context, otherwise skip it
+ nsDialogs::Show
+skip:
+
+FunctionEnd
+
+Function AppDataChoiceOnLeave
+ StrCmp $SETUSERCONTEXT "false" skip
+ ${NSD_GetState} $HWND_APPDATA_CURRENT $R0
+ ${If} $R0 == "1"
+ Call SetWinXPPathCurrentUser
+ ${Else}
+ Call SetWinXPPathAllUsers
+ ${EndIf}
+skip:
+
FunctionEnd
Section "Blender-VERSION (required)" SecCopyUI
SectionIn RO
-
-; Sets $BLENDERHOME to suit Windows version...
; Set output path to the installation directory.
SetOutPath $INSTDIR
diff --git a/release/windows/installer/data.ini b/release/windows/installer/data.ini
deleted file mode 100644
index d29efcc3fc9..00000000000
--- a/release/windows/installer/data.ini
+++ /dev/null
@@ -1,34 +0,0 @@
-[Settings]
-NumFields=4
-
-[Field 1]
-Type=label
-Text=Please specify where you wish to install Blender's User Data files.
-Left=0
-Right=-1
-Top=0
-Bottom=10
-
-[Field 2]
-Type=RadioButton
-Text=Use Application Data Directory (Win2k/XP only)
-Left=0
-Right=-1
-Top=20
-Bottom=30
-
-[Field 3]
-Type=RadioButton
-Text=Use Installation Directory (ie. location chosen to install blender.exe).
-Left=0
-Right=-1
-Top=40
-Bottom=50
-
-[Field 4]
-Type=RadioButton
-Text=I have defined a %HOME% variable, please install files here.
-Left=0
-Right=-1
-Top=60
-Bottom=70
diff --git a/release/windows/specific.sh b/release/windows/specific.sh
index cb3706a84e5..e3ecfcb959f 100755
--- a/release/windows/specific.sh
+++ b/release/windows/specific.sh
@@ -2,15 +2,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# OS specific stuff for the package, only to be executed by ../Makefile
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 9da00ddfc0d..04566ec3b0b 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SUBDIRS(blender kernel)
diff --git a/source/Makefile b/source/Makefile
index 6a06764384c..e5dffbf532d 100644
--- a/source/Makefile
+++ b/source/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Top level makefile. Start looping through subdirs and link....
#
diff --git a/source/blender/CMakeLists.txt b/source/blender/CMakeLists.txt
index fa9199006a8..966bf5f7be4 100644
--- a/source/blender/CMakeLists.txt
+++ b/source/blender/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SUBDIRS(avi nodes blenkernel blenlib blenloader blenpluginapi imbuf imbuf/intern/cineon makesdna python radiosity readblenfile render src yafray)
diff --git a/source/blender/Makefile b/source/blender/Makefile
index 2c1f83edf39..937512f34bd 100644
--- a/source/blender/Makefile
+++ b/source/blender/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/avi/AVI_avi.h b/source/blender/avi/AVI_avi.h
index 76442d9d55e..5daf7c2e854 100644
--- a/source/blender/avi/AVI_avi.h
+++ b/source/blender/avi/AVI_avi.h
@@ -21,15 +21,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -47,7 +44,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/avi/CMakeLists.txt b/source/blender/avi/CMakeLists.txt
index 0bf69d735ce..4738ea14292 100644
--- a/source/blender/avi/CMakeLists.txt
+++ b/source/blender/avi/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.c)
diff --git a/source/blender/avi/Makefile b/source/blender/avi/Makefile
index 457eebbb516..c8ab5fe0aca 100644
--- a/source/blender/avi/Makefile
+++ b/source/blender/avi/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/avi/intern/Makefile b/source/blender/avi/intern/Makefile
index 71e892e3db6..30f225c8031 100644
--- a/source/blender/avi/intern/Makefile
+++ b/source/blender/avi/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c
index da51c00c196..386597c6d85 100644
--- a/source/blender/avi/intern/avi.c
+++ b/source/blender/avi/intern/avi.c
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/avi/intern/avi_intern.h b/source/blender/avi/intern/avi_intern.h
index 189072eba8d..8d36066caf4 100644
--- a/source/blender/avi/intern/avi_intern.h
+++ b/source/blender/avi/intern/avi_intern.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef AVI_INTERN_H
#define AVI_INTERN_H
diff --git a/source/blender/avi/intern/avirgb.c b/source/blender/avi/intern/avirgb.c
index 23e29daf960..3a28f4da8a0 100644
--- a/source/blender/avi/intern/avirgb.c
+++ b/source/blender/avi/intern/avirgb.c
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/avi/intern/avirgb.h b/source/blender/avi/intern/avirgb.h
index 03c0682b024..5877dfcc836 100644
--- a/source/blender/avi/intern/avirgb.h
+++ b/source/blender/avi/intern/avirgb.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
void *avi_converter_from_avi_rgb (AviMovie *movie, int stream, unsigned char *buffer, int *size);
diff --git a/source/blender/avi/intern/codecs.c b/source/blender/avi/intern/codecs.c
index 3daff52a947..e082f2bd6d8 100644
--- a/source/blender/avi/intern/codecs.c
+++ b/source/blender/avi/intern/codecs.c
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "AVI_avi.h"
diff --git a/source/blender/avi/intern/endian.c b/source/blender/avi/intern/endian.c
index 431479b0817..ecbabf07039 100644
--- a/source/blender/avi/intern/endian.c
+++ b/source/blender/avi/intern/endian.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* */
#ifdef HAVE_CONFIG_H
diff --git a/source/blender/avi/intern/endian.h b/source/blender/avi/intern/endian.h
index 907069c1f87..0c84a71f543 100644
--- a/source/blender/avi/intern/endian.h
+++ b/source/blender/avi/intern/endian.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* */
#ifndef AVI_ENDIAN_H
diff --git a/source/blender/avi/intern/mjpeg.c b/source/blender/avi/intern/mjpeg.c
index d51c04a1834..9df78b2d81d 100644
--- a/source/blender/avi/intern/mjpeg.c
+++ b/source/blender/avi/intern/mjpeg.c
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* */
#include "AVI_avi.h"
diff --git a/source/blender/avi/intern/mjpeg.h b/source/blender/avi/intern/mjpeg.h
index 5b7f54a6e42..b81ed40ae3d 100644
--- a/source/blender/avi/intern/mjpeg.h
+++ b/source/blender/avi/intern/mjpeg.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
void *avi_converter_from_mjpeg (AviMovie *movie, int stream, unsigned char *buffer, int *size);
diff --git a/source/blender/avi/intern/options.c b/source/blender/avi/intern/options.c
index 08c8cb254f0..3c848d3f024 100644
--- a/source/blender/avi/intern/options.c
+++ b/source/blender/avi/intern/options.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* */
#include "AVI_avi.h"
diff --git a/source/blender/avi/intern/rgb32.c b/source/blender/avi/intern/rgb32.c
index d838ba5b786..ee4d1b237ed 100644
--- a/source/blender/avi/intern/rgb32.c
+++ b/source/blender/avi/intern/rgb32.c
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* */
#include "AVI_avi.h"
diff --git a/source/blender/avi/intern/rgb32.h b/source/blender/avi/intern/rgb32.h
index 019869c6058..2f1caddd2d5 100644
--- a/source/blender/avi/intern/rgb32.h
+++ b/source/blender/avi/intern/rgb32.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
void *avi_converter_from_rgb32 (AviMovie *movie, int stream, unsigned char *buffer, int *size);
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index 29fc1438c47..f61b300f708 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_DERIVEDMESH_H
@@ -440,23 +437,5 @@ void weight_to_rgb(float input, float *fr, float *fg, float *fb);
/* determines required DerivedMesh data according to view and edit modes */
CustomDataMask get_viewedit_datamask();
-/* repeate this pattern
- X000X000
- 00000000
- 00X000X0
- 00000000 */
-
-#define DM_FACE_STIPPLE \
-{ \
- 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
- 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
- 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
- 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
- 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
- 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
- 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
- 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0 \
-}
-
#endif
diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h
index 1e1c3c110e8..b5e34444d13 100644
--- a/source/blender/blenkernel/BKE_action.h
+++ b/source/blender/blenkernel/BKE_action.h
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): Full recode, Ton Roosendaal, Crete 2005
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_ACTION_H
diff --git a/source/blender/blenkernel/BKE_anim.h b/source/blender/blenkernel/BKE_anim.h
index 54fcb19d5dc..5ea511738ad 100644
--- a/source/blender/blenkernel/BKE_anim.h
+++ b/source/blender/blenkernel/BKE_anim.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_ANIM_H
#define BKE_ANIM_H
diff --git a/source/blender/blenkernel/BKE_armature.h b/source/blender/blenkernel/BKE_armature.h
index 2c573faeb87..62061238131 100644
--- a/source/blender/blenkernel/BKE_armature.h
+++ b/source/blender/blenkernel/BKE_armature.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_ARMATURE_H
#define BKE_ARMATURE_H
diff --git a/source/blender/blenkernel/BKE_bad_level_calls.h b/source/blender/blenkernel/BKE_bad_level_calls.h
index ae4cdbe1cfe..3e45749c26a 100644
--- a/source/blender/blenkernel/BKE_bad_level_calls.h
+++ b/source/blender/blenkernel/BKE_bad_level_calls.h
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_BAD_LEVEL_CALLS_H
#define BKE_BAD_LEVEL_CALLS_H
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index d81eb4d5103..d2ba180e0aa 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_BLENDER_H
#define BKE_BLENDER_H
@@ -44,7 +41,7 @@ struct ListBase;
struct MemFile;
#define BLENDER_VERSION 245
-#define BLENDER_SUBVERSION 15
+#define BLENDER_SUBVERSION 16
#define BLENDER_MINVERSION 240
#define BLENDER_MINSUBVERSION 0
diff --git a/source/blender/blenkernel/BKE_bmesh.h b/source/blender/blenkernel/BKE_bmesh.h
index 9229397e674..08ad8192688 100644
--- a/source/blender/blenkernel/BKE_bmesh.h
+++ b/source/blender/blenkernel/BKE_bmesh.h
@@ -5,7 +5,7 @@
*
* $Id: BKE_bmesh.h,v 1.00 2007/01/17 17:42:01 Briggs Exp $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,7 +31,7 @@
*
* Contributor(s): Geoffrey Bantle.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_BMESH_H
diff --git a/source/blender/blenkernel/BKE_bmfont.h b/source/blender/blenkernel/BKE_bmfont.h
index 0d42b673769..52f6a99ecdc 100644
--- a/source/blender/blenkernel/BKE_bmfont.h
+++ b/source/blender/blenkernel/BKE_bmfont.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_BMFONT_H
#define BKE_BMFONT_H
diff --git a/source/blender/blenkernel/BKE_bmfont_types.h b/source/blender/blenkernel/BKE_bmfont_types.h
index a3bb43b5ca8..f7b24d8bbc3 100644
--- a/source/blender/blenkernel/BKE_bmfont_types.h
+++ b/source/blender/blenkernel/BKE_bmfont_types.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_BMFONT_TYPES_H
#define BKE_BMFONT_TYPES_H
diff --git a/source/blender/blenkernel/BKE_booleanops.h b/source/blender/blenkernel/BKE_booleanops.h
index 4e98c81c067..b83b9c89ae8 100644
--- a/source/blender/blenkernel/BKE_booleanops.h
+++ b/source/blender/blenkernel/BKE_booleanops.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_BOOLEANOPS_H
#define BKE_BOOLEANOPS_H
diff --git a/source/blender/blenkernel/BKE_booleanops_mesh.h b/source/blender/blenkernel/BKE_booleanops_mesh.h
index 7b0e703da04..1d8685f410c 100644
--- a/source/blender/blenkernel/BKE_booleanops_mesh.h
+++ b/source/blender/blenkernel/BKE_booleanops_mesh.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_PyBooleanOps_h
#define BKE_PyBooleanOps_h
diff --git a/source/blender/blenkernel/BKE_brush.h b/source/blender/blenkernel/BKE_brush.h
index 2c0034ad234..f1f4653f092 100644
--- a/source/blender/blenkernel/BKE_brush.h
+++ b/source/blender/blenkernel/BKE_brush.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* General operations for brushes.
*/
@@ -48,7 +45,7 @@ void free_brush(struct Brush *brush);
int brush_set_nr(struct Brush **current_brush, int nr);
int brush_delete(struct Brush **current_brush);
void brush_check_exists(struct Brush **brush);
-void brush_toggle_fake_user(struct Brush *brush);
+void brush_toggled_fake_user(struct Brush *brush);
int brush_texture_set_nr(struct Brush *brush, int nr);
int brush_texture_delete(struct Brush *brush);
int brush_clone_image_set_nr(struct Brush *brush, int nr);
diff --git a/source/blender/blenkernel/BKE_cloth.h b/source/blender/blenkernel/BKE_cloth.h
index 418102aa973..988f7c6cf44 100644
--- a/source/blender/blenkernel/BKE_cloth.h
+++ b/source/blender/blenkernel/BKE_cloth.h
@@ -3,15 +3,12 @@
*
* $Id: BKE_cloth.h,v 1.1 2007/08/01 02:07:27 daniel Exp $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_CLOTH_H
#define BKE_CLOTH_H
@@ -60,15 +57,15 @@ struct ClothModifierData;
struct CollisionTree;
// this is needed for inlining behaviour
-#ifndef _WIN32
-#define LINUX
-#ifndef __sgi
-#define DO_INLINE inline
+#if defined _WIN32
+# define DO_INLINE __inline
+#elif defined (__sgi)
+# define DO_INLINE
+#elif defined (__sun) || defined (__sun__)
+# define DO_INLINE
#else
-#define DO_INLINE
-#endif
-#else
-#define DO_INLINE __inline
+# define DO_INLINE inline
+# define LINUX
#endif
#define CLOTH_MAX_THREAD 2
@@ -147,16 +144,18 @@ ClothSpring;
/* These are the bits used in SimSettings.flags. */
typedef enum
{
- CLOTH_SIMSETTINGS_FLAG_RESET = ( 1 << 1 ), // The CM object requires a reinitializaiton.
+ //CLOTH_SIMSETTINGS_FLAG_RESET = ( 1 << 1 ), // The CM object requires a reinitializaiton.
CLOTH_SIMSETTINGS_FLAG_COLLOBJ = ( 1 << 2 ),// object is only collision object, no cloth simulation is done
CLOTH_SIMSETTINGS_FLAG_GOAL = ( 1 << 3 ), // we have goals enabled
CLOTH_SIMSETTINGS_FLAG_TEARING = ( 1 << 4 ),// true if tearing is enabled
- CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT = ( 1 << 5 ), // true if tearing is enabled
- CLOTH_SIMSETTINGS_FLAG_EDITMODE = ( 1 << 6 ), // are we in editmode? -several things disabled
- CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE = ( 1 << 7 ), /* force cache freeing */
+ //CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT = ( 1 << 5 ), // true if tearing is enabled
+ //CLOTH_SIMSETTINGS_FLAG_EDITMODE = ( 1 << 6 ), // are we in editmode? -several things disabled
+ //CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE = ( 1 << 7 ), /* force cache freeing */
CLOTH_SIMSETTINGS_FLAG_SCALING = ( 1 << 8 ), /* is advanced scaling active? */
- CLOTH_SIMSETTINGS_FLAG_LOADED = ( 1 << 9 ), /* did we just got load? */
- CLOTH_SIMSETTINGS_FLAG_AUTOPROTECT = ( 1 << 10 ), /* is autoprotect enabled? */
+ //CLOTH_SIMSETTINGS_FLAG_LOADED = ( 1 << 9 ), /* did we just got load? */
+ //CLOTH_SIMSETTINGS_FLAG_AUTOPROTECT = ( 1 << 10 ), /* is autoprotect enabled? */
+ //CLOTH_SIMSETTINGS_FLAG_CCACHE_OUTDATED = (1 << 11), /* while protected, did cache get outdated? */
+ CLOTH_SIMSETTINGS_FLAG_CCACHE_EDIT = (1 << 12) /* edit cache in editmode */
} CLOTH_SIMSETTINGS_FLAGS;
/* COLLISION FLAGS */
diff --git a/source/blender/blenkernel/BKE_collision.h b/source/blender/blenkernel/BKE_collision.h
index 3889721b8c9..7328f9108e3 100644
--- a/source/blender/blenkernel/BKE_collision.h
+++ b/source/blender/blenkernel/BKE_collision.h
@@ -3,15 +3,12 @@
*
* $Id: BKE_cloth.h,v 1.1 2007/08/01 02:07:27 daniel Exp $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_COLLISIONS_H
#define BKE_COLLISIONS_H
diff --git a/source/blender/blenkernel/BKE_constraint.h b/source/blender/blenkernel/BKE_constraint.h
index 4ad7de7a583..2f92fadd5ee 100644
--- a/source/blender/blenkernel/BKE_constraint.h
+++ b/source/blender/blenkernel/BKE_constraint.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): 2007 - Joshua Leung (major recode)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_CONSTRAINT_H
diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h
index ee63f678505..60444675047 100644
--- a/source/blender/blenkernel/BKE_curve.h
+++ b/source/blender/blenkernel/BKE_curve.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_CURVE_H
#define BKE_CURVE_H
diff --git a/source/blender/blenkernel/BKE_deform.h b/source/blender/blenkernel/BKE_deform.h
index 67e2a8948d5..a1975dd4265 100644
--- a/source/blender/blenkernel/BKE_deform.h
+++ b/source/blender/blenkernel/BKE_deform.h
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_DEFORM_H
diff --git a/source/blender/blenkernel/BKE_depsgraph.h b/source/blender/blenkernel/BKE_depsgraph.h
index 294f61e54bd..b86a58780dc 100644
--- a/source/blender/blenkernel/BKE_depsgraph.h
+++ b/source/blender/blenkernel/BKE_depsgraph.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DEPSGRAPH_API
@@ -104,7 +101,7 @@ void DAG_scene_update_flags(struct Scene *sce, unsigned int lay);
void DAG_object_update_flags(struct Scene *sce, struct Object *ob, unsigned int lay);
/* flushes all recalc flags in objects down the dependency tree */
-void DAG_scene_flush_update(struct Scene *sce, unsigned int lay);
+void DAG_scene_flush_update(struct Scene *sce, unsigned int lay, int time);
/* flushes all recalc flags for this object down the dependency tree */
void DAG_object_flush_update(struct Scene *sce, struct Object *ob, short flag);
diff --git a/source/blender/blenkernel/BKE_displist.h b/source/blender/blenkernel/BKE_displist.h
index 2dc4de32132..d6b438a3010 100644
--- a/source/blender/blenkernel/BKE_displist.h
+++ b/source/blender/blenkernel/BKE_displist.h
@@ -2,15 +2,12 @@
/*
$Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/blender/blenkernel/BKE_effect.h b/source/blender/blenkernel/BKE_effect.h
index 5585735e0b5..92aecfaa6f0 100644
--- a/source/blender/blenkernel/BKE_effect.h
+++ b/source/blender/blenkernel/BKE_effect.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_EFFECT_H
#define BKE_EFFECT_H
diff --git a/source/blender/blenkernel/BKE_endian.h b/source/blender/blenkernel/BKE_endian.h
index 11d39a2ecb6..1757103eaf6 100644
--- a/source/blender/blenkernel/BKE_endian.h
+++ b/source/blender/blenkernel/BKE_endian.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Are we little or big endian? From Harbison&Steele.
* BKE_ENDIANNESS(a) returns 1 if big endian and returns 0 if little endian
*/
diff --git a/source/blender/blenkernel/BKE_exotic.h b/source/blender/blenkernel/BKE_exotic.h
index 2a56f894c42..3814518a9e7 100644
--- a/source/blender/blenkernel/BKE_exotic.h
+++ b/source/blender/blenkernel/BKE_exotic.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* dxf/vrml/stl external file io function prototypes
*/
diff --git a/source/blender/blenkernel/BKE_font.h b/source/blender/blenkernel/BKE_font.h
index 05621a4d9b2..d1f569e3f16 100644
--- a/source/blender/blenkernel/BKE_font.h
+++ b/source/blender/blenkernel/BKE_font.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_VFONT_H
#define BKE_VFONT_H
diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h
index d1005395561..62289d227c7 100644
--- a/source/blender/blenkernel/BKE_global.h
+++ b/source/blender/blenkernel/BKE_global.h
@@ -7,15 +7,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -33,7 +30,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_GLOBAL_H
#define BKE_GLOBAL_H
diff --git a/source/blender/blenkernel/BKE_group.h b/source/blender/blenkernel/BKE_group.h
index f7158daa937..764bdf5d910 100644
--- a/source/blender/blenkernel/BKE_group.h
+++ b/source/blender/blenkernel/BKE_group.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_GROUP_H
#define BKE_GROUP_H
diff --git a/source/blender/blenkernel/BKE_idprop.h b/source/blender/blenkernel/BKE_idprop.h
index 961cca511de..46252b310ae 100644
--- a/source/blender/blenkernel/BKE_idprop.h
+++ b/source/blender/blenkernel/BKE_idprop.h
@@ -1,15 +1,12 @@
/**
* $Id: BKE_idprop.h
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joseph Eagar
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _BKE_IDPROP_H
diff --git a/source/blender/blenkernel/BKE_image.h b/source/blender/blenkernel/BKE_image.h
index a584722031b..8dac282eedf 100644
--- a/source/blender/blenkernel/BKE_image.h
+++ b/source/blender/blenkernel/BKE_image.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_IMAGE_H
#define BKE_IMAGE_H
diff --git a/source/blender/blenkernel/BKE_ipo.h b/source/blender/blenkernel/BKE_ipo.h
index 01fe0903775..922f3201345 100644
--- a/source/blender/blenkernel/BKE_ipo.h
+++ b/source/blender/blenkernel/BKE_ipo.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_IPO_H
#define BKE_IPO_H
diff --git a/source/blender/blenkernel/BKE_key.h b/source/blender/blenkernel/BKE_key.h
index 5325b3a8bc1..a6871aa837f 100644
--- a/source/blender/blenkernel/BKE_key.h
+++ b/source/blender/blenkernel/BKE_key.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_KEY_H
#define BKE_KEY_H
diff --git a/source/blender/blenkernel/BKE_lattice.h b/source/blender/blenkernel/BKE_lattice.h
index bf505fa23d7..5620674e791 100644
--- a/source/blender/blenkernel/BKE_lattice.h
+++ b/source/blender/blenkernel/BKE_lattice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* june-2001 ton
*/
diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h
index 1954cfe1e37..d840401d4fa 100644
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_LIBRARY_TYPES_H
#define BKE_LIBRARY_TYPES_H
diff --git a/source/blender/blenkernel/BKE_main.h b/source/blender/blenkernel/BKE_main.h
index 2cfa1dc5cc4..d1cc7515159 100644
--- a/source/blender/blenkernel/BKE_main.h
+++ b/source/blender/blenkernel/BKE_main.h
@@ -10,15 +10,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -36,7 +33,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_MAIN_H
#define BKE_MAIN_H
@@ -47,7 +44,7 @@ struct Library;
typedef struct Main {
struct Main *next, *prev;
- char name[160];
+ char name[240];
short versionfile, subversionfile;
short minversionfile, minsubversionfile;
diff --git a/source/blender/blenkernel/BKE_material.h b/source/blender/blenkernel/BKE_material.h
index 0c93e4e32a2..efb64fbf0a3 100644
--- a/source/blender/blenkernel/BKE_material.h
+++ b/source/blender/blenkernel/BKE_material.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* General operations, lookup, etc. for materials.
*/
diff --git a/source/blender/blenkernel/BKE_mball.h b/source/blender/blenkernel/BKE_mball.h
index 038331747db..00a53b3f16e 100644
--- a/source/blender/blenkernel/BKE_mball.h
+++ b/source/blender/blenkernel/BKE_mball.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_MBALL_H
#define BKE_MBALL_H
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index 9be633ed6e3..d4ae76e8984 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_MESH_H
#define BKE_MESH_H
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index fba30264fea..a41716ed1ff 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_MODIFIER_H
#define BKE_MODIFIER_H
diff --git a/source/blender/blenkernel/BKE_nla.h b/source/blender/blenkernel/BKE_nla.h
index 560e5d5c33c..230096d7ea7 100644
--- a/source/blender/blenkernel/BKE_nla.h
+++ b/source/blender/blenkernel/BKE_nla.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_NLA_H
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index 903ca7a66aa..a940ac62876 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* General operations, lookup, etc. for blender objects.
*/
@@ -115,7 +112,7 @@ void solve_tracking (struct Object *ob, float targetmat[][4]);
void object_handle_update(struct Object *ob);
float give_timeoffset(struct Object *ob);
-
+int give_obdata_texspace(struct Object *ob, int **texflag, float **loc, float **size, float **rot);
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenkernel/BKE_packedFile.h b/source/blender/blenkernel/BKE_packedFile.h
index 4b362bbb38f..2d5acc51b7b 100644
--- a/source/blender/blenkernel/BKE_packedFile.h
+++ b/source/blender/blenkernel/BKE_packedFile.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_PACKEDFILE_H
#define BKE_PACKEDFILE_H
diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h
index 53960a71470..fbde861891d 100644
--- a/source/blender/blenkernel/BKE_particle.h
+++ b/source/blender/blenkernel/BKE_particle.h
@@ -3,15 +3,12 @@
*
* $Id: BKE_particle.h $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_PARTICLE_H
@@ -41,6 +38,7 @@
struct ParticleSystemModifierData;
struct ParticleSystem;
struct ParticleKey;
+struct ParticleSettings;
struct HairKey;
struct Main;
@@ -113,8 +111,8 @@ typedef struct ParticleSeam{
typedef struct ParticleCacheKey{
float co[3];
float vel[3];
- float col[3];
float rot[4];
+ float col[3];
int steps;
} ParticleCacheKey;
@@ -222,9 +220,6 @@ void psys_render_restore(struct Object *ob, struct ParticleSystem *psys);
int psys_render_simplify_distribution(struct ParticleThreadContext *ctx, int tot);
int psys_render_simplify_params(struct ParticleSystem *psys, struct ChildParticle *cpa, float *params);
-void clear_particles_from_cache(struct Object *ob, struct ParticleSystem *psys, int cfra);
-//void psys_remove_from_particle_list(struct Object *ob, short nbr, struct ParticleSystem *psys);
-
void psys_interpolate_uvs(struct MTFace *tface, int quad, float *uv, float *uvco);
void psys_interpolate_mcol(struct MCol *mcol, int quad, float *uv, struct MCol *mc);
@@ -237,6 +232,10 @@ struct ParticleSettings *psys_new_settings(char *name, struct Main *main);
struct ParticleSettings *psys_copy_settings(struct ParticleSettings *part);
void psys_flush_settings(struct ParticleSettings *part, int event, int hair_recalc);
+struct LinkNode *psys_using_settings(struct ParticleSettings *part, int flush_update);
+void psys_changed_type(struct ParticleSystem *psys);
+void psys_reset(struct ParticleSystem *psys, int mode);
+
void psys_find_parents(struct Object *ob, struct ParticleSystemModifierData *psmd, struct ParticleSystem *psys);
void psys_cache_paths(struct Object *ob, struct ParticleSystem *psys, float cfra, int editupdate);
@@ -251,7 +250,7 @@ int psys_get_particle_state(struct Object *ob, struct ParticleSystem *psys, int
void psys_get_dupli_texture(struct Object *ob, struct ParticleSettings *part, struct ParticleSystemModifierData *psmd, struct ParticleData *pa, struct ChildParticle *cpa, float *uv, float *orco);
void psys_get_dupli_path_transform(struct Object *ob, struct ParticleSystem *psys, struct ParticleSystemModifierData *psmd, struct ParticleData *pa, struct ChildParticle *cpa, struct ParticleCacheKey *cache, float mat[][4], float *scale);
-ParticleThread *psys_threads_create(struct Object *ob, struct ParticleSystem *psys, int totthread);
+ParticleThread *psys_threads_create(struct Object *ob, struct ParticleSystem *psys);
int psys_threads_init_distribution(ParticleThread *threads, struct DerivedMesh *dm, int from);
int psys_threads_init_path(ParticleThread *threads, float cfra, int editupdate);
void psys_threads_free(ParticleThread *threads);
@@ -298,6 +297,11 @@ void do_effectors(int pa_no, struct ParticleData *pa, struct ParticleKey *state,
void psys_calc_dmcache(struct Object *ob, struct DerivedMesh *dm, struct ParticleSystem *psys);
int psys_particle_dm_face_lookup(struct Object *ob, struct DerivedMesh *dm, int index, float *fw, struct LinkNode *node);
+/* psys_reset */
+#define PSYS_RESET_ALL 1
+#define PSYS_RESET_DEPSGRAPH 2
+#define PSYS_RESET_CHILDREN 3
+
/* ParticleEffectorCache->type */
#define PSYS_EC_EFFECTOR 1
#define PSYS_EC_DEFLECT 2
diff --git a/source/blender/blenkernel/BKE_plugin_types.h b/source/blender/blenkernel/BKE_plugin_types.h
index 2b7c6c06832..fe5aafe5874 100644
--- a/source/blender/blenkernel/BKE_plugin_types.h
+++ b/source/blender/blenkernel/BKE_plugin_types.h
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,14 +29,15 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_PLUGIN_TYPES_H
#define BKE_PLUGIN_TYPES_H
struct ImBuf;
-typedef int (*TexDoit)(int, void*, float*, float*, float*);
+typedef int (*TexDoitold)(int stype, void *cast, float *texvec, float *dxt, float *dyt);
+typedef int (*TexDoit)(int stype, void *cast, float *texvec, float *dxt, float *dyt, float *result );
typedef void (*SeqDoit)(void*, float, float, int, int,
struct ImBuf*, struct ImBuf*,
struct ImBuf*, struct ImBuf*);
@@ -63,7 +61,7 @@ typedef struct _PluginInfo {
void (*init)(void);
void (*callback)(int);
- TexDoit tex_doit;
+ void (*tex_doit)(void *);
SeqDoit seq_doit;
void (*instance_init)(void *);
} PluginInfo;
diff --git a/source/blender/blenkernel/BKE_pointcache.h b/source/blender/blenkernel/BKE_pointcache.h
index 12068f7dedf..5bc467465a8 100644
--- a/source/blender/blenkernel/BKE_pointcache.h
+++ b/source/blender/blenkernel/BKE_pointcache.h
@@ -31,24 +31,84 @@
#include "DNA_ID.h"
-/* options for clearing pointcache - used for BKE_ptcache_id_clear
- Before and after are non inclusive (they wont remove the cfra) */
+/* Point cache clearing option, for BKE_ptcache_id_clear, before
+ * and after are non inclusive (they wont remove the cfra) */
#define PTCACHE_CLEAR_ALL 0
#define PTCACHE_CLEAR_FRAME 1
#define PTCACHE_CLEAR_BEFORE 2
#define PTCACHE_CLEAR_AFTER 3
+/* Point cache reset options */
+#define PTCACHE_RESET_DEPSGRAPH 0
+#define PTCACHE_RESET_BAKED 1
+#define PTCACHE_RESET_OUTDATED 2
+
/* Add the blendfile name after blendcache_ */
#define PTCACHE_EXT ".bphys"
#define PTCACHE_PATH "blendcache_"
+/* File open options, for BKE_ptcache_file_open */
+#define PTCACHE_FILE_READ 0
+#define PTCACHE_FILE_WRITE 1
+
+/* PTCacheID types */
+#define PTCACHE_TYPE_SOFTBODY 0
+#define PTCACHE_TYPE_PARTICLES 1
+#define PTCACHE_TYPE_CLOTH 2
+
+/* Structs */
+struct Object;
+struct SoftBody;
+struct ParticleSystem;
+struct ClothModifierData;
+struct PointCache;
+struct ListBase;
+
+typedef struct PTCacheFile {
+ FILE *fp;
+} PTCacheFile;
+
+typedef struct PTCacheID {
+ struct PTCacheID *next, *prev;
+
+ struct Object *ob;
+ void *data;
+ int type;
+ int stack_index;
+
+ struct PointCache *cache;
+} PTCacheID;
+
+/* Creating ID's */
+void BKE_ptcache_id_from_softbody(PTCacheID *pid, struct Object *ob, struct SoftBody *sb);
+void BKE_ptcache_id_from_particles(PTCacheID *pid, struct Object *ob, struct ParticleSystem *psys);
+void BKE_ptcache_id_from_cloth(PTCacheID *pid, struct Object *ob, struct ClothModifierData *clmd);
+
+void BKE_ptcache_ids_from_object(struct ListBase *lb, struct Object *ob);
+
/* Global funcs */
void BKE_ptcache_remove(void);
-/* Object spesific funcs */
-int BKE_ptcache_id_filename(struct ID *id, char *filename, int cfra, int stack_index, short do_path, short do_ext);
-FILE * BKE_ptcache_id_fopen(struct ID *id, char mode, int cfra, int stack_index);
-void BKE_ptcache_id_clear(struct ID *id, char mode, int cfra, int stack_index);
-int BKE_ptcache_id_exist(struct ID *id, int cfra, int stack_index);
+/* ID specific functions */
+void BKE_ptcache_id_clear(PTCacheID *id, int mode, int cfra);
+int BKE_ptcache_id_exist(PTCacheID *id, int cfra);
+int BKE_ptcache_id_reset(PTCacheID *id, int mode);
+void BKE_ptcache_id_time(PTCacheID *pid, float cfra, int *startframe, int *endframe, float *timescale);
+int BKE_ptcache_object_reset(struct Object *ob, int mode);
+
+/* File reading/writing */
+PTCacheFile *BKE_ptcache_file_open(PTCacheID *id, int mode, int cfra);
+void BKE_ptcache_file_close(PTCacheFile *pf);
+int BKE_ptcache_file_read_floats(PTCacheFile *pf, float *f, int tot);
+int BKE_ptcache_file_write_floats(PTCacheFile *pf, float *f, int tot);
+
+/* Continue physics */
+void BKE_ptcache_set_continue_physics(int enable);
+int BKE_ptcache_get_continue_physics(void);
+
+/* Point Cache */
+struct PointCache *BKE_ptcache_add(void);
+void BKE_ptcache_free(struct PointCache *cache);
+struct PointCache *BKE_ptcache_copy(struct PointCache *cache);
#endif
diff --git a/source/blender/blenkernel/BKE_property.h b/source/blender/blenkernel/BKE_property.h
index c8af07e3ee8..f1587790c4a 100644
--- a/source/blender/blenkernel/BKE_property.h
+++ b/source/blender/blenkernel/BKE_property.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_PROPERTY_H
#define BKE_PROPERTY_H
diff --git a/source/blender/blenkernel/BKE_sca.h b/source/blender/blenkernel/BKE_sca.h
index 62ed06665fe..22c4f39148a 100644
--- a/source/blender/blenkernel/BKE_sca.h
+++ b/source/blender/blenkernel/BKE_sca.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_SCA_H
#define BKE_SCA_H
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h
index 66ae5d5e1cd..c50f5498de9 100644
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_SCENE_H
#define BKE_SCENE_H
diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h
index e20b00a00e7..df904d3e08a 100644
--- a/source/blender/blenkernel/BKE_screen.h
+++ b/source/blender/blenkernel/BKE_screen.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_SCREEN_H
#define BKE_SCREEN_H
diff --git a/source/blender/blenkernel/BKE_script.h b/source/blender/blenkernel/BKE_script.h
index 70f3d58fcae..a4c3d946654 100644
--- a/source/blender/blenkernel/BKE_script.h
+++ b/source/blender/blenkernel/BKE_script.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): Willian P. Germano.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_SCRIPT_H
#define BKE_SCRIPT_H
diff --git a/source/blender/blenkernel/BKE_softbody.h b/source/blender/blenkernel/BKE_softbody.h
index 91bc4cc070d..1756734813b 100644
--- a/source/blender/blenkernel/BKE_softbody.h
+++ b/source/blender/blenkernel/BKE_softbody.h
@@ -3,15 +3,12 @@
*
* $Id: BKE_softbody.h
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_SOFTBODY_H
#define BKE_SOFTBODY_H
@@ -55,7 +52,8 @@ extern struct SoftBody *sbNew(void);
/* frees internal data and softbody itself */
extern void sbFree(struct SoftBody *sb);
-extern void softbody_clear_cache(struct Object *ob, float framenr);
+/* frees simulation data to reset simulation */
+extern void sbFreeSimulation(struct SoftBody *sb);
/* do one simul step, reading and writing vertex locs from given array */
extern void sbObjectStep(struct Object *ob, float framnr, float (*vertexCos)[3], int numVerts);
@@ -67,6 +65,8 @@ extern void sbObjectToSoftbody(struct Object *ob);
/* pass NULL to unlink again */
extern void sbSetInterruptCallBack(int (*f)(void));
+/* writing to cache for bake editing */
+extern void sbWriteCache(struct Object *ob, int framenr);
#endif
diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h
index 0a747847b11..f3bed467c3a 100644
--- a/source/blender/blenkernel/BKE_sound.h
+++ b/source/blender/blenkernel/BKE_sound.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_SOUND_H
#define BKE_SOUND_H
diff --git a/source/blender/blenkernel/BKE_subsurf.h b/source/blender/blenkernel/BKE_subsurf.h
index 459519913c5..c3c6b8d9edd 100644
--- a/source/blender/blenkernel/BKE_subsurf.h
+++ b/source/blender/blenkernel/BKE_subsurf.h
@@ -1,14 +1,11 @@
/* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_SUBSURF_H
#define BKE_SUBSURF_H
diff --git a/source/blender/blenkernel/BKE_text.h b/source/blender/blenkernel/BKE_text.h
index c4a2ffe369b..6f891ab4887 100644
--- a/source/blender/blenkernel/BKE_text.h
+++ b/source/blender/blenkernel/BKE_text.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_TEXT_H
#define BKE_TEXT_H
diff --git a/source/blender/blenkernel/BKE_texture.h b/source/blender/blenkernel/BKE_texture.h
index 902423482b1..78a8f60caeb 100644
--- a/source/blender/blenkernel/BKE_texture.h
+++ b/source/blender/blenkernel/BKE_texture.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_TEXTURE_H
#define BKE_TEXTURE_H
diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h
index 509b8dc5922..a96a3e10f40 100644
--- a/source/blender/blenkernel/BKE_utildefines.h
+++ b/source/blender/blenkernel/BKE_utildefines.h
@@ -2,15 +2,12 @@
$Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_UTILDEFINES_H
diff --git a/source/blender/blenkernel/BKE_verse.h b/source/blender/blenkernel/BKE_verse.h
index aba42302364..e67696dc62a 100644
--- a/source/blender/blenkernel/BKE_verse.h
+++ b/source/blender/blenkernel/BKE_verse.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* #define WITH_VERSE */
diff --git a/source/blender/blenkernel/BKE_world.h b/source/blender/blenkernel/BKE_world.h
index b51eaff420c..b8d89364e67 100644
--- a/source/blender/blenkernel/BKE_world.h
+++ b/source/blender/blenkernel/BKE_world.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_WORLD_H
#define BKE_WORLD_H
diff --git a/source/blender/blenkernel/BKE_writeavi.h b/source/blender/blenkernel/BKE_writeavi.h
index 6faa5f44878..83b9b57b3bc 100644
--- a/source/blender/blenkernel/BKE_writeavi.h
+++ b/source/blender/blenkernel/BKE_writeavi.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_WRITEAVI_H
diff --git a/source/blender/blenkernel/BKE_writeffmpeg.h b/source/blender/blenkernel/BKE_writeffmpeg.h
index 13084e925e0..844f25d51dc 100644
--- a/source/blender/blenkernel/BKE_writeffmpeg.h
+++ b/source/blender/blenkernel/BKE_writeffmpeg.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_WRITEFFMPEG_H
@@ -45,6 +42,7 @@ extern "C" {
#define FFMPEG_DV 5
#define FFMPEG_H264 6
#define FFMPEG_XVID 7
+#define FFMPEG_FLV 8
#define FFMPEG_CODEC_MPEG1 0
#define FFMPEG_CODEC_MPEG2 1
@@ -53,6 +51,7 @@ extern "C" {
#define FFMPEG_CODEC_DV 4
#define FFMPEG_CODEC_H264 5
#define FFMPEG_CODEC_XVID 6
+#define FFMPEG_CODEC_FLV1 7
#define FFMPEG_PRESET_NONE 0
#define FFMPEG_PRESET_DVD 1
diff --git a/source/blender/blenkernel/BKE_writeframeserver.h b/source/blender/blenkernel/BKE_writeframeserver.h
index d8414e51f43..a6ece63bc56 100644
--- a/source/blender/blenkernel/BKE_writeframeserver.h
+++ b/source/blender/blenkernel/BKE_writeframeserver.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_WRITEFRAMESERVER_H
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index ea6bc2179fe..9088b410e27 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.c)
diff --git a/source/blender/blenkernel/Makefile b/source/blender/blenkernel/Makefile
index 239941ec59b..a5ee729b7e3 100644
--- a/source/blender/blenkernel/Makefile
+++ b/source/blender/blenkernel/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/blenkernel/bad_level_call_stubs/CMakeLists.txt b/source/blender/blenkernel/bad_level_call_stubs/CMakeLists.txt
index 67463f901c6..7574f13c92e 100644
--- a/source/blender/blenkernel/bad_level_call_stubs/CMakeLists.txt
+++ b/source/blender/blenkernel/bad_level_call_stubs/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC stubs.c)
diff --git a/source/blender/blenkernel/bad_level_call_stubs/Makefile b/source/blender/blenkernel/bad_level_call_stubs/Makefile
index 1d4db1037ea..5268bfd8a48 100644
--- a/source/blender/blenkernel/bad_level_call_stubs/Makefile
+++ b/source/blender/blenkernel/bad_level_call_stubs/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/blenkernel/bad_level_call_stubs/stubs.c b/source/blender/blenkernel/bad_level_call_stubs/stubs.c
index d0d6a892a81..efe815a672d 100644
--- a/source/blender/blenkernel/bad_level_call_stubs/stubs.c
+++ b/source/blender/blenkernel/bad_level_call_stubs/stubs.c
@@ -2,15 +2,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* BKE_bad_level_calls function stubs
*/
@@ -370,3 +367,6 @@ void PE_recalc_world_cos(struct Object *ob, struct ParticleSystem *psys) {}
/* text.c */
void txt_copy_clipboard (struct Text *text){}
+
+char stipple_quarttone[1];
+
diff --git a/source/blender/blenkernel/depsgraph_private.h b/source/blender/blenkernel/depsgraph_private.h
index 15c06b8ae79..78717393baf 100644
--- a/source/blender/blenkernel/depsgraph_private.h
+++ b/source/blender/blenkernel/depsgraph_private.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DEPSGRAPH_PRIVATE
#define DEPSGRAPH_PRIVATE
@@ -54,6 +51,7 @@ typedef struct DagAdjList
short type;
int count; // number of identical arcs
unsigned int lay; // for flushing redraw/rebuild events
+ char *name;
struct DagAdjList *next;
} DagAdjList;
@@ -117,7 +115,7 @@ DagNode * dag_find_node (DagForest *forest,void * fob);
DagNode * dag_add_node (DagForest *forest,void * fob);
DagNode * dag_get_node (DagForest *forest,void * fob);
DagNode * dag_get_sub_node (DagForest *forest,void * fob);
-void dag_add_relation(DagForest *forest, DagNode *fob1, DagNode *fob2, short rel);
+void dag_add_relation(DagForest *forest, DagNode *fob1, DagNode *fob2, short rel, char *name);
void graph_bfs(void);
diff --git a/source/blender/blenkernel/intern/BME_conversions.c b/source/blender/blenkernel/intern/BME_conversions.c
index e34aba2d5d7..369c19b16c8 100644
--- a/source/blender/blenkernel/intern/BME_conversions.c
+++ b/source/blender/blenkernel/intern/BME_conversions.c
@@ -5,14 +5,12 @@
*
* $Id: BME_eulers.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
+ * of the License, or (at your option) any later version.
* about this.
*
* This program is distributed in the hope that it will be useful,
@@ -31,7 +29,7 @@
*
* Contributor(s): Geoffrey Bantle, Levi Schooley.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "MEM_guardedalloc.h"
diff --git a/source/blender/blenkernel/intern/BME_eulers.c b/source/blender/blenkernel/intern/BME_eulers.c
index 7de0d8b49cf..3403f5829fe 100644
--- a/source/blender/blenkernel/intern/BME_eulers.c
+++ b/source/blender/blenkernel/intern/BME_eulers.c
@@ -5,14 +5,12 @@
*
* $Id: BME_eulers.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
+ * of the License, or (at your option) any later version.
* about this.
*
* This program is distributed in the hope that it will be useful,
@@ -31,7 +29,7 @@
*
* Contributor(s): Geoffrey Bantle.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "MEM_guardedalloc.h"
diff --git a/source/blender/blenkernel/intern/BME_mesh.c b/source/blender/blenkernel/intern/BME_mesh.c
index b6049f8c0a7..d9d2354ef36 100644
--- a/source/blender/blenkernel/intern/BME_mesh.c
+++ b/source/blender/blenkernel/intern/BME_mesh.c
@@ -5,14 +5,12 @@
*
* $Id: BME_eulers.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
+ * of the License, or (at your option) any later version.
* about this.
*
* This program is distributed in the hope that it will be useful,
@@ -31,7 +29,7 @@
*
* Contributor(s): Geoffrey Bantle.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "MEM_guardedalloc.h"
diff --git a/source/blender/blenkernel/intern/BME_structure.c b/source/blender/blenkernel/intern/BME_structure.c
index 78afb502572..d283e1df5ca 100644
--- a/source/blender/blenkernel/intern/BME_structure.c
+++ b/source/blender/blenkernel/intern/BME_structure.c
@@ -5,14 +5,12 @@
*
* $Id: BME_structure.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
+ * of the License, or (at your option) any later version.
* about this.
*
* This program is distributed in the hope that it will be useful,
@@ -31,7 +29,7 @@
*
* Contributor(s): Geoffrey Bantle.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <limits.h>
diff --git a/source/blender/blenkernel/intern/BME_tools.c b/source/blender/blenkernel/intern/BME_tools.c
index 25de4445693..90fa9793644 100644
--- a/source/blender/blenkernel/intern/BME_tools.c
+++ b/source/blender/blenkernel/intern/BME_tools.c
@@ -5,15 +5,12 @@
*
* $Id: BME_eulers.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): Geoffrey Bantle and Levi Schooley.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index c263b4aae8c..fa3e7994ee5 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -636,7 +633,6 @@ static void emDM_foreachMappedFaceCenter(DerivedMesh *dm, void (*func)(void *use
}
static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors)
{
- GLubyte act_face_stipple[32*32/8] = DM_FACE_STIPPLE;
EditMeshDerivedMesh *emdm= (EditMeshDerivedMesh*) dm;
EditFace *efa;
int i, draw;
@@ -653,7 +649,7 @@ static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
if(draw) {
if (draw==2) { /* enabled with stipple */
glEnable(GL_POLYGON_STIPPLE);
- glPolygonStipple(act_face_stipple);
+ glPolygonStipple(stipple_quarttone);
}
glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
@@ -690,7 +686,7 @@ static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
if(draw) {
if (draw==2) { /* enabled with stipple */
glEnable(GL_POLYGON_STIPPLE);
- glPolygonStipple(act_face_stipple);
+ glPolygonStipple(stipple_quarttone);
}
glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
@@ -734,6 +730,9 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm,
EditFace *efa;
int i;
+ /* always use smooth shading even for flat faces, else vertex colors wont interpolate */
+ glShadeModel(GL_SMOOTH);
+
if (vertexCos) {
EditVert *eve;
@@ -755,11 +754,16 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm,
flag= 1;
if(flag != 0) { /* flag 0 == the face is hidden or invisible */
- if (flag==1 && mcol)
- cp= (unsigned char*)mcol;
-
- glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
-
+
+ /* we always want smooth here since otherwise vertex colors dont interpolate */
+ if (mcol) {
+ if (flag==1) {
+ cp= (unsigned char*)mcol;
+ }
+ } else {
+ glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
+ }
+
glBegin(efa->v4?GL_QUADS:GL_TRIANGLES);
if (!drawSmooth) {
glNormal3fv(emdm->faceNos[i]);
@@ -823,10 +827,14 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm,
flag= 1;
if(flag != 0) { /* flag 0 == the face is hidden or invisible */
- if (flag==1 && mcol)
- cp= (unsigned char*)mcol;
-
- glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
+ /* we always want smooth here since otherwise vertex colors dont interpolate */
+ if (mcol) {
+ if (flag==1) {
+ cp= (unsigned char*)mcol;
+ }
+ } else {
+ glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
+ }
glBegin(efa->v4?GL_QUADS:GL_TRIANGLES);
if (!drawSmooth) {
@@ -2001,8 +2009,7 @@ static void mesh_calc_modifiers(Object *ob, float (*inputVertexCos)[3],
if((md->mode & required_mode) != required_mode) continue;
if(mti->type == eModifierTypeType_OnlyDeform && !useDeform) continue;
if((mti->flags & eModifierTypeFlag_RequiresOriginalData) && dm) {
- modifier_setError(md, "Internal error, modifier requires "
- "original data (bad stack position).");
+ modifier_setError(md, "Modifier requires original data, bad stack position.");
continue;
}
if(mti->isDisabled && mti->isDisabled(md)) continue;
@@ -2183,8 +2190,7 @@ static int editmesh_modifier_is_enabled(ModifierData *md, DerivedMesh *dm)
if((md->mode & required_mode) != required_mode) return 0;
if((mti->flags & eModifierTypeFlag_RequiresOriginalData) && dm) {
- modifier_setError(md, "Internal error, modifier requires"
- "original data (bad stack position).");
+ modifier_setError(md, "Modifier requires original data, bad stack position.");
return 0;
}
if(mti->isDisabled && mti->isDisabled(md)) return 0;
@@ -2623,7 +2629,8 @@ void multires_render_final(Object *ob, Mesh *me, DerivedMesh **dm, float *vert_c
(*dm)->release(*dm);
for(i=0; i<me->totvert; ++i)
me->mvert[i]= vertdup[i];
-
+ /* Free vertdup after use*/
+ MEM_freeN(vertdup);
/* Go to the render level */
me->mr->newlvl= me->mr->renderlvl;
multires_set_level(ob, me, 1);
@@ -3302,9 +3309,9 @@ void loadFluidsimMesh(Object *srcob, int useRenderParams)
srcob->data = srcob->fluidsimSettings->orgMesh;
return;
} else if(displaymode==2) {
- strcat(targetDir,"fluidsurface_preview_#");
+ strcat(targetDir,"fluidsurface_preview_####");
} else { // 3
- strcat(targetDir,"fluidsurface_final_#");
+ strcat(targetDir,"fluidsurface_final_####");
}
BLI_convertstringcode(targetDir, G.sce, curFrame); // fixed #frame-no
strcpy(targetFile,targetDir);
diff --git a/source/blender/blenkernel/intern/Makefile b/source/blender/blenkernel/intern/Makefile
index 488d8801e41..74c6c551a83 100644
--- a/source/blender/blenkernel/intern/Makefile
+++ b/source/blender/blenkernel/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index 21a15fd5a4a..76ee7c59750 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Full recode, Ton Roosendaal, Crete 2005
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 764b8aee032..0d91f106ed7 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 24819f44ac1..eca10e5b079 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -1,7 +1,7 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -22,7 +22,7 @@
*
* Contributor(s): Full recode, Ton Roosendaal, Crete 2005
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <ctype.h>
@@ -384,59 +384,88 @@ void bone_autoside_name (char *name, int strip_number, short axis, float head, f
/* z-axis - vertical (top/bottom) */
if (IS_EQ(head, 0)) {
if (tail < 0)
- strcpy(extension, ".Bot");
+ strcpy(extension, "Bot");
else if (tail > 0)
- strcpy(extension, ".Top");
+ strcpy(extension, "Top");
}
else {
if (head < 0)
- strcpy(extension, ".Bot");
+ strcpy(extension, "Bot");
else
- strcpy(extension, ".Top");
+ strcpy(extension, "Top");
}
}
else if (axis == 1) {
/* y-axis - depth (front/back) */
if (IS_EQ(head, 0)) {
if (tail < 0)
- strcpy(extension, ".Fr");
+ strcpy(extension, "Fr");
else if (tail > 0)
- strcpy(extension, ".Bk");
+ strcpy(extension, "Bk");
}
else {
if (head < 0)
- strcpy(extension, ".Fr");
+ strcpy(extension, "Fr");
else
- strcpy(extension, ".Bk");
+ strcpy(extension, "Bk");
}
}
else {
/* x-axis - horizontal (left/right) */
if (IS_EQ(head, 0)) {
if (tail < 0)
- strcpy(extension, ".R");
+ strcpy(extension, "R");
else if (tail > 0)
- strcpy(extension, ".L");
+ strcpy(extension, "L");
}
else {
if (head < 0)
- strcpy(extension, ".R");
+ strcpy(extension, "R");
else if (head > 0)
- strcpy(extension, ".L");
+ strcpy(extension, "L");
}
}
/* Simple name truncation
* - truncate if there is an extension and it wouldn't be able to fit
- * - otherwise, just append to end (TODO: this should really check if there was already a tag there, and remove it)
+ * - otherwise, just append to end
*/
if (extension[0]) {
- if ((32 - len) < strlen(extension)) {
+ int change = 1;
+
+ while (change) { /* remove extensions */
+ change = 0;
+ if (len > 2 && basename[len-2]=='.') {
+ if (basename[len-1]=='L' || basename[len-1] == 'R' ) { /* L R */
+ basename[len-2] = '\0';
+ len-=2;
+ change= 1;
+ }
+ } else if (len > 3 && basename[len-3]=='.') {
+ if ( (basename[len-2]=='F' && basename[len-1] == 'r') || /* Fr */
+ (basename[len-2]=='B' && basename[len-1] == 'k') /* Bk */
+ ) {
+ basename[len-3] = '\0';
+ len-=3;
+ change= 1;
+ }
+ } else if (len > 4 && basename[len-4]=='.') {
+ if ( (basename[len-3]=='T' && basename[len-2]=='o' && basename[len-1] == 'p') || /* Top */
+ (basename[len-3]=='B' && basename[len-2]=='o' && basename[len-1] == 't') /* Bot */
+ ) {
+ basename[len-4] = '\0';
+ len-=4;
+ change= 1;
+ }
+ }
+ }
+
+ if ((32 - len) < strlen(extension) + 1) { /* add 1 for the '.' */
strncpy(name, basename, len-strlen(extension));
}
}
- sprintf(name, "%s%s", basename, extension);
+ sprintf(name, "%s.%s", basename, extension);
}
/* ************* B-Bone support ******************* */
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 534ddc555e9..47095afdf22 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef WIN32
@@ -415,7 +412,7 @@ static void setup_app_data(BlendFileData *bfd, char *filename)
if (G.sce != filename) /* these are the same at times, should never copy to the same location */
strcpy(G.sce, filename);
- strcpy(G.main->name, filename); /* is guaranteed current file */
+ BLI_strncpy(G.main->name, filename, FILE_MAX); /* is guaranteed current file */
MEM_freeN(bfd);
}
diff --git a/source/blender/blenkernel/intern/bmesh_private.h b/source/blender/blenkernel/intern/bmesh_private.h
index 4c6460b3378..ad90398bf66 100644
--- a/source/blender/blenkernel/intern/bmesh_private.h
+++ b/source/blender/blenkernel/intern/bmesh_private.h
@@ -5,7 +5,7 @@
*
* $Id: BKE_bmesh.h,v 1.00 2007/01/17 17:42:01 Briggs Exp $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,7 +31,7 @@
*
* Contributor(s): Geoffrey Bantle.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BMESH_PRIVATE
diff --git a/source/blender/blenkernel/intern/bmfont.c b/source/blender/blenkernel/intern/bmfont.c
index 6ea08b5cfbb..0af54b86ed6 100644
--- a/source/blender/blenkernel/intern/bmfont.c
+++ b/source/blender/blenkernel/intern/bmfont.c
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index ca2f7b114d5..6ea470a2263 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
@@ -73,7 +70,8 @@ Brush *add_brush(char *name)
brush->clone.alpha= 0.5;
/* enable fake user by default */
- brush_toggle_fake_user(brush);
+ brush->id.flag |= LIB_FAKEUSER;
+ brush_toggled_fake_user(brush);
return brush;
}
@@ -95,8 +93,10 @@ Brush *copy_brush(Brush *brush)
}
/* enable fake user by default */
- if (!(brushn->id.flag & LIB_FAKEUSER))
- brush_toggle_fake_user(brushn);
+ if (!(brushn->id.flag & LIB_FAKEUSER)) {
+ brushn->id.flag |= LIB_FAKEUSER;
+ brush_toggled_fake_user(brushn);
+ }
return brushn;
}
@@ -148,8 +148,10 @@ void make_local_brush(Brush *brush)
new_id(0, (ID *)brush, 0);
/* enable fake user by default */
- if (!(brush->id.flag & LIB_FAKEUSER))
- brush_toggle_fake_user(brush);
+ if (!(brush->id.flag & LIB_FAKEUSER)) {
+ brush->id.flag |= LIB_FAKEUSER;
+ brush_toggled_fake_user(brush);
+ }
}
else if(local && lib) {
brushn= copy_brush(brush);
@@ -203,16 +205,14 @@ int brush_delete(Brush **current_brush)
return 0;
}
-void brush_toggle_fake_user(Brush *brush)
+void brush_toggled_fake_user(Brush *brush)
{
ID *id= (ID*)brush;
if(id) {
if(id->flag & LIB_FAKEUSER) {
- id->flag -= LIB_FAKEUSER;
- id->us--;
- } else {
- id->flag |= LIB_FAKEUSER;
id_us_plus(id);
+ } else {
+ id->us--;
}
}
}
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index a58fdab8c91..09a51bb37a4 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -1,15 +1,12 @@
/* cloth.c
*
*
-* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version. The Blender
-* Foundation also sells licenses for use in proprietary software under
-* the Blender License. See http://www.blender.org/BL/ for information
-* about this.
+* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Daniel Genrich
*
-* ***** END GPL/BL DUAL LICENSE BLOCK *****
+* ***** END GPL LICENSE BLOCK *****
*/
#include "MEM_guardedalloc.h"
@@ -34,6 +31,7 @@
#include "DNA_cloth_types.h"
#include "DNA_mesh_types.h"
+#include "DNA_object_force.h"
#include "DNA_scene_types.h"
#include "BKE_deform.h"
@@ -92,7 +90,7 @@ static CM_SOLVER_DEF solvers [] =
*/
static void cloth_to_object (Object *ob, ClothModifierData *clmd, DerivedMesh *dm);
static void cloth_from_mesh ( Object *ob, ClothModifierData *clmd, DerivedMesh *dm );
-static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *dm, float framenr);
+static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *dm, float framenr, int first);
int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm );
static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm );
@@ -121,20 +119,14 @@ void cloth_init ( ClothModifierData *clmd )
clmd->sim_parms->Cvi = 1.0;
clmd->sim_parms->mass = 0.3f;
clmd->sim_parms->stepsPerFrame = 5;
- clmd->sim_parms->sim_time = 1.0;
- clmd->sim_parms->flags = CLOTH_SIMSETTINGS_FLAG_AUTOPROTECT;
+ clmd->sim_parms->flags = 0;
clmd->sim_parms->solver_type = 0;
clmd->sim_parms->preroll = 0;
clmd->sim_parms->maxspringlen = 10;
- clmd->sim_parms->firstframe = 1;
- clmd->sim_parms->lastframe = 250;
clmd->sim_parms->vgroup_mass = 0;
- clmd->sim_parms->lastcachedframe = 0;
- clmd->sim_parms->editedframe = 0;
- clmd->sim_parms->autoprotect = 25;
- clmd->sim_parms->firstcachedframe = -1.0;
clmd->sim_parms->avg_spring_len = 0.0;
clmd->sim_parms->presets = 2; /* cotton as start setting */
+ clmd->sim_parms->timescale = 1.0f; /* speed factor, describes how fast cloth moves */
clmd->coll_parms->self_friction = 5.0;
clmd->coll_parms->friction = 5.0;
@@ -245,395 +237,261 @@ int modifiers_indexInObject(Object *ob, ModifierData *md_seek);
int cloth_read_cache(Object *ob, ClothModifierData *clmd, float framenr)
{
- FILE *fp = NULL;
- int stack_index = -1;
- unsigned int a, ret = 1;
+ PTCacheID pid;
+ PTCacheFile *pf;
Cloth *cloth = clmd->clothObject;
+ unsigned int a, ret = 1;
if(!cloth)
return 0;
- stack_index = modifiers_indexInObject(ob, (ModifierData *)clmd);
-
- fp = BKE_ptcache_id_fopen((ID *)ob, 'r', framenr, stack_index);
- if(!fp)
- ret = 0;
- else {
- for(a = 0; a < cloth->numverts; a++)
- {
- if(fread(&cloth->verts[a].x, sizeof(float), 3, fp) != 3)
- {
+ BKE_ptcache_id_from_cloth(&pid, ob, clmd);
+ pf = BKE_ptcache_file_open(&pid, PTCACHE_FILE_READ, framenr);
+ if(pf) {
+ for(a = 0; a < cloth->numverts; a++) {
+ if(!BKE_ptcache_file_read_floats(pf, cloth->verts[a].x, 3)) {
ret = 0;
break;
}
- if(fread(&cloth->verts[a].xconst, sizeof(float), 3, fp) != 3)
- {
+ if(!BKE_ptcache_file_read_floats(pf, cloth->verts[a].xconst, 3)) {
ret = 0;
break;
}
- if(fread(&cloth->verts[a].v, sizeof(float), 3, fp) != 3)
- {
+ if(!BKE_ptcache_file_read_floats(pf, cloth->verts[a].v, 3)) {
ret = 0;
break;
}
}
- fclose(fp);
-
- if(clmd->sim_parms->lastcachedframe < framenr)
- {
- if(G.rt > 0)
- printf("cloth_read_cache problem: lnex - f#: %f, lastCF: %d\n", framenr, clmd->sim_parms->lastcachedframe);
- }
-
- if(G.rt > 0)
- printf("cloth_read_cache: %f successfully \n", framenr);
+ BKE_ptcache_file_close(pf);
}
-
- if(G.rt > 0)
- printf("cloth_read_cache: %f\n", framenr);
+ else
+ ret = 0;
return ret;
}
void cloth_clear_cache(Object *ob, ClothModifierData *clmd, float framenr)
{
- int stack_index = -1;
+ PTCacheID pid;
+ BKE_ptcache_id_from_cloth(&pid, ob, clmd);
+
// don't do anything as long as we're in editmode!
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_EDITMODE)
- {
- /* delete cache free request */
- clmd->sim_parms->flags &= ~CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE;
-
+ if(pid.cache->flag & PTCACHE_BAKE_EDIT_ACTIVE)
return;
- }
-
- /* clear cache if specific frame cleaning requested or cache is not protected */
- if((!(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT)) || (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE))
- {
- stack_index = modifiers_indexInObject(ob, (ModifierData *)clmd);
-
- BKE_ptcache_id_clear((ID *)ob, PTCACHE_CLEAR_AFTER, framenr, stack_index);
-
- /* update last cached frame # */
- clmd->sim_parms->lastcachedframe = framenr;
-
- /* update first cached frame # */
- if((framenr < clmd->sim_parms->firstcachedframe) && (clmd->sim_parms->firstcachedframe >=0.0))
- clmd->sim_parms->firstcachedframe = -1.0;
-
- if(G.rt > 0)
- printf("cloth_clear_cache: %f\n", framenr);
- }
-
- /* delete cache free request */
- clmd->sim_parms->flags &= ~CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE;
-
+ BKE_ptcache_id_clear(&pid, PTCACHE_CLEAR_AFTER, framenr);
}
+
void cloth_write_cache(Object *ob, ClothModifierData *clmd, float framenr)
{
- FILE *fp = NULL;
- int stack_index = -1;
- unsigned int a;
Cloth *cloth = clmd->clothObject;
-
- if(G.rt > 0)
- printf("cloth_write_cache: %f\n", framenr);
+ PTCacheID pid;
+ PTCacheFile *pf;
+ unsigned int a;
if(!cloth)
- {
- if(G.rt > 0)
- printf("cloth_write_cache: no cloth\n");
return;
- }
-
- stack_index = modifiers_indexInObject(ob, (ModifierData *)clmd);
- fp = BKE_ptcache_id_fopen((ID *)ob, 'w', framenr, stack_index);
- if(!fp)
- {
- if(G.rt > 0)
- printf("cloth_write_cache: no fp\n");
+ BKE_ptcache_id_from_cloth(&pid, ob, clmd);
+ pf = BKE_ptcache_file_open(&pid, PTCACHE_FILE_WRITE, framenr);
+ if(!pf)
return;
- }
- for(a = 0; a < cloth->numverts; a++)
- {
- fwrite(&cloth->verts[a].x, sizeof(float),3,fp);
- fwrite(&cloth->verts[a].xconst, sizeof(float),3,fp);
- fwrite(&cloth->verts[a].v, sizeof(float),3,fp);
+ for(a = 0; a < cloth->numverts; a++) {
+ BKE_ptcache_file_write_floats(pf, cloth->verts[a].x, 3);
+ BKE_ptcache_file_write_floats(pf, cloth->verts[a].xconst, 3);
+ BKE_ptcache_file_write_floats(pf, cloth->verts[a].v, 3);
}
- /* update last cached frame # */
- clmd->sim_parms->lastcachedframe = MAX2(clmd->sim_parms->lastcachedframe, framenr);
+ BKE_ptcache_file_close(pf);
+}
+
+static int do_init_cloth(Object *ob, ClothModifierData *clmd, DerivedMesh *result, int framenr)
+{
+ PointCache *cache;
+
+ cache= clmd->point_cache;
+
+ /* initialize simulation data if it didn't exist already */
+ if(clmd->clothObject == NULL) {
+ if(!cloth_from_object(ob, clmd, result, framenr, 1)) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
+ return 0;
+ }
- /* update first cached frame # */
- if((clmd->sim_parms->firstcachedframe < 0.0) || ((framenr < clmd->sim_parms->firstcachedframe) && (clmd->sim_parms->firstcachedframe > 0.0)))
- clmd->sim_parms->firstcachedframe = framenr;
+ if(clmd->clothObject == NULL) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
+ return 0;
+ }
- if(G.rt > 0)
- printf("lcf: %d, framenr: %f\n", clmd->sim_parms->lastcachedframe, framenr);
+ implicit_set_positions(clmd);
+ }
- fclose(fp);
+ return 1;
}
-/************************************************
- * clothModifier_do - main simulation function
-************************************************/
-DerivedMesh *clothModifier_do(ClothModifierData *clmd,Object *ob, DerivedMesh *dm, int useRenderParams, int isFinalCalc)
-
+static int do_step_cloth(Object *ob, ClothModifierData *clmd, DerivedMesh *result, int framenr)
{
- unsigned int i;
- Cloth *cloth = clmd->clothObject;
- float framenr = G.scene->r.cfra;
- float current_time = bsystem_time ( ob, ( float ) G.scene->r.cfra, 0.0 );
- ListBase *effectors = NULL;
ClothVertex *verts = NULL;
- float deltaTime = current_time - clmd->sim_parms->sim_time;
- unsigned int numverts = -1;
- unsigned int numedges = -1;
- unsigned int numfaces = -1;
- MVert *mvert = NULL;
- MEdge *medge = NULL;
- MFace *mface = NULL;
- DerivedMesh *result = NULL;
- int ret = 0;
-
- if(G.rt > 0)
- printf("clothModifier_do start\n");
-
- /* we're getting called two times during file load,
- resulting in a not valid G.relbase on the first time (cache makes problems)
- --> just return back */
- if((clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_LOADED) && (!G.relbase_valid))
- {
- clmd->sim_parms->flags &= ~CLOTH_SIMSETTINGS_FLAG_LOADED;
- return dm;
+ Cloth *cloth;
+ ListBase *effectors = NULL;
+ MVert *mvert;
+ int i, ret = 0;
+
+ /* simulate 1 frame forward */
+ cloth = clmd->clothObject;
+ verts = cloth->verts;
+ mvert = result->getVertArray(result);
+
+ /* force any pinned verts to their constrained location. */
+ for(i = 0; i < clmd->clothObject->numverts; i++, verts++) {
+ /* save the previous position. */
+ VECCOPY(verts->xold, verts->xconst);
+ VECCOPY(verts->txold, verts->x);
+
+ /* Get the current position. */
+ VECCOPY(verts->xconst, mvert[i].co);
+ Mat4MulVecfl(ob->obmat, verts->xconst);
}
- result = CDDM_copy(dm);
+ tstart();
+
+ /* call the solver. */
+ if(solvers [clmd->sim_parms->solver_type].solver)
+ ret = solvers[clmd->sim_parms->solver_type].solver(ob, framenr, clmd, effectors);
+
+ tend();
+
+ /* printf ( "Cloth simulation time: %f\n", ( float ) tval() ); */
- if(!result)
- {
+ return ret;
+}
+
+/************************************************
+ * clothModifier_do - main simulation function
+************************************************/
+DerivedMesh *clothModifier_do(ClothModifierData *clmd, Object *ob, DerivedMesh *dm, int useRenderParams, int isFinalCalc)
+{
+ DerivedMesh *result;
+ PointCache *cache;
+ PTCacheID pid;
+ float timescale;
+ int framedelta, framenr, startframe, endframe;
+
+ framenr= (int)G.scene->r.cfra;
+ cache= clmd->point_cache;
+ result = CDDM_copy(dm);
+
+ BKE_ptcache_id_from_cloth(&pid, ob, clmd);
+ BKE_ptcache_id_time(&pid, framenr, &startframe, &endframe, &timescale);
+ clmd->sim_parms->timescale= timescale;
+
+ if(!result) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
return dm;
}
- numverts = result->getNumVerts(result);
- numedges = result->getNumEdges(result);
- numfaces = result->getNumFaces(result);
- mvert = dm->getVertArray(result);
- medge = dm->getEdgeArray(result);
- mface = dm->getFaceArray(result);
-
- /* check if cache is active / if file is already saved */
- /*
- if ((!G.relbase_valid) && ( deltaTime != 1.0f ))
- {
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
-}
- */
-
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_RESET)
- {
- cloth_free_modifier (ob, clmd);
- if(G.rt > 0)
- printf("clothModifier_do CLOTH_SIMSETTINGS_FLAG_RESET\n");
-
- // prevent rebuilding of cloth each time you move backward
- if(deltaTime < 0.0)
+ /* verify we still have the same number of vertices, if not do nothing.
+ * note that this should only happen if the number of vertices changes
+ * during an animation due to a preceding modifier, this should not
+ * happen because of object changes! */
+ if(clmd->clothObject) {
+ if(result->getNumVerts(result) != clmd->clothObject->numverts) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
return result;
+ }
}
// unused in the moment, calculated seperately in implicit.c
- clmd->sim_parms->dt = 1.0f / clmd->sim_parms->stepsPerFrame;
-
- if ( ( clmd->clothObject == NULL ) || (clmd->clothObject && (numverts != clmd->clothObject->numverts )) )
- {
- /* only force free the cache if we have a different number of verts */
- if(clmd->clothObject && (numverts != clmd->clothObject->numverts ))
- {
- if(G.rt > 0)
- printf("Force Freeing: numverts != clmd->clothObject->numverts\n");
-
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE;
- cloth_free_modifier ( ob, clmd );
- }
-
- cloth_clear_cache(ob, clmd, 0);
-
- if ( !cloth_from_object ( ob, clmd, result, framenr ) )
- return result;
-
- if ( clmd->clothObject == NULL )
+ clmd->sim_parms->dt = clmd->sim_parms->timescale / clmd->sim_parms->stepsPerFrame;
+
+ /* handle continuous simulation with the play button */
+ if(BKE_ptcache_get_continue_physics()) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
+
+ /* do simulation */
+ if(!do_init_cloth(ob, clmd, result, framenr))
return result;
-
- cloth = clmd->clothObject;
-
- if(!cloth_read_cache(ob, clmd, framenr))
- {
- /* save first frame in case we have a reseted object
- and we move one frame forward.
- In that case we would only start with the SECOND frame
- if we don't save the current state before
- TODO PROBLEM: IMHO we can't track external movement from the
- first frame in this case! */
- /*
- if ( deltaTime == 1.0f )
- cloth_write_cache(ob, clmd, framenr-1.0);
- */
- if(G.rt > 0)
- printf("cloth_from_object NO cloth_read_cache cloth_write_cache\n");
- }
- else
- {
- if(G.rt > 0)
- printf("cloth_from_object cloth_read_cache\n");
-
- implicit_set_positions(clmd);
- }
-
- clmd->sim_parms->sim_time = current_time;
- }
-
- // only be active during a specific period:
- // that's "first frame" and "last frame" on GUI
- if ( current_time < clmd->sim_parms->firstframe )
- {
- if(G.rt > 0)
- printf("current_time < clmd->sim_parms->firstframe\n");
+
+ do_step_cloth(ob, clmd, result, framenr);
+ cloth_to_object(ob, clmd, result);
+
return result;
}
- else if ( current_time > clmd->sim_parms->lastframe )
- {
- int stack_index = modifiers_indexInObject(ob, (ModifierData *)clmd);
-
- if(G.rt > 0)
- printf("current_time > clmd->sim_parms->lastframe\n");
-
- if(BKE_ptcache_id_exist((ID *)ob, clmd->sim_parms->lastcachedframe, stack_index))
- {
- if(cloth_read_cache(ob, clmd, clmd->sim_parms->lastcachedframe))
- {
- implicit_set_positions(clmd);
-
- // Copy the result back to the object.
- cloth_to_object (ob, clmd, result);
- }
- }
+
+ /* simulation is only active during a specific period */
+ if(framenr < startframe) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
return result;
}
-
- // check for autoprotection, but only if cache active
- if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_AUTOPROTECT)
- {
- if((framenr >= clmd->sim_parms->autoprotect) && (G.relbase_valid))
- {
- if(G.rt > 0)
- printf("fr#: %f, auto: %d\n", framenr, clmd->sim_parms->autoprotect);
-
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT;
- }
+ else if(framenr > endframe) {
+ framenr= endframe;
}
-
- /* nice moving one frame forward */
- if ( deltaTime == 1.0f )
- {
- clmd->sim_parms->sim_time = current_time;
-
- if(G.rt > 0)
- printf("clothModifier_do deltaTime=1\n");
-
- if(!cloth_read_cache(ob, clmd, framenr))
- {
- verts = cloth->verts;
- // Force any pinned verts to their constrained location.
- for ( i = 0; i < clmd->clothObject->numverts; i++, verts++ )
- {
- // Save the previous position.
- VECCOPY ( verts->xold, verts->xconst );
- VECCOPY ( verts->txold, verts->x );
+ if(cache->flag & PTCACHE_SIMULATION_VALID)
+ framedelta= framenr - cache->simframe;
+ else
+ framedelta= -1;
- // Get the current position.
- VECCOPY ( verts->xconst, mvert[i].co );
- Mat4MulVecfl ( ob->obmat, verts->xconst );
- }
-
- tstart();
+ /* initialize simulation data if it didn't exist already */
+ if(!do_init_cloth(ob, clmd, result, framenr))
+ return result;
- // Call the solver.
- if ( solvers [clmd->sim_parms->solver_type].solver )
- {
- ret = solvers [clmd->sim_parms->solver_type].solver ( ob, framenr, clmd, effectors );
- }
+ /* try to read from cache */
+ if(cloth_read_cache(ob, clmd, framenr)) {
+ cache->flag |= PTCACHE_SIMULATION_VALID;
+ cache->simframe= framenr;
- tend();
- // printf ( "Cloth simulation time: %f\n", ( float ) tval() );
-
- if(ret)
- cloth_write_cache(ob, clmd, framenr);
- else
- clmd->sim_parms->sim_time--;
- }
- else
- {
- if(G.rt > 0)
- printf("clothModifier_do deltaTime=1 cacheread\n");
- implicit_set_positions(clmd);
- }
-
- // Copy the result back to the object.
+ implicit_set_positions(clmd);
cloth_to_object (ob, clmd, result);
+
+ return result;
}
- else if(deltaTime == 0.0f)
- {
- if(G.rt > 0)
- printf("dt = 0, %f\n", framenr);
- if(cloth_read_cache(ob, clmd, framenr))
- {
- cloth_to_object (ob, clmd, result);
- implicit_set_positions(clmd);
- }
- else /* same cache parts are missing */
- {
- /* jump to a non-existing frame makes sim reset if cache is not protected */
- if(!(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT))
- {
- /* prevent freeing when used with vectorblur */
- if(!useRenderParams)
- {
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE;
- cloth_clear_cache(ob, clmd, 0);
-
- cloth_write_cache(ob, clmd, framenr);
- }
- }
- }
+ else if(ob->id.lib || (cache->flag & PTCACHE_BAKED)) {
+ /* if baked and nothing in cache, do nothing */
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
+ return result;
}
- else
- {
- if(G.rt > 0)
- printf("dt > 1.0 || dt < 0.0, %f, st: %f, ct: %f\n", framenr, clmd->sim_parms->sim_time, current_time);
- if(cloth_read_cache(ob, clmd, framenr))
- {
- cloth_to_object (ob, clmd, result);
- implicit_set_positions(clmd);
+
+ if(framenr == startframe) {
+ cache->flag |= PTCACHE_SIMULATION_VALID;
+ cache->simframe= framenr;
+
+ /* don't write cache on first frame, but on second frame write
+ * cache for frame 1 and 2 */
+ }
+ else if(framedelta == 1) {
+ /* if on second frame, write cache for first frame */
+ if(framenr == startframe+1)
+ cloth_write_cache(ob, clmd, startframe);
+
+ /* do simulation */
+ cache->flag |= PTCACHE_SIMULATION_VALID;
+ cache->simframe= framenr;
+
+ if(!do_step_cloth(ob, clmd, result, framenr)) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
}
else
- {
- /* jump to a non-existing frame makes sim reset if cache is not protected */
- if(!(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT))
- {
- /* prevent freeing when used with vectorblur */
- if(!useRenderParams)
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- }
- }
- clmd->sim_parms->sim_time = current_time;
+ cloth_write_cache(ob, clmd, framenr);
+
+ cloth_to_object (ob, clmd, result);
}
-
+ else {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
+ }
+
return result;
}
@@ -701,7 +559,6 @@ void cloth_free_modifier ( Object *ob, ClothModifierData *clmd )
MEM_freeN ( cloth );
clmd->clothObject = NULL;
}
- clmd->sim_parms->flags &= ~CLOTH_SIMSETTINGS_FLAG_RESET;
}
/* frees all */
@@ -887,13 +744,12 @@ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm )
}
}
-static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *dm, float framenr)
+static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *dm, float framenr, int first)
{
unsigned int i = 0;
MVert *mvert = NULL;
ClothVertex *verts = NULL;
float tnull[3] = {0,0,0};
- int cache_there = 0;
Cloth *cloth = NULL;
// If we have a clothObject, free it.
@@ -925,21 +781,6 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d
cloth_from_mesh ( ob, clmd, dm );
- if((clmd->sim_parms->firstcachedframe < 0.0) || ((clmd->sim_parms->firstcachedframe >= 0.0) && (!cloth_read_cache(ob, clmd, clmd->sim_parms->firstcachedframe))))
- {
- // no cache there
- cache_there = 0;
- if(G.rt > 0)
- printf("cache_there = 0\n");
- }
- else
- {
- // we have a cache
- cache_there = 1;
- if(G.rt > 0)
- printf("cache_there = 1, fcf: %d\n", clmd->sim_parms->firstcachedframe);
- }
-
// create springs
clmd->clothObject->springs = NULL;
clmd->clothObject->numsprings = -1;
@@ -950,7 +791,7 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d
// set initial values
for ( i = 0; i < dm->getNumVerts(dm); i++, verts++ )
{
- if(!cache_there)
+ if(first)
{
VECCOPY ( verts->x, mvert[i].co );
Mat4MulVecfl ( ob->obmat, verts->x );
@@ -997,10 +838,11 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d
}
// init our solver
- if ( solvers [clmd->sim_parms->solver_type].init )
+ if ( solvers [clmd->sim_parms->solver_type].init ) {
solvers [clmd->sim_parms->solver_type].init ( ob, clmd );
+ }
- if(cache_there)
+ if(!first)
implicit_set_positions(clmd);
clmd->clothObject->tree = bvh_build_from_cloth ( clmd, clmd->coll_parms->epsilon );
diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c
index 61f2288f8e8..22f68eecd3f 100644
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@ -1,15 +1,12 @@
-/* collision.c
-*
+/* collision.c
*
-* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+*
+* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version. The Blender
-* Foundation also sells licenses for use in proprietary software under
-* the Blender License. See http://www.blender.org/BL/ for information
-* about this.
+* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
-* ***** END GPL/BL DUAL LICENSE BLOCK *****
+* ***** END GPL LICENSE BLOCK *****
*/
#include "MEM_guardedalloc.h"
@@ -36,7 +33,7 @@
#include "DNA_group_types.h"
#include "DNA_object_types.h"
-#include "DNA_cloth_types.h"
+#include "DNA_cloth_types.h"
#include "DNA_mesh_types.h"
#include "DNA_scene_types.h"
@@ -57,70 +54,70 @@ Collision modifier code start
***********************************/
/* step is limited from 0 (frame start position) to 1 (frame end position) */
-void collision_move_object(CollisionModifierData *collmd, float step, float prevstep)
+void collision_move_object ( CollisionModifierData *collmd, float step, float prevstep )
{
float tv[3] = {0,0,0};
unsigned int i = 0;
-
+
for ( i = 0; i < collmd->numverts; i++ )
{
- VECSUB(tv, collmd->xnew[i].co, collmd->x[i].co);
- VECADDS(collmd->current_x[i].co, collmd->x[i].co, tv, prevstep);
- VECADDS(collmd->current_xnew[i].co, collmd->x[i].co, tv, step);
- VECSUB(collmd->current_v[i].co, collmd->current_xnew[i].co, collmd->current_x[i].co);
+ VECSUB ( tv, collmd->xnew[i].co, collmd->x[i].co );
+ VECADDS ( collmd->current_x[i].co, collmd->x[i].co, tv, prevstep );
+ VECADDS ( collmd->current_xnew[i].co, collmd->x[i].co, tv, step );
+ VECSUB ( collmd->current_v[i].co, collmd->current_xnew[i].co, collmd->current_x[i].co );
}
- bvh_update_from_mvert(collmd->bvh, collmd->current_x, collmd->numverts, collmd->current_xnew, 1);
+ bvh_update_from_mvert ( collmd->bvh, collmd->current_x, collmd->numverts, collmd->current_xnew, 1 );
}
/* build bounding volume hierarchy from mverts (see kdop.c for whole BVH code) */
-BVH *bvh_build_from_mvert (MFace *mfaces, unsigned int numfaces, MVert *x, unsigned int numverts, float epsilon)
+BVH *bvh_build_from_mvert ( MFace *mfaces, unsigned int numfaces, MVert *x, unsigned int numverts, float epsilon )
{
BVH *bvh=NULL;
-
- bvh = MEM_callocN(sizeof(BVH), "BVH");
- if (bvh == NULL)
+
+ bvh = MEM_callocN ( sizeof ( BVH ), "BVH" );
+ if ( bvh == NULL )
{
- printf("bvh: Out of memory.\n");
+ printf ( "bvh: Out of memory.\n" );
return NULL;
}
-
+
// in the moment, return zero if no faces there
- if(!numfaces)
+ if ( !numfaces )
return NULL;
bvh->epsilon = epsilon;
bvh->numfaces = numfaces;
bvh->mfaces = mfaces;
-
+
// we have no faces, we save seperate points
- if(!mfaces)
+ if ( !mfaces )
{
bvh->numfaces = numverts;
}
bvh->numverts = numverts;
- bvh->current_x = MEM_dupallocN(x);
-
- bvh_build(bvh);
-
+ bvh->current_x = MEM_dupallocN ( x );
+
+ bvh_build ( bvh );
+
return bvh;
}
-void bvh_update_from_mvert(BVH * bvh, MVert *x, unsigned int numverts, MVert *xnew, int moving)
+void bvh_update_from_mvert ( BVH * bvh, MVert *x, unsigned int numverts, MVert *xnew, int moving )
{
- if(!bvh)
+ if ( !bvh )
return;
-
- if(numverts!=bvh->numverts)
+
+ if ( numverts!=bvh->numverts )
return;
-
- if(x)
- memcpy(bvh->current_xold, x, sizeof(MVert) * numverts);
-
- if(xnew)
- memcpy(bvh->current_x, xnew, sizeof(MVert) * numverts);
-
- bvh_update(bvh, moving);
+
+ if ( x )
+ memcpy ( bvh->current_xold, x, sizeof ( MVert ) * numverts );
+
+ if ( xnew )
+ memcpy ( bvh->current_x, xnew, sizeof ( MVert ) * numverts );
+
+ bvh_update ( bvh, moving );
}
/***********************************
@@ -136,10 +133,10 @@ Collision modifier code end
/* DG: debug hint! don't forget that all functions were "fabs", "sinf", etc before */
#define mySWAP(a,b) { float tmp = b ; b = a ; a = tmp ; }
-int gsl_poly_solve_cubic (float a, float b, float c, float *x0, float *x1, float *x2)
+int gsl_poly_solve_cubic ( float a, float b, float c, float *x0, float *x1, float *x2 )
{
- float q = (a * a - 3 * b);
- float r = (2 * a * a * a - 9 * a * b + 27 * c);
+ float q = ( a * a - 3 * b );
+ float r = ( 2 * a * a * a - 9 * a * b + 27 * c );
float Q = q / 9;
float R = r / 54;
@@ -150,25 +147,25 @@ int gsl_poly_solve_cubic (float a, float b, float c, float *x0, float *x1, float
float CR2 = 729 * r * r;
float CQ3 = 2916 * q * q * q;
- if (R == 0 && Q == 0)
+ if ( R == 0 && Q == 0 )
{
*x0 = - a / 3 ;
*x1 = - a / 3 ;
*x2 = - a / 3 ;
return 3 ;
}
- else if (CR2 == CQ3)
+ else if ( CR2 == CQ3 )
{
- /* this test is actually R2 == Q3, written in a form suitable
- for exact computation with integers */
+ /* this test is actually R2 == Q3, written in a form suitable
+ for exact computation with integers */
- /* Due to finite precision some float roots may be missed, and
- considered to be a pair of complex roots z = x +/- epsilon i
- close to the real axis. */
+ /* Due to finite precision some float roots may be missed, and
+ considered to be a pair of complex roots z = x +/- epsilon i
+ close to the real axis. */
- float sqrtQ = sqrt (Q);
+ float sqrtQ = sqrt ( Q );
- if (R > 0)
+ if ( R > 0 )
{
*x0 = -2 * sqrtQ - a / 3;
*x1 = sqrtQ - a / 3;
@@ -182,35 +179,35 @@ int gsl_poly_solve_cubic (float a, float b, float c, float *x0, float *x1, float
}
return 3 ;
}
- else if (CR2 < CQ3) /* equivalent to R2 < Q3 */
+ else if ( CR2 < CQ3 ) /* equivalent to R2 < Q3 */
{
- float sqrtQ = sqrt (Q);
+ float sqrtQ = sqrt ( Q );
float sqrtQ3 = sqrtQ * sqrtQ * sqrtQ;
- float theta = acos (R / sqrtQ3);
+ float theta = acos ( R / sqrtQ3 );
float norm = -2 * sqrtQ;
- *x0 = norm * cos (theta / 3) - a / 3;
- *x1 = norm * cos ((theta + 2.0 * M_PI) / 3) - a / 3;
- *x2 = norm * cos ((theta - 2.0 * M_PI) / 3) - a / 3;
-
+ *x0 = norm * cos ( theta / 3 ) - a / 3;
+ *x1 = norm * cos ( ( theta + 2.0 * M_PI ) / 3 ) - a / 3;
+ *x2 = norm * cos ( ( theta - 2.0 * M_PI ) / 3 ) - a / 3;
+
/* Sort *x0, *x1, *x2 into increasing order */
- if (*x0 > *x1)
- mySWAP(*x0, *x1) ;
-
- if (*x1 > *x2)
+ if ( *x0 > *x1 )
+ mySWAP ( *x0, *x1 ) ;
+
+ if ( *x1 > *x2 )
{
- mySWAP(*x1, *x2) ;
-
- if (*x0 > *x1)
- mySWAP(*x0, *x1) ;
+ mySWAP ( *x1, *x2 ) ;
+
+ if ( *x0 > *x1 )
+ mySWAP ( *x0, *x1 ) ;
}
-
+
return 3;
}
else
{
- float sgnR = (R >= 0 ? 1 : -1);
- float A = -sgnR * pow (ABS (R) + sqrt (R2 - Q3), 1.0/3.0);
+ float sgnR = ( R >= 0 ? 1 : -1 );
+ float A = -sgnR * pow ( ABS ( R ) + sqrt ( R2 - Q3 ), 1.0/3.0 );
float B = Q / A ;
*x0 = A + B - a / 3;
return 1;
@@ -223,31 +220,31 @@ int gsl_poly_solve_cubic (float a, float b, float c, float *x0, float *x1, float
*
* copied from GSL
*/
-int gsl_poly_solve_quadratic (float a, float b, float c, float *x0, float *x1)
+int gsl_poly_solve_quadratic ( float a, float b, float c, float *x0, float *x1 )
{
float disc = b * b - 4 * a * c;
- if (disc > 0)
+ if ( disc > 0 )
{
- if (b == 0)
+ if ( b == 0 )
{
- float r = ABS (0.5 * sqrt (disc) / a);
+ float r = ABS ( 0.5 * sqrt ( disc ) / a );
*x0 = -r;
*x1 = r;
}
else
{
- float sgnb = (b > 0 ? 1 : -1);
- float temp = -0.5 * (b + sgnb * sqrt (disc));
+ float sgnb = ( b > 0 ? 1 : -1 );
+ float temp = -0.5 * ( b + sgnb * sqrt ( disc ) );
float r1 = temp / a ;
float r2 = c / temp ;
- if (r1 < r2)
+ if ( r1 < r2 )
{
*x0 = r1 ;
*x1 = r2 ;
- }
- else
+ }
+ else
{
*x0 = r2 ;
*x1 = r1 ;
@@ -255,7 +252,7 @@ int gsl_poly_solve_quadratic (float a, float b, float c, float *x0, float *x1)
}
return 2;
}
- else if (disc == 0)
+ else if ( disc == 0 )
{
*x0 = -0.5 * b / a ;
*x1 = -0.5 * b / a ;
@@ -274,56 +271,56 @@ int gsl_poly_solve_quadratic (float a, float b, float c, float *x0, float *x1)
* page 4, left column
*/
-int cloth_get_collision_time(float a[3], float b[3], float c[3], float d[3], float e[3], float f[3], float solution[3])
+int cloth_get_collision_time ( float a[3], float b[3], float c[3], float d[3], float e[3], float f[3], float solution[3] )
{
int num_sols = 0;
-
+
float g = -a[2] * c[1] * e[0] + a[1] * c[2] * e[0] +
- a[2] * c[0] * e[1] - a[0] * c[2] * e[1] -
- a[1] * c[0] * e[2] + a[0] * c[1] * e[2];
+ a[2] * c[0] * e[1] - a[0] * c[2] * e[1] -
+ a[1] * c[0] * e[2] + a[0] * c[1] * e[2];
float h = -b[2] * c[1] * e[0] + b[1] * c[2] * e[0] - a[2] * d[1] * e[0] +
- a[1] * d[2] * e[0] + b[2] * c[0] * e[1] - b[0] * c[2] * e[1] +
- a[2] * d[0] * e[1] - a[0] * d[2] * e[1] - b[1] * c[0] * e[2] +
- b[0] * c[1] * e[2] - a[1] * d[0] * e[2] + a[0] * d[1] * e[2] -
- a[2] * c[1] * f[0] + a[1] * c[2] * f[0] + a[2] * c[0] * f[1] -
- a[0] * c[2] * f[1] - a[1] * c[0] * f[2] + a[0] * c[1] * f[2];
+ a[1] * d[2] * e[0] + b[2] * c[0] * e[1] - b[0] * c[2] * e[1] +
+ a[2] * d[0] * e[1] - a[0] * d[2] * e[1] - b[1] * c[0] * e[2] +
+ b[0] * c[1] * e[2] - a[1] * d[0] * e[2] + a[0] * d[1] * e[2] -
+ a[2] * c[1] * f[0] + a[1] * c[2] * f[0] + a[2] * c[0] * f[1] -
+ a[0] * c[2] * f[1] - a[1] * c[0] * f[2] + a[0] * c[1] * f[2];
float i = -b[2] * d[1] * e[0] + b[1] * d[2] * e[0] +
- b[2] * d[0] * e[1] - b[0] * d[2] * e[1] -
- b[1] * d[0] * e[2] + b[0] * d[1] * e[2] -
- b[2] * c[1] * f[0] + b[1] * c[2] * f[0] -
- a[2] * d[1] * f[0] + a[1] * d[2] * f[0] +
- b[2] * c[0] * f[1] - b[0] * c[2] * f[1] +
- a[2] * d[0] * f[1] - a[0] * d[2] * f[1] -
- b[1] * c[0] * f[2] + b[0] * c[1] * f[2] -
- a[1] * d[0] * f[2] + a[0] * d[1] * f[2];
+ b[2] * d[0] * e[1] - b[0] * d[2] * e[1] -
+ b[1] * d[0] * e[2] + b[0] * d[1] * e[2] -
+ b[2] * c[1] * f[0] + b[1] * c[2] * f[0] -
+ a[2] * d[1] * f[0] + a[1] * d[2] * f[0] +
+ b[2] * c[0] * f[1] - b[0] * c[2] * f[1] +
+ a[2] * d[0] * f[1] - a[0] * d[2] * f[1] -
+ b[1] * c[0] * f[2] + b[0] * c[1] * f[2] -
+ a[1] * d[0] * f[2] + a[0] * d[1] * f[2];
float j = -b[2] * d[1] * f[0] + b[1] * d[2] * f[0] +
- b[2] * d[0] * f[1] - b[0] * d[2] * f[1] -
- b[1] * d[0] * f[2] + b[0] * d[1] * f[2];
+ b[2] * d[0] * f[1] - b[0] * d[2] * f[1] -
+ b[1] * d[0] * f[2] + b[0] * d[1] * f[2];
// Solve cubic equation to determine times t1, t2, t3, when the collision will occur.
- if(ABS(j) > ALMOST_ZERO)
+ if ( ABS ( j ) > ALMOST_ZERO )
{
i /= j;
h /= j;
g /= j;
-
- num_sols = gsl_poly_solve_cubic(i, h, g, &solution[0], &solution[1], &solution[2]);
+
+ num_sols = gsl_poly_solve_cubic ( i, h, g, &solution[0], &solution[1], &solution[2] );
}
- else if(ABS(i) > ALMOST_ZERO)
- {
- num_sols = gsl_poly_solve_quadratic(i, h, g, &solution[0], &solution[1]);
+ else if ( ABS ( i ) > ALMOST_ZERO )
+ {
+ num_sols = gsl_poly_solve_quadratic ( i, h, g, &solution[0], &solution[1] );
solution[2] = -1.0;
}
- else if(ABS(h) > ALMOST_ZERO)
+ else if ( ABS ( h ) > ALMOST_ZERO )
{
solution[0] = -g / h;
solution[1] = solution[2] = -1.0;
num_sols = 1;
}
- else if(ABS(g) > ALMOST_ZERO)
+ else if ( ABS ( g ) > ALMOST_ZERO )
{
solution[0] = 0;
solution[1] = solution[2] = -1.0;
@@ -331,42 +328,45 @@ int cloth_get_collision_time(float a[3], float b[3], float c[3], float d[3], flo
}
// Discard negative solutions
- if ((num_sols >= 1) && (solution[0] < 0))
+ if ( ( num_sols >= 1 ) && ( solution[0] < 0 ) )
{
--num_sols;
solution[0] = solution[num_sols];
}
- if ((num_sols >= 2) && (solution[1] < 0))
+ if ( ( num_sols >= 2 ) && ( solution[1] < 0 ) )
{
--num_sols;
solution[1] = solution[num_sols];
}
- if ((num_sols == 3) && (solution[2] < 0))
+ if ( ( num_sols == 3 ) && ( solution[2] < 0 ) )
{
--num_sols;
}
// Sort
- if (num_sols == 2)
+ if ( num_sols == 2 )
{
- if (solution[0] > solution[1])
+ if ( solution[0] > solution[1] )
{
double tmp = solution[0];
solution[0] = solution[1];
solution[1] = tmp;
}
}
- else if (num_sols == 3)
+ else if ( num_sols == 3 )
{
// Bubblesort
- if (solution[0] > solution[1]) {
+ if ( solution[0] > solution[1] )
+ {
double tmp = solution[0]; solution[0] = solution[1]; solution[1] = tmp;
}
- if (solution[1] > solution[2]) {
+ if ( solution[1] > solution[2] )
+ {
double tmp = solution[1]; solution[1] = solution[2]; solution[2] = tmp;
}
- if (solution[0] > solution[1]) {
+ if ( solution[0] > solution[1] )
+ {
double tmp = solution[0]; solution[0] = solution[1]; solution[1] = tmp;
}
}
@@ -375,50 +375,51 @@ int cloth_get_collision_time(float a[3], float b[3], float c[3], float d[3], flo
}
// w3 is not perfect
-void collision_compute_barycentric (float pv[3], float p1[3], float p2[3], float p3[3], float *w1, float *w2, float *w3)
+void collision_compute_barycentric ( float pv[3], float p1[3], float p2[3], float p3[3], float *w1, float *w2, float *w3 )
{
double tempV1[3], tempV2[3], tempV4[3];
double a,b,c,d,e,f;
- VECSUB (tempV1, p1, p3);
- VECSUB (tempV2, p2, p3);
- VECSUB (tempV4, pv, p3);
-
- a = INPR (tempV1, tempV1);
- b = INPR (tempV1, tempV2);
- c = INPR (tempV2, tempV2);
- e = INPR (tempV1, tempV4);
- f = INPR (tempV2, tempV4);
-
- d = (a * c - b * b);
-
- if (ABS(d) < ALMOST_ZERO) {
+ VECSUB ( tempV1, p1, p3 );
+ VECSUB ( tempV2, p2, p3 );
+ VECSUB ( tempV4, pv, p3 );
+
+ a = INPR ( tempV1, tempV1 );
+ b = INPR ( tempV1, tempV2 );
+ c = INPR ( tempV2, tempV2 );
+ e = INPR ( tempV1, tempV4 );
+ f = INPR ( tempV2, tempV4 );
+
+ d = ( a * c - b * b );
+
+ if ( ABS ( d ) < ALMOST_ZERO )
+ {
*w1 = *w2 = *w3 = 1.0 / 3.0;
return;
}
-
- w1[0] = (float)((e * c - b * f) / d);
-
- if(w1[0] < 0)
+
+ w1[0] = ( float ) ( ( e * c - b * f ) / d );
+
+ if ( w1[0] < 0 )
w1[0] = 0;
-
- w2[0] = (float)((f - b * (double)w1[0]) / c);
-
- if(w2[0] < 0)
+
+ w2[0] = ( float ) ( ( f - b * ( double ) w1[0] ) / c );
+
+ if ( w2[0] < 0 )
w2[0] = 0;
-
+
w3[0] = 1.0f - w1[0] - w2[0];
}
-DO_INLINE void collision_interpolateOnTriangle(float to[3], float v1[3], float v2[3], float v3[3], double w1, double w2, double w3)
+DO_INLINE void collision_interpolateOnTriangle ( float to[3], float v1[3], float v2[3], float v3[3], double w1, double w2, double w3 )
{
to[0] = to[1] = to[2] = 0;
- VECADDMUL(to, v1, w1);
- VECADDMUL(to, v2, w2);
- VECADDMUL(to, v3, w3);
+ VECADDMUL ( to, v1, w1 );
+ VECADDMUL ( to, v2, w2 );
+ VECADDMUL ( to, v3, w3 );
}
-int cloth_collision_response_static(ClothModifierData *clmd, CollisionModifierData *collmd)
+int cloth_collision_response_static ( ClothModifierData *clmd, CollisionModifierData *collmd )
{
int result = 0;
LinkNode *search = NULL;
@@ -428,171 +429,171 @@ int cloth_collision_response_static(ClothModifierData *clmd, CollisionModifierDa
float v1[3], v2[3], relativeVelocity[3];
float magrelVel;
float epsilon2 = collmd->bvh->epsilon;
-
+
cloth1 = clmd->clothObject;
search = clmd->coll_parms->collision_list;
-
- while(search)
+
+ while ( search )
{
collpair = search->link;
-
+
// compute barycentric coordinates for both collision points
- collision_compute_barycentric(collpair->pa,
- cloth1->verts[collpair->ap1].txold,
- cloth1->verts[collpair->ap2].txold,
- cloth1->verts[collpair->ap3].txold,
- &w1, &w2, &w3);
-
+ collision_compute_barycentric ( collpair->pa,
+ cloth1->verts[collpair->ap1].txold,
+ cloth1->verts[collpair->ap2].txold,
+ cloth1->verts[collpair->ap3].txold,
+ &w1, &w2, &w3 );
+
// was: txold
- collision_compute_barycentric(collpair->pb,
- collmd->current_x[collpair->bp1].co,
- collmd->current_x[collpair->bp2].co,
- collmd->current_x[collpair->bp3].co,
- &u1, &u2, &u3);
-
+ collision_compute_barycentric ( collpair->pb,
+ collmd->current_x[collpair->bp1].co,
+ collmd->current_x[collpair->bp2].co,
+ collmd->current_x[collpair->bp3].co,
+ &u1, &u2, &u3 );
+
// Calculate relative "velocity".
- collision_interpolateOnTriangle(v1, cloth1->verts[collpair->ap1].tv, cloth1->verts[collpair->ap2].tv, cloth1->verts[collpair->ap3].tv, w1, w2, w3);
-
- collision_interpolateOnTriangle(v2, collmd->current_v[collpair->bp1].co, collmd->current_v[collpair->bp2].co, collmd->current_v[collpair->bp3].co, u1, u2, u3);
-
- VECSUB(relativeVelocity, v2, v1);
-
+ collision_interpolateOnTriangle ( v1, cloth1->verts[collpair->ap1].tv, cloth1->verts[collpair->ap2].tv, cloth1->verts[collpair->ap3].tv, w1, w2, w3 );
+
+ collision_interpolateOnTriangle ( v2, collmd->current_v[collpair->bp1].co, collmd->current_v[collpair->bp2].co, collmd->current_v[collpair->bp3].co, u1, u2, u3 );
+
+ VECSUB ( relativeVelocity, v2, v1 );
+
// Calculate the normal component of the relative velocity (actually only the magnitude - the direction is stored in 'normal').
- magrelVel = INPR(relativeVelocity, collpair->normal);
-
+ magrelVel = INPR ( relativeVelocity, collpair->normal );
+
// printf("magrelVel: %f\n", magrelVel);
-
+
// Calculate masses of points.
// TODO
-
+
// If v_n_mag < 0 the edges are approaching each other.
- if(magrelVel > ALMOST_ZERO)
+ if ( magrelVel > ALMOST_ZERO )
{
// Calculate Impulse magnitude to stop all motion in normal direction.
float magtangent = 0, repulse = 0, d = 0;
double impulse = 0.0;
float vrel_t_pre[3];
float temp[3];
-
+
// calculate tangential velocity
- VECCOPY(temp, collpair->normal);
- VecMulf(temp, magrelVel);
- VECSUB(vrel_t_pre, relativeVelocity, temp);
-
+ VECCOPY ( temp, collpair->normal );
+ VecMulf ( temp, magrelVel );
+ VECSUB ( vrel_t_pre, relativeVelocity, temp );
+
// Decrease in magnitude of relative tangential velocity due to coulomb friction
- // in original formula "magrelVel" should be the "change of relative velocity in normal direction"
- magtangent = MIN2(clmd->coll_parms->friction * 0.01 * magrelVel,sqrt(INPR(vrel_t_pre,vrel_t_pre)));
-
+ // in original formula "magrelVel" should be the "change of relative velocity in normal direction"
+ magtangent = MIN2 ( clmd->coll_parms->friction * 0.01 * magrelVel,sqrt ( INPR ( vrel_t_pre,vrel_t_pre ) ) );
+
// Apply friction impulse.
- if (magtangent > ALMOST_ZERO)
- {
- Normalize(vrel_t_pre);
-
- impulse = 2.0 * magtangent / ( 1.0 + w1*w1 + w2*w2 + w3*w3);
- VECADDMUL(cloth1->verts[collpair->ap1].impulse, vrel_t_pre, w1 * impulse);
- VECADDMUL(cloth1->verts[collpair->ap2].impulse, vrel_t_pre, w2 * impulse);
- VECADDMUL(cloth1->verts[collpair->ap3].impulse, vrel_t_pre, w3 * impulse);
+ if ( magtangent > ALMOST_ZERO )
+ {
+ Normalize ( vrel_t_pre );
+
+ impulse = 2.0 * magtangent / ( 1.0 + w1*w1 + w2*w2 + w3*w3 );
+ VECADDMUL ( cloth1->verts[collpair->ap1].impulse, vrel_t_pre, w1 * impulse );
+ VECADDMUL ( cloth1->verts[collpair->ap2].impulse, vrel_t_pre, w2 * impulse );
+ VECADDMUL ( cloth1->verts[collpair->ap3].impulse, vrel_t_pre, w3 * impulse );
}
-
+
// Apply velocity stopping impulse
// I_c = m * v_N / 2.0
// no 2.0 * magrelVel normally, but looks nicer DG
- impulse = magrelVel / ( 1.0 + w1*w1 + w2*w2 + w3*w3);
-
- VECADDMUL(cloth1->verts[collpair->ap1].impulse, collpair->normal, w1 * impulse);
+ impulse = magrelVel / ( 1.0 + w1*w1 + w2*w2 + w3*w3 );
+
+ VECADDMUL ( cloth1->verts[collpair->ap1].impulse, collpair->normal, w1 * impulse );
cloth1->verts[collpair->ap1].impulse_count++;
-
- VECADDMUL(cloth1->verts[collpair->ap2].impulse, collpair->normal, w2 * impulse);
+
+ VECADDMUL ( cloth1->verts[collpair->ap2].impulse, collpair->normal, w2 * impulse );
cloth1->verts[collpair->ap2].impulse_count++;
-
- VECADDMUL(cloth1->verts[collpair->ap3].impulse, collpair->normal, w3 * impulse);
+
+ VECADDMUL ( cloth1->verts[collpair->ap3].impulse, collpair->normal, w3 * impulse );
cloth1->verts[collpair->ap3].impulse_count++;
-
+
// Apply repulse impulse if distance too short
// I_r = -min(dt*kd, m(0,1d/dt - v_n))
d = clmd->coll_parms->epsilon*8.0/9.0 + epsilon2*8.0/9.0 - collpair->distance;
- if((magrelVel < 0.1*d*clmd->sim_parms->stepsPerFrame) && (d > ALMOST_ZERO))
+ if ( ( magrelVel < 0.1*d*clmd->sim_parms->stepsPerFrame ) && ( d > ALMOST_ZERO ) )
{
- repulse = MIN2(d*1.0/clmd->sim_parms->stepsPerFrame, 0.1*d*clmd->sim_parms->stepsPerFrame - magrelVel);
-
+ repulse = MIN2 ( d*1.0/clmd->sim_parms->stepsPerFrame, 0.1*d*clmd->sim_parms->stepsPerFrame - magrelVel );
+
// stay on the safe side and clamp repulse
- if(impulse > ALMOST_ZERO)
- repulse = MIN2(repulse, 5.0*impulse);
- repulse = MAX2(impulse, repulse);
-
- impulse = repulse / ( 1.0 + w1*w1 + w2*w2 + w3*w3); // original 2.0 / 0.25
- VECADDMUL(cloth1->verts[collpair->ap1].impulse, collpair->normal, impulse);
- VECADDMUL(cloth1->verts[collpair->ap2].impulse, collpair->normal, impulse);
- VECADDMUL(cloth1->verts[collpair->ap3].impulse, collpair->normal, impulse);
+ if ( impulse > ALMOST_ZERO )
+ repulse = MIN2 ( repulse, 5.0*impulse );
+ repulse = MAX2 ( impulse, repulse );
+
+ impulse = repulse / ( 1.0 + w1*w1 + w2*w2 + w3*w3 ); // original 2.0 / 0.25
+ VECADDMUL ( cloth1->verts[collpair->ap1].impulse, collpair->normal, impulse );
+ VECADDMUL ( cloth1->verts[collpair->ap2].impulse, collpair->normal, impulse );
+ VECADDMUL ( cloth1->verts[collpair->ap3].impulse, collpair->normal, impulse );
}
-
+
result = 1;
}
-
+
search = search->next;
}
-
-
+
+
return result;
}
-int cloth_collision_response_moving_tris(ClothModifierData *clmd, ClothModifierData *coll_clmd)
+int cloth_collision_response_moving_tris ( ClothModifierData *clmd, ClothModifierData *coll_clmd )
{
return 1;
}
-int cloth_collision_response_moving_edges(ClothModifierData *clmd, ClothModifierData *coll_clmd)
+int cloth_collision_response_moving_edges ( ClothModifierData *clmd, ClothModifierData *coll_clmd )
{
return 1;
}
-void cloth_collision_static(ModifierData *md1, ModifierData *md2, CollisionTree *tree1, CollisionTree *tree2)
+void cloth_collision_static ( ModifierData *md1, ModifierData *md2, CollisionTree *tree1, CollisionTree *tree2 )
{
- ClothModifierData *clmd = (ClothModifierData *)md1;
- CollisionModifierData *collmd = (CollisionModifierData *)md2;
+ ClothModifierData *clmd = ( ClothModifierData * ) md1;
+ CollisionModifierData *collmd = ( CollisionModifierData * ) md2;
CollPair *collpair = NULL;
Cloth *cloth1=NULL;
MFace *face1=NULL, *face2=NULL;
ClothVertex *verts1=NULL;
double distance = 0;
float epsilon = clmd->coll_parms->epsilon;
- float epsilon2 = ((CollisionModifierData *)md2)->bvh->epsilon;
+ float epsilon2 = ( ( CollisionModifierData * ) md2 )->bvh->epsilon;
unsigned int i = 0;
- for(i = 0; i < 4; i++)
+ for ( i = 0; i < 4; i++ )
{
- collpair = (CollPair *)MEM_callocN(sizeof(CollPair), "cloth coll pair");
-
+ collpair = ( CollPair * ) MEM_callocN ( sizeof ( CollPair ), "cloth coll pair" );
+
cloth1 = clmd->clothObject;
-
+
verts1 = cloth1->verts;
-
- face1 = &(cloth1->mfaces[tree1->tri_index]);
- face2 = &(collmd->mfaces[tree2->tri_index]);
-
+
+ face1 = & ( cloth1->mfaces[tree1->tri_index] );
+ face2 = & ( collmd->mfaces[tree2->tri_index] );
+
// check all possible pairs of triangles
- if(i == 0)
+ if ( i == 0 )
{
collpair->ap1 = face1->v1;
collpair->ap2 = face1->v2;
collpair->ap3 = face1->v3;
-
+
collpair->bp1 = face2->v1;
collpair->bp2 = face2->v2;
collpair->bp3 = face2->v3;
-
+
}
-
- if(i == 1)
+
+ if ( i == 1 )
{
- if(face1->v4)
+ if ( face1->v4 )
{
collpair->ap1 = face1->v3;
collpair->ap2 = face1->v4;
collpair->ap3 = face1->v1;
-
+
collpair->bp1 = face2->v1;
collpair->bp2 = face2->v2;
collpair->bp3 = face2->v3;
@@ -600,15 +601,15 @@ void cloth_collision_static(ModifierData *md1, ModifierData *md2, CollisionTree
else
i++;
}
-
- if(i == 2)
+
+ if ( i == 2 )
{
- if(face2->v4)
+ if ( face2->v4 )
{
collpair->ap1 = face1->v1;
collpair->ap2 = face1->v2;
collpair->ap3 = face1->v3;
-
+
collpair->bp1 = face2->v3;
collpair->bp2 = face2->v4;
collpair->bp3 = face2->v1;
@@ -616,15 +617,15 @@ void cloth_collision_static(ModifierData *md1, ModifierData *md2, CollisionTree
else
i+=2;
}
-
- if(i == 3)
+
+ if ( i == 3 )
{
- if((face1->v4)&&(face2->v4))
+ if ( ( face1->v4 ) && ( face2->v4 ) )
{
collpair->ap1 = face1->v3;
collpair->ap2 = face1->v4;
collpair->ap3 = face1->v1;
-
+
collpair->bp1 = face2->v3;
collpair->bp2 = face2->v4;
collpair->bp3 = face2->v1;
@@ -632,77 +633,77 @@ void cloth_collision_static(ModifierData *md1, ModifierData *md2, CollisionTree
else
i++;
}
-
+
// calc SIPcode (?)
-
- if(i < 4)
+
+ if ( i < 4 )
{
- // calc distance + normal
+ // calc distance + normal
#if WITH_BULLET == 1
- distance = plNearestPoints(
- verts1[collpair->ap1].txold, verts1[collpair->ap2].txold, verts1[collpair->ap3].txold, collmd->current_x[collpair->bp1].co, collmd->current_x[collpair->bp2].co, collmd->current_x[collpair->bp3].co, collpair->pa,collpair->pb,collpair->vector);
+ distance = plNearestPoints (
+ verts1[collpair->ap1].txold, verts1[collpair->ap2].txold, verts1[collpair->ap3].txold, collmd->current_x[collpair->bp1].co, collmd->current_x[collpair->bp2].co, collmd->current_x[collpair->bp3].co, collpair->pa,collpair->pb,collpair->vector );
#else
// just be sure that we don't add anything
- distance = 2.0 * (epsilon + epsilon2 + ALMOST_ZERO);
-#endif
- if (distance <= (epsilon + epsilon2 + ALMOST_ZERO))
+ distance = 2.0 * ( epsilon + epsilon2 + ALMOST_ZERO );
+#endif
+ if ( distance <= ( epsilon + epsilon2 + ALMOST_ZERO ) )
{
// printf("dist: %f\n", (float)distance);
-
+
// collpair->face1 = tree1->tri_index;
// collpair->face2 = tree2->tri_index;
-
- VECCOPY(collpair->normal, collpair->vector);
- Normalize(collpair->normal);
-
+
+ VECCOPY ( collpair->normal, collpair->vector );
+ Normalize ( collpair->normal );
+
collpair->distance = distance;
- BLI_linklist_prepend(&clmd->coll_parms->collision_list, collpair);
-
+ BLI_linklist_prepend ( &clmd->coll_parms->collision_list, collpair );
+
}
else
{
- MEM_freeN(collpair);
+ MEM_freeN ( collpair );
}
}
else
{
- MEM_freeN(collpair);
+ MEM_freeN ( collpair );
}
}
}
-int cloth_are_edges_adjacent(ClothModifierData *clmd, ClothModifierData *coll_clmd, EdgeCollPair *edgecollpair)
+int cloth_are_edges_adjacent ( ClothModifierData *clmd, ClothModifierData *coll_clmd, EdgeCollPair *edgecollpair )
{
Cloth *cloth1 = NULL, *cloth2 = NULL;
ClothVertex *verts1 = NULL, *verts2 = NULL;
float temp[3];
-
+
cloth1 = clmd->clothObject;
cloth2 = coll_clmd->clothObject;
-
+
verts1 = cloth1->verts;
verts2 = cloth2->verts;
-
- VECSUB(temp, verts1[edgecollpair->p11].xold, verts2[edgecollpair->p21].xold);
- if(ABS(INPR(temp, temp)) < ALMOST_ZERO)
+
+ VECSUB ( temp, verts1[edgecollpair->p11].xold, verts2[edgecollpair->p21].xold );
+ if ( ABS ( INPR ( temp, temp ) ) < ALMOST_ZERO )
return 1;
-
- VECSUB(temp, verts1[edgecollpair->p11].xold, verts2[edgecollpair->p22].xold);
- if(ABS(INPR(temp, temp)) < ALMOST_ZERO)
+
+ VECSUB ( temp, verts1[edgecollpair->p11].xold, verts2[edgecollpair->p22].xold );
+ if ( ABS ( INPR ( temp, temp ) ) < ALMOST_ZERO )
return 1;
-
- VECSUB(temp, verts1[edgecollpair->p12].xold, verts2[edgecollpair->p21].xold);
- if(ABS(INPR(temp, temp)) < ALMOST_ZERO)
+
+ VECSUB ( temp, verts1[edgecollpair->p12].xold, verts2[edgecollpair->p21].xold );
+ if ( ABS ( INPR ( temp, temp ) ) < ALMOST_ZERO )
return 1;
-
- VECSUB(temp, verts1[edgecollpair->p12].xold, verts2[edgecollpair->p22].xold);
- if(ABS(INPR(temp, temp)) < ALMOST_ZERO)
+
+ VECSUB ( temp, verts1[edgecollpair->p12].xold, verts2[edgecollpair->p22].xold );
+ if ( ABS ( INPR ( temp, temp ) ) < ALMOST_ZERO )
return 1;
-
+
return 0;
}
-void cloth_collision_moving_edges(ClothModifierData *clmd, ClothModifierData *coll_clmd, CollisionTree *tree1, CollisionTree *tree2)
+void cloth_collision_moving_edges ( ClothModifierData *clmd, ClothModifierData *coll_clmd, CollisionTree *tree1, CollisionTree *tree2 )
{
EdgeCollPair edgecollpair;
Cloth *cloth1=NULL, *cloth2=NULL;
@@ -711,49 +712,49 @@ void cloth_collision_moving_edges(ClothModifierData *clmd, ClothModifierData *co
unsigned int i = 0, j = 0, k = 0;
int numsolutions = 0;
float a[3], b[3], c[3], d[3], e[3], f[3], solution[3];
-
+
cloth1 = clmd->clothObject;
cloth2 = coll_clmd->clothObject;
-
+
verts1 = cloth1->verts;
verts2 = cloth2->verts;
- face1 = &(cloth1->mfaces[tree1->tri_index]);
- face2 = &(cloth2->mfaces[tree2->tri_index]);
-
- for( i = 0; i < 5; i++)
+ face1 = & ( cloth1->mfaces[tree1->tri_index] );
+ face2 = & ( cloth2->mfaces[tree2->tri_index] );
+
+ for ( i = 0; i < 5; i++ )
{
- if(i == 0)
+ if ( i == 0 )
{
edgecollpair.p11 = face1->v1;
edgecollpair.p12 = face1->v2;
}
- else if(i == 1)
+ else if ( i == 1 )
{
edgecollpair.p11 = face1->v2;
edgecollpair.p12 = face1->v3;
}
- else if(i == 2)
+ else if ( i == 2 )
{
- if(face1->v4)
+ if ( face1->v4 )
{
edgecollpair.p11 = face1->v3;
edgecollpair.p12 = face1->v4;
}
- else
+ else
{
edgecollpair.p11 = face1->v3;
edgecollpair.p12 = face1->v1;
i+=5; // get out of here after this edge pair is handled
}
}
- else if(i == 3)
+ else if ( i == 3 )
{
- if(face1->v4)
+ if ( face1->v4 )
{
edgecollpair.p11 = face1->v4;
edgecollpair.p12 = face1->v1;
- }
+ }
else
continue;
}
@@ -763,35 +764,35 @@ void cloth_collision_moving_edges(ClothModifierData *clmd, ClothModifierData *co
edgecollpair.p12 = face1->v1;
}
-
- for( j = 0; j < 5; j++)
+
+ for ( j = 0; j < 5; j++ )
{
- if(j == 0)
+ if ( j == 0 )
{
edgecollpair.p21 = face2->v1;
edgecollpair.p22 = face2->v2;
}
- else if(j == 1)
+ else if ( j == 1 )
{
edgecollpair.p21 = face2->v2;
edgecollpair.p22 = face2->v3;
}
- else if(j == 2)
+ else if ( j == 2 )
{
- if(face2->v4)
+ if ( face2->v4 )
{
edgecollpair.p21 = face2->v3;
edgecollpair.p22 = face2->v4;
}
- else
+ else
{
edgecollpair.p21 = face2->v3;
edgecollpair.p22 = face2->v1;
}
}
- else if(j == 3)
+ else if ( j == 3 )
{
- if(face2->v4)
+ if ( face2->v4 )
{
edgecollpair.p21 = face2->v4;
edgecollpair.p22 = face2->v1;
@@ -804,38 +805,38 @@ void cloth_collision_moving_edges(ClothModifierData *clmd, ClothModifierData *co
edgecollpair.p21 = face2->v3;
edgecollpair.p22 = face2->v1;
}
-
-
- if(!cloth_are_edges_adjacent(clmd, coll_clmd, &edgecollpair))
+
+
+ if ( !cloth_are_edges_adjacent ( clmd, coll_clmd, &edgecollpair ) )
{
- VECSUB(a, verts1[edgecollpair.p12].xold, verts1[edgecollpair.p11].xold);
- VECSUB(b, verts1[edgecollpair.p12].v, verts1[edgecollpair.p11].v);
- VECSUB(c, verts1[edgecollpair.p21].xold, verts1[edgecollpair.p11].xold);
- VECSUB(d, verts1[edgecollpair.p21].v, verts1[edgecollpair.p11].v);
- VECSUB(e, verts2[edgecollpair.p22].xold, verts1[edgecollpair.p11].xold);
- VECSUB(f, verts2[edgecollpair.p22].v, verts1[edgecollpair.p11].v);
-
- numsolutions = cloth_get_collision_time(a, b, c, d, e, f, solution);
-
- for (k = 0; k < numsolutions; k++)
- {
- if ((solution[k] >= 0.0) && (solution[k] <= 1.0))
+ VECSUB ( a, verts1[edgecollpair.p12].xold, verts1[edgecollpair.p11].xold );
+ VECSUB ( b, verts1[edgecollpair.p12].v, verts1[edgecollpair.p11].v );
+ VECSUB ( c, verts1[edgecollpair.p21].xold, verts1[edgecollpair.p11].xold );
+ VECSUB ( d, verts1[edgecollpair.p21].v, verts1[edgecollpair.p11].v );
+ VECSUB ( e, verts2[edgecollpair.p22].xold, verts1[edgecollpair.p11].xold );
+ VECSUB ( f, verts2[edgecollpair.p22].v, verts1[edgecollpair.p11].v );
+
+ numsolutions = cloth_get_collision_time ( a, b, c, d, e, f, solution );
+
+ for ( k = 0; k < numsolutions; k++ )
+ {
+ if ( ( solution[k] >= 0.0 ) && ( solution[k] <= 1.0 ) )
{
//float out_collisionTime = solution[k];
-
- // TODO: check for collisions
-
+
+ // TODO: check for collisions
+
// TODO: put into (edge) collision list
-
+
// printf("Moving edge found!\n");
}
}
}
}
- }
+ }
}
-void cloth_collision_moving_tris(ClothModifierData *clmd, ClothModifierData *coll_clmd, CollisionTree *tree1, CollisionTree *tree2)
+void cloth_collision_moving_tris ( ClothModifierData *clmd, ClothModifierData *coll_clmd, CollisionTree *tree1, CollisionTree *tree2 )
{
CollPair collpair;
Cloth *cloth1=NULL, *cloth2=NULL;
@@ -845,38 +846,38 @@ void cloth_collision_moving_tris(ClothModifierData *clmd, ClothModifierData *col
int numsolutions = 0;
float a[3], b[3], c[3], d[3], e[3], f[3], solution[3];
- for(i = 0; i < 2; i++)
- {
+ for ( i = 0; i < 2; i++ )
+ {
cloth1 = clmd->clothObject;
cloth2 = coll_clmd->clothObject;
-
+
verts1 = cloth1->verts;
verts2 = cloth2->verts;
-
- face1 = &(cloth1->mfaces[tree1->tri_index]);
- face2 = &(cloth2->mfaces[tree2->tri_index]);
-
+
+ face1 = & ( cloth1->mfaces[tree1->tri_index] );
+ face2 = & ( cloth2->mfaces[tree2->tri_index] );
+
// check all possible pairs of triangles
- if(i == 0)
+ if ( i == 0 )
{
collpair.ap1 = face1->v1;
collpair.ap2 = face1->v2;
collpair.ap3 = face1->v3;
-
+
collpair.pointsb[0] = face2->v1;
collpair.pointsb[1] = face2->v2;
collpair.pointsb[2] = face2->v3;
collpair.pointsb[3] = face2->v4;
}
-
- if(i == 1)
+
+ if ( i == 1 )
{
- if(face1->v4)
+ if ( face1->v4 )
{
collpair.ap1 = face1->v3;
collpair.ap2 = face1->v4;
collpair.ap3 = face1->v1;
-
+
collpair.pointsb[0] = face2->v1;
collpair.pointsb[1] = face2->v2;
collpair.pointsb[2] = face2->v3;
@@ -885,143 +886,143 @@ void cloth_collision_moving_tris(ClothModifierData *clmd, ClothModifierData *col
else
i++;
}
-
+
// calc SIPcode (?)
-
- if(i < 2)
+
+ if ( i < 2 )
{
- VECSUB(a, verts1[collpair.ap2].xold, verts1[collpair.ap1].xold);
- VECSUB(b, verts1[collpair.ap2].v, verts1[collpair.ap1].v);
- VECSUB(c, verts1[collpair.ap3].xold, verts1[collpair.ap1].xold);
- VECSUB(d, verts1[collpair.ap3].v, verts1[collpair.ap1].v);
-
- for(j = 0; j < 4; j++)
- {
- if((j==3) && !(face2->v4))
+ VECSUB ( a, verts1[collpair.ap2].xold, verts1[collpair.ap1].xold );
+ VECSUB ( b, verts1[collpair.ap2].v, verts1[collpair.ap1].v );
+ VECSUB ( c, verts1[collpair.ap3].xold, verts1[collpair.ap1].xold );
+ VECSUB ( d, verts1[collpair.ap3].v, verts1[collpair.ap1].v );
+
+ for ( j = 0; j < 4; j++ )
+ {
+ if ( ( j==3 ) && ! ( face2->v4 ) )
break;
-
- VECSUB(e, verts2[collpair.pointsb[j]].xold, verts1[collpair.ap1].xold);
- VECSUB(f, verts2[collpair.pointsb[j]].v, verts1[collpair.ap1].v);
-
- numsolutions = cloth_get_collision_time(a, b, c, d, e, f, solution);
-
- for (k = 0; k < numsolutions; k++)
- {
- if ((solution[k] >= 0.0) && (solution[k] <= 1.0))
+
+ VECSUB ( e, verts2[collpair.pointsb[j]].xold, verts1[collpair.ap1].xold );
+ VECSUB ( f, verts2[collpair.pointsb[j]].v, verts1[collpair.ap1].v );
+
+ numsolutions = cloth_get_collision_time ( a, b, c, d, e, f, solution );
+
+ for ( k = 0; k < numsolutions; k++ )
+ {
+ if ( ( solution[k] >= 0.0 ) && ( solution[k] <= 1.0 ) )
{
//float out_collisionTime = solution[k];
-
- // TODO: check for collisions
-
+
+ // TODO: check for collisions
+
// TODO: put into (point-face) collision list
-
+
// printf("Moving found!\n");
-
+
}
}
-
+
// TODO: check borders for collisions
}
-
+
}
}
}
-void cloth_collision_moving(ClothModifierData *clmd, ClothModifierData *coll_clmd, CollisionTree *tree1, CollisionTree *tree2)
+void cloth_collision_moving ( ClothModifierData *clmd, ClothModifierData *coll_clmd, CollisionTree *tree1, CollisionTree *tree2 )
{
// TODO: check for adjacent
- cloth_collision_moving_edges(clmd, coll_clmd, tree1, tree2);
-
- cloth_collision_moving_tris(clmd, coll_clmd, tree1, tree2);
- cloth_collision_moving_tris(coll_clmd, clmd, tree2, tree1);
+ cloth_collision_moving_edges ( clmd, coll_clmd, tree1, tree2 );
+
+ cloth_collision_moving_tris ( clmd, coll_clmd, tree1, tree2 );
+ cloth_collision_moving_tris ( coll_clmd, clmd, tree2, tree1 );
}
-void cloth_free_collision_list(ClothModifierData *clmd)
+void cloth_free_collision_list ( ClothModifierData *clmd )
{
// free collision list
- if(clmd->coll_parms->collision_list)
+ if ( clmd->coll_parms->collision_list )
{
LinkNode *search = clmd->coll_parms->collision_list;
- while(search)
+ while ( search )
{
CollPair *coll_pair = search->link;
-
- MEM_freeN(coll_pair);
+
+ MEM_freeN ( coll_pair );
search = search->next;
}
- BLI_linklist_free(clmd->coll_parms->collision_list,NULL);
-
+ BLI_linklist_free ( clmd->coll_parms->collision_list,NULL );
+
clmd->coll_parms->collision_list = NULL;
}
}
-int cloth_bvh_objcollisions_do(ClothModifierData * clmd, CollisionModifierData *collmd, float step, float dt)
+int cloth_bvh_objcollisions_do ( ClothModifierData * clmd, CollisionModifierData *collmd, float step, float dt )
{
Cloth *cloth = clmd->clothObject;
- BVH *cloth_bvh=(BVH *) cloth->tree;
+ BVH *cloth_bvh= ( BVH * ) cloth->tree;
long i=0, j = 0, numfaces = 0, numverts = 0;
ClothVertex *verts = NULL;
int ret = 0;
unsigned int result = 0;
float tnull[3] = {0,0,0};
-
+
numfaces = clmd->clothObject->numfaces;
numverts = clmd->clothObject->numverts;
-
+
verts = cloth->verts;
-
- if (collmd->bvh)
+
+ if ( collmd->bvh )
{
/* get pointer to bounding volume hierarchy */
BVH *coll_bvh = collmd->bvh;
-
+
/* move object to position (step) in time */
- collision_move_object(collmd, step + dt, step);
-
+ collision_move_object ( collmd, step + dt, step );
+
/* search for overlapping collision pairs */
- bvh_traverse((ModifierData *)clmd, (ModifierData *)collmd, cloth_bvh->root, coll_bvh->root, step, cloth_collision_static, 0);
+ bvh_traverse ( ( ModifierData * ) clmd, ( ModifierData * ) collmd, cloth_bvh->root, coll_bvh->root, step, cloth_collision_static, 0 );
}
else
{
- if(G.rt > 0)
- printf ("cloth_bvh_objcollision: found a collision object with clothObject or collData NULL.\n");
+ if ( G.rt > 0 )
+ printf ( "cloth_bvh_objcollision: found a collision object with clothObject or collData NULL.\n" );
}
-
+
// process all collisions (calculate impulses, TODO: also repulses if distance too short)
result = 1;
- for(j = 0; j < 5; j++) // 5 is just a value that ensures convergence
+ for ( j = 0; j < 5; j++ ) // 5 is just a value that ensures convergence
{
result = 0;
-
- if (collmd->bvh)
- result += cloth_collision_response_static(clmd, collmd);
-
- // apply impulses in parallel
- if(result)
- for(i = 0; i < numverts; i++)
- {
- // calculate "velocities" (just xnew = xold + v; no dt in v)
- if(verts[i].impulse_count)
+
+ if ( collmd->bvh )
+ result += cloth_collision_response_static ( clmd, collmd );
+
+ // apply impulses in parallel
+ if ( result )
+ for ( i = 0; i < numverts; i++ )
{
- VECADDMUL(verts[i].tv, verts[i].impulse, 1.0f / verts[i].impulse_count);
- VECCOPY(verts[i].impulse, tnull);
- verts[i].impulse_count = 0;
-
- ret++;
+ // calculate "velocities" (just xnew = xold + v; no dt in v)
+ if ( verts[i].impulse_count )
+ {
+ VECADDMUL ( verts[i].tv, verts[i].impulse, 1.0f / verts[i].impulse_count );
+ VECCOPY ( verts[i].impulse, tnull );
+ verts[i].impulse_count = 0;
+
+ ret++;
+ }
}
- }
-
- if(!result)
+
+ if ( !result )
break;
}
-
- cloth_free_collision_list(clmd);
-
+
+ cloth_free_collision_list ( clmd );
+
return ret;
}
// cloth - object collisions
-int cloth_bvh_objcollision(ClothModifierData * clmd, float step, float dt)
+int cloth_bvh_objcollision ( ClothModifierData * clmd, float step, float dt )
{
Base *base=NULL;
CollisionModifierData *collmd=NULL;
@@ -1029,170 +1030,170 @@ int cloth_bvh_objcollision(ClothModifierData * clmd, float step, float dt)
Object *coll_ob=NULL;
BVH *cloth_bvh=NULL;
long i=0, j = 0, numfaces = 0, numverts = 0;
- unsigned int result = 0, rounds = 0; // result counts applied collisions; ic is for debug output;
+ unsigned int result = 0, rounds = 0; // result counts applied collisions; ic is for debug output;
ClothVertex *verts = NULL;
int ret = 0;
ClothModifierData *tclmd;
int collisions = 0, count = 0;
- if ((clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_COLLOBJ) || !(((Cloth *)clmd->clothObject)->tree))
+ if ( ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_COLLOBJ ) || ! ( ( ( Cloth * ) clmd->clothObject )->tree ) )
{
return 0;
}
-
+
cloth = clmd->clothObject;
verts = cloth->verts;
- cloth_bvh = (BVH *) cloth->tree;
+ cloth_bvh = ( BVH * ) cloth->tree;
numfaces = clmd->clothObject->numfaces;
numverts = clmd->clothObject->numverts;
-
+
////////////////////////////////////////////////////////////
// static collisions
////////////////////////////////////////////////////////////
// update cloth bvh
- bvh_update_from_cloth(clmd, 0); // 0 means STATIC, 1 means MOVING (see later in this function)
-
+ bvh_update_from_cloth ( clmd, 0 ); // 0 means STATIC, 1 means MOVING (see later in this function)
+
do
{
result = 0;
- clmd->coll_parms->collision_list = NULL;
-
+ clmd->coll_parms->collision_list = NULL;
+
// check all collision objects
- for (base = G.scene->base.first; base; base = base->next)
+ for ( base = G.scene->base.first; base; base = base->next )
{
coll_ob = base->object;
- collmd = (CollisionModifierData *) modifiers_findByType (coll_ob, eModifierType_Collision);
-
- if (!collmd)
+ collmd = ( CollisionModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Collision );
+
+ if ( !collmd )
{
- if(coll_ob->dup_group)
+ if ( coll_ob->dup_group )
{
GroupObject *go;
Group *group = coll_ob->dup_group;
-
- for(go= group->gobject.first; go; go= go->next)
+
+ for ( go= group->gobject.first; go; go= go->next )
{
coll_ob = go->ob;
-
- collmd = (CollisionModifierData *) modifiers_findByType (coll_ob, eModifierType_Collision);
-
- if (!collmd)
+
+ collmd = ( CollisionModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Collision );
+
+ if ( !collmd )
continue;
-
- tclmd = (ClothModifierData *) modifiers_findByType (coll_ob, eModifierType_Cloth);
- if(tclmd == clmd)
+
+ tclmd = ( ClothModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Cloth );
+ if ( tclmd == clmd )
continue;
-
- ret += cloth_bvh_objcollisions_do(clmd, collmd, step, dt);
+
+ ret += cloth_bvh_objcollisions_do ( clmd, collmd, step, dt );
}
}
}
else
{
- tclmd = (ClothModifierData *) modifiers_findByType (coll_ob, eModifierType_Cloth);
- if(tclmd == clmd)
+ tclmd = ( ClothModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Cloth );
+ if ( tclmd == clmd )
continue;
-
- ret += cloth_bvh_objcollisions_do(clmd, collmd, step, dt);
+
+ ret += cloth_bvh_objcollisions_do ( clmd, collmd, step, dt );
}
}
rounds++;
-
+
////////////////////////////////////////////////////////////
// update positions
// this is needed for bvh_calc_DOP_hull_moving() [kdop.c]
////////////////////////////////////////////////////////////
-
+
// verts come from clmd
- for(i = 0; i < numverts; i++)
+ for ( i = 0; i < numverts; i++ )
{
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL)
- {
- if(verts [i].flags & CLOTH_VERT_FLAG_PINNED)
+ if ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL )
+ {
+ if ( verts [i].flags & CLOTH_VERT_FLAG_PINNED )
{
continue;
}
}
-
- VECADD(verts[i].tx, verts[i].txold, verts[i].tv);
+
+ VECADD ( verts[i].tx, verts[i].txold, verts[i].tv );
}
////////////////////////////////////////////////////////////
-
-
+
+
////////////////////////////////////////////////////////////
// Test on *simple* selfcollisions
////////////////////////////////////////////////////////////
- if (clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_SELF)
+ if ( clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_SELF )
{
collisions = 1;
verts = cloth->verts; // needed for openMP
-
- for(count = 0; count < clmd->coll_parms->self_loop_count; count++)
- {
- if(collisions)
+
+ for ( count = 0; count < clmd->coll_parms->self_loop_count; count++ )
+ {
+ if ( collisions )
{
collisions = 0;
- #pragma omp parallel for private(i,j, collisions) shared(verts, ret)
- for(i = 0; i < cloth->numverts; i++)
+#pragma omp parallel for private(i,j, collisions) shared(verts, ret)
+ for ( i = 0; i < cloth->numverts; i++ )
{
- for(j = i + 1; j < cloth->numverts; j++)
+ for ( j = i + 1; j < cloth->numverts; j++ )
{
float temp[3];
float length = 0;
- float mindistance = clmd->coll_parms->selfepsilon*(cloth->verts[i].avg_spring_len + cloth->verts[j].avg_spring_len);
-
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL)
- {
- if((cloth->verts [i].flags & CLOTH_VERT_FLAG_PINNED)
- && (cloth->verts [j].flags & CLOTH_VERT_FLAG_PINNED))
+ float mindistance = clmd->coll_parms->selfepsilon* ( cloth->verts[i].avg_spring_len + cloth->verts[j].avg_spring_len );
+
+ if ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL )
+ {
+ if ( ( cloth->verts [i].flags & CLOTH_VERT_FLAG_PINNED )
+ && ( cloth->verts [j].flags & CLOTH_VERT_FLAG_PINNED ) )
{
continue;
}
}
-
- VECSUB(temp, verts[i].tx, verts[j].tx);
-
- if ((ABS(temp[0]) > mindistance) || (ABS(temp[1]) > mindistance) || (ABS(temp[2]) > mindistance)) continue;
-
+
+ VECSUB ( temp, verts[i].tx, verts[j].tx );
+
+ if ( ( ABS ( temp[0] ) > mindistance ) || ( ABS ( temp[1] ) > mindistance ) || ( ABS ( temp[2] ) > mindistance ) ) continue;
+
// check for adjacent points (i must be smaller j)
- if(BLI_edgehash_haskey (cloth->edgehash, i, j ))
+ if ( BLI_edgehash_haskey ( cloth->edgehash, i, j ) )
{
continue;
}
-
- length = Normalize(temp);
-
- if(length < mindistance)
+
+ length = Normalize ( temp );
+
+ if ( length < mindistance )
{
float correction = mindistance - length;
-
- if(cloth->verts [i].flags & CLOTH_VERT_FLAG_PINNED)
+
+ if ( cloth->verts [i].flags & CLOTH_VERT_FLAG_PINNED )
{
- VecMulf(temp, -correction);
- VECADD(verts[j].tx, verts[j].tx, temp);
+ VecMulf ( temp, -correction );
+ VECADD ( verts[j].tx, verts[j].tx, temp );
}
- else if(cloth->verts [j].flags & CLOTH_VERT_FLAG_PINNED)
+ else if ( cloth->verts [j].flags & CLOTH_VERT_FLAG_PINNED )
{
- VecMulf(temp, correction);
- VECADD(verts[i].tx, verts[i].tx, temp);
+ VecMulf ( temp, correction );
+ VECADD ( verts[i].tx, verts[i].tx, temp );
}
else
{
- VecMulf(temp, -correction*0.5);
- VECADD(verts[j].tx, verts[j].tx, temp);
-
- VECSUB(verts[i].tx, verts[i].tx, temp);
+ VecMulf ( temp, -correction*0.5 );
+ VECADD ( verts[j].tx, verts[j].tx, temp );
+
+ VECSUB ( verts[i].tx, verts[i].tx, temp );
}
-
+
collisions = 1;
-
- if(!ret)
- {
- #pragma omp critical
- {
- ret = 1;
- }
+
+ if ( !ret )
+ {
+#pragma omp critical
+ {
+ ret = 1;
+ }
}
}
}
@@ -1200,22 +1201,22 @@ int cloth_bvh_objcollision(ClothModifierData * clmd, float step, float dt)
}
}
////////////////////////////////////////////////////////////
-
+
////////////////////////////////////////////////////////////
// SELFCOLLISIONS: update velocities
////////////////////////////////////////////////////////////
- if(ret)
+ if ( ret )
{
- for(i = 0; i < cloth->numverts; i++)
+ for ( i = 0; i < cloth->numverts; i++ )
{
- if(!(cloth->verts [i].flags & CLOTH_VERT_FLAG_PINNED))
- VECSUB(verts[i].tv, verts[i].tx, verts[i].txold);
+ if ( ! ( cloth->verts [i].flags & CLOTH_VERT_FLAG_PINNED ) )
+ VECSUB ( verts[i].tv, verts[i].tx, verts[i].txold );
}
}
////////////////////////////////////////////////////////////
}
}
- while(result && (clmd->coll_parms->loop_count>rounds));
-
- return MIN2(ret, 1);
+ while ( result && ( clmd->coll_parms->loop_count>rounds ) );
+
+ return MIN2 ( ret, 1 );
}
diff --git a/source/blender/blenkernel/intern/colortools.c b/source/blender/blenkernel/intern/colortools.c
index e4336576e2a..295b8fe3552 100644
--- a/source/blender/blenkernel/intern/colortools.c
+++ b/source/blender/blenkernel/intern/colortools.c
@@ -592,7 +592,8 @@ float curvemap_evaluateF(CurveMap *cuma, float value)
fi= (value-cuma->mintable)*cuma->range;
i= (int)fi;
- if(fi<0.0f || fi>cuma->range)
+ /* fi is table float index and should check against table range i.e. [0.0 CM_TABLE] */
+ if(fi<0.0f || fi>CM_TABLE)
return curvemap_calc_extend(cuma, value, &cuma->table[0].x, &cuma->table[CM_TABLE].x);
else {
if(i<0) return cuma->table[0].y;
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index 6cd2147391e..88ae02cd418 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): 2007, Joshua Leung, major recode
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
@@ -3178,12 +3175,6 @@ static void transform_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *
}
}
- /* convert radians<->degrees */
- if (data->to == 1) {
- /* if output is rotation, convert to radians from degrees */
- for (i=0; i<3; i++)
- sval[i] = sval[i] / 180 * M_PI;
- }
/* apply transforms */
switch (data->to) {
@@ -3195,11 +3186,14 @@ static void transform_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *
for (i=0; i<3; i++) {
float tmin, tmax;
- /* convert destination min/max ranges from degrees to radians */
- tmin= data->to_min[i] / M_PI * 180;
- tmax= data->to_max[i] / M_PI * 180;
+ tmin= data->to_min[i];
+ tmax= data->to_max[i];
+ /* all values here should be in degrees */
eul[i]= tmin + (sval[data->map[i]] * (tmax - tmin));
+
+ /* now convert final value back to radians */
+ eul[i] = eul[i] / 180 * M_PI;
}
break;
default: /* location */
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 0b33cc3a75b..0db327f6efb 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h> // floor
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index d8ce311b5ca..663c94e5155 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -97,11 +97,16 @@ static void layerCopy_mdeformvert(const void *source, void *dest,
for(i = 0; i < count; ++i) {
MDeformVert *dvert = (MDeformVert *)((char *)dest + i * size);
- MDeformWeight *dw = MEM_callocN(dvert->totweight * sizeof(*dw),
- "layerCopy_mdeformvert dw");
- memcpy(dw, dvert->dw, dvert->totweight * sizeof(*dw));
- dvert->dw = dw;
+ if(dvert->totweight) {
+ MDeformWeight *dw = MEM_callocN(dvert->totweight * sizeof(*dw),
+ "layerCopy_mdeformvert dw");
+
+ memcpy(dw, dvert->dw, dvert->totweight * sizeof(*dw));
+ dvert->dw = dw;
+ }
+ else
+ dvert->dw = NULL;
}
}
diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c
index 9356ba14071..ab53571b62d 100644
--- a/source/blender/blenkernel/intern/deform.c
+++ b/source/blender/blenkernel/intern/deform.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index 5f95ce61aca..5b84617f8d5 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
@@ -49,6 +46,7 @@
#include "DNA_effect_types.h"
#include "DNA_group_types.h"
#include "DNA_lattice_types.h"
+#include "DNA_lamp_types.h"
#include "DNA_key_types.h"
#include "DNA_mesh_types.h"
#include "DNA_modifier_types.h"
@@ -74,6 +72,7 @@
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BKE_particle.h"
+#include "BKE_pointcache.h"
#include "BKE_utildefines.h"
#include "BKE_scene.h"
@@ -326,9 +325,9 @@ static void dag_add_driver_relation(Ipo *ipo, DagForest *dag, DagNode *node, int
ob = *oba;
node1 = dag_get_node(dag, ob);
if (ob->type == OB_ARMATURE)
- dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB);
+ dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Python Ipo Driver");
else
- dag_add_relation(dag, node1, node, isdata?DAG_RL_OB_DATA:DAG_RL_OB_OB);
+ dag_add_relation(dag, node1, node, isdata?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Python Ipo Driver");
oba++;
}
@@ -339,9 +338,9 @@ static void dag_add_driver_relation(Ipo *ipo, DagForest *dag, DagNode *node, int
else if (icu->driver->ob) {
node1 = dag_get_node(dag, icu->driver->ob);
if(icu->driver->blocktype==ID_AR)
- dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB);
+ dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Ipo Driver");
else
- dag_add_relation(dag, node1, node, isdata?DAG_RL_OB_DATA:DAG_RL_OB_OB);
+ dag_add_relation(dag, node1, node, isdata?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Ipo Driver");
}
}
}
@@ -362,7 +361,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
if ((ob->data) && (mask&DAG_RL_DATA)) {
node2 = dag_get_node(dag,ob->data);
- dag_add_relation(dag,node,node2,DAG_RL_DATA);
+ dag_add_relation(dag,node,node2,DAG_RL_DATA, "Object-Data Relation");
node2->first_ancestor = ob;
node2->ancestor_count += 1;
}
@@ -387,11 +386,11 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
node3 = dag_get_node(dag, ct->tar);
if (ct->subtarget[0])
- dag_add_relation(dag,node3,node, DAG_RL_OB_DATA|DAG_RL_DATA_DATA);
+ dag_add_relation(dag,node3,node, DAG_RL_OB_DATA|DAG_RL_DATA_DATA, cti->name);
else if(ELEM(con->type, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_CLAMPTO))
- dag_add_relation(dag,node3,node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(dag,node3,node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA, cti->name);
else
- dag_add_relation(dag,node3,node, DAG_RL_OB_DATA);
+ dag_add_relation(dag,node3,node, DAG_RL_OB_DATA, cti->name);
}
}
@@ -439,7 +438,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
for(amod= strip->modifiers.first; amod; amod= amod->next) {
if(amod->ob) {
node2 = dag_get_node(dag, amod->ob);
- dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "NLA Strip Modifier");
}
}
}
@@ -459,46 +458,55 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
switch(ob->partype) {
case PARSKEL:
- dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_OB);
+ dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_OB, "Parent");
break;
case PARVERT1: case PARVERT3: case PARBONE:
- dag_add_relation(dag,node2,node,DAG_RL_DATA_OB|DAG_RL_OB_OB);
+ dag_add_relation(dag,node2,node,DAG_RL_DATA_OB|DAG_RL_OB_OB, "Vertex Parent");
break;
default:
if(ob->parent->type==OB_LATTICE)
- dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_OB);
+ dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_OB, "Lattice Parent");
else if(ob->parent->type==OB_CURVE) {
Curve *cu= ob->parent->data;
if(cu->flag & CU_PATH)
- dag_add_relation(dag,node2,node,DAG_RL_DATA_OB|DAG_RL_OB_OB);
+ dag_add_relation(dag,node2,node,DAG_RL_DATA_OB|DAG_RL_OB_OB, "Curve Parent");
else
- dag_add_relation(dag,node2,node,DAG_RL_OB_OB);
+ dag_add_relation(dag,node2,node,DAG_RL_OB_OB, "Curve Parent");
}
else
- dag_add_relation(dag,node2,node,DAG_RL_OB_OB);
+ dag_add_relation(dag,node2,node,DAG_RL_OB_OB, "Curve Parent");
}
/* exception case: parent is duplivert */
if(ob->type==OB_MBALL && (ob->parent->transflag & OB_DUPLIVERTS)) {
- dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_OB);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_OB, "Duplivert");
}
addtoroot = 0;
}
if (ob->track) {
node2 = dag_get_node(dag,ob->track);
- dag_add_relation(dag,node2,node,DAG_RL_OB_OB);
+ dag_add_relation(dag,node2,node,DAG_RL_OB_OB, "Track To");
addtoroot = 0;
}
if (ob->proxy) {
node2 = dag_get_node(dag, ob->proxy);
- dag_add_relation(dag, node, node2, DAG_RL_DATA_DATA|DAG_RL_OB_OB);
+ dag_add_relation(dag, node, node2, DAG_RL_DATA_DATA|DAG_RL_OB_OB, "Proxy");
/* inverted relation, so addtoroot shouldn't be set to zero */
}
if (ob->type==OB_CAMERA) {
Camera *cam = (Camera *)ob->data;
+ if (cam->ipo) {
+ dag_add_driver_relation(cam->ipo, dag, node, 1);
+ }
if (cam->dof_ob) {
node2 = dag_get_node(dag, cam->dof_ob);
- dag_add_relation(dag,node2,node,DAG_RL_OB_OB);
+ dag_add_relation(dag,node2,node,DAG_RL_OB_OB, "Camera DoF");
+ }
+ }
+ if (ob->type==OB_LAMP) {
+ Lamp *la = (Lamp *)ob->data;
+ if (la->ipo) {
+ dag_add_driver_relation(la->ipo, dag, node, 1);
}
}
if (ob->transflag & OB_DUPLI) {
@@ -508,7 +516,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
if(go->ob) {
node2 = dag_get_node(dag, go->ob);
/* node2 changes node1, this keeps animations updated in groups?? not logical? */
- dag_add_relation(dag, node2, node, DAG_RL_OB_OB);
+ dag_add_relation(dag, node2, node, DAG_RL_OB_OB, "Dupligroup");
}
}
}
@@ -525,7 +533,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
Object *ob1= base->object;
if((ob1->pd->deflect) && (ob1 != ob)) {
node2 = dag_get_node(dag, ob1);
- dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Softbody Collision");
}
}
}
@@ -536,18 +544,18 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
Object *mom= find_basis_mball(ob);
if(mom!=ob) {
node2 = dag_get_node(dag, mom);
- dag_add_relation(dag,node,node2,DAG_RL_DATA_DATA|DAG_RL_OB_DATA); // mom depends on children!
+ dag_add_relation(dag,node,node2,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Metaball"); // mom depends on children!
}
}
else if (ob->type==OB_CURVE) {
Curve *cu= ob->data;
if(cu->bevobj) {
node2 = dag_get_node(dag, cu->bevobj);
- dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Curve Bevel");
}
if(cu->taperobj) {
node2 = dag_get_node(dag, cu->taperobj);
- dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Curve Taper");
}
if(cu->ipo)
dag_add_driver_relation(cu->ipo, dag, node, 1);
@@ -557,7 +565,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
Curve *cu= ob->data;
if(cu->textoncurve) {
node2 = dag_get_node(dag, cu->textoncurve);
- dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Texture On Curve");
}
}
else if(ob->type==OB_MESH) {
@@ -568,7 +576,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
/* ob location depends on itself */
if((paf->flag & PAF_STATIC)==0)
- dag_add_relation(dag, node, node, DAG_RL_OB_DATA);
+ dag_add_relation(dag, node, node, DAG_RL_OB_DATA, "Particle-Object Relation");
listb= pdInitEffectors(ob, paf->group); /* note, makes copy... */
if(listb) {
@@ -579,9 +587,9 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
if(pd->forcefield) {
node2 = dag_get_node(dag, ob1);
if(pd->forcefield==PFIELD_GUIDE)
- dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Particle Field");
else
- dag_add_relation(dag, node2, node, DAG_RL_OB_DATA);
+ dag_add_relation(dag, node2, node, DAG_RL_OB_DATA, "Particle Field");
}
}
@@ -598,23 +606,25 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
for(; psys; psys=psys->next) {
ParticleSettings *part= psys->part;
- dag_add_relation(dag, node, node, DAG_RL_OB_DATA);
+ dag_add_relation(dag, node, node, DAG_RL_OB_DATA, "Particle-Object Relation");
if(part->phystype==PART_PHYS_KEYED && psys->keyed_ob &&
BLI_findlink(&psys->keyed_ob->particlesystem,psys->keyed_psys-1)) {
node2 = dag_get_node(dag, psys->keyed_ob);
- dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA, "Particle Keyed Physics");
}
if(part->draw_as == PART_DRAW_OB && part->dup_ob) {
node2 = dag_get_node(dag, part->dup_ob);
- dag_add_relation(dag, node, node2, DAG_RL_OB_OB);
+ dag_add_relation(dag, node, node2, DAG_RL_OB_OB, "Particle Object Visualisation");
+ if(part->dup_ob->type == OB_MBALL)
+ dag_add_relation(dag, node, node2, DAG_RL_DATA_DATA, "Particle Object Visualisation");
}
if(part->draw_as == PART_DRAW_GR && part->dup_group) {
for(go=part->dup_group->gobject.first; go; go=go->next) {
node2 = dag_get_node(dag, go->ob);
- dag_add_relation(dag, node, node2, DAG_RL_OB_OB);
+ dag_add_relation(dag, node, node2, DAG_RL_OB_OB, "Particle Group Visualisation");
}
}
@@ -629,22 +639,22 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
if(nec->type & PSYS_EC_EFFECTOR) {
node2 = dag_get_node(dag, ob1);
if(ob1->pd->forcefield==PFIELD_GUIDE)
- dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Particle Field");
else
- dag_add_relation(dag, node2, node, DAG_RL_OB_DATA);
+ dag_add_relation(dag, node2, node, DAG_RL_OB_DATA, "Particle Field");
}
else if(nec->type & PSYS_EC_DEFLECT) {
node2 = dag_get_node(dag, ob1);
- dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Particle Collision");
}
else if(nec->type & PSYS_EC_PARTICLE) {
node2 = dag_get_node(dag, ob1);
- dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA, "Particle Field");
}
if(nec->type & PSYS_EC_REACTOR) {
node2 = dag_get_node(dag, ob1);
- dag_add_relation(dag, node, node2, DAG_RL_DATA_DATA);
+ dag_add_relation(dag, node, node2, DAG_RL_DATA_DATA, "Particle Reactor");
}
}
}
@@ -669,12 +679,12 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
node2 = dag_get_node(dag, obt);
if (ELEM(con->type, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_CLAMPTO))
- dag_add_relation(dag, node2, node, DAG_RL_DATA_OB|DAG_RL_OB_OB);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_OB|DAG_RL_OB_OB, cti->name);
else {
if (ELEM3(obt->type, OB_ARMATURE, OB_MESH, OB_LATTICE) && (ct->subtarget[0]))
- dag_add_relation(dag, node2, node, DAG_RL_DATA_OB|DAG_RL_OB_OB);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_OB|DAG_RL_OB_OB, cti->name);
else
- dag_add_relation(dag, node2, node, DAG_RL_OB_OB);
+ dag_add_relation(dag, node2, node, DAG_RL_OB_OB, cti->name);
}
addtoroot = 0;
}
@@ -685,7 +695,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
}
if (addtoroot == 1 )
- dag_add_relation(dag,scenenode,node,DAG_RL_SCENE);
+ dag_add_relation(dag,scenenode,node,DAG_RL_SCENE, "Scene Relation");
}
struct DagForest *build_dag(struct Scene *sce, short mask)
@@ -876,7 +886,7 @@ DagNode * dag_get_sub_node (DagForest *forest,void * fob)
return node;
}
-void dag_add_relation(DagForest *forest, DagNode *fob1, DagNode *fob2, short rel)
+void dag_add_relation(DagForest *forest, DagNode *fob1, DagNode *fob2, short rel, char *name)
{
DagAdjList *itA = fob1->child;
@@ -894,10 +904,11 @@ void dag_add_relation(DagForest *forest, DagNode *fob1, DagNode *fob2, short rel
itA->type = rel;
itA->count = 1;
itA->next = fob1->child;
+ itA->name = name;
fob1->child = itA;
}
-static void dag_add_parent_relation(DagForest *forest, DagNode *fob1, DagNode *fob2, short rel)
+static void dag_add_parent_relation(DagForest *forest, DagNode *fob1, DagNode *fob2, short rel, char *name)
{
DagAdjList *itA = fob2->parent;
@@ -915,9 +926,66 @@ static void dag_add_parent_relation(DagForest *forest, DagNode *fob1, DagNode *f
itA->type = rel;
itA->count = 1;
itA->next = fob2->parent;
+ itA->name = name;
fob2->parent = itA;
}
+static char *dag_node_name(DagNode *node)
+{
+ if(node->ob == NULL)
+ return "null";
+ else if(ugly_hack_sorry)
+ return ((ID*)(node->ob))->name+2;
+ else
+ return ((bPoseChannel*)(node->ob))->name;
+}
+
+#if 0
+static void dag_node_print_dependencies(DagNode *node)
+{
+ DagAdjList *itA;
+
+ printf("%s depends on:\n", dag_node_name(node));
+
+ for(itA= node->parent; itA; itA= itA->next)
+ printf(" %s through %s\n", dag_node_name(itA->node), itA->name);
+ printf("\n");
+}
+#endif
+
+static int dag_node_print_dependency_recurs(DagNode *node, DagNode *endnode)
+{
+ DagAdjList *itA;
+
+ if(node->color == DAG_BLACK)
+ return 0;
+
+ node->color= DAG_BLACK;
+
+ if(node == endnode)
+ return 1;
+
+ for(itA= node->parent; itA; itA= itA->next) {
+ if(dag_node_print_dependency_recurs(itA->node, endnode)) {
+ printf(" %s depends on %s through %s.\n", dag_node_name(node), dag_node_name(itA->node), itA->name);
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+static void dag_node_print_dependency_cycle(DagForest *dag, DagNode *startnode, DagNode *endnode, char *name)
+{
+ DagNode *node;
+
+ for(node = dag->DagNode.first; node; node= node->next)
+ node->color= DAG_WHITE;
+
+ printf(" %s depends on %s through %s.\n", dag_node_name(endnode), dag_node_name(startnode), name);
+ dag_node_print_dependency_recurs(startnode, endnode);
+ printf("\n");
+}
/*
* MainDAG is the DAG of all objects in current scene
@@ -1647,6 +1715,7 @@ static void flush_update_node(DagNode *node, unsigned int layer, int curtime)
ob= node->ob;
if(ob && (ob->recalc & OB_RECALC)) {
all_layer= ob->lay;
+
/* got an object node that changes, now check relations */
for(itA = node->child; itA; itA= itA->next) {
all_layer |= itA->lay;
@@ -1720,18 +1789,24 @@ static void flush_update_node(DagNode *node, unsigned int layer, int curtime)
}
/* node was checked to have lasttime != curtime , and is of type ID_OB */
-static unsigned int flush_layer_node(DagNode *node, int curtime)
+static unsigned int flush_layer_node(Scene *sce, DagNode *node, int curtime)
{
+ Base *base;
DagAdjList *itA;
node->lasttime= curtime;
- node->lay= ((Object *)node->ob)->lay;
+ node->lay= 0;
+ for(base= sce->base.first; base; base= base->next) {
+ if(node->ob == base->object) {
+ node->lay= ((Object *)node->ob)->lay;
+ break;
+ }
+ }
for(itA = node->child; itA; itA= itA->next) {
if(itA->node->type==ID_OB) {
if(itA->node->lasttime!=curtime) {
- itA->lay= flush_layer_node(itA->node, curtime); // lay is only set once for each relation
- //printf("layer %d for relation %s to %s\n", itA->lay, ((Object *)node->ob)->id.name, ((Object *)itA->node->ob)->id.name);
+ itA->lay= flush_layer_node(sce, itA->node, curtime); // lay is only set once for each relation
}
else itA->lay= itA->node->lay;
@@ -1742,11 +1817,32 @@ static unsigned int flush_layer_node(DagNode *node, int curtime)
return node->lay;
}
+/* node was checked to have lasttime != curtime , and is of type ID_OB */
+static void flush_pointcache_reset(DagNode *node, int curtime)
+{
+ DagAdjList *itA;
+ Object *ob;
+
+ node->lasttime= curtime;
+
+ for(itA = node->child; itA; itA= itA->next) {
+ if(itA->node->type==ID_OB) {
+ if(itA->node->lasttime!=curtime) {
+ ob= (Object*)(node->ob);
+ if(BKE_ptcache_object_reset(ob, PTCACHE_RESET_DEPSGRAPH))
+ ob->recalc |= OB_RECALC_DATA;
+ flush_pointcache_reset(itA->node, curtime);
+ }
+ }
+ }
+}
+
/* flushes all recalc flags in objects down the dependency tree */
-void DAG_scene_flush_update(Scene *sce, unsigned int lay)
+void DAG_scene_flush_update(Scene *sce, unsigned int lay, int time)
{
DagNode *firstnode;
DagAdjList *itA;
+ Object *ob;
int lasttime;
if(sce->theDag==NULL) {
@@ -1755,21 +1851,37 @@ void DAG_scene_flush_update(Scene *sce, unsigned int lay)
}
firstnode= sce->theDag->DagNode.first; // always scene node
+
+ for(itA = firstnode->child; itA; itA= itA->next)
+ itA->lay= 0;
/* first we flush the layer flags */
sce->theDag->time++; // so we know which nodes were accessed
lasttime= sce->theDag->time;
- for(itA = firstnode->child; itA; itA= itA->next) {
+
+ for(itA = firstnode->child; itA; itA= itA->next)
if(itA->node->lasttime!=lasttime && itA->node->type==ID_OB)
- flush_layer_node(itA->node, lasttime);
- }
+ flush_layer_node(sce, itA->node, lasttime);
/* then we use the relationships + layer info to flush update events */
sce->theDag->time++; // so we know which nodes were accessed
lasttime= sce->theDag->time;
- for(itA = firstnode->child; itA; itA= itA->next) {
- if(itA->node->lasttime!=lasttime && itA->node->type==ID_OB)
+ for(itA = firstnode->child; itA; itA= itA->next)
+ if(itA->node->lasttime!=lasttime && itA->node->type==ID_OB)
flush_update_node(itA->node, lay, lasttime);
+
+ /* if update is not due to time change, do pointcache clears */
+ if(!time) {
+ sce->theDag->time++; // so we know which nodes were accessed
+ lasttime= sce->theDag->time;
+ for(itA = firstnode->child; itA; itA= itA->next) {
+ if(itA->node->lasttime!=lasttime && itA->node->type==ID_OB) {
+ ob= (Object*)(itA->node->ob);
+ if(BKE_ptcache_object_reset(ob, PTCACHE_RESET_DEPSGRAPH))
+ ob->recalc |= OB_RECALC_DATA;
+ flush_pointcache_reset(itA->node, lasttime);
+ }
+ }
}
}
@@ -1955,7 +2067,7 @@ void DAG_scene_update_flags(Scene *scene, unsigned int lay)
}
for(sce= scene; sce; sce= sce->set)
- DAG_scene_flush_update(sce, lay);
+ DAG_scene_flush_update(sce, lay, 1);
/* test: set time flag, to disable baked systems to update */
for(SETLOOPER(scene, base)) {
@@ -2005,7 +2117,9 @@ void DAG_object_flush_update(Scene *sce, Object *ob, short flag)
{
if(ob==NULL || sce->theDag==NULL) return;
+
ob->recalc |= flag;
+ BKE_ptcache_object_reset(ob, PTCACHE_RESET_DEPSGRAPH);
/* all users of this ob->data should be checked */
/* BUT! displists for curves are still only on cu */
@@ -2018,8 +2132,9 @@ void DAG_object_flush_update(Scene *sce, Object *ob, short flag)
else {
Object *obt;
for (obt=G.main->object.first; obt; obt= obt->id.next) {
- if (obt->data==ob->data) {
+ if (obt != ob && obt->data==ob->data) {
obt->recalc |= OB_RECALC_DATA;
+ BKE_ptcache_object_reset(obt, PTCACHE_RESET_DEPSGRAPH);
}
}
}
@@ -2028,9 +2143,9 @@ void DAG_object_flush_update(Scene *sce, Object *ob, short flag)
}
if(G.curscreen)
- DAG_scene_flush_update(sce, dag_screen_view3d_layers());
+ DAG_scene_flush_update(sce, dag_screen_view3d_layers(), 0);
else
- DAG_scene_flush_update(sce, sce->lay);
+ DAG_scene_flush_update(sce, sce->lay, 0);
}
/* recursively descends tree, each node only checked once */
@@ -2154,9 +2269,10 @@ static void pose_check_cycle(DagForest *dag)
bPoseChannel *pchan= (bPoseChannel *)node->ob;
bPoseChannel *parchan= (bPoseChannel *)itA->node->ob;
- if(pchan && parchan)
- if(pchan->parent!=parchan)
- printf("Cycle in %s to %s\n", pchan->name, parchan->name);
+ if(pchan && parchan) {
+ printf("Cycle detected:\n");
+ dag_node_print_dependency_cycle(dag, itA->node, node, itA->name);
+ }
}
}
}
@@ -2190,8 +2306,8 @@ void DAG_pose_sort(Object *ob)
if(pchan->parent) {
node2 = dag_get_node(dag, pchan->parent);
- dag_add_relation(dag, node2, node, 0);
- dag_add_parent_relation(dag, node2, node, 0);
+ dag_add_relation(dag, node2, node, 0, "Parent Relation");
+ dag_add_parent_relation(dag, node2, node, 0, "Parent Relation");
addtoroot = 0;
}
for (con = pchan->constraints.first; con; con=con->next) {
@@ -2209,8 +2325,8 @@ void DAG_pose_sort(Object *ob)
bPoseChannel *target= get_pose_channel(ob->pose, icu->driver->name);
if(target) {
node2 = dag_get_node(dag, target);
- dag_add_relation(dag, node2, node, 0);
- dag_add_parent_relation(dag, node2, node, 0);
+ dag_add_relation(dag, node2, node, 0, "Ipo Driver");
+ dag_add_parent_relation(dag, node2, node, 0, "Ipo Driver");
/* uncommented this line, results in dependencies
* not being added properly for this constraint,
@@ -2229,9 +2345,9 @@ void DAG_pose_sort(Object *ob)
bPoseChannel *target= get_pose_channel(ob->pose, ct->subtarget);
if (target) {
node2= dag_get_node(dag, target);
- dag_add_relation(dag, node2, node, 0);
- dag_add_parent_relation(dag, node2, node, 0);
-
+ dag_add_relation(dag, node2, node, 0, "IK Constraint");
+ dag_add_parent_relation(dag, node2, node, 0, "IK Constraint");
+
if (con->type==CONSTRAINT_TYPE_KINEMATIC) {
bKinematicConstraint *data = (bKinematicConstraint *)con->data;
bPoseChannel *parchan;
@@ -2246,8 +2362,8 @@ void DAG_pose_sort(Object *ob)
/* Walk to the chain's root */
while (parchan) {
node3= dag_get_node(dag, parchan);
- dag_add_relation(dag, node2, node3, 0);
- dag_add_parent_relation(dag, node2, node3, 0);
+ dag_add_relation(dag, node2, node3, 0, "IK Constraint");
+ dag_add_parent_relation(dag, node2, node3, 0, "IK Constraint");
segcount++;
if (segcount==data->rootbone || segcount>255) break; // 255 is weak
@@ -2263,8 +2379,8 @@ void DAG_pose_sort(Object *ob)
}
}
if (addtoroot == 1 ) {
- dag_add_relation(dag, rootnode, node, 0);
- dag_add_parent_relation(dag, rootnode, node, 0);
+ dag_add_relation(dag, rootnode, node, 0, "Root Bone Relation");
+ dag_add_parent_relation(dag, rootnode, node, 0, "Root Bone Relation");
}
}
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index a9f009cd876..6f5660b2a3f 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c
index bb228a67381..3cb85bcbb20 100644
--- a/source/blender/blenkernel/intern/effect.c
+++ b/source/blender/blenkernel/intern/effect.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
@@ -1711,7 +1708,7 @@ void build_particle_system(Object *ob)
if( (1) && (ob->fluidsimFlag & OB_FLUIDSIM_ENABLE) && // broken, disabled for now!
(ob->fluidsimSettings) &&
(ob->fluidsimSettings->type == OB_FLUIDSIM_PARTICLE)) {
- char *suffix = "fluidsurface_particles_#";
+ char *suffix = "fluidsurface_particles_####";
char *suffix2 = ".gz";
char filename[256];
char debugStrBuffer[256];
diff --git a/source/blender/blenkernel/intern/exotic.c b/source/blender/blenkernel/intern/exotic.c
index b78efcd4ecf..fb48c875995 100644
--- a/source/blender/blenkernel/intern/exotic.c
+++ b/source/blender/blenkernel/intern/exotic.c
@@ -1,14 +1,11 @@
/* exotic.c
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
* Added dxf_read_arc, dxf_read_ellipse and dxf_read_lwpolyline
* Copyright (C) 2004 by Etheract Software Labs
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* eigen videoscape formaat:
*
diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c
index fc11b3d234d..f3c698ed2b6 100644
--- a/source/blender/blenkernel/intern/font.c
+++ b/source/blender/blenkernel/intern/font.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/blenkernel/intern/idprop.c b/source/blender/blenkernel/intern/idprop.c
index 8ac0ff77832..2ef2f3a1b77 100644
--- a/source/blender/blenkernel/intern/idprop.c
+++ b/source/blender/blenkernel/intern/idprop.c
@@ -1,15 +1,12 @@
/**
* $Id: idprop.c
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joseph Eagar
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "DNA_listBase.h"
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 195f4aa4bbf..3f885017f95 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -1236,24 +1236,16 @@ int BKE_write_ibuf(ImBuf *ibuf, char *name, int imtype, int subimtype, int quali
void BKE_makepicstring(char *string, char *base, int frame, int imtype)
{
- short i, len, digits= 4; /* digits in G.scene? */
- char num[10];
-
if (string==NULL) return;
BLI_strncpy(string, base, FILE_MAX - 10); /* weak assumption */
+
+ /* if we dont have any #'s to insert numbers into, use 4 numbers by default */
+ if (strchr(string, '#')==NULL)
+ strcat(string, "####"); /* 4 numbers */
+
BLI_convertstringcode(string, G.sce, frame);
- len= strlen(string);
-
- i= digits - sprintf(num, "%d", frame);
- for(; i>0; i--){
- string[len]= '0';
- len++;
- }
- string[len]= 0;
- strcat(string, num);
-
if(G.scene->r.scemode & R_EXTENSION)
BKE_add_image_extension(string, imtype);
diff --git a/source/blender/blenkernel/intern/implicit.c b/source/blender/blenkernel/intern/implicit.c
index 4c39f36800c..39fe6ba23bd 100644
--- a/source/blender/blenkernel/intern/implicit.c
+++ b/source/blender/blenkernel/intern/implicit.c
@@ -1,15 +1,12 @@
/* implicit.c
*
*
-* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version. The Blender
-* Foundation also sells licenses for use in proprietary software under
-* the Blender License. See http://www.blender.org/BL/ for information
-* about this.
+* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
-* ***** END GPL/BL DUAL LICENSE BLOCK *****
+* ***** END GPL LICENSE BLOCK *****
*/
#include "MEM_guardedalloc.h"
@@ -1359,7 +1356,7 @@ DO_INLINE void cloth_apply_spring_force(ClothModifierData *clmd, ClothSpring *s,
float calculateVertexWindForce(float wind[3], float vertexnormal[3])
{
- return sqrt(fabs(INPR(wind, vertexnormal)))*2.0*0.1;
+ return fabs(INPR(wind, vertexnormal));
}
void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVector *lV, fmatrix3x3 *dFdV, fmatrix3x3 *dFdX, ListBase *effectors, float time, fmatrix3x3 *M)
@@ -1387,7 +1384,9 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
init_lfvector(lF, gravity, numverts);
- // multiply lF with mass matrix
+ /* multiply lF with mass matrix
+ // force = mass * acceleration (in this case: gravity)
+ */
for(i = 0; i < (long)numverts; i++)
{
float temp[3];
@@ -1414,7 +1413,7 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
pdDoEffectors(effectors, lX[mfaces[i].v1], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
VECCOPY(wind_normalized, speed);
Normalize(wind_normalized);
- VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal) * verts[mfaces[i].v1].mass);
+ VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal));
if(mfaces[i].v4)
{
@@ -1429,7 +1428,7 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
pdDoEffectors(effectors, lX[mfaces[i].v2], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
VECCOPY(wind_normalized, speed);
Normalize(wind_normalized);
- VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal) * verts[mfaces[i].v2].mass);
+ VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal));
if(mfaces[i].v4)
{
VECADDS(lF[mfaces[i].v2], lF[mfaces[i].v2], wind_normalized, 0.25);
@@ -1443,7 +1442,7 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
pdDoEffectors(effectors, lX[mfaces[i].v3], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
VECCOPY(wind_normalized, speed);
Normalize(wind_normalized);
- VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal) * verts[mfaces[i].v3].mass);
+ VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal));
if(mfaces[i].v4)
{
VECADDS(lF[mfaces[i].v3], lF[mfaces[i].v3], wind_normalized, 0.25);
@@ -1459,7 +1458,7 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec
pdDoEffectors(effectors, lX[mfaces[i].v4], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED);
VECCOPY(wind_normalized, speed);
Normalize(wind_normalized);
- VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal) * verts[mfaces[i].v4].mass);
+ VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal));
VECADDS(lF[mfaces[i].v4], lF[mfaces[i].v4], wind_normalized, 0.25);
}
@@ -1524,11 +1523,11 @@ void simulate_implicit_euler(lfVector *Vnew, lfVector *lX, lfVector *lV, lfVecto
int implicit_solver (Object *ob, float frame, ClothModifierData *clmd, ListBase *effectors)
{
unsigned int i=0;
- float step=0.0f, tf=1.0f;
+ float step=0.0f, tf=clmd->sim_parms->timescale;
Cloth *cloth = clmd->clothObject;
ClothVertex *verts = cloth->verts;
unsigned int numverts = cloth->numverts;
- float dt = 1.0f / clmd->sim_parms->stepsPerFrame;
+ float dt = clmd->sim_parms->timescale / clmd->sim_parms->stepsPerFrame;
Implicit_Data *id = cloth->implicit;
int result = 0;
diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c
index 4af310913d6..0b9f7615bfa 100644
--- a/source/blender/blenkernel/intern/ipo.c
+++ b/source/blender/blenkernel/intern/ipo.c
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/blenkernel/intern/kdop.c b/source/blender/blenkernel/intern/kdop.c
index 9fb476614d3..3189fe960ad 100644
--- a/source/blender/blenkernel/intern/kdop.c
+++ b/source/blender/blenkernel/intern/kdop.c
@@ -1,15 +1,12 @@
/* kdop.c
*
*
-* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version. The Blender
-* Foundation also sells licenses for use in proprietary software under
-* the Blender License. See http://www.blender.org/BL/ for information
-* about this.
+* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
-* ***** END GPL/BL DUAL LICENSE BLOCK *****
+* ***** END GPL LICENSE BLOCK *****
*/
#include "MEM_guardedalloc.h"
@@ -88,9 +85,9 @@ LinkNode *BLI_linklist_append_fast(LinkNode **listp, void *ptr) {
////////////////////////////////////////////////////////////////////////
static float KDOP_AXES[13][3] =
-{ {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 1}, {1, -1, 1}, {1, 1, -1},
-{1, -1, -1}, {1, 1, 0}, {1, 0, 1}, {0, 1, 1}, {1, -1, 0}, {1, 0, -1},
-{0, 1, -1}
+{ {1.0, 0, 0}, {0, 1.0, 0}, {0, 0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0},
+{1.0, -1.0, -1.0}, {1.0, 1.0, 0}, {1.0, 0, 1.0}, {0, 1.0, 1.0}, {1.0, -1.0, 0}, {1.0, 0, -1.0},
+{0, 1.0, -1.0}
};
///////////// choose bounding volume here! /////////////
@@ -150,7 +147,7 @@ DO_INLINE int floor_lg(int a)
/*
* Insertion sort algorithm
*/
-static void bvh_insertionsort(CollisionTree **a, int lo, int hi, int axis)
+void bvh_insertionsort(CollisionTree **a, int lo, int hi, int axis)
{
int i,j;
CollisionTree *t;
@@ -247,7 +244,7 @@ static CollisionTree *bvh_medianof3(CollisionTree **a, int lo, int mid, int hi,
/*
* Quicksort algorithm modified for Introsort
*/
-static void bvh_introsort_loop (CollisionTree **a, int lo, int hi, int depth_limit, int axis)
+void bvh_introsort_loop (CollisionTree **a, int lo, int hi, int depth_limit, int axis)
{
int p;
@@ -342,19 +339,30 @@ DO_INLINE void bvh_calc_DOP_hull_from_faces(BVH * bvh, CollisionTree **tri, int
{
float newmin,newmax;
int i, j;
+
+ if(numfaces >0)
+ {
+ // for all Axes.
+ for (i = KDOP_START; i < KDOP_END; i++)
+ {
+ bv[(2 * i)] = (tri [0])->bv[(2 * i)];
+ bv[(2 * i) + 1] = (tri [0])->bv[(2 * i) + 1];
+ }
+ }
+
for (j = 0; j < numfaces; j++)
{
// for all Axes.
for (i = KDOP_START; i < KDOP_END; i++)
{
newmin = (tri [j])->bv[(2 * i)];
- if ((newmin < bv[(2 * i)]) || (j == 0))
+ if ((newmin < bv[(2 * i)]))
{
bv[(2 * i)] = newmin;
}
newmax = (tri [j])->bv[(2 * i) + 1];
- if ((newmax > bv[(2 * i) + 1]) || (j == 0))
+ if ((newmax > bv[(2 * i) + 1]))
{
bv[(2 * i) + 1] = newmax;
}
@@ -401,6 +409,7 @@ DO_INLINE void bvh_calc_DOP_hull_static(BVH * bvh, CollisionTree **tri, int numf
/* calculate normal of this face */
/* (code copied from cdderivedmesh.c) */
+ /*
if(tempMFace->v4)
CalcNormFloat4(bvh->current_xold[tempMFace->v1].co, bvh->current_xold[tempMFace->v2].co,
bvh->current_xold[tempMFace->v3].co, bvh->current_xold[tempMFace->v4].co, tree->normal);
@@ -409,8 +418,7 @@ DO_INLINE void bvh_calc_DOP_hull_static(BVH * bvh, CollisionTree **tri, int numf
bvh->current_xold[tempMFace->v3].co, tree->normal);
tree->alpha = 0;
-
-
+ */
}
}
@@ -772,6 +780,7 @@ void bvh_join(CollisionTree *tree)
}
/* for selfcollisions */
+ /*
if(!i)
{
tree->alpha = tree->nodes[i]->alpha;
@@ -784,6 +793,7 @@ void bvh_join(CollisionTree *tree)
VecMulf(tree->normal, 0.5);
max = MAX2(max, tree->nodes[i]->alpha);
}
+ */
}
else
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c
index f4acfe511cb..3b4e562a87a 100644
--- a/source/blender/blenkernel/intern/key.c
+++ b/source/blender/blenkernel/intern/key.c
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index 47175a789b1..e8bcae42d5a 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
@@ -611,11 +608,16 @@ static int calc_curve_deform(Object *par, float *co, short axis, CurveDeform *cd
void curve_deform_verts(Object *cuOb, Object *target, DerivedMesh *dm, float (*vertexCos)[3], int numVerts, char *vgroup, short defaxis)
{
- Curve *cu = cuOb->data;
- int a, flag = cu->flag;
+ Curve *cu;
+ int a, flag;
CurveDeform cd;
int use_vgroups;
-
+
+ if(cuOb->type != OB_CURVE)
+ return;
+
+ cu = cuOb->data;
+ flag = cu->flag;
cu->flag |= (CU_PATH|CU_FOLLOW); // needed for path & bevlist
init_curve_deform(cuOb, target, &cd, (cu->flag & CU_STRETCH)==0);
@@ -703,6 +705,11 @@ void curve_deform_vector(Object *cuOb, Object *target, float *orco, float *vec,
CurveDeform cd;
float quat[4];
+ if(cuOb->type != OB_CURVE) {
+ Mat3One(mat);
+ return;
+ }
+
init_curve_deform(cuOb, target, &cd, 0); /* 0 no dloc */
cd.no_rot_axis= no_rot_axis; /* option to only rotate for XY, for example */
@@ -730,6 +737,9 @@ void lattice_deform_verts(Object *laOb, Object *target, DerivedMesh *dm,
int a;
int use_vgroups;
+ if(laOb->type != OB_LATTICE)
+ return;
+
init_latt_deform(laOb, target);
/* check whether to use vertex groups (only possible if target is a Mesh)
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 4cd7e1c6d38..6e610eead28 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index 1b95ae14ecf..3983eecdaba 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c
index e2b78affd59..14e70075e32 100644
--- a/source/blender/blenkernel/intern/mball.c
+++ b/source/blender/blenkernel/intern/mball.c
@@ -8,15 +8,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): Jiri Hnidek <jiri.hnidek@vslib.cz>.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index 9155a5ee444..43e48c3bacd 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 8ba80fd914b..8fc6a026005 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -150,9 +150,9 @@ static int curveModifier_isDisabled(ModifierData *md)
}
static void curveModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
CurveModifierData *cmd = (CurveModifierData*) md;
@@ -160,8 +160,8 @@ static void curveModifier_foreachObjectLink(
}
static void curveModifier_updateDepgraph(
- ModifierData *md, DagForest *forest,
- Object *ob, DagNode *obNode)
+ ModifierData *md, DagForest *forest,
+ Object *ob, DagNode *obNode)
{
CurveModifierData *cmd = (CurveModifierData*) md;
@@ -169,23 +169,23 @@ static void curveModifier_updateDepgraph(
DagNode *curNode = dag_get_node(forest, cmd->object);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Curve Modifier");
}
}
static void curveModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
CurveModifierData *cmd = (CurveModifierData*) md;
curve_deform_verts(cmd->object, ob, derivedData, vertexCos, numVerts,
- cmd->name, cmd->defaxis);
+ cmd->name, cmd->defaxis);
}
static void curveModifier_deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm = derivedData;
@@ -226,9 +226,9 @@ static int latticeModifier_isDisabled(ModifierData *md)
}
static void latticeModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
LatticeModifierData *lmd = (LatticeModifierData*) md;
@@ -236,7 +236,7 @@ static void latticeModifier_foreachObjectLink(
}
static void latticeModifier_updateDepgraph(ModifierData *md, DagForest *forest,
- Object *ob, DagNode *obNode)
+ Object *ob, DagNode *obNode)
{
LatticeModifierData *lmd = (LatticeModifierData*) md;
@@ -244,7 +244,7 @@ static void latticeModifier_updateDepgraph(ModifierData *md, DagForest *forest,
DagNode *latNode = dag_get_node(forest, lmd->object);
dag_add_relation(forest, latNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Lattice Modifier");
}
}
@@ -263,8 +263,8 @@ static void modifier_vgroup_cache(ModifierData *md, float (*vertexCos)[3])
static void latticeModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
LatticeModifierData *lmd = (LatticeModifierData*) md;
@@ -272,12 +272,12 @@ static void latticeModifier_deformVerts(
modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */
lattice_deform_verts(lmd->object, ob, derivedData,
- vertexCos, numVerts, lmd->name);
+ vertexCos, numVerts, lmd->name);
}
static void latticeModifier_deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm = derivedData;
@@ -323,28 +323,28 @@ static void subsurfModifier_freeData(ModifierData *md)
}
static DerivedMesh *subsurfModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
SubsurfModifierData *smd = (SubsurfModifierData*) md;
DerivedMesh *result;
result = subsurf_make_derived_from_derived(derivedData, smd,
- useRenderParams, NULL,
- isFinalCalc, 0);
+ useRenderParams, NULL,
+ isFinalCalc, 0);
return result;
}
static DerivedMesh *subsurfModifier_applyModifierEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData)
{
SubsurfModifierData *smd = (SubsurfModifierData*) md;
DerivedMesh *result;
result = subsurf_make_derived_from_derived(derivedData, smd, 0,
- NULL, 0, 1);
+ NULL, 0, 1);
return result;
}
@@ -376,8 +376,8 @@ static int buildModifier_dependsOnTime(ModifierData *md)
}
static DerivedMesh *buildModifier_applyModifier(ModifierData *md, Object *ob,
- DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
DerivedMesh *dm = derivedData;
DerivedMesh *result;
@@ -390,29 +390,29 @@ static DerivedMesh *buildModifier_applyModifier(ModifierData *md, Object *ob,
GHashIterator *hashIter;
/* maps vert indices in old mesh to indices in new mesh */
GHash *vertHash = BLI_ghash_new(BLI_ghashutil_inthash,
- BLI_ghashutil_intcmp);
+ BLI_ghashutil_intcmp);
/* maps edge indices in new mesh to indices in old mesh */
GHash *edgeHash = BLI_ghash_new(BLI_ghashutil_inthash,
- BLI_ghashutil_intcmp);
+ BLI_ghashutil_intcmp);
maxVerts = dm->getNumVerts(dm);
vertMap = MEM_callocN(sizeof(*vertMap) * maxVerts,
- "build modifier vertMap");
+ "build modifier vertMap");
for(i = 0; i < maxVerts; ++i) vertMap[i] = i;
maxEdges = dm->getNumEdges(dm);
edgeMap = MEM_callocN(sizeof(*edgeMap) * maxEdges,
- "build modifier edgeMap");
+ "build modifier edgeMap");
for(i = 0; i < maxEdges; ++i) edgeMap[i] = i;
maxFaces = dm->getNumFaces(dm);
faceMap = MEM_callocN(sizeof(*faceMap) * maxFaces,
- "build modifier faceMap");
+ "build modifier faceMap");
for(i = 0; i < maxFaces; ++i) faceMap[i] = i;
if (ob) {
frac = bsystem_time(ob, (float)G.scene->r.cfra,
- bmd->start - 1.0f) / bmd->length;
+ bmd->start - 1.0f) / bmd->length;
} else {
frac = G.scene->r.cfra - bmd->start / bmd->length;
}
@@ -427,157 +427,157 @@ static DerivedMesh *buildModifier_applyModifier(ModifierData *md, Object *ob,
if(bmd->randomize)
BLI_array_randomize(faceMap, sizeof(*faceMap),
- maxFaces, bmd->seed);
+ maxFaces, bmd->seed);
/* get the set of all vert indices that will be in the final mesh,
- * mapped to the new indices
- */
+ * mapped to the new indices
+ */
for(i = 0; i < numFaces; ++i) {
MFace mf;
dm->getFace(dm, faceMap[i], &mf);
if(!BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(mf.v1)))
BLI_ghash_insert(vertHash, SET_INT_IN_POINTER(mf.v1),
- SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
+ SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
if(!BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(mf.v2)))
BLI_ghash_insert(vertHash, SET_INT_IN_POINTER(mf.v2),
- SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
+ SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
if(!BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(mf.v3)))
BLI_ghash_insert(vertHash, SET_INT_IN_POINTER(mf.v3),
- SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
+ SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
if(mf.v4 && !BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(mf.v4)))
BLI_ghash_insert(vertHash, SET_INT_IN_POINTER(mf.v4),
- SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
+ SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
}
/* get the set of edges that will be in the new mesh (i.e. all edges
- * that have both verts in the new mesh)
- */
+ * that have both verts in the new mesh)
+ */
maxEdges = dm->getNumEdges(dm);
for(i = 0; i < maxEdges; ++i) {
MEdge me;
dm->getEdge(dm, i, &me);
if(BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(me.v1))
- && BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(me.v2)))
+ && BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(me.v2)))
BLI_ghash_insert(edgeHash,
- SET_INT_IN_POINTER(BLI_ghash_size(edgeHash)), SET_INT_IN_POINTER(i));
+ SET_INT_IN_POINTER(BLI_ghash_size(edgeHash)), SET_INT_IN_POINTER(i));
}
} else if(numEdges) {
if(bmd->randomize)
BLI_array_randomize(edgeMap, sizeof(*edgeMap),
- maxEdges, bmd->seed);
+ maxEdges, bmd->seed);
/* get the set of all vert indices that will be in the final mesh,
- * mapped to the new indices
- */
+ * mapped to the new indices
+ */
for(i = 0; i < numEdges; ++i) {
MEdge me;
dm->getEdge(dm, edgeMap[i], &me);
if(!BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(me.v1)))
BLI_ghash_insert(vertHash, SET_INT_IN_POINTER(me.v1),
- SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
+ SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
if(!BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(me.v2)))
BLI_ghash_insert(vertHash, SET_INT_IN_POINTER(me.v2),
- SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
+ SET_INT_IN_POINTER(BLI_ghash_size(vertHash)));
}
/* get the set of edges that will be in the new mesh
- */
+ */
for(i = 0; i < numEdges; ++i) {
MEdge me;
dm->getEdge(dm, edgeMap[i], &me);
BLI_ghash_insert(edgeHash, SET_INT_IN_POINTER(BLI_ghash_size(edgeHash)),
- SET_INT_IN_POINTER(edgeMap[i]));
+ SET_INT_IN_POINTER(edgeMap[i]));
}
} else {
int numVerts = dm->getNumVerts(dm) * frac;
if(bmd->randomize)
BLI_array_randomize(vertMap, sizeof(*vertMap),
- maxVerts, bmd->seed);
+ maxVerts, bmd->seed);
/* get the set of all vert indices that will be in the final mesh,
- * mapped to the new indices
- */
+ * mapped to the new indices
+ */
for(i = 0; i < numVerts; ++i)
BLI_ghash_insert(vertHash, SET_INT_IN_POINTER(vertMap[i]), SET_INT_IN_POINTER(i));
}
/* now we know the number of verts, edges and faces, we can create
- * the mesh
- */
+ * the mesh
+ */
result = CDDM_from_template(dm, BLI_ghash_size(vertHash),
- BLI_ghash_size(edgeHash), numFaces);
+ BLI_ghash_size(edgeHash), numFaces);
/* copy the vertices across */
for(hashIter = BLI_ghashIterator_new(vertHash);
- !BLI_ghashIterator_isDone(hashIter);
- BLI_ghashIterator_step(hashIter)) {
- MVert source;
- MVert *dest;
- int oldIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(hashIter));
- int newIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getValue(hashIter));
+ !BLI_ghashIterator_isDone(hashIter);
+ BLI_ghashIterator_step(hashIter)) {
+ MVert source;
+ MVert *dest;
+ int oldIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(hashIter));
+ int newIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getValue(hashIter));
- dm->getVert(dm, oldIndex, &source);
- dest = CDDM_get_vert(result, newIndex);
+ dm->getVert(dm, oldIndex, &source);
+ dest = CDDM_get_vert(result, newIndex);
- DM_copy_vert_data(dm, result, oldIndex, newIndex, 1);
- *dest = source;
- }
- BLI_ghashIterator_free(hashIter);
+ DM_copy_vert_data(dm, result, oldIndex, newIndex, 1);
+ *dest = source;
+ }
+ BLI_ghashIterator_free(hashIter);
- /* copy the edges across, remapping indices */
- for(i = 0; i < BLI_ghash_size(edgeHash); ++i) {
- MEdge source;
- MEdge *dest;
- int oldIndex = GET_INT_FROM_POINTER(BLI_ghash_lookup(edgeHash, SET_INT_IN_POINTER(i)));
+ /* copy the edges across, remapping indices */
+ for(i = 0; i < BLI_ghash_size(edgeHash); ++i) {
+ MEdge source;
+ MEdge *dest;
+ int oldIndex = GET_INT_FROM_POINTER(BLI_ghash_lookup(edgeHash, SET_INT_IN_POINTER(i)));
- dm->getEdge(dm, oldIndex, &source);
- dest = CDDM_get_edge(result, i);
+ dm->getEdge(dm, oldIndex, &source);
+ dest = CDDM_get_edge(result, i);
- source.v1 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v1)));
- source.v2 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v2)));
+ source.v1 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v1)));
+ source.v2 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v2)));
- DM_copy_edge_data(dm, result, oldIndex, i, 1);
- *dest = source;
- }
+ DM_copy_edge_data(dm, result, oldIndex, i, 1);
+ *dest = source;
+ }
- /* copy the faces across, remapping indices */
- for(i = 0; i < numFaces; ++i) {
- MFace source;
- MFace *dest;
- int orig_v4;
+ /* copy the faces across, remapping indices */
+ for(i = 0; i < numFaces; ++i) {
+ MFace source;
+ MFace *dest;
+ int orig_v4;
- dm->getFace(dm, faceMap[i], &source);
- dest = CDDM_get_face(result, i);
+ dm->getFace(dm, faceMap[i], &source);
+ dest = CDDM_get_face(result, i);
- orig_v4 = source.v4;
+ orig_v4 = source.v4;
- source.v1 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v1)));
- source.v2 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v2)));
- source.v3 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v3)));
- if(source.v4)
- source.v4 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v4)));
+ source.v1 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v1)));
+ source.v2 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v2)));
+ source.v3 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v3)));
+ if(source.v4)
+ source.v4 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v4)));
- DM_copy_face_data(dm, result, faceMap[i], i, 1);
- *dest = source;
+ DM_copy_face_data(dm, result, faceMap[i], i, 1);
+ *dest = source;
- test_index_face(dest, &result->faceData, i, (orig_v4 ? 4 : 3));
- }
+ test_index_face(dest, &result->faceData, i, (orig_v4 ? 4 : 3));
+ }
- CDDM_calc_normals(result);
+ CDDM_calc_normals(result);
- BLI_ghash_free(vertHash, NULL, NULL);
- BLI_ghash_free(edgeHash, NULL, NULL);
+ BLI_ghash_free(vertHash, NULL, NULL);
+ BLI_ghash_free(edgeHash, NULL, NULL);
- MEM_freeN(vertMap);
- MEM_freeN(edgeMap);
- MEM_freeN(faceMap);
+ MEM_freeN(vertMap);
+ MEM_freeN(edgeMap);
+ MEM_freeN(faceMap);
- return result;
+ return result;
}
/* Array */
@@ -589,7 +589,7 @@ static void arrayModifier_initData(ModifierData *md)
ArrayModifierData *amd = (ArrayModifierData*) md;
/* default to 2 duplicates distributed along the x-axis by an
- offset of 1 object-width
+ offset of 1 object-width
*/
amd->start_cap = amd->end_cap = amd->curve_ob = amd->offset_ob = NULL;
amd->count = 2;
@@ -623,9 +623,9 @@ static void arrayModifier_copyData(ModifierData *md, ModifierData *target)
}
static void arrayModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
ArrayModifierData *amd = (ArrayModifierData*) md;
@@ -636,7 +636,7 @@ static void arrayModifier_foreachObjectLink(
}
static void arrayModifier_updateDepgraph(ModifierData *md, DagForest *forest,
- Object *ob, DagNode *obNode)
+ Object *ob, DagNode *obNode)
{
ArrayModifierData *amd = (ArrayModifierData*) md;
@@ -644,25 +644,25 @@ static void arrayModifier_updateDepgraph(ModifierData *md, DagForest *forest,
DagNode *curNode = dag_get_node(forest, amd->start_cap);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Array Modifier");
}
if (amd->end_cap) {
DagNode *curNode = dag_get_node(forest, amd->end_cap);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Array Modifier");
}
if (amd->curve_ob) {
DagNode *curNode = dag_get_node(forest, amd->curve_ob);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Array Modifier");
}
if (amd->offset_ob) {
DagNode *curNode = dag_get_node(forest, amd->offset_ob);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Array Modifier");
}
}
@@ -689,12 +689,12 @@ typedef struct IndexMapEntry {
/* the new vert index that this old vert index maps to */
int new;
/* -1 if this vert isn't merged, otherwise the old vert index it
- * should be replaced with
- */
+ * should be replaced with
+ */
int merge;
/* 1 if this vert's first copy is merged with the last copy of its
- * merge target, otherwise 0
- */
+ * merge target, otherwise 0
+ */
short merge_final;
} IndexMapEntry;
@@ -713,19 +713,19 @@ static int calc_mapping(IndexMapEntry *indexMap, int oldIndex, int copyNum)
} else {
/* vert was merged with another vert */
/* follow the chain of merges to the end, or until we've passed
- * a number of vertices equal to the copy number
- */
+ * a number of vertices equal to the copy number
+ */
if(copyNum <= 0)
return indexMap[oldIndex].new;
else
return calc_mapping(indexMap, indexMap[oldIndex].merge,
- copyNum - 1);
+ copyNum - 1);
}
}
static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,
- Object *ob, DerivedMesh *dm,
- int initFlags)
+ Object *ob, DerivedMesh *dm,
+ int initFlags)
{
int i, j;
/* offset matrix */
@@ -755,7 +755,7 @@ static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,
MTC_Mat4One(offset);
indexMap = MEM_callocN(sizeof(*indexMap) * dm->getNumVerts(dm),
- "indexmap");
+ "indexmap");
src_mvert = dm->getVertArray(dm);
@@ -766,7 +766,7 @@ static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,
if(amd->offset_type & MOD_ARR_OFF_RELATIVE) {
for(j = 0; j < 3; j++)
offset[3][j] += amd->scale[j] * vertarray_size(src_mvert,
- maxVerts, j);
+ maxVerts, j);
}
if((amd->offset_type & MOD_ARR_OFF_OBJ) && (amd->offset_ob)) {
@@ -779,8 +779,8 @@ static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,
MTC_Mat4One(obinv);
MTC_Mat4MulSerie(result_mat, offset,
- obinv, amd->offset_ob->obmat,
- NULL, NULL, NULL, NULL, NULL);
+ obinv, amd->offset_ob->obmat,
+ NULL, NULL, NULL, NULL, NULL);
MTC_Mat4CpyMat4(offset, result_mat);
}
@@ -797,444 +797,451 @@ static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,
}
/* calculate the maximum number of copies which will fit within the
- prescribed length */
+ prescribed length */
if(amd->fit_type == MOD_ARR_FITLENGTH
- || amd->fit_type == MOD_ARR_FITCURVE) {
+ || amd->fit_type == MOD_ARR_FITCURVE) {
float dist = sqrt(MTC_dot3Float(offset[3], offset[3]));
if(dist > 1e-6f)
/* this gives length = first copy start to last copy end
- add a tiny offset for floating point rounding errors */
+ add a tiny offset for floating point rounding errors */
count = (length + 1e-6f) / dist;
else
/* if the offset has no translation, just make one copy */
count = 1;
- }
+ }
- if(count < 1)
- count = 1;
+ if(count < 1)
+ count = 1;
/* allocate memory for count duplicates (including original) plus
- * start and end caps
- */
- finalVerts = dm->getNumVerts(dm) * count;
- finalEdges = dm->getNumEdges(dm) * count;
- finalFaces = dm->getNumFaces(dm) * count;
- if(start_cap) {
- finalVerts += start_cap->getNumVerts(start_cap);
- finalEdges += start_cap->getNumEdges(start_cap);
- finalFaces += start_cap->getNumFaces(start_cap);
- }
- if(end_cap) {
- finalVerts += end_cap->getNumVerts(end_cap);
- finalEdges += end_cap->getNumEdges(end_cap);
- finalFaces += end_cap->getNumFaces(end_cap);
- }
- result = CDDM_from_template(dm, finalVerts, finalEdges, finalFaces);
-
- /* calculate the offset matrix of the final copy (for merging) */
- MTC_Mat4One(final_offset);
-
- for(j=0; j < count - 1; j++) {
- MTC_Mat4MulMat4(tmp_mat, final_offset, offset);
- MTC_Mat4CpyMat4(final_offset, tmp_mat);
- }
-
- numVerts = numEdges = numFaces = 0;
- mvert = CDDM_get_verts(result);
-
- for (i = 0; i < maxVerts; i++) {
- MVert *inMV;
- MVert *mv = &mvert[numVerts];
- MVert *mv2;
- float co[3];
-
- inMV = &src_mvert[i];
-
- DM_copy_vert_data(dm, result, i, numVerts, 1);
- *mv = *inMV;
- numVerts++;
-
- indexMap[i].new = numVerts - 1;
- indexMap[i].merge = -1; /* default to no merge */
- indexMap[i].merge_final = 0; /* default to no merge */
-
- VECCOPY(co, mv->co);
+ * start and end caps
+ */
+ finalVerts = dm->getNumVerts(dm) * count;
+ finalEdges = dm->getNumEdges(dm) * count;
+ finalFaces = dm->getNumFaces(dm) * count;
+ if(start_cap) {
+ finalVerts += start_cap->getNumVerts(start_cap);
+ finalEdges += start_cap->getNumEdges(start_cap);
+ finalFaces += start_cap->getNumFaces(start_cap);
+ }
+ if(end_cap) {
+ finalVerts += end_cap->getNumVerts(end_cap);
+ finalEdges += end_cap->getNumEdges(end_cap);
+ finalFaces += end_cap->getNumFaces(end_cap);
+ }
+ result = CDDM_from_template(dm, finalVerts, finalEdges, finalFaces);
+
+ /* calculate the offset matrix of the final copy (for merging) */
+ MTC_Mat4One(final_offset);
+
+ for(j=0; j < count - 1; j++) {
+ MTC_Mat4MulMat4(tmp_mat, final_offset, offset);
+ MTC_Mat4CpyMat4(final_offset, tmp_mat);
+ }
+
+ numVerts = numEdges = numFaces = 0;
+ mvert = CDDM_get_verts(result);
+
+ for (i = 0; i < maxVerts; i++) {
+ indexMap[i].merge = -1; /* default to no merge */
+ indexMap[i].merge_final = 0; /* default to no merge */
+ }
+
+ for (i = 0; i < maxVerts; i++) {
+ MVert *inMV;
+ MVert *mv = &mvert[numVerts];
+ MVert *mv2;
+ float co[3];
+
+ inMV = &src_mvert[i];
+
+ DM_copy_vert_data(dm, result, i, numVerts, 1);
+ *mv = *inMV;
+ numVerts++;
+
+ indexMap[i].new = numVerts - 1;
+
+ VECCOPY(co, mv->co);
/* Attempts to merge verts from one duplicate with verts from the
- * next duplicate which are closer than amd->merge_dist.
- * Only the first such vert pair is merged.
- * If verts are merged in the first duplicate pair, they are merged
- * in all pairs.
- */
- if((count > 1) && (amd->flags & MOD_ARR_MERGE)) {
- float tmp_co[3];
- VECCOPY(tmp_co, mv->co);
- MTC_Mat4MulVecfl(offset, tmp_co);
-
- for(j = 0; j < maxVerts; j++) {
- inMV = &src_mvert[j];
- /* if this vert is within merge limit, merge */
- if(VecLenCompare(tmp_co, inMV->co, amd->merge_dist)) {
- indexMap[i].merge = j;
-
- /* test for merging with final copy of merge target */
- if(amd->flags & MOD_ARR_MERGEFINAL) {
- VECCOPY(tmp_co, inMV->co);
- inMV = &src_mvert[i];
- MTC_Mat4MulVecfl(final_offset, tmp_co);
- if(VecLenCompare(tmp_co, inMV->co, amd->merge_dist))
- indexMap[i].merge_final = 1;
- }
- break;
- }
- }
- }
-
- /* if no merging, generate copies of this vert */
- if(indexMap[i].merge < 0) {
- for(j=0; j < count - 1; j++) {
- mv2 = &mvert[numVerts];
-
- DM_copy_vert_data(result, result, numVerts - 1, numVerts, 1);
- *mv2 = *mv;
- numVerts++;
-
- MTC_Mat4MulVecfl(offset, co);
- VECCOPY(mv2->co, co);
- }
- } else if(indexMap[i].merge != i && indexMap[i].merge_final) {
+ * next duplicate which are closer than amd->merge_dist.
+ * Only the first such vert pair is merged.
+ * If verts are merged in the first duplicate pair, they are merged
+ * in all pairs.
+ */
+ if((count > 1) && (amd->flags & MOD_ARR_MERGE)) {
+ float tmp_co[3];
+ VECCOPY(tmp_co, mv->co);
+ MTC_Mat4MulVecfl(offset, tmp_co);
+
+ for(j = 0; j < maxVerts; j++) {
+ /* if vertex already merged, don't use it */
+ if( indexMap[j].merge != -1 ) continue;
+
+ inMV = &src_mvert[j];
+ /* if this vert is within merge limit, merge */
+ if(VecLenCompare(tmp_co, inMV->co, amd->merge_dist)) {
+ indexMap[i].merge = j;
+
+ /* test for merging with final copy of merge target */
+ if(amd->flags & MOD_ARR_MERGEFINAL) {
+ VECCOPY(tmp_co, inMV->co);
+ inMV = &src_mvert[i];
+ MTC_Mat4MulVecfl(final_offset, tmp_co);
+ if(VecLenCompare(tmp_co, inMV->co, amd->merge_dist))
+ indexMap[i].merge_final = 1;
+ }
+ break;
+ }
+ }
+ }
+
+ /* if no merging, generate copies of this vert */
+ if(indexMap[i].merge < 0) {
+ for(j=0; j < count - 1; j++) {
+ mv2 = &mvert[numVerts];
+
+ DM_copy_vert_data(result, result, numVerts - 1, numVerts, 1);
+ *mv2 = *mv;
+ numVerts++;
+
+ MTC_Mat4MulVecfl(offset, co);
+ VECCOPY(mv2->co, co);
+ }
+ } else if(indexMap[i].merge != i && indexMap[i].merge_final) {
/* if this vert is not merging with itself, and it is merging
- * with the final copy of its merge target, remove the first copy
- */
- numVerts--;
- DM_free_vert_data(result, numVerts, 1);
- }
- }
-
- /* make a hashtable so we can avoid duplicate edges from merging */
- edges = BLI_edgehash_new();
-
- maxEdges = dm->getNumEdges(dm);
- medge = CDDM_get_edges(result);
- for(i = 0; i < maxEdges; i++) {
- MEdge inMED;
- MEdge med;
- MEdge *med2;
- int vert1, vert2;
-
- dm->getEdge(dm, i, &inMED);
-
- med = inMED;
- med.v1 = indexMap[inMED.v1].new;
- med.v2 = indexMap[inMED.v2].new;
+ * with the final copy of its merge target, remove the first copy
+ */
+ numVerts--;
+ DM_free_vert_data(result, numVerts, 1);
+ }
+ }
+
+ /* make a hashtable so we can avoid duplicate edges from merging */
+ edges = BLI_edgehash_new();
+
+ maxEdges = dm->getNumEdges(dm);
+ medge = CDDM_get_edges(result);
+ for(i = 0; i < maxEdges; i++) {
+ MEdge inMED;
+ MEdge med;
+ MEdge *med2;
+ int vert1, vert2;
+
+ dm->getEdge(dm, i, &inMED);
+
+ med = inMED;
+ med.v1 = indexMap[inMED.v1].new;
+ med.v2 = indexMap[inMED.v2].new;
/* if vertices are to be merged with the final copies of their
- * merge targets, calculate that final copy
- */
- if(indexMap[inMED.v1].merge_final) {
- med.v1 = calc_mapping(indexMap, indexMap[inMED.v1].merge,
- count - 1);
- }
- if(indexMap[inMED.v2].merge_final) {
- med.v2 = calc_mapping(indexMap, indexMap[inMED.v2].merge,
- count - 1);
- }
-
- if(med.v1 == med.v2) continue;
-
- if (initFlags) {
- med.flag |= ME_EDGEDRAW | ME_EDGERENDER;
- }
-
- if(!BLI_edgehash_haskey(edges, med.v1, med.v2)) {
- DM_copy_edge_data(dm, result, i, numEdges, 1);
- medge[numEdges] = med;
- numEdges++;
-
- BLI_edgehash_insert(edges, med.v1, med.v2, NULL);
- }
-
- for(j = 1; j < count; j++)
- {
- vert1 = calc_mapping(indexMap, inMED.v1, j);
- vert2 = calc_mapping(indexMap, inMED.v2, j);
- /* avoid duplicate edges */
- if(!BLI_edgehash_haskey(edges, vert1, vert2)) {
- med2 = &medge[numEdges];
-
- DM_copy_edge_data(dm, result, i, numEdges, 1);
- *med2 = med;
- numEdges++;
-
- med2->v1 = vert1;
- med2->v2 = vert2;
-
- BLI_edgehash_insert(edges, med2->v1, med2->v2, NULL);
- }
- }
- }
-
- maxFaces = dm->getNumFaces(dm);
- mface = CDDM_get_faces(result);
- for (i=0; i < maxFaces; i++) {
- MFace inMF;
- MFace *mf = &mface[numFaces];
-
- dm->getFace(dm, i, &inMF);
-
- DM_copy_face_data(dm, result, i, numFaces, 1);
- *mf = inMF;
-
- mf->v1 = indexMap[inMF.v1].new;
- mf->v2 = indexMap[inMF.v2].new;
- mf->v3 = indexMap[inMF.v3].new;
- if(inMF.v4)
- mf->v4 = indexMap[inMF.v4].new;
+ * merge targets, calculate that final copy
+ */
+ if(indexMap[inMED.v1].merge_final) {
+ med.v1 = calc_mapping(indexMap, indexMap[inMED.v1].merge,
+ count - 1);
+ }
+ if(indexMap[inMED.v2].merge_final) {
+ med.v2 = calc_mapping(indexMap, indexMap[inMED.v2].merge,
+ count - 1);
+ }
+
+ if(med.v1 == med.v2) continue;
+
+ if (initFlags) {
+ med.flag |= ME_EDGEDRAW | ME_EDGERENDER;
+ }
+
+ if(!BLI_edgehash_haskey(edges, med.v1, med.v2)) {
+ DM_copy_edge_data(dm, result, i, numEdges, 1);
+ medge[numEdges] = med;
+ numEdges++;
+
+ BLI_edgehash_insert(edges, med.v1, med.v2, NULL);
+ }
+
+ for(j = 1; j < count; j++)
+ {
+ vert1 = calc_mapping(indexMap, inMED.v1, j);
+ vert2 = calc_mapping(indexMap, inMED.v2, j);
+ /* avoid duplicate edges */
+ if(!BLI_edgehash_haskey(edges, vert1, vert2)) {
+ med2 = &medge[numEdges];
+
+ DM_copy_edge_data(dm, result, i, numEdges, 1);
+ *med2 = med;
+ numEdges++;
+
+ med2->v1 = vert1;
+ med2->v2 = vert2;
+
+ BLI_edgehash_insert(edges, med2->v1, med2->v2, NULL);
+ }
+ }
+ }
+
+ maxFaces = dm->getNumFaces(dm);
+ mface = CDDM_get_faces(result);
+ for (i=0; i < maxFaces; i++) {
+ MFace inMF;
+ MFace *mf = &mface[numFaces];
+
+ dm->getFace(dm, i, &inMF);
+
+ DM_copy_face_data(dm, result, i, numFaces, 1);
+ *mf = inMF;
+
+ mf->v1 = indexMap[inMF.v1].new;
+ mf->v2 = indexMap[inMF.v2].new;
+ mf->v3 = indexMap[inMF.v3].new;
+ if(inMF.v4)
+ mf->v4 = indexMap[inMF.v4].new;
/* if vertices are to be merged with the final copies of their
- * merge targets, calculate that final copy
- */
- if(indexMap[inMF.v1].merge_final)
- mf->v1 = calc_mapping(indexMap, indexMap[inMF.v1].merge, count-1);
- if(indexMap[inMF.v2].merge_final)
- mf->v2 = calc_mapping(indexMap, indexMap[inMF.v2].merge, count-1);
- if(indexMap[inMF.v3].merge_final)
- mf->v3 = calc_mapping(indexMap, indexMap[inMF.v3].merge, count-1);
- if(inMF.v4 && indexMap[inMF.v4].merge_final)
- mf->v4 = calc_mapping(indexMap, indexMap[inMF.v4].merge, count-1);
-
- if(test_index_face(mf, &result->faceData, numFaces, inMF.v4?4:3) < 3)
- continue;
-
- numFaces++;
-
- /* if the face has fewer than 3 vertices, don't create it */
- if(mf->v3 == 0 || (mf->v1 && (mf->v1 == mf->v3 || mf->v1 == mf->v4))) {
- numFaces--;
- DM_free_face_data(result, numFaces, 1);
- }
-
- for(j = 1; j < count; j++)
- {
- MFace *mf2 = &mface[numFaces];
-
- DM_copy_face_data(dm, result, i, numFaces, 1);
- *mf2 = *mf;
-
- mf2->v1 = calc_mapping(indexMap, inMF.v1, j);
- mf2->v2 = calc_mapping(indexMap, inMF.v2, j);
- mf2->v3 = calc_mapping(indexMap, inMF.v3, j);
- if (inMF.v4)
- mf2->v4 = calc_mapping(indexMap, inMF.v4, j);
-
- test_index_face(mf2, &result->faceData, numFaces, inMF.v4?4:3);
- numFaces++;
-
- /* if the face has fewer than 3 vertices, don't create it */
- if(mf2->v3 == 0 || (mf->v1 && (mf->v1 == mf->v3 || mf->v1 == mf->v4))) {
- numFaces--;
- DM_free_face_data(result, numFaces, 1);
- }
- }
- }
-
- /* add start and end caps */
- if(start_cap) {
- float startoffset[4][4];
- MVert *cap_mvert;
- MEdge *cap_medge;
- MFace *cap_mface;
- int *origindex;
- int *vert_map;
- int capVerts, capEdges, capFaces;
-
- capVerts = start_cap->getNumVerts(start_cap);
- capEdges = start_cap->getNumEdges(start_cap);
- capFaces = start_cap->getNumFaces(start_cap);
- cap_mvert = start_cap->getVertArray(start_cap);
- cap_medge = start_cap->getEdgeArray(start_cap);
- cap_mface = start_cap->getFaceArray(start_cap);
-
- Mat4Invert(startoffset, offset);
-
- vert_map = MEM_callocN(sizeof(*vert_map) * capVerts,
- "arrayModifier_doArray vert_map");
-
- origindex = result->getVertDataArray(result, CD_ORIGINDEX);
- for(i = 0; i < capVerts; i++) {
- MVert *mv = &cap_mvert[i];
- short merged = 0;
-
- if(amd->flags & MOD_ARR_MERGE) {
- float tmp_co[3];
- MVert *in_mv;
- int j;
-
- VECCOPY(tmp_co, mv->co);
- Mat4MulVecfl(startoffset, tmp_co);
-
- for(j = 0; j < maxVerts; j++) {
- in_mv = &src_mvert[j];
- /* if this vert is within merge limit, merge */
- if(VecLenCompare(tmp_co, in_mv->co, amd->merge_dist)) {
- vert_map[i] = calc_mapping(indexMap, j, 0);
- merged = 1;
- break;
- }
- }
- }
-
- if(!merged) {
- DM_copy_vert_data(start_cap, result, i, numVerts, 1);
- mvert[numVerts] = *mv;
- Mat4MulVecfl(startoffset, mvert[numVerts].co);
- origindex[numVerts] = ORIGINDEX_NONE;
-
- vert_map[i] = numVerts;
-
- numVerts++;
- }
- }
- origindex = result->getEdgeDataArray(result, CD_ORIGINDEX);
- for(i = 0; i < capEdges; i++) {
- int v1, v2;
-
- v1 = vert_map[cap_medge[i].v1];
- v2 = vert_map[cap_medge[i].v2];
-
- if(!BLI_edgehash_haskey(edges, v1, v2)) {
- DM_copy_edge_data(start_cap, result, i, numEdges, 1);
- medge[numEdges] = cap_medge[i];
- medge[numEdges].v1 = v1;
- medge[numEdges].v2 = v2;
- origindex[numEdges] = ORIGINDEX_NONE;
-
- numEdges++;
- }
- }
- origindex = result->getFaceDataArray(result, CD_ORIGINDEX);
- for(i = 0; i < capFaces; i++) {
- DM_copy_face_data(start_cap, result, i, numFaces, 1);
- mface[numFaces] = cap_mface[i];
- mface[numFaces].v1 = vert_map[mface[numFaces].v1];
- mface[numFaces].v2 = vert_map[mface[numFaces].v2];
- mface[numFaces].v3 = vert_map[mface[numFaces].v3];
- if(mface[numFaces].v4)
- mface[numFaces].v4 = vert_map[mface[numFaces].v4];
- origindex[numFaces] = ORIGINDEX_NONE;
-
- numFaces++;
- }
-
- MEM_freeN(vert_map);
- start_cap->release(start_cap);
- }
-
- if(end_cap) {
- float endoffset[4][4];
- MVert *cap_mvert;
- MEdge *cap_medge;
- MFace *cap_mface;
- int *origindex;
- int *vert_map;
- int capVerts, capEdges, capFaces;
-
- capVerts = end_cap->getNumVerts(end_cap);
- capEdges = end_cap->getNumEdges(end_cap);
- capFaces = end_cap->getNumFaces(end_cap);
- cap_mvert = end_cap->getVertArray(end_cap);
- cap_medge = end_cap->getEdgeArray(end_cap);
- cap_mface = end_cap->getFaceArray(end_cap);
-
- Mat4MulMat4(endoffset, final_offset, offset);
-
- vert_map = MEM_callocN(sizeof(*vert_map) * capVerts,
- "arrayModifier_doArray vert_map");
-
- origindex = result->getVertDataArray(result, CD_ORIGINDEX);
- for(i = 0; i < capVerts; i++) {
- MVert *mv = &cap_mvert[i];
- short merged = 0;
-
- if(amd->flags & MOD_ARR_MERGE) {
- float tmp_co[3];
- MVert *in_mv;
- int j;
-
- VECCOPY(tmp_co, mv->co);
- Mat4MulVecfl(offset, tmp_co);
-
- for(j = 0; j < maxVerts; j++) {
- in_mv = &src_mvert[j];
- /* if this vert is within merge limit, merge */
- if(VecLenCompare(tmp_co, in_mv->co, amd->merge_dist)) {
- vert_map[i] = calc_mapping(indexMap, j, count - 1);
- merged = 1;
- break;
- }
- }
- }
-
- if(!merged) {
- DM_copy_vert_data(end_cap, result, i, numVerts, 1);
- mvert[numVerts] = *mv;
- Mat4MulVecfl(endoffset, mvert[numVerts].co);
- origindex[numVerts] = ORIGINDEX_NONE;
-
- vert_map[i] = numVerts;
-
- numVerts++;
- }
- }
- origindex = result->getEdgeDataArray(result, CD_ORIGINDEX);
- for(i = 0; i < capEdges; i++) {
- int v1, v2;
-
- v1 = vert_map[cap_medge[i].v1];
- v2 = vert_map[cap_medge[i].v2];
-
- if(!BLI_edgehash_haskey(edges, v1, v2)) {
- DM_copy_edge_data(end_cap, result, i, numEdges, 1);
- medge[numEdges] = cap_medge[i];
- medge[numEdges].v1 = v1;
- medge[numEdges].v2 = v2;
- origindex[numEdges] = ORIGINDEX_NONE;
-
- numEdges++;
- }
- }
- origindex = result->getFaceDataArray(result, CD_ORIGINDEX);
- for(i = 0; i < capFaces; i++) {
- DM_copy_face_data(end_cap, result, i, numFaces, 1);
- mface[numFaces] = cap_mface[i];
- mface[numFaces].v1 = vert_map[mface[numFaces].v1];
- mface[numFaces].v2 = vert_map[mface[numFaces].v2];
- mface[numFaces].v3 = vert_map[mface[numFaces].v3];
- if(mface[numFaces].v4)
- mface[numFaces].v4 = vert_map[mface[numFaces].v4];
- origindex[numFaces] = ORIGINDEX_NONE;
-
- numFaces++;
- }
-
- MEM_freeN(vert_map);
- end_cap->release(end_cap);
- }
-
- BLI_edgehash_free(edges, NULL);
- MEM_freeN(indexMap);
-
- CDDM_lower_num_verts(result, numVerts);
- CDDM_lower_num_edges(result, numEdges);
- CDDM_lower_num_faces(result, numFaces);
-
- return result;
+ * merge targets, calculate that final copy
+ */
+ if(indexMap[inMF.v1].merge_final)
+ mf->v1 = calc_mapping(indexMap, indexMap[inMF.v1].merge, count-1);
+ if(indexMap[inMF.v2].merge_final)
+ mf->v2 = calc_mapping(indexMap, indexMap[inMF.v2].merge, count-1);
+ if(indexMap[inMF.v3].merge_final)
+ mf->v3 = calc_mapping(indexMap, indexMap[inMF.v3].merge, count-1);
+ if(inMF.v4 && indexMap[inMF.v4].merge_final)
+ mf->v4 = calc_mapping(indexMap, indexMap[inMF.v4].merge, count-1);
+
+ if(test_index_face(mf, &result->faceData, numFaces, inMF.v4?4:3) < 3)
+ continue;
+
+ numFaces++;
+
+ /* if the face has fewer than 3 vertices, don't create it */
+ if(mf->v3 == 0 || (mf->v1 && (mf->v1 == mf->v3 || mf->v1 == mf->v4))) {
+ numFaces--;
+ DM_free_face_data(result, numFaces, 1);
+ }
+
+ for(j = 1; j < count; j++)
+ {
+ MFace *mf2 = &mface[numFaces];
+
+ DM_copy_face_data(dm, result, i, numFaces, 1);
+ *mf2 = *mf;
+
+ mf2->v1 = calc_mapping(indexMap, inMF.v1, j);
+ mf2->v2 = calc_mapping(indexMap, inMF.v2, j);
+ mf2->v3 = calc_mapping(indexMap, inMF.v3, j);
+ if (inMF.v4)
+ mf2->v4 = calc_mapping(indexMap, inMF.v4, j);
+
+ test_index_face(mf2, &result->faceData, numFaces, inMF.v4?4:3);
+ numFaces++;
+
+ /* if the face has fewer than 3 vertices, don't create it */
+ if(mf2->v3 == 0 || (mf2->v1 && (mf2->v1 == mf2->v3 || mf2->v1 ==
+ mf2->v4))) {
+ numFaces--;
+ DM_free_face_data(result, numFaces, 1);
+ }
+ }
+ }
+
+ /* add start and end caps */
+ if(start_cap) {
+ float startoffset[4][4];
+ MVert *cap_mvert;
+ MEdge *cap_medge;
+ MFace *cap_mface;
+ int *origindex;
+ int *vert_map;
+ int capVerts, capEdges, capFaces;
+
+ capVerts = start_cap->getNumVerts(start_cap);
+ capEdges = start_cap->getNumEdges(start_cap);
+ capFaces = start_cap->getNumFaces(start_cap);
+ cap_mvert = start_cap->getVertArray(start_cap);
+ cap_medge = start_cap->getEdgeArray(start_cap);
+ cap_mface = start_cap->getFaceArray(start_cap);
+
+ Mat4Invert(startoffset, offset);
+
+ vert_map = MEM_callocN(sizeof(*vert_map) * capVerts,
+ "arrayModifier_doArray vert_map");
+
+ origindex = result->getVertDataArray(result, CD_ORIGINDEX);
+ for(i = 0; i < capVerts; i++) {
+ MVert *mv = &cap_mvert[i];
+ short merged = 0;
+
+ if(amd->flags & MOD_ARR_MERGE) {
+ float tmp_co[3];
+ MVert *in_mv;
+ int j;
+
+ VECCOPY(tmp_co, mv->co);
+ Mat4MulVecfl(startoffset, tmp_co);
+
+ for(j = 0; j < maxVerts; j++) {
+ in_mv = &src_mvert[j];
+ /* if this vert is within merge limit, merge */
+ if(VecLenCompare(tmp_co, in_mv->co, amd->merge_dist)) {
+ vert_map[i] = calc_mapping(indexMap, j, 0);
+ merged = 1;
+ break;
+ }
+ }
+ }
+
+ if(!merged) {
+ DM_copy_vert_data(start_cap, result, i, numVerts, 1);
+ mvert[numVerts] = *mv;
+ Mat4MulVecfl(startoffset, mvert[numVerts].co);
+ origindex[numVerts] = ORIGINDEX_NONE;
+
+ vert_map[i] = numVerts;
+
+ numVerts++;
+ }
+ }
+ origindex = result->getEdgeDataArray(result, CD_ORIGINDEX);
+ for(i = 0; i < capEdges; i++) {
+ int v1, v2;
+
+ v1 = vert_map[cap_medge[i].v1];
+ v2 = vert_map[cap_medge[i].v2];
+
+ if(!BLI_edgehash_haskey(edges, v1, v2)) {
+ DM_copy_edge_data(start_cap, result, i, numEdges, 1);
+ medge[numEdges] = cap_medge[i];
+ medge[numEdges].v1 = v1;
+ medge[numEdges].v2 = v2;
+ origindex[numEdges] = ORIGINDEX_NONE;
+
+ numEdges++;
+ }
+ }
+ origindex = result->getFaceDataArray(result, CD_ORIGINDEX);
+ for(i = 0; i < capFaces; i++) {
+ DM_copy_face_data(start_cap, result, i, numFaces, 1);
+ mface[numFaces] = cap_mface[i];
+ mface[numFaces].v1 = vert_map[mface[numFaces].v1];
+ mface[numFaces].v2 = vert_map[mface[numFaces].v2];
+ mface[numFaces].v3 = vert_map[mface[numFaces].v3];
+ if(mface[numFaces].v4)
+ mface[numFaces].v4 = vert_map[mface[numFaces].v4];
+ origindex[numFaces] = ORIGINDEX_NONE;
+
+ numFaces++;
+ }
+
+ MEM_freeN(vert_map);
+ start_cap->release(start_cap);
+ }
+
+ if(end_cap) {
+ float endoffset[4][4];
+ MVert *cap_mvert;
+ MEdge *cap_medge;
+ MFace *cap_mface;
+ int *origindex;
+ int *vert_map;
+ int capVerts, capEdges, capFaces;
+
+ capVerts = end_cap->getNumVerts(end_cap);
+ capEdges = end_cap->getNumEdges(end_cap);
+ capFaces = end_cap->getNumFaces(end_cap);
+ cap_mvert = end_cap->getVertArray(end_cap);
+ cap_medge = end_cap->getEdgeArray(end_cap);
+ cap_mface = end_cap->getFaceArray(end_cap);
+
+ Mat4MulMat4(endoffset, final_offset, offset);
+
+ vert_map = MEM_callocN(sizeof(*vert_map) * capVerts,
+ "arrayModifier_doArray vert_map");
+
+ origindex = result->getVertDataArray(result, CD_ORIGINDEX);
+ for(i = 0; i < capVerts; i++) {
+ MVert *mv = &cap_mvert[i];
+ short merged = 0;
+
+ if(amd->flags & MOD_ARR_MERGE) {
+ float tmp_co[3];
+ MVert *in_mv;
+ int j;
+
+ VECCOPY(tmp_co, mv->co);
+ Mat4MulVecfl(offset, tmp_co);
+
+ for(j = 0; j < maxVerts; j++) {
+ in_mv = &src_mvert[j];
+ /* if this vert is within merge limit, merge */
+ if(VecLenCompare(tmp_co, in_mv->co, amd->merge_dist)) {
+ vert_map[i] = calc_mapping(indexMap, j, count - 1);
+ merged = 1;
+ break;
+ }
+ }
+ }
+
+ if(!merged) {
+ DM_copy_vert_data(end_cap, result, i, numVerts, 1);
+ mvert[numVerts] = *mv;
+ Mat4MulVecfl(endoffset, mvert[numVerts].co);
+ origindex[numVerts] = ORIGINDEX_NONE;
+
+ vert_map[i] = numVerts;
+
+ numVerts++;
+ }
+ }
+ origindex = result->getEdgeDataArray(result, CD_ORIGINDEX);
+ for(i = 0; i < capEdges; i++) {
+ int v1, v2;
+
+ v1 = vert_map[cap_medge[i].v1];
+ v2 = vert_map[cap_medge[i].v2];
+
+ if(!BLI_edgehash_haskey(edges, v1, v2)) {
+ DM_copy_edge_data(end_cap, result, i, numEdges, 1);
+ medge[numEdges] = cap_medge[i];
+ medge[numEdges].v1 = v1;
+ medge[numEdges].v2 = v2;
+ origindex[numEdges] = ORIGINDEX_NONE;
+
+ numEdges++;
+ }
+ }
+ origindex = result->getFaceDataArray(result, CD_ORIGINDEX);
+ for(i = 0; i < capFaces; i++) {
+ DM_copy_face_data(end_cap, result, i, numFaces, 1);
+ mface[numFaces] = cap_mface[i];
+ mface[numFaces].v1 = vert_map[mface[numFaces].v1];
+ mface[numFaces].v2 = vert_map[mface[numFaces].v2];
+ mface[numFaces].v3 = vert_map[mface[numFaces].v3];
+ if(mface[numFaces].v4)
+ mface[numFaces].v4 = vert_map[mface[numFaces].v4];
+ origindex[numFaces] = ORIGINDEX_NONE;
+
+ numFaces++;
+ }
+
+ MEM_freeN(vert_map);
+ end_cap->release(end_cap);
+ }
+
+ BLI_edgehash_free(edges, NULL);
+ MEM_freeN(indexMap);
+
+ CDDM_lower_num_verts(result, numVerts);
+ CDDM_lower_num_edges(result, numEdges);
+ CDDM_lower_num_faces(result, numFaces);
+
+ return result;
}
static DerivedMesh *arrayModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
DerivedMesh *result;
ArrayModifierData *amd = (ArrayModifierData*) md;
@@ -1247,8 +1254,8 @@ static DerivedMesh *arrayModifier_applyModifier(
}
static DerivedMesh *arrayModifier_applyModifierEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData)
{
return arrayModifier_applyModifier(md, ob, derivedData, 0, 1);
}
@@ -1276,9 +1283,9 @@ static void mirrorModifier_copyData(ModifierData *md, ModifierData *target)
}
static void mirrorModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
MirrorModifierData *mmd = (MirrorModifierData*) md;
@@ -1286,7 +1293,7 @@ static void mirrorModifier_foreachObjectLink(
}
static void mirrorModifier_updateDepgraph(ModifierData *md, DagForest *forest,
- Object *ob, DagNode *obNode)
+ Object *ob, DagNode *obNode)
{
MirrorModifierData *mmd = (MirrorModifierData*) md;
@@ -1294,15 +1301,15 @@ static void mirrorModifier_updateDepgraph(ModifierData *md, DagForest *forest,
DagNode *latNode = dag_get_node(forest, mmd->mirror_ob);
dag_add_relation(forest, latNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Mirror Modifier");
}
}
static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd,
- Object *ob,
- DerivedMesh *dm,
- int initFlags,
- int axis)
+ Object *ob,
+ DerivedMesh *dm,
+ int initFlags,
+ int axis)
{
int i;
float tolerance = mmd->tolerance;
@@ -1344,9 +1351,9 @@ static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd,
isShared = ABS(co[axis])<=tolerance;
/* Because the topology result (# of vertices) must be the same if
- * the mesh data is overridden by vertex cos, have to calc sharedness
- * based on original coordinates. This is why we test before copy.
- */
+ * the mesh data is overridden by vertex cos, have to calc sharedness
+ * based on original coordinates. This is why we test before copy.
+ */
DM_copy_vert_data(dm, result, i, numVerts, 1);
*mv = inMV;
numVerts++;
@@ -1420,9 +1427,9 @@ static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd,
mf->v4 = indexMap[inMF.v4][0];
if(indexMap[inMF.v1][1]
- || indexMap[inMF.v2][1]
- || indexMap[inMF.v3][1]
- || (mf->v4 && indexMap[inMF.v4][1])) {
+ || indexMap[inMF.v2][1]
+ || indexMap[inMF.v3][1]
+ || (mf->v4 && indexMap[inMF.v4][1])) {
MFace *mf2 = CDDM_get_face(result, numFaces);
static int corner_indices[4] = {2, 1, 0, 3};
@@ -1454,7 +1461,7 @@ static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd,
test_index_face(mf2, &result->faceData, numFaces, inMF.v4?4:3);
numFaces++;
- }
+ }
}
MEM_freeN(indexMap);
@@ -1467,8 +1474,8 @@ static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd,
}
static DerivedMesh *mirrorModifier__doMirror(MirrorModifierData *mmd,
- Object *ob, DerivedMesh *dm,
- int initFlags)
+ Object *ob, DerivedMesh *dm,
+ int initFlags)
{
DerivedMesh *result = dm;
@@ -1491,8 +1498,8 @@ static DerivedMesh *mirrorModifier__doMirror(MirrorModifierData *mmd,
}
static DerivedMesh *mirrorModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
DerivedMesh *result;
MirrorModifierData *mmd = (MirrorModifierData*) md;
@@ -1505,8 +1512,8 @@ static DerivedMesh *mirrorModifier_applyModifier(
}
static DerivedMesh *mirrorModifier_applyModifierEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData)
{
return mirrorModifier_applyModifier(md, ob, derivedData, 0, 1);
}
@@ -1629,15 +1636,15 @@ static int smoothedge_has_vert(SmoothEdge *edge, SmoothVert *vert)
}
static SmoothMesh *smoothmesh_new(int num_verts, int num_edges, int num_faces,
- int max_verts, int max_edges, int max_faces)
+ int max_verts, int max_edges, int max_faces)
{
SmoothMesh *mesh = MEM_callocN(sizeof(*mesh), "smoothmesh");
mesh->verts = MEM_callocN(sizeof(*mesh->verts) * max_verts,
- "SmoothMesh.verts");
+ "SmoothMesh.verts");
mesh->edges = MEM_callocN(sizeof(*mesh->edges) * max_edges,
- "SmoothMesh.edges");
+ "SmoothMesh.edges");
mesh->faces = MEM_callocN(sizeof(*mesh->faces) * max_faces,
- "SmoothMesh.faces");
+ "SmoothMesh.faces");
mesh->num_verts = num_verts;
mesh->num_edges = num_edges;
@@ -1736,7 +1743,7 @@ static void smoothmesh_print(SmoothMesh *mesh)
printf("%3d: ind={%3d, %3d}, pos={% 5.1f, % 5.1f, % 5.1f}",
i, vert->oldIndex, vert->newIndex,
- mv.co[0], mv.co[1], mv.co[2]);
+ mv.co[0], mv.co[1], mv.co[2]);
printf(", faces={");
for(node = vert->faces; node != NULL; node = node->next) {
printf(" %d", ((SmoothFace *)node->link)->newIndex);
@@ -1751,8 +1758,8 @@ static void smoothmesh_print(SmoothMesh *mesh)
printf("%4d: indices={%4d, %4d}, verts={%4d, %4d}",
i,
- edge->oldIndex, edge->newIndex,
- edge->verts[0]->newIndex, edge->verts[1]->newIndex);
+ edge->oldIndex, edge->newIndex,
+ edge->verts[0]->newIndex, edge->verts[1]->newIndex);
if(edge->verts[0] == edge->verts[1]) printf(" <- DUPLICATE VERTEX");
printf(", faces={");
for(node = edge->faces; node != NULL; node = node->next) {
@@ -1794,7 +1801,7 @@ static SmoothMesh *smoothmesh_from_derivedmesh(DerivedMesh *dm)
totface = dm->getNumFaces(dm);
mesh = smoothmesh_new(totvert, totedge, totface,
- totvert, totedge, totface);
+ totvert, totedge, totface);
mesh->dm = dm;
@@ -1864,9 +1871,9 @@ static SmoothMesh *smoothmesh_from_derivedmesh(DerivedMesh *dm)
static DerivedMesh *CDDM_from_smoothmesh(SmoothMesh *mesh)
{
DerivedMesh *result = CDDM_from_template(mesh->dm,
- mesh->num_verts,
- mesh->num_edges,
- mesh->num_faces);
+ mesh->num_verts,
+ mesh->num_edges,
+ mesh->num_faces);
MVert *new_verts = CDDM_get_verts(result);
MEdge *new_edges = CDDM_get_edges(result);
MFace *new_faces = CDDM_get_faces(result);
@@ -1877,7 +1884,7 @@ static DerivedMesh *CDDM_from_smoothmesh(SmoothMesh *mesh)
MVert *newMV = &new_verts[vert->newIndex];
DM_copy_vert_data(mesh->dm, result,
- vert->oldIndex, vert->newIndex, 1);
+ vert->oldIndex, vert->newIndex, 1);
mesh->dm->getVert(mesh->dm, vert->oldIndex, newMV);
}
@@ -1886,7 +1893,7 @@ static DerivedMesh *CDDM_from_smoothmesh(SmoothMesh *mesh)
MEdge *newME = &new_edges[edge->newIndex];
DM_copy_edge_data(mesh->dm, result,
- edge->oldIndex, edge->newIndex, 1);
+ edge->oldIndex, edge->newIndex, 1);
mesh->dm->getEdge(mesh->dm, edge->oldIndex, newME);
newME->v1 = edge->verts[0]->newIndex;
newME->v2 = edge->verts[1]->newIndex;
@@ -1897,7 +1904,7 @@ static DerivedMesh *CDDM_from_smoothmesh(SmoothMesh *mesh)
MFace *newMF = &new_faces[face->newIndex];
DM_copy_face_data(mesh->dm, result,
- face->oldIndex, face->newIndex, 1);
+ face->oldIndex, face->newIndex, 1);
mesh->dm->getFace(mesh->dm, face->oldIndex, newMF);
newMF->v1 = face->edges[0]->verts[face->flip[0]]->newIndex;
@@ -1927,7 +1934,7 @@ static SmoothVert *other_vert(SmoothEdge *edge, SmoothVert *vert)
* (this should never happen)
*/
static SmoothEdge *other_edge(SmoothFace *face, SmoothVert *vert,
- SmoothEdge *edge)
+ SmoothEdge *edge)
{
int i,j;
for(i = 0; i < SMOOTHFACE_MAX_EDGES && face->edges[i]; i++) {
@@ -1939,8 +1946,8 @@ static SmoothEdge *other_edge(SmoothFace *face, SmoothVert *vert,
}
/* if we get to here, something's wrong (there should always be 2 edges
- * which use the same vert in a face)
- */
+ * which use the same vert in a face)
+ */
return NULL;
}
@@ -1969,18 +1976,18 @@ static void linklist_copy(LinkNode **target, LinkNode *source)
for(; source; source = source->next) {
if(node) {
node->next = MEM_mallocN(sizeof(*node->next), "nlink_copy");
- node = node->next;
- } else {
- node = *target = MEM_mallocN(sizeof(**target), "nlink_copy");
- }
- node->link = source->link;
- node->next = NULL;
- }
+ node = node->next;
+} else {
+ node = *target = MEM_mallocN(sizeof(**target), "nlink_copy");
+}
+ node->link = source->link;
+ node->next = NULL;
+}
}
#endif
-/* appends source to target if it's not already in target */
-static void linklist_append_unique(LinkNode **target, void *source)
+ /* appends source to target if it's not already in target */
+ static void linklist_append_unique(LinkNode **target, void *source)
{
LinkNode *node;
LinkNode *prev = NULL;
@@ -2014,7 +2021,7 @@ static void linklist_prepend_linklist(LinkNode **list, LinkNode *prepend)
node->next = *list;
*list = prepend;
- }
+}
}
#endif
@@ -2057,7 +2064,7 @@ static void linklist_empty(LinkNode **list, LinkNodeFreeFP freefunc)
* frees the pointer with freefunc if freefunc is not NULL
*/
static void linklist_remove_first(LinkNode **list, void *value,
- LinkNodeFreeFP freefunc)
+ LinkNodeFreeFP freefunc)
{
LinkNode *node = *list;
LinkNode *prev = NULL;
@@ -2082,7 +2089,7 @@ static void linklist_remove_first(LinkNode **list, void *value,
/* removes all elements in source from target */
static void linklist_remove_list(LinkNode **target, LinkNode *source,
- LinkNodeFreeFP freefunc)
+ LinkNodeFreeFP freefunc)
{
for(; source; source = source->next)
linklist_remove_first(target, source->link, freefunc);
@@ -2157,15 +2164,15 @@ static void face_replace_edge(void *ptr, void *userdata)
#ifdef EDGESPLIT_DEBUG_3
printf("replacing edge %4d with %4d in face %4d",
- find->newIndex, replace->newIndex, face->newIndex);
+ find->newIndex, replace->newIndex, face->newIndex);
if(face->edges[3])
printf(": {%2d %2d %2d %2d}",
face->edges[0]->newIndex, face->edges[1]->newIndex,
- face->edges[2]->newIndex, face->edges[3]->newIndex);
+ face->edges[2]->newIndex, face->edges[3]->newIndex);
else
printf(": {%2d %2d %2d}",
face->edges[0]->newIndex, face->edges[1]->newIndex,
- face->edges[2]->newIndex);
+ face->edges[2]->newIndex);
#endif
for(i = 0; i < SMOOTHFACE_MAX_EDGES && face->edges[i]; i++) {
@@ -2180,11 +2187,11 @@ static void face_replace_edge(void *ptr, void *userdata)
if(face->edges[3])
printf(" -> {%2d %2d %2d %2d}\n",
face->edges[0]->newIndex, face->edges[1]->newIndex,
- face->edges[2]->newIndex, face->edges[3]->newIndex);
+ face->edges[2]->newIndex, face->edges[3]->newIndex);
else
printf(" -> {%2d %2d %2d}\n",
face->edges[0]->newIndex, face->edges[1]->newIndex,
- face->edges[2]->newIndex);
+ face->edges[2]->newIndex);
#endif
}
@@ -2194,7 +2201,7 @@ static int edge_is_loose(SmoothEdge *edge)
}
static int edge_is_sharp(SmoothEdge *edge, int flags,
- float threshold)
+ float threshold)
{
#ifdef EDGESPLIT_DEBUG_1
printf("edge %d: ", edge->newIndex);
@@ -2225,7 +2232,7 @@ static int edge_is_sharp(SmoothEdge *edge, int flags,
* - returns to the start edge (NULL is returned)
*/
static SmoothEdge *find_other_sharp_edge(SmoothVert *vert, SmoothEdge *edge,
- LinkNode **visited_faces, float threshold, int flags)
+ LinkNode **visited_faces, float threshold, int flags)
{
SmoothFace *face = NULL;
SmoothEdge *edge2 = NULL;
@@ -2251,10 +2258,10 @@ static SmoothEdge *find_other_sharp_edge(SmoothVert *vert, SmoothEdge *edge,
BLI_linklist_prepend(visited_faces, face);
/* search until we hit a loose edge or a sharp edge or an edge we've
- * seen before
- */
+ * seen before
+ */
while(face && !edge_is_sharp(edge2, flags, threshold)
- && !linklist_contains(visited_edges, edge2)) {
+ && !linklist_contains(visited_edges, edge2)) {
#ifdef EDGESPLIT_DEBUG_3
printf("current face %4d; current edge %4d\n", face->newIndex,
edge2->newIndex);
@@ -2280,25 +2287,25 @@ static SmoothEdge *find_other_sharp_edge(SmoothVert *vert, SmoothEdge *edge,
printf("loose edge: %4d\n", edge2->newIndex);
#endif
}
- }
+ }
- /* either we came back to the start edge or we found a sharp/loose edge */
- if(linklist_contains(visited_edges, edge2))
- /* we came back to the start edge */
- edge2 = NULL;
+ /* either we came back to the start edge or we found a sharp/loose edge */
+ if(linklist_contains(visited_edges, edge2))
+ /* we came back to the start edge */
+ edge2 = NULL;
- BLI_linklist_free(visited_edges, NULL);
+ BLI_linklist_free(visited_edges, NULL);
#ifdef EDGESPLIT_DEBUG_1
- printf("=== END === find_other_sharp_edge(edge = %4d, vert = %4d), "
- "returning edge %d\n",
- edge->newIndex, vert->newIndex, edge2 ? edge2->newIndex : -1);
+ printf("=== END === find_other_sharp_edge(edge = %4d, vert = %4d), "
+ "returning edge %d\n",
+ edge->newIndex, vert->newIndex, edge2 ? edge2->newIndex : -1);
#endif
- return edge2;
+ return edge2;
}
static void split_single_vert(SmoothVert *vert, SmoothFace *face,
- SmoothMesh *mesh)
+ SmoothMesh *mesh)
{
SmoothVert *copy_vert;
ReplaceData repdata;
@@ -2313,7 +2320,7 @@ static void split_single_vert(SmoothVert *vert, SmoothFace *face,
static void split_edge(SmoothEdge *edge, SmoothVert *vert, SmoothMesh *mesh);
static void propagate_split(SmoothEdge *edge, SmoothVert *vert,
- SmoothMesh *mesh)
+ SmoothMesh *mesh)
{
SmoothEdge *edge2;
LinkNode *visited_faces = NULL;
@@ -2323,7 +2330,7 @@ static void propagate_split(SmoothEdge *edge, SmoothVert *vert,
#endif
edge2 = find_other_sharp_edge(vert, edge, &visited_faces,
- mesh->threshold, mesh->flags);
+ mesh->threshold, mesh->flags);
if(!edge2) {
/* didn't find a sharp or loose edge, so we've hit a dead end */
@@ -2382,7 +2389,7 @@ static void split_edge(SmoothEdge *edge, SmoothVert *vert, SmoothMesh *mesh)
#endif
edge2 = find_other_sharp_edge(vert, edge, &visited_faces,
- mesh->threshold, mesh->flags);
+ mesh->threshold, mesh->flags);
if(!edge2) {
/* didn't find a sharp or loose edge, so try the other vert */
@@ -2407,15 +2414,15 @@ static void split_edge(SmoothEdge *edge, SmoothVert *vert, SmoothMesh *mesh)
vert2 = smoothvert_copy(vert, mesh);
/* replace vert with its copy in visited_faces (must be done after
- * edge replacement so edges have correct vertices)
- */
+ * edge replacement so edges have correct vertices)
+ */
repdata.find = vert;
repdata.replace = vert2;
BLI_linklist_apply(visited_faces, face_replace_vert, &repdata);
/* all copying and replacing is done; the mesh should be consistent.
- * now propagate the split to the vertices at either end
- */
+ * now propagate the split to the vertices at either end
+ */
propagate_split(copy_edge, other_vert(copy_edge, vert2), mesh);
propagate_split(copy_edge2, other_vert(copy_edge2, vert2), mesh);
@@ -2434,15 +2441,15 @@ static void split_edge(SmoothEdge *edge, SmoothVert *vert, SmoothMesh *mesh)
vert2 = smoothvert_copy(vert, mesh);
/* replace vert with its copy in visited_faces (must be done after
- * edge replacement so edges have correct vertices)
- */
+ * edge replacement so edges have correct vertices)
+ */
repdata.find = vert;
repdata.replace = vert2;
BLI_linklist_apply(visited_faces, face_replace_vert, &repdata);
/* copying and replacing is done; the mesh should be consistent.
- * now propagate the split to the vertex at the other end
- */
+ * now propagate the split to the vertex at the other end
+ */
propagate_split(copy_edge, other_vert(copy_edge, vert2), mesh);
if(smoothedge_has_vert(edge, vert))
@@ -2457,7 +2464,7 @@ static void split_edge(SmoothEdge *edge, SmoothVert *vert, SmoothMesh *mesh)
}
static void tag_and_count_extra_edges(SmoothMesh *mesh, float split_angle,
- int flags, int *extra_edges)
+ int flags, int *extra_edges)
{
/* if normal1 dot normal2 < threshold, angle is greater, so split */
/* FIXME not sure if this always works */
@@ -2484,35 +2491,35 @@ static void tag_and_count_extra_edges(SmoothMesh *mesh, float split_angle,
for(node = edge->faces->next->next->next; node; node = node->next)
(*extra_edges)++;
} else if((flags & (MOD_EDGESPLIT_FROMANGLE | MOD_EDGESPLIT_FROMFLAG))
- && !edge_is_loose(edge)) {
+ && !edge_is_loose(edge)) {
/* (the edge can only be sharp if we're checking angle or flag,
- * and it has at least 2 faces) */
+ * and it has at least 2 faces) */
- /* if we're checking the sharp flag and it's set, good */
- if((flags & MOD_EDGESPLIT_FROMFLAG) && (edge->flag & ME_SHARP)) {
- /* this edge is sharp */
- sharp = 1;
+ /* if we're checking the sharp flag and it's set, good */
+ if((flags & MOD_EDGESPLIT_FROMFLAG) && (edge->flag & ME_SHARP)) {
+ /* this edge is sharp */
+ sharp = 1;
- (*extra_edges)++;
- } else if(flags & MOD_EDGESPLIT_FROMANGLE) {
- /* we know the edge has 2 faces, so check the angle */
- SmoothFace *face1 = edge->faces->link;
- SmoothFace *face2 = edge->faces->next->link;
- float edge_angle_cos = MTC_dot3Float(face1->normal,
- face2->normal);
-
- if(edge_angle_cos < threshold) {
- /* this edge is sharp */
- sharp = 1;
-
- (*extra_edges)++;
- }
- }
- }
+ (*extra_edges)++;
+ } else if(flags & MOD_EDGESPLIT_FROMANGLE) {
+ /* we know the edge has 2 faces, so check the angle */
+ SmoothFace *face1 = edge->faces->link;
+ SmoothFace *face2 = edge->faces->next->link;
+ float edge_angle_cos = MTC_dot3Float(face1->normal,
+ face2->normal);
+
+ if(edge_angle_cos < threshold) {
+ /* this edge is sharp */
+ sharp = 1;
- /* set/clear sharp flag appropriately */
- if(sharp) edge->flag |= ME_SHARP;
- else edge->flag &= ~ME_SHARP;
+ (*extra_edges)++;
+ }
+ }
+ }
+
+ /* set/clear sharp flag appropriately */
+ if(sharp) edge->flag |= ME_SHARP;
+ else edge->flag &= ~ME_SHARP;
}
}
@@ -2555,19 +2562,19 @@ static int count_bridge_verts(SmoothMesh *mesh)
next_edge = face->edges[next];
/* if there are other faces sharing this vertex but not
- * these edges, the vertex will be split, so count it
- */
+ * these edges, the vertex will be split, so count it
+ */
/* vert has to have at least one face (this one), so faces != 0 */
if(!edge->faces->next && !next_edge->faces->next
- && vert->faces->next) {
+ && vert->faces->next) {
count++;
- }
+ }
}
}
/* each bridge vert will be counted once per face that uses it,
- * so count is too high, but it's ok for now
- */
+ * so count is too high, but it's ok for now
+ */
return count;
}
@@ -2590,21 +2597,21 @@ static void split_bridge_verts(SmoothMesh *mesh)
next_edge = face->edges[next];
/* if there are other faces sharing this vertex but not
- * these edges, split the vertex
- */
+ * these edges, split the vertex
+ */
/* vert has to have at least one face (this one), so faces != 0 */
if(!edge->faces->next && !next_edge->faces->next
- && vert->faces->next)
+ && vert->faces->next)
/* FIXME this needs to find all faces that share edges with
- * this one and split off together
- */
+ * this one and split off together
+ */
split_single_vert(vert, face, mesh);
}
}
}
static DerivedMesh *edgesplitModifier_do(EdgeSplitModifierData *emd,
- Object *ob, DerivedMesh *dm)
+ Object *ob, DerivedMesh *dm)
{
SmoothMesh *mesh;
DerivedMesh *result;
@@ -2647,8 +2654,8 @@ static DerivedMesh *edgesplitModifier_do(EdgeSplitModifierData *emd,
#ifdef EDGESPLIT_DEBUG_0
printf("Edgesplit: Estimated %d verts & %d edges, "
- "found %d verts & %d edges\n", max_verts, max_edges,
- mesh->num_verts, mesh->num_edges);
+ "found %d verts & %d edges\n", max_verts, max_edges,
+ mesh->num_verts, mesh->num_edges);
#endif
result = CDDM_from_smoothmesh(mesh);
@@ -2658,8 +2665,8 @@ static DerivedMesh *edgesplitModifier_do(EdgeSplitModifierData *emd,
}
static DerivedMesh *edgesplitModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
DerivedMesh *result;
EdgeSplitModifierData *emd = (EdgeSplitModifierData*) md;
@@ -2672,8 +2679,8 @@ static DerivedMesh *edgesplitModifier_applyModifier(
}
static DerivedMesh *edgesplitModifier_applyModifierEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData)
{
return edgesplitModifier_applyModifier(md, ob, derivedData, 0, 1);
}
@@ -2721,8 +2728,8 @@ CustomDataMask bevelModifier_requiredDataMask(ModifierData *md)
}
static DerivedMesh *bevelModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
DerivedMesh *result;
BME_Mesh *bm;
@@ -2756,8 +2763,8 @@ static DerivedMesh *bevelModifier_applyModifier(
}
static DerivedMesh *bevelModifier_applyModifierEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData)
{
return bevelModifier_applyModifier(md, ob, derivedData, 0, 1);
}
@@ -2804,7 +2811,7 @@ CustomDataMask displaceModifier_requiredDataMask(ModifierData *md)
}
static void displaceModifier_foreachObjectLink(ModifierData *md, Object *ob,
- ObjectWalkFunc walk, void *userData)
+ ObjectWalkFunc walk, void *userData)
{
DisplaceModifierData *dmd = (DisplaceModifierData*) md;
@@ -2812,7 +2819,7 @@ static void displaceModifier_foreachObjectLink(ModifierData *md, Object *ob,
}
static void displaceModifier_foreachIDLink(ModifierData *md, Object *ob,
- IDWalkFunc walk, void *userData)
+ IDWalkFunc walk, void *userData)
{
DisplaceModifierData *dmd = (DisplaceModifierData*) md;
@@ -2829,8 +2836,8 @@ static int displaceModifier_isDisabled(ModifierData *md)
}
static void displaceModifier_updateDepgraph(
- ModifierData *md, DagForest *forest,
- Object *ob, DagNode *obNode)
+ ModifierData *md, DagForest *forest,
+ Object *ob, DagNode *obNode)
{
DisplaceModifierData *dmd = (DisplaceModifierData*) md;
@@ -2838,7 +2845,7 @@ static void displaceModifier_updateDepgraph(
DagNode *curNode = dag_get_node(forest, dmd->map_object);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Displace Modifier");
}
}
@@ -2852,17 +2859,17 @@ static void validate_layer_name(const CustomData *data, int type, char *name)
if(index < 0) {
/* either no layer was specified, or the layer we want has been
- * deleted, so assign the active layer to name
- */
+ * deleted, so assign the active layer to name
+ */
index = CustomData_get_active_layer_index(data, CD_MTFACE);
strcpy(name, data->layers[index].name);
}
}
static void get_texture_coords(DisplaceModifierData *dmd, Object *ob,
- DerivedMesh *dm,
- float (*co)[3], float (*texco)[3],
- int numVerts)
+ DerivedMesh *dm,
+ float (*co)[3], float (*texco)[3],
+ int numVerts)
{
int i;
int texmapping = dmd->texmapping;
@@ -2880,14 +2887,14 @@ static void get_texture_coords(DisplaceModifierData *dmd, Object *ob,
MFace *mface = dm->getFaceArray(dm);
MFace *mf;
char *done = MEM_callocN(sizeof(*done) * numVerts,
- "get_texture_coords done");
+ "get_texture_coords done");
int numFaces = dm->getNumFaces(dm);
MTFace *tf;
validate_layer_name(&dm->faceData, CD_MTFACE, dmd->uvlayer_name);
tf = CustomData_get_layer_named(&dm->faceData, CD_MTFACE,
- dmd->uvlayer_name);
+ dmd->uvlayer_name);
/* verts are given the UV from the first face that uses them */
for(i = 0, mf = mface; i < numFaces; ++i, ++mf, ++tf) {
@@ -2931,18 +2938,18 @@ static void get_texture_coords(DisplaceModifierData *dmd, Object *ob,
for(i = 0; i < numVerts; ++i, ++co, ++texco) {
switch(texmapping) {
- case MOD_DISP_MAP_LOCAL:
- VECCOPY(*texco, *co);
- break;
- case MOD_DISP_MAP_GLOBAL:
- VECCOPY(*texco, *co);
- Mat4MulVecfl(ob->obmat, *texco);
- break;
- case MOD_DISP_MAP_OBJECT:
- VECCOPY(*texco, *co);
- Mat4MulVecfl(ob->obmat, *texco);
- Mat4MulVecfl(dmd->map_object->imat, *texco);
- break;
+ case MOD_DISP_MAP_LOCAL:
+ VECCOPY(*texco, *co);
+ break;
+ case MOD_DISP_MAP_GLOBAL:
+ VECCOPY(*texco, *co);
+ Mat4MulVecfl(ob->obmat, *texco);
+ break;
+ case MOD_DISP_MAP_OBJECT:
+ VECCOPY(*texco, *co);
+ Mat4MulVecfl(ob->obmat, *texco);
+ Mat4MulVecfl(dmd->map_object->imat, *texco);
+ break;
}
}
}
@@ -2952,23 +2959,23 @@ static void get_texture_value(Tex *texture, float *tex_co, TexResult *texres)
int result_type;
result_type = multitex_ext(texture, tex_co, NULL,
- NULL, 1, texres);
+ NULL, 1, texres);
/* if the texture gave an RGB value, we assume it didn't give a valid
- * intensity, so calculate one (formula from do_material_tex).
- * if the texture didn't give an RGB value, copy the intensity across
- */
+ * intensity, so calculate one (formula from do_material_tex).
+ * if the texture didn't give an RGB value, copy the intensity across
+ */
if(result_type & TEX_RGB)
texres->tin = (0.35 * texres->tr + 0.45 * texres->tg
- + 0.2 * texres->tb);
+ + 0.2 * texres->tb);
else
texres->tr = texres->tg = texres->tb = texres->tin;
}
/* dm must be a CDDerivedMesh */
static void displaceModifier_do(
- DisplaceModifierData *dmd, Object *ob,
- DerivedMesh *dm, float (*vertexCos)[3], int numVerts)
+ DisplaceModifierData *dmd, Object *ob,
+ DerivedMesh *dm, float (*vertexCos)[3], int numVerts)
{
int i;
MVert *mvert;
@@ -2995,7 +3002,7 @@ static void displaceModifier_do(
dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT);
tex_co = MEM_callocN(sizeof(*tex_co) * numVerts,
- "displaceModifier_do tex_co");
+ "displaceModifier_do tex_co");
get_texture_coords(dmd, ob, dm, vertexCos, tex_co, numVerts);
for(i = 0; i < numVerts; ++i) {
@@ -3024,25 +3031,25 @@ static void displaceModifier_do(
delta *= strength;
switch(dmd->direction) {
- case MOD_DISP_DIR_X:
- vertexCos[i][0] += delta;
- break;
- case MOD_DISP_DIR_Y:
- vertexCos[i][1] += delta;
- break;
- case MOD_DISP_DIR_Z:
- vertexCos[i][2] += delta;
- break;
- case MOD_DISP_DIR_RGB_XYZ:
- vertexCos[i][0] += (texres.tr - dmd->midlevel) * strength;
- vertexCos[i][1] += (texres.tg - dmd->midlevel) * strength;
- vertexCos[i][2] += (texres.tb - dmd->midlevel) * strength;
- break;
- case MOD_DISP_DIR_NOR:
- vertexCos[i][0] += delta * mvert[i].no[0] / 32767.0f;
- vertexCos[i][1] += delta * mvert[i].no[1] / 32767.0f;
- vertexCos[i][2] += delta * mvert[i].no[2] / 32767.0f;
- break;
+ case MOD_DISP_DIR_X:
+ vertexCos[i][0] += delta;
+ break;
+ case MOD_DISP_DIR_Y:
+ vertexCos[i][1] += delta;
+ break;
+ case MOD_DISP_DIR_Z:
+ vertexCos[i][2] += delta;
+ break;
+ case MOD_DISP_DIR_RGB_XYZ:
+ vertexCos[i][0] += (texres.tr - dmd->midlevel) * strength;
+ vertexCos[i][1] += (texres.tg - dmd->midlevel) * strength;
+ vertexCos[i][2] += (texres.tb - dmd->midlevel) * strength;
+ break;
+ case MOD_DISP_DIR_NOR:
+ vertexCos[i][0] += delta * mvert[i].no[0] / 32767.0f;
+ vertexCos[i][1] += delta * mvert[i].no[1] / 32767.0f;
+ vertexCos[i][2] += delta * mvert[i].no[2] / 32767.0f;
+ break;
}
}
@@ -3050,8 +3057,8 @@ static void displaceModifier_do(
}
static void displaceModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm;
@@ -3063,14 +3070,14 @@ static void displaceModifier_deformVerts(
CDDM_calc_normals(dm);
displaceModifier_do((DisplaceModifierData *)md, ob, dm,
- vertexCos, numVerts);
+ vertexCos, numVerts);
dm->release(dm);
}
static void displaceModifier_deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm;
@@ -3081,7 +3088,7 @@ static void displaceModifier_deformVertsEM(
CDDM_calc_normals(dm);
displaceModifier_do((DisplaceModifierData *)md, ob, dm,
- vertexCos, numVerts);
+ vertexCos, numVerts);
dm->release(dm);
}
@@ -3129,7 +3136,7 @@ CustomDataMask uvprojectModifier_requiredDataMask(ModifierData *md)
}
static void uvprojectModifier_foreachObjectLink(ModifierData *md, Object *ob,
- ObjectWalkFunc walk, void *userData)
+ ObjectWalkFunc walk, void *userData)
{
UVProjectModifierData *umd = (UVProjectModifierData*) md;
int i;
@@ -3139,18 +3146,18 @@ static void uvprojectModifier_foreachObjectLink(ModifierData *md, Object *ob,
}
static void uvprojectModifier_foreachIDLink(ModifierData *md, Object *ob,
- IDWalkFunc walk, void *userData)
+ IDWalkFunc walk, void *userData)
{
UVProjectModifierData *umd = (UVProjectModifierData*) md;
walk(userData, ob, (ID **)&umd->image);
uvprojectModifier_foreachObjectLink(md, ob, (ObjectWalkFunc)walk,
- userData);
+ userData);
}
static void uvprojectModifier_updateDepgraph(ModifierData *md,
- DagForest *forest, Object *ob, DagNode *obNode)
+ DagForest *forest, Object *ob, DagNode *obNode)
{
UVProjectModifierData *umd = (UVProjectModifierData*) md;
int i;
@@ -3160,7 +3167,7 @@ static void uvprojectModifier_updateDepgraph(ModifierData *md,
DagNode *curNode = dag_get_node(forest, umd->projectors[i]);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "UV Project Modifier");
}
}
}
@@ -3172,7 +3179,7 @@ typedef struct Projector {
} Projector;
static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
- Object *ob, DerivedMesh *dm)
+ Object *ob, DerivedMesh *dm)
{
float (*coords)[3], (*co)[3];
MTFace *tface;
@@ -3201,13 +3208,13 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
/* make sure we are not modifying the original UV layer */
tface = CustomData_duplicate_referenced_layer_named(&dm->faceData,
- CD_MTFACE,
- umd->uvlayer_name);
+ CD_MTFACE,
+ umd->uvlayer_name);
numVerts = dm->getNumVerts(dm);
coords = MEM_callocN(sizeof(*coords) * numVerts,
- "uvprojectModifier_do coords");
+ "uvprojectModifier_do coords");
dm->getVertCos(dm, coords);
/* convert coords to world space */
@@ -3243,7 +3250,7 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
ymin = -ymax;
i_window(xmin, xmax, ymin, ymax,
- cam->clipsta, cam->clipend, perspmat);
+ cam->clipsta, cam->clipend, perspmat);
Mat4MulMat4(tmpmat, projectors[i].projmat, perspmat);
} else if(cam->type == CAM_ORTHO) {
float orthomat[4][4];
@@ -3263,7 +3270,7 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
ymin = -ymax;
i_ortho(xmin, xmax, ymin, ymax,
- cam->clipsta, cam->clipend, orthomat);
+ cam->clipsta, cam->clipend, orthomat);
Mat4MulMat4(tmpmat, projectors[i].projmat, orthomat);
}
} else {
@@ -3321,8 +3328,8 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
}
} else {
/* multiple projectors, select the closest to face normal
- * direction
- */
+ * direction
+ */
float co1[3], co2[3], co3[3], co4[3];
float face_no[3];
int j;
@@ -3342,14 +3349,14 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
}
/* find the projector which the face points at most directly
- * (projector normal with largest dot product is best)
- */
+ * (projector normal with largest dot product is best)
+ */
best_dot = MTC_dot3Float(projectors[0].normal, face_no);
best_projector = &projectors[0];
for(j = 1; j < num_projectors; ++j) {
float tmp_dot = MTC_dot3Float(projectors[j].normal,
- face_no);
+ face_no);
if(tmp_dot > best_dot) {
best_dot = tmp_dot;
best_projector = &projectors[j];
@@ -3388,8 +3395,8 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
}
static DerivedMesh *uvprojectModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
DerivedMesh *result;
UVProjectModifierData *umd = (UVProjectModifierData*) md;
@@ -3400,8 +3407,8 @@ static DerivedMesh *uvprojectModifier_applyModifier(
}
static DerivedMesh *uvprojectModifier_applyModifierEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData)
{
return uvprojectModifier_applyModifier(md, ob, derivedData, 0, 1);
}
@@ -3424,8 +3431,8 @@ static void decimateModifier_copyData(ModifierData *md, ModifierData *target)
}
static DerivedMesh *decimateModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
DecimateModifierData *dmd = (DecimateModifierData*) md;
DerivedMesh *dm = derivedData, *result = NULL;
@@ -3449,7 +3456,7 @@ static DerivedMesh *decimateModifier_applyModifier(
if(numTris<3) {
modifier_setError(md,
- "There must be more than 3 input faces (triangles).");
+ "Modifier requires more than 3 input faces (triangles).");
goto exit;
}
@@ -3539,7 +3546,7 @@ static DerivedMesh *decimateModifier_applyModifier(
MEM_freeN(lod.triangle_index_buffer);
exit:
- return result;
+ return result;
}
/* Smooth */
@@ -3590,8 +3597,8 @@ CustomDataMask smoothModifier_requiredDataMask(ModifierData *md)
}
static void smoothModifier_do(
- SmoothModifierData *smd, Object *ob, DerivedMesh *dm,
- float (*vertexCos)[3], int numVerts)
+ SmoothModifierData *smd, Object *ob, DerivedMesh *dm,
+ float (*vertexCos)[3], int numVerts)
{
MDeformVert *dvert = NULL;
MEdge *medges = NULL;
@@ -3601,10 +3608,10 @@ static void smoothModifier_do(
float *ftmp, fac, facm;
ftmp = (float*)MEM_callocN(3*sizeof(float)*numVerts,
- "smoothmodifier_f");
+ "smoothmodifier_f");
if (!ftmp) return;
uctmp = (unsigned char*)MEM_callocN(sizeof(unsigned char)*numVerts,
- "smoothmodifier_uc");
+ "smoothmodifier_uc");
if (!uctmp) {
if (ftmp) MEM_freeN(ftmp);
return;
@@ -3633,7 +3640,7 @@ static void smoothModifier_do(
dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT);
/* NOTICE: this can be optimized a little bit by moving the
- * if (dvert) out of the loop, if needed */
+ * if (dvert) out of the loop, if needed */
for (j = 0; j < smd->repeat; j++) {
for (i = 0; i < numDMEdges; i++) {
float fvec[3];
@@ -3729,8 +3736,8 @@ static void smoothModifier_do(
}
static void smoothModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm;
@@ -3741,14 +3748,14 @@ static void smoothModifier_deformVerts(
CDDM_calc_normals(dm);
smoothModifier_do((SmoothModifierData *)md, ob, dm,
- vertexCos, numVerts);
+ vertexCos, numVerts);
dm->release(dm);
}
static void smoothModifier_deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm;
@@ -3759,7 +3766,7 @@ static void smoothModifier_deformVertsEM(
CDDM_calc_normals(dm);
smoothModifier_do((SmoothModifierData *)md, ob, dm,
- vertexCos, numVerts);
+ vertexCos, numVerts);
dm->release(dm);
}
@@ -3774,7 +3781,7 @@ static void castModifier_initData(ModifierData *md)
cmd->radius = 0.0f;
cmd->size = 0.0f;
cmd->flag = MOD_CAST_X | MOD_CAST_Y | MOD_CAST_Z
- | MOD_CAST_SIZE_FROM_RADIUS;
+ | MOD_CAST_SIZE_FROM_RADIUS;
cmd->type = MOD_CAST_TYPE_SPHERE;
cmd->defgrp_name[0] = '\0';
cmd->object = NULL;
@@ -3819,9 +3826,9 @@ CustomDataMask castModifier_requiredDataMask(ModifierData *md)
}
static void castModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
CastModifierData *cmd = (CastModifierData*) md;
@@ -3829,21 +3836,22 @@ static void castModifier_foreachObjectLink(
}
static void castModifier_updateDepgraph(
- ModifierData *md, DagForest *forest, Object *ob,
- DagNode *obNode)
+ ModifierData *md, DagForest *forest, Object *ob,
+ DagNode *obNode)
{
CastModifierData *cmd = (CastModifierData*) md;
if (cmd->object) {
DagNode *curNode = dag_get_node(forest, cmd->object);
- dag_add_relation(forest, curNode, obNode, DAG_RL_OB_DATA);
+ dag_add_relation(forest, curNode, obNode, DAG_RL_OB_DATA,
+ "Cast Modifier");
}
}
static void castModifier_sphere_do(
- CastModifierData *cmd, Object *ob, DerivedMesh *dm,
- float (*vertexCos)[3], int numVerts)
+ CastModifierData *cmd, Object *ob, DerivedMesh *dm,
+ float (*vertexCos)[3], int numVerts)
{
MDeformVert *dvert = NULL;
@@ -3868,8 +3876,8 @@ static void castModifier_sphere_do(
ctrl_ob = cmd->object;
/* spherify's center is {0, 0, 0} (the ob's own center in its local
- * space), by default, but if the user defined a control object,
- * we use its location, transformed to ob's local space */
+ * space), by default, but if the user defined a control object,
+ * we use its location, transformed to ob's local space */
if (ctrl_ob) {
if(flag & MOD_CAST_USE_OB_TRANSFORM) {
Mat4Invert(ctrl_ob->imat, ctrl_ob->obmat);
@@ -3886,11 +3894,11 @@ static void castModifier_sphere_do(
/* 1) (flag was checked in the "if (ctrl_ob)" block above) */
/* 2) cmd->radius > 0.0f: only the vertices within this radius from
- * the center of the effect should be deformed */
+ * the center of the effect should be deformed */
if (cmd->radius > FLT_EPSILON) has_radius = 1;
/* 3) if we were given a vertex group name,
- * only those vertices should be affected */
+ * only those vertices should be affected */
if (cmd->defgrp_name[0]) {
bDeformGroup *def;
@@ -3922,10 +3930,10 @@ static void castModifier_sphere_do(
}
/* ready to apply the effect, one vertex at a time;
- * tiny optimization: the code is separated (with parts repeated)
+ * tiny optimization: the code is separated (with parts repeated)
* in two possible cases:
- * with or w/o a vgroup. With lots of if's in the code below,
- * further optimizations are possible, if needed */
+ * with or w/o a vgroup. With lots of if's in the code below,
+ * further optimizations are possible, if needed */
if (dvert) { /* with a vgroup */
float fac_orig = fac;
for (i = 0; i < numVerts; i++) {
@@ -4028,8 +4036,8 @@ static void castModifier_sphere_do(
}
static void castModifier_cuboid_do(
- CastModifierData *cmd, Object *ob, DerivedMesh *dm,
- float (*vertexCos)[3], int numVerts)
+ CastModifierData *cmd, Object *ob, DerivedMesh *dm,
+ float (*vertexCos)[3], int numVerts)
{
MDeformVert *dvert = NULL;
Object *ctrl_ob = NULL;
@@ -4053,11 +4061,11 @@ static void castModifier_cuboid_do(
/* 1) (flag was checked in the "if (ctrl_ob)" block above) */
/* 2) cmd->radius > 0.0f: only the vertices within this radius from
- * the center of the effect should be deformed */
+ * the center of the effect should be deformed */
if (cmd->radius > FLT_EPSILON) has_radius = 1;
/* 3) if we were given a vertex group name,
- * only those vertices should be affected */
+ * only those vertices should be affected */
if (cmd->defgrp_name[0]) {
bDeformGroup *def;
@@ -4097,12 +4105,12 @@ static void castModifier_cuboid_do(
} else {
/* get bound box */
/* We can't use the object's bound box because other modifiers
- * may have changed the vertex data. */
+ * may have changed the vertex data. */
INIT_MINMAX(min, max);
/* Cast's center is the ob's own center in its local space,
- * by default, but if the user defined a control object, we use
- * its location, transformed to ob's local space. */
+ * by default, but if the user defined a control object, we use
+ * its location, transformed to ob's local space. */
if (ctrl_ob) {
float vec[3];
@@ -4138,10 +4146,10 @@ static void castModifier_cuboid_do(
bb[4][2] = bb[5][2] = bb[6][2] = bb[7][2] = max[2];
/* ready to apply the effect, one vertex at a time;
- * tiny optimization: the code is separated (with parts repeated)
+ * tiny optimization: the code is separated (with parts repeated)
* in two possible cases:
- * with or w/o a vgroup. With lots of if's in the code below,
- * further optimizations are possible, if needed */
+ * with or w/o a vgroup. With lots of if's in the code below,
+ * further optimizations are possible, if needed */
if (dvert) { /* with a vgroup */
float fac_orig = fac;
for (i = 0; i < numVerts; i++) {
@@ -4161,8 +4169,8 @@ static void castModifier_cuboid_do(
if (has_radius) {
if (fabs(tmp_co[0]) > cmd->radius ||
- fabs(tmp_co[1]) > cmd->radius ||
- fabs(tmp_co[2]) > cmd->radius) continue;
+ fabs(tmp_co[1]) > cmd->radius ||
+ fabs(tmp_co[2]) > cmd->radius) continue;
}
for (j = 0; j < dvert[i].totweight; ++j) {
@@ -4179,10 +4187,10 @@ static void castModifier_cuboid_do(
/* The algo used to project the vertices to their
* bounding box (bb) is pretty simple:
* for each vertex v:
- * 1) find in which octant v is in;
- * 2) find which outer "wall" of that octant is closer to v;
- * 3) calculate factor (var fbb) to project v to that wall;
- * 4) project. */
+ * 1) find in which octant v is in;
+ * 2) find which outer "wall" of that octant is closer to v;
+ * 3) calculate factor (var fbb) to project v to that wall;
+ * 4) project. */
/* find in which octant this vertex is in */
octant = 0;
@@ -4216,7 +4224,7 @@ static void castModifier_cuboid_do(
continue;
/* finally, this is the factor we wanted, to project the vertex
- * to its bounding box (bb) */
+ * to its bounding box (bb) */
fbb = apex[coord] / tmp_co[coord];
/* calculate the new vertex position */
@@ -4257,8 +4265,8 @@ static void castModifier_cuboid_do(
if (has_radius) {
if (fabs(tmp_co[0]) > cmd->radius ||
- fabs(tmp_co[1]) > cmd->radius ||
- fabs(tmp_co[2]) > cmd->radius) continue;
+ fabs(tmp_co[1]) > cmd->radius ||
+ fabs(tmp_co[2]) > cmd->radius) continue;
}
octant = 0;
@@ -4308,8 +4316,8 @@ static void castModifier_cuboid_do(
}
static void castModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm = derivedData;
CastModifierData *cmd = (CastModifierData *)md;
@@ -4327,8 +4335,8 @@ static void castModifier_deformVerts(
}
static void castModifier_deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm = derivedData;
CastModifierData *cmd = (CastModifierData *)md;
@@ -4352,7 +4360,7 @@ static void waveModifier_initData(ModifierData *md)
WaveModifierData *wmd = (WaveModifierData*) md; // whadya know, moved here from Iraq
wmd->flag |= (MOD_WAVE_X | MOD_WAVE_Y | MOD_WAVE_CYCL
- | MOD_WAVE_NORM_X | MOD_WAVE_NORM_Y | MOD_WAVE_NORM_Z);
+ | MOD_WAVE_NORM_X | MOD_WAVE_NORM_Y | MOD_WAVE_NORM_Z);
wmd->objectcenter = NULL;
wmd->texture = NULL;
@@ -4395,8 +4403,8 @@ static int waveModifier_dependsOnTime(ModifierData *md)
}
static void waveModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- ObjectWalkFunc walk, void *userData)
+ ModifierData *md, Object *ob,
+ ObjectWalkFunc walk, void *userData)
{
WaveModifierData *wmd = (WaveModifierData*) md;
@@ -4405,7 +4413,7 @@ static void waveModifier_foreachObjectLink(
}
static void waveModifier_foreachIDLink(ModifierData *md, Object *ob,
- IDWalkFunc walk, void *userData)
+ IDWalkFunc walk, void *userData)
{
WaveModifierData *wmd = (WaveModifierData*) md;
@@ -4415,21 +4423,23 @@ static void waveModifier_foreachIDLink(ModifierData *md, Object *ob,
}
static void waveModifier_updateDepgraph(
- ModifierData *md, DagForest *forest, Object *ob,
- DagNode *obNode)
+ ModifierData *md, DagForest *forest, Object *ob,
+ DagNode *obNode)
{
WaveModifierData *wmd = (WaveModifierData*) md;
if(wmd->objectcenter) {
DagNode *curNode = dag_get_node(forest, wmd->objectcenter);
- dag_add_relation(forest, curNode, obNode, DAG_RL_OB_DATA);
+ dag_add_relation(forest, curNode, obNode, DAG_RL_OB_DATA,
+ "Wave Modifier");
}
if(wmd->map_object) {
DagNode *curNode = dag_get_node(forest, wmd->map_object);
- dag_add_relation(forest, curNode, obNode, DAG_RL_OB_DATA);
+ dag_add_relation(forest, curNode, obNode, DAG_RL_OB_DATA,
+ "Wave Modifer");
}
}
@@ -4451,9 +4461,9 @@ CustomDataMask waveModifier_requiredDataMask(ModifierData *md)
}
static void wavemod_get_texture_coords(WaveModifierData *wmd, Object *ob,
- DerivedMesh *dm,
- float (*co)[3], float (*texco)[3],
- int numVerts)
+ DerivedMesh *dm,
+ float (*co)[3], float (*texco)[3],
+ int numVerts)
{
int i;
int texmapping = wmd->texmapping;
@@ -4471,14 +4481,14 @@ static void wavemod_get_texture_coords(WaveModifierData *wmd, Object *ob,
MFace *mface = dm->getFaceArray(dm);
MFace *mf;
char *done = MEM_callocN(sizeof(*done) * numVerts,
- "get_texture_coords done");
+ "get_texture_coords done");
int numFaces = dm->getNumFaces(dm);
MTFace *tf;
validate_layer_name(&dm->faceData, CD_MTFACE, wmd->uvlayer_name);
tf = CustomData_get_layer_named(&dm->faceData, CD_MTFACE,
- wmd->uvlayer_name);
+ wmd->uvlayer_name);
/* verts are given the UV from the first face that uses them */
for(i = 0, mf = mface; i < numFaces; ++i, ++mf, ++tf) {
@@ -4522,25 +4532,25 @@ static void wavemod_get_texture_coords(WaveModifierData *wmd, Object *ob,
for(i = 0; i < numVerts; ++i, ++co, ++texco) {
switch(texmapping) {
- case MOD_WAV_MAP_LOCAL:
- VECCOPY(*texco, *co);
- break;
- case MOD_WAV_MAP_GLOBAL:
- VECCOPY(*texco, *co);
- Mat4MulVecfl(ob->obmat, *texco);
- break;
- case MOD_WAV_MAP_OBJECT:
- VECCOPY(*texco, *co);
- Mat4MulVecfl(ob->obmat, *texco);
- Mat4MulVecfl(wmd->map_object->imat, *texco);
- break;
+ case MOD_WAV_MAP_LOCAL:
+ VECCOPY(*texco, *co);
+ break;
+ case MOD_WAV_MAP_GLOBAL:
+ VECCOPY(*texco, *co);
+ Mat4MulVecfl(ob->obmat, *texco);
+ break;
+ case MOD_WAV_MAP_OBJECT:
+ VECCOPY(*texco, *co);
+ Mat4MulVecfl(ob->obmat, *texco);
+ Mat4MulVecfl(wmd->map_object->imat, *texco);
+ break;
}
}
}
static void waveModifier_do(
- WaveModifierData *md, Object *ob, DerivedMesh *dm,
- float (*vertexCos)[3], int numVerts)
+ WaveModifierData *md, Object *ob, DerivedMesh *dm,
+ float (*vertexCos)[3], int numVerts)
{
WaveModifierData *wmd = (WaveModifierData*) md;
MVert *mvert = NULL;
@@ -4548,7 +4558,7 @@ static void waveModifier_do(
int defgrp_index;
float ctime = bsystem_time(ob, (float)G.scene->r.cfra, 0.0);
float minfac =
- (float)(1.0 / exp(wmd->width * wmd->narrow * wmd->width * wmd->narrow));
+ (float)(1.0 / exp(wmd->width * wmd->narrow * wmd->width * wmd->narrow));
float lifefac = wmd->height;
float (*tex_co)[3] = NULL;
@@ -4593,13 +4603,13 @@ static void waveModifier_do(
if(lifefac > wmd->damp) lifefac = 0.0;
else lifefac =
- (float)(wmd->height * (1.0 - sqrt(lifefac / wmd->damp)));
+ (float)(wmd->height * (1.0 - sqrt(lifefac / wmd->damp)));
}
}
if(wmd->texture) {
tex_co = MEM_mallocN(sizeof(*tex_co) * numVerts,
- "waveModifier_do tex_co");
+ "waveModifier_do tex_co");
wavemod_get_texture_coords(wmd, ob, dm, vertexCos, tex_co, numVerts);
}
@@ -4646,7 +4656,7 @@ static void waveModifier_do(
if(wmd->flag & MOD_WAVE_CYCL) {
amplit = (float)fmod(amplit - wmd->width, 2.0 * wmd->width)
- + wmd->width;
+ + wmd->width;
}
/* GAUSSIAN */
@@ -4683,8 +4693,8 @@ static void waveModifier_do(
}
static void waveModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm;
WaveModifierData *wmd = (WaveModifierData *)md;
@@ -4706,8 +4716,8 @@ static void waveModifier_deformVerts(
}
static void waveModifier_deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm;
WaveModifierData *wmd = (WaveModifierData *)md;
@@ -4764,9 +4774,9 @@ static int armatureModifier_isDisabled(ModifierData *md)
}
static void armatureModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
ArmatureModifierData *amd = (ArmatureModifierData*) md;
@@ -4774,8 +4784,8 @@ static void armatureModifier_foreachObjectLink(
}
static void armatureModifier_updateDepgraph(
- ModifierData *md, DagForest *forest, Object *ob,
- DagNode *obNode)
+ ModifierData *md, DagForest *forest, Object *ob,
+ DagNode *obNode)
{
ArmatureModifierData *amd = (ArmatureModifierData*) md;
@@ -4783,21 +4793,21 @@ static void armatureModifier_updateDepgraph(
DagNode *curNode = dag_get_node(forest, amd->object);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Armature Modifier");
}
}
static void armatureModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
ArmatureModifierData *amd = (ArmatureModifierData*) md;
modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */
armature_deform_verts(amd->object, ob, derivedData, vertexCos, NULL,
- numVerts, amd->deformflag,
- (float(*)[3])amd->prevCos, amd->defgrp_name);
+ numVerts, amd->deformflag,
+ (float(*)[3])amd->prevCos, amd->defgrp_name);
/* free cache */
if(amd->prevCos) {
MEM_freeN(amd->prevCos);
@@ -4806,8 +4816,8 @@ static void armatureModifier_deformVerts(
}
static void armatureModifier_deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
ArmatureModifierData *amd = (ArmatureModifierData*) md;
DerivedMesh *dm = derivedData;
@@ -4815,15 +4825,15 @@ static void armatureModifier_deformVertsEM(
if(!derivedData) dm = CDDM_from_editmesh(editData, ob->data);
armature_deform_verts(amd->object, ob, dm, vertexCos, NULL, numVerts,
- amd->deformflag, NULL, amd->defgrp_name);
+ amd->deformflag, NULL, amd->defgrp_name);
if(!derivedData) dm->release(dm);
}
static void armatureModifier_deformMatricesEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3],
- float (*defMats)[3][3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3],
+ float (*defMats)[3][3], int numVerts)
{
ArmatureModifierData *amd = (ArmatureModifierData*) md;
DerivedMesh *dm = derivedData;
@@ -4831,7 +4841,7 @@ static void armatureModifier_deformMatricesEM(
if(!derivedData) dm = CDDM_from_editmesh(editData, ob->data);
armature_deform_verts(amd->object, ob, dm, vertexCos, defMats, numVerts,
- amd->deformflag, NULL, amd->defgrp_name);
+ amd->deformflag, NULL, amd->defgrp_name);
if(!derivedData) dm->release(dm);
}
@@ -4886,9 +4896,9 @@ static int hookModifier_isDisabled(ModifierData *md)
}
static void hookModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
HookModifierData *hmd = (HookModifierData*) md;
@@ -4896,20 +4906,21 @@ static void hookModifier_foreachObjectLink(
}
static void hookModifier_updateDepgraph(ModifierData *md, DagForest *forest,
- Object *ob, DagNode *obNode)
+ Object *ob, DagNode *obNode)
{
HookModifierData *hmd = (HookModifierData*) md;
if (hmd->object) {
DagNode *curNode = dag_get_node(forest, hmd->object);
- dag_add_relation(forest, curNode, obNode, DAG_RL_OB_DATA);
+ dag_add_relation(forest, curNode, obNode, DAG_RL_OB_DATA,
+ "Hook Modifier");
}
}
static void hookModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
HookModifierData *hmd = (HookModifierData*) md;
float vec[3], mat[4][4];
@@ -4918,7 +4929,7 @@ static void hookModifier_deformVerts(
Mat4Invert(ob->imat, ob->obmat);
Mat4MulSerie(mat, ob->imat, hmd->object->obmat, hmd->parentinv,
- NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL);
/* vertex indices? */
if(hmd->indexar) {
@@ -4926,24 +4937,24 @@ static void hookModifier_deformVerts(
int index = hmd->indexar[i];
/* This should always be true and I don't generally like
- * "paranoid" style code like this, but old files can have
- * indices that are out of range because old blender did
- * not correct them on exit editmode. - zr
- */
+ * "paranoid" style code like this, but old files can have
+ * indices that are out of range because old blender did
+ * not correct them on exit editmode. - zr
+ */
if(index < numVerts) {
float *co = vertexCos[index];
float fac = hmd->force;
/* if DerivedMesh is present and has original index data,
- * use it
- */
+ * use it
+ */
if(dm && dm->getVertData(dm, 0, CD_ORIGINDEX)) {
int j;
int orig_index;
for(j = 0; j < numVerts; ++j) {
fac = hmd->force;
orig_index = *(int *)dm->getVertData(dm, j,
- CD_ORIGINDEX);
+ CD_ORIGINDEX);
if(orig_index == index) {
co = vertexCos[j];
if(hmd->falloff != 0.0) {
@@ -4987,44 +4998,44 @@ static void hookModifier_deformVerts(
if(dm)
if(dm->getVertData(dm, 0, CD_MDEFORMVERT)) {
+ use_dverts = 1;
+ maxVerts = dm->getNumVerts(dm);
+ } else use_dverts = 0;
+ else if(me->dvert) {
use_dverts = 1;
- maxVerts = dm->getNumVerts(dm);
+ maxVerts = me->totvert;
} else use_dverts = 0;
- else if(me->dvert) {
- use_dverts = 1;
- maxVerts = me->totvert;
- } else use_dverts = 0;
- if(curdef && use_dverts) {
- MDeformVert *dvert = me->dvert;
- int i, j;
+ if(curdef && use_dverts) {
+ MDeformVert *dvert = me->dvert;
+ int i, j;
- for(i = 0; i < maxVerts; i++, dvert++) {
- if(dm) dvert = dm->getVertData(dm, i, CD_MDEFORMVERT);
- for(j = 0; j < dvert->totweight; j++) {
- if(dvert->dw[j].def_nr == index) {
- float fac = hmd->force*dvert->dw[j].weight;
- float *co = vertexCos[i];
+ for(i = 0; i < maxVerts; i++, dvert++) {
+ if(dm) dvert = dm->getVertData(dm, i, CD_MDEFORMVERT);
+ for(j = 0; j < dvert->totweight; j++) {
+ if(dvert->dw[j].def_nr == index) {
+ float fac = hmd->force*dvert->dw[j].weight;
+ float *co = vertexCos[i];
- if(hmd->falloff != 0.0) {
- float len = VecLenf(co, hmd->cent);
- if(len > hmd->falloff) fac = 0.0;
- else if(len > 0.0)
- fac *= sqrt(1.0 - len / hmd->falloff);
- }
+ if(hmd->falloff != 0.0) {
+ float len = VecLenf(co, hmd->cent);
+ if(len > hmd->falloff) fac = 0.0;
+ else if(len > 0.0)
+ fac *= sqrt(1.0 - len / hmd->falloff);
+ }
- VecMat4MulVecfl(vec, mat, co);
- VecLerpf(co, co, vec, fac);
+ VecMat4MulVecfl(vec, mat, co);
+ VecLerpf(co, co, vec, fac);
+ }
}
}
}
- }
}
}
static void hookModifier_deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm = derivedData;
@@ -5038,8 +5049,8 @@ static void hookModifier_deformVertsEM(
/* Softbody */
static void softbodyModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
sbObjectStep(ob, (float)G.scene->r.cfra, vertexCos, numVerts);
}
@@ -5053,16 +5064,17 @@ static void clothModifier_initData(ModifierData *md)
clmd->sim_parms = MEM_callocN(sizeof(ClothSimSettings), "cloth sim parms");
clmd->coll_parms = MEM_callocN(sizeof(ClothCollSettings), "cloth coll parms");
+ clmd->point_cache = BKE_ptcache_add();
/* check for alloc failing */
- if(!clmd->sim_parms || !clmd->coll_parms)
+ if(!clmd->sim_parms || !clmd->coll_parms || !clmd->point_cache)
return;
cloth_init (clmd);
}
static DerivedMesh *clothModifier_applyModifier(ModifierData *md, Object *ob,
- DerivedMesh *derivedData, int useRenderParams, int isFinalCalc)
+ DerivedMesh *derivedData, int useRenderParams, int isFinalCalc)
{
ClothModifierData *clmd = (ClothModifierData*) md;
DerivedMesh *result=NULL;
@@ -5087,8 +5099,8 @@ static DerivedMesh *clothModifier_applyModifier(ModifierData *md, Object *ob,
}
static void clothModifier_updateDepgraph(
- ModifierData *md, DagForest *forest, Object *ob,
- DagNode *obNode)
+ ModifierData *md, DagForest *forest, Object *ob,
+ DagNode *obNode)
{
ClothModifierData *clmd = (ClothModifierData*) md;
@@ -5105,7 +5117,7 @@ static void clothModifier_updateDepgraph(
if(coll_clmd)
{
DagNode *curNode = dag_get_node(forest, ob1);
- dag_add_relation(forest, curNode, obNode, DAG_RL_DATA_DATA|DAG_RL_OB_DATA);
+ dag_add_relation(forest, curNode, obNode, DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Cloth Collision");
}
}
}
@@ -5134,11 +5146,9 @@ static void clothModifier_copyData(ModifierData *md, ModifierData *target)
tclmd->sim_parms = MEM_dupallocN(clmd->sim_parms);
tclmd->coll_parms = MEM_dupallocN(clmd->coll_parms);
-
- tclmd->sim_parms->lastcachedframe = 0;
+ tclmd->point_cache = BKE_ptcache_copy(clmd->point_cache);
}
-
static int clothModifier_dependsOnTime(ModifierData *md)
{
return 1;
@@ -5151,7 +5161,7 @@ static void clothModifier_freeData(ModifierData *md)
if (clmd)
{
if(G.rt > 0)
- printf("clothModifier_freeData\n");
+ printf("clothModifier_freeData\n");
cloth_free_modifier_extern (clmd);
@@ -5159,6 +5169,8 @@ static void clothModifier_freeData(ModifierData *md)
MEM_freeN(clmd->sim_parms);
if(clmd->coll_parms)
MEM_freeN(clmd->coll_parms);
+ if(clmd->point_cache)
+ BKE_ptcache_free(clmd->point_cache);
}
}
@@ -5218,7 +5230,7 @@ static int collisionModifier_dependsOnTime(ModifierData *md)
}
static void collisionModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
float (*vertexCos)[3], int numVerts)
{
CollisionModifierData *collmd = (CollisionModifierData*) md;
@@ -5366,9 +5378,9 @@ static int booleanModifier_isDisabled(ModifierData *md)
}
static void booleanModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
BooleanModifierData *bmd = (BooleanModifierData*) md;
@@ -5376,8 +5388,8 @@ static void booleanModifier_foreachObjectLink(
}
static void booleanModifier_updateDepgraph(
- ModifierData *md, DagForest *forest, Object *ob,
- DagNode *obNode)
+ ModifierData *md, DagForest *forest, Object *ob,
+ DagNode *obNode)
{
BooleanModifierData *bmd = (BooleanModifierData*) md;
@@ -5385,32 +5397,32 @@ static void booleanModifier_updateDepgraph(
DagNode *curNode = dag_get_node(forest, bmd->object);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Boolean Modifier");
}
}
static DerivedMesh *booleanModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
// XXX doesn't handle derived data
BooleanModifierData *bmd = (BooleanModifierData*) md;
/* we do a quick sanity check */
if(((Mesh *)ob->data)->totface > 3
- && bmd->object && ((Mesh *)bmd->object->data)->totface > 3) {
+ && bmd->object && ((Mesh *)bmd->object->data)->totface > 3) {
DerivedMesh *result = NewBooleanDerivedMesh(bmd->object, ob,
- 1 + bmd->operation);
+ 1 + bmd->operation);
/* if new mesh returned, return it; otherwise there was
- * an error, so delete the modifier object */
+ * an error, so delete the modifier object */
if(result)
return result;
else
bmd->object = NULL;
- }
+ }
- return derivedData;
+ return derivedData;
}
/* Particles */
@@ -5431,7 +5443,6 @@ static void particleSystemModifier_freeData(ModifierData *md)
psmd->dm=0;
}
- psmd->psys->flag &= ~PSYS_ENABLED;
psmd->psys->flag |= PSYS_DELETE;
}
static void particleSystemModifier_copyData(ModifierData *md, ModifierData *target)
@@ -5462,7 +5473,7 @@ CustomDataMask particleSystemModifier_requiredDataMask(ModifierData *md)
}
/* particles only need this if they are after a non deform modifier, and
- * the modifier stack will only create them in that case. */
+ * the modifier stack will only create them in that case. */
dataMask |= CD_MASK_ORIGSPACE;
dataMask |= CD_MASK_ORCO;
@@ -5494,8 +5505,8 @@ static int is_last_displist(Object *ob)
}
/* saves the current emitter state for a particle system and calculates particles */
static void particleSystemModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm = derivedData;
ParticleSystemModifierData *psmd= (ParticleSystemModifierData*) md;
@@ -5570,8 +5581,8 @@ static void particleSystemModifier_deformVerts(
/* report change in mesh structure */
if(psmd->dm->getNumVerts(psmd->dm)!=psmd->totdmvert ||
- psmd->dm->getNumEdges(psmd->dm)!=psmd->totdmedge ||
- psmd->dm->getNumFaces(psmd->dm)!=psmd->totdmface){
+ psmd->dm->getNumEdges(psmd->dm)!=psmd->totdmedge ||
+ psmd->dm->getNumFaces(psmd->dm)!=psmd->totdmface){
/* in file read dm hasn't really changed but just wasn't saved in file */
psys->recalc |= PSYS_RECALC_HAIR;
@@ -5581,13 +5592,13 @@ static void particleSystemModifier_deformVerts(
psmd->totdmvert= psmd->dm->getNumVerts(psmd->dm);
psmd->totdmedge= psmd->dm->getNumEdges(psmd->dm);
psmd->totdmface= psmd->dm->getNumFaces(psmd->dm);
- }
+ }
- if(psys){
- particle_system_update(ob,psys);
- psmd->flag |= eParticleSystemFlag_psys_updated;
- psmd->flag &= ~eParticleSystemFlag_DM_changed;
- }
+ if(psys){
+ particle_system_update(ob,psys);
+ psmd->flag |= eParticleSystemFlag_psys_updated;
+ psmd->flag &= ~eParticleSystemFlag_DM_changed;
+ }
}
/* disabled particles in editmode for now, until support for proper derivedmesh
@@ -5613,7 +5624,7 @@ static void particleInstanceModifier_initData(ModifierData *md)
ParticleInstanceModifierData *pimd= (ParticleInstanceModifierData*) md;
pimd->flag = eParticleInstanceFlag_Parents|eParticleInstanceFlag_Unborn|
- eParticleInstanceFlag_Alive|eParticleInstanceFlag_Dead;
+ eParticleInstanceFlag_Alive|eParticleInstanceFlag_Dead;
pimd->psys = 1;
}
@@ -5632,7 +5643,7 @@ static int particleInstanceModifier_dependsOnTime(ModifierData *md)
return 0;
}
static void particleInstanceModifier_updateDepgraph(ModifierData *md, DagForest *forest,
- Object *ob, DagNode *obNode)
+ Object *ob, DagNode *obNode)
{
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData*) md;
@@ -5640,12 +5651,13 @@ static void particleInstanceModifier_updateDepgraph(ModifierData *md, DagForest
DagNode *curNode = dag_get_node(forest, pimd->ob);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA | DAG_RL_OB_DATA);
+ DAG_RL_DATA_DATA | DAG_RL_OB_DATA,
+ "Particle Instance Modifier");
}
}
static void particleInstanceModifier_foreachObjectLink(ModifierData *md, Object *ob,
- ObjectWalkFunc walk, void *userData)
+ ObjectWalkFunc walk, void *userData)
{
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData*) md;
@@ -5653,8 +5665,8 @@ static void particleInstanceModifier_foreachObjectLink(ModifierData *md, Object
}
static DerivedMesh * particleInstanceModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
DerivedMesh *dm = derivedData, *result;
ParticleInstanceModifierData *pimd= (ParticleInstanceModifierData*) md;
@@ -5823,8 +5835,8 @@ static DerivedMesh * particleInstanceModifier_applyModifier(
return result;
}
static DerivedMesh *particleInstanceModifier_applyModifierEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData)
{
return particleInstanceModifier_applyModifier(md, ob, derivedData, 0, 1);
}
@@ -5883,8 +5895,8 @@ static float vert_weight(MDeformVert *dvert, int group)
}
static void explodeModifier_createFacepa(ExplodeModifierData *emd,
- ParticleSystemModifierData *psmd,
- Object *ob, DerivedMesh *dm)
+ ParticleSystemModifierData *psmd,
+ Object *ob, DerivedMesh *dm)
{
ParticleSystem *psys=psmd->psys;
MFace *fa=0, *mface=0;
@@ -6439,8 +6451,8 @@ static DerivedMesh * explodeModifier_splitEdges(ExplodeModifierData *emd, Derive
}
static DerivedMesh * explodeModifier_explodeMesh(ExplodeModifierData *emd,
- ParticleSystemModifierData *psmd, Object *ob,
- DerivedMesh *to_explode)
+ ParticleSystemModifierData *psmd, Object *ob,
+ DerivedMesh *to_explode)
{
DerivedMesh *explode, *dm=to_explode;
MFace *mf=0;
@@ -6607,8 +6619,8 @@ static ParticleSystemModifierData * explodeModifier_findPrecedingParticlesystem(
return psmd;
}
static DerivedMesh * explodeModifier_applyModifier(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- int useRenderParams, int isFinalCalc)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ int useRenderParams, int isFinalCalc)
{
DerivedMesh *dm = derivedData;
ExplodeModifierData *emd= (ExplodeModifierData*) md;
@@ -6619,12 +6631,13 @@ static DerivedMesh * explodeModifier_applyModifier(
if(psys==0 || psys->totpart==0) return derivedData;
if(psys->part==0 || psys->particles==0) return derivedData;
+ if(psmd->dm==0) return derivedData;
/* 1. find faces to be exploded if needed */
if(emd->facepa==0
- || psmd->flag&eParticleSystemFlag_Pars
- || emd->flag&eExplodeFlag_CalcFaces
- || MEM_allocN_len(emd->facepa)/sizeof(int) != dm->getNumFaces(dm)){
+ || psmd->flag&eParticleSystemFlag_Pars
+ || emd->flag&eExplodeFlag_CalcFaces
+ || MEM_allocN_len(emd->facepa)/sizeof(int) != dm->getNumFaces(dm)){
if(psmd->flag & eParticleSystemFlag_Pars)
psmd->flag &= ~eParticleSystemFlag_Pars;
@@ -6632,21 +6645,21 @@ static DerivedMesh * explodeModifier_applyModifier(
emd->flag &= ~eExplodeFlag_CalcFaces;
explodeModifier_createFacepa(emd,psmd,ob,derivedData);
- }
-
- /* 2. create new mesh */
- if(emd->flag & eExplodeFlag_EdgeSplit){
- int *facepa = emd->facepa;
- DerivedMesh *splitdm=explodeModifier_splitEdges(emd,dm);
- DerivedMesh *explode=explodeModifier_explodeMesh(emd,psmd,ob,splitdm);
-
- MEM_freeN(emd->facepa);
- emd->facepa=facepa;
- splitdm->release(splitdm);
- return explode;
- }
- else
- return explodeModifier_explodeMesh(emd,psmd,ob,derivedData);
+ }
+
+ /* 2. create new mesh */
+ if(emd->flag & eExplodeFlag_EdgeSplit){
+ int *facepa = emd->facepa;
+ DerivedMesh *splitdm=explodeModifier_splitEdges(emd,dm);
+ DerivedMesh *explode=explodeModifier_explodeMesh(emd,psmd,ob,splitdm);
+
+ MEM_freeN(emd->facepa);
+ emd->facepa=facepa;
+ splitdm->release(splitdm);
+ return explode;
+ }
+ else
+ return explodeModifier_explodeMesh(emd,psmd,ob,derivedData);
}
return derivedData;
}
@@ -6698,9 +6711,9 @@ static int meshdeformModifier_isDisabled(ModifierData *md)
}
static void meshdeformModifier_foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData*) md;
@@ -6708,8 +6721,8 @@ static void meshdeformModifier_foreachObjectLink(
}
static void meshdeformModifier_updateDepgraph(
- ModifierData *md, DagForest *forest, Object *ob,
- DagNode *obNode)
+ ModifierData *md, DagForest *forest, Object *ob,
+ DagNode *obNode)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData*) md;
@@ -6717,7 +6730,8 @@ static void meshdeformModifier_updateDepgraph(
DagNode *curNode = dag_get_node(forest, mmd->object);
dag_add_relation(forest, curNode, obNode,
- DAG_RL_DATA_DATA|DAG_RL_OB_DATA|DAG_RL_DATA_OB|DAG_RL_OB_OB);
+ DAG_RL_DATA_DATA|DAG_RL_OB_DATA|DAG_RL_DATA_OB|DAG_RL_OB_OB,
+ "Mesh Deform Modifier");
}
}
@@ -6774,8 +6788,8 @@ static float meshdeform_dynamic_bind(MeshDeformModifierData *mmd, float (*dco)[3
}
static void meshdeformModifier_do(
- ModifierData *md, Object *ob, DerivedMesh *dm,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *dm,
+ float (*vertexCos)[3], int numVerts)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData*) md;
float imat[4][4], cagemat[4][4], iobmat[4][4], icagemat[3][3], cmat[4][4];
@@ -6801,7 +6815,7 @@ static void meshdeformModifier_do(
if(!cagedm)
return;
- /* compute matrices to go in and out of cage object space */
+ /* compute matrices to go in and out of cage object space */
Mat4Invert(imat, mmd->object->obmat);
Mat4MulMat4(cagemat, ob->obmat, imat);
Mat4MulMat4(cmat, cagemat, mmd->bindmat);
@@ -6907,8 +6921,8 @@ static void meshdeformModifier_do(
Mat3MulVecfl(icagemat, co);
if(G.rt != 527)
VECADD(vertexCos[b], vertexCos[b], co)
- else
- VECCOPY(vertexCos[b], co)
+ else
+ VECCOPY(vertexCos[b], co)
}
}
@@ -6918,8 +6932,8 @@ static void meshdeformModifier_do(
}
static void meshdeformModifier_deformVerts(
- ModifierData *md, Object *ob, DerivedMesh *derivedData,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm;
@@ -6937,8 +6951,8 @@ static void meshdeformModifier_deformVerts(
}
static void meshdeformModifier_deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm;
@@ -6967,15 +6981,15 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
/* Initialize and return the appropriate type info structure,
* assumes that modifier has:
- * name == typeName,
- * structName == typeName + 'ModifierData'
- */
+ * name == typeName,
+ * structName == typeName + 'ModifierData'
+ */
#define INIT_TYPE(typeName) \
(strcpy(typeArr[eModifierType_##typeName].name, #typeName), \
strcpy(typeArr[eModifierType_##typeName].structName, \
- #typeName "ModifierData"), \
+#typeName "ModifierData"), \
typeArr[eModifierType_##typeName].structSize = \
- sizeof(typeName##ModifierData), \
+ sizeof(typeName##ModifierData), \
&typeArr[eModifierType_##typeName])
mti = &typeArr[eModifierType_None];
@@ -6984,13 +6998,13 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti->structSize = sizeof(ModifierData);
mti->type = eModifierType_None;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_AcceptsCVs;
+ | eModifierTypeFlag_AcceptsCVs;
mti->isDisabled = noneModifier_isDisabled;
mti = INIT_TYPE(Curve);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsCVs
- | eModifierTypeFlag_SupportsEditmode;
+ | eModifierTypeFlag_SupportsEditmode;
mti->initData = curveModifier_initData;
mti->copyData = curveModifier_copyData;
mti->requiredDataMask = curveModifier_requiredDataMask;
@@ -7003,7 +7017,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Lattice);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsCVs
- | eModifierTypeFlag_SupportsEditmode;
+ | eModifierTypeFlag_SupportsEditmode;
mti->copyData = latticeModifier_copyData;
mti->requiredDataMask = latticeModifier_requiredDataMask;
mti->isDisabled = latticeModifier_isDisabled;
@@ -7015,9 +7029,9 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Subsurf);
mti->type = eModifierTypeType_Constructive;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsMapping
- | eModifierTypeFlag_SupportsEditmode
- | eModifierTypeFlag_EnableInEditmode;
+ | eModifierTypeFlag_SupportsMapping
+ | eModifierTypeFlag_SupportsEditmode
+ | eModifierTypeFlag_EnableInEditmode;
mti->initData = subsurfModifier_initData;
mti->copyData = subsurfModifier_copyData;
mti->freeData = subsurfModifier_freeData;
@@ -7035,9 +7049,9 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Array);
mti->type = eModifierTypeType_Constructive;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsMapping
- | eModifierTypeFlag_SupportsEditmode
- | eModifierTypeFlag_EnableInEditmode;
+ | eModifierTypeFlag_SupportsMapping
+ | eModifierTypeFlag_SupportsEditmode
+ | eModifierTypeFlag_EnableInEditmode;
mti->initData = arrayModifier_initData;
mti->copyData = arrayModifier_copyData;
mti->foreachObjectLink = arrayModifier_foreachObjectLink;
@@ -7048,9 +7062,9 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Mirror);
mti->type = eModifierTypeType_Constructive;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsMapping
- | eModifierTypeFlag_SupportsEditmode
- | eModifierTypeFlag_EnableInEditmode;
+ | eModifierTypeFlag_SupportsMapping
+ | eModifierTypeFlag_SupportsEditmode
+ | eModifierTypeFlag_EnableInEditmode;
mti->initData = mirrorModifier_initData;
mti->copyData = mirrorModifier_copyData;
mti->foreachObjectLink = mirrorModifier_foreachObjectLink;
@@ -7061,9 +7075,9 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(EdgeSplit);
mti->type = eModifierTypeType_Constructive;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsMapping
- | eModifierTypeFlag_SupportsEditmode
- | eModifierTypeFlag_EnableInEditmode;
+ | eModifierTypeFlag_SupportsMapping
+ | eModifierTypeFlag_SupportsEditmode
+ | eModifierTypeFlag_EnableInEditmode;
mti->initData = edgesplitModifier_initData;
mti->copyData = edgesplitModifier_copyData;
mti->applyModifier = edgesplitModifier_applyModifier;
@@ -7072,8 +7086,8 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Bevel);
mti->type = eModifierTypeType_Constructive;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsEditmode
- | eModifierTypeFlag_EnableInEditmode;
+ | eModifierTypeFlag_SupportsEditmode
+ | eModifierTypeFlag_EnableInEditmode;
mti->initData = bevelModifier_initData;
mti->copyData = bevelModifier_copyData;
mti->requiredDataMask = bevelModifier_requiredDataMask;
@@ -7096,9 +7110,9 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(UVProject);
mti->type = eModifierTypeType_Nonconstructive;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsMapping
- | eModifierTypeFlag_SupportsEditmode
- | eModifierTypeFlag_EnableInEditmode;
+ | eModifierTypeFlag_SupportsMapping
+ | eModifierTypeFlag_SupportsEditmode
+ | eModifierTypeFlag_EnableInEditmode;
mti->initData = uvprojectModifier_initData;
mti->copyData = uvprojectModifier_copyData;
mti->requiredDataMask = uvprojectModifier_requiredDataMask;
@@ -7118,7 +7132,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Smooth);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsEditmode;
+ | eModifierTypeFlag_SupportsEditmode;
mti->initData = smoothModifier_initData;
mti->copyData = smoothModifier_copyData;
mti->requiredDataMask = smoothModifier_requiredDataMask;
@@ -7128,7 +7142,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Cast);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsCVs
- | eModifierTypeFlag_SupportsEditmode;
+ | eModifierTypeFlag_SupportsEditmode;
mti->initData = castModifier_initData;
mti->copyData = castModifier_copyData;
mti->requiredDataMask = castModifier_requiredDataMask;
@@ -7140,7 +7154,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Wave);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsCVs
- | eModifierTypeFlag_SupportsEditmode;
+ | eModifierTypeFlag_SupportsEditmode;
mti->initData = waveModifier_initData;
mti->copyData = waveModifier_copyData;
mti->dependsOnTime = waveModifier_dependsOnTime;
@@ -7154,7 +7168,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Armature);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsCVs
- | eModifierTypeFlag_SupportsEditmode;
+ | eModifierTypeFlag_SupportsEditmode;
mti->initData = armatureModifier_initData;
mti->copyData = armatureModifier_copyData;
mti->requiredDataMask = armatureModifier_requiredDataMask;
@@ -7168,7 +7182,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Hook);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsCVs
- | eModifierTypeFlag_SupportsEditmode;
+ | eModifierTypeFlag_SupportsEditmode;
mti->initData = hookModifier_initData;
mti->copyData = hookModifier_copyData;
mti->requiredDataMask = hookModifier_requiredDataMask;
@@ -7182,7 +7196,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Softbody);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsCVs
- | eModifierTypeFlag_RequiresOriginalData;
+ | eModifierTypeFlag_RequiresOriginalData;
mti->deformVerts = softbodyModifier_deformVerts;
mti = INIT_TYPE(Cloth);
@@ -7209,8 +7223,8 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Boolean);
mti->type = eModifierTypeType_Nonconstructive;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_RequiresOriginalData
- | eModifierTypeFlag_UsesPointCache;
+ | eModifierTypeFlag_RequiresOriginalData
+ | eModifierTypeFlag_UsesPointCache;
mti->copyData = booleanModifier_copyData;
mti->isDisabled = booleanModifier_isDisabled;
mti->applyModifier = booleanModifier_applyModifier;
@@ -7220,7 +7234,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(MeshDeform);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsCVs
- | eModifierTypeFlag_SupportsEditmode;
+ | eModifierTypeFlag_SupportsEditmode;
mti->initData = meshdeformModifier_initData;
mti->freeData = meshdeformModifier_freeData;
mti->copyData = meshdeformModifier_copyData;
@@ -7234,11 +7248,11 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(ParticleSystem);
mti->type = eModifierTypeType_OnlyDeform;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsMapping
- | eModifierTypeFlag_UsesPointCache;
+ | eModifierTypeFlag_SupportsMapping
+ | eModifierTypeFlag_UsesPointCache;
#if 0
- | eModifierTypeFlag_SupportsEditmode;
- |eModifierTypeFlag_EnableInEditmode;
+ | eModifierTypeFlag_SupportsEditmode;
+ |eModifierTypeFlag_EnableInEditmode;
#endif
mti->initData = particleSystemModifier_initData;
mti->freeData = particleSystemModifier_freeData;
@@ -7252,9 +7266,9 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(ParticleInstance);
mti->type = eModifierTypeType_Constructive;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsMapping
- | eModifierTypeFlag_SupportsEditmode
- | eModifierTypeFlag_EnableInEditmode;
+ | eModifierTypeFlag_SupportsMapping
+ | eModifierTypeFlag_SupportsEditmode
+ | eModifierTypeFlag_EnableInEditmode;
mti->initData = particleInstanceModifier_initData;
mti->copyData = particleInstanceModifier_copyData;
mti->dependsOnTime = particleInstanceModifier_dependsOnTime;
@@ -7295,7 +7309,7 @@ ModifierData *modifier_new(int type)
md->type = type;
md->mode = eModifierMode_Realtime
- | eModifierMode_Render | eModifierMode_Expanded;
+ | eModifierMode_Render | eModifierMode_Expanded;
if (mti->flags & eModifierTypeFlag_EnableInEditmode)
md->mode |= eModifierMode_Editmode;
@@ -7327,7 +7341,7 @@ int modifier_supportsMapping(ModifierData *md)
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
return (mti->type==eModifierTypeType_OnlyDeform ||
- (mti->flags & eModifierTypeFlag_SupportsMapping));
+ (mti->flags & eModifierTypeFlag_SupportsMapping));
}
ModifierData *modifiers_findByType(Object *ob, ModifierType type)
@@ -7359,7 +7373,7 @@ void modifiers_clearErrors(Object *ob)
}
void modifiers_foreachObjectLink(Object *ob, ObjectWalkFunc walk,
- void *userData)
+ void *userData)
{
ModifierData *md = ob->modifiers.first;
@@ -7402,9 +7416,9 @@ int modifier_couldBeCage(ModifierData *md)
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
return ( (md->mode & eModifierMode_Realtime) &&
- (md->mode & eModifierMode_Editmode) &&
- (!mti->isDisabled || !mti->isDisabled(md)) &&
- modifier_supportsMapping(md));
+ (md->mode & eModifierMode_Editmode) &&
+ (!mti->isDisabled || !mti->isDisabled(md)) &&
+ modifier_supportsMapping(md));
}
void modifier_setError(ModifierData *md, char *format, ...)
@@ -7435,7 +7449,7 @@ int modifiers_getCageIndex(Object *ob, int *lastPossibleCageIndex_r)
ModifierData *md = ob->modifiers.first;
int i, cageIndex = -1;
- /* Find the last modifier acting on the cage. */
+ /* Find the last modifier acting on the cage. */
for (i=0; md; i++,md=md->next) {
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
@@ -7494,11 +7508,11 @@ LinkNode *modifiers_calcDataMasks(ModifierData *md, CustomDataMask dataMask)
}
/* build the list of required data masks - each mask in the list must
- * include all elements of the masks that follow it
- *
- * note the list is currently in reverse order, so "masks that follow it"
- * actually means "masks that precede it" at the moment
- */
+ * include all elements of the masks that follow it
+ *
+ * note the list is currently in reverse order, so "masks that follow it"
+ * actually means "masks that precede it" at the moment
+ */
for(curr = dataMasks, prev = NULL; curr; prev = curr, curr = curr->next) {
if(prev) {
CustomDataMask prev_mask = (CustomDataMask)prev->link;
@@ -7521,8 +7535,8 @@ LinkNode *modifiers_calcDataMasks(ModifierData *md, CustomDataMask dataMask)
ModifierData *modifiers_getVirtualModifierList(Object *ob)
{
/* Kinda hacky, but should be fine since we are never
- * reentrant and avoid free hassles.
- */
+ * reentrant and avoid free hassles.
+ */
static ArmatureModifierData amd;
static CurveModifierData cmd;
static LatticeModifierData lmd;
@@ -7580,7 +7594,7 @@ Object *modifiers_isDeformedByArmature(Object *ob)
ArmatureModifierData *amd= NULL;
/* return the first selected armature, this lets us use multiple armatures
- */
+ */
for (; md; md=md->next) {
if (md->type==eModifierType_Armature) {
amd = (ArmatureModifierData*) md;
@@ -7605,7 +7619,7 @@ Object *modifiers_isDeformedByLattice(Object *ob)
LatticeModifierData *lmd= NULL;
/* return the first selected armature, this lets us use multiple armatures
- */
+ */
for (; md; md=md->next) {
if (md->type==eModifierType_Lattice) {
lmd = (LatticeModifierData*) md;
diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c
index 961ea21d088..245c4179bd1 100644
--- a/source/blender/blenkernel/intern/nla.c
+++ b/source/blender/blenkernel/intern/nla.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 3f1515f146a..7a5385def17 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -53,6 +50,8 @@
#include "DNA_lattice_types.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
+#include "DNA_meta_types.h"
+#include "DNA_curve_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_nla_types.h"
@@ -103,6 +102,7 @@
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BKE_particle.h"
+#include "BKE_pointcache.h"
#include "BKE_property.h"
#include "BKE_sca.h"
#include "BKE_scene.h"
@@ -113,6 +113,8 @@
#include "BPY_extern.h"
+#include "blendef.h"
+
/* Local function protos */
static void solve_parenting (Object *ob, Object *par, float obmat[][4], float slowmat[][4], int simul);
@@ -293,6 +295,7 @@ void unlink_object(Object *ob)
Camera *camera;
bConstraint *con;
bActionStrip *strip;
+ ModifierData *md;
int a;
unlink_controllers(&ob->controllers);
@@ -395,6 +398,11 @@ void unlink_object(Object *ob)
obt->recalc |= OB_RECALC_DATA;
else if(obt->soft)
obt->recalc |= OB_RECALC_DATA;
+
+ /* cloth */
+ for(md=obt->modifiers.first; md; md=md->next)
+ if(md->type == eModifierType_Cloth)
+ obt->recalc |= OB_RECALC_DATA;
}
/* strips */
@@ -530,11 +538,11 @@ void unlink_object(Object *ob)
if(v3d->camera==ob) {
v3d->camera= NULL;
- if(v3d->persp>1) v3d->persp= 1;
+ if(v3d->persp==V3D_CAMOB) v3d->persp= V3D_PERSP;
}
if(v3d->localvd && v3d->localvd->camera==ob ) {
v3d->localvd->camera= NULL;
- if(v3d->localvd->persp>1) v3d->localvd->persp= 1;
+ if(v3d->localvd->persp==V3D_CAMOB) v3d->localvd->persp= V3D_PERSP;
}
}
else if(sl->spacetype==SPACE_IPO) {
@@ -1009,12 +1017,14 @@ SoftBody *copy_softbody(SoftBody *sb)
sbn->totspring= sbn->totpoint= 0;
sbn->bpoint= NULL;
sbn->bspring= NULL;
- sbn->ctime= 0.0f;
sbn->keys= NULL;
sbn->totkey= sbn->totpointkey= 0;
sbn->scratch= NULL;
+
+ sbn->pointcache= BKE_ptcache_copy(sb->pointcache);
+
return sbn;
}
@@ -1045,6 +1055,8 @@ ParticleSystem *copy_particlesystem(ParticleSystem *psys)
psysn->edit= NULL;
psysn->effectors.first= psysn->effectors.last= 0;
+ psysn->pointcache= BKE_ptcache_copy(psys->pointcache);
+
id_us_plus((ID *)psysn->part);
return psysn;
@@ -1341,11 +1353,29 @@ void object_make_proxy(Object *ob, Object *target, Object *gob)
/* skip constraints, constraintchannels, nla? */
-
+ /* set object type and link to data */
ob->type= target->type;
ob->data= target->data;
id_us_plus((ID *)ob->data); /* ensures lib data becomes LIB_EXTERN */
+ /* copy material and index information */
+ ob->actcol= ob->totcol= 0;
+ if(ob->mat) MEM_freeN(ob->mat);
+ ob->mat = NULL;
+ if ((target->totcol) && (target->mat) && OB_SUPPORT_MATERIAL(ob)) {
+ int i;
+ ob->colbits = target->colbits;
+
+ ob->actcol= target->actcol;
+ ob->totcol= target->totcol;
+
+ ob->mat = MEM_dupallocN(target->mat);
+ for(i=0; i<target->totcol; i++) {
+ /* dont need to run test_object_materials since we know this object is new and not used elsewhere */
+ id_us_plus(ob->mat[i]);
+ }
+ }
+
/* type conversions */
if(target->type == OB_ARMATURE) {
copy_object_pose(ob, target); /* data copy, object pointers in constraints */
@@ -2178,7 +2208,7 @@ void object_handle_update(Object *ob)
if(ob->recalc & OB_RECALC) {
if(ob->recalc & OB_RECALC_OB) {
-
+
// printf("recalcob %s\n", ob->id.name+2);
/* handle proxy copy for target */
@@ -2214,6 +2244,16 @@ void object_handle_update(Object *ob)
else if(ob->type==OB_LATTICE) {
lattice_calc_modifiers(ob);
}
+ else if(ob->type==OB_CAMERA) {
+ Camera *cam = (Camera *)ob->data;
+ calc_ipo(cam->ipo, frame_to_float(G.scene->r.cfra));
+ execute_ipo(&cam->id, cam->ipo);
+ }
+ else if(ob->type==OB_LAMP) {
+ Lamp *la = (Lamp *)ob->data;
+ calc_ipo(la->ipo, frame_to_float(G.scene->r.cfra));
+ execute_ipo(&la->id, la->ipo);
+ }
else if(ob->type==OB_ARMATURE) {
/* this happens for reading old files and to match library armatures with poses */
if(ob->pose==NULL || (ob->pose->flag & POSE_RECALC))
@@ -2288,3 +2328,42 @@ float give_timeoffset(Object *ob) {
return ob->sf;
}
}
+
+int give_obdata_texspace(Object *ob, int **texflag, float **loc, float **size, float **rot) {
+
+ if (ob->data==NULL)
+ return 0;
+
+ switch (GS(((ID *)ob->data)->name)) {
+ case ID_ME:
+ {
+ Mesh *me= ob->data;
+ if (texflag) *texflag = &me->texflag;
+ if (loc) *loc = me->loc;
+ if (size) *size = me->size;
+ if (rot) *rot = me->rot;
+ break;
+ }
+ case ID_CU:
+ {
+ Curve *cu= ob->data;
+ if (texflag) *texflag = &cu->texflag;
+ if (loc) *loc = cu->loc;
+ if (size) *size = cu->size;
+ if (rot) *rot = cu->rot;
+ break;
+ }
+ case ID_MB:
+ {
+ MetaBall *mb= ob->data;
+ if (texflag) *texflag = &mb->texflag;
+ if (loc) *loc = mb->loc;
+ if (size) *size = mb->size;
+ if (rot) *rot = mb->rot;
+ break;
+ }
+ default:
+ return 0;
+ }
+ return 1;
+}
diff --git a/source/blender/blenkernel/intern/packedFile.c b/source/blender/blenkernel/intern/packedFile.c
index bd33fafe23c..109f8bd9113 100644
--- a/source/blender/blenkernel/intern/packedFile.c
+++ b/source/blender/blenkernel/intern/packedFile.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
@@ -320,11 +317,11 @@ int writePackedFile(char * filename, PackedFile *pf, int guimode)
if (remove_tmp) {
if (ret_value == RET_ERROR) {
- if (BLI_rename(tempname, name) == RET_ERROR) {
+ if (BLI_rename(tempname, name) != 0) {
if(guimode) error("Error restoring tempfile. Check files: '%s' '%s'", tempname, name);
}
} else {
- if (BLI_delete(tempname, 0, 0) == RET_ERROR) {
+ if (BLI_delete(tempname, 0, 0) != 0) {
if(guimode) error("Error deleting '%s' (ignored)");
}
}
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index 04e9d63b9b5..207ab56de9b 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -3,15 +3,12 @@
*
* $Id: particle.c $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -78,6 +75,7 @@
#include "BKE_modifier.h"
#include "BKE_mesh.h"
#include "BKE_cdderivedmesh.h"
+#include "BKE_pointcache.h"
#include "blendef.h"
#include "RE_render_ext.h"
@@ -226,14 +224,14 @@ void psys_disable_all(Object *ob)
ParticleSystem *psys=ob->particlesystem.first;
for(; psys; psys=psys->next)
- psys->flag &= ~PSYS_ENABLED;
+ psys->flag |= PSYS_DISABLED;
}
void psys_enable_all(Object *ob)
{
ParticleSystem *psys=ob->particlesystem.first;
for(; psys; psys=psys->next)
- psys->flag |= PSYS_ENABLED;
+ psys->flag &= ~PSYS_DISABLED;
}
int psys_ob_has_hair(Object *ob)
{
@@ -253,7 +251,7 @@ int psys_check_enabled(Object *ob, ParticleSystem *psys)
{
ParticleSystemModifierData *psmd;
- if(!(psys->flag & PSYS_ENABLED))
+ if(psys->flag & PSYS_DISABLED)
return 0;
psmd= psys_get_modifier(ob, psys);
@@ -369,6 +367,12 @@ void psys_free(Object *ob, ParticleSystem * psys)
psys->part=0;
}
+ if(psys->reactevents.first)
+ BLI_freelistN(&psys->reactevents);
+
+ if(psys->pointcache)
+ BKE_ptcache_free(psys->pointcache);
+
MEM_freeN(psys);
}
}
@@ -1003,7 +1007,7 @@ void psys_interpolate_mcol(MCol *mcol, int quad, float *w, MCol *mc)
float psys_interpolate_value_from_verts(DerivedMesh *dm, short from, int index, float *fw, float *values)
{
- if(values==0)
+ if(values==0 || index==-1)
return 0.0;
switch(from){
@@ -2251,7 +2255,7 @@ void psys_cache_child_paths(Object *ob, ParticleSystem *psys, float cfra, int ed
int i, totchild, totparent, totthread;
unsigned long totchildstep;
- pthreads= psys_threads_create(ob, psys, G.scene->r.threads);
+ pthreads= psys_threads_create(ob, psys);
if(!psys_threads_init_path(pthreads, cfra, editupdate)) {
psys_threads_free(pthreads);
@@ -3080,6 +3084,42 @@ void psys_flush_settings(ParticleSettings *part, int event, int hair_recalc)
}
}
}
+
+LinkNode *psys_using_settings(ParticleSettings *part, int flush_update)
+{
+ Object *ob, *tob;
+ ParticleSystem *psys, *tpsys;
+ LinkNode *node= NULL;
+ int found;
+
+ /* update all that have same particle settings */
+ for(ob=G.main->object.first; ob; ob=ob->id.next) {
+ found= 0;
+
+ for(psys=ob->particlesystem.first; psys; psys=psys->next) {
+ if(psys->part == part) {
+ BLI_linklist_append(&node, psys);
+ found++;
+ }
+ else if(psys->part->type == PART_REACTOR){
+ tob= (psys->target_ob)? psys->target_ob: ob;
+ tpsys= BLI_findlink(&tob->particlesystem, psys->target_psys-1);
+
+ if(tpsys && tpsys->part==part) {
+ BLI_linklist_append(&node, tpsys);
+ found++;
+ }
+ }
+ }
+
+ if(flush_update && found)
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
+ }
+
+ return node;
+}
+
+
/************************************************/
/* Textures */
/************************************************/
@@ -3092,6 +3132,7 @@ static void get_cpa_texture(DerivedMesh *dm, Material *ma, int face_index, float
if(ma) for(m=0; m<MAX_MTEX; m++){
mtex=ma->mtex[m];
if(mtex && (ma->septex & (1<<m))==0){
+ float def=mtex->def_var;
float var=mtex->varfac;
short blend=mtex->blendtype;
short neg=mtex->pmaptoneg;
@@ -3126,13 +3167,13 @@ static void get_cpa_texture(DerivedMesh *dm, Material *ma, int face_index, float
ptex->time= texture_value_blend(mtex->def_var,ptex->time,value,var,blend,neg & MAP_PA_TIME);
}
if((event & mtex->pmapto) & MAP_PA_LENGTH)
- ptex->length= texture_value_blend(value,ptex->length,value,var,blend,neg & MAP_PA_LENGTH);
+ ptex->length= texture_value_blend(def,ptex->length,value,var,blend,neg & MAP_PA_LENGTH);
if((event & mtex->pmapto) & MAP_PA_CLUMP)
- ptex->clump= texture_value_blend(value,ptex->clump,value,var,blend,neg & MAP_PA_CLUMP);
+ ptex->clump= texture_value_blend(def,ptex->clump,value,var,blend,neg & MAP_PA_CLUMP);
if((event & mtex->pmapto) & MAP_PA_KINK)
- ptex->kink= texture_value_blend(value,ptex->kink,value,var,blend,neg & MAP_PA_KINK);
+ ptex->kink= texture_value_blend(def,ptex->kink,value,var,blend,neg & MAP_PA_KINK);
if((event & mtex->pmapto) & MAP_PA_ROUGH)
- ptex->rough= texture_value_blend(value,ptex->rough,value,var,blend,neg & MAP_PA_ROUGH);
+ ptex->rough= texture_value_blend(def,ptex->rough,value,var,blend,neg & MAP_PA_ROUGH);
}
}
if(event & MAP_PA_TIME) { CLAMP(ptex->time,0.0,1.0); }
@@ -3152,6 +3193,7 @@ void psys_get_texture(Object *ob, Material *ma, ParticleSystemModifierData *psmd
mtex=ma->mtex[m];
if(mtex && (ma->septex & (1<<m))==0){
float var=mtex->varfac;
+ float def=mtex->def_var;
short blend=mtex->blendtype;
short neg=mtex->pmaptoneg;
@@ -3192,24 +3234,24 @@ void psys_get_texture(Object *ob, Material *ma, ParticleSystemModifierData *psmd
setvars |= MAP_PA_TIME;
}
else
- ptex->time= texture_value_blend(mtex->def_var,ptex->time,value,var,blend,neg & MAP_PA_TIME);
+ ptex->time= texture_value_blend(def,ptex->time,value,var,blend,neg & MAP_PA_TIME);
}
if((event & mtex->pmapto) & MAP_PA_LIFE)
- ptex->life= texture_value_blend(mtex->def_var,ptex->life,value,var,blend,neg & MAP_PA_LIFE);
+ ptex->life= texture_value_blend(def,ptex->life,value,var,blend,neg & MAP_PA_LIFE);
if((event & mtex->pmapto) & MAP_PA_DENS)
- ptex->exist= texture_value_blend(mtex->def_var,ptex->exist,value,var,blend,neg & MAP_PA_DENS);
+ ptex->exist= texture_value_blend(def,ptex->exist,value,var,blend,neg & MAP_PA_DENS);
if((event & mtex->pmapto) & MAP_PA_SIZE)
- ptex->size= texture_value_blend(mtex->def_var,ptex->size,value,var,blend,neg & MAP_PA_SIZE);
+ ptex->size= texture_value_blend(def,ptex->size,value,var,blend,neg & MAP_PA_SIZE);
if((event & mtex->pmapto) & MAP_PA_IVEL)
- ptex->ivel= texture_value_blend(mtex->def_var,ptex->ivel,value,var,blend,neg & MAP_PA_IVEL);
+ ptex->ivel= texture_value_blend(def,ptex->ivel,value,var,blend,neg & MAP_PA_IVEL);
if((event & mtex->pmapto) & MAP_PA_PVEL)
texture_rgb_blend(ptex->pvel,rgba,ptex->pvel,value,var,blend);
if((event & mtex->pmapto) & MAP_PA_LENGTH)
- ptex->length= texture_value_blend(mtex->def_var,ptex->length,value,var,blend,neg & MAP_PA_LENGTH);
+ ptex->length= texture_value_blend(def,ptex->length,value,var,blend,neg & MAP_PA_LENGTH);
if((event & mtex->pmapto) & MAP_PA_CLUMP)
- ptex->clump= texture_value_blend(mtex->def_var,ptex->clump,value,var,blend,neg & MAP_PA_CLUMP);
+ ptex->clump= texture_value_blend(def,ptex->clump,value,var,blend,neg & MAP_PA_CLUMP);
if((event & mtex->pmapto) & MAP_PA_KINK)
- ptex->kink= texture_value_blend(mtex->def_var,ptex->kink,value,var,blend,neg & MAP_PA_CLUMP);
+ ptex->kink= texture_value_blend(def,ptex->kink,value,var,blend,neg & MAP_PA_CLUMP);
}
}
if(event & MAP_PA_TIME) { CLAMP(ptex->time,0.0,1.0); }
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index b48bfc4f2b8..069dac60412 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -3,15 +3,12 @@
*
* $Id: particle_system.c $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -84,6 +81,22 @@
#include "RE_shader_ext.h"
+/* fluid sim particle import */
+#ifndef DISABLE_ELBEEM
+#include "DNA_object_fluidsim.h"
+#include "LBM_fluidsim.h"
+#include "elbeem.h"
+#include <zlib.h>
+#include <string.h>
+
+#ifdef WIN32
+#ifndef snprintf
+#define snprintf _snprintf
+#endif
+#endif
+
+#endif // DISABLE_ELBEEM
+
/************************************************/
/* Reacting to system events */
/************************************************/
@@ -105,7 +118,51 @@ static int get_current_display_percentage(ParticleSystem *psys)
return psys->part->disp;
}
-static void alloc_particles(Object *ob, ParticleSystem *psys, int new_totpart)
+void psys_reset(ParticleSystem *psys, int mode)
+{
+ ParticleSettings *part= psys->part;
+ ParticleData *pa;
+ int i;
+
+ if(ELEM(mode, PSYS_RESET_ALL, PSYS_RESET_DEPSGRAPH)) {
+ if(mode == PSYS_RESET_ALL || !(part->type == PART_HAIR && (psys->flag & PSYS_EDITED))) {
+ if(psys->particles) {
+ if(psys->particles->keys)
+ MEM_freeN(psys->particles->keys);
+
+ for(i=0, pa=psys->particles; i<psys->totpart; i++, pa++)
+ if(pa->hair) MEM_freeN(pa->hair);
+
+ MEM_freeN(psys->particles);
+ psys->particles= NULL;
+ }
+
+ psys->totpart= 0;
+ psys->totkeyed= 0;
+ psys->flag &= ~(PSYS_HAIR_DONE|PSYS_KEYED);
+
+ if(psys->reactevents.first)
+ BLI_freelistN(&psys->reactevents);
+ }
+ }
+
+ /* reset children */
+ if(psys->child) {
+ MEM_freeN(psys->child);
+ psys->child= 0;
+ }
+
+ psys->totchild= 0;
+
+ /* reset path cache */
+ psys_free_path_cache(psys);
+
+ /* reset point cache */
+ psys->pointcache->flag &= ~PTCACHE_SIMULATION_VALID;
+ psys->pointcache->simframe= 0;
+}
+
+static void realloc_particles(Object *ob, ParticleSystem *psys, int new_totpart)
{
ParticleData *newpars = 0, *pa;
int i, totpart, totsaved = 0;
@@ -129,6 +186,12 @@ static void alloc_particles(Object *ob, ParticleSystem *psys, int new_totpart)
if(totsaved)
memcpy(newpars,psys->particles,totsaved*sizeof(ParticleData));
+ if(psys->particles->keys)
+ MEM_freeN(psys->particles->keys);
+
+ for(i=0, pa=psys->particles; i<totsaved; i++, pa++)
+ if(pa->keys) pa->keys= NULL;
+
for(i=totsaved, pa=psys->particles+totsaved; i<psys->totpart; i++, pa++)
if(pa->hair) MEM_freeN(pa->hair);
@@ -829,8 +892,16 @@ static int compare_orig_index(const void *p1, const void *p2)
if(index1 < index2)
return -1;
- else if(index1 == index2)
- return 0;
+ else if(index1 == index2) {
+ /* this pointer comparison appears to make qsort stable for glibc,
+ * and apparently on solaris too, makes the renders reproducable */
+ if(p1 < p2)
+ return -1;
+ else if(p1 == p2)
+ return 0;
+ else
+ return 1;
+ }
else
return 1;
}
@@ -1042,7 +1113,8 @@ int psys_threads_init_distribution(ParticleThread *threads, DerivedMesh *finaldm
if(tot==0){
no_distr=1;
if(children){
- fprintf(stderr,"Particle child distribution error: Nothing to emit from!\n");
+ if(G.f & G_DEBUG)
+ fprintf(stderr,"Particle child distribution error: Nothing to emit from!\n");
for(p=0,cpa=psys->child; p<totpart; p++,cpa++){
cpa->fuv[0]=cpa->fuv[1]=cpa->fuv[2]=cpa->fuv[3]= 0.0;
cpa->foffset= 0.0f;
@@ -1052,7 +1124,8 @@ int psys_threads_init_distribution(ParticleThread *threads, DerivedMesh *finaldm
}
}
else {
- fprintf(stderr,"Particle distribution error: Nothing to emit from!\n");
+ if(G.f & G_DEBUG)
+ fprintf(stderr,"Particle distribution error: Nothing to emit from!\n");
for(p=0,pa=psys->particles; p<totpart; p++,pa++){
pa->fuv[0]=pa->fuv[1]=pa->fuv[2]= pa->fuv[3]= 0.0;
pa->foffset= 0.0f;
@@ -1289,7 +1362,7 @@ static void distribute_particles_on_dm(DerivedMesh *finaldm, Object *ob, Particl
ParticleThreadContext *ctx;
int i, totthread;
- pthreads= psys_threads_create(ob, psys, G.scene->r.threads);
+ pthreads= psys_threads_create(ob, psys);
if(!psys_threads_init_distribution(pthreads, finaldm, from)) {
psys_threads_free(pthreads);
@@ -1361,11 +1434,16 @@ static void distribute_particles(Object *ob, ParticleSystem *psys, int from)
}
/* threaded child particle distribution and path caching */
-ParticleThread *psys_threads_create(struct Object *ob, struct ParticleSystem *psys, int totthread)
+ParticleThread *psys_threads_create(struct Object *ob, struct ParticleSystem *psys)
{
ParticleThread *threads;
ParticleThreadContext *ctx;
- int i;
+ int i, totthread;
+
+ if(G.scene->r.mode & R_FIXED_THREADS)
+ totthread= G.scene->r.threads;
+ else
+ totthread= BLI_system_thread_count();
threads= MEM_callocN(sizeof(ParticleThread)*totthread, "ParticleThread");
ctx= MEM_callocN(sizeof(ParticleThreadContext), "ParticleThreadContext");
@@ -1452,7 +1530,7 @@ void initialize_particle(ParticleData *pa, int p, Object *ob, ParticleSystem *ps
BLI_srandom(psys->seed+p);
- if(part->from!=PART_FROM_PARTICLE){
+ if(part->from!=PART_FROM_PARTICLE && part->type!=PART_FLUID){
ma=give_current_material(ob,part->omat);
/* TODO: needs some work to make most blendtypes generally usefull */
@@ -1544,53 +1622,54 @@ static void initialize_all_particles(Object *ob, ParticleSystem *psys, ParticleS
for(p=0, pa=psys->particles; p<totpart; p++, pa++)
initialize_particle(pa,p,ob,psys,psmd);
- /* store the derived mesh face index for each particle */
- icu=find_ipocurve(psys->part->ipo,PART_EMIT_FREQ);
- if(icu){
- float time=psys->part->sta, end=psys->part->end;
- float v1, v2, a=0.0f, t1,t2, d;
-
- p=0;
- pa=psys->particles;
-
- calc_icu(icu,time);
- v1=icu->curval;
- if(v1<0.0f) v1=0.0f;
-
- calc_icu(icu,time+1.0f);
- v2=icu->curval;
- if(v2<0.0f) v2=0.0f;
-
- for(p=0, pa=psys->particles; p<totpart && time<end; p++, pa++){
- while(a+0.5f*(v1+v2) < (float)(p+1) && time<end){
- a+=0.5f*(v1+v2);
- v1=v2;
- time++;
- calc_icu(icu,time+1.0f);
- v2=icu->curval;
- }
- if(time<end){
- if(v1==v2){
- pa->time=time+((float)(p+1)-a)/v1;
+ if(psys->part->type != PART_FLUID) {
+ icu=find_ipocurve(psys->part->ipo,PART_EMIT_FREQ);
+ if(icu){
+ float time=psys->part->sta, end=psys->part->end;
+ float v1, v2, a=0.0f, t1,t2, d;
+
+ p=0;
+ pa=psys->particles;
+
+ calc_icu(icu,time);
+ v1=icu->curval;
+ if(v1<0.0f) v1=0.0f;
+
+ calc_icu(icu,time+1.0f);
+ v2=icu->curval;
+ if(v2<0.0f) v2=0.0f;
+
+ for(p=0, pa=psys->particles; p<totpart && time<end; p++, pa++){
+ while(a+0.5f*(v1+v2) < (float)(p+1) && time<end){
+ a+=0.5f*(v1+v2);
+ v1=v2;
+ time++;
+ calc_icu(icu,time+1.0f);
+ v2=icu->curval;
}
- else{
- d=(float)sqrt(v1*v1-2.0f*(v2-v1)*(a-(float)(p+1)));
- t1=(-v1+d)/(v2-v1);
- t2=(-v1-d)/(v2-v1);
+ if(time<end){
+ if(v1==v2){
+ pa->time=time+((float)(p+1)-a)/v1;
+ }
+ else{
+ d=(float)sqrt(v1*v1-2.0f*(v2-v1)*(a-(float)(p+1)));
+ t1=(-v1+d)/(v2-v1);
+ t2=(-v1-d)/(v2-v1);
- /* the root between 0-1 is the correct one */
- if(t1>0.0f && t1<=1.0f)
- pa->time=time+t1;
- else
- pa->time=time+t2;
+ /* the root between 0-1 is the correct one */
+ if(t1>0.0f && t1<=1.0f)
+ pa->time=time+t1;
+ else
+ pa->time=time+t2;
+ }
}
- }
- pa->dietime = pa->time+pa->lifetime;
- pa->flag &= ~PARS_UNEXIST;
- }
- for(; p<totpart; p++, pa++){
- pa->flag |= PARS_UNEXIST;
+ pa->dietime = pa->time+pa->lifetime;
+ pa->flag &= ~PARS_UNEXIST;
+ }
+ for(; p<totpart; p++, pa++){
+ pa->flag |= PARS_UNEXIST;
+ }
}
}
}
@@ -1624,7 +1703,10 @@ void reset_particle(ParticleData *pa, ParticleSystem *psys, ParticleSystemModifi
/*TODO: get precise location of particle at birth*/
state.time=cfra;
- psys_get_particle_state(tob,tpsys,pa->num,&state,1);
+ if(pa->num == -1)
+ memset(&state, 0, sizeof(state));
+ else
+ psys_get_particle_state(tob,tpsys,pa->num,&state,1);
psys_get_from_key(&state,loc,nor,rot,0);
QuatMulVecf(rot,vtan);
@@ -1654,9 +1736,8 @@ void reset_particle(ParticleData *pa, ParticleSystem *psys, ParticleSystemModifi
/* get possible textural influence */
psys_get_texture(ob,give_current_material(ob,part->omat),psmd,psys,pa,&ptex,MAP_PA_IVEL);
- if(vg_vel){
+ if(vg_vel && pa->num != -1)
ptex.ivel*=psys_interpolate_value_from_verts(psmd->dm,part->from,pa->num,pa->fuv,vg_vel);
- }
/* particles live in global space so */
/* let's convert: */
@@ -1897,7 +1978,8 @@ int psys_count_keyed_targets(Object *ob, ParticleSystem *psys)
BLI_freelistN(&lb);
return select;
}
-void set_keyed_keys(Object *ob, ParticleSystem *psys)
+
+static void set_keyed_keys(Object *ob, ParticleSystem *psys)
{
Object *kob = ob;
ParticleSystem *kpsys = psys;
@@ -1907,17 +1989,16 @@ void set_keyed_keys(Object *ob, ParticleSystem *psys)
float prevtime, nexttime, keyedtime;
/* no proper targets so let's clear and bail out */
- if(psys->totkeyed==0){
+ if(psys->totkeyed==0) {
free_keyed_keys(psys);
psys->flag &= ~PSYS_KEYED;
return;
}
- if(totpart && psys->particles->totkey != totkeys){
+ if(totpart && psys->particles->totkey != totkeys) {
free_keyed_keys(psys);
- psys->particles->keys = MEM_callocN(psys->totpart * totkeys * sizeof(ParticleKey),"Keyed keys");
-
+ psys->particles->keys = MEM_callocN(psys->totpart*totkeys*sizeof(ParticleKey), "Keyed keys");
psys->particles->totkey = totkeys;
for(i=1, pa=psys->particles+1; i<totpart; i++,pa++){
@@ -1929,9 +2010,10 @@ void set_keyed_keys(Object *ob, ParticleSystem *psys)
psys->flag &= ~PSYS_KEYED;
state.time=-1.0;
- for(k=0; k<totkeys; k++){
- for(i=0,pa=psys->particles; i<totpart; i++, pa++){
- psys_get_particle_state(kob, kpsys, i%kpsys->totpart, pa->keys + k, 1);
+ for(k=0; k<totkeys; k++) {
+ for(i=0,pa=psys->particles; i<totpart; i++, pa++) {
+ if(kpsys->totpart > 0)
+ psys_get_particle_state(kob, kpsys, i%kpsys->totpart, pa->keys + k, 1);
if(k==0)
pa->keys->time = pa->time;
@@ -2072,56 +2154,57 @@ void psys_get_reactor_target(Object *ob, ParticleSystem *psys, Object **target_o
/************************************************/
/* Point Cache */
/************************************************/
-void clear_particles_from_cache(Object *ob, ParticleSystem *psys, int cfra)
-{
- ParticleSystemModifierData *psmd = psys_get_modifier(ob,psys);
- int stack_index = modifiers_indexInObject(ob,(ModifierData*)psmd);
- BKE_ptcache_id_clear((ID *)ob, PTCACHE_CLEAR_ALL, cfra, stack_index);
-}
static void write_particles_to_cache(Object *ob, ParticleSystem *psys, int cfra)
{
- FILE *fp = NULL;
- ParticleSystemModifierData *psmd = psys_get_modifier(ob,psys);
+ PTCacheID pid;
+ PTCacheFile *pf;
ParticleData *pa;
- int stack_index = modifiers_indexInObject(ob,(ModifierData*)psmd);
- int i, totpart = psys->totpart;
+ int i, totpart= psys->totpart;
- if(totpart == 0) return;
+ if(totpart == 0)
+ return;
- fp = BKE_ptcache_id_fopen((ID *)ob, 'w', cfra, stack_index);
- if(!fp) return;
+ BKE_ptcache_id_from_particles(&pid, ob, psys);
+ pf= BKE_ptcache_file_open(&pid, PTCACHE_FILE_WRITE, cfra);
+ if(!pf)
+ return;
+ /* assuming struct consists of tightly packed floats */
for(i=0, pa=psys->particles; i<totpart; i++, pa++)
- fwrite(&pa->state, sizeof(ParticleKey), 1, fp);
+ BKE_ptcache_file_write_floats(pf, (float*)&pa->state, sizeof(ParticleKey)/sizeof(float));
- fclose(fp);
+ BKE_ptcache_file_close(pf);
}
+
static int get_particles_from_cache(Object *ob, ParticleSystem *psys, int cfra)
{
- FILE *fp = NULL;
- ParticleSystemModifierData *psmd = psys_get_modifier(ob,psys);
+ PTCacheID pid;
+ PTCacheFile *pf;
ParticleData *pa;
- int stack_index = modifiers_indexInObject(ob,(ModifierData*)psmd);
- int i, totpart = psys->totpart, ret = 1;
+ int i, totpart= psys->totpart;
+
+ if(totpart == 0)
+ return 0;
- if(totpart == 0) return 0;
+ BKE_ptcache_id_from_particles(&pid, ob, psys);
+ pf= BKE_ptcache_file_open(&pid, PTCACHE_FILE_READ, cfra);
+ if(!pf)
+ return 0;
- fp = BKE_ptcache_id_fopen((ID *)ob, 'r', cfra, stack_index);
- if(!fp)
- ret = 0;
- else {
- for(i=0, pa=psys->particles; i<totpart; i++, pa++)
- if((fread(&pa->state, sizeof(ParticleKey), 1, fp)) != 1) {
- ret = 0;
- break;
- }
-
- fclose(fp);
+ /* assuming struct consists of tightly packed floats */
+ for(i=0, pa=psys->particles; i<totpart; i++, pa++) {
+ if(!BKE_ptcache_file_read_floats(pf, (float*)&pa->state, sizeof(ParticleKey)/sizeof(float))) {
+ BKE_ptcache_file_close(pf);
+ return 0;
+ }
}
- return ret;
+ BKE_ptcache_file_close(pf);
+
+ return 1;
}
+
/************************************************/
/* Effectors */
/************************************************/
@@ -3113,7 +3196,6 @@ static void deflect_particle(Object *pob, ParticleSystemModifierData *psmd, Part
ParticleKey cstate;
float imat[4][4];
float co1[3],co2[3],def_loc[3],def_nor[3],unit_nor[3],def_tan[3],dvec[3],def_vel[3],dave[3],dvel[3];
- float t_co1[3]={0.0,0.0,0.0},t_co2[3]={0.0,0.0,0.0};
float pa_minmax[6];
float min_w[4], zerovec[3]={0.0,0.0,0.0}, ipoint[3];
float min_d,dotprod,damp,frict,o_len,d_len,radius=-1.0f;
@@ -3152,9 +3234,6 @@ static void deflect_particle(Object *pob, ParticleSystemModifierData *psmd, Part
if(ec->vert_cos==0){
/* convert particle coordinates to object coordinates */
Mat4Invert(imat,ob->obmat);
-
- VECCOPY(t_co1,co1);
- VECCOPY(t_co2,co2);
Mat4MulVecfl(imat,co1);
Mat4MulVecfl(imat,co2);
}
@@ -3173,20 +3252,17 @@ static void deflect_particle(Object *pob, ParticleSystemModifierData *psmd, Part
radius=pa->size;
}
- if(ec->face_minmax==0 || AabbIntersectAabb(pa_minmax,pa_minmax+3,ec->ob_minmax,ec->ob_minmax+3))
+ if(ec->face_minmax==0 || AabbIntersectAabb(pa_minmax,pa_minmax+3,ec->ob_minmax,ec->ob_minmax+3)) {
if(psys_intersect_dm(ob,dm,ec->vert_cos,co1,co2,&min_d,&min_face,min_w,
ec->face_minmax,pa_minmax,radius,ipoint)){
+
min_ob=ob;
+
if(ec->vert_cos)
global=1;
else
global=0;
}
-
- if(ec->vert_cos==0){
- /* get global coordinates back */
- VECCOPY(co1,t_co1);
- VECCOPY(co2,t_co2);
}
}
}
@@ -3211,7 +3287,6 @@ static void deflect_particle(Object *pob, ParticleSystemModifierData *psmd, Part
mface+=min_face;
mvert=dm->getVertDataArray(dm,CD_MVERT);
-
/* permeability check */
if(BLI_frand()<ob->pd->pdef_perm)
through=1;
@@ -3220,10 +3295,7 @@ static void deflect_particle(Object *pob, ParticleSystemModifierData *psmd, Part
if(through==0 && (part->flag & PART_DIE_ON_COL || ob->pd->flag & PDEFLE_KILL_PART)){
pa->dietime = cfra-(1.0f-min_d)*dfra;
- VecLerpf(def_loc,co1,co2,min_d);
-
- if(global==0)
- Mat4MulVecfl(ob->obmat,def_loc);
+ VecLerpf(def_loc,def_loc,state->co,min_d);
VECCOPY(state->co,def_loc);
VecLerpf(state->vel,pa->state.vel,state->vel,min_d);
@@ -3241,10 +3313,19 @@ static void deflect_particle(Object *pob, ParticleSystemModifierData *psmd, Part
if(part->flag & PART_STICKY){
pa->stick_ob=ob;
pa->flag |= PARS_STICKY;
- //stick_particle_to_object(ob,pa,state);
}
}
else{
+ VECCOPY(co1,def_loc);
+ VECCOPY(co2,state->co);
+
+ if(global==0){
+ /* convert particle coordinates to object coordinates */
+ Mat4Invert(imat,ob->obmat);
+ Mat4MulVecfl(imat,co1);
+ Mat4MulVecfl(imat,co2);
+ }
+
VecLerpf(def_loc,co1,co2,min_d);
if(radius>0.0f){
@@ -4176,7 +4257,7 @@ static void dynamics_step(Object *ob, ParticleSystem *psys, ParticleSystemModifi
copy_particle_key(key,&pa->state,1);
}
- if(dfra>0.0 || psys->recalc){
+ if(1) {
if(psys->reactevents.first && ELEM(pa->alive,PARS_DEAD,PARS_KILLED)==0)
react_to_events(psys,p);
@@ -4279,7 +4360,7 @@ static void psys_update_path_cache(Object *ob, ParticleSystemModifierData *psmd,
if(distr){
if(alloc)
- alloc_particles(ob,psys,psys->totpart);
+ realloc_particles(ob,psys,psys->totpart);
if(get_psys_tot_child(psys)) {
/* don't generate children while computing the hair keys */
@@ -4339,7 +4420,7 @@ static void hair_step(Object *ob, ParticleSystemModifierData *psmd, ParticleSyst
}
/* updates cached particles' alive & other flags etc..*/
-static void cached_step(Object *ob, ParticleSystemModifierData *psmd, ParticleSystem *psys, float cfra, float *vg_size)
+static void cached_step(Object *ob, ParticleSystemModifierData *psmd, ParticleSystem *psys, float cfra)
{
ParticleSettings *part=psys->part;
ParticleData *pa;
@@ -4347,7 +4428,10 @@ static void cached_step(Object *ob, ParticleSystemModifierData *psmd, ParticleSy
IpoCurve *icu_esize=find_ipocurve(part->ipo,PART_EMIT_SIZE);
Material *ma=give_current_material(ob,part->omat);
int p;
- float ipotime=cfra, disp, birthtime, dietime;
+ float ipotime=cfra, disp, birthtime, dietime, *vg_size= NULL;
+
+ if(part->from!=PART_FROM_PARTICLE)
+ vg_size= psys_cache_vgroup(psmd->dm,psys,PSYS_VG_SIZE);
if(psys->effectors.first)
psys_end_effectors(psys);
@@ -4376,7 +4460,7 @@ static void cached_step(Object *ob, ParticleSystemModifierData *psmd, ParticleSy
pa->loop = 0;
birthtime = pa->time + pa->loop * pa->lifetime;
- dietime = birthtime + pa->lifetime;
+ dietime = birthtime + (1 + pa->loop) * (pa->dietime - pa->time);
/* update alive status and push events */
if(pa->time > cfra)
@@ -4410,111 +4494,248 @@ static void cached_step(Object *ob, ParticleSystemModifierData *psmd, ParticleSy
/* make sure that children are up to date */
if(psys->part->childtype && psys->totchild != get_psys_tot_child(psys)) {
- alloc_particles(ob, psys, psys->totpart);
+ realloc_particles(ob, psys, psys->totpart);
distribute_particles(ob, psys, PART_FROM_CHILD);
}
+
+ if(vg_size)
+ MEM_freeN(vg_size);
}
-/* Calculates the next state for all particles of the system */
-/* In particles code most fra-ending are frames, time-ending are fra*timestep (seconds)*/
-static void system_step(Object *ob, ParticleSystem *psys, ParticleSystemModifierData *psmd, float cfra)
+
+void psys_changed_type(ParticleSystem *psys)
{
ParticleSettings *part;
- ParticleData *pa;
- int totpart,oldtotpart=0,p;
- float disp, *vg_vel=0, *vg_tan=0, *vg_rot=0, *vg_size=0;
- int init=0,distr=0,alloc=0;
-
- /*----start validity checks----*/
- part=psys->part;
+ part= psys->part;
- if(part->flag&PART_ABS_TIME && part->ipo){
- calc_ipo(part->ipo, cfra);
- execute_ipo((ID *)part, part->ipo);
+ /* system type has changed so set sensible defaults and clear non applicable flags */
+ if(part->from == PART_FROM_PARTICLE) {
+ if(part->type != PART_REACTOR)
+ part->from = PART_FROM_FACE;
+ if(part->distr == PART_DISTR_GRID)
+ part->distr = PART_DISTR_JIT;
}
- if(part->from!=PART_FROM_PARTICLE)
- vg_size=psys_cache_vgroup(psmd->dm,psys,PSYS_VG_SIZE);
+ if(psys->part->phystype != PART_PHYS_KEYED)
+ psys->flag &= ~PSYS_KEYED;
if(part->type == PART_HAIR) {
- if(psys->flag & PSYS_HAIR_DONE) {
- hair_step(ob, psmd, psys, cfra);
- psys->cfra = cfra;
- psys->recalc = 0;
- return;
- }
+ part->draw_as = PART_DRAW_PATH;
+ part->rotfrom = PART_ROT_IINCR;
}
- else if(ELEM(part->phystype, PART_PHYS_NO, PART_PHYS_KEYED))
- ; /* cache shouldn't be used for "none" or "keyed" physics */
else {
- if(psys->recalc && (psys->flag & PSYS_PROTECT_CACHE) == 0)
- clear_particles_from_cache(ob,psys,(int)cfra);
- else if(get_particles_from_cache(ob, psys, (int)cfra)) {
- cached_step(ob,psmd,psys,cfra,vg_size);
- psys->cfra=cfra;
- psys->recalc = 0;
- return;
- }
+ free_hair(psys, 1);
+
+ if(part->draw_as == PART_DRAW_PATH)
+ if(psys->part->phystype != PART_PHYS_KEYED)
+ part->draw_as = PART_DRAW_DOT;
}
- /* if still here react to events */
+ psys->softflag= 0;
- if(psys->recalc&PSYS_TYPE) {
- /* system type has changed so set sensible defaults and clear non applicable flags */
- if(part->from == PART_FROM_PARTICLE) {
- if(part->type != PART_REACTOR)
- part->from = PART_FROM_FACE;
- if(part->distr == PART_DISTR_GRID)
- part->distr = PART_DISTR_JIT;
+ psys_reset(psys, PSYS_RESET_ALL);
+}
+
+static void particles_fluid_step(Object *ob, ParticleSystem *psys, int cfra)
+{
+ if(psys->particles){
+ MEM_freeN(psys->particles);
+ psys->particles = 0;
+ psys->totpart = 0;
+ }
+
+ /* fluid sim particle import handling, actual loading of particles from file */
+ #ifndef DISABLE_ELBEEM
+ if( (1) && (ob->fluidsimFlag & OB_FLUIDSIM_ENABLE) && // broken, disabled for now!
+ (ob->fluidsimSettings)) {
+ ParticleSettings *part = psys->part;
+ ParticleData *pa=0;
+ char *suffix = "fluidsurface_particles_####";
+ char *suffix2 = ".gz";
+ char filename[256];
+ char debugStrBuffer[256];
+ int curFrame = G.scene->r.cfra -1; // warning - sync with derived mesh fsmesh loading
+ int p, j, numFileParts, totpart;
+ int readMask, activeParts = 0, fileParts = 0;
+ gzFile gzf;
+
+ if(ob==G.obedit) // off...
+ return;
+
+ // ok, start loading
+ strcpy(filename, ob->fluidsimSettings->surfdataPath);
+ strcat(filename, suffix);
+ BLI_convertstringcode(filename, G.sce, curFrame); // fixed #frame-no
+ strcat(filename, suffix2);
+
+ gzf = gzopen(filename, "rb");
+ if (!gzf) {
+ snprintf(debugStrBuffer,256,"readFsPartData::error - Unable to open file for reading '%s' \n", filename);
+ //elbeemDebugOut(debugStrBuffer);
+ return;
}
- if(psys->part->phystype != PART_PHYS_KEYED)
- psys->flag &= ~PSYS_KEYED;
+ gzread(gzf, &totpart, sizeof(totpart));
+ numFileParts = totpart;
+ totpart = (G.rendering)?totpart:(part->disp*totpart)/100;
+
+ part->totpart= totpart;
+ part->sta=part->end = 1.0f;
+ part->lifetime = G.scene->r.efra + 1;
+
+ /* initialize particles */
+ realloc_particles(ob, psys, part->totpart);
+ initialize_all_particles(ob, psys, 0);
+
+ // set up reading mask
+ readMask = ob->fluidsimSettings->typeFlags;
+
+ for(p=0, pa=psys->particles; p<totpart; p++, pa++) {
+ int ptype=0;
+
+ gzread(gzf, &ptype, sizeof( ptype ));
+ if(ptype&readMask) {
+ activeParts++;
- if(part->type == PART_HAIR) {
- part->draw_as = PART_DRAW_PATH;
- part->rotfrom = PART_ROT_IINCR;
+ gzread(gzf, &(pa->size), sizeof( float ));
+
+ pa->size /= 10.0f;
+
+ for(j=0; j<3; j++) {
+ float wrf;
+ gzread(gzf, &wrf, sizeof( wrf ));
+ pa->state.co[j] = wrf;
+ //fprintf(stderr,"Rj%d ",j);
+ }
+ for(j=0; j<3; j++) {
+ float wrf;
+ gzread(gzf, &wrf, sizeof( wrf ));
+ pa->state.vel[j] = wrf;
+ }
+
+ pa->state.ave[0] = pa->state.ave[1] = pa->state.ave[2] = 0.0f;
+ pa->state.rot[0] = 1.0;
+ pa->state.rot[1] = pa->state.rot[2] = pa->state.rot[3] = 0.0;
+
+ pa->alive = PARS_ALIVE;
+ //if(a<25) fprintf(stderr,"FSPARTICLE debug set %s , a%d = %f,%f,%f , life=%f \n", filename, a, pa->co[0],pa->co[1],pa->co[2], pa->lifetime );
+ } else {
+ // skip...
+ for(j=0; j<2*3+1; j++) {
+ float wrf; gzread(gzf, &wrf, sizeof( wrf ));
+ }
+ }
+ fileParts++;
}
- else
- free_hair(psys, 1);
+ gzclose( gzf );
- psys->softflag= 0;
- psys->recalc &= ~PSYS_TYPE;
- alloc = 1;
+ totpart = psys->totpart = activeParts;
+ snprintf(debugStrBuffer,256,"readFsPartData::done - particles:%d, active:%d, file:%d, mask:%d \n", psys->totpart,activeParts,fileParts,readMask);
+ elbeemDebugOut(debugStrBuffer);
+ } // fluid sim particles done
+ #endif // DISABLE_ELBEEM
+}
+
+/* Calculates the next state for all particles of the system */
+/* In particles code most fra-ending are frames, time-ending are fra*timestep (seconds)*/
+static void system_step(Object *ob, ParticleSystem *psys, ParticleSystemModifierData *psmd, float cfra)
+{
+ ParticleSettings *part;
+ ParticleData *pa;
+ PointCache *cache;
+ PTCacheID pid;
+ int totpart, oldtotpart, totchild, oldtotchild, p;
+ float disp, *vg_vel= 0, *vg_tan= 0, *vg_rot= 0, *vg_size= 0;
+ int init= 0, distr= 0, alloc= 0, usecache= 0;
+ int framenr, framedelta, startframe, endframe;
+
+ part= psys->part;
+ cache= psys->pointcache;
+
+ framenr= (int)CFRA;
+ framedelta= framenr - cache->simframe;
- /* this is a bad level call, but currently type change
- * can happen after redraw, so force redraw from here */
- allqueue(REDRAWBUTSOBJECT, 0);
+ BKE_ptcache_id_from_particles(&pid, ob, psys);
+ BKE_ptcache_id_time(&pid, 0.0f, &startframe, &endframe, NULL);
+
+ /* update ipo's */
+ if((part->flag & PART_ABS_TIME) && part->ipo) {
+ calc_ipo(part->ipo, cfra);
+ execute_ipo((ID *)part, part->ipo);
+ }
+
+ /* hair if it's already done is handled separate */
+ if(part->type == PART_HAIR && (psys->flag & PSYS_HAIR_DONE)) {
+ hair_step(ob, psmd, psys, cfra);
+ psys->cfra = cfra;
+ psys->recalc = 0;
+ return;
}
+ /* fluid is also handled separate */
+ else if(part->type == PART_FLUID) {
+ particles_fluid_step(ob, psys, framenr);
+ psys->cfra = cfra;
+ psys->recalc = 0;
+ return;
+ }
+
+ /* cache shouldn't be used for hair or "none" or "first keyed" physics */
+ if(part->type == PART_HAIR || part->phystype == PART_PHYS_NO)
+ usecache= 0;
+ else if(part->type == PART_PHYS_KEYED && (psys->flag & PSYS_FIRST_KEYED))
+ usecache= 0;
+ else if(BKE_ptcache_get_continue_physics())
+ usecache= 0;
else
- oldtotpart = psys->totpart;
+ usecache= 1;
+
+ if(usecache) {
+ /* frame clamping */
+ if(framenr < startframe) {
+ psys_reset(psys, PSYS_RESET_DEPSGRAPH);
+ psys->cfra = cfra;
+ psys->recalc = 0;
+ return;
+ }
+ else if(framenr > endframe) {
+ framenr= endframe;
+ }
+ }
+
+ /* verify if we need to reallocate */
+ oldtotpart = psys->totpart;
+ oldtotchild = psys->totchild;
if(part->distr == PART_DISTR_GRID)
- totpart = part->grid_res * part->grid_res * part->grid_res;
+ totpart = part->grid_res*part->grid_res*part->grid_res;
else
totpart = psys->part->totpart;
+ totchild = get_psys_tot_child(psys);
- if(oldtotpart != totpart || psys->recalc&PSYS_ALLOC || (psys->part->childtype && psys->totchild != get_psys_tot_child(psys)))
+ if(oldtotpart != totpart || (psys->part->childtype && oldtotchild != totchild)) {
+ realloc_particles(ob, psys, totpart);
alloc = 1;
+ distr= 1;
+ init= 1;
+ }
- if(alloc || psys->recalc&PSYS_DISTR || (psys->vgroup[PSYS_VG_DENSITY] && (G.f & G_WEIGHTPAINT) && ob==OBACT))
- distr = 1;
-
- if(distr || psys->recalc&PSYS_INIT)
- init = 1;
+ if(psys->recalc & PSYS_DISTR) {
+ distr= 1;
+ init= 1;
+ }
if(init) {
if(distr) {
if(alloc)
- alloc_particles(ob, psys, totpart);
+ realloc_particles(ob, psys, totpart);
distribute_particles(ob, psys, part->from);
if((psys->part->type == PART_HAIR) && !(psys->flag & PSYS_HAIR_DONE))
- /* don't generate children while growing hair - waste of time */
- psys_free_children(psys);
- else if(get_psys_tot_child(psys))
- distribute_particles(ob, psys, PART_FROM_CHILD);
+ /* don't generate children while growing hair - waste of time */
+ psys_free_children(psys);
+ else if(get_psys_tot_child(psys))
+ distribute_particles(ob, psys, PART_FROM_CHILD);
}
initialize_all_particles(ob, psys, psmd);
@@ -4525,17 +4746,59 @@ static void system_step(Object *ob, ParticleSystem *psys, ParticleSystemModifier
psmd->flag |= eParticleSystemFlag_Pars;
}
+ /* try to read from the cache */
+ if(usecache) {
+ if(get_particles_from_cache(ob, psys, framenr)) {
+ if(part->phystype==PART_PHYS_KEYED && psys->flag&PSYS_FIRST_KEYED) {
+ psys_count_keyed_targets(ob,psys);
+ set_keyed_keys(ob, psys);
+ }
+
+ cached_step(ob,psmd,psys,cfra);
+ psys->cfra=cfra;
+ psys->recalc = 0;
+
+ if(part->phystype==PART_PHYS_KEYED && psys->flag&PSYS_FIRST_KEYED) {
+ psys_update_path_cache(ob,psmd,psys,framenr);
+ }
+
+ return;
+ }
+ else if(ob->id.lib || (cache->flag & PTCACHE_BAKED)) {
+ psys_reset(psys, PSYS_RESET_DEPSGRAPH);
+ psys->cfra=cfra;
+ psys->recalc = 0;
+ return;
+ }
+
+ if(framenr != startframe && framedelta != 1) {
+ psys_reset(psys, PSYS_RESET_DEPSGRAPH);
+ psys->cfra = cfra;
+ psys->recalc = 0;
+ return;
+ }
+ }
+ else {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
+ }
+
+ /* if on second frame, write cache for first frame */
+ if(usecache && framenr == startframe+1)
+ write_particles_to_cache(ob, psys, startframe);
if(part->phystype==PART_PHYS_KEYED && psys->flag&PSYS_FIRST_KEYED)
psys_count_keyed_targets(ob,psys);
- if(part->from!=PART_FROM_PARTICLE){
- vg_vel=psys_cache_vgroup(psmd->dm,psys,PSYS_VG_VEL);
- vg_tan=psys_cache_vgroup(psmd->dm,psys,PSYS_VG_TAN);
- vg_rot=psys_cache_vgroup(psmd->dm,psys,PSYS_VG_ROT);
+ /* initialize vertex groups */
+ if(part->from!=PART_FROM_PARTICLE) {
+ vg_vel= psys_cache_vgroup(psmd->dm,psys,PSYS_VG_VEL);
+ vg_tan= psys_cache_vgroup(psmd->dm,psys,PSYS_VG_TAN);
+ vg_rot= psys_cache_vgroup(psmd->dm,psys,PSYS_VG_ROT);
+ vg_size= psys_cache_vgroup(psmd->dm,psys,PSYS_VG_SIZE);
}
- /* set particles to be not calculated */
+ /* set particles to be not calculated TODO: can't work with pointcache */
disp= (float)get_current_display_percentage(psys)/50.0f-1.0f;
for(p=0, pa=psys->particles; p<totpart; p++,pa++){
@@ -4548,15 +4811,16 @@ static void system_step(Object *ob, ParticleSystem *psys, ParticleSystemModifier
/* ok now we're all set so let's go */
if(psys->totpart)
dynamics_step(ob,psys,psmd,cfra,vg_vel,vg_tan,vg_rot,vg_size);
+
+ cache->simframe= framenr;
+ cache->flag |= PTCACHE_SIMULATION_VALID;
psys->recalc = 0;
psys->cfra = cfra;
- if(part->type == PART_HAIR || part->phystype == PART_PHYS_NO
- || (part->phystype == PART_PHYS_KEYED && psys->flag & PSYS_FIRST_KEYED))
- ; /* cache shouldn't be used for hair or "none" or "first keyed" physics */
- else
- write_particles_to_cache(ob, psys, cfra);
+ /* only write cache starting from second frame */
+ if(usecache && framenr != startframe)
+ write_particles_to_cache(ob, psys, framenr);
/* for keyed particles the path is allways known so it can be drawn */
if(part->phystype==PART_PHYS_KEYED && psys->flag&PSYS_FIRST_KEYED){
@@ -4566,9 +4830,11 @@ static void system_step(Object *ob, ParticleSystem *psys, ParticleSystemModifier
else if(psys->pathcache)
psys_free_path_cache(psys);
+ /* cleanup */
if(vg_vel) MEM_freeN(vg_vel);
if(vg_tan) MEM_freeN(vg_tan);
if(vg_rot) MEM_freeN(vg_rot);
+ if(vg_size) MEM_freeN(vg_size);
if(psys->lattice){
end_latt_deform();
@@ -4576,106 +4842,97 @@ static void system_step(Object *ob, ParticleSystem *psys, ParticleSystemModifier
}
}
-void psys_to_softbody(Object *ob, ParticleSystem *psys, int force_recalc)
+void psys_to_softbody(Object *ob, ParticleSystem *psys)
{
SoftBody *sb;
short softflag;
- if((psys->softflag&OB_SB_ENABLE)==0) return;
-
- if(psys->recalc || force_recalc)
- psys->softflag|=OB_SB_REDO;
+ if(!(psys->softflag & OB_SB_ENABLE))
+ return;
/* let's replace the object's own softbody with the particle softbody */
/* a temporary solution before cloth simulation is implemented, jahka */
/* save these */
- sb=ob->soft;
- softflag=ob->softflag;
+ sb= ob->soft;
+ softflag= ob->softflag;
/* swich to new ones */
- ob->soft=psys->soft;
- ob->softflag=psys->softflag;
+ ob->soft= psys->soft;
+ ob->softflag= psys->softflag;
/* do softbody */
sbObjectStep(ob, (float)G.scene->r.cfra, NULL, psys_count_keys(psys));
/* return things back to normal */
- psys->soft=ob->soft;
- psys->softflag=ob->softflag;
+ psys->soft= ob->soft;
+ psys->softflag= ob->softflag;
- ob->soft=sb;
- ob->softflag=softflag;
+ ob->soft= sb;
+ ob->softflag= softflag;
}
+
static int hair_needs_recalc(ParticleSystem *psys)
{
- if((psys->flag & PSYS_EDITED)==0 && (
- (psys->flag & PSYS_HAIR_DONE)==0
- || psys->recalc & PSYS_RECALC_HAIR)
- ) {
+ if((psys->flag & PSYS_EDITED)==0 &&
+ ((psys->flag & PSYS_HAIR_DONE)==0 || psys->recalc & PSYS_RECALC_HAIR)) {
psys->recalc &= ~PSYS_RECALC_HAIR;
return 1;
}
return 0;
}
-/* main particle update call, checks that things are ok on the large scale before actual particle calculations */
-void particle_system_update(Object *ob, ParticleSystem *psys){
- ParticleSystemModifierData *psmd=0;
+/* main particle update call, checks that things are ok on the large scale before actual particle calculations */
+void particle_system_update(Object *ob, ParticleSystem *psys)
+{
+ ParticleSystemModifierData *psmd;
float cfra;
if(!psys_check_enabled(ob, psys))
return;
- cfra=bsystem_time(ob,(float)CFRA,0.0);
+ cfra= bsystem_time(ob, CFRA, 0.0f);
psmd= psys_get_modifier(ob, psys);
/* system was already updated from modifier stack */
- if(psmd->flag&eParticleSystemFlag_psys_updated) {
+ if(psmd->flag & eParticleSystemFlag_psys_updated) {
psmd->flag &= ~eParticleSystemFlag_psys_updated;
/* make sure it really was updated to cfra */
- if(psys->cfra==cfra)
+ if(psys->cfra == cfra)
return;
}
if(!psmd->dm)
return;
- /* baked path softbody */
- if(psys->part->type==PART_HAIR && psys->soft)
- psys_to_softbody(ob, psys, 0);
-
- /* not needed, this is all handled in hair_step */
- ///* is the mesh changing under the edited particles? */
- //if((psys->flag & PSYS_EDITED) && psys->part->type==PART_HAIR && psys->recalc & PSYS_RECALC_HAIR) {
- // /* Just update the particles on the mesh */
- // psys_update_edithair_dmfaces(ob, psmd->dm, psys);
- //}
-
- if(psys->part->type==PART_HAIR && hair_needs_recalc(psys)){
+ /* (re-)create hair */
+ if(psys->part->type==PART_HAIR && hair_needs_recalc(psys)) {
float hcfra=0.0f;
int i;
free_hair(psys, 0);
/* first step is negative so particles get killed and reset */
- psys->cfra=1.0f;
+ psys->cfra= 1.0f;
for(i=0; i<=psys->part->hair_step; i++){
hcfra=100.0f*(float)i/(float)psys->part->hair_step;
- system_step(ob,psys,psmd,hcfra);
- save_hair(ob,psys,psmd,hcfra);
+ system_step(ob, psys, psmd, hcfra);
+ save_hair(ob, psys, psmd, hcfra);
}
psys->flag |= PSYS_HAIR_DONE;
-
- if(psys->softflag&OB_SB_ENABLE)
- psys_to_softbody(ob,psys,1);
}
- system_step(ob,psys,psmd,cfra);
+ /* handle softbody hair */
+ if(psys->part->type==PART_HAIR && psys->soft)
+ psys_to_softbody(ob, psys);
+
+ /* the main particle system step */
+ system_step(ob, psys, psmd, cfra);
- Mat4Invert(psys->imat, ob->obmat); /* used for duplicators */
+ /* save matrix for duplicators */
+ Mat4Invert(psys->imat, ob->obmat);
}
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index cdb95e2f015..8407dd2b7c3 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,24 +21,39 @@
*
* Contributor(s): Campbell Barton <ideasman42@gmail.com>
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
-
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include "BKE_pointcache.h"
+#include "MEM_guardedalloc.h"
-#include "BKE_utildefines.h"
-#include "BKE_global.h"
-#include "BKE_library.h"
+#include "DNA_ID.h"
+#include "DNA_cloth_types.h"
+#include "DNA_modifier_types.h"
+#include "DNA_object_types.h"
+#include "DNA_object_force.h"
+#include "DNA_particle_types.h"
+#include "DNA_scene_types.h"
#include "BLI_blenlib.h"
+
+#include "BKE_cloth.h"
+#include "BKE_depsgraph.h"
+#include "BKE_global.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_modifier.h"
+#include "BKE_object.h"
+#include "BKE_particle.h"
+#include "BKE_pointcache.h"
+#include "BKE_softbody.h"
#include "BKE_utildefines.h"
+
#include "blendef.h"
/* needed for directory lookup */
@@ -58,36 +70,134 @@
#include <unistd.h>
#endif
+/* Creating ID's */
+
+void BKE_ptcache_id_from_softbody(PTCacheID *pid, Object *ob, SoftBody *sb)
+{
+ ParticleSystemModifierData *psmd;
+ ModifierData *md;
+ int a;
+
+ memset(pid, 0, sizeof(PTCacheID));
+
+ pid->ob= ob;
+ pid->data= sb;
+ pid->type= PTCACHE_TYPE_SOFTBODY;
+ pid->cache= sb->pointcache;
+
+ if(sb->particles) {
+ psmd= psys_get_modifier(ob, sb->particles);
+ pid->stack_index= modifiers_indexInObject(ob, (ModifierData*)psmd);
+ }
+ else {
+ for(a=0, md=ob->modifiers.first; md; md=md->next, a++) {
+ if(md->type == eModifierType_Softbody) {
+ pid->stack_index = a;
+ break;
+ }
+ }
+ }
+}
+
+void BKE_ptcache_id_from_particles(PTCacheID *pid, Object *ob, ParticleSystem *psys)
+{
+ ParticleSystemModifierData *psmd= psys_get_modifier(ob, psys);
+
+ memset(pid, 0, sizeof(PTCacheID));
+
+ pid->ob= ob;
+ pid->data= psys;
+ pid->type= PTCACHE_TYPE_PARTICLES;
+ pid->stack_index= modifiers_indexInObject(ob, (ModifierData *)psmd);
+ pid->cache= psys->pointcache;
+}
+
+void BKE_ptcache_id_from_cloth(PTCacheID *pid, Object *ob, ClothModifierData *clmd)
+{
+ memset(pid, 0, sizeof(PTCacheID));
+
+ pid->ob= ob;
+ pid->data= clmd;
+ pid->type= PTCACHE_TYPE_CLOTH;
+ pid->stack_index= modifiers_indexInObject(ob, (ModifierData *)clmd);
+ pid->cache= clmd->point_cache;
+}
+
+void BKE_ptcache_ids_from_object(ListBase *lb, Object *ob)
+{
+ PTCacheID *pid;
+ ParticleSystem *psys;
+ ModifierData *md;
+
+ lb->first= lb->last= NULL;
+
+ if(ob->soft) {
+ pid= MEM_callocN(sizeof(PTCacheID), "PTCacheID");
+ BKE_ptcache_id_from_softbody(pid, ob, ob->soft);
+ BLI_addtail(lb, pid);
+ }
+
+ for(psys=ob->particlesystem.first; psys; psys=psys->next) {
+ pid= MEM_callocN(sizeof(PTCacheID), "PTCacheID");
+ BKE_ptcache_id_from_particles(pid, ob, psys);
+ BLI_addtail(lb, pid);
+
+ if(psys->soft) {
+ pid= MEM_callocN(sizeof(PTCacheID), "PTCacheID");
+ BKE_ptcache_id_from_softbody(pid, ob, psys->soft);
+ BLI_addtail(lb, pid);
+ }
+ }
+
+ for(md=ob->modifiers.first; md; md=md->next) {
+ if(md->type == eModifierType_Cloth) {
+ pid= MEM_callocN(sizeof(PTCacheID), "PTCacheID");
+ BKE_ptcache_id_from_cloth(pid, ob, (ClothModifierData*)md);
+ BLI_addtail(lb, pid);
+ }
+ }
+}
+
/* Takes an Object ID and returns a unique name
- id: object id
- cfra: frame for the cache, can be negative
- stack_index: index in the modifier stack. we can have cache for more then one stack_index
*/
-static int ptcache_path(char *filename)
+static int ptcache_path(PTCacheID *pid, char *filename)
{
+ Library *lib;
int i;
- if (G.relbase_valid) {
+
+ lib= (pid)? pid->ob->id.lib: NULL;
+
+ if (G.relbase_valid || lib) {
char dir[FILE_MAX], file[FILE_MAX]; /* we dont want the dir, only the file */
-
- BLI_split_dirfile(G.sce, dir, file);
+ char *blendfilename;
+
+ blendfilename= (lib)? lib->filename: G.sce;
+
+ BLI_split_dirfile(blendfilename, dir, file);
i = strlen(file);
/* remove .blend */
if (i > 6)
file[i-6] = '\0';
- sprintf(filename, "//"PTCACHE_PATH"%s/", file); /* add blend file name to pointcache dir */
- BLI_convertstringcode(filename, G.sce, 0);
+ sprintf(filename, "//"PTCACHE_PATH"%s", file); /* add blend file name to pointcache dir */
+ BLI_add_slash(filename);
+ BLI_convertstringcode(filename, blendfilename, 0);
return strlen(filename);
}
/* use the temp path. this is weak but better then not using point cache at all */
/* btempdir is assumed to exist and ALWAYS has a trailing slash */
- return sprintf(filename, "%s"PTCACHE_PATH"%d/", btempdir, abs(getpid()));
+ sprintf(filename, "%s"PTCACHE_PATH"%d", btempdir, abs(getpid()));
+ BLI_add_slash(filename);
+ return strlen(filename);
}
-int BKE_ptcache_id_filename(struct ID *id, char *filename, int cfra, int stack_index, short do_path, short do_ext)
+static int BKE_ptcache_id_filename(PTCacheID *pid, char *filename, int cfra, short do_path, short do_ext)
{
int len=0;
char *idname;
@@ -99,10 +209,10 @@ int BKE_ptcache_id_filename(struct ID *id, char *filename, int cfra, int stack_i
/* start with temp dir */
if (do_path) {
- len = ptcache_path(filename);
+ len = ptcache_path(pid, filename);
newname += len;
}
- idname = (id->name+2);
+ idname = (pid->ob->id.name+2);
/* convert chars to hex so they are always a valid filename */
while('\0' != *idname) {
sprintf(newname, "%02X", (char)(*idname++));
@@ -111,7 +221,7 @@ int BKE_ptcache_id_filename(struct ID *id, char *filename, int cfra, int stack_i
}
if (do_ext) {
- sprintf(newname, "_%06d_%02d"PTCACHE_EXT, cfra, stack_index); /* always 6 chars */
+ sprintf(newname, "_%06d_%02d"PTCACHE_EXT, cfra, pid->stack_index); /* always 6 chars */
len += 16;
}
@@ -119,31 +229,53 @@ int BKE_ptcache_id_filename(struct ID *id, char *filename, int cfra, int stack_i
}
/* youll need to close yourself after! */
-FILE *BKE_ptcache_id_fopen(struct ID *id, char mode, int cfra, int stack_index)
+PTCacheFile *BKE_ptcache_file_open(PTCacheID *pid, int mode, int cfra)
{
- /* mode is same as fopen's modes */
+ PTCacheFile *pf;
FILE *fp = NULL;
char filename[(FILE_MAXDIR+FILE_MAXFILE)*2];
+ /* don't allow writing for linked objects */
+ if(pid->ob->id.lib && mode == PTCACHE_FILE_WRITE)
+ return NULL;
+
/*if (!G.relbase_valid) return NULL; *//* save blend file before using pointcache */
- BKE_ptcache_id_filename(id, filename, cfra, stack_index, 1, 1);
+ BKE_ptcache_id_filename(pid, filename, cfra, 1, 1);
- if (mode=='r') {
+ if (mode==PTCACHE_FILE_READ) {
if (!BLI_exists(filename)) {
return NULL;
}
fp = fopen(filename, "rb");
- } else if (mode=='w') {
+ } else if (mode==PTCACHE_FILE_WRITE) {
BLI_make_existing_file(filename); /* will create the dir if needs be, same as //textures is created */
fp = fopen(filename, "wb");
}
- if (!fp) {
+ if (!fp)
return NULL;
- }
+
+ pf= MEM_mallocN(sizeof(PTCacheFile), "PTCacheFile");
+ pf->fp= fp;
- return fp;
+ return pf;
+}
+
+void BKE_ptcache_file_close(PTCacheFile *pf)
+{
+ fclose(pf->fp);
+ MEM_freeN(pf);
+}
+
+int BKE_ptcache_file_read_floats(PTCacheFile *pf, float *f, int tot)
+{
+ return (fread(f, sizeof(float), tot, pf->fp) == tot);
+}
+
+int BKE_ptcache_file_write_floats(PTCacheFile *pf, float *f, int tot)
+{
+ return (fwrite(f, sizeof(float), tot, pf->fp) == tot);
}
/* youll need to close yourself after!
@@ -151,7 +283,7 @@ FILE *BKE_ptcache_id_fopen(struct ID *id, char mode, int cfra, int stack_index)
*/
-void BKE_ptcache_id_clear(struct ID *id, char mode, int cfra, int stack_index)
+void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra)
{
int len; /* store the length of the string */
@@ -161,7 +293,14 @@ void BKE_ptcache_id_clear(struct ID *id, char mode, int cfra, int stack_index)
char path[FILE_MAX];
char filename[(FILE_MAXDIR+FILE_MAXFILE)*2];
char path_full[(FILE_MAXDIR+FILE_MAXFILE)*2];
-
+
+ if(!pid->cache)
+ return;
+
+ /* don't allow clearing for linked objects */
+ if(pid->ob->id.lib)
+ return;
+
/*if (!G.relbase_valid) return; *//* save blend file before using pointcache */
/* clear all files in the temp dir with the prefix of the ID and the ".bphys" suffix */
@@ -169,9 +308,9 @@ void BKE_ptcache_id_clear(struct ID *id, char mode, int cfra, int stack_index)
case PTCACHE_CLEAR_ALL:
case PTCACHE_CLEAR_BEFORE:
case PTCACHE_CLEAR_AFTER:
- ptcache_path(path);
+ ptcache_path(pid, path);
- len = BKE_ptcache_id_filename(id, filename, cfra, stack_index, 0, 0); /* no path */
+ len = BKE_ptcache_id_filename(pid, filename, cfra, 0, 0); /* no path */
dir = opendir(path);
if (dir==NULL)
@@ -206,22 +345,149 @@ void BKE_ptcache_id_clear(struct ID *id, char mode, int cfra, int stack_index)
break;
case PTCACHE_CLEAR_FRAME:
- len = BKE_ptcache_id_filename(id, filename, cfra, stack_index, 1, 1); /* no path */
+ len = BKE_ptcache_id_filename(pid, filename, cfra, 1, 1); /* no path */
BLI_delete(filename, 0, 0);
break;
}
- return;
}
-int BKE_ptcache_id_exist(struct ID *id, int cfra, int stack_index)
+int BKE_ptcache_id_exist(PTCacheID *pid, int cfra)
{
char filename[(FILE_MAXDIR+FILE_MAXFILE)*2];
+
+ if(!pid->cache)
+ return 0;
- BKE_ptcache_id_filename(id, filename, cfra, stack_index, 1, 1);
+ BKE_ptcache_id_filename(pid, filename, cfra, 1, 1);
return BLI_exists(filename);
}
+void BKE_ptcache_id_time(PTCacheID *pid, float cfra, int *startframe, int *endframe, float *timescale)
+{
+ Object *ob;
+ PointCache *cache;
+ float offset, time, nexttime;
+
+ /* time handling for point cache:
+ * - simulation time is scaled by result of bsystem_time
+ * - for offsetting time only time offset is taken into account, since
+ * that's always the same and can't be animated. a timeoffset which
+ * varies over time is not simpe to support.
+ * - field and motion blur offsets are currently ignored, proper solution
+ * is probably to interpolate results from two frames for that ..
+ */
+
+ ob= pid->ob;
+ cache= pid->cache;
+
+ if(timescale) {
+ time= bsystem_time(ob, cfra, 0.0f);
+ nexttime= bsystem_time(ob, cfra+1.0f, 0.0f);
+
+ *timescale= MAX2(nexttime - time, 0.0f);
+ }
+
+ if(startframe && endframe) {
+ *startframe= cache->startframe;
+ *endframe= cache->endframe;
+
+ if ((ob->ipoflag & OB_OFFS_PARENT) && (ob->partype & PARSLOW)==0) {
+ offset= give_timeoffset(ob);
+
+ *startframe += (int)(offset+0.5f);
+ *endframe += (int)(offset+0.5f);
+ }
+ }
+}
+
+int BKE_ptcache_id_reset(PTCacheID *pid, int mode)
+{
+ PointCache *cache;
+ int reset, clear;
+
+ if(!pid->cache)
+ return 0;
+
+ cache= pid->cache;
+ reset= 0;
+ clear= 0;
+
+ if(mode == PTCACHE_RESET_DEPSGRAPH) {
+ if(!(cache->flag & PTCACHE_BAKED) && !BKE_ptcache_get_continue_physics()) {
+ reset= 1;
+ clear= 1;
+ }
+ else
+ cache->flag |= PTCACHE_OUTDATED;
+ }
+ else if(mode == PTCACHE_RESET_BAKED) {
+ if(!BKE_ptcache_get_continue_physics()) {
+ reset= 1;
+ clear= 1;
+ }
+ else
+ cache->flag |= PTCACHE_OUTDATED;
+ }
+ else if(mode == PTCACHE_RESET_OUTDATED) {
+ reset = 1;
+
+ if(cache->flag & PTCACHE_OUTDATED)
+ if(!(cache->flag & PTCACHE_BAKED))
+ clear= 1;
+ }
+
+ if(reset) {
+ cache->flag &= ~(PTCACHE_OUTDATED|PTCACHE_SIMULATION_VALID);
+ cache->simframe= 0;
+
+ if(pid->type == PTCACHE_TYPE_CLOTH)
+ cloth_free_modifier(pid->ob, pid->data);
+ else if(pid->type == PTCACHE_TYPE_SOFTBODY)
+ sbFreeSimulation(pid->data);
+ else if(pid->type == PTCACHE_TYPE_PARTICLES)
+ psys_reset(pid->data, PSYS_RESET_DEPSGRAPH);
+ }
+ if(clear)
+ BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_ALL, 0);
+
+ return (reset || clear);
+}
+
+int BKE_ptcache_object_reset(Object *ob, int mode)
+{
+ PTCacheID pid;
+ ParticleSystem *psys;
+ ModifierData *md;
+ int reset;
+
+ reset= 0;
+
+ if(ob->soft) {
+ BKE_ptcache_id_from_softbody(&pid, ob, ob->soft);
+ reset |= BKE_ptcache_id_reset(&pid, mode);
+ }
+
+ for(psys=ob->particlesystem.first; psys; psys=psys->next) {
+ BKE_ptcache_id_from_particles(&pid, ob, psys);
+ reset |= BKE_ptcache_id_reset(&pid, mode);
+
+ if(psys->soft) {
+ BKE_ptcache_id_from_softbody(&pid, ob, psys->soft);
+ reset |= BKE_ptcache_id_reset(&pid, mode);
+ }
+ }
+
+ for(md=ob->modifiers.first; md; md=md->next) {
+ if(md->type == eModifierType_Cloth) {
+ BKE_ptcache_id_from_cloth(&pid, ob, (ClothModifierData*)md);
+ reset |= BKE_ptcache_id_reset(&pid, mode);
+ }
+ }
+
+ return reset;
+}
+
/* Use this when quitting blender, with unsaved files */
void BKE_ptcache_remove(void)
{
@@ -229,15 +495,14 @@ void BKE_ptcache_remove(void)
char path_full[FILE_MAX];
int rmdir = 1;
- ptcache_path(path);
+ ptcache_path(NULL, path);
- if (BLI_exists(path)) {
- /* TODO, Check with win32, probably needs last slash removed */
+ if (BLI_exist(path)) {
/* The pointcache dir exists? - remove all pointcache */
DIR *dir;
struct dirent *de;
-
+
dir = opendir(path);
if (dir==NULL)
return;
@@ -252,6 +517,8 @@ void BKE_ptcache_remove(void)
rmdir = 0; /* unknown file, dont remove the dir */
}
}
+
+ closedir(dir);
} else {
rmdir = 0; /* path dosnt exist */
}
@@ -260,3 +527,58 @@ void BKE_ptcache_remove(void)
BLI_delete(path, 1, 0);
}
}
+
+/* Continuous Interaction */
+
+static int CONTINUE_PHYSICS = 0;
+
+void BKE_ptcache_set_continue_physics(int enable)
+{
+ Object *ob;
+
+ if(CONTINUE_PHYSICS != enable) {
+ CONTINUE_PHYSICS = enable;
+
+ if(CONTINUE_PHYSICS == 0) {
+ for(ob=G.main->object.first; ob; ob=ob->id.next)
+ if(BKE_ptcache_object_reset(ob, PTCACHE_RESET_OUTDATED))
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
+ }
+ }
+}
+
+int BKE_ptcache_get_continue_physics()
+{
+ return CONTINUE_PHYSICS;
+}
+
+/* Point Cache */
+
+PointCache *BKE_ptcache_add()
+{
+ PointCache *cache;
+
+ cache= MEM_callocN(sizeof(PointCache), "PointCache");
+ cache->startframe= 1;
+ cache->endframe= 250;
+
+ return cache;
+}
+
+void BKE_ptcache_free(PointCache *cache)
+{
+ MEM_freeN(cache);
+}
+
+PointCache *BKE_ptcache_copy(PointCache *cache)
+{
+ PointCache *ncache;
+
+ ncache= MEM_dupallocN(cache);
+
+ ncache->flag= 0;
+ ncache->simframe= 0;
+
+ return ncache;
+}
+
diff --git a/source/blender/blenkernel/intern/property.c b/source/blender/blenkernel/intern/property.c
index a60c03c4840..f55bdd15279 100644
--- a/source/blender/blenkernel/intern/property.c
+++ b/source/blender/blenkernel/intern/property.c
@@ -4,15 +4,12 @@
* ton roosendaal
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/blenkernel/intern/sca.c b/source/blender/blenkernel/intern/sca.c
index 88afa8d5e61..86e395b3770 100644
--- a/source/blender/blenkernel/intern/sca.c
+++ b/source/blender/blenkernel/intern/sca.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* these all are linked to objects (listbase)
* all data is 'direct data', not Blender lib data.
*/
@@ -464,6 +461,9 @@ void init_actuator(bActuator *act)
case ACT_2DFILTER:
act->data = MEM_callocN(sizeof( bTwoDFilterActuator ), "2d filter act");
break;
+ case ACT_PARENT:
+ act->data = MEM_callocN(sizeof( bParentActuator ), "parent act");
+ break;
default:
; /* this is very severe... I cannot make any memory for this */
/* logic brick... */
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 216ad101569..ed030dfad02 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
@@ -426,6 +423,9 @@ int next_object(int val, Base **base, Object **ob)
duplilist= object_duplilist(G.scene, (*base)->object);
dupob= duplilist->first;
+
+ if(!dupob)
+ free_object_duplilist(duplilist);
}
}
}
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c
index 5e8735147c3..7a45493e1f4 100644
--- a/source/blender/blenkernel/intern/screen.c
+++ b/source/blender/blenkernel/intern/screen.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/blenkernel/intern/script.c b/source/blender/blenkernel/intern/script.c
index 2836f5fd507..b93821da218 100644
--- a/source/blender/blenkernel/intern/script.c
+++ b/source/blender/blenkernel/intern/script.c
@@ -5,15 +5,12 @@
*
* Function(s) related to struct script management.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): Willian P. Germano.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BKE_script.h"
diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c
index 834e5fad3dd..768f5ff980e 100644
--- a/source/blender/blenkernel/intern/softbody.c
+++ b/source/blender/blenkernel/intern/softbody.c
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -2747,9 +2744,9 @@ static void springs_from_mesh(Object *ob)
}
/* recalculate spring length for meshes here */
- /* special hidden feature! shrink to fit */
- if (G.rt > 500){
- scale = (G.rt - 500) / 100.0f;
+ /* public version shrink to fit */
+ if (sb->springpreload != 0 ){
+ scale = sb->springpreload / 100.0f;
}
for(a=0; a<sb->totspring; a++) {
BodySpring *bs = &sb->bspring[a];
@@ -3219,95 +3216,66 @@ static void softbody_to_object(Object *ob, float (*vertexCos)[3], int numVerts,
}
}
-void softbody_clear_cache(Object *ob, float framenr)
+void sbWriteCache(Object *ob, int framenr)
{
- SoftBody *sb = ob->soft;
- ModifierData *md = ob->modifiers.first;
- int stack_index = -1;
- int a;
-
- if(sb==NULL) return;
-
- if(sb->particles)
- stack_index = modifiers_indexInObject(ob,(ModifierData*)psys_get_modifier(ob,sb->particles));
- else {
- for(a=0; md; md=md->next, a++) {
- if(md->type == eModifierType_Softbody) {
- stack_index = a;
- break;
- }
- }
- }
-
- BKE_ptcache_id_clear((ID *)ob, PTCACHE_CLEAR_ALL, framenr, stack_index);
-}
-static void softbody_write_cache(Object *ob, float framenr)
-{
- FILE *fp = NULL;
- SoftBody *sb = ob->soft;
+ SoftBody *sb= ob->soft;
BodyPoint *bp;
- ModifierData *md = ob->modifiers.first;
- int stack_index = -1;
+ PTCacheID pid;
+ PTCacheFile *pf;
int a;
- if(sb->totpoint == 0) return;
-
- if(sb->particles)
- stack_index = modifiers_indexInObject(ob,(ModifierData*)psys_get_modifier(ob,sb->particles));
- else {
- for(a=0; md; md=md->next, a++) {
- if(md->type == eModifierType_Softbody) {
- stack_index = a;
- break;
- }
- }
- }
+ if(sb->totpoint == 0)
+ return;
- fp = BKE_ptcache_id_fopen((ID *)ob, 'w', framenr, stack_index);
- if(!fp) return;
+ BKE_ptcache_id_from_softbody(&pid, ob, sb);
+ pf= BKE_ptcache_file_open(&pid, PTCACHE_FILE_WRITE, framenr);
+ if(!pf)
+ return;
+
+ for(a=0, bp=sb->bpoint; a<sb->totpoint; a++, bp++)
+ BKE_ptcache_file_write_floats(pf, bp->pos, 3);
for(a=0, bp=sb->bpoint; a<sb->totpoint; a++, bp++)
- fwrite(&bp->pos, sizeof(float), 3, fp);
-
- fclose(fp);
+ BKE_ptcache_file_write_floats(pf, bp->vec, 3);
+
+ BKE_ptcache_file_close(pf);
}
+
static int softbody_read_cache(Object *ob, float framenr)
{
- FILE *fp = NULL;
- SoftBody *sb = ob->soft;
+ SoftBody *sb= ob->soft;
BodyPoint *bp;
- ModifierData *md = ob->modifiers.first;
- int stack_index = -1;
- int a, ret = 1;
+ PTCacheID pid;
+ PTCacheFile *pf;
+ int a;
- if(sb->totpoint == 0) return 0;
+ if(sb->totpoint == 0)
+ return 0;
+
+ BKE_ptcache_id_from_softbody(&pid, ob, sb);
+ pf= BKE_ptcache_file_open(&pid, PTCACHE_FILE_READ, framenr);
+ if(!pf)
+ return 0;
- if(sb->particles)
- stack_index = modifiers_indexInObject(ob,(ModifierData*)psys_get_modifier(ob,sb->particles));
- else {
- for(a=0; md; md=md->next, a++) {
- if(md->type == eModifierType_Softbody) {
- stack_index = a;
- break;
- }
+ for(a=0, bp=sb->bpoint; a<sb->totpoint; a++, bp++) {
+ if(!BKE_ptcache_file_read_floats(pf, bp->pos, 3)) {
+ BKE_ptcache_file_close(pf);
+ return 0;
}
}
- fp = BKE_ptcache_id_fopen((ID *)ob, 'r', framenr, stack_index);
- if(!fp)
- ret = 0;
- else {
- for(a=0, bp=sb->bpoint; a<sb->totpoint; a++, bp++)
- if(fread(&bp->pos, sizeof(float), 3, fp) != 3) {
- ret = 0;
- break;
- }
-
- fclose(fp);
+ for(a=0, bp=sb->bpoint; a<sb->totpoint; a++, bp++) {
+ if(!BKE_ptcache_file_read_floats(pf, bp->vec, 3)) {
+ BKE_ptcache_file_close(pf);
+ return 0;
+ }
}
- return ret;
+ BKE_ptcache_file_close(pf);
+
+ return 1;
}
+
/* +++ ************ maintaining scratch *************** */
void sb_new_scratch(SoftBody *sb)
{
@@ -3366,6 +3334,9 @@ SoftBody *sbNew(void)
/*todo backward file compat should set sb->shearstiff = 1.0f while reading old files*/
sb->shearstiff = 1.0f;
sb->solverflags |= SBSO_OLDERR;
+
+ sb->pointcache = BKE_ptcache_add();
+
return sb;
}
@@ -3373,14 +3344,19 @@ SoftBody *sbNew(void)
void sbFree(SoftBody *sb)
{
free_softbody_intern(sb);
+ BKE_ptcache_free(sb->pointcache);
MEM_freeN(sb);
}
+void sbFreeSimulation(SoftBody *sb)
+{
+ free_softbody_intern(sb);
+}
/* makes totally fresh start situation */
void sbObjectToSoftbody(Object *ob)
{
- ob->softflag |= OB_SB_REDO;
+ //ob->softflag |= OB_SB_REDO;
free_softbody_intern(ob->soft);
}
@@ -3404,323 +3380,406 @@ void sbSetInterruptCallBack(int (*f)(void))
SB_localInterruptCallBack = f;
}
-
-/* simulates one step. framenr is in frames */
-void sbObjectStep(Object *ob, float framenr, float (*vertexCos)[3], int numVerts)
+static void softbody_update_positions(Object *ob, SoftBody *sb, float (*vertexCos)[3], int numVerts)
{
- ParticleSystemModifierData *psmd=0;
- ParticleData *pa=0;
- SoftBody *sb;
+ ParticleSystemModifierData *psmd= NULL;
+ ParticleData *pa= NULL;
HairKey *key= NULL;
BodyPoint *bp;
+ float hairmat[4][4];
int a;
- float dtime,ctime,forcetime;
+
+ /* update the vertex locations */
+ if(sb->particles) {
+ psmd= psys_get_modifier(ob,sb->particles);
+ pa= sb->particles->particles;
+ key= pa->hair;
+
+ psys_mat_hair_to_global(ob, psmd->dm, sb->particles->part->from, pa, hairmat);
+ }
+
+ for(a=0,bp=sb->bpoint; a<numVerts; a++, bp++) {
+ /* store where goals are now */
+ VECCOPY(bp->origS, bp->origE);
+ /* copy the position of the goals at desired end time */
+ if(sb->particles) {
+ if(key == pa->hair + pa->totkey) {
+ pa++;
+ key = pa->hair;
+
+ psys_mat_hair_to_global(ob, psmd->dm, sb->particles->part->from, pa, hairmat);
+ }
+ VECCOPY(bp->origE, key->co);
+ Mat4MulVecfl(hairmat,bp->origE);
+
+ key++;
+ }
+ else{
+ VECCOPY(bp->origE, vertexCos[a]);
+ /* vertexCos came from local world, go global */
+ Mat4MulVecfl(ob->obmat, bp->origE);
+ }
+ /* just to be save give bp->origT a defined value
+ will be calulated in interpolate_exciter()*/
+ VECCOPY(bp->origT, bp->origE);
+ }
+}
+
+static void softbody_reset(Object *ob, SoftBody *sb, float (*vertexCos)[3], int numVerts)
+{
+ ParticleSystemModifierData *psmd= NULL;
+ HairKey *key= NULL;
+ ParticleData *pa= NULL;
+ BodyPoint *bp;
float hairmat[4][4];
+ int a;
- /* This part only sets goals and springs, based on original mesh/curve/lattice data.
- Copying coordinates happens in next chunk by setting softbody flag OB_SB_RESET */
- /* remake softbody if: */
- if( (ob->softflag & OB_SB_REDO) || /* signal after weightpainting */
- (ob->soft==NULL) || /* just to be nice we allow full init */
- (ob->soft->bpoint==NULL) || /* after reading new file, or acceptable as signal to refresh */
- (numVerts!=ob->soft->totpoint) || /* should never happen, just to be safe */
- ((ob->softflag & OB_SB_EDGES) && !ob->soft->bspring && object_has_edges(ob))) /* happens when in UI edges was set */
- {
- if(ob->soft && ob->soft->bpoint) /* don't clear on file load */
- softbody_clear_cache(ob, framenr);
+ if(sb->particles) {
+ psmd= psys_get_modifier(ob, sb->particles);
+ pa= sb->particles->particles;
+ key= pa->hair;
- if(ob->soft->particles){
- particles_to_softbody(ob);
+ psys_mat_hair_to_global(ob, psmd->dm, sb->particles->part->from, pa, hairmat);
+ }
+
+ for(a=0,bp=sb->bpoint; a<numVerts; a++, bp++) {
+ if(sb->particles) {
+ if(key == pa->hair + pa->totkey) {
+ pa++;
+ key = pa->hair;
+
+ psys_mat_hair_to_global(ob, psmd->dm, sb->particles->part->from, pa, hairmat);
+ }
+ VECCOPY(bp->pos, key->co);
+ Mat4MulVecfl(hairmat, bp->pos);
+ key++;
+ }
+ else {
+ VECCOPY(bp->pos, vertexCos[a]);
+ Mat4MulVecfl(ob->obmat, bp->pos); /* yep, sofbody is global coords*/
}
- else switch(ob->type) {
+ VECCOPY(bp->origS, bp->pos);
+ VECCOPY(bp->origE, bp->pos);
+ VECCOPY(bp->origT, bp->pos);
+ bp->vec[0]= bp->vec[1]= bp->vec[2]= 0.0f;
+
+ /* the bp->prev*'s are for rolling back from a canceled try to propagate in time
+ adaptive step size algo in a nutshell:
+ 1. set sheduled time step to new dtime
+ 2. try to advance the sheduled time step, beeing optimistic execute it
+ 3. check for success
+ 3.a we 're fine continue, may be we can increase sheduled time again ?? if so, do so!
+ 3.b we did exceed error limit --> roll back, shorten the sheduled time and try again at 2.
+ 4. check if we did reach dtime
+ 4.a nope we need to do some more at 2.
+ 4.b yup we're done
+ */
+
+ VECCOPY(bp->prevpos, bp->pos);
+ VECCOPY(bp->prevvec, bp->vec);
+ VECCOPY(bp->prevdx, bp->vec);
+ VECCOPY(bp->prevdv, bp->vec);
+ }
+
+ /* make a nice clean scratch struc */
+ free_scratch(sb); /* clear if any */
+ sb_new_scratch(sb); /* make a new */
+ sb->scratch->needstobuildcollider=1;
+
+ if((sb->particles)==0) {
+ /* copy some info to scratch */
+ switch(ob->type) {
case OB_MESH:
- mesh_to_softbody(ob);
+ if (ob->softflag & OB_SB_FACECOLL) mesh_faces_to_scratch(ob);
break;
case OB_LATTICE:
- lattice_to_softbody(ob);
break;
case OB_CURVE:
case OB_SURF:
- curve_surf_to_softbody(ob);
break;
default:
- renew_softbody(ob, numVerts, 0);
break;
}
-
- /* still need to update to correct vertex locations, happens on next step */
- ob->softflag |= OB_SB_RESET;
- ob->softflag &= ~OB_SB_REDO;
}
+}
- sb= ob->soft;
+static void softbody_step(Object *ob, SoftBody *sb, float dtime)
+{
+ /* the simulator */
+ float forcetime;
+ double sct,sst=PIL_check_seconds_timer();
+ ccd_update_deflector_hache(ob,sb->scratch->colliderhash);
- /* still no points? go away */
- if(sb->totpoint==0) return;
+ if(sb->scratch->needstobuildcollider){
+ if (query_external_colliders(ob)){
+ ccd_build_deflector_hache(ob,sb->scratch->colliderhash);
+ }
+ sb->scratch->needstobuildcollider=0;
+ }
+
+ if (sb->solver_ID < 2) {
+ /* special case of 2nd order Runge-Kutta type AKA Heun */
+ int mid_flags=0;
+ float err = 0;
+ float forcetimemax = 1.0f;
+ float forcetimemin = 0.001f;
+ float timedone =0.0; /* how far did we get without violating error condition */
+ /* loops = counter for emergency brake
+ * we don't want to lock up the system if physics fail
+ */
+ int loops =0 ;
+ SoftHeunTol = sb->rklimit; /* humm .. this should be calculated from sb parameters and sizes */
+ if (sb->minloops > 0) forcetimemax = 1.0f / sb->minloops;
+
+ if (sb->maxloops > 0) forcetimemin = 1.0f / sb->maxloops;
+
+ if(sb->solver_ID>0) mid_flags |= MID_PRESERVE;
+
+ //forcetime = dtime; /* hope for integrating in one step */
+ forcetime =forcetimemax; /* hope for integrating in one step */
+ while ( (ABS(timedone) < ABS(dtime)) && (loops < 2000) )
+ {
+ /* set goals in time */
+ interpolate_exciter(ob,200,(int)(200.0*(timedone/dtime)));
+
+ sb->scratch->flag &= ~SBF_DOFUZZY;
+ /* do predictive euler step */
+ softbody_calc_forces(ob, forcetime,timedone/dtime,0);
+ softbody_apply_forces(ob, forcetime, 1, NULL,mid_flags);
- if(sb->particles){
- psmd=psys_get_modifier(ob,sb->particles);
- pa=sb->particles->particles;
- }
- /* checking time: */
+ /* crop new slope values to do averaged slope step */
+ softbody_calc_forces(ob, forcetime,timedone/dtime,0);
+ softbody_apply_forces(ob, forcetime, 2, &err,mid_flags);
- ctime= bsystem_time(ob, framenr, 0.0);
+ softbody_apply_goalsnap(ob);
+
+ if (err > SoftHeunTol) { /* error needs to be scaled to some quantity */
+
+ if (forcetime > forcetimemin){
+ forcetime = MAX2(forcetime / 2.0f,forcetimemin);
+ softbody_restore_prev_step(ob);
+ //printf("down,");
+ }
+ else {
+ timedone += forcetime;
+ }
+ }
+ else {
+ float newtime = forcetime * 1.1f; /* hope for 1.1 times better conditions in next step */
+
+ if (sb->scratch->flag & SBF_DOFUZZY){
+ //if (err > SoftHeunTol/(2.0f*sb->fuzzyness)) { /* stay with this stepsize unless err really small */
+ newtime = forcetime;
+ //}
+ }
+ else {
+ if (err > SoftHeunTol/2.0f) { /* stay with this stepsize unless err really small */
+ newtime = forcetime;
+ }
+ }
+ timedone += forcetime;
+ newtime=MIN2(forcetimemax,MAX2(newtime,forcetimemin));
+ //if (newtime > forcetime) printf("up,");
+ if (forcetime > 0.0)
+ forcetime = MIN2(dtime - timedone,newtime);
+ else
+ forcetime = MAX2(dtime - timedone,newtime);
+ }
+ loops++;
+ if(sb->solverflags & SBSO_MONITOR ){
+ sct=PIL_check_seconds_timer();
+ if (sct-sst > 0.5f) printf("%3.0f%% \r",100.0f*timedone);
+ }
+ /* ask for user break */
+ if (SB_localInterruptCallBack && SB_localInterruptCallBack()) break;
- if (ob->softflag&OB_SB_RESET) {
- dtime = 0.0;
- } else {
- dtime= ctime - sb->ctime;
+ }
+ /* move snapped to final position */
+ interpolate_exciter(ob, 2, 2);
+ softbody_apply_goalsnap(ob);
+
+ // if(G.f & G_DEBUG){
+ if(sb->solverflags & SBSO_MONITOR ){
+ if (loops > HEUNWARNLIMIT) /* monitor high loop counts */
+ printf("\r needed %d steps/frame ",loops);
+ }
+
}
+ else if (sb->solver_ID == 2)
+ {/* do semi "fake" implicit euler */
+ //removed
+ }/*SOLVER SELECT*/
+ else if (sb->solver_ID == 4)
+ {
+ /* do semi "fake" implicit euler */
+ }/*SOLVER SELECT*/
+ else if (sb->solver_ID == 3){
+ /* do "stupid" semi "fake" implicit euler */
+ //removed
- if(softbody_read_cache(ob, framenr)) {
- if(sb->particles==0)
- softbody_to_object(ob, vertexCos, numVerts, sb->local);
- sb->ctime = ctime;
- return;
+ }/*SOLVER SELECT*/
+ else{
+ printf("softbody no valid solver ID!");
+ }/*SOLVER SELECT*/
+ if(sb->plastic){ apply_spring_memory(ob);}
+
+ if(sb->solverflags & SBSO_MONITOR ){
+ sct=PIL_check_seconds_timer();
+ if (sct-sst > 0.5f) printf(" solver time %f %s \r",sct-sst,ob->id.name);
}
+}
- /* the simulator */
+/* simulates one step. framenr is in frames */
+void sbObjectStep(Object *ob, float cfra, float (*vertexCos)[3], int numVerts)
+{
+ ParticleSystemModifierData *psmd=0;
+ ParticleData *pa=0;
+ SoftBody *sb= ob->soft;
+ PointCache *cache;
+ PTCacheID pid;
+ float dtime, timescale;
+ int framedelta, framenr, startframe, endframe;
- /* update the vertex locations */
- if (dtime!=0.0) {
- if(sb->particles) {
- pa=sb->particles->particles;
- key = pa->hair;
+ cache= sb->pointcache;
- psys_mat_hair_to_global(ob, psmd->dm, sb->particles->part->from, pa, hairmat);
- }
+ framenr= (int)cfra;
+ framedelta= framenr - cache->simframe;
- for(a=0,bp=sb->bpoint; a<numVerts; a++, bp++) {
- /* store where goals are now */
- VECCOPY(bp->origS, bp->origE);
- /* copy the position of the goals at desired end time */
- if(sb->particles) {
- if(key == pa->hair + pa->totkey) {
- pa++;
- key = pa->hair;
+ BKE_ptcache_id_from_softbody(&pid, ob, sb);
+ BKE_ptcache_id_time(&pid, framenr, &startframe, &endframe, &timescale);
- psys_mat_hair_to_global(ob, psmd->dm, sb->particles->part->from, pa, hairmat);
- }
- VECCOPY(bp->origE, key->co);
- Mat4MulVecfl(hairmat,bp->origE);
+ /* check for changes in mesh, should only happen in case the mesh
+ * structure changes during an animation */
+ if(sb->bpoint && numVerts != sb->totpoint) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
- key++;
- }
- else{
- VECCOPY(bp->origE, vertexCos[a]);
- /* vertexCos came from local world, go global */
- Mat4MulVecfl(ob->obmat, bp->origE);
- }
- /* just to be save give bp->origT a defined value
- will be calulated in interpolate_exciter()*/
- VECCOPY(bp->origT, bp->origE);
- }
+ return;
}
- if((ob->softflag&OB_SB_RESET) || /* got a reset signal */
- (dtime<0.0) || /* back in time */
- (dtime>=9.9*G.scene->r.framelen) /* too far forward in time --> goals won't be accurate enough */
- )
- {
- if(sb->particles) {
- pa=sb->particles->particles;
- key = pa->hair;
+ /* clamp frame ranges */
+ if(framenr < startframe) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
- psys_mat_hair_to_global(ob, psmd->dm, sb->particles->part->from, pa, hairmat);
- }
-
- for(a=0,bp=sb->bpoint; a<numVerts; a++, bp++) {
- if(sb->particles) {
- if(key == pa->hair + pa->totkey) {
- pa++;
- key = pa->hair;
+ return;
+ }
+ else if(framenr > endframe) {
+ framenr = endframe;
+ }
- psys_mat_hair_to_global(ob, psmd->dm, sb->particles->part->from, pa, hairmat);
- }
- VECCOPY(bp->pos, key->co);
- Mat4MulVecfl(hairmat, bp->pos);
- key++;
- }
- else {
- VECCOPY(bp->pos, vertexCos[a]);
- Mat4MulVecfl(ob->obmat, bp->pos); /* yep, sofbody is global coords*/
- }
- VECCOPY(bp->origS, bp->pos);
- VECCOPY(bp->origE, bp->pos);
- VECCOPY(bp->origT, bp->pos);
- bp->vec[0]= bp->vec[1]= bp->vec[2]= 0.0f;
-
- /* the bp->prev*'s are for rolling back from a canceled try to propagate in time
- adaptive step size algo in a nutshell:
- 1. set sheduled time step to new dtime
- 2. try to advance the sheduled time step, beeing optimistic execute it
- 3. check for success
- 3.a we 're fine continue, may be we can increase sheduled time again ?? if so, do so!
- 3.b we did exceed error limit --> roll back, shorten the sheduled time and try again at 2.
- 4. check if we did reach dtime
- 4.a nope we need to do some more at 2.
- 4.b yup we're done
- */
+ /* verify if we need to create the softbody data */
+ if(sb->bpoint == NULL ||
+ ((ob->softflag & OB_SB_EDGES) && !ob->soft->bspring && object_has_edges(ob))) {
- VECCOPY(bp->prevpos, bp->pos);
- VECCOPY(bp->prevvec, bp->vec);
- VECCOPY(bp->prevdx, bp->vec);
- VECCOPY(bp->prevdv, bp->vec);
+ if(sb->particles){
+ particles_to_softbody(ob);
}
- /* make a nice clean scratch struc */
- free_scratch(sb); /* clear if any */
- sb_new_scratch(sb); /* make a new */
- sb->scratch->needstobuildcollider=1;
-
- if((sb->particles)==0) {
- /* copy some info to scratch */
+ else {
switch(ob->type) {
- case OB_MESH:
- if (ob->softflag & OB_SB_FACECOLL) mesh_faces_to_scratch(ob);
- break;
- case OB_LATTICE:
- break;
- case OB_CURVE:
- case OB_SURF:
- break;
- default:
- break;
+ case OB_MESH:
+ mesh_to_softbody(ob);
+ break;
+ case OB_LATTICE:
+ lattice_to_softbody(ob);
+ break;
+ case OB_CURVE:
+ case OB_SURF:
+ curve_surf_to_softbody(ob);
+ break;
+ default:
+ renew_softbody(ob, numVerts, 0);
+ break;
}
}
- ob->softflag &= ~OB_SB_RESET;
+ softbody_update_positions(ob, sb, vertexCos, numVerts);
+ softbody_reset(ob, sb, vertexCos, numVerts);
}
- else if(dtime>0.0) {
- double sct,sst=PIL_check_seconds_timer();
- ccd_update_deflector_hache(ob,sb->scratch->colliderhash);
+ /* continue physics special case */
+ if(BKE_ptcache_get_continue_physics()) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
- if(sb->scratch->needstobuildcollider){
- if (query_external_colliders(ob)){
- ccd_build_deflector_hache(ob,sb->scratch->colliderhash);
- }
- sb->scratch->needstobuildcollider=0;
- }
+ /* do simulation */
+ dtime = timescale;
+ softbody_update_positions(ob, sb, vertexCos, numVerts);
+ softbody_step(ob, sb, dtime);
- if (sb->solver_ID < 2) {
- /* special case of 2nd order Runge-Kutta type AKA Heun */
- int mid_flags=0;
- float err = 0;
- float forcetimemax = 1.0f;
- float forcetimemin = 0.001f;
- float timedone =0.0; /* how far did we get without violating error condition */
- /* loops = counter for emergency brake
- * we don't want to lock up the system if physics fail
- */
- int loops =0 ;
- SoftHeunTol = sb->rklimit; /* humm .. this should be calculated from sb parameters and sizes */
- if (sb->minloops > 0) forcetimemax = 1.0f / sb->minloops;
-
- if (sb->maxloops > 0) forcetimemin = 1.0f / sb->maxloops;
+ if(sb->particles==0)
+ softbody_to_object(ob, vertexCos, numVerts, 0);
- if(sb->solver_ID>0) mid_flags |= MID_PRESERVE;
-
- //forcetime = dtime; /* hope for integrating in one step */
- forcetime =forcetimemax; /* hope for integrating in one step */
- while ( (ABS(timedone) < ABS(dtime)) && (loops < 2000) )
- {
- /* set goals in time */
- interpolate_exciter(ob,200,(int)(200.0*(timedone/dtime)));
-
- sb->scratch->flag &= ~SBF_DOFUZZY;
- /* do predictive euler step */
- softbody_calc_forces(ob, forcetime,timedone/dtime,0);
- softbody_apply_forces(ob, forcetime, 1, NULL,mid_flags);
+ return;
+ }
+ /* still no points? go away */
+ if(sb->totpoint==0) return;
- /* crop new slope values to do averaged slope step */
- softbody_calc_forces(ob, forcetime,timedone/dtime,0);
- softbody_apply_forces(ob, forcetime, 2, &err,mid_flags);
+ if(sb->particles){
+ psmd= psys_get_modifier(ob, sb->particles);
+ pa= sb->particles->particles;
+ }
- softbody_apply_goalsnap(ob);
-
- if (err > SoftHeunTol) { /* error needs to be scaled to some quantity */
-
- if (forcetime > forcetimemin){
- forcetime = MAX2(forcetime / 2.0f,forcetimemin);
- softbody_restore_prev_step(ob);
- //printf("down,");
- }
- else {
- timedone += forcetime;
- }
- }
- else {
- float newtime = forcetime * 1.1f; /* hope for 1.1 times better conditions in next step */
-
- if (sb->scratch->flag & SBF_DOFUZZY){
- //if (err > SoftHeunTol/(2.0f*sb->fuzzyness)) { /* stay with this stepsize unless err really small */
- newtime = forcetime;
- //}
- }
- else {
- if (err > SoftHeunTol/2.0f) { /* stay with this stepsize unless err really small */
- newtime = forcetime;
- }
- }
- timedone += forcetime;
- newtime=MIN2(forcetimemax,MAX2(newtime,forcetimemin));
- //if (newtime > forcetime) printf("up,");
- if (forcetime > 0.0)
- forcetime = MIN2(dtime - timedone,newtime);
- else
- forcetime = MAX2(dtime - timedone,newtime);
- }
- loops++;
- if(sb->solverflags & SBSO_MONITOR ){
- sct=PIL_check_seconds_timer();
- if (sct-sst > 0.5f) printf("%3.0f%% \r",100.0f*timedone);
- }
- /* ask for user break */
- if (SB_localInterruptCallBack && SB_localInterruptCallBack()) break;
+ /* try to read from cache */
+ if(softbody_read_cache(ob, framenr)) {
+ if(sb->particles==0)
+ softbody_to_object(ob, vertexCos, numVerts, sb->local);
- }
- /* move snapped to final position */
- interpolate_exciter(ob, 2, 2);
- softbody_apply_goalsnap(ob);
-
- // if(G.f & G_DEBUG){
- if(sb->solverflags & SBSO_MONITOR ){
- if (loops > HEUNWARNLIMIT) /* monitor high loop counts */
- printf("\r needed %d steps/frame ",loops);
- }
-
- }
- else if (sb->solver_ID == 2)
- {/* do semi "fake" implicit euler */
- //removed
- }/*SOLVER SELECT*/
- else if (sb->solver_ID == 4)
- {
- /* do semi "fake" implicit euler */
- }/*SOLVER SELECT*/
- else if (sb->solver_ID == 3){
- /* do "stupid" semi "fake" implicit euler */
- //removed
+ cache->flag |= PTCACHE_SIMULATION_VALID;
+ cache->simframe= framenr;
- }/*SOLVER SELECT*/
- else{
- printf("softbody no valid solver ID!");
- }/*SOLVER SELECT*/
- if(sb->plastic){ apply_spring_memory(ob);}
+ return;
+ }
+ else if(ob->id.lib || (cache->flag & PTCACHE_BAKED)) {
+ /* if baked and nothing in cache, do nothing */
+ if(cache->flag & PTCACHE_SIMULATION_VALID) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
+ }
- if(sb->solverflags & SBSO_MONITOR ){
- sct=PIL_check_seconds_timer();
- if (sct-sst > 0.5f) printf(" solver time %f %s \r",sct-sst,ob->id.name);
- }
+ return;
}
- if(sb->particles==0)
- softbody_to_object(ob, vertexCos, numVerts, 0);
- sb->ctime= ctime;
+ if(framenr == startframe) {
+ /* first frame, no simulation to do, just set the positions */
+ softbody_update_positions(ob, sb, vertexCos, numVerts);
- softbody_write_cache(ob, framenr);
+ cache->flag |= PTCACHE_SIMULATION_VALID;
+ cache->simframe= framenr;
+
+ /* don't write cache on first frame, but on second frame write
+ * cache for frame 1 and 2 */
+ }
+ else if(framedelta == 1) {
+ /* if on second frame, write cache for first frame */
+ if(framenr == startframe+1)
+ sbWriteCache(ob, startframe);
+
+ softbody_update_positions(ob, sb, vertexCos, numVerts);
+
+ /* do simulation */
+ cache->flag |= PTCACHE_SIMULATION_VALID;
+ cache->simframe= framenr;
+
+ /* checking time: */
+ dtime = framedelta*timescale;
+
+ softbody_step(ob, sb, dtime);
+
+ if(sb->particles==0)
+ softbody_to_object(ob, vertexCos, numVerts, 0);
+
+ sbWriteCache(ob, framenr);
+ }
+ else {
+ /* time step backwards or too large forward - do nothing */
+ if(cache->flag & PTCACHE_SIMULATION_VALID) {
+ cache->flag &= ~PTCACHE_SIMULATION_VALID;
+ cache->simframe= 0;
+ }
+ }
}
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 7a0c47237e7..bba79bd6d28 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -1910,7 +1907,6 @@ static void ccgDM_drawUVEdges(DerivedMesh *dm)
}
static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors) {
- GLubyte act_face_stipple[32*32/8] = DM_FACE_STIPPLE;
CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm;
CCGSubSurf *ss = ccgdm->ss;
CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss);
@@ -1935,7 +1931,7 @@ static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *u
if (draw) {
if (draw==2) {
glEnable(GL_POLYGON_STIPPLE);
- glPolygonStipple(act_face_stipple);
+ glPolygonStipple(stipple_quarttone);
}
for (S=0; S<numVerts; S++) {
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index c54ab3e82ab..e5959e81c28 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h> /* strstr */
diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c
index ab0aecdd363..37804bf68ac 100644
--- a/source/blender/blenkernel/intern/texture.c
+++ b/source/blender/blenkernel/intern/texture.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
@@ -129,7 +126,7 @@ void open_plugin_tex(PluginTex *pit)
if (version != 0) {
pit->version= version();
- if (pit->version>=2 && pit->version<=5) {
+ if( pit->version >= 2 && pit->version <=6) {
int (*info_func)(PluginInfo *);
PluginInfo *info= (PluginInfo*) MEM_mallocN(sizeof(PluginInfo), "plugin_info");
diff --git a/source/blender/blenkernel/intern/verse_bitmap_node.c b/source/blender/blenkernel/intern/verse_bitmap_node.c
index 5f2c48b5221..24295cd3ad0 100644
--- a/source/blender/blenkernel/intern/verse_bitmap_node.c
+++ b/source/blender/blenkernel/intern/verse_bitmap_node.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/blenkernel/intern/verse_geometry_node.c b/source/blender/blenkernel/intern/verse_geometry_node.c
index 613d4eadbec..010e42d5cb7 100644
--- a/source/blender/blenkernel/intern/verse_geometry_node.c
+++ b/source/blender/blenkernel/intern/verse_geometry_node.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/blenkernel/intern/verse_method.c b/source/blender/blenkernel/intern/verse_method.c
index 89b5282acfd..30886782019 100644
--- a/source/blender/blenkernel/intern/verse_method.c
+++ b/source/blender/blenkernel/intern/verse_method.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Nathan Letwory.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/blenkernel/intern/verse_node.c b/source/blender/blenkernel/intern/verse_node.c
index fd5a25598d3..1fe86f24d6e 100644
--- a/source/blender/blenkernel/intern/verse_node.c
+++ b/source/blender/blenkernel/intern/verse_node.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/blenkernel/intern/verse_object_node.c b/source/blender/blenkernel/intern/verse_object_node.c
index d8be38cd00f..89f9f0edcbd 100644
--- a/source/blender/blenkernel/intern/verse_object_node.c
+++ b/source/blender/blenkernel/intern/verse_object_node.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/blenkernel/intern/verse_session.c b/source/blender/blenkernel/intern/verse_session.c
index 1226fffd929..28a9ef85536 100644
--- a/source/blender/blenkernel/intern/verse_session.c
+++ b/source/blender/blenkernel/intern/verse_session.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c
index 8d3234475a4..814d6f8baf1 100644
--- a/source/blender/blenkernel/intern/world.c
+++ b/source/blender/blenkernel/intern/world.c
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c
index bd6859973b1..3d85fe32193 100644
--- a/source/blender/blenkernel/intern/writeavi.c
+++ b/source/blender/blenkernel/intern/writeavi.c
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): Robert Wenzlaff
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
index e4b9940d135..e645cbb97f4 100644
--- a/source/blender/blenkernel/intern/writeffmpeg.c
+++ b/source/blender/blenkernel/intern/writeffmpeg.c
@@ -220,6 +220,10 @@ static const char** get_file_extensions(int format)
static const char * rv[] = { ".avi", NULL };
return rv;
}
+ case FFMPEG_FLV: {
+ static const char * rv[] = { ".flv", NULL };
+ return rv;
+ }
default:
return NULL;
}
@@ -599,6 +603,9 @@ void start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty)
case FFMPEG_XVID:
fmt->video_codec = CODEC_ID_XVID;
break;
+ case FFMPEG_FLV:
+ fmt->video_codec = CODEC_ID_FLV1;
+ break;
case FFMPEG_MPEG4:
default:
fmt->video_codec = CODEC_ID_MPEG4;
diff --git a/source/blender/blenlib/BLI_arithb.h b/source/blender/blenlib/BLI_arithb.h
index 3055f62ae3d..5b4e380f88e 100644
--- a/source/blender/blenlib/BLI_arithb.h
+++ b/source/blender/blenlib/BLI_arithb.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* */
#ifndef BLI_ARITHB_H
diff --git a/source/blender/blenlib/BLI_blenlib.h b/source/blender/blenlib/BLI_blenlib.h
index 7d401cf2fc3..6c0e42fe42a 100644
--- a/source/blender/blenlib/BLI_blenlib.h
+++ b/source/blender/blenlib/BLI_blenlib.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* @mainpage BLI - Blender LIbrary external interface
*
@@ -299,7 +296,6 @@ int BLI_exist(char *name);
/* BLI_fileops.h */
void BLI_recurdir_fileops(char *dirname);
int BLI_link(char *file, char *to);
-int BLI_backup(char *file, char *from, char *to);
int BLI_is_writable(char *filename);
/**
diff --git a/source/blender/blenlib/BLI_boxpack2d.h b/source/blender/blenlib/BLI_boxpack2d.h
index 50b864df5f8..add0895a9b3 100644
--- a/source/blender/blenlib/BLI_boxpack2d.h
+++ b/source/blender/blenlib/BLI_boxpack2d.h
@@ -1,15 +1,12 @@
/**
*
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* Box Packer */
diff --git a/source/blender/blenlib/BLI_bpath.h b/source/blender/blenlib/BLI_bpath.h
index e932c39eb06..40bb66a2278 100644
--- a/source/blender/blenlib/BLI_bpath.h
+++ b/source/blender/blenlib/BLI_bpath.h
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* Based on ghash, difference is ghash is not a fixed size,
diff --git a/source/blender/blenlib/BLI_dynamiclist.h b/source/blender/blenlib/BLI_dynamiclist.h
index 89e27743054..e8c93fbcf23 100644
--- a/source/blender/blenlib/BLI_dynamiclist.h
+++ b/source/blender/blenlib/BLI_dynamiclist.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* http://wiki.blender.org/bin/view.pl/Blenderwiki/DynamicListWithAccessArray
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef B_DYNAMIC_LIST_H
diff --git a/source/blender/blenlib/BLI_dynstr.h b/source/blender/blenlib/BLI_dynstr.h
index 7e8cc140964..e5b94aecb4f 100644
--- a/source/blender/blenlib/BLI_dynstr.h
+++ b/source/blender/blenlib/BLI_dynstr.h
@@ -9,15 +9,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -35,7 +32,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_DYNSTR_H
diff --git a/source/blender/blenlib/BLI_edgehash.h b/source/blender/blenlib/BLI_edgehash.h
index 6b7eaedea2f..f3aa69d77ff 100644
--- a/source/blender/blenlib/BLI_edgehash.h
+++ b/source/blender/blenlib/BLI_edgehash.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): Daniel Dunbar
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_EDGEHASH_H
diff --git a/source/blender/blenlib/BLI_editVert.h b/source/blender/blenlib/BLI_editVert.h
index f9b73d521c9..d42663e17c7 100644
--- a/source/blender/blenlib/BLI_editVert.h
+++ b/source/blender/blenlib/BLI_editVert.h
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_EDITVERT_H
diff --git a/source/blender/blenlib/BLI_ghash.h b/source/blender/blenlib/BLI_ghash.h
index ce5be5fc311..aec77f5f385 100644
--- a/source/blender/blenlib/BLI_ghash.h
+++ b/source/blender/blenlib/BLI_ghash.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_GHASH_H
diff --git a/source/blender/blenlib/BLI_gsqueue.h b/source/blender/blenlib/BLI_gsqueue.h
index 5180d3d8bbc..16157ebe0a8 100644
--- a/source/blender/blenlib/BLI_gsqueue.h
+++ b/source/blender/blenlib/BLI_gsqueue.h
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_GSQUEUE_H
diff --git a/source/blender/blenlib/BLI_heap.h b/source/blender/blenlib/BLI_heap.h
index 8ebb6ad269f..53124afd2f3 100644
--- a/source/blender/blenlib/BLI_heap.h
+++ b/source/blender/blenlib/BLI_heap.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): Brecht Van Lommel
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_HEAP_H
diff --git a/source/blender/blenlib/BLI_kdtree.h b/source/blender/blenlib/BLI_kdtree.h
index d32e85c150c..49c21e424f7 100644
--- a/source/blender/blenlib/BLI_kdtree.h
+++ b/source/blender/blenlib/BLI_kdtree.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
* Contributor(s): Janne Karhu
* Brecht Van Lommel
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_KDTREE_H
diff --git a/source/blender/blenlib/BLI_linklist.h b/source/blender/blenlib/BLI_linklist.h
index 9982047ec9e..e840ffd167a 100644
--- a/source/blender/blenlib/BLI_linklist.h
+++ b/source/blender/blenlib/BLI_linklist.h
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_LINKLIST_H
diff --git a/source/blender/blenlib/BLI_memarena.h b/source/blender/blenlib/BLI_memarena.h
index 420995e3b11..34d732e1862 100644
--- a/source/blender/blenlib/BLI_memarena.h
+++ b/source/blender/blenlib/BLI_memarena.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* Memory arena's are commonly used when the program
* needs to quickly allocate lots of little bits of
diff --git a/source/blender/blenlib/BLI_rand.h b/source/blender/blenlib/BLI_rand.h
index 638f36b7414..0e534783c17 100644
--- a/source/blender/blenlib/BLI_rand.h
+++ b/source/blender/blenlib/BLI_rand.h
@@ -4,15 +4,12 @@
* Random number functions.
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_RAND_H
diff --git a/source/blender/blenlib/BLI_storage_types.h b/source/blender/blenlib/BLI_storage_types.h
index ebce33852a1..fda20d73fad 100644
--- a/source/blender/blenlib/BLI_storage_types.h
+++ b/source/blender/blenlib/BLI_storage_types.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_STORAGE_TYPES_H
#define BLI_STORAGE_TYPES_H
diff --git a/source/blender/blenlib/BLI_vfontdata.h b/source/blender/blenlib/BLI_vfontdata.h
index ce800111afb..8838b1992e4 100644
--- a/source/blender/blenlib/BLI_vfontdata.h
+++ b/source/blender/blenlib/BLI_vfontdata.h
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_VFONTDATA_H
diff --git a/source/blender/blenlib/BLI_winstuff.h b/source/blender/blenlib/BLI_winstuff.h
index 0f39d37c31f..54d70626dd5 100644
--- a/source/blender/blenlib/BLI_winstuff.h
+++ b/source/blender/blenlib/BLI_winstuff.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#pragma warning(once: 4761 4305 4244 4018)
diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt
index ac2f3235646..4eb01a50f39 100644
--- a/source/blender/blenlib/CMakeLists.txt
+++ b/source/blender/blenlib/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.c)
diff --git a/source/blender/blenlib/MTC_matrixops.h b/source/blender/blenlib/MTC_matrixops.h
index 27b5bb1ca95..2bc644be564 100644
--- a/source/blender/blenlib/MTC_matrixops.h
+++ b/source/blender/blenlib/MTC_matrixops.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef MATRIXOPS_H
diff --git a/source/blender/blenlib/MTC_vectorops.h b/source/blender/blenlib/MTC_vectorops.h
index 64b2c312eb4..4fec93b37b9 100644
--- a/source/blender/blenlib/MTC_vectorops.h
+++ b/source/blender/blenlib/MTC_vectorops.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef VECTOROPS_H
diff --git a/source/blender/blenlib/Makefile b/source/blender/blenlib/Makefile
index 12ee8c5ad8c..ae8a5afd0ba 100644
--- a/source/blender/blenlib/Makefile
+++ b/source/blender/blenlib/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/blenlib/PIL_dynlib.h b/source/blender/blenlib/PIL_dynlib.h
index 26e1b2f9ac4..b5c3be95d4d 100644
--- a/source/blender/blenlib/PIL_dynlib.h
+++ b/source/blender/blenlib/PIL_dynlib.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __PIL_DYNLIB_H__
#define __PIL_DYNLIB_H__
diff --git a/source/blender/blenlib/PIL_time.h b/source/blender/blenlib/PIL_time.h
index 190a116d658..848403ecc11 100644
--- a/source/blender/blenlib/PIL_time.h
+++ b/source/blender/blenlib/PIL_time.h
@@ -4,15 +4,12 @@
* Platform independant time functions.
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef PIL_TIME_H
diff --git a/source/blender/blenlib/intern/BLI_callbacks.h b/source/blender/blenlib/intern/BLI_callbacks.h
index 1f854764a59..b2cc8f451c6 100644
--- a/source/blender/blenlib/intern/BLI_callbacks.h
+++ b/source/blender/blenlib/intern/BLI_callbacks.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_CALLBACKS_H
diff --git a/source/blender/blenlib/intern/BLI_dynstr.c b/source/blender/blenlib/intern/BLI_dynstr.c
index 8bde670eef5..43c80dd24f0 100644
--- a/source/blender/blenlib/intern/BLI_dynstr.c
+++ b/source/blender/blenlib/intern/BLI_dynstr.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Dynamically sized string ADT
*/
diff --git a/source/blender/blenlib/intern/BLI_fileops.h b/source/blender/blenlib/intern/BLI_fileops.h
index 622706a32e9..bc42030e475 100644
--- a/source/blender/blenlib/intern/BLI_fileops.h
+++ b/source/blender/blenlib/intern/BLI_fileops.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* More low-level fileops from Daniel Dunbar. Two functions were also
* defined in storage.c. These are the old fop_ prefixes. There is
diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c
index 6af377edfba..227cb8f5e9a 100644
--- a/source/blender/blenlib/intern/BLI_ghash.c
+++ b/source/blender/blenlib/intern/BLI_ghash.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* A general (pointer -> pointer) hash table ADT
*/
diff --git a/source/blender/blenlib/intern/BLI_heap.c b/source/blender/blenlib/intern/BLI_heap.c
index 4d8a5179645..c42abd69fae 100644
--- a/source/blender/blenlib/intern/BLI_heap.c
+++ b/source/blender/blenlib/intern/BLI_heap.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Brecht Van Lommel
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* A heap / priority queue ADT.
*/
diff --git a/source/blender/blenlib/intern/BLI_kdtree.c b/source/blender/blenlib/intern/BLI_kdtree.c
index 80e92cb8809..8e8b2e9f0e9 100644
--- a/source/blender/blenlib/intern/BLI_kdtree.c
+++ b/source/blender/blenlib/intern/BLI_kdtree.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Janne Karhu
* Brecht Van Lommel
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/blenlib/intern/BLI_linklist.c b/source/blender/blenlib/intern/BLI_linklist.c
index 6bb828a44bf..506a1036ed6 100644
--- a/source/blender/blenlib/intern/BLI_linklist.c
+++ b/source/blender/blenlib/intern/BLI_linklist.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Support for linked lists.
*/
diff --git a/source/blender/blenlib/intern/BLI_memarena.c b/source/blender/blenlib/intern/BLI_memarena.c
index c42ff3610fd..69dd13cd335 100644
--- a/source/blender/blenlib/intern/BLI_memarena.c
+++ b/source/blender/blenlib/intern/BLI_memarena.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Efficient memory allocation for lots of similar small chunks.
*/
diff --git a/source/blender/blenlib/intern/BLI_scanfill.h b/source/blender/blenlib/intern/BLI_scanfill.h
index cc02d76ad69..43431dd5087 100644
--- a/source/blender/blenlib/intern/BLI_scanfill.h
+++ b/source/blender/blenlib/intern/BLI_scanfill.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_SCANFILL_H
diff --git a/source/blender/blenlib/intern/BLI_storage.h b/source/blender/blenlib/intern/BLI_storage.h
index 2c9932b6507..3e0dec367da 100644
--- a/source/blender/blenlib/intern/BLI_storage.h
+++ b/source/blender/blenlib/intern/BLI_storage.h
@@ -1,14 +1,11 @@
/* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_STORAGE_H
#define BLI_STORAGE_H
diff --git a/source/blender/blenlib/intern/BLI_util.h b/source/blender/blenlib/intern/BLI_util.h
index b033c89a0c9..c37a7fd803b 100644
--- a/source/blender/blenlib/intern/BLI_util.h
+++ b/source/blender/blenlib/intern/BLI_util.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLI_UTIL_H
#define BLI_UTIL_H
diff --git a/source/blender/blenlib/intern/Makefile b/source/blender/blenlib/intern/Makefile
index 9f40710209d..10e032ac654 100644
--- a/source/blender/blenlib/intern/Makefile
+++ b/source/blender/blenlib/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/blenlib/intern/arithb.c b/source/blender/blenlib/intern/arithb.c
index 3514e695f59..19a8d4f5152 100644
--- a/source/blender/blenlib/intern/arithb.c
+++ b/source/blender/blenlib/intern/arithb.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* ************************ FUNKTIES **************************** */
@@ -1727,9 +1724,13 @@ void DQuatToMat4(DualQuat *dq, float mat[][4])
void DQuatAddWeighted(DualQuat *dqsum, DualQuat *dq, float weight)
{
+ int flipped= 0;
+
/* make sure we interpolate quats in the right direction */
- if (QuatDot(dq->quat, dqsum->quat) < 0)
- weight = -weight;
+ if (QuatDot(dq->quat, dqsum->quat) < 0) {
+ flipped= 1;
+ weight= -weight;
+ }
/* interpolate rotation and translation */
dqsum->quat[0] += weight*dq->quat[0];
@@ -1746,6 +1747,9 @@ void DQuatAddWeighted(DualQuat *dqsum, DualQuat *dq, float weight)
if (dq->scale_weight) {
float wmat[4][4];
+ if(flipped) /* we don't want negative weights for scaling */
+ weight= -weight;
+
Mat4CpyMat4(wmat, dq->scale);
Mat4MulFloat((float*)wmat, weight);
Mat4AddMat4(dqsum->scale, dqsum->scale, wmat);
@@ -2109,8 +2113,9 @@ void VecMulf(float *v1, float f)
void VecOrthoBasisf(float *v, float *v1, float *v2)
{
- if (v[0] == 0.0f && v[1] == 0.0f)
- {
+ float f = sqrt(v[0]*v[0] + v[1]*v[1]);
+
+ if (f < 1e-35f) {
// degenerate case
v1[0] = 0.0f; v1[1] = 1.0f; v1[2] = 0.0f;
if (v[2] > 0.0f) {
@@ -2120,9 +2125,8 @@ void VecOrthoBasisf(float *v, float *v1, float *v2)
v2[0] = -1.0f; v2[1] = v2[2] = 0.0f;
}
}
- else
- {
- float f = 1.0f/sqrt(v[0]*v[0] + v[1]*v[1]);
+ else {
+ f = 1.0f/f;
v1[0] = v[1]*f;
v1[1] = -v[0]*f;
v1[2] = 0.0f;
diff --git a/source/blender/blenlib/intern/boxpack2d.c b/source/blender/blenlib/intern/boxpack2d.c
index 42092bc54c3..21810613c7f 100644
--- a/source/blender/blenlib/intern/boxpack2d.c
+++ b/source/blender/blenlib/intern/boxpack2d.c
@@ -1,14 +1,11 @@
/*
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Campbell barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/blenlib/intern/bpath.c b/source/blender/blenlib/intern/bpath.c
index 219ca424df8..92531eb07c4 100644
--- a/source/blender/blenlib/intern/bpath.c
+++ b/source/blender/blenlib/intern/bpath.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Campbell barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BLI_bpath.h"
diff --git a/source/blender/blenlib/intern/dynlib.c b/source/blender/blenlib/intern/dynlib.c
index c455ba664ce..c4692995f20 100644
--- a/source/blender/blenlib/intern/dynlib.c
+++ b/source/blender/blenlib/intern/dynlib.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
* The functions osxdlopen() and osxerror()
* are Copyright (c) 2002 Peter O'Gorman <ogorman@users.sourceforge.net>
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/blenlib/intern/edgehash.c b/source/blender/blenlib/intern/edgehash.c
index 8fae0f63746..6aa0ded63b9 100644
--- a/source/blender/blenlib/intern/edgehash.c
+++ b/source/blender/blenlib/intern/edgehash.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Daniel Dunbar
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* A general (pointer -> pointer) hash table ADT
*/
diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c
index e5b11412aa1..96de5e99f4f 100644
--- a/source/blender/blenlib/intern/fileops.c
+++ b/source/blender/blenlib/intern/fileops.c
@@ -7,15 +7,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -33,7 +30,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -267,12 +264,6 @@ int BLI_link(char *file, char *to) {
return 1;
}
-int BLI_backup(char *file, char *from, char *to) {
- callLocalErrorCallBack("Backing up files is unsupported on Windows");
-
- return 1;
-}
-
int BLI_exists(char *file) {
return (GetFileAttributes(file) != 0xFFFFFFFF);
}
@@ -331,11 +322,17 @@ int BLI_delete(char *file, int dir, int recursive)
printf("Error: not deleted file %s because of quote!\n", file);
}
else {
- if (recursive) sprintf(str, "/bin/rm -rf \"%s\"", file);
- else if (dir) sprintf(str, "/bin/rmdir \"%s\"", file);
- else sprintf(str, "/bin/rm -f \"%s\"", file);
-
- return system(str);
+ if (recursive) {
+ sprintf(str, "/bin/rm -rf \"%s\"", file);
+ return system(str);
+ }
+ else if (dir) {
+ sprintf(str, "/bin/rmdir \"%s\"", file);
+ return system(str);
+ }
+ else {
+ return remove(file); //sprintf(str, "/bin/rm -f \"%s\"", file);
+ }
}
return -1;
}
@@ -358,12 +355,6 @@ int BLI_link(char *file, char *to) {
return system(str);
}
-int BLI_backup(char *file, char *from, char *to) {
- sprintf(str, "/bin/su root -c 'cd %s; /bin/tar cf - \"%s\" | (/bin/cd %s; /bin/tar xf -)'", from, file, to);
-
- return system(str);
-}
-
int BLI_exists(char *file) {
return BLI_exist(file);
}
diff --git a/source/blender/blenlib/intern/freetypefont.c b/source/blender/blenlib/intern/freetypefont.c
index 7fbd4bac485..464f97d294d 100644
--- a/source/blender/blenlib/intern/freetypefont.c
+++ b/source/blender/blenlib/intern/freetypefont.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* This code parses the Freetype font outline data to chains of Blender's beziertriples.
* Additional information can be found at the bottom of this file.
diff --git a/source/blender/blenlib/intern/gsqueue.c b/source/blender/blenlib/intern/gsqueue.c
index e52c573eec7..fe89786b40d 100644
--- a/source/blender/blenlib/intern/gsqueue.c
+++ b/source/blender/blenlib/intern/gsqueue.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/blenlib/intern/matrixops.c b/source/blender/blenlib/intern/matrixops.c
index 62098d5fa90..0f9fc65f016 100644
--- a/source/blender/blenlib/intern/matrixops.c
+++ b/source/blender/blenlib/intern/matrixops.c
@@ -7,15 +7,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -33,7 +30,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* ------------------------------------------------------------------------- */
diff --git a/source/blender/blenlib/intern/noise.c b/source/blender/blenlib/intern/noise.c
index 4fa2d1fdd48..a678c44d4bf 100644
--- a/source/blender/blenlib/intern/noise.c
+++ b/source/blender/blenlib/intern/noise.c
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/blenlib/intern/psfont.c b/source/blender/blenlib/intern/psfont.c
index 1fcb6653dc9..441484fc88b 100644
--- a/source/blender/blenlib/intern/psfont.c
+++ b/source/blender/blenlib/intern/psfont.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* fromtype1 - Convert an Adobe type 1 font into .of or .sf format.
* Paul Haeberli - 1990
*/
diff --git a/source/blender/blenlib/intern/rand.c b/source/blender/blenlib/intern/rand.c
index 71df0ede037..ccc478203fe 100644
--- a/source/blender/blenlib/intern/rand.c
+++ b/source/blender/blenlib/intern/rand.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/blenlib/intern/rct.c b/source/blender/blenlib/intern/rct.c
index 60d96922544..0dc61db2342 100644
--- a/source/blender/blenlib/intern/rct.c
+++ b/source/blender/blenlib/intern/rct.c
@@ -8,15 +8,12 @@
*
* A minimalist lib for functions doing stuff with rectangle structs.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -34,7 +31,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/blenlib/intern/scanfill.c b/source/blender/blenlib/intern/scanfill.c
index 3c0770e5e07..bd9ed85efa2 100644
--- a/source/blender/blenlib/intern/scanfill.c
+++ b/source/blender/blenlib/intern/scanfill.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* (uit traces) maart 95
*/
diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c
index 9d70d85939e..ca7a376d3a2 100644
--- a/source/blender/blenlib/intern/storage.c
+++ b/source/blender/blenlib/intern/storage.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Reorganised mar-01 nzc
* Some really low-level file thingies.
*/
@@ -52,7 +49,7 @@
#if defined (__sun__) || defined (__sun)
#include <sys/statvfs.h> /* Other modern unix os's should probably use this also */
-#elif !defined(linux) && (defined(__sgi) || defined(__sparc) || defined(__sparc__))
+#elif !defined(__FreeBSD__) && !defined(linux) && (defined(__sgi) || defined(__sparc) || defined(__sparc__))
#include <sys/statfs.h>
#endif
@@ -209,7 +206,7 @@ double BLI_diskfree(char *dir)
#if defined (__sun__) || defined (__sun)
if (statvfs(name, &disk)) return(-1);
-#elif !defined(linux) && (defined (__sgi) || defined(__sparc) || defined(__sparc__))
+#elif !defined(__FreeBSD__) && !defined(linux) && (defined (__sgi) || defined(__sparc) || defined(__sparc__))
/* WARNING - This may not be supported by geeneric unix os's - Campbell */
if (statfs(name, &disk, sizeof(struct statfs), 0)) return(-1);
#endif
diff --git a/source/blender/blenlib/intern/time.c b/source/blender/blenlib/intern/time.c
index 47abca10b36..ad152243393 100644
--- a/source/blender/blenlib/intern/time.c
+++ b/source/blender/blenlib/intern/time.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "PIL_time.h"
diff --git a/source/blender/blenlib/intern/util.c b/source/blender/blenlib/intern/util.c
index 51691499ba8..d7b9d9905fd 100644
--- a/source/blender/blenlib/intern/util.c
+++ b/source/blender/blenlib/intern/util.c
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
@@ -41,6 +38,7 @@
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
+#include <math.h> /* for log10 */
#include "MEM_guardedalloc.h"
@@ -67,6 +65,14 @@
#endif
#ifdef WIN32
+
+#ifdef _WIN32_IE
+#undef _WIN32_IE
+#endif
+#define _WIN32_IE 0x0501
+#include <windows.h>
+#include <shlobj.h>
+
#include "BLI_winstuff.h"
/* for duplicate_defgroup */
@@ -1027,9 +1033,10 @@ void BLI_makestringcode(const char *relfile, char *file)
int BLI_convertstringcode(char *path, const char *basepath, int framenum)
{
- int len, wasrelative;
- char tmp[FILE_MAXDIR+FILE_MAXFILE];
- char base[FILE_MAXDIR];
+ int wasrelative;
+ int ch_sta, ch_end;
+ char tmp[FILE_MAX];
+ char base[FILE_MAX];
char vol[3] = {'\0', '\0', '\0'};
BLI_strncpy(vol, path, 3);
@@ -1050,13 +1057,13 @@ int BLI_convertstringcode(char *path, const char *basepath, int framenum)
strcat(tmp, p);
}
else {
- strcpy(tmp, path);
+ BLI_strncpy(tmp, path, FILE_MAX);
}
#else
- strcpy(tmp, path);
+ BLI_strncpy(tmp, path, FILE_MAX);
#endif
- strcpy(base, basepath);
+ BLI_strncpy(base, basepath, FILE_MAX);
/* push slashes into unix mode - strings entering this part are
potentially messed up: having both back- and forward slashes.
@@ -1082,12 +1089,54 @@ int BLI_convertstringcode(char *path, const char *basepath, int framenum)
MEM_freeN(filepart);
}
-
- len= strlen(tmp);
- if(len && tmp[len-1]=='#') {
- sprintf(tmp+len-1, "%04d", framenum);
+
+
+ /* Insert current frame: file### -> file001 */
+ ch_end = 0;
+ for (ch_sta = 0; tmp[ch_sta] != '\0'; ch_sta++) {
+ if (tmp[ch_sta] == '#') {
+ ch_end = ch_sta+1;
+ while (tmp[ch_end] == '#') {
+ ch_end++;
+ }
+ break;
+ }
}
-
+ if (ch_end) { /* warning, ch_end is the last # +1 */
+ /* Add the frame number? */
+ short numlen, hashlen;
+ char format[16]; /* 6 is realistically the maxframe (300000), so 8 should be enough, but 16 to be safe. */
+
+ numlen = 1 + (int)log10((double)framenum); /* this is the number of chars in the number */
+ hashlen = ch_end - ch_sta;
+
+ sprintf(format, "%d", framenum);
+
+ if (numlen==hashlen) { /* simple case */
+ memcpy(tmp+ch_sta, format, numlen);
+ } else if (numlen < hashlen) {
+ memcpy(tmp+ch_sta + (hashlen-numlen), format, numlen); /*dont copy the string terminator */
+ memset(tmp+ch_sta, '0', hashlen-numlen);
+ } else {
+ /* number is longer then number of #'s */
+ if (tmp[ch_end] == '\0') { /* hashes are last, no need to move any string*/
+ /* bad juju - not testing string length here :/ */
+ memcpy(tmp+ch_sta, format, numlen+1); /* add 1 to get the string terminator \0 */
+ } else {
+ /* we need to move the end characters */
+ int i = strlen(tmp); /* +1 to copy the string terminator */
+ int j = i + (numlen-hashlen); /* from/to */
+ while (i >= ch_end) {
+ tmp[j] = tmp[i];
+ i--;
+ j--;
+ }
+ memcpy(tmp + ch_sta, format, numlen);
+ }
+ }
+ }
+ /* done with file### stuff */
+
strcpy(path, tmp);
#ifdef WIN32
/* skip first two chars, which in case of
@@ -1126,6 +1175,8 @@ char *BLI_gethome(void) {
#else /* Windows */
char * ret;
static char dir[512];
+ static char appdatapath[MAXPATHLEN];
+ HRESULT hResult;
/* Check for %HOME% env var */
@@ -1147,9 +1198,36 @@ char *BLI_gethome(void) {
/* add user profile support for WIN 2K / NT */
+ hResult = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, appdatapath);
+
+ if (hResult == S_OK)
+ {
+ if (BLI_exists(appdatapath)) { /* from fop, also below... */
+ sprintf(dir, "%s\\Blender Foundation\\Blender", appdatapath);
+ BLI_recurdir_fileops(dir);
+ if (BLI_exists(dir)) {
+ strcat(dir,"\\.blender");
+ if(BLI_exists(dir)) return(dir);
+ }
+ }
+ hResult = SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, appdatapath);
+ if (hResult == S_OK)
+ {
+ if (BLI_exists(appdatapath))
+ { /* from fop, also below... */
+ sprintf(dir, "%s\\Blender Foundation\\Blender", appdatapath);
+ BLI_recurdir_fileops(dir);
+ if (BLI_exists(dir)) {
+ strcat(dir,"\\.blender");
+ if(BLI_exists(dir)) return(dir);
+ }
+ }
+ }
+ }
+ /*
ret = getenv("USERPROFILE");
if (ret) {
- if (BLI_exists(ret)) { /* from fop, also below... */
+ if (BLI_exists(ret)) { /* from fop, also below...
sprintf(dir, "%s\\Application Data\\Blender Foundation\\Blender", ret);
BLI_recurdir_fileops(dir);
if (BLI_exists(dir)) {
@@ -1158,6 +1236,7 @@ char *BLI_gethome(void) {
}
}
}
+ */
/*
Saving in the Windows dir is less than desirable.
diff --git a/source/blender/blenlib/intern/vectorops.c b/source/blender/blenlib/intern/vectorops.c
index 8c4ad5414db..3bff5235cfd 100644
--- a/source/blender/blenlib/intern/vectorops.c
+++ b/source/blender/blenlib/intern/vectorops.c
@@ -7,15 +7,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -33,7 +30,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* ------------------------------------------------------------------------- */
diff --git a/source/blender/blenlib/intern/winstuff.c b/source/blender/blenlib/intern/winstuff.c
index 1a3dfa79516..ace677e6045 100644
--- a/source/blender/blenlib/intern/winstuff.c
+++ b/source/blender/blenlib/intern/winstuff.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Windows-posix compatibility layer, windows-specific functions.
*/
diff --git a/source/blender/blenloader/BLO_genfile.h b/source/blender/blenloader/BLO_genfile.h
index 6549bafe89b..2f5ab21cef0 100644
--- a/source/blender/blenloader/BLO_genfile.h
+++ b/source/blender/blenloader/BLO_genfile.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* external genfile function prototypes
*/
diff --git a/source/blender/blenloader/BLO_readfile.h b/source/blender/blenloader/BLO_readfile.h
index b54d42080b0..ff2a256f606 100644
--- a/source/blender/blenloader/BLO_readfile.h
+++ b/source/blender/blenloader/BLO_readfile.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* external readfile function prototypes
*/
#ifndef BLO_READFILE_H
diff --git a/source/blender/blenloader/BLO_soundfile.h b/source/blender/blenloader/BLO_soundfile.h
index 3a8ff3fcb99..3d133b2d3bd 100644
--- a/source/blender/blenloader/BLO_soundfile.h
+++ b/source/blender/blenloader/BLO_soundfile.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLO_SOUNDFILE_H
#define BLO_SOUNDFILE_H
diff --git a/source/blender/blenloader/BLO_sys_types.h b/source/blender/blenloader/BLO_sys_types.h
index 38dde20500e..a1885894fe3 100644
--- a/source/blender/blenloader/BLO_sys_types.h
+++ b/source/blender/blenloader/BLO_sys_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* A platform-independent definition of [u]intXX_t
* Plus the accompanying header include for htonl/ntohl
*
diff --git a/source/blender/blenloader/BLO_undofile.h b/source/blender/blenloader/BLO_undofile.h
index 225b6bc15f5..607d05b0f48 100644
--- a/source/blender/blenloader/BLO_undofile.h
+++ b/source/blender/blenloader/BLO_undofile.h
@@ -1,15 +1,12 @@
/*
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* external writefile function prototypes
*/
diff --git a/source/blender/blenloader/BLO_writefile.h b/source/blender/blenloader/BLO_writefile.h
index cfa2fd7b0f6..96eb770411f 100644
--- a/source/blender/blenloader/BLO_writefile.h
+++ b/source/blender/blenloader/BLO_writefile.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* external writefile function prototypes
*/
diff --git a/source/blender/blenloader/CMakeLists.txt b/source/blender/blenloader/CMakeLists.txt
index 3e21c1dc318..9101536c23f 100644
--- a/source/blender/blenloader/CMakeLists.txt
+++ b/source/blender/blenloader/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.c)
diff --git a/source/blender/blenloader/Makefile b/source/blender/blenloader/Makefile
index 0d7cd16453e..4ffc558f889 100644
--- a/source/blender/blenloader/Makefile
+++ b/source/blender/blenloader/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/blenloader/intern/Makefile b/source/blender/blenloader/intern/Makefile
index 4fcb0e8db47..74db1947b63 100644
--- a/source/blender/blenloader/intern/Makefile
+++ b/source/blender/blenloader/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/blenloader/intern/genfile.c b/source/blender/blenloader/intern/genfile.c
index b21185e84a0..7eb6220066e 100644
--- a/source/blender/blenloader/intern/genfile.c
+++ b/source/blender/blenloader/intern/genfile.c
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* DNA handling
*/
diff --git a/source/blender/blenloader/intern/genfile.h b/source/blender/blenloader/intern/genfile.h
index f027c14ac7a..81475252c46 100644
--- a/source/blender/blenloader/intern/genfile.h
+++ b/source/blender/blenloader/intern/genfile.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* blenloader genfile private function prototypes
*/
diff --git a/source/blender/blenloader/intern/readblenentry.c b/source/blender/blenloader/intern/readblenentry.c
index ef287428a19..f56b261efe2 100644
--- a/source/blender/blenloader/intern/readblenentry.c
+++ b/source/blender/blenloader/intern/readblenentry.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* .blend file reading entry point
*/
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index fbd18d31209..71508e10534 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -134,6 +134,7 @@
#include "BKE_node.h" // for tree type defines
#include "BKE_object.h"
#include "BKE_particle.h"
+#include "BKE_pointcache.h"
#include "BKE_property.h" // for get_property
#include "BKE_sca.h" // for init_actuator
#include "BKE_scene.h"
@@ -2529,6 +2530,12 @@ static void direct_link_material(FileData *fd, Material *ma)
/* ************ READ PARTICLE SETTINGS ***************** */
+static void direct_link_pointcache(FileData *fd, PointCache *cache)
+{
+ cache->flag &= ~(PTCACHE_SIMULATION_VALID|PTCACHE_BAKE_EDIT_ACTIVE);
+ cache->simframe= 0;
+}
+
static void lib_link_particlesettings(FileData *fd, Main *main)
{
ParticleSettings *part;
@@ -2582,8 +2589,12 @@ static void direct_link_particlesystems(FileData *fd, ListBase *particles)
}
if(psys->particles && psys->particles->keys){
ParticleData *pa = psys->particles;
- for(a=0; a<psys->totpart; a++, pa++)
- pa->keys=newdataadr(fd,pa->keys);
+ for(a=0; a<psys->totpart; a++, pa++) {
+ pa->keys= NULL;
+ pa->totkey= 0;
+ }
+
+ psys->flag &= ~PSYS_KEYED;
}
psys->child=newdataadr(fd,psys->child);
psys->effectors.first=psys->effectors.last=0;
@@ -2595,12 +2606,20 @@ static void direct_link_particlesystems(FileData *fd, ListBase *particles)
sb->bpoint= NULL; // init pointers so it gets rebuilt nicely
sb->bspring= NULL;
sb->scratch= NULL;
+
+ sb->pointcache= newdataadr(fd, sb->pointcache);
+ if(sb->pointcache)
+ direct_link_pointcache(fd, sb->pointcache);
}
psys->edit = 0;
psys->pathcache = 0;
psys->childcache = 0;
psys->reactevents.first = psys->reactevents.last = 0;
+
+ psys->pointcache= newdataadr(fd, psys->pointcache);
+ if(psys->pointcache)
+ direct_link_pointcache(fd, psys->pointcache);
}
return;
}
@@ -2982,6 +3001,10 @@ static void lib_link_object(FileData *fd, Main *main)
bTwoDFilterActuator *_2dfa = act->data;
_2dfa->text= newlibadr(fd, ob->id.lib, _2dfa->text);
}
+ else if(act->type==ACT_PARENT) {
+ bParentActuator *parenta = act->data;
+ parenta->ob = newlibadr(fd, ob->id.lib, parenta->ob);
+ }
act= act->next;
}
@@ -3005,8 +3028,8 @@ static void lib_link_object(FileData *fd, Main *main)
}
-static void direct_link_pose(FileData *fd, bPose *pose) {
-
+static void direct_link_pose(FileData *fd, bPose *pose)
+{
bPoseChannel *pchan;
if (!pose)
@@ -3050,12 +3073,12 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
clmd->sim_parms= newdataadr(fd, clmd->sim_parms);
clmd->coll_parms= newdataadr(fd, clmd->coll_parms);
+ clmd->point_cache= newdataadr(fd, clmd->point_cache);
+
+ if(clmd->point_cache)
+ direct_link_pointcache(fd, clmd->point_cache);
- if(clmd->sim_parms)
- {
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_LOADED;
- clmd->sim_parms->flags &= ~CLOTH_SIMSETTINGS_FLAG_EDITMODE;
-
+ if(clmd->sim_parms) {
if(clmd->sim_parms->presets > 10)
clmd->sim_parms->presets = 0;
}
@@ -3241,6 +3264,10 @@ static void direct_link_object(FileData *fd, Object *ob)
sb->keys[a]= newdataadr(fd, sb->keys[a]);
}
}
+
+ sb->pointcache= newdataadr(fd, sb->pointcache);
+ if(sb->pointcache)
+ direct_link_pointcache(fd, sb->pointcache);
}
ob->fluidsimSettings= newdataadr(fd, ob->fluidsimSettings); /* NT */
if(ob->fluidsimSettings) {
@@ -3816,7 +3843,9 @@ void lib_link_screen_restore(Main *newmain, Scene *curscene)
for(sc= newmain->screen.first; sc; sc= sc->id.next) {
- sc->scene= curscene;
+ sc->scene= restore_pointer_by_name(newmain, (ID *)sc->scene, 1);
+ if(sc->scene==NULL)
+ sc->scene= curscene;
sa= sc->areabase.first;
while(sa) {
@@ -6438,7 +6467,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
sce->toolsettings->uvcalc_cubesize = 1.0f;
sce->toolsettings->uvcalc_mapdir = 1;
sce->toolsettings->uvcalc_mapalign = 1;
- sce->toolsettings->uvcalc_flag = 1;
+ sce->toolsettings->uvcalc_flag = UVCALC_FILLHOLES;
sce->toolsettings->unwrapper = 1;
}
@@ -6906,6 +6935,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
Mesh *me;
bNodeTree *ntree;
Tex *tex;
+ ModifierData *md;
+ ParticleSystem *psys;
/* unless the file was created 2.44.3 but not 2.45, update the constraints */
if ( !(main->versionfile==244 && main->subversionfile==3) &&
@@ -7030,6 +7061,27 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
}
}
+ /* add point caches */
+ for(ob=main->object.first; ob; ob=ob->id.next) {
+ if(ob->soft && !ob->soft->pointcache)
+ ob->soft->pointcache= BKE_ptcache_add();
+
+ for(psys=ob->particlesystem.first; psys; psys=psys->next) {
+ if(psys->soft && !psys->soft->pointcache)
+ psys->soft->pointcache= BKE_ptcache_add();
+ if(!psys->pointcache)
+ psys->pointcache= BKE_ptcache_add();
+ }
+
+ for(md=ob->modifiers.first; md; md=md->next) {
+ if(md->type==eModifierType_Cloth) {
+ ClothModifierData *clmd = (ClothModifierData*) md;
+ if(!clmd->point_cache)
+ clmd->point_cache= BKE_ptcache_add();
+ }
+ }
+ }
+
/* Copy over old per-level multires vertex data
into a single vertex array in struct Multires */
for(me = main->mesh.first; me; me=me->id.next) {
@@ -7283,7 +7335,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
sb->keys = NULL;
sb->totkey = 0;
- ob->softflag &= ~OB_SB_BAKESET;
}
}
}
@@ -7307,7 +7358,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
sb->keys = NULL;
sb->totkey = 0;
- ob->softflag &= ~OB_SB_BAKESET;
}
/* convert old particles to new system */
@@ -7319,6 +7369,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
/* create new particle system */
psys = MEM_callocN(sizeof(ParticleSystem), "particle_system");
+ psys->pointcache = BKE_ptcache_add();
part = psys->part = psys_new_settings("PSys", main);
@@ -7329,7 +7380,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
part->id.flag |= (ob->id.flag & LIB_NEEDLINK);
psys->totpart=0;
- psys->flag=PSYS_ENABLED|PSYS_CURRENT;
+ psys->flag= PSYS_ENABLED|PSYS_CURRENT;
BLI_addtail(&ob->particlesystem, psys);
@@ -7408,10 +7459,16 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
ob->transflag &= ~OB_DUPLIVERTS;
part->draw_as = PART_DRAW_OB;
+
+ /* needed for proper libdata lookup */
+ oldnewmap_insert(fd->libmap, dup, dup, 0);
}
}
}
+ if(ob->fluidsimSettings && ob->fluidsimSettings->type == OB_FLUIDSIM_PARTICLE)
+ part->type = PART_FLUID;
+
free_effects(&ob->effect);
printf("Old particle system converted to new system.\n");
diff --git a/source/blender/blenloader/intern/readfile.h b/source/blender/blenloader/intern/readfile.h
index d8644ca52f2..7ddb1e361da 100644
--- a/source/blender/blenloader/intern/readfile.h
+++ b/source/blender/blenloader/intern/readfile.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* blenloader readfile private function prototypes
*/
#ifndef READFILE_H
diff --git a/source/blender/blenloader/intern/undofile.c b/source/blender/blenloader/intern/undofile.c
index c8c31f4f2ac..f6fabbdad21 100644
--- a/source/blender/blenloader/intern/undofile.c
+++ b/source/blender/blenloader/intern/undofile.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* .blend file reading entry point
*/
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index afacb82ae0d..f25f2d515c2 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -576,16 +573,11 @@ static void write_particlesystems(WriteData *wd, ListBase *particles)
for(a=0; a<psys->totpart; a++, pa++)
writestruct(wd, DATA, "HairKey", pa->totkey, pa->hair);
}
-
- if(psys->particles->keys) {
- ParticleData *pa = psys->particles;
-
- for(a=0; a<psys->totpart; a++, pa++)
- writestruct(wd, DATA, "ParticleKey", pa->totkey, pa->keys);
- }
}
if(psys->child) writestruct(wd, DATA, "ChildParticle", psys->totchild ,psys->child);
writestruct(wd, DATA, "SoftBody", 1, psys->soft);
+ if(psys->soft) writestruct(wd, DATA, "PointCache", 1, psys->soft->pointcache);
+ writestruct(wd, DATA, "PointCache", 1, psys->pointcache);
}
}
@@ -738,6 +730,9 @@ static void write_actuators(WriteData *wd, ListBase *lb)
case ACT_2DFILTER:
writestruct(wd, DATA, "bTwoDFilterActuator", 1, act->data);
break;
+ case ACT_PARENT:
+ writestruct(wd, DATA, "bParentActuator", 1, act->data);
+ break;
default:
; /* error: don't know how to write this file */
}
@@ -861,7 +856,7 @@ static void write_modifiers(WriteData *wd, ListBase *modbase)
writestruct(wd, DATA, "ClothSimSettings", 1, clmd->sim_parms);
writestruct(wd, DATA, "ClothCollSettings", 1, clmd->coll_parms);
-
+ writestruct(wd, DATA, "PointCache", 1, clmd->point_cache);
}
else if (md->type==eModifierType_Collision) {
@@ -927,6 +922,7 @@ static void write_objects(WriteData *wd, ListBase *idbase)
writestruct(wd, DATA, "PartDeflect", 1, ob->pd);
writestruct(wd, DATA, "SoftBody", 1, ob->soft);
+ if(ob->soft) writestruct(wd, DATA, "PointCache", 1, ob->soft->pointcache);
writestruct(wd, DATA, "FluidsimSettings", 1, ob->fluidsimSettings); // NT
write_particlesystems(wd, &ob->particlesystem);
@@ -2093,7 +2089,7 @@ int BLO_write_file(char *dir, int write_flags, char **error_r)
}
}
else
- if(BLI_rename(tempname, dir) < 0) {
+ if(BLI_rename(tempname, dir) != 0) {
*error_r= "Can't change old file. File saved with @";
return 0;
}
diff --git a/source/blender/blenpluginapi/CMakeLists.txt b/source/blender/blenpluginapi/CMakeLists.txt
index 2afd3ebb121..856fb931e9d 100644
--- a/source/blender/blenpluginapi/CMakeLists.txt
+++ b/source/blender/blenpluginapi/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.c)
diff --git a/source/blender/blenpluginapi/Makefile b/source/blender/blenpluginapi/Makefile
index 17c23c419a8..83678309b45 100644
--- a/source/blender/blenpluginapi/Makefile
+++ b/source/blender/blenpluginapi/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/blenpluginapi/documentation.h b/source/blender/blenpluginapi/documentation.h
index 3bb9b33ee04..d74c1853c38 100644
--- a/source/blender/blenpluginapi/documentation.h
+++ b/source/blender/blenpluginapi/documentation.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* @mainpage plugin API - the access point for texture and sequence
* plugins
diff --git a/source/blender/blenpluginapi/externdef.h b/source/blender/blenpluginapi/externdef.h
index 7322841e608..14a3115ce33 100644
--- a/source/blender/blenpluginapi/externdef.h
+++ b/source/blender/blenpluginapi/externdef.h
@@ -33,11 +33,14 @@
#ifdef WIN32
#ifdef PLUGIN_INTERN
#define LIBEXPORT __declspec(dllexport)
+ #define LIBIMPORT __declspec(dllexport)
#else
- #define LIBEXPORT extern __declspec(dllimport)
+ #define LIBEXPORT __declspec(dllexport)
+ #define LIBIMPORT extern __declspec(dllimport)
#endif
#elif !defined(WIN32)
#define LIBEXPORT extern
+ #define LIBIMPORT extern
#endif
#endif /* _EXTERNDEF_H */
diff --git a/source/blender/blenpluginapi/iff.h b/source/blender/blenpluginapi/iff.h
index 5eb52158a1a..19bea621d24 100644
--- a/source/blender/blenpluginapi/iff.h
+++ b/source/blender/blenpluginapi/iff.h
@@ -167,49 +167,49 @@ typedef struct ImBuf {
struct ImBuf *mipmap[IB_MIPMAP_LEVELS]; /**< MipMap levels, a series of halved images */
} ImBuf;
-LIBEXPORT struct ImBuf *allocImBuf(short,short,uchar,uint,uchar);
-LIBEXPORT struct ImBuf *dupImBuf(struct ImBuf *);
-LIBEXPORT void freeImBuf(struct ImBuf*);
+LIBIMPORT struct ImBuf *allocImBuf(short,short,uchar,uint,uchar);
+LIBIMPORT struct ImBuf *dupImBuf(struct ImBuf *);
+LIBIMPORT void freeImBuf(struct ImBuf*);
-LIBEXPORT short converttocmap(struct ImBuf* ibuf);
+LIBIMPORT short converttocmap(struct ImBuf* ibuf);
-LIBEXPORT short saveiff(struct ImBuf *,char *,int);
+LIBIMPORT short saveiff(struct ImBuf *,char *,int);
-LIBEXPORT struct ImBuf *loadiffmem(int *,int);
-LIBEXPORT struct ImBuf *loadifffile(int,int);
-LIBEXPORT struct ImBuf *loadiffname(char *,int);
-LIBEXPORT struct ImBuf *testiffname(char *,int);
+LIBIMPORT struct ImBuf *loadiffmem(int *,int);
+LIBIMPORT struct ImBuf *loadifffile(int,int);
+LIBIMPORT struct ImBuf *loadiffname(char *,int);
+LIBIMPORT struct ImBuf *testiffname(char *,int);
-LIBEXPORT struct ImBuf *onehalf(struct ImBuf *);
-LIBEXPORT struct ImBuf *onethird(struct ImBuf *);
-LIBEXPORT struct ImBuf *halflace(struct ImBuf *);
-LIBEXPORT struct ImBuf *half_x(struct ImBuf *);
-LIBEXPORT struct ImBuf *half_y(struct ImBuf *);
-LIBEXPORT struct ImBuf *double_x(struct ImBuf *);
-LIBEXPORT struct ImBuf *double_y(struct ImBuf *);
-LIBEXPORT struct ImBuf *double_fast_x(struct ImBuf *);
-LIBEXPORT struct ImBuf *double_fast_y(struct ImBuf *);
+LIBIMPORT struct ImBuf *onehalf(struct ImBuf *);
+LIBIMPORT struct ImBuf *onethird(struct ImBuf *);
+LIBIMPORT struct ImBuf *halflace(struct ImBuf *);
+LIBIMPORT struct ImBuf *half_x(struct ImBuf *);
+LIBIMPORT struct ImBuf *half_y(struct ImBuf *);
+LIBIMPORT struct ImBuf *double_x(struct ImBuf *);
+LIBIMPORT struct ImBuf *double_y(struct ImBuf *);
+LIBIMPORT struct ImBuf *double_fast_x(struct ImBuf *);
+LIBIMPORT struct ImBuf *double_fast_y(struct ImBuf *);
-LIBEXPORT int ispic(char *);
+LIBIMPORT int ispic(char *);
-LIBEXPORT void dit2(struct ImBuf *, short, short);
-LIBEXPORT void dit0(struct ImBuf *, short, short);
+LIBIMPORT void dit2(struct ImBuf *, short, short);
+LIBIMPORT void dit0(struct ImBuf *, short, short);
-LIBEXPORT struct ImBuf *scaleImBuf(struct ImBuf *, short, short);
-LIBEXPORT struct ImBuf *scalefastImBuf(struct ImBuf *, short, short);
-LIBEXPORT struct ImBuf *scalefieldImBuf(struct ImBuf *, short, short);
-LIBEXPORT struct ImBuf *scalefastfieldImBuf(struct ImBuf *, short, short);
+LIBIMPORT struct ImBuf *scaleImBuf(struct ImBuf *, short, short);
+LIBIMPORT struct ImBuf *scalefastImBuf(struct ImBuf *, short, short);
+LIBIMPORT struct ImBuf *scalefieldImBuf(struct ImBuf *, short, short);
+LIBIMPORT struct ImBuf *scalefastfieldImBuf(struct ImBuf *, short, short);
-LIBEXPORT void de_interlace(struct ImBuf *ib);
-LIBEXPORT void interlace(struct ImBuf *ib);
-LIBEXPORT void gamwarp(struct ImBuf *ibuf, double gamma);
+LIBIMPORT void de_interlace(struct ImBuf *ib);
+LIBIMPORT void interlace(struct ImBuf *ib);
+LIBIMPORT void gamwarp(struct ImBuf *ibuf, double gamma);
-LIBEXPORT void IMB_rectcpy(struct ImBuf *dbuf, struct ImBuf *sbuf,
+LIBIMPORT void IMB_rectcpy(struct ImBuf *dbuf, struct ImBuf *sbuf,
int destx, int desty, int srcx, int srcy, int width, int height);
-LIBEXPORT void IMB_rectfill(struct ImBuf *drect, float col[4]);
-LIBEXPORT void IMB_rectfill_area(struct ImBuf *ibuf, float *col, int x1, int y1, int x2, int y2);
-LIBEXPORT void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, float *col, int x1, int y1, int x2, int y2);
+LIBIMPORT void IMB_rectfill(struct ImBuf *drect, float col[4]);
+LIBIMPORT void IMB_rectfill_area(struct ImBuf *ibuf, float *col, int x1, int y1, int x2, int y2);
+LIBIMPORT void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, float *col, int x1, int y1, int x2, int y2);
#endif /* IFF_H */
diff --git a/source/blender/blenpluginapi/intern/Makefile b/source/blender/blenpluginapi/intern/Makefile
index e493ea40aa5..51905cad8ec 100644
--- a/source/blender/blenpluginapi/intern/Makefile
+++ b/source/blender/blenpluginapi/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/blenpluginapi/intern/pluginapi.c b/source/blender/blenpluginapi/intern/pluginapi.c
index 43c4727cea1..ee1ac8f0ae2 100644
--- a/source/blender/blenpluginapi/intern/pluginapi.c
+++ b/source/blender/blenpluginapi/intern/pluginapi.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Wrappers for the plugin api. This api is up for removal.
*/
diff --git a/source/blender/blenpluginapi/plugin.h b/source/blender/blenpluginapi/plugin.h
index 1f6140130eb..da044cf7317 100644
--- a/source/blender/blenpluginapi/plugin.h
+++ b/source/blender/blenpluginapi/plugin.h
@@ -36,9 +36,10 @@
#include "util.h"
#include "floatpatch.h"
-#define B_PLUGIN_VERSION 5
+#define B_PLUGIN_VERSION 6
-typedef int (*TexDoit)(int, void*, float*, float*, float*);
+typedef int (*TexDoit)(int, void*, float*, float*, float*, float*);
+typedef int (*TexDoitold)(int, void*, float*, float*, float*);
typedef void (*SeqDoit)(void*, float, float, int, int, ImBuf*, ImBuf*, ImBuf*, ImBuf*);
typedef struct VarStruct {
@@ -66,9 +67,9 @@ typedef struct _PluginInfo {
void (*instance_init)(void *);
} PluginInfo;
-int plugin_tex_getversion(void);
-int plugin_seq_getversion(void);
-void plugin_getinfo(PluginInfo *);
+LIBEXPORT int plugin_tex_getversion(void);
+LIBEXPORT int plugin_seq_getversion(void);
+LIBEXPORT void plugin_getinfo(PluginInfo *);
/* *************** defines for button types ************** */
@@ -90,14 +91,14 @@ void plugin_getinfo(PluginInfo *);
/* *************** API functions ******************** */
/* derived from the famous Perlin noise */
-LIBEXPORT float hnoise(float noisesize, float x, float y, float z);
+LIBIMPORT float hnoise(float noisesize, float x, float y, float z);
/* the original Perlin noise */
-LIBEXPORT float hnoisep(float noisesize, float x, float y, float z);
+LIBIMPORT float hnoisep(float noisesize, float x, float y, float z);
/* soft turbulence */
-LIBEXPORT float turbulence(float noisesize, float x, float y, float z, int depth);
+LIBIMPORT float turbulence(float noisesize, float x, float y, float z, int depth);
/* hard turbulence */
-LIBEXPORT float turbulence1(float noisesize, float x, float y, float z, int depth);
+LIBIMPORT float turbulence1(float noisesize, float x, float y, float z, int depth);
#endif /* PLUGIN_H */
diff --git a/source/blender/ftfont/CMakeLists.txt b/source/blender/ftfont/CMakeLists.txt
index 7b89416bbe1..134796d0799 100644
--- a/source/blender/ftfont/CMakeLists.txt
+++ b/source/blender/ftfont/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.cpp)
diff --git a/source/blender/ftfont/FTF_Api.h b/source/blender/ftfont/FTF_Api.h
index 0793c4b6dfb..8b04f5c09c1 100644
--- a/source/blender/ftfont/FTF_Api.h
+++ b/source/blender/ftfont/FTF_Api.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _FTF_API_H
diff --git a/source/blender/ftfont/FTF_Settings.h b/source/blender/ftfont/FTF_Settings.h
index dc325c1de41..ff9d78e3f58 100644
--- a/source/blender/ftfont/FTF_Settings.h
+++ b/source/blender/ftfont/FTF_Settings.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/source/blender/ftfont/Makefile b/source/blender/ftfont/Makefile
index 1717fa34853..73f75e77e73 100644
--- a/source/blender/ftfont/Makefile
+++ b/source/blender/ftfont/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/ftfont/intern/FTF_Api.cpp b/source/blender/ftfont/intern/FTF_Api.cpp
index bf6698a1cde..c8f779e5d5e 100644
--- a/source/blender/ftfont/intern/FTF_Api.cpp
+++ b/source/blender/ftfont/intern/FTF_Api.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/source/blender/ftfont/intern/FTF_TTFont.cpp b/source/blender/ftfont/intern/FTF_TTFont.cpp
index 34b22e5c9d2..77bfff5bd82 100644
--- a/source/blender/ftfont/intern/FTF_TTFont.cpp
+++ b/source/blender/ftfont/intern/FTF_TTFont.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/ftfont/intern/FTF_TTFont.h b/source/blender/ftfont/intern/FTF_TTFont.h
index b5ff1cc54bf..51247a2d2a1 100644
--- a/source/blender/ftfont/intern/FTF_TTFont.h
+++ b/source/blender/ftfont/intern/FTF_TTFont.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/source/blender/ftfont/intern/Makefile b/source/blender/ftfont/intern/Makefile
index 4668241c5c8..6bddda9a25c 100644
--- a/source/blender/ftfont/intern/Makefile
+++ b/source/blender/ftfont/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt
index 146ec654c1e..0aac462573a 100644
--- a/source/blender/imbuf/CMakeLists.txt
+++ b/source/blender/imbuf/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.c)
diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h
index 7cbdfbe32d1..d4d8030bf10 100644
--- a/source/blender/imbuf/IMB_imbuf.h
+++ b/source/blender/imbuf/IMB_imbuf.h
@@ -75,15 +75,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -101,7 +98,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef IMB_IMBUF_H
#define IMB_IMBUF_H
diff --git a/source/blender/imbuf/IMB_imbuf_types.h b/source/blender/imbuf/IMB_imbuf_types.h
index a46fdf4af2d..94203bab447 100644
--- a/source/blender/imbuf/IMB_imbuf_types.h
+++ b/source/blender/imbuf/IMB_imbuf_types.h
@@ -13,15 +13,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -39,7 +36,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_imbuf_types.h
diff --git a/source/blender/imbuf/Makefile b/source/blender/imbuf/Makefile
index 66c1f06c870..cc9b56b3cd8 100644
--- a/source/blender/imbuf/Makefile
+++ b/source/blender/imbuf/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/imbuf/intern/IMB_allocimbuf.h b/source/blender/imbuf/intern/IMB_allocimbuf.h
index 7ff44ef29f9..2eae7694322 100644
--- a/source/blender/imbuf/intern/IMB_allocimbuf.h
+++ b/source/blender/imbuf/intern/IMB_allocimbuf.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/source/blender/imbuf/intern/IMB_amiga.h b/source/blender/imbuf/intern/IMB_amiga.h
index 39ca4035753..e2985cf2a18 100644
--- a/source/blender/imbuf/intern/IMB_amiga.h
+++ b/source/blender/imbuf/intern/IMB_amiga.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_amiga.h
diff --git a/source/blender/imbuf/intern/IMB_anim.h b/source/blender/imbuf/intern/IMB_anim.h
index a0e372ec5cd..4948ff11b4a 100644
--- a/source/blender/imbuf/intern/IMB_anim.h
+++ b/source/blender/imbuf/intern/IMB_anim.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef IMB_ANIM_H
diff --git a/source/blender/imbuf/intern/IMB_bitplanes.h b/source/blender/imbuf/intern/IMB_bitplanes.h
index 643c6d57a06..05da06a5ccf 100644
--- a/source/blender/imbuf/intern/IMB_bitplanes.h
+++ b/source/blender/imbuf/intern/IMB_bitplanes.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_bitplanes.h
diff --git a/source/blender/imbuf/intern/IMB_bmp.h b/source/blender/imbuf/intern/IMB_bmp.h
index 7516c8b4add..6b8a61be021 100644
--- a/source/blender/imbuf/intern/IMB_bmp.h
+++ b/source/blender/imbuf/intern/IMB_bmp.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_bmp.h
diff --git a/source/blender/imbuf/intern/IMB_cmap.h b/source/blender/imbuf/intern/IMB_cmap.h
index cf6c15ede91..f0a756a3776 100644
--- a/source/blender/imbuf/intern/IMB_cmap.h
+++ b/source/blender/imbuf/intern/IMB_cmap.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_cmap.h
diff --git a/source/blender/imbuf/intern/IMB_divers.h b/source/blender/imbuf/intern/IMB_divers.h
index 23d71d2c74d..39bf238e6fb 100644
--- a/source/blender/imbuf/intern/IMB_divers.h
+++ b/source/blender/imbuf/intern/IMB_divers.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_divers.h
diff --git a/source/blender/imbuf/intern/IMB_filter.h b/source/blender/imbuf/intern/IMB_filter.h
index c544ae9a04c..6088e3d8b82 100644
--- a/source/blender/imbuf/intern/IMB_filter.h
+++ b/source/blender/imbuf/intern/IMB_filter.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_filter.h
diff --git a/source/blender/imbuf/intern/IMB_ham.h b/source/blender/imbuf/intern/IMB_ham.h
index e3302542198..ec7bbbd97a9 100644
--- a/source/blender/imbuf/intern/IMB_ham.h
+++ b/source/blender/imbuf/intern/IMB_ham.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_ham.h
diff --git a/source/blender/imbuf/intern/IMB_hamx.h b/source/blender/imbuf/intern/IMB_hamx.h
index d5b23d4e685..6d524d37dc1 100644
--- a/source/blender/imbuf/intern/IMB_hamx.h
+++ b/source/blender/imbuf/intern/IMB_hamx.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_hamx.h
diff --git a/source/blender/imbuf/intern/IMB_iff.h b/source/blender/imbuf/intern/IMB_iff.h
index c65330bad95..ee42251afba 100644
--- a/source/blender/imbuf/intern/IMB_iff.h
+++ b/source/blender/imbuf/intern/IMB_iff.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_iff.h
diff --git a/source/blender/imbuf/intern/IMB_iris.h b/source/blender/imbuf/intern/IMB_iris.h
index 74126a1a166..74f05b5ed08 100644
--- a/source/blender/imbuf/intern/IMB_iris.h
+++ b/source/blender/imbuf/intern/IMB_iris.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_iris.h
diff --git a/source/blender/imbuf/intern/IMB_jpeg.h b/source/blender/imbuf/intern/IMB_jpeg.h
index f78810d27ee..919d7279cbf 100644
--- a/source/blender/imbuf/intern/IMB_jpeg.h
+++ b/source/blender/imbuf/intern/IMB_jpeg.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_jpeg.h
diff --git a/source/blender/imbuf/intern/IMB_png.h b/source/blender/imbuf/intern/IMB_png.h
index 6557bfb13a0..20c1fc174ba 100644
--- a/source/blender/imbuf/intern/IMB_png.h
+++ b/source/blender/imbuf/intern/IMB_png.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_png.h
diff --git a/source/blender/imbuf/intern/IMB_targa.h b/source/blender/imbuf/intern/IMB_targa.h
index 2d3b1ab3288..956bc512b97 100644
--- a/source/blender/imbuf/intern/IMB_targa.h
+++ b/source/blender/imbuf/intern/IMB_targa.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_targa.h
diff --git a/source/blender/imbuf/intern/IMB_tiff.h b/source/blender/imbuf/intern/IMB_tiff.h
index b633fbffd23..5b3aca1b5a4 100644
--- a/source/blender/imbuf/intern/IMB_tiff.h
+++ b/source/blender/imbuf/intern/IMB_tiff.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
*
* Contributor(s): Jonathan Merritt.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
* \file IMB_tiff.h
diff --git a/source/blender/imbuf/intern/Makefile b/source/blender/imbuf/intern/Makefile
index 09eb487b3a6..8294931b60f 100644
--- a/source/blender/imbuf/intern/Makefile
+++ b/source/blender/imbuf/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/imbuf/intern/allocimbuf.c b/source/blender/imbuf/intern/allocimbuf.c
index 78efed908fe..ad7b1dce2e0 100644
--- a/source/blender/imbuf/intern/allocimbuf.c
+++ b/source/blender/imbuf/intern/allocimbuf.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* It's become a bit messy... Basically, only the IMB_ prefixed files
diff --git a/source/blender/imbuf/intern/amiga.c b/source/blender/imbuf/intern/amiga.c
index 6440ea69eab..3d52a287a31 100644
--- a/source/blender/imbuf/intern/amiga.c
+++ b/source/blender/imbuf/intern/amiga.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WIN32
diff --git a/source/blender/imbuf/intern/anim.c b/source/blender/imbuf/intern/anim.c
index 1700790c4fa..d2743b680d8 100644
--- a/source/blender/imbuf/intern/anim.c
+++ b/source/blender/imbuf/intern/anim.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef _WIN32
@@ -784,25 +781,28 @@ static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position) {
0, 0, 0 };
int i;
unsigned char* r;
-
- sws_scale(anim->img_convert_ctx,
- anim->pFrame->data,
- anim->pFrame->linesize,
- 0,
- anim->pCodecCtx->height,
- dst2,
- dstStride2);
-
- /* workaround: sws_scale
- sets alpha = 0... */
-
- r = (unsigned char*) ibuf->rect;
-
- for (i = 0; i < ibuf->x * ibuf->y;i++){
- r[3] = 0xff;
- r+=4;
+
+ /* This means the data wasnt read properly, this check stops crashing */
+ if (anim->pFrame->data[0]!=0 || anim->pFrame->data[1]!=0 || anim->pFrame->data[2]!=0 || anim->pFrame->data[3]!=0) {
+
+ sws_scale(anim->img_convert_ctx,
+ anim->pFrame->data,
+ anim->pFrame->linesize,
+ 0,
+ anim->pCodecCtx->height,
+ dst2,
+ dstStride2);
+
+ /* workaround: sws_scale
+ sets alpha = 0... */
+
+ r = (unsigned char*) ibuf->rect;
+
+ for (i = 0; i < ibuf->x * ibuf->y;i++){
+ r[3] = 0xff;
+ r+=4;
+ }
}
-
av_free_packet(&packet);
break;
}
diff --git a/source/blender/imbuf/intern/anim5.c b/source/blender/imbuf/intern/anim5.c
index 89ddf177efe..ab203fe80de 100644
--- a/source/blender/imbuf/intern/anim5.c
+++ b/source/blender/imbuf/intern/anim5.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): phase, code torn apart from anim.c
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BLI_blenlib.h" /* BLI_remlink BLI_filesize BLI_addtail
diff --git a/source/blender/imbuf/intern/antialias.c b/source/blender/imbuf/intern/antialias.c
index bf8d0d17daf..8c061fd40b1 100644
--- a/source/blender/imbuf/intern/antialias.c
+++ b/source/blender/imbuf/intern/antialias.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "imbuf.h"
diff --git a/source/blender/imbuf/intern/bitplanes.c b/source/blender/imbuf/intern/bitplanes.c
index b80e829da08..74f212880e9 100644
--- a/source/blender/imbuf/intern/bitplanes.c
+++ b/source/blender/imbuf/intern/bitplanes.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "imbuf.h"
diff --git a/source/blender/imbuf/intern/bmp.c b/source/blender/imbuf/intern/bmp.c
index c14819c8bdf..2aa276a5f53 100644
--- a/source/blender/imbuf/intern/bmp.c
+++ b/source/blender/imbuf/intern/bmp.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BLI_blenlib.h"
diff --git a/source/blender/imbuf/intern/cineon/CMakeLists.txt b/source/blender/imbuf/intern/cineon/CMakeLists.txt
index efaa36cf9ed..53cd161634b 100644
--- a/source/blender/imbuf/intern/cineon/CMakeLists.txt
+++ b/source/blender/imbuf/intern/cineon/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.c)
diff --git a/source/blender/imbuf/intern/cineon/Makefile b/source/blender/imbuf/intern/cineon/Makefile
index e61c8dd59ed..99a9a5dbd46 100644
--- a/source/blender/imbuf/intern/cineon/Makefile
+++ b/source/blender/imbuf/intern/cineon/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/imbuf/intern/cineon/cineon_dpx.c b/source/blender/imbuf/intern/cineon/cineon_dpx.c
index f00f6bc38c5..2959ed654ab 100644
--- a/source/blender/imbuf/intern/cineon/cineon_dpx.c
+++ b/source/blender/imbuf/intern/cineon/cineon_dpx.c
@@ -135,7 +135,13 @@ static int imb_save_dpx_cineon(ImBuf *buf, char *filename, int use_cineon, int f
height = buf->y;
depth = 3;
- if (!buf->rect_float) return 0;
+
+ if (!buf->rect_float) {
+ IMB_float_from_rect(buf);
+ if (!buf->rect_float) { /* in the unlikely event that converting to a float buffer fails */
+ return 0;
+ }
+ }
logImageSetVerbose(0);
logImage = logImageCreate(filename, use_cineon, width, height, depth);
diff --git a/source/blender/imbuf/intern/cmap.c b/source/blender/imbuf/intern/cmap.c
index 7b4962d8837..1083278d3f4 100644
--- a/source/blender/imbuf/intern/cmap.c
+++ b/source/blender/imbuf/intern/cmap.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <ctype.h>
diff --git a/source/blender/imbuf/intern/cspace.c b/source/blender/imbuf/intern/cspace.c
index 4fbfeb9c3c7..deb14b06976 100644
--- a/source/blender/imbuf/intern/cspace.c
+++ b/source/blender/imbuf/intern/cspace.c
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BLI_blenlib.h"
diff --git a/source/blender/imbuf/intern/data.c b/source/blender/imbuf/intern/data.c
index ad9194cb80e..ed4aae79283 100644
--- a/source/blender/imbuf/intern/data.c
+++ b/source/blender/imbuf/intern/data.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* data.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/dds/BlockDXT.cpp b/source/blender/imbuf/intern/dds/BlockDXT.cpp
index 24a090d93f6..2a8a2c470c4 100644
--- a/source/blender/imbuf/intern/dds/BlockDXT.cpp
+++ b/source/blender/imbuf/intern/dds/BlockDXT.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -277,7 +274,7 @@ void BlockDXT3::flip2()
void AlphaBlockDXT5::evaluatePalette(uint8 alpha[8]) const
{
- if (alpha0 > alpha1) {
+ if (alpha0() > alpha1()) {
evaluatePalette8(alpha);
}
else {
@@ -289,8 +286,8 @@ void AlphaBlockDXT5::evaluatePalette8(uint8 alpha[8]) const
{
// 8-alpha block: derive the other six alphas.
// Bit code 000 = alpha0, 001 = alpha1, others are interpolated.
- alpha[0] = alpha0;
- alpha[1] = alpha1;
+ alpha[0] = alpha0();
+ alpha[1] = alpha1();
alpha[2] = (6 * alpha[0] + 1 * alpha[1]) / 7; // bit code 010
alpha[3] = (5 * alpha[0] + 2 * alpha[1]) / 7; // bit code 011
alpha[4] = (4 * alpha[0] + 3 * alpha[1]) / 7; // bit code 100
@@ -303,8 +300,8 @@ void AlphaBlockDXT5::evaluatePalette6(uint8 alpha[8]) const
{
// 6-alpha block.
// Bit code 000 = alpha0, 001 = alpha1, others are interpolated.
- alpha[0] = alpha0;
- alpha[1] = alpha1;
+ alpha[0] = alpha0();
+ alpha[1] = alpha1();
alpha[2] = (4 * alpha[0] + 1 * alpha[1]) / 5; // Bit code 010
alpha[3] = (3 * alpha[0] + 2 * alpha[1]) / 5; // Bit code 011
alpha[4] = (2 * alpha[0] + 3 * alpha[1]) / 5; // Bit code 100
@@ -315,22 +312,22 @@ void AlphaBlockDXT5::evaluatePalette6(uint8 alpha[8]) const
void AlphaBlockDXT5::indices(uint8 index_array[16]) const
{
- index_array[0x0] = bits0;
- index_array[0x1] = bits1;
- index_array[0x2] = bits2;
- index_array[0x3] = bits3;
- index_array[0x4] = bits4;
- index_array[0x5] = bits5;
- index_array[0x6] = bits6;
- index_array[0x7] = bits7;
- index_array[0x8] = bits8;
- index_array[0x9] = bits9;
- index_array[0xA] = bitsA;
- index_array[0xB] = bitsB;
- index_array[0xC] = bitsC;
- index_array[0xD] = bitsD;
- index_array[0xE] = bitsE;
- index_array[0xF] = bitsF;
+ index_array[0x0] = bits0();
+ index_array[0x1] = bits1();
+ index_array[0x2] = bits2();
+ index_array[0x3] = bits3();
+ index_array[0x4] = bits4();
+ index_array[0x5] = bits5();
+ index_array[0x6] = bits6();
+ index_array[0x7] = bits7();
+ index_array[0x8] = bits8();
+ index_array[0x9] = bits9();
+ index_array[0xA] = bitsA();
+ index_array[0xB] = bitsB();
+ index_array[0xC] = bitsC();
+ index_array[0xD] = bitsD();
+ index_array[0xE] = bitsE();
+ index_array[0xF] = bitsF();
}
uint AlphaBlockDXT5::index(uint index) const
diff --git a/source/blender/imbuf/intern/dds/BlockDXT.h b/source/blender/imbuf/intern/dds/BlockDXT.h
index 5c232201f0c..3f9a81e40c8 100644
--- a/source/blender/imbuf/intern/dds/BlockDXT.h
+++ b/source/blender/imbuf/intern/dds/BlockDXT.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -143,29 +140,51 @@ struct BlockDXT3
/// DXT5 alpha block.
struct AlphaBlockDXT5
{
+ // uint64 unions do not compile on all platforms
+ /*
union {
struct {
- unsigned int alpha0 : 8; // 8
- unsigned int alpha1 : 8; // 16
- unsigned int bits0 : 3; // 3 - 19
- unsigned int bits1 : 3; // 6 - 22
- unsigned int bits2 : 3; // 9 - 25
- unsigned int bits3 : 3; // 12 - 28
- unsigned int bits4 : 3; // 15 - 31
- unsigned int bits5 : 3; // 18 - 34
- unsigned int bits6 : 3; // 21 - 37
- unsigned int bits7 : 3; // 24 - 40
- unsigned int bits8 : 3; // 27 - 43
- unsigned int bits9 : 3; // 30 - 46
- unsigned int bitsA : 3; // 33 - 49
- unsigned int bitsB : 3; // 36 - 52
- unsigned int bitsC : 3; // 39 - 55
- unsigned int bitsD : 3; // 42 - 58
- unsigned int bitsE : 3; // 45 - 61
- unsigned int bitsF : 3; // 48 - 64
+ uint64 alpha0 : 8; // 8
+ uint64 alpha1 : 8; // 16
+ uint64 bits0 : 3; // 3 - 19
+ uint64 bits1 : 3; // 6 - 22
+ uint64 bits2 : 3; // 9 - 25
+ uint64 bits3 : 3; // 12 - 28
+ uint64 bits4 : 3; // 15 - 31
+ uint64 bits5 : 3; // 18 - 34
+ uint64 bits6 : 3; // 21 - 37
+ uint64 bits7 : 3; // 24 - 40
+ uint64 bits8 : 3; // 27 - 43
+ uint64 bits9 : 3; // 30 - 46
+ uint64 bitsA : 3; // 33 - 49
+ uint64 bitsB : 3; // 36 - 52
+ uint64 bitsC : 3; // 39 - 55
+ uint64 bitsD : 3; // 42 - 58
+ uint64 bitsE : 3; // 45 - 61
+ uint64 bitsF : 3; // 48 - 64
};
uint64 u;
};
+ */
+ uint64 u;
+ uint8 alpha0() const { return u & 0xffLL; };
+ uint8 alpha1() const { return (u >> 8) & 0xffLL; };
+ uint8 bits0() const { return (u >> 16) & 0x7LL; };
+ uint8 bits1() const { return (u >> 19) & 0x7LL; };
+ uint8 bits2() const { return (u >> 22) & 0x7LL; };
+ uint8 bits3() const { return (u >> 25) & 0x7LL; };
+ uint8 bits4() const { return (u >> 28) & 0x7LL; };
+ uint8 bits5() const { return (u >> 31) & 0x7LL; };
+ uint8 bits6() const { return (u >> 34) & 0x7LL; };
+ uint8 bits7() const { return (u >> 37) & 0x7LL; };
+ uint8 bits8() const { return (u >> 40) & 0x7LL; };
+ uint8 bits9() const { return (u >> 43) & 0x7LL; };
+ uint8 bitsA() const { return (u >> 46) & 0x7LL; };
+ uint8 bitsB() const { return (u >> 49) & 0x7LL; };
+ uint8 bitsC() const { return (u >> 52) & 0x7LL; };
+ uint8 bitsD() const { return (u >> 55) & 0x7LL; };
+ uint8 bitsE() const { return (u >> 58) & 0x7LL; };
+ uint8 bitsF() const { return (u >> 61) & 0x7LL; };
void evaluatePalette(uint8 alpha[8]) const;
void evaluatePalette8(uint8 alpha[8]) const;
diff --git a/source/blender/imbuf/intern/dds/Color.h b/source/blender/imbuf/intern/dds/Color.h
index f8055afdfc9..e499572b4d7 100644
--- a/source/blender/imbuf/intern/dds/Color.h
+++ b/source/blender/imbuf/intern/dds/Color.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/imbuf/intern/dds/ColorBlock.cpp b/source/blender/imbuf/intern/dds/ColorBlock.cpp
index 0199d15ada7..d298e8b5ea8 100644
--- a/source/blender/imbuf/intern/dds/ColorBlock.cpp
+++ b/source/blender/imbuf/intern/dds/ColorBlock.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -103,7 +100,7 @@ void ColorBlock::swizzleDXT5n()
for(int i = 0; i < 16; i++)
{
Color32 c = m_color[i];
- m_color[i] = Color32(0, c.g, 0, c.r);
+ m_color[i] = Color32(0xFF, c.g, 0, c.r);
}
}
@@ -125,6 +122,19 @@ void ColorBlock::splatY()
}
}
+/// Returns true if the block has a single color.
+bool ColorBlock::isSingleColor() const
+{
+ for(int i = 1; i < 16; i++)
+ {
+ if (m_color[0] != m_color[i])
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
/// Count number of unique colors in this color block.
uint ColorBlock::countUniqueColors() const
diff --git a/source/blender/imbuf/intern/dds/ColorBlock.h b/source/blender/imbuf/intern/dds/ColorBlock.h
index 72049be5f3c..141411f37af 100644
--- a/source/blender/imbuf/intern/dds/ColorBlock.h
+++ b/source/blender/imbuf/intern/dds/ColorBlock.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -53,6 +50,7 @@ struct ColorBlock
void splatX();
void splatY();
+ bool isSingleColor() const;
uint countUniqueColors() const;
Color32 averageColor() const;
bool hasAlpha() const;
@@ -61,7 +59,6 @@ struct ColorBlock
void luminanceRange(Color32 * start, Color32 * end) const;
void boundsRange(Color32 * start, Color32 * end) const;
void boundsRangeAlpha(Color32 * start, Color32 * end) const;
- void bestFitRange(Color32 * start, Color32 * end) const;
void sortColorsByAbsoluteValue();
diff --git a/source/blender/imbuf/intern/dds/Common.h b/source/blender/imbuf/intern/dds/Common.h
index 0c687e2ca9a..6f09346f770 100644
--- a/source/blender/imbuf/intern/dds/Common.h
+++ b/source/blender/imbuf/intern/dds/Common.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _DDS_COMMON_H
diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
index f842c756ce1..01838281dee 100644
--- a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
+++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -496,9 +493,9 @@ void DDSHeader::setPixelFormat(uint bitcount, uint rmask, uint gmask, uint bmask
}
// Align to 8.
- if (bitcount < 8) bitcount = 8;
- else if (bitcount < 16) bitcount = 16;
- else if (bitcount < 24) bitcount = 24;
+ if (bitcount <= 8) bitcount = 8;
+ else if (bitcount <= 16) bitcount = 16;
+ else if (bitcount <= 24) bitcount = 24;
else bitcount = 32;
this->pf.fourcc = 0; //findD3D9Format(bitcount, rmask, gmask, bmask, amask);
@@ -606,7 +603,7 @@ bool DirectDrawSurface::isSupported() const
uint DirectDrawSurface::mipmapCount() const
{
if (header.flags & DDSD_MIPMAPCOUNT) return header.mipmapcount;
- else return 0;
+ else return 1;
}
@@ -921,6 +918,11 @@ uint DirectDrawSurface::offset(const uint face, const uint mipmap)
{
uint size = 128; //sizeof(DDSHeader);
+ if (header.hasDX10Header())
+ {
+ size += 20; // sizeof(DDSHeader10);
+ }
+
if (face != 0)
{
size += face * faceSize();
diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.h b/source/blender/imbuf/intern/dds/DirectDrawSurface.h
index d29d82f53f9..d8abfc69167 100644
--- a/source/blender/imbuf/intern/dds/DirectDrawSurface.h
+++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/imbuf/intern/dds/Image.cpp b/source/blender/imbuf/intern/dds/Image.cpp
index d8be7857c3f..8f6ac8658ba 100644
--- a/source/blender/imbuf/intern/dds/Image.cpp
+++ b/source/blender/imbuf/intern/dds/Image.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/imbuf/intern/dds/Image.h b/source/blender/imbuf/intern/dds/Image.h
index 0241839d01d..f2ff9e4fbf3 100644
--- a/source/blender/imbuf/intern/dds/Image.h
+++ b/source/blender/imbuf/intern/dds/Image.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/imbuf/intern/dds/Makefile b/source/blender/imbuf/intern/dds/Makefile
index 88d59080a47..28f9e24c947 100644
--- a/source/blender/imbuf/intern/dds/Makefile
+++ b/source/blender/imbuf/intern/dds/Makefile
@@ -1,15 +1,12 @@
#
# $Id: Makefile 7037 2006-03-12 14:11:23Z ton $
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/imbuf/intern/dds/PixelFormat.h b/source/blender/imbuf/intern/dds/PixelFormat.h
index 93f55f8266a..2004d689a3e 100644
--- a/source/blender/imbuf/intern/dds/PixelFormat.h
+++ b/source/blender/imbuf/intern/dds/PixelFormat.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/imbuf/intern/dds/Stream.cpp b/source/blender/imbuf/intern/dds/Stream.cpp
index 2340598b4fa..456f22e83b4 100644
--- a/source/blender/imbuf/intern/dds/Stream.cpp
+++ b/source/blender/imbuf/intern/dds/Stream.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <Stream.h>
diff --git a/source/blender/imbuf/intern/dds/Stream.h b/source/blender/imbuf/intern/dds/Stream.h
index 373e68db44e..73e76d0cd4f 100644
--- a/source/blender/imbuf/intern/dds/Stream.h
+++ b/source/blender/imbuf/intern/dds/Stream.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* simple memory stream functions with buffer overflow check */
diff --git a/source/blender/imbuf/intern/dds/dds_api.cpp b/source/blender/imbuf/intern/dds/dds_api.cpp
index 3de30b9f183..b41b940dca7 100644
--- a/source/blender/imbuf/intern/dds/dds_api.cpp
+++ b/source/blender/imbuf/intern/dds/dds_api.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <dds_api.h>
diff --git a/source/blender/imbuf/intern/dds/dds_api.h b/source/blender/imbuf/intern/dds/dds_api.h
index 8a0f966dd68..39e73e3eb37 100644
--- a/source/blender/imbuf/intern/dds/dds_api.h
+++ b/source/blender/imbuf/intern/dds/dds_api.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributors: Amorilia (amorilia@gamebox.net)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _DDS_API_H
diff --git a/source/blender/imbuf/intern/dither.c b/source/blender/imbuf/intern/dither.c
index 608332af244..7b8af5d230b 100644
--- a/source/blender/imbuf/intern/dither.c
+++ b/source/blender/imbuf/intern/dither.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* dither.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/divers.c b/source/blender/imbuf/intern/divers.c
index 8db07f581f5..84588b52573 100644
--- a/source/blender/imbuf/intern/divers.c
+++ b/source/blender/imbuf/intern/divers.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* allocimbuf.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/dynlibtiff.c b/source/blender/imbuf/intern/dynlibtiff.c
index 4a96af8bf2b..b057e3f8bd2 100644
--- a/source/blender/imbuf/intern/dynlibtiff.c
+++ b/source/blender/imbuf/intern/dynlibtiff.c
@@ -3,15 +3,12 @@
*
* This file is automatically generated by the gen_dynlibtiff.py script.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
*
* Contributor(s): Jonathan Merritt.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/source/blender/imbuf/intern/dynlibtiff.h b/source/blender/imbuf/intern/dynlibtiff.h
index 8d61ee3ca87..f71fb985e85 100644
--- a/source/blender/imbuf/intern/dynlibtiff.h
+++ b/source/blender/imbuf/intern/dynlibtiff.h
@@ -3,15 +3,12 @@
*
* This file is automatically generated by the gen_dynlibtiff.py script.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
*
* Contributor(s): Jonathan Merritt.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c
index 1be5cf99e19..9802405fd8d 100644
--- a/source/blender/imbuf/intern/filter.c
+++ b/source/blender/imbuf/intern/filter.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* filter.c
*
* $Id$
@@ -206,29 +203,46 @@ void imb_filterx(struct ImBuf *ibuf)
void IMB_filterN(ImBuf *out, ImBuf *in)
{
register char *row1, *row2, *row3;
- register char *cp;
+ register char *cp, *r11, *r13, *r21, *r23, *r31, *r33;
int rowlen, x, y;
rowlen= in->x;
- for(y=2; y<in->y; y++) {
+ for(y=0; y<in->y; y++) {
/* setup rows */
- row1= (char *)(in->rect + (y-2)*rowlen);
- row2= row1 + 4*rowlen;
- row3= row2 + 4*rowlen;
+ row2= (char*)(in->rect + y*rowlen);
+ row1= (y == 0)? row2: row2 - 4*rowlen;
+ row3= (y == in->y-1)? row2: row2 + 4*rowlen;
- cp= (char *)(out->rect + (y-1)*rowlen);
- cp[0]= row2[0];
- cp[1]= row2[1];
- cp[2]= row2[2];
- cp[3]= row2[3];
- cp+= 4;
+ cp= (char *)(out->rect + y*rowlen);
- for(x=2; x<rowlen; x++) {
- cp[0]= (row1[0] + 2*row1[4] + row1[8] + 2*row2[0] + 4*row2[4] + 2*row2[8] + row3[0] + 2*row3[4] + row3[8])>>4;
- cp[1]= (row1[1] + 2*row1[5] + row1[9] + 2*row2[1] + 4*row2[5] + 2*row2[9] + row3[1] + 2*row3[5] + row3[9])>>4;
- cp[2]= (row1[2] + 2*row1[6] + row1[10] + 2*row2[2] + 4*row2[6] + 2*row2[10] + row3[2] + 2*row3[6] + row3[10])>>4;
- cp[3]= (row1[3] + 2*row1[7] + row1[11] + 2*row2[3] + 4*row2[7] + 2*row2[11] + row3[3] + 2*row3[7] + row3[11])>>4;
+ for(x=0; x<rowlen; x++) {
+ if(x == 0) {
+ r11 = row1;
+ r21 = row1;
+ r31 = row1;
+ }
+ else {
+ r11 = row1-4;
+ r21 = row1-4;
+ r31 = row1-4;
+ }
+
+ if(x == rowlen-1) {
+ r13 = row1;
+ r23 = row1;
+ r33 = row1;
+ }
+ else {
+ r13 = row1+4;
+ r23 = row1+4;
+ r33 = row1+4;
+ }
+
+ cp[0]= (r11[0] + 2*row1[0] + r13[0] + 2*r21[0] + 4*row2[0] + 2*r23[0] + r31[0] + 2*row3[0] + r33[0])>>4;
+ cp[1]= (r11[1] + 2*row1[1] + r13[1] + 2*r21[1] + 4*row2[1] + 2*r23[1] + r31[1] + 2*row3[1] + r33[1])>>4;
+ cp[2]= (r11[2] + 2*row1[2] + r13[2] + 2*r21[2] + 4*row2[2] + 2*r23[2] + r31[2] + 2*row3[2] + r33[2])>>4;
+ cp[3]= (r11[3] + 2*row1[3] + r13[3] + 2*r21[3] + 4*row2[3] + 2*r23[3] + r31[3] + 2*row3[3] + r33[3])>>4;
cp+=4; row1+=4; row2+=4; row3+=4;
}
}
diff --git a/source/blender/imbuf/intern/gen_dynlibtiff.py b/source/blender/imbuf/intern/gen_dynlibtiff.py
index de3236da6c2..4dba5b13aa0 100755
--- a/source/blender/imbuf/intern/gen_dynlibtiff.py
+++ b/source/blender/imbuf/intern/gen_dynlibtiff.py
@@ -1,14 +1,11 @@
#!/usr/bin/env python
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,7 +18,7 @@
#
# Contributor(s): Jonathan Merritt.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# This script generates a C source file and a header file that implement
@@ -42,15 +39,12 @@ COMMENT = \
*
* This file is automatically generated by the gen_dynlibtiff.py script.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -63,7 +57,7 @@ COMMENT = \
*
* Contributor(s): Jonathan Merritt.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/source/blender/imbuf/intern/ham.c b/source/blender/imbuf/intern/ham.c
index de1d504980e..ec646f825db 100644
--- a/source/blender/imbuf/intern/ham.c
+++ b/source/blender/imbuf/intern/ham.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* ham.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/hamx.c b/source/blender/imbuf/intern/hamx.c
index 750b3cc1160..2f32d155407 100644
--- a/source/blender/imbuf/intern/hamx.c
+++ b/source/blender/imbuf/intern/hamx.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* hamx.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/iff.c b/source/blender/imbuf/intern/iff.c
index 675de9c76ab..c3695173068 100644
--- a/source/blender/imbuf/intern/iff.c
+++ b/source/blender/imbuf/intern/iff.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* iff.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/imageprocess.c b/source/blender/imbuf/intern/imageprocess.c
index aa09fc3ee38..30e688ebe29 100644
--- a/source/blender/imbuf/intern/imageprocess.c
+++ b/source/blender/imbuf/intern/imageprocess.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* This file was moved here from the src/ directory. It is meant to
* deal with endianness. It resided in a general blending lib. The
* other functions were only used during rendering. This single
diff --git a/source/blender/imbuf/intern/imbuf.h b/source/blender/imbuf/intern/imbuf.h
index 0f798e9f1ab..bd2a0d3082f 100644
--- a/source/blender/imbuf/intern/imbuf.h
+++ b/source/blender/imbuf/intern/imbuf.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef IMBUF_H
diff --git a/source/blender/imbuf/intern/imbuf_patch.h b/source/blender/imbuf/intern/imbuf_patch.h
index 145d48bf547..cdd6048f1ad 100644
--- a/source/blender/imbuf/intern/imbuf_patch.h
+++ b/source/blender/imbuf/intern/imbuf_patch.h
@@ -7,15 +7,12 @@
*
* $Id$ *
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -33,7 +30,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef IMBUF_PATCH_H
#define IMBUF_PATCH_H
diff --git a/source/blender/imbuf/intern/iris.c b/source/blender/imbuf/intern/iris.c
index 5c0a3f94a0e..aa3015812fc 100644
--- a/source/blender/imbuf/intern/iris.c
+++ b/source/blender/imbuf/intern/iris.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* iris.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/jpeg.c b/source/blender/imbuf/intern/jpeg.c
index eab07c19265..2f721e1d805 100644
--- a/source/blender/imbuf/intern/jpeg.c
+++ b/source/blender/imbuf/intern/jpeg.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* jpeg.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/matrix.h b/source/blender/imbuf/intern/matrix.h
index e062ee38f8f..f3856b567d7 100644
--- a/source/blender/imbuf/intern/matrix.h
+++ b/source/blender/imbuf/intern/matrix.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* rgbyuv is identiek aan rgbbeta */
diff --git a/source/blender/imbuf/intern/openexr/CMakeLists.txt b/source/blender/imbuf/intern/openexr/CMakeLists.txt
index cfe5b28b7e8..bb1dad087f3 100644
--- a/source/blender/imbuf/intern/openexr/CMakeLists.txt
+++ b/source/blender/imbuf/intern/openexr/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC openexr_api.cpp)
diff --git a/source/blender/imbuf/intern/openexr/Makefile b/source/blender/imbuf/intern/openexr/Makefile
index a3b79c951dd..f77e3723e8a 100644
--- a/source/blender/imbuf/intern/openexr/Makefile
+++ b/source/blender/imbuf/intern/openexr/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): Gernot Ziegler <gz@lysator.liu.se>
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/imbuf/intern/png.c b/source/blender/imbuf/intern/png.c
index c77ff7ea56f..3d42eafe623 100644
--- a/source/blender/imbuf/intern/png.c
+++ b/source/blender/imbuf/intern/png.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* $Id$
*/
diff --git a/source/blender/imbuf/intern/radiance_hdr.c b/source/blender/imbuf/intern/radiance_hdr.c
index 3cb9ca79ffc..ec630427745 100644
--- a/source/blender/imbuf/intern/radiance_hdr.c
+++ b/source/blender/imbuf/intern/radiance_hdr.c
@@ -61,6 +61,7 @@
#define BLU 2
#define EXP 3
#define COLXS 128
+#define STR_MAX 540
typedef unsigned char RGBE[4];
typedef float fCOLOR[3];
/* copy source -> dest */
@@ -192,7 +193,8 @@ struct ImBuf *imb_loadhdr(unsigned char *mem, int size, int flags)
}
}
if (found) {
- sscanf((char*)&mem[x+1], "%s %d %s %d", (char*)&oriY, &height, (char*)&oriX, &width);
+ if (sscanf((char *)&mem[x+1], "%79s %d %79s %d", (char*)&oriY, &height,
+ (char*)&oriX, &width) != 4) return NULL;
/* find end of this line, data right behind it */
ptr = (unsigned char *)strchr((char*)&mem[x+1], '\n');
diff --git a/source/blender/imbuf/intern/readimage.c b/source/blender/imbuf/intern/readimage.c
index a5939369d9d..881fddc1bb2 100644
--- a/source/blender/imbuf/intern/readimage.c
+++ b/source/blender/imbuf/intern/readimage.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* allocimbuf.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/rectop.c b/source/blender/imbuf/intern/rectop.c
index 5a907e71258..a8ddb271309 100644
--- a/source/blender/imbuf/intern/rectop.c
+++ b/source/blender/imbuf/intern/rectop.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* allocimbuf.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/rotate.c b/source/blender/imbuf/intern/rotate.c
index 8f5fb39d956..c04987b3e71 100644
--- a/source/blender/imbuf/intern/rotate.c
+++ b/source/blender/imbuf/intern/rotate.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* rotate.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/scaling.c b/source/blender/imbuf/intern/scaling.c
index 80731213140..40c1f83c98c 100644
--- a/source/blender/imbuf/intern/scaling.c
+++ b/source/blender/imbuf/intern/scaling.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* allocimbuf.c
*
* $Id$
@@ -915,8 +912,8 @@ static void q_scale_float(float* in, float* out, int in_width,
static int q_scale_linear_interpolation(
struct ImBuf *ibuf, int newx, int newy)
{
- if ((newx > ibuf->x && newy < ibuf->y) ||
- (newx < ibuf->x && newy > ibuf->y)) {
+ if ((newx >= ibuf->x && newy <= ibuf->y) ||
+ (newx <= ibuf->x && newy >= ibuf->y)) {
return FALSE;
}
diff --git a/source/blender/imbuf/intern/targa.c b/source/blender/imbuf/intern/targa.c
index d2979215872..303e5685503 100644
--- a/source/blender/imbuf/intern/targa.c
+++ b/source/blender/imbuf/intern/targa.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* $Id$
*/
diff --git a/source/blender/imbuf/intern/tiff.c b/source/blender/imbuf/intern/tiff.c
index eaa80865f08..194082d3e19 100644
--- a/source/blender/imbuf/intern/tiff.c
+++ b/source/blender/imbuf/intern/tiff.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
*
* Contributor(s): Jonathan Merritt.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c
index acf15c04ed9..12ab1dd0d9b 100644
--- a/source/blender/imbuf/intern/util.c
+++ b/source/blender/imbuf/intern/util.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* util.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/writeimage.c b/source/blender/imbuf/intern/writeimage.c
index ccca8e9f859..5a4f83a473b 100644
--- a/source/blender/imbuf/intern/writeimage.c
+++ b/source/blender/imbuf/intern/writeimage.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* writeimage.c
*
* $Id$
diff --git a/source/blender/include/BDR_drawaction.h b/source/blender/include/BDR_drawaction.h
index 72b3de1e54d..91635123cb7 100644
--- a/source/blender/include/BDR_drawaction.h
+++ b/source/blender/include/BDR_drawaction.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_DRAWACTION_H
diff --git a/source/blender/include/BDR_drawmesh.h b/source/blender/include/BDR_drawmesh.h
index 998cadc18a3..93e08ab452d 100644
--- a/source/blender/include/BDR_drawmesh.h
+++ b/source/blender/include/BDR_drawmesh.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_DRAWMESH_H
diff --git a/source/blender/include/BDR_drawobject.h b/source/blender/include/BDR_drawobject.h
index 05bf4d75e88..3f9a6e438cc 100644
--- a/source/blender/include/BDR_drawobject.h
+++ b/source/blender/include/BDR_drawobject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_DRAWOBJECT_H
diff --git a/source/blender/include/BDR_editcurve.h b/source/blender/include/BDR_editcurve.h
index 70282aeb0c8..9e25550ce04 100644
--- a/source/blender/include/BDR_editcurve.h
+++ b/source/blender/include/BDR_editcurve.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_EDITCURVE_H
diff --git a/source/blender/include/BDR_editface.h b/source/blender/include/BDR_editface.h
index 72b0e7352da..fb6b65c3972 100644
--- a/source/blender/include/BDR_editface.h
+++ b/source/blender/include/BDR_editface.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_EDITFACE_H
@@ -38,7 +35,7 @@ struct EditFace;
struct Mesh;
struct MCol;
-struct MTFace *get_active_mtface(struct EditFace **efa, struct MCol **mcol, short sloppy);
+struct MTFace *get_active_mtface(struct EditFace **efa, struct MCol **mcol, int sloppy);
void calculate_uv_map(unsigned short mapmode);
void default_uv(float uv[][2], float size);
void make_tfaces(struct Mesh *me);
diff --git a/source/blender/include/BDR_editmball.h b/source/blender/include/BDR_editmball.h
index e2b529acaf8..607d65a64df 100644
--- a/source/blender/include/BDR_editmball.h
+++ b/source/blender/include/BDR_editmball.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_EDITMBALL_H
diff --git a/source/blender/include/BDR_editobject.h b/source/blender/include/BDR_editobject.h
index 3bc725f5662..ac60aece344 100644
--- a/source/blender/include/BDR_editobject.h
+++ b/source/blender/include/BDR_editobject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_EDITOBJECT_H
diff --git a/source/blender/include/BDR_imagepaint.h b/source/blender/include/BDR_imagepaint.h
index e687d220906..26f2375e60a 100644
--- a/source/blender/include/BDR_imagepaint.h
+++ b/source/blender/include/BDR_imagepaint.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_IMAGEPAINT_H
diff --git a/source/blender/include/BDR_unwrapper.h b/source/blender/include/BDR_unwrapper.h
index a6ff1b614a5..e1983ee2f00 100644
--- a/source/blender/include/BDR_unwrapper.h
+++ b/source/blender/include/BDR_unwrapper.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_UNWRAPPER_H
diff --git a/source/blender/include/BDR_vpaint.h b/source/blender/include/BDR_vpaint.h
index dcf9d4ce51a..a128c146e30 100644
--- a/source/blender/include/BDR_vpaint.h
+++ b/source/blender/include/BDR_vpaint.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BDR_VPAINT_H
diff --git a/source/blender/include/BIF_butspace.h b/source/blender/include/BIF_butspace.h
index 9d5e1961178..cbbd8013c82 100644
--- a/source/blender/include/BIF_butspace.h
+++ b/source/blender/include/BIF_butspace.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_BUTSPACE_H
#define BIF_BUTSPACE_H
diff --git a/source/blender/include/BIF_cursors.h b/source/blender/include/BIF_cursors.h
index fe3ff6e2506..f4f4750b2e8 100644
--- a/source/blender/include/BIF_cursors.h
+++ b/source/blender/include/BIF_cursors.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/blender/include/BIF_drawimage.h b/source/blender/include/BIF_drawimage.h
index cb53487760b..592c33ebb88 100644
--- a/source/blender/include/BIF_drawimage.h
+++ b/source/blender/include/BIF_drawimage.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_DRAWIMAGE_H
@@ -44,7 +41,6 @@ struct MTFace;
void do_imagebuts(unsigned short event);
void calc_image_view(struct SpaceImage *sima, char mode);
void drawimagespace(struct ScrArea *sa, void *spacedata);
-void image_changed(struct SpaceImage *sima, struct Image *image);
int draw_uvs_face_check(void);
void uv_center(float uv[][2], float cent[2], void * isquad);
void draw_uvs_sima(void);
diff --git a/source/blender/include/BIF_drawoops.h b/source/blender/include/BIF_drawoops.h
index b42158d14fe..bb8444641d7 100644
--- a/source/blender/include/BIF_drawoops.h
+++ b/source/blender/include/BIF_drawoops.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_DRAWOOPS_H
diff --git a/source/blender/include/BIF_drawscene.h b/source/blender/include/BIF_drawscene.h
index ad18542ebb4..0c2567efeb4 100644
--- a/source/blender/include/BIF_drawscene.h
+++ b/source/blender/include/BIF_drawscene.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
struct Scene;
diff --git a/source/blender/include/BIF_drawscript.h b/source/blender/include/BIF_drawscript.h
index b50f12e836b..f8b2e5651a7 100644
--- a/source/blender/include/BIF_drawscript.h
+++ b/source/blender/include/BIF_drawscript.h
@@ -1,15 +1,12 @@
/**
*
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_DRAWSCRIPT_H
diff --git a/source/blender/include/BIF_drawseq.h b/source/blender/include/BIF_drawseq.h
index 4571267a09c..17311ab1489 100644
--- a/source/blender/include/BIF_drawseq.h
+++ b/source/blender/include/BIF_drawseq.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_DRAWSEQ_H
diff --git a/source/blender/include/BIF_drawtext.h b/source/blender/include/BIF_drawtext.h
index 6950f3ba215..a75e0f1bd86 100644
--- a/source/blender/include/BIF_drawtext.h
+++ b/source/blender/include/BIF_drawtext.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_DRAWTEXT_H
diff --git a/source/blender/include/BIF_editaction.h b/source/blender/include/BIF_editaction.h
index 87b3f45299b..0bd869d2923 100644
--- a/source/blender/include/BIF_editaction.h
+++ b/source/blender/include/BIF_editaction.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): 2007, Joshua Leung, Action Editor Recode
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITACTION_H
diff --git a/source/blender/include/BIF_editarmature.h b/source/blender/include/BIF_editarmature.h
index 935b93c8626..0e1557ac378 100644
--- a/source/blender/include/BIF_editarmature.h
+++ b/source/blender/include/BIF_editarmature.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITARMATURE_H
#define BIF_EDITARMATURE_H
@@ -93,6 +90,7 @@ void merge_armature(void);
void free_editArmature(void);
int join_armature(void);
+void separate_armature(void);
void load_editArmature(void);
void make_bone_parent(void);
diff --git a/source/blender/include/BIF_editconstraint.h b/source/blender/include/BIF_editconstraint.h
index 81e2356e6cb..38ea96502ee 100644
--- a/source/blender/include/BIF_editconstraint.h
+++ b/source/blender/include/BIF_editconstraint.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITCONSTRAINT_H
diff --git a/source/blender/include/BIF_editdeform.h b/source/blender/include/BIF_editdeform.h
index 84deb134be9..8e8b1be2dd3 100644
--- a/source/blender/include/BIF_editdeform.h
+++ b/source/blender/include/BIF_editdeform.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_DEFORM_H
diff --git a/source/blender/include/BIF_editfont.h b/source/blender/include/BIF_editfont.h
index 0c2c9d2779f..d41f52f3c25 100644
--- a/source/blender/include/BIF_editfont.h
+++ b/source/blender/include/BIF_editfont.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <wchar.h>
diff --git a/source/blender/include/BIF_editgroup.h b/source/blender/include/BIF_editgroup.h
index 9873a7aaef3..c33ca3b05ae 100644
--- a/source/blender/include/BIF_editgroup.h
+++ b/source/blender/include/BIF_editgroup.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
struct Group;
diff --git a/source/blender/include/BIF_editkey.h b/source/blender/include/BIF_editkey.h
index 6c03e62a24c..ab797819b61 100644
--- a/source/blender/include/BIF_editkey.h
+++ b/source/blender/include/BIF_editkey.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITKEY_H
diff --git a/source/blender/include/BIF_editlattice.h b/source/blender/include/BIF_editlattice.h
index c7cf6c570ac..388353566a0 100644
--- a/source/blender/include/BIF_editlattice.h
+++ b/source/blender/include/BIF_editlattice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITLATTICE_H
diff --git a/source/blender/include/BIF_editmesh.h b/source/blender/include/BIF_editmesh.h
index 42d581ee758..86f84c1e028 100644
--- a/source/blender/include/BIF_editmesh.h
+++ b/source/blender/include/BIF_editmesh.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* External for editmesh_xxxx.c functions */
@@ -181,6 +178,8 @@ extern void select_mesh_group_menu(void);
extern void editmesh_mark_seam(int clear);
extern void loop_multiselect(int looptype);
+extern void EM_select_more(void);
+extern void EM_select_less(void);
/* ******************* editmesh_loop.c */
@@ -260,6 +259,6 @@ int EM_texFaceCheck(void); /* can we edit UV's for this mesh?*/
int EM_vertColorCheck(void); /* can we edit colors for this mesh?*/
void EM_set_actFace(struct EditFace *efa);
-struct EditFace * EM_get_actFace(void);
+struct EditFace * EM_get_actFace(int sloppy);
#endif
diff --git a/source/blender/include/BIF_editmode_undo.h b/source/blender/include/BIF_editmode_undo.h
index 5b445fef17b..faa67f9fec1 100644
--- a/source/blender/include/BIF_editmode_undo.h
+++ b/source/blender/include/BIF_editmode_undo.h
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/blender/include/BIF_editnla.h b/source/blender/include/BIF_editnla.h
index f12a313b903..02655df6708 100644
--- a/source/blender/include/BIF_editnla.h
+++ b/source/blender/include/BIF_editnla.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITNLA_H
diff --git a/source/blender/include/BIF_editoops.h b/source/blender/include/BIF_editoops.h
index ac1badfd7bd..5012a07320a 100644
--- a/source/blender/include/BIF_editoops.h
+++ b/source/blender/include/BIF_editoops.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITOOPS_H
diff --git a/source/blender/include/BIF_editparticle.h b/source/blender/include/BIF_editparticle.h
index 6074dcd4fec..41d86565b13 100644
--- a/source/blender/include/BIF_editparticle.h
+++ b/source/blender/include/BIF_editparticle.h
@@ -3,7 +3,7 @@
*
* $Id: BIF_editparticle.h $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -29,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITPARTICLE_H
diff --git a/source/blender/include/BIF_editsca.h b/source/blender/include/BIF_editsca.h
index c8e8a33d475..bb935ecb2ff 100644
--- a/source/blender/include/BIF_editsca.h
+++ b/source/blender/include/BIF_editsca.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITSCA_H
diff --git a/source/blender/include/BIF_editseq.h b/source/blender/include/BIF_editseq.h
index 0f5b764b18c..0d1e792eb1c 100644
--- a/source/blender/include/BIF_editseq.h
+++ b/source/blender/include/BIF_editseq.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITSEQ_H
diff --git a/source/blender/include/BIF_editsima.h b/source/blender/include/BIF_editsima.h
index fe6846e4b36..a9f24c34f2f 100644
--- a/source/blender/include/BIF_editsima.h
+++ b/source/blender/include/BIF_editsima.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
struct Mesh;
@@ -35,6 +32,7 @@ struct EditMesh;
struct SpaceImage;
struct EditFace;
struct MTFace;
+struct Image;
/* id can be from 0 to 3 */
#define TF_PIN_MASK(id) (TF_PIN1 << id)
@@ -42,6 +40,8 @@ struct MTFace;
struct Object;
+void image_changed(struct SpaceImage *sima, struct Image *image);
+
void object_uvs_changed(struct Object *ob);
void object_tface_flags_changed(struct Object *ob, int updateButtons);
@@ -60,7 +60,9 @@ void borderselect_sima(short whichuvs);
void mouseco_to_curtile(void);
void mouse_select_sima(void);
void snap_menu_sima(void);
-void aspect_sima(struct SpaceImage *sima, float *x, float *y);
+void image_pixel_aspect(struct Image *image, float *x, float *y);
+void image_final_aspect(struct Image *image, float *x, float *y);
+
void select_invert_tface_uv(void);
void select_swap_tface_uv(void);
diff --git a/source/blender/include/BIF_editsound.h b/source/blender/include/BIF_editsound.h
index 6e341bfb204..6561b3e6849 100644
--- a/source/blender/include/BIF_editsound.h
+++ b/source/blender/include/BIF_editsound.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITSOUND_H
diff --git a/source/blender/include/BIF_editview.h b/source/blender/include/BIF_editview.h
index d47bd82332f..4ed3d0df367 100644
--- a/source/blender/include/BIF_editview.h
+++ b/source/blender/include/BIF_editview.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITVIEW_H
diff --git a/source/blender/include/BIF_fsmenu.h b/source/blender/include/BIF_fsmenu.h
index 1c5280c14f8..7cd7f78a363 100644
--- a/source/blender/include/BIF_fsmenu.h
+++ b/source/blender/include/BIF_fsmenu.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/include/BIF_gl.h b/source/blender/include/BIF_gl.h
index 67d51edc531..2468abdff60 100644
--- a/source/blender/include/BIF_gl.h
+++ b/source/blender/include/BIF_gl.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* os dependent include locations of gl.h
*/
@@ -56,20 +53,22 @@
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#else
- #if defined (__sun) || defined (__sun__)
+/* #if defined (__sun) || defined (__sun__)
#include <GL/gl.h>
#include <mesa/glu.h>
#else
+*/
#include <GL/gl.h>
#include <GL/glu.h>
- #endif
+/* #endif */
#endif
+
+
/*
* these should be phased out. cpack should be replaced in
* code with calls to glColor3ub, lrectwrite probably should
* change to a function. - zr
*/
-
/*
*
* This define converts a numerical value to the equivalent 24-bit
@@ -83,5 +82,9 @@
#define lrectwrite(a, b, c, d, rect) {glRasterPos2i(a, b);glDrawPixels((c)-(a)+1, (d)-(b)+1, GL_RGBA, GL_UNSIGNED_BYTE, rect);}
+/* glStippleDefines, defined in glutil.c */
+extern GLubyte stipple_halftone[128];
+extern GLubyte stipple_quarttone[128];
+
#endif /* #ifdef BIF_GL_H */
diff --git a/source/blender/include/BIF_glutil.h b/source/blender/include/BIF_glutil.h
index 237f7a85002..f530e7ba8d0 100644
--- a/source/blender/include/BIF_glutil.h
+++ b/source/blender/include/BIF_glutil.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_GLUTIL_H
diff --git a/source/blender/include/BIF_graphics.h b/source/blender/include/BIF_graphics.h
index 51aa2ceeb01..7ec7397eeec 100644
--- a/source/blender/include/BIF_graphics.h
+++ b/source/blender/include/BIF_graphics.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_GRAPHICS_H
diff --git a/source/blender/include/BIF_imasel.h b/source/blender/include/BIF_imasel.h
index fb332022ba4..a3a3b7531d6 100644
--- a/source/blender/include/BIF_imasel.h
+++ b/source/blender/include/BIF_imasel.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_IMASEL_H
#define BIF_IMASEL_H
diff --git a/source/blender/include/BIF_interface.h b/source/blender/include/BIF_interface.h
index 4fadfe12297..24747b9f220 100644
--- a/source/blender/include/BIF_interface.h
+++ b/source/blender/include/BIF_interface.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_INTERFACE_H
diff --git a/source/blender/include/BIF_interface_icons.h b/source/blender/include/BIF_interface_icons.h
index c628d68e9db..37e752fef85 100644
--- a/source/blender/include/BIF_interface_icons.h
+++ b/source/blender/include/BIF_interface_icons.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_PREVIEW_ICONS_H
diff --git a/source/blender/include/BIF_keyval.h b/source/blender/include/BIF_keyval.h
index 7134bd2b153..70d248ded91 100644
--- a/source/blender/include/BIF_keyval.h
+++ b/source/blender/include/BIF_keyval.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_KEYVAL_H
diff --git a/source/blender/include/BIF_language.h b/source/blender/include/BIF_language.h
index 6ed8a8d1574..d2f61fc418e 100644
--- a/source/blender/include/BIF_language.h
+++ b/source/blender/include/BIF_language.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_LANGUAGE_H
diff --git a/source/blender/include/BIF_mainqueue.h b/source/blender/include/BIF_mainqueue.h
index e2eaeea4dca..689b2e8dacf 100644
--- a/source/blender/include/BIF_mainqueue.h
+++ b/source/blender/include/BIF_mainqueue.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_MAINQUEUE_H
diff --git a/source/blender/include/BIF_meshlaplacian.h b/source/blender/include/BIF_meshlaplacian.h
index 74e4fef0937..9fb8aad0eb6 100644
--- a/source/blender/include/BIF_meshlaplacian.h
+++ b/source/blender/include/BIF_meshlaplacian.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* BIF_meshlaplacian.h: Algorithms using the mesh laplacian.
*/
diff --git a/source/blender/include/BIF_meshtools.h b/source/blender/include/BIF_meshtools.h
index 15782aa8f3c..b08c66fd16e 100644
--- a/source/blender/include/BIF_meshtools.h
+++ b/source/blender/include/BIF_meshtools.h
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_MESHTOOLS_H
diff --git a/source/blender/include/BIF_mywindow.h b/source/blender/include/BIF_mywindow.h
index 2b3e732b027..25076c983b9 100644
--- a/source/blender/include/BIF_mywindow.h
+++ b/source/blender/include/BIF_mywindow.h
@@ -2,15 +2,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* These are the protos for mywindow.c -- an emulation of the
* (obsolete) IrisGL command set
*/
diff --git a/source/blender/include/BIF_oops.h b/source/blender/include/BIF_oops.h
index 5da088a5ea7..f6984a23f47 100644
--- a/source/blender/include/BIF_oops.h
+++ b/source/blender/include/BIF_oops.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_OOPS_H
diff --git a/source/blender/include/BIF_outliner.h b/source/blender/include/BIF_outliner.h
index 582b2cc1ada..abf8b58b1c9 100644
--- a/source/blender/include/BIF_outliner.h
+++ b/source/blender/include/BIF_outliner.h
@@ -1,15 +1,12 @@
/**
* $Id: BIF_outliner.h
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_OUTLINER_H
diff --git a/source/blender/include/BIF_poselib.h b/source/blender/include/BIF_poselib.h
index 209c386d2d6..5b0205d593a 100644
--- a/source/blender/include/BIF_poselib.h
+++ b/source/blender/include/BIF_poselib.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joshua Leung
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_POSELIB_H
diff --git a/source/blender/include/BIF_poseobject.h b/source/blender/include/BIF_poseobject.h
index bf60fdb6038..58c67ff102a 100644
--- a/source/blender/include/BIF_poseobject.h
+++ b/source/blender/include/BIF_poseobject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_POSEOBJECT
diff --git a/source/blender/include/BIF_previewrender.h b/source/blender/include/BIF_previewrender.h
index f5661fa313d..52deceed28f 100644
--- a/source/blender/include/BIF_previewrender.h
+++ b/source/blender/include/BIF_previewrender.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_PREVIEWRENDER_H
diff --git a/source/blender/include/BIF_renderwin.h b/source/blender/include/BIF_renderwin.h
index 9bddafac701..ff12a7473d0 100644
--- a/source/blender/include/BIF_renderwin.h
+++ b/source/blender/include/BIF_renderwin.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
struct Render;
diff --git a/source/blender/include/BIF_resources.h b/source/blender/include/BIF_resources.h
index 1649287297b..adddb0d1347 100644
--- a/source/blender/include/BIF_resources.h
+++ b/source/blender/include/BIF_resources.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_RESOURCES_H
diff --git a/source/blender/include/BIF_scrarea.h b/source/blender/include/BIF_scrarea.h
index c2953078edc..6769ceb86fa 100644
--- a/source/blender/include/BIF_scrarea.h
+++ b/source/blender/include/BIF_scrarea.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef __cplusplus
diff --git a/source/blender/include/BIF_screen.h b/source/blender/include/BIF_screen.h
index 36719af7aa2..aa3fe6a9279 100644
--- a/source/blender/include/BIF_screen.h
+++ b/source/blender/include/BIF_screen.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_SCREEN_H
diff --git a/source/blender/include/BIF_space.h b/source/blender/include/BIF_space.h
index 43f0629f935..37be4a9eafc 100644
--- a/source/blender/include/BIF_space.h
+++ b/source/blender/include/BIF_space.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_SPACE_H
diff --git a/source/blender/include/BIF_spacetypes.h b/source/blender/include/BIF_spacetypes.h
index 6125cfd5926..3a3c1fc3e7a 100644
--- a/source/blender/include/BIF_spacetypes.h
+++ b/source/blender/include/BIF_spacetypes.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
struct ScrArea;
diff --git a/source/blender/include/BIF_tbcallback.h b/source/blender/include/BIF_tbcallback.h
index 98aebf5c863..27712d3020d 100644
--- a/source/blender/include/BIF_tbcallback.h
+++ b/source/blender/include/BIF_tbcallback.h
@@ -1,15 +1,12 @@
/* $Id$
*/
/*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****/
+ * ***** END GPL LICENSE BLOCK *****/
/* defines callback structure for toolbox menu */
typedef struct _TBcallback {
diff --git a/source/blender/include/BIF_toets.h b/source/blender/include/BIF_toets.h
index f5a435d3d50..9bda40c9118 100644
--- a/source/blender/include/BIF_toets.h
+++ b/source/blender/include/BIF_toets.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_TOETS_H
diff --git a/source/blender/include/BIF_toolbox.h b/source/blender/include/BIF_toolbox.h
index 39f86aefe73..dc2d5a89e9d 100644
--- a/source/blender/include/BIF_toolbox.h
+++ b/source/blender/include/BIF_toolbox.h
@@ -1,15 +1,12 @@
/* toolbox (SPACEKEY) related
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_TOOLBOX_H
@@ -50,7 +47,7 @@ int okee (char *fmt, ...);
short button (short *var, short min, short max, char *str);
short fbutton (float *var, float min, float max, float a1, float a2, char *str);
-short sbutton (char *var, float min, float max, char *str); /* __NLA */
+short sbutton (char *var, short min, short max, char *str); /* __NLA */
int movetolayer_buts (unsigned int *lay, char *title);
int movetolayer_short_buts (short *lay, char *title);
diff --git a/source/blender/include/BIF_transform.h b/source/blender/include/BIF_transform.h
index 40c4df37f71..0e3985fc52c 100644
--- a/source/blender/include/BIF_transform.h
+++ b/source/blender/include/BIF_transform.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_TRANSFORM_H
diff --git a/source/blender/include/BIF_usiblender.h b/source/blender/include/BIF_usiblender.h
index 42261ce09d3..36471402ad0 100644
--- a/source/blender/include/BIF_usiblender.h
+++ b/source/blender/include/BIF_usiblender.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_USIBLENDER_H
diff --git a/source/blender/include/BIF_verse.h b/source/blender/include/BIF_verse.h
index d491316662d..75834888e1c 100644
--- a/source/blender/include/BIF_verse.h
+++ b/source/blender/include/BIF_verse.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/include/BIF_writeavicodec.h b/source/blender/include/BIF_writeavicodec.h
index 5b8ccdce4e2..d725bc27195 100644
--- a/source/blender/include/BIF_writeavicodec.h
+++ b/source/blender/include/BIF_writeavicodec.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/include/BIF_writeimage.h b/source/blender/include/BIF_writeimage.h
index 70978a033c2..74f84324b02 100644
--- a/source/blender/include/BIF_writeimage.h
+++ b/source/blender/include/BIF_writeimage.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_WRITEIMAGE_H
diff --git a/source/blender/include/BIF_writemovie.h b/source/blender/include/BIF_writemovie.h
index 8dab1d4e7f8..b2b5ce4f2e9 100644
--- a/source/blender/include/BIF_writemovie.h
+++ b/source/blender/include/BIF_writemovie.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_WRITEMOVIE_H
diff --git a/source/blender/include/BSE_drawimasel.h b/source/blender/include/BSE_drawimasel.h
index 6c68ba79bb9..5c827653a21 100644
--- a/source/blender/include/BSE_drawimasel.h
+++ b/source/blender/include/BSE_drawimasel.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_DRAWIMASEL_H
diff --git a/source/blender/include/BSE_drawipo.h b/source/blender/include/BSE_drawipo.h
index 2053f41a178..932f103a579 100644
--- a/source/blender/include/BSE_drawipo.h
+++ b/source/blender/include/BSE_drawipo.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_DRAWIPO_H
diff --git a/source/blender/include/BSE_drawnla.h b/source/blender/include/BSE_drawnla.h
index 923d9a3f0df..5d126ca9dfc 100644
--- a/source/blender/include/BSE_drawnla.h
+++ b/source/blender/include/BSE_drawnla.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_DRAWNLA_H
diff --git a/source/blender/include/BSE_drawoops.h b/source/blender/include/BSE_drawoops.h
index 43e1dee5943..8b834ab5c12 100644
--- a/source/blender/include/BSE_drawoops.h
+++ b/source/blender/include/BSE_drawoops.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_DRAWOOPS_H
diff --git a/source/blender/include/BSE_drawview.h b/source/blender/include/BSE_drawview.h
index 294c0ceb047..09ce87015d9 100644
--- a/source/blender/include/BSE_drawview.h
+++ b/source/blender/include/BSE_drawview.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_DRAWVIEW_H
diff --git a/source/blender/include/BSE_edit.h b/source/blender/include/BSE_edit.h
index cac022ab6c2..46c0a9dbf4d 100644
--- a/source/blender/include/BSE_edit.h
+++ b/source/blender/include/BSE_edit.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_EDIT_H
diff --git a/source/blender/include/BSE_editaction_types.h b/source/blender/include/BSE_editaction_types.h
index c347c04d7c2..c531383accc 100644
--- a/source/blender/include/BSE_editaction_types.h
+++ b/source/blender/include/BSE_editaction_types.h
@@ -1,15 +1,12 @@
/**
* $Id: BIF_editaction.h 10519 2007-04-13 11:15:08Z aligorith $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): 2007, Joshua Leung (major Action Editor recode)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BIF_EDITACTION_TYPES_H
diff --git a/source/blender/include/BSE_editipo.h b/source/blender/include/BSE_editipo.h
index 99a7930ddb1..e7445efc63e 100644
--- a/source/blender/include/BSE_editipo.h
+++ b/source/blender/include/BSE_editipo.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_EDITIPO_H
@@ -113,6 +110,7 @@ void sethandles_ipo(int code);
void select_ipo_bezier_keys(struct Ipo *ipo, int selectmode);
void select_icu_bezier_keys(struct IpoCurve *icu, int selectmode);
void set_ipotype(void);
+void set_ipoextend(void);
void borderselect_ipo(void);
void del_ipo(int need_check);
void del_ipoCurve ( struct IpoCurve * icu );
diff --git a/source/blender/include/BSE_editipo_types.h b/source/blender/include/BSE_editipo_types.h
index 5076b36083a..c5ff1151e55 100644
--- a/source/blender/include/BSE_editipo_types.h
+++ b/source/blender/include/BSE_editipo_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_EDITIPO_TYPES_H
diff --git a/source/blender/include/BSE_editnla_types.h b/source/blender/include/BSE_editnla_types.h
index 434e87fbbc4..f23821e8aa3 100644
--- a/source/blender/include/BSE_editnla_types.h
+++ b/source/blender/include/BSE_editnla_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_EDITNLA_TYPES_H
diff --git a/source/blender/include/BSE_filesel.h b/source/blender/include/BSE_filesel.h
index a41eea32040..13e38d50c47 100644
--- a/source/blender/include/BSE_filesel.h
+++ b/source/blender/include/BSE_filesel.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/include/BSE_headerbuttons.h b/source/blender/include/BSE_headerbuttons.h
index 112517dbe7f..472f8f9bdce 100644
--- a/source/blender/include/BSE_headerbuttons.h
+++ b/source/blender/include/BSE_headerbuttons.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_HEADERBUTTONS_H
diff --git a/source/blender/include/BSE_seqaudio.h b/source/blender/include/BSE_seqaudio.h
index 985c4be73d2..9b2c21a0817 100644
--- a/source/blender/include/BSE_seqaudio.h
+++ b/source/blender/include/BSE_seqaudio.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/include/BSE_seqeffects.h b/source/blender/include/BSE_seqeffects.h
index 2dde9d3cc79..8d93f049794 100644
--- a/source/blender/include/BSE_seqeffects.h
+++ b/source/blender/include/BSE_seqeffects.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Peter Schlaile < peter [at] schlaile [dot] de >
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/include/BSE_sequence.h b/source/blender/include/BSE_sequence.h
index 4065d202bd6..70ba4ad8fbd 100644
--- a/source/blender/include/BSE_sequence.h
+++ b/source/blender/include/BSE_sequence.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/include/BSE_time.h b/source/blender/include/BSE_time.h
index 27560c09e75..bb235adb28a 100644
--- a/source/blender/include/BSE_time.h
+++ b/source/blender/include/BSE_time.h
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your opt ion) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_TIME_H
diff --git a/source/blender/include/BSE_trans_types.h b/source/blender/include/BSE_trans_types.h
index 9c8b9e5595f..ef8dbbc3160 100644
--- a/source/blender/include/BSE_trans_types.h
+++ b/source/blender/include/BSE_trans_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BSE_TRANS_TYPES_H
diff --git a/source/blender/include/BSE_types.h b/source/blender/include/BSE_types.h
index 591ea2f5168..d228f85091a 100644
--- a/source/blender/include/BSE_types.h
+++ b/source/blender/include/BSE_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* forward declarations for some prototype header */
/* these may wildly occur in other header files, too */
diff --git a/source/blender/include/BSE_view.h b/source/blender/include/BSE_view.h
index 0e88b2467f7..236f35f17c6 100644
--- a/source/blender/include/BSE_view.h
+++ b/source/blender/include/BSE_view.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* protos for view.c -- not complete
*/
diff --git a/source/blender/include/LOD_DependKludge.h b/source/blender/include/LOD_DependKludge.h
index 43034201b81..12a73dc744c 100644
--- a/source/blender/include/LOD_DependKludge.h
+++ b/source/blender/include/LOD_DependKludge.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Decimation file dependency fix (and kludge)
* Use together with a NAN_DECIMATIONTEST env.var. for Makefile-based linking
*/
diff --git a/source/blender/include/blendef.h b/source/blender/include/blendef.h
index 919847516e2..93e3aaf03dd 100644
--- a/source/blender/include/blendef.h
+++ b/source/blender/include/blendef.h
@@ -1,14 +1,11 @@
/* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLENDEF_H
#define BLENDEF_H
@@ -104,6 +101,7 @@
#define LASTBASE G.scene->base.last
#define BASACT (G.scene->basact)
#define OBACT (BASACT? BASACT->object: 0)
+#define OB_SUPPORT_MATERIAL(ob) ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL)
#define ID_NEW(a) if( (a) && (a)->id.newid ) (a)= (void *)(a)->id.newid
#define ID_NEW_US(a) if( (a)->id.newid) {(a)= (void *)(a)->id.newid; (a)->id.us++;}
#define ID_NEW_US2(a) if( ((ID *)a)->newid) {(a)= ((ID *)a)->newid; ((ID *)a)->us++;}
diff --git a/source/blender/include/butspace.h b/source/blender/include/butspace.h
index 739cec7b9f3..0a7097bd5a9 100644
--- a/source/blender/include/butspace.h
+++ b/source/blender/include/butspace.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BUTSPACE_H
#define BUTSPACE_H
@@ -290,17 +287,15 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la
#define B_FLUIDSIM_SELDIR 1451
#define B_FLUIDSIM_FORCEREDRAW 1452
#define B_FLUIDSIM_MAKEPART 1453
+#define B_FLUIDSIM_CHANGETYPE 1454
#define B_GROUP_RELINK 1460
#define B_OBJECT_IPOFLAG 1461
-#define B_BAKEABLE_CHANGE 1470
+#define B_BAKE_CACHE_CHANGE 1470
/* Cloth sim button defines */
-#define B_CLOTH_CLEARCACHEALL 1480
-#define B_CLOTH_CLEARCACHEFRAME 1481
-#define B_CLOTH_CHANGEPREROLL 1482
-#define B_CLOTH_RENEW 1483
+#define B_CLOTH_CHANGEPREROLL 1480
/* *********************** */
#define B_WORLDBUTS 1600
diff --git a/source/blender/include/datatoc.h b/source/blender/include/datatoc.h
index 7afd4428d70..069f0874041 100644
--- a/source/blender/include/datatoc.h
+++ b/source/blender/include/datatoc.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DATATOC_H
diff --git a/source/blender/include/editlattice_ext.h b/source/blender/include/editlattice_ext.h
index afb109df5f7..e4e07951ba6 100644
--- a/source/blender/include/editlattice_ext.h
+++ b/source/blender/include/editlattice_ext.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EDITLATTICE_EXT_H
diff --git a/source/blender/include/editmesh.h b/source/blender/include/editmesh.h
index 1b2d91e22b8..3855b8667dc 100644
--- a/source/blender/include/editmesh.h
+++ b/source/blender/include/editmesh.h
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* Internal for editmesh_xxxx.c functions */
diff --git a/source/blender/include/interface.h b/source/blender/include/interface.h
index d8e779b9af8..f488ddb1b28 100644
--- a/source/blender/include/interface.h
+++ b/source/blender/include/interface.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef INTERFACE_H
diff --git a/source/blender/include/keyed_functions.h b/source/blender/include/keyed_functions.h
index 405fec16992..d4a89865980 100644
--- a/source/blender/include/keyed_functions.h
+++ b/source/blender/include/keyed_functions.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#define KEY_GETPTR(x) (g_ptrtab ? g_ptrtab[x] : 0)
diff --git a/source/blender/include/license_key.h b/source/blender/include/license_key.h
index 1346998f520..7dc14f45e74 100644
--- a/source/blender/include/license_key.h
+++ b/source/blender/include/license_key.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef LICENCEKEY_H
#define LICENCEKEY_H
diff --git a/source/blender/include/mydevice.h b/source/blender/include/mydevice.h
index 949c9f57851..5396a347b92 100644
--- a/source/blender/include/mydevice.h
+++ b/source/blender/include/mydevice.h
@@ -11,15 +11,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -37,7 +34,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* MOUSE : 0x00x */
diff --git a/source/blender/include/nla.h b/source/blender/include/nla.h
index f07121bd56b..af8949917ad 100644
--- a/source/blender/include/nla.h
+++ b/source/blender/include/nla.h
@@ -1,15 +1,12 @@
/* nla.h May 2001
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* Use this to turn experimental options on
* or off with the #define flags. Please do not
diff --git a/source/blender/include/objfnt.h b/source/blender/include/objfnt.h
index e54b7b5e1e3..e57c5541568 100644
--- a/source/blender/include/objfnt.h
+++ b/source/blender/include/objfnt.h
@@ -1,15 +1,12 @@
/* $Id$
*/
/*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
#ifndef OBJFNTDEF
#define OBJFNTDEF
diff --git a/source/blender/include/particle_effect.h b/source/blender/include/particle_effect.h
index 883331ac740..97796c603af 100644
--- a/source/blender/include/particle_effect.h
+++ b/source/blender/include/particle_effect.h
@@ -2,15 +2,12 @@
* jan feb 96
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef PARTICLE_EFFECT_H
diff --git a/source/blender/include/playanim_ext.h b/source/blender/include/playanim_ext.h
index bef610ac018..f2e5ace851f 100644
--- a/source/blender/include/playanim_ext.h
+++ b/source/blender/include/playanim_ext.h
@@ -2,15 +2,12 @@
* external interface
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef PLAYANIM_EXT_H
diff --git a/source/blender/include/transform.h b/source/blender/include/transform.h
index cfe85916eb4..982a2f25df7 100644
--- a/source/blender/include/transform.h
+++ b/source/blender/include/transform.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef TRANSFORM_H
@@ -46,7 +43,7 @@ struct View3D;
struct ScrArea;
struct bPose;
struct bConstraint;
-
+struct BezTriple;
typedef struct NDofInput {
int flag;
@@ -137,6 +134,13 @@ typedef struct TransData2D {
float *loc2d; /* Pointer to real 2d location of data */
} TransData2D;
+/* we need to store 2 handles for each transdata incase the other handle wasnt selected */
+typedef struct TransDataCurveHandleFlags {
+ short ih1, ih2;
+ short *h1, *h2;
+} TransDataCurveHandleFlags;
+
+
typedef struct TransData {
float dist; /* Distance needed to affect element (for Proportionnal Editing) */
float rdist; /* Distance to the nearest element (for Proportionnal Editing) */
@@ -153,6 +157,7 @@ typedef struct TransData {
struct bConstraint *con; /* for objects/bones, the first constraint in its constraint stack */
TransDataExtension *ext; /* for objects, poses. 1 single malloc per TransInfo! */
TransDataIpokey *tdi; /* for objects, ipo keys. per transdata a malloc */
+ TransDataCurveHandleFlags *hdata; /* for curves, stores handle flags for modification/cancel */
void *tdmir; /* mirrored element pointer, in editmode mesh to EditVert */
short flag; /* Various flags */
short protectflag; /* If set, copy of Object or PoseChannel protection */
@@ -289,6 +294,7 @@ typedef struct TransInfo {
#define TD_NOCENTER (1 << 9)
#define TD_NO_EXT (1 << 10) /* ext abused for particle key timing */
#define TD_SKIP (1 << 11) /* don't transform this data */
+#define TD_BEZTRIPLE (1 << 12) /* if this is a bez triple, we need to restore the handles, if this is set transdata->misc.hdata needs freeing */
/* transsnap->status */
#define SNAP_ON 1
@@ -460,6 +466,8 @@ void postTrans (TransInfo *t);
void drawLine(float *center, float *dir, char axis, short options);
+TransDataCurveHandleFlags *initTransDataCurveHandes(TransData *td, struct BezTriple *bezt);
+
/* DRAWLINE options flags */
#define DRAWLIGHT 1
#define DRAWDASHED 2
diff --git a/source/blender/makesdna/CMakeLists.txt b/source/blender/makesdna/CMakeLists.txt
index 0311c5f0e5a..a1afa37e5e6 100644
--- a/source/blender/makesdna/CMakeLists.txt
+++ b/source/blender/makesdna/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,6 +22,6 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SUBDIRS(intern)
diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h
index ecd5beb04fd..60050ea010e 100644
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_ID_H
#define DNA_ID_H
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h
index 9fef59b948f..26b7e3c1013 100644
--- a/source/blender/makesdna/DNA_action_types.h
+++ b/source/blender/makesdna/DNA_action_types.h
@@ -233,7 +233,9 @@ typedef enum SACTION_FLAG {
/* don't include keyframes that are out of view */
SACTION_HORIZOPTIMISEON = (1<<5),
/* hack for moving pose-markers (temp flag) */
- SACTION_POSEMARKERS_MOVE = (1<<6)
+ SACTION_POSEMARKERS_MOVE = (1<<6),
+ /* draw action channels using group colours (where applicable) */
+ SACTION_DRAWGCOLORS = (1<<7)
} SACTION_FLAG;
/* SpaceAction AutoSnap Settings (also used by SpaceNLA) */
diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h
index 0d324b7d5d3..e34b376737a 100644
--- a/source/blender/makesdna/DNA_actuator_types.h
+++ b/source/blender/makesdna/DNA_actuator_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_ACTUATOR_TYPES_H
#define DNA_ACTUATOR_TYPES_H
@@ -205,6 +202,12 @@ typedef struct bTwoDFilterActuator{
struct Text *text;
}bTwoDFilterActuator;
+typedef struct bParentActuator {
+ char pad[4];
+ int type;
+ struct Object *ob;
+} bParentActuator;
+
typedef struct bActuator {
struct bActuator *next, *prev, *mynew;
short type;
@@ -274,6 +277,7 @@ typedef struct FreeCamera {
#define ACT_GAME 17
#define ACT_VISIBILITY 18
#define ACT_2DFILTER 19
+#define ACT_PARENT 20
/* actuator flag */
#define ACT_SHOW 1
@@ -423,6 +427,10 @@ typedef struct FreeCamera {
#define ACT_2DFILTER_INVERT 11
#define ACT_2DFILTER_CUSTOMFILTER 12
#define ACT_2DFILTER_NUMBER_OF_FILTERS 13
+
+/* parentactuator->type */
+#define ACT_PARENT_SET 0
+#define ACT_PARENT_REMOVE 1
#endif
diff --git a/source/blender/makesdna/DNA_armature_types.h b/source/blender/makesdna/DNA_armature_types.h
index ad03c8af459..673855a6932 100644
--- a/source/blender/makesdna/DNA_armature_types.h
+++ b/source/blender/makesdna/DNA_armature_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Full recode, Ton Roosendaal, Crete 2005
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_ARMATURE_TYPES_H
diff --git a/source/blender/makesdna/DNA_camera_types.h b/source/blender/makesdna/DNA_camera_types.h
index 4cb8ec25ebc..6db8358affe 100644
--- a/source/blender/makesdna/DNA_camera_types.h
+++ b/source/blender/makesdna/DNA_camera_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_CAMERA_TYPES_H
#define DNA_CAMERA_TYPES_H
diff --git a/source/blender/makesdna/DNA_cloth_types.h b/source/blender/makesdna/DNA_cloth_types.h
index 53fbd1ff72c..be1a7191796 100644
--- a/source/blender/makesdna/DNA_cloth_types.h
+++ b/source/blender/makesdna/DNA_cloth_types.h
@@ -1,15 +1,12 @@
/**
* $Id: DNA_cloth_types.h,v 1.1 2007/08/01 02:28:34 daniel Exp $
*
-* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version. The Blender
-* Foundation also sells licenses for use in proprietary software under
-* the Blender License. See http://www.blender.org/BL/ for information
-* about this.
+* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,12 +24,11 @@
*
* Contributor(s): Daniel (Genscher)
*
-* ***** END GPL/BL DUAL LICENSE BLOCK *****
+* ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_CLOTH_TYPES_H
#define DNA_CLOTH_TYPES_H
-
/**
* This struct contains all the global data required to run a simulation.
* At the time of this writing, this structure contains data appropriate
@@ -61,8 +57,8 @@ typedef struct ClothSimSettings
float structural; /* Structural spring stiffness. */
float shear; /* Shear spring stiffness. */
float bending; /* Flexion spring stiffness. */
- float sim_time;
- int flags; /* flags, see CSIMSETT_FLAGS enum above. */
+ float padf;
+ int flags; /* flags, see CSIMSETT_FLAGS enum above. */
short solver_type; /* which solver should be used? txold */
short vgroup_bend; /* vertex group for scaling bending stiffness */
float maxgoal; /* see SB */
@@ -74,21 +70,14 @@ typedef struct ClothSimSettings
int goalfrict;
float goalspring;
int maxspringlen; /* in percent!; if tearing enabled, a spring will get cut */
- int lastframe; /* frame on which simulation stops */
- int firstframe; /* frame on which simulation starts */
- int lastcachedframe;
- int editedframe; /* which frame is in buffer */
- int autoprotect; /* starting from this frame, cache gets protected */
float max_bend; /* max bending scaling value, min is "bending" */
float max_struct; /* max structural scaling value, min is "structural" */
float max_shear; /* max shear scaling value, UNUSED */
- int firstcachedframe;
float avg_spring_len; /* used for normalized springs */
short presets; /* used for presets on GUI */
- short pad;
- int pad2;
-}
-ClothSimSettings;
+ short pad;
+ float timescale; /* parameter how fast cloth runs */
+} ClothSimSettings;
typedef struct ClothCollSettings
@@ -101,9 +90,7 @@ typedef struct ClothCollSettings
struct LinkNode *collision_list; /* e.g. pointer to temp memory for collisions */
int flags; /* collision flags defined in BKE_cloth.h */
float selfepsilon; /* for selfcollision */
-}
-ClothCollSettings;
-
+} ClothCollSettings;
/**
* This structure describes a cloth object against which the
@@ -130,7 +117,6 @@ typedef struct Cloth
struct Implicit_Data *implicit; /* our implicit solver connects to this pointer */
struct Implicit_Data *implicitEM; /* our implicit solver connects to this pointer */
struct EdgeHash *edgehash; /* used for selfcollisions */
-}
-Cloth;
+} Cloth;
#endif
diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h
index 2bcf2412588..0fe0dace016 100644
--- a/source/blender/makesdna/DNA_constraint_types.h
+++ b/source/blender/makesdna/DNA_constraint_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): 2007, Joshua Leung, major recode
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Constraint DNA data
*/
diff --git a/source/blender/makesdna/DNA_controller_types.h b/source/blender/makesdna/DNA_controller_types.h
index b8bffd68db8..95c9b0d0cf7 100644
--- a/source/blender/makesdna/DNA_controller_types.h
+++ b/source/blender/makesdna/DNA_controller_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_CONTROLLER_TYPES_H
#define DNA_CONTROLLER_TYPES_H
diff --git a/source/blender/makesdna/DNA_curve_types.h b/source/blender/makesdna/DNA_curve_types.h
index 807fc2add07..a4fb8dc1150 100644
--- a/source/blender/makesdna/DNA_curve_types.h
+++ b/source/blender/makesdna/DNA_curve_types.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_CURVE_TYPES_H
#define DNA_CURVE_TYPES_H
diff --git a/source/blender/makesdna/DNA_customdata_types.h b/source/blender/makesdna/DNA_customdata_types.h
index 09af11fa64b..73a39abac55 100644
--- a/source/blender/makesdna/DNA_customdata_types.h
+++ b/source/blender/makesdna/DNA_customdata_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_CUSTOMDATA_TYPES_H
#define DNA_CUSTOMDATA_TYPES_H
diff --git a/source/blender/makesdna/DNA_documentation.h b/source/blender/makesdna/DNA_documentation.h
index 45b58f17750..b0b3646aed5 100644
--- a/source/blender/makesdna/DNA_documentation.h
+++ b/source/blender/makesdna/DNA_documentation.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* @mainpage DNA- Makesdna modules
*
diff --git a/source/blender/makesdna/DNA_effect_types.h b/source/blender/makesdna/DNA_effect_types.h
index 4d910861acd..dae812c5f5c 100644
--- a/source/blender/makesdna/DNA_effect_types.h
+++ b/source/blender/makesdna/DNA_effect_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_EFFECT_TYPES_H
#define DNA_EFFECT_TYPES_H
diff --git a/source/blender/makesdna/DNA_fileglobal_types.h b/source/blender/makesdna/DNA_fileglobal_types.h
index 1aecf4da017..270cb107309 100644
--- a/source/blender/makesdna/DNA_fileglobal_types.h
+++ b/source/blender/makesdna/DNA_fileglobal_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_FILEGLOBAL_TYPES_H
#define DNA_FILEGLOBAL_TYPES_H
diff --git a/source/blender/makesdna/DNA_group_types.h b/source/blender/makesdna/DNA_group_types.h
index 3a074dd63bc..1bb18ca2ca2 100644
--- a/source/blender/makesdna/DNA_group_types.h
+++ b/source/blender/makesdna/DNA_group_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_GROUP_TYPES_H
#define DNA_GROUP_TYPES_H
diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h
index ef79f2e941f..42b651a7555 100644
--- a/source/blender/makesdna/DNA_image_types.h
+++ b/source/blender/makesdna/DNA_image_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_IMAGE_TYPES_H
#define DNA_IMAGE_TYPES_H
diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h
index 8ec412a3534..3954a500dc7 100644
--- a/source/blender/makesdna/DNA_ipo_types.h
+++ b/source/blender/makesdna/DNA_ipo_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_IPO_TYPES_H
#define DNA_IPO_TYPES_H
diff --git a/source/blender/makesdna/DNA_key_types.h b/source/blender/makesdna/DNA_key_types.h
index 87c09fb0ee4..9e49bcfcb9a 100644
--- a/source/blender/makesdna/DNA_key_types.h
+++ b/source/blender/makesdna/DNA_key_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_KEY_TYPES_H
#define DNA_KEY_TYPES_H
diff --git a/source/blender/makesdna/DNA_lamp_types.h b/source/blender/makesdna/DNA_lamp_types.h
index f8cc2378cb1..2afe78289c1 100644
--- a/source/blender/makesdna/DNA_lamp_types.h
+++ b/source/blender/makesdna/DNA_lamp_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_LAMP_TYPES_H
#define DNA_LAMP_TYPES_H
diff --git a/source/blender/makesdna/DNA_lattice_types.h b/source/blender/makesdna/DNA_lattice_types.h
index 823dc2ba485..e889e08b066 100644
--- a/source/blender/makesdna/DNA_lattice_types.h
+++ b/source/blender/makesdna/DNA_lattice_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_LATTICE_TYPES_H
#define DNA_LATTICE_TYPES_H
diff --git a/source/blender/makesdna/DNA_listBase.h b/source/blender/makesdna/DNA_listBase.h
index e81cb886d6f..5479ba25f70 100644
--- a/source/blender/makesdna/DNA_listBase.h
+++ b/source/blender/makesdna/DNA_listBase.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* These structs are the foundation for all linked lists in the
* library system.
diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h
index a4c6120374a..9412a09d0f4 100644
--- a/source/blender/makesdna/DNA_material_types.h
+++ b/source/blender/makesdna/DNA_material_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_MATERIAL_TYPES_H
#define DNA_MATERIAL_TYPES_H
@@ -161,6 +158,7 @@ typedef struct Material {
#define MA_SHLESS 4
#define MA_WIRE 8
#define MA_VERTEXCOL 16
+#define MA_HALO_SOFT 16
#define MA_HALO 32
#define MA_ZTRA 64
#define MA_VERTEXCOLP 128
diff --git a/source/blender/makesdna/DNA_mesh_types.h b/source/blender/makesdna/DNA_mesh_types.h
index 59f3a64ba5e..752a2360905 100644
--- a/source/blender/makesdna/DNA_mesh_types.h
+++ b/source/blender/makesdna/DNA_mesh_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_MESH_TYPES_H
#define DNA_MESH_TYPES_H
diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h
index 7970ccd073c..79c1710a897 100644
--- a/source/blender/makesdna/DNA_meshdata_types.h
+++ b/source/blender/makesdna/DNA_meshdata_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_MESHDATA_TYPES_H
#define DNA_MESHDATA_TYPES_H
diff --git a/source/blender/makesdna/DNA_meta_types.h b/source/blender/makesdna/DNA_meta_types.h
index e14782cf5ca..d0ebd937740 100644
--- a/source/blender/makesdna/DNA_meta_types.h
+++ b/source/blender/makesdna/DNA_meta_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_META_TYPES_H
#define DNA_META_TYPES_H
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index c62d012643a..b7b43817474 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -371,6 +371,7 @@ typedef struct ClothModifierData {
struct Cloth *clothObject; /* The internal data structure for cloth. */
struct ClothSimSettings *sim_parms; /* definition is in DNA_cloth_types.h */
struct ClothCollSettings *coll_parms; /* definition is in DNA_cloth_types.h */
+ struct PointCache *point_cache; /* definition is in DNA_object_force.h */
} ClothModifierData;
typedef struct CollisionModifierData {
diff --git a/source/blender/makesdna/DNA_nla_types.h b/source/blender/makesdna/DNA_nla_types.h
index e9a0a3d0602..4452517d8aa 100644
--- a/source/blender/makesdna/DNA_nla_types.h
+++ b/source/blender/makesdna/DNA_nla_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_NLA_TYPES_H
diff --git a/source/blender/makesdna/DNA_object_fluidsim.h b/source/blender/makesdna/DNA_object_fluidsim.h
index 91c25d2ec1d..9b1e4fb56cb 100644
--- a/source/blender/makesdna/DNA_object_fluidsim.h
+++ b/source/blender/makesdna/DNA_object_fluidsim.h
@@ -2,15 +2,12 @@
*
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_OBJECT_FLUIDSIM_H
#define DNA_OBJECT_FLUIDSIM_H
diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h
index cdee50cfef4..dc6c2bcbcc0 100644
--- a/source/blender/makesdna/DNA_object_force.h
+++ b/source/blender/makesdna/DNA_object_force.h
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_OBJECT_FORCE_H
#define DNA_OBJECT_FORCE_H
@@ -72,6 +69,13 @@ typedef struct PartDeflect {
struct Tex *tex; /* Texture of the texture effector */
} PartDeflect;
+typedef struct PointCache {
+ int flag; /* generic flag */
+ int simframe; /* current frame of simulation (only if SIMULATION_VALID) */
+ int startframe; /* simulation start frame */
+ int endframe; /* simulation end frame */
+ int editframe; /* frame being edited (runtime only) */
+} PointCache;
typedef struct SBVertex {
float vec[4];
@@ -84,7 +88,7 @@ typedef struct SoftBody {
int totpoint, totspring;
struct BodyPoint *bpoint; /* not saved in file */
struct BodySpring *bspring; /* not saved in file */
- float ctime; /* last time calculated */
+ float pad;
/* part of UI: */
@@ -130,13 +134,15 @@ typedef struct SoftBody {
maxloops,
choke,
solver_ID,
- plastic,pad5
+ plastic,springpreload
;
struct SBScratch *scratch; /* scratch pad/cache on live time not saved in file */
float shearstiff;
float inpush;
+ struct PointCache *pointcache;
+
} SoftBody;
/* pd->forcefield: Effector Fields types */
@@ -177,21 +183,29 @@ typedef struct SoftBody {
#define PFIELD_TEX_GRAD 1
#define PFIELD_TEX_CURL 2
+/* pointcache->flag */
+#define PTCACHE_BAKED 1
+#define PTCACHE_OUTDATED 2
+#define PTCACHE_SIMULATION_VALID 4
+#define PTCACHE_BAKING 8
+#define PTCACHE_BAKE_EDIT 16
+#define PTCACHE_BAKE_EDIT_ACTIVE 32
+
/* ob->softflag */
#define OB_SB_ENABLE 1
#define OB_SB_GOAL 2
#define OB_SB_EDGES 4
#define OB_SB_QUADS 8
#define OB_SB_POSTDEF 16
-#define OB_SB_REDO 32
-#define OB_SB_BAKESET 64
-#define OB_SB_BAKEDO 128
-#define OB_SB_RESET 256
+// #define OB_SB_REDO 32
+// #define OB_SB_BAKESET 64
+// #define OB_SB_BAKEDO 128
+// #define OB_SB_RESET 256
#define OB_SB_SELF 512
#define OB_SB_FACECOLL 1024
#define OB_SB_EDGECOLL 2048
#define OB_SB_COLLFINAL 4096
-#define OB_SB_PROTECT_CACHE 8192
+//#define OB_SB_PROTECT_CACHE 8192
#define OB_SB_AERO_ANGLE 16384
/* sb->solverflags */
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index f3a0dfdfdc7..42378856f55 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_OBJECT_TYPES_H
#define DNA_OBJECT_TYPES_H
diff --git a/source/blender/makesdna/DNA_oops_types.h b/source/blender/makesdna/DNA_oops_types.h
index aaee18e3249..0a6b1a45b11 100644
--- a/source/blender/makesdna/DNA_oops_types.h
+++ b/source/blender/makesdna/DNA_oops_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_OOPS_TYPES_H
#define DNA_OOPS_TYPES_H
diff --git a/source/blender/makesdna/DNA_packedFile_types.h b/source/blender/makesdna/DNA_packedFile_types.h
index a0fdd892106..2c965c92849 100644
--- a/source/blender/makesdna/DNA_packedFile_types.h
+++ b/source/blender/makesdna/DNA_packedFile_types.h
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_PACKEDFILE_TYPES_H
diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h
index 18dba7f398d..8122cdd9cc7 100644
--- a/source/blender/makesdna/DNA_particle_types.h
+++ b/source/blender/makesdna/DNA_particle_types.h
@@ -3,15 +3,12 @@
*
* $Id: DNA_particle_types.h $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_PARTICLE_TYPES_H
@@ -206,6 +203,9 @@ typedef struct ParticleSystem{
/* temporary storage during render */
void *renderdata;
+
+ /* point cache */
+ struct PointCache *pointcache;
}ParticleSystem;
/* general particle maximums */
@@ -221,6 +221,7 @@ typedef struct ParticleSystem{
#define PART_EMITTER 0
#define PART_REACTOR 1
#define PART_HAIR 2
+#define PART_FLUID 3
/* part->flag */
#define PART_REACT_STA_END 1
@@ -386,7 +387,7 @@ typedef struct ParticleSystem{
//#define PSYS_BAKING 2
//#define PSYS_BAKE_UI 4
#define PSYS_KEYED_TIME 8
-#define PSYS_ENABLED 16
+#define PSYS_ENABLED 16 /* deprecated */
#define PSYS_FIRST_KEYED 32
#define PSYS_DRAWING 64
//#define PSYS_SOFT_BAKE 128
@@ -394,7 +395,8 @@ typedef struct ParticleSystem{
#define PSYS_HAIR_DONE 512
#define PSYS_KEYED 1024
#define PSYS_EDITED 2048
-#define PSYS_PROTECT_CACHE 4096
+//#define PSYS_PROTECT_CACHE 4096
+#define PSYS_DISABLED 8192
/* pars->flag */
#define PARS_UNEXIST 1
diff --git a/source/blender/makesdna/DNA_property_types.h b/source/blender/makesdna/DNA_property_types.h
index e46d557cc8b..b370c547ce0 100644
--- a/source/blender/makesdna/DNA_property_types.h
+++ b/source/blender/makesdna/DNA_property_types.h
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_PROPERTY_TYPES_H
#define DNA_PROPERTY_TYPES_H
diff --git a/source/blender/makesdna/DNA_radio_types.h b/source/blender/makesdna/DNA_radio_types.h
index adaa4e6e159..e757024603b 100644
--- a/source/blender/makesdna/DNA_radio_types.h
+++ b/source/blender/makesdna/DNA_radio_types.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 54a37d54e20..e0e8c351d2c 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_SCENE_TYPES_H
#define DNA_SCENE_TYPES_H
@@ -202,14 +199,6 @@ typedef struct RenderData {
*/
short ysch;
/**
- * Adjustment factors for the aspect ratio in the x direction
- */
- short xasp;
- /**
- * Adjustment factors for the aspect ratio in the x direction
- */
- short yasp;
- /**
* The number of part to use in the x direction
*/
short xparts;
@@ -225,7 +214,7 @@ typedef struct RenderData {
short bufflag;
short quality;
- short rpad;
+ short rpad, rpad1, rpad2;
/**
* Flags for render settings. Use bit-masking to access the settings.
@@ -260,6 +249,15 @@ typedef struct RenderData {
/* information on different layers to be rendered */
ListBase layers;
short actlay, pad;
+
+ /**
+ * Adjustment factors for the aspect ratio in the x direction, was a short in 2.45
+ */
+ float xasp;
+ /**
+ * Adjustment factors for the aspect ratio in the x direction, was a short in 2.45
+ */
+ float yasp;
float frs_sec_base;
@@ -495,7 +493,8 @@ typedef struct SculptData
/* Added to store if the 'Rake' setting has been set */
char rake;
- char pad[3];
+ char axislock;
+ char pad[2];
} SculptData;
typedef struct Scene {
@@ -771,11 +770,19 @@ typedef struct Scene {
#define SYMM_Y 2
#define SYMM_Z 4
+#define AXISLOCK_X 1
+#define AXISLOCK_Y 2
+#define AXISLOCK_Z 4
+
/* toolsettings->imagepaint_flag */
#define IMAGEPAINT_DRAWING 1
#define IMAGEPAINT_DRAW_TOOL 2
#define IMAGEPAINT_DRAW_TOOL_DRAWING 4
+/* toolsettings->uvcalc_flag */
+#define UVCALC_FILLHOLES 1
+#define UVCALC_NO_ASPECT_CORRECT 2 /* would call this UVCALC_ASPECT_CORRECT, except it should be default with old file */
+
/* toolsettings->particle flag */
#define PE_KEEP_LENGTHS 1
#define PE_LOCK_FIRST 2
diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h
index 65374983af5..9f0a70d9bca 100644
--- a/source/blender/makesdna/DNA_screen_types.h
+++ b/source/blender/makesdna/DNA_screen_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_SCREEN_TYPES_H
#define DNA_SCREEN_TYPES_H
diff --git a/source/blender/makesdna/DNA_scriptlink_types.h b/source/blender/makesdna/DNA_scriptlink_types.h
index a21c67fc5e8..95e20dd004d 100644
--- a/source/blender/makesdna/DNA_scriptlink_types.h
+++ b/source/blender/makesdna/DNA_scriptlink_types.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_SCRIPTLINK_TYPES_H
#define DNA_SCRIPTLINK_TYPES_H
diff --git a/source/blender/makesdna/DNA_sdna_types.h b/source/blender/makesdna/DNA_sdna_types.h
index 8553a3868d1..ac0b77aacf9 100644
--- a/source/blender/makesdna/DNA_sdna_types.h
+++ b/source/blender/makesdna/DNA_sdna_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_SDNA_H
#define DNA_SDNA_H
diff --git a/source/blender/makesdna/DNA_sensor_types.h b/source/blender/makesdna/DNA_sensor_types.h
index 7fcb400d66e..90e2b8f9f41 100644
--- a/source/blender/makesdna/DNA_sensor_types.h
+++ b/source/blender/makesdna/DNA_sensor_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_SENSOR_TYPES_H
#define DNA_SENSOR_TYPES_H
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h
index c6da10052cd..c0b9a6b9590 100644
--- a/source/blender/makesdna/DNA_sequence_types.h
+++ b/source/blender/makesdna/DNA_sequence_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_SEQUENCE_TYPES_H
#define DNA_SEQUENCE_TYPES_H
diff --git a/source/blender/makesdna/DNA_sound_types.h b/source/blender/makesdna/DNA_sound_types.h
index 27b9c373484..d05e6f1bae8 100644
--- a/source/blender/makesdna/DNA_sound_types.h
+++ b/source/blender/makesdna/DNA_sound_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_SOUND_TYPES_H
#define DNA_SOUND_TYPES_H
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index fbc30f5efcc..86f6e4bcbe4 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_SPACE_TYPES_H
#define DNA_SPACE_TYPES_H
@@ -167,7 +164,7 @@ typedef struct SpaceFile {
int totfile;
char title[24];
- char dir[160];
+ char dir[240];
char file[80];
short type, ofs, flag, sort;
@@ -373,7 +370,7 @@ typedef struct SpaceImaSel {
/* specific stuff for drawing */
char title[24];
- char dir[160];
+ char dir[240];
char file[80];
short type, menu, flag, sort;
@@ -483,10 +480,10 @@ typedef struct SpaceImaSel {
#define SI_SHOW 1
/* SpaceImage->dt_uv */
-#define SI_UVDT_DASH 0
-#define SI_UVDT_BLACK 1
-#define SI_UVDT_WHITE 2
-#define SI_UVDT_OUTLINE 3
+#define SI_UVDT_OUTLINE 0
+#define SI_UVDT_DASH 1
+#define SI_UVDT_BLACK 2
+#define SI_UVDT_WHITE 3
/* SpaceImage->dt_uvstretch */
#define SI_UVDT_STRETCH_ANGLE 0
@@ -526,6 +523,9 @@ typedef struct SpaceImaSel {
#define SI_SMOOTH_UV 1<<20
#define SI_DRAW_STRETCH 1<<21
+/* SpaceIpo->flag */
+#define SIPO_LOCK_VIEW 1<<0
+
/* SpaceText flags (moved from DNA_text_types.h) */
#define ST_SCROLL_SELECT 0x0001 // scrollable
@@ -633,6 +633,7 @@ typedef struct SpaceImaSel {
#define TIME_WITH_SEQ_AUDIO 16
#define TIME_SEQ 32
#define TIME_ALL_IMAGE_WIN 64
+#define TIME_CONTINUE_PHYSICS 128
/* sseq->mainb */
#define SEQ_DRAW_SEQUENCE 0
diff --git a/source/blender/makesdna/DNA_text_types.h b/source/blender/makesdna/DNA_text_types.h
index 8f2b40f7ff6..d1859d22115 100644
--- a/source/blender/makesdna/DNA_text_types.h
+++ b/source/blender/makesdna/DNA_text_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_TEXT_TYPES_H
#define DNA_TEXT_TYPES_H
diff --git a/source/blender/makesdna/DNA_texture_types.h b/source/blender/makesdna/DNA_texture_types.h
index bc2b0521d4f..8a79ce845d7 100644
--- a/source/blender/makesdna/DNA_texture_types.h
+++ b/source/blender/makesdna/DNA_texture_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_TEXTURE_TYPES_H
#define DNA_TEXTURE_TYPES_H
@@ -353,6 +350,7 @@ typedef struct TexMapping {
#define MTEX_ALPHAMIX 8
#define MTEX_VIEWSPACE 16
#define MTEX_DUPLI_MAPTO 32
+#define MTEX_OB_DUPLI_ORIG 64
/* blendtype */
#define MTEX_BLEND 0
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index 70a22618a15..c45571cb583 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_USERDEF_TYPES_H
diff --git a/source/blender/makesdna/DNA_vec_types.h b/source/blender/makesdna/DNA_vec_types.h
index 9ae72b1c641..264ad348e92 100644
--- a/source/blender/makesdna/DNA_vec_types.h
+++ b/source/blender/makesdna/DNA_vec_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/makesdna/DNA_vfont_types.h b/source/blender/makesdna/DNA_vfont_types.h
index df9279d6243..33b8efa8dd5 100644
--- a/source/blender/makesdna/DNA_vfont_types.h
+++ b/source/blender/makesdna/DNA_vfont_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_VFONT_TYPES_H
#define DNA_VFONT_TYPES_H
diff --git a/source/blender/makesdna/DNA_view2d_types.h b/source/blender/makesdna/DNA_view2d_types.h
index 3ed82ddc793..d7c422407ca 100644
--- a/source/blender/makesdna/DNA_view2d_types.h
+++ b/source/blender/makesdna/DNA_view2d_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_VIEW2D_TYPES_H
#define DNA_VIEW2D_TYPES_H
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index df9ea872caa..c21d629be83 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_VIEW3D_TYPES_H
#define DNA_VIEW3D_TYPES_H
@@ -84,11 +81,6 @@ typedef struct View3D {
float viewquat[4], dist, zfac, pad0; /* zfac is initgrabz() result */
- /**
- * 0 - ortho
- * 1 - do 3d perspective
- * 2 - use the camera
- */
short persp;
short view;
@@ -165,7 +157,6 @@ typedef struct View3D {
#define V3D_CLIPPING 16384
#define V3D_DRAW_CENTERS 32768
-
/* View3d->flag2 (short) */
#define V3D_OPP_DIRECTION_NAME 1
#define V3D_FLYMODE 2
@@ -181,9 +172,9 @@ typedef struct View3D {
/* View3d->persp */
-#define V3D_PERSP_ORTHO 0
-#define V3D_PERSP_DO_3D_PERSP 1
-#define V3D_PERSP_USE_THE_CAMERA 2
+#define V3D_ORTHO 0
+#define V3D_PERSP 1
+#define V3D_CAMOB 2
/* View3d->gridflag */
#define V3D_SHOW_FLOOR 1
diff --git a/source/blender/makesdna/DNA_wave_types.h b/source/blender/makesdna/DNA_wave_types.h
index f499004fff8..6f87dd69e58 100644
--- a/source/blender/makesdna/DNA_wave_types.h
+++ b/source/blender/makesdna/DNA_wave_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_WAVE_TYPES_H
#define DNA_WAVE_TYPES_H
diff --git a/source/blender/makesdna/DNA_world_types.h b/source/blender/makesdna/DNA_world_types.h
index e7a8d839227..26b3f051944 100644
--- a/source/blender/makesdna/DNA_world_types.h
+++ b/source/blender/makesdna/DNA_world_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef DNA_WORLD_TYPES_H
#define DNA_WORLD_TYPES_H
diff --git a/source/blender/makesdna/Makefile b/source/blender/makesdna/Makefile
index f8274102b8c..82009d2b80a 100644
--- a/source/blender/makesdna/Makefile
+++ b/source/blender/makesdna/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
# This module does not build normal .o's, but a DNA.c file, to be
diff --git a/source/blender/makesdna/intern/CMakeLists.txt b/source/blender/makesdna/intern/CMakeLists.txt
index 58aa4b3cd21..d4b222f3644 100644
--- a/source/blender/makesdna/intern/CMakeLists.txt
+++ b/source/blender/makesdna/intern/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC makesdna.c ../../../../intern/guardedalloc/intern/mallocn.c)
diff --git a/source/blender/makesdna/intern/Makefile b/source/blender/makesdna/intern/Makefile
index bd498961e7a..1dc82a542c7 100644
--- a/source/blender/makesdna/intern/Makefile
+++ b/source/blender/makesdna/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c
index ecf2a8e73b0..9b837f9f988 100644
--- a/source/blender/makesdna/intern/makesdna.c
+++ b/source/blender/makesdna/intern/makesdna.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* Struct muncher for making SDNA
*
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index eab47eaeb02..2cb855ed440 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -1,12 +1,9 @@
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.c intern/CMP_nodes/*.c intern/SHD_nodes/*.c)
diff --git a/source/blender/nodes/Makefile b/source/blender/nodes/Makefile
index 37edf74b3ea..ee0c82fad62 100644
--- a/source/blender/nodes/Makefile
+++ b/source/blender/nodes/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c b/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c
index f8be69d8092..6f175671296 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c
@@ -235,7 +235,7 @@ static void IIR_gauss_single(CompBuf* buf, float sigma)
#undef YVV
}
-static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf, float inpval)
+static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf, float inpval, int no_zbuf)
{
NodeDefocus *nqd = node->storage;
CompBuf *wts; // weights buffer
@@ -283,7 +283,7 @@ static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf,
// if 'no_zbuf' flag set (which is always set if input is not an image),
// values are instead interpreted directly as blur radius values
- if (nqd->no_zbuf) {
+ if (no_zbuf) {
// to prevent *reaaallly* big radius values and impossible calculation times,
// limit the maximum to half the image width or height, whichever is smaller
float maxr = 0.5f*(float)MIN2(img->x, img->y);
@@ -700,7 +700,7 @@ static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf,
// sampled, simple rejection sampling here, good enough
unsigned int maxsam, s, ui = BLI_rand()*BLI_rand();
float wcor, cpr = BLI_frand();
- if (nqd->no_zbuf)
+ if (no_zbuf)
maxsam = nqd->samples; // no zbuffer input, use sample value directly
else {
// depth adaptive sampling hack, the more out of focus, the more samples taken, 16 minimum.
@@ -774,11 +774,12 @@ static void node_composit_exec_defocus(void *data, bNode *node, bNodeStack **in,
{
CompBuf *new, *old, *zbuf_use = NULL, *img = in[0]->data, *zbuf = in[1]->data;
NodeDefocus *nqd = node->storage;
+ int no_zbuf = nqd->no_zbuf;
if ((img==NULL) || (out[0]->hasoutput==0)) return;
// if image not valid type or fstop==infinite (128), nothing to do, pass in to out
- if (((img->type!=CB_RGBA) && (img->type!=CB_VAL)) || ((nqd->no_zbuf==0) && (nqd->fstop==128.f))) {
+ if (((img->type!=CB_RGBA) && (img->type!=CB_VAL)) || ((no_zbuf==0) && (nqd->fstop==128.f))) {
out[0]->data = pass_on_compbuf(img);
return;
}
@@ -793,7 +794,7 @@ static void node_composit_exec_defocus(void *data, bNode *node, bNodeStack **in,
}
zbuf_use = typecheck_compbuf(zbuf, CB_VAL);
}
- else nqd->no_zbuf = 1; // no zbuffer input
+ else no_zbuf = 1; // no zbuffer input
// ok, process
old = img;
@@ -808,7 +809,7 @@ static void node_composit_exec_defocus(void *data, bNode *node, bNodeStack **in,
}
new = alloc_compbuf(old->x, old->y, old->type, 1);
- defocus_blur(node, new, old, zbuf_use, in[1]->vec[0]*nqd->scale);
+ defocus_blur(node, new, old, zbuf_use, in[1]->vec[0]*nqd->scale, no_zbuf);
if (nqd->gamco) {
premul_compbuf(new, 1);
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c b/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
index 5d0ab729e08..6cd1c5981a6 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
@@ -34,7 +34,7 @@
static bNodeSocketType cmp_node_gamma_in[]= {
{ SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
- { SOCK_VALUE, 1, "Gamma", 1.0f, 0.0f, 0.0f, 0.0f, 0.001f, 2.0f},
+ { SOCK_VALUE, 1, "Gamma", 1.0f, 0.0f, 0.0f, 0.0f, 0.001f, 10.0f},
{ -1, 0, "" }
};
static bNodeSocketType cmp_node_gamma_out[]= {
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c b/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
index c0845a582d3..c1f1948dba1 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
@@ -42,12 +42,12 @@ static bNodeSocketType cmp_node_texture_out[]= {
};
/* called without rect allocated */
-static void texture_procedural(CompBuf *cbuf, float *col, float xco, float yco)
+static void texture_procedural(CompBuf *cbuf, float *out, float xco, float yco)
{
bNode *node= cbuf->node;
TexResult texres= {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL};
- float vec[3], *size, nor[3]={0.0f, 0.0f, 0.0f};
- int retval, type= cbuf->type;
+ float vec[3], *size, nor[3]={0.0f, 0.0f, 0.0f}, col[4];
+ int retval, type= cbuf->procedural_type;
size= cbuf->procedural_size;
@@ -79,6 +79,8 @@ static void texture_procedural(CompBuf *cbuf, float *col, float xco, float yco)
else {
VECCOPY(col, nor);
}
+
+ typecheck_compbuf_color(out, col, cbuf->type, cbuf->procedural_type);
}
/* texture node outputs get a small rect, to make sure all other nodes accept it */
@@ -107,6 +109,7 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in,
prevbuf->node= node;
VECCOPY(prevbuf->procedural_offset, in[0]->vec);
VECCOPY(prevbuf->procedural_size, in[1]->vec);
+ prevbuf->procedural_type= CB_RGBA;
composit1_pixel_processor(node, prevbuf, prevbuf, out[0]->vec, do_copy_rgba, CB_RGBA);
generate_preview(node, prevbuf);
free_compbuf(prevbuf);
@@ -118,6 +121,7 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in,
stackbuf->node= node;
VECCOPY(stackbuf->procedural_offset, in[0]->vec);
VECCOPY(stackbuf->procedural_size, in[1]->vec);
+ stackbuf->procedural_type= CB_VAL;
out[0]->data= stackbuf;
}
@@ -128,6 +132,7 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in,
stackbuf->node= node;
VECCOPY(stackbuf->procedural_offset, in[0]->vec);
VECCOPY(stackbuf->procedural_size, in[1]->vec);
+ stackbuf->procedural_type= CB_RGBA;
out[1]->data= stackbuf;
}
diff --git a/source/blender/nodes/intern/CMP_nodes/Makefile b/source/blender/nodes/intern/CMP_nodes/Makefile
index 3564bf9034b..61b03f237db 100644
--- a/source/blender/nodes/intern/CMP_nodes/Makefile
+++ b/source/blender/nodes/intern/CMP_nodes/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/nodes/intern/CMP_util.c b/source/blender/nodes/intern/CMP_util.c
index a2629aa396e..f9805645115 100644
--- a/source/blender/nodes/intern/CMP_util.c
+++ b/source/blender/nodes/intern/CMP_util.c
@@ -225,17 +225,100 @@ CompBuf *scalefast_compbuf(CompBuf *inbuf, int newx, int newy)
return outbuf;
}
+void typecheck_compbuf_color(float *out, float *in, int outtype, int intype)
+{
+ if(intype == outtype) {
+ memcpy(out, in, sizeof(float)*outtype);
+ }
+ else if(outtype==CB_VAL) {
+ if(intype==CB_VEC2) {
+ *out= 0.5f*(in[0]+in[1]);
+ }
+ else if(intype==CB_VEC3) {
+ *out= 0.333333f*(in[0]+in[1]+in[2]);
+ }
+ else if(intype==CB_RGBA) {
+ *out= in[0]*0.35f + in[1]*0.45f + in[2]*0.2f;
+ }
+ }
+ else if(outtype==CB_VEC2) {
+ if(intype==CB_VAL) {
+ out[0]= in[0];
+ out[1]= in[0];
+ }
+ else if(intype==CB_VEC3) {
+ out[0]= in[0];
+ out[1]= in[1];
+ }
+ else if(intype==CB_RGBA) {
+ out[0]= in[0];
+ out[1]= in[1];
+ }
+ }
+ else if(outtype==CB_VEC3) {
+ if(intype==CB_VAL) {
+ out[0]= in[0];
+ out[1]= in[0];
+ out[2]= in[0];
+ }
+ else if(intype==CB_VEC2) {
+ out[0]= in[0];
+ out[1]= in[1];
+ out[2]= 0.0f;
+ }
+ else if(intype==CB_RGBA) {
+ out[0]= in[0];
+ out[1]= in[1];
+ out[2]= in[2];
+ }
+ }
+ else if(outtype==CB_RGBA) {
+ if(intype==CB_VAL) {
+ out[0]= in[0];
+ out[1]= in[0];
+ out[2]= in[0];
+ out[3]= 1.0f;
+ }
+ else if(intype==CB_VEC2) {
+ out[0]= in[0];
+ out[1]= in[1];
+ out[2]= 0.0f;
+ out[3]= 1.0f;
+ }
+ else if(intype==CB_VEC3) {
+ out[0]= in[0];
+ out[1]= in[1];
+ out[2]= in[2];
+ out[3]= 1.0f;
+ }
+ }
+}
+
CompBuf *typecheck_compbuf(CompBuf *inbuf, int type)
{
- if(inbuf && inbuf->type!=type && inbuf->rect_procedural==NULL) {
- CompBuf *outbuf= alloc_compbuf(inbuf->x, inbuf->y, type, 1);
- float *inrf= inbuf->rect;
- float *outrf= outbuf->rect;
- int x= inbuf->x*inbuf->y;
-
+ if(inbuf && inbuf->type!=type) {
+ CompBuf *outbuf;
+ float *inrf, *outrf;
+ int x;
+
+ outbuf= alloc_compbuf(inbuf->x, inbuf->y, type, 1);
+
/* warning note: xof and yof are applied in pixelprocessor, but should be copied otherwise? */
outbuf->xof= inbuf->xof;
outbuf->yof= inbuf->yof;
+
+ if(inbuf->rect_procedural) {
+ outbuf->rect_procedural= inbuf->rect_procedural;
+ VECCOPY(outbuf->procedural_size, inbuf->procedural_size);
+ VECCOPY(outbuf->procedural_offset, inbuf->procedural_offset);
+ outbuf->procedural_type= inbuf->procedural_type;
+ outbuf->node= inbuf->node;
+ return outbuf;
+ }
+
+ inrf= inbuf->rect;
+ outrf= outbuf->rect;
+ x= inbuf->x*inbuf->y;
if(type==CB_VAL) {
if(inbuf->type==CB_VEC2) {
@@ -502,6 +585,25 @@ CompBuf *valbuf_from_rgbabuf(CompBuf *cbuf, int channel)
return valbuf;
}
+static CompBuf *generate_procedural_preview(CompBuf *cbuf, int newx, int newy)
+{
+ CompBuf *outbuf;
+ float *outfp;
+ int xrad, yrad, x, y;
+
+ outbuf= alloc_compbuf(newx, newy, CB_RGBA, 1);
+
+ outfp= outbuf->rect;
+ xrad= outbuf->xrad;
+ yrad= outbuf->yrad;
+
+ for(y= -yrad; y<-yrad+outbuf->y; y++)
+ for(x= -xrad; x<-xrad+outbuf->x; x++, outfp+=outbuf->type)
+ cbuf->rect_procedural(cbuf, outfp, (float)x/(float)xrad, (float)y/(float)yrad);
+
+ return outbuf;
+}
+
void generate_preview(bNode *node, CompBuf *stackbuf)
{
bNodePreview *preview= node->preview;
@@ -509,7 +611,7 @@ void generate_preview(bNode *node, CompBuf *stackbuf)
if(preview && stackbuf) {
CompBuf *cbuf, *stackbuf_use;
- if(stackbuf->rect==NULL) return;
+ if(stackbuf->rect==NULL && stackbuf->rect_procedural==NULL) return;
stackbuf_use= typecheck_compbuf(stackbuf, CB_RGBA);
@@ -522,7 +624,10 @@ void generate_preview(bNode *node, CompBuf *stackbuf)
preview->xsize= (140*stackbuf->x)/stackbuf->y;
}
- cbuf= scalefast_compbuf(stackbuf_use, preview->xsize, preview->ysize);
+ if(stackbuf_use->rect_procedural)
+ cbuf= generate_procedural_preview(stackbuf_use, preview->xsize, preview->ysize);
+ else
+ cbuf= scalefast_compbuf(stackbuf_use, preview->xsize, preview->ysize);
/* this ensures free-compbuf does the right stuff */
SWAP(float *, cbuf->rect, node->preview->rect);
diff --git a/source/blender/nodes/intern/CMP_util.h b/source/blender/nodes/intern/CMP_util.h
index 0d7bda0604c..e111632a195 100644
--- a/source/blender/nodes/intern/CMP_util.h
+++ b/source/blender/nodes/intern/CMP_util.h
@@ -108,6 +108,7 @@ typedef struct CompBuf {
void (*rect_procedural)(struct CompBuf *, float *, float, float);
float procedural_size[3], procedural_offset[3];
+ int procedural_type;
bNode *node; /* only in use for procedural bufs */
struct CompBuf *next, *prev; /* for pass-on, works nicer than reference counting */
@@ -138,6 +139,7 @@ void node_compo_pass_on(struct bNode *node, struct bNodeStack **nsin, struct bNo
CompBuf *get_cropped_compbuf(rcti *drect, float *rectf, int rectx, int recty, int type);
CompBuf *scalefast_compbuf(CompBuf *inbuf, int newx, int newy);
CompBuf *typecheck_compbuf(CompBuf *inbuf, int type);
+void typecheck_compbuf_color(float *out, float *in, int outtype, int intype);
float *compbuf_get_pixel(CompBuf *cbuf, float *rectf, int x, int y, int xrad, int yrad);
/* **************************************************** */
diff --git a/source/blender/nodes/intern/Makefile b/source/blender/nodes/intern/Makefile
index 71290bf03cd..12b3616df25 100644
--- a/source/blender/nodes/intern/Makefile
+++ b/source/blender/nodes/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/nodes/intern/SHD_nodes/Makefile b/source/blender/nodes/intern/SHD_nodes/Makefile
index 04e042cee76..1917e9ba15c 100644
--- a/source/blender/nodes/intern/SHD_nodes/Makefile
+++ b/source/blender/nodes/intern/SHD_nodes/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/python/BPY_extern.h b/source/blender/python/BPY_extern.h
index bf7c4d7ad62..41e8004e25b 100644
--- a/source/blender/python/BPY_extern.h
+++ b/source/blender/python/BPY_extern.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten, Willian P. Germano, Chris Keith
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BPY_EXTERN_H
diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c
index 1f028e49070..9bdb4425766 100644
--- a/source/blender/python/BPY_interface.c
+++ b/source/blender/python/BPY_interface.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Michel Selten, Willian P. Germano, Stephen Swaney,
* Chris Keith, Chris Want, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <Python.h>
@@ -1004,10 +1001,10 @@ int BPY_menu_do_python( short menutype, int event )
}
if( pym->dir ) { /* script is in U.pythondir */
- char upythondir[FILE_MAXDIR];
+ char upythondir[FILE_MAX];
/* dirs in Blender can be "//", which has a special meaning */
- BLI_strncpy(upythondir, U.pythondir, FILE_MAXDIR);
+ BLI_strncpy(upythondir, U.pythondir, FILE_MAX);
BLI_convertstringcode(upythondir, G.sce, 0); /* if so, this expands it */
BLI_make_file_string( "/", filestr, upythondir, pym->filename );
}
diff --git a/source/blender/python/BPY_menus.c b/source/blender/python/BPY_menus.c
index 202c4e40b51..ce1b964b689 100644
--- a/source/blender/python/BPY_menus.c
+++ b/source/blender/python/BPY_menus.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Michael Reimpell
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -457,7 +454,7 @@ static int bpymenu_CreateFromFile( void )
{
FILE *fp;
char line[255], w1[255], w2[255], tooltip[255], *tip;
- char upythondir[FILE_MAXDIR];
+ char upythondir[FILE_MAX];
char *homedir = NULL;
int parsing, version, is_userdir;
short group;
@@ -494,13 +491,13 @@ static int bpymenu_CreateFromFile( void )
w1[0] = '\0';
fscanf( fp, "# User defined scripts dir: %[^\n]\n", w1 );
- BLI_strncpy(upythondir, U.pythondir, FILE_MAXDIR);
- BLI_convertstringcode(upythondir, G.sce, 0);
+ BLI_strncpy(upythondir, U.pythondir, FILE_MAX);
+ BLI_convertstringcode(upythondir, G.sce, 0);
- if( strcmp( w1, upythondir ) != 0 )
- return -1;
+ if( strcmp( w1, upythondir ) != 0 )
+ return -1;
- w1[0] = '\0';
+ w1[0] = '\0';
while( fgets( line, 255, fp ) ) { /* parsing file lines */
@@ -604,9 +601,9 @@ static void bpymenu_WriteDataFile( void )
if (U.pythondir[0] != '\0' &&
strcmp(U.pythondir, "/") != 0 && strcmp(U.pythondir, "//") != 0)
{
- char upythondir[FILE_MAXDIR];
+ char upythondir[FILE_MAX];
- BLI_strncpy(upythondir, U.pythondir, FILE_MAXDIR);
+ BLI_strncpy(upythondir, U.pythondir, FILE_MAX);
BLI_convertstringcode(upythondir, G.sce, 0);
fprintf( fp, "# User defined scripts dir: %s\n", upythondir );
}
@@ -940,7 +937,7 @@ static int bpymenu_GetStatMTime( const char *name, int is_file, time_t * mtime )
#ifdef WIN32
if (is_file) {
- result = stat( name, &st );
+ result = stat( name, &st );
} else {
/* needed for win32 only, remove trailing slash */
char name_stat[FILE_MAX];
@@ -976,8 +973,8 @@ static int bpymenu_GetStatMTime( const char *name, int is_file, time_t * mtime )
int BPyMenu_Init( int usedir )
{
char fname[FILE_MAXDIR];
- char dirname[FILE_MAXDIR];
- char upythondir[FILE_MAXDIR];
+ char dirname[FILE_MAX];
+ char upythondir[FILE_MAX];
char *upydir = U.pythondir, *sdir = NULL;
time_t time_dir1 = 0, time_dir2 = 0, time_file = 0;
int stat_dir1 = 0, stat_dir2 = 0, stat_file = 0;
@@ -1005,14 +1002,14 @@ int BPyMenu_Init( int usedir )
upydir = NULL;
}
else {
- BLI_strncpy(upythondir, upydir, FILE_MAXDIR);
+ BLI_strncpy(upythondir, upydir, FILE_MAX);
BLI_convertstringcode(upythondir, G.sce, 0);
}
sdir = bpy_gethome(1);
if (sdir) {
- BLI_strncpy(dirname, sdir, FILE_MAXDIR);
+ BLI_strncpy(dirname, sdir, FILE_MAX);
stat_dir1 = bpymenu_GetStatMTime( dirname, 0, &time_dir1 );
if( stat_dir1 < 0 ) {
@@ -1098,7 +1095,7 @@ the user defined Python scripts dir.\n", dirname );
fprintf(stderr, "Default scripts dir does not seem valid.\n\n");
}
if( stat_dir2 == 0 ) {
- BLI_strncpy(dirname, U.pythondir, FILE_MAXDIR);
+ BLI_strncpy(dirname, U.pythondir, FILE_MAX);
BLI_convertstringcode(dirname, G.sce, 0);
i = bpymenu_ParseDir( dirname, NULL, 1 );
if (i == -1 && DEBUG)
diff --git a/source/blender/python/BPY_menus.h b/source/blender/python/BPY_menus.h
index 89491ce3ef2..1b557f79286 100644
--- a/source/blender/python/BPY_menus.h
+++ b/source/blender/python/BPY_menus.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Matt Ebb
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BPY_MENUS_H
diff --git a/source/blender/python/CMakeLists.txt b/source/blender/python/CMakeLists.txt
index 7df1f8a02d5..0106ab77843 100644
--- a/source/blender/python/CMakeLists.txt
+++ b/source/blender/python/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC api2_2x/*.c)
SET(SRC ${SRC}
diff --git a/source/blender/python/Makefile b/source/blender/python/Makefile
index 149e40092f3..cad5db59dd1 100644
--- a/source/blender/python/Makefile
+++ b/source/blender/python/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/python/api2_2x/Armature.c b/source/blender/python/api2_2x/Armature.c
index f1fb3812625..e9dff098773 100644
--- a/source/blender/python/api2_2x/Armature.c
+++ b/source/blender/python/api2_2x/Armature.c
@@ -1,15 +1,12 @@
/*
- * $Id: Armature.c 12813 2007-12-07 09:51:02Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -23,7 +20,7 @@
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stddef.h>
@@ -181,7 +178,7 @@ static PyObject *BonesDict_repr(BPy_BonesDict *self)
{
char str[2048];
PyObject *key, *value;
- int pos = 0;
+ Py_ssize_t pos = 0;
char *p = str;
char *keys, *vals;
diff --git a/source/blender/python/api2_2x/Armature.h b/source/blender/python/api2_2x/Armature.h
index bafd49772b0..5a769122453 100644
--- a/source/blender/python/api2_2x/Armature.h
+++ b/source/blender/python/api2_2x/Armature.h
@@ -1,15 +1,12 @@
/*
- * $Id: Armature.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joseph gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_ARMATURE_H
diff --git a/source/blender/python/api2_2x/BGL.c b/source/blender/python/api2_2x/BGL.c
index c67ae7f59ef..2503a66250b 100644
--- a/source/blender/python/api2_2x/BGL.c
+++ b/source/blender/python/api2_2x/BGL.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* This file is the Blender.BGL part of opy_draw.c, from the old
diff --git a/source/blender/python/api2_2x/BGL.h b/source/blender/python/api2_2x/BGL.h
index f8dea726d73..ce972795322 100644
--- a/source/blender/python/api2_2x/BGL.h
+++ b/source/blender/python/api2_2x/BGL.h
@@ -1,15 +1,12 @@
/*
- * $Id: BGL.h 5407 2005-10-02 17:09:11Z zuster $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* This is the Blender.BGL part of opy_draw.c, from the old bpython/intern
diff --git a/source/blender/python/api2_2x/BezTriple.c b/source/blender/python/api2_2x/BezTriple.c
index e4a872c52c0..b7b94dc93e1 100644
--- a/source/blender/python/api2_2x/BezTriple.c
+++ b/source/blender/python/api2_2x/BezTriple.c
@@ -1,15 +1,12 @@
/*
- * $Id: BezTriple.c 11241 2007-07-12 11:51:21Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Jacques Guignot RIP 2005,
* Stephen Swaney, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BezTriple.h" /*This must come first */
diff --git a/source/blender/python/api2_2x/BezTriple.h b/source/blender/python/api2_2x/BezTriple.h
index 38c9b88e185..3bf27d6e1b2 100644
--- a/source/blender/python/api2_2x/BezTriple.h
+++ b/source/blender/python/api2_2x/BezTriple.h
@@ -1,15 +1,12 @@
/*
- * $Id: BezTriple.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot, Stephen Swaney
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_BEZTRIPLE_H
diff --git a/source/blender/python/api2_2x/Blender.c b/source/blender/python/api2_2x/Blender.c
index dbcd21f04f3..6d9c448c16f 100644
--- a/source/blender/python/api2_2x/Blender.c
+++ b/source/blender/python/api2_2x/Blender.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Michel Selten, Willian P. Germano, Joseph Gilbert,
* Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
struct ID; /*keep me up here */
@@ -371,9 +368,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
}
else if(StringEqual(str, "udatadir")) {
if (U.pythondir[0] != '\0') {
- char upydir[FILE_MAXDIR];
+ char upydir[FILE_MAX];
- BLI_strncpy(upydir, U.pythondir, FILE_MAXDIR);
+ BLI_strncpy(upydir, U.pythondir, FILE_MAX);
BLI_convertstringcode(upydir, G.sce, 0);
if (BLI_exists(upydir)) {
@@ -397,9 +394,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
}
else if( StringEqual( str, "uscriptsdir" ) ) {
if (U.pythondir[0] != '\0') {
- char upydir[FILE_MAXDIR];
+ char upydir[FILE_MAX];
- BLI_strncpy(upydir, U.pythondir, FILE_MAXDIR);
+ BLI_strncpy(upydir, U.pythondir, FILE_MAX);
BLI_convertstringcode(upydir, G.sce, 0);
if( BLI_exists( upydir ) )
@@ -410,9 +407,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
/* USER PREFS: */
else if( StringEqual( str, "yfexportdir" ) ) {
if (U.yfexportdir[0] != '\0') {
- char yfexportdir[FILE_MAXDIR];
+ char yfexportdir[FILE_MAX];
- BLI_strncpy(yfexportdir, U.yfexportdir, FILE_MAXDIR);
+ BLI_strncpy(yfexportdir, U.yfexportdir, FILE_MAX);
BLI_convertstringcode(yfexportdir, G.sce, 0);
if( BLI_exists( yfexportdir ) )
@@ -423,9 +420,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
/* fontsdir */
else if( StringEqual( str, "fontsdir" ) ) {
if (U.fontdir[0] != '\0') {
- char fontdir[FILE_MAXDIR];
+ char fontdir[FILE_MAX];
- BLI_strncpy(fontdir, U.fontdir, FILE_MAXDIR);
+ BLI_strncpy(fontdir, U.fontdir, FILE_MAX);
BLI_convertstringcode(fontdir, G.sce, 0);
if( BLI_exists( fontdir ) )
@@ -436,9 +433,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
/* texturesdir */
else if( StringEqual( str, "texturesdir" ) ) {
if (U.textudir[0] != '\0') {
- char textudir[FILE_MAXDIR];
+ char textudir[FILE_MAX];
- BLI_strncpy(textudir, U.textudir, FILE_MAXDIR);
+ BLI_strncpy(textudir, U.textudir, FILE_MAX);
BLI_convertstringcode(textudir, G.sce, 0);
if( BLI_exists( textudir ) )
@@ -449,9 +446,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
/* texpluginsdir */
else if( StringEqual( str, "texpluginsdir" ) ) {
if (U.plugtexdir[0] != '\0') {
- char plugtexdir[FILE_MAXDIR];
+ char plugtexdir[FILE_MAX];
- BLI_strncpy(plugtexdir, U.plugtexdir, FILE_MAXDIR);
+ BLI_strncpy(plugtexdir, U.plugtexdir, FILE_MAX);
BLI_convertstringcode(plugtexdir, G.sce, 0);
if( BLI_exists( plugtexdir ) )
@@ -462,9 +459,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
/* seqpluginsdir */
else if( StringEqual( str, "seqpluginsdir" ) ) {
if (U.plugseqdir[0] != '\0') {
- char plugseqdir[FILE_MAXDIR];
+ char plugseqdir[FILE_MAX];
- BLI_strncpy(plugseqdir, U.plugseqdir, FILE_MAXDIR);
+ BLI_strncpy(plugseqdir, U.plugseqdir, FILE_MAX);
BLI_convertstringcode(plugseqdir, G.sce, 0);
if( BLI_exists( plugseqdir ) )
@@ -475,9 +472,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
/* renderdir */
else if( StringEqual( str, "renderdir" ) ) {
if (U.renderdir[0] != '\0') {
- char renderdir[FILE_MAXDIR];
+ char renderdir[FILE_MAX];
- BLI_strncpy(renderdir, U.renderdir, FILE_MAXDIR);
+ BLI_strncpy(renderdir, U.renderdir, FILE_MAX);
BLI_convertstringcode(renderdir, G.sce, 0);
if( BLI_exists( renderdir ) )
@@ -488,9 +485,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
/* soundsdir */
else if( StringEqual( str, "soundsdir" ) ) {
if (U.sounddir[0] != '\0') {
- char sounddir[FILE_MAXDIR];
+ char sounddir[FILE_MAX];
- BLI_strncpy(sounddir, U.sounddir, FILE_MAXDIR);
+ BLI_strncpy(sounddir, U.sounddir, FILE_MAX);
BLI_convertstringcode(sounddir, G.sce, 0);
if( BLI_exists( sounddir ) )
@@ -501,9 +498,9 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value )
/* tempdir */
else if( StringEqual( str, "tempdir" ) ) {
if (U.tempdir[0] != '\0') {
- char tempdir[FILE_MAXDIR];
+ char tempdir[FILE_MAX];
- BLI_strncpy(tempdir, U.tempdir, FILE_MAXDIR);
+ BLI_strncpy(tempdir, U.tempdir, FILE_MAX);
BLI_convertstringcode(tempdir, G.sce, 0);
if( BLI_exists( tempdir ) )
@@ -776,9 +773,9 @@ static PyObject *Blender_ShowHelp(PyObject *self, PyObject *script)
if (sdir) BLI_make_file_string("/", hspath, sdir, "help_browser.py");
if (!sdir || (!BLI_exists(hspath) && (U.pythondir[0] != '\0'))) {
- char upydir[FILE_MAXDIR];
+ char upydir[FILE_MAX];
- BLI_strncpy(upydir, U.pythondir, FILE_MAXDIR);
+ BLI_strncpy(upydir, U.pythondir, FILE_MAX);
BLI_convertstringcode(upydir, G.sce, 0);
BLI_make_file_string("/", hspath, upydir, "help_browser.py");
diff --git a/source/blender/python/api2_2x/Blender.h b/source/blender/python/api2_2x/Blender.h
index 77f21ed333c..ffd1eb274c4 100644
--- a/source/blender/python/api2_2x/Blender.h
+++ b/source/blender/python/api2_2x/Blender.h
@@ -1,15 +1,12 @@
/*
- * $Id: Blender.h 4803 2005-07-18 03:50:37Z ascotan $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten, Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_BLENDER_H
diff --git a/source/blender/python/api2_2x/Bone.c b/source/blender/python/api2_2x/Bone.c
index 704fe20d6db..84faf416c5f 100644
--- a/source/blender/python/api2_2x/Bone.c
+++ b/source/blender/python/api2_2x/Bone.c
@@ -1,15 +1,12 @@
/*
- * $Id: Bone.c 12399 2007-10-26 08:19:40Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Bone.h"
diff --git a/source/blender/python/api2_2x/Bone.h b/source/blender/python/api2_2x/Bone.h
index da7efe27931..4ae25165025 100644
--- a/source/blender/python/api2_2x/Bone.h
+++ b/source/blender/python/api2_2x/Bone.h
@@ -1,15 +1,12 @@
/*
- * $Id: Bone.h 12399 2007-10-26 08:19:40Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_BONE_H
diff --git a/source/blender/python/api2_2x/Camera.c b/source/blender/python/api2_2x/Camera.c
index 5558b179e23..b35fcf410a4 100644
--- a/source/blender/python/api2_2x/Camera.c
+++ b/source/blender/python/api2_2x/Camera.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Johnny Matthews, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Camera.h" /*This must come first */
@@ -36,6 +33,7 @@
#include "BKE_global.h"
#include "BKE_object.h"
#include "BKE_library.h"
+#include "BKE_utildefines.h"
#include "BLI_blenlib.h"
#include "BLI_arithb.h" /* for M_PI */
#include "BSE_editipo.h"
@@ -685,7 +683,7 @@ static PyObject *getFloatAttr( BPy_Camera *self, void *type )
float param;
struct Camera *cam= self->camera;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_CAM_ATTR_LENS:
param = cam->lens;
break;
@@ -738,7 +736,7 @@ static int setFloatAttrClamp( BPy_Camera *self, PyObject *value, void *type )
float min, max;
int ret;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_CAM_ATTR_LENS:
min = 1.0;
max = 250.0;
@@ -798,7 +796,7 @@ static int setFloatAttrClamp( BPy_Camera *self, PyObject *value, void *type )
ret = EXPP_setFloatClamped( value, param, min, max );
if (ret==0) {
- if ((int)type == EXPP_CAM_ATTR_ANGLE) {
+ if (GET_INT_FROM_POINTER(type) == EXPP_CAM_ATTR_ANGLE) {
cam->lens = 16.0f / tan(M_PI*cam->lens/360.0f);
}
}
@@ -812,7 +810,7 @@ static int setFloatAttrClamp( BPy_Camera *self, PyObject *value, void *type )
static PyObject *getFlagAttr( BPy_Camera *self, void *type )
{
- if (self->camera->flag & (int)type)
+ if (self->camera->flag & GET_INT_FROM_POINTER(type))
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
@@ -830,9 +828,9 @@ static int setFlagAttr( BPy_Camera *self, PyObject *value, void *type )
"expected True/False or 0/1" );
if (param)
- self->camera->flag |= (int)type;
+ self->camera->flag |= GET_INT_FROM_POINTER(type);
else
- self->camera->flag &= ~(int)type;
+ self->camera->flag &= ~GET_INT_FROM_POINTER(type);
return 0;
}
diff --git a/source/blender/python/api2_2x/Camera.h b/source/blender/python/api2_2x/Camera.h
index bb751a8849a..4751300c58c 100644
--- a/source/blender/python/api2_2x/Camera.h
+++ b/source/blender/python/api2_2x/Camera.h
@@ -1,15 +1,12 @@
/*
- * $Id: Camera.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_CAMERA_H
diff --git a/source/blender/python/api2_2x/Constraint.c b/source/blender/python/api2_2x/Constraint.c
index 844b9cc99ad..8db6a49465e 100644
--- a/source/blender/python/api2_2x/Constraint.c
+++ b/source/blender/python/api2_2x/Constraint.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert, Ken Hughes, Joshua Leung
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Constraint.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/Constraint.h b/source/blender/python/api2_2x/Constraint.h
index a9b983fadb4..2dae344c0be 100644
--- a/source/blender/python/api2_2x/Constraint.h
+++ b/source/blender/python/api2_2x/Constraint.h
@@ -1,15 +1,12 @@
/*
- * $Id: Constraint.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_CONSTRAINT_H
diff --git a/source/blender/python/api2_2x/CurNurb.c b/source/blender/python/api2_2x/CurNurb.c
index fc79296e952..174b5fb08dc 100644
--- a/source/blender/python/api2_2x/CurNurb.c
+++ b/source/blender/python/api2_2x/CurNurb.c
@@ -1,14 +1,11 @@
/*
- * $Id: CurNurb.c 12813 2007-12-07 09:51:02Z campbellbarton $
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * $Id$
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Stephen Swaney, Campbell Barton, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "CurNurb.h" /*This must come first */
@@ -37,6 +34,8 @@
#include "gen_utils.h"
#include "BezTriple.h"
+#include "BKE_utildefines.h"
+
/* Only for ME_SMOOTH */
#include "DNA_meshdata_types.h"
@@ -433,14 +432,14 @@ static PyObject *CurNurb_getPoints( BPy_CurNurb * self )
static PyObject *CurNurb_getFlagBits( BPy_CurNurb * self, void *type )
{
return EXPP_getBitfield( (void *)&self->nurb->flag,
- (int)type, 'h' );
+ GET_INT_FROM_POINTER(type), 'h' );
}
static int CurNurb_setFlagBits( BPy_CurNurb * self, PyObject *value,
void *type )
{
return EXPP_setBitfield( value, (void *)&self->nurb->flag,
- (int)type, 'h' );
+ GET_INT_FROM_POINTER(type), 'h' );
}
/*
diff --git a/source/blender/python/api2_2x/CurNurb.h b/source/blender/python/api2_2x/CurNurb.h
index f7c50c41bb9..17254036563 100644
--- a/source/blender/python/api2_2x/CurNurb.h
+++ b/source/blender/python/api2_2x/CurNurb.h
@@ -1,14 +1,11 @@
/*
- * $Id: CurNurb.h 10269 2007-03-15 01:09:14Z campbellbarton $
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * $Id$
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Stephen Swaney
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_NURB_H
diff --git a/source/blender/python/api2_2x/Curve.c b/source/blender/python/api2_2x/Curve.c
index e96e25c25d8..26208e600e6 100644
--- a/source/blender/python/api2_2x/Curve.c
+++ b/source/blender/python/api2_2x/Curve.c
@@ -1,15 +1,12 @@
/*
- * $Id: Curve.c 12752 2007-12-01 23:25:00Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot, Stephen Swaney
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Curve.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/Curve.h b/source/blender/python/api2_2x/Curve.h
index b6c80058b77..9d736669d29 100644
--- a/source/blender/python/api2_2x/Curve.h
+++ b/source/blender/python/api2_2x/Curve.h
@@ -1,15 +1,12 @@
/*
- * $Id: Curve.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot, Stephen Swaney
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_CURVE_H
diff --git a/source/blender/python/api2_2x/Draw.c b/source/blender/python/api2_2x/Draw.c
index 76e33a1bcb7..cd7ec781b2b 100644
--- a/source/blender/python/api2_2x/Draw.c
+++ b/source/blender/python/api2_2x/Draw.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Campbell Barton, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* This file is the Blender.Draw part of opy_draw.c, from the old
@@ -532,10 +529,8 @@ static int Button_setattr( PyObject * self, char *name, PyObject * v )
return 0;
}
else if( but->type == BSTRING_TYPE && PyString_Check(v) ) {
- char *newstr;
- unsigned int newlen;
-
- PyString_AsStringAndSize( v, &newstr, (int *)&newlen );
+ char *newstr = PyString_AsString(v);
+ size_t newlen = strlen(newstr);
if (newlen+1> UI_MAX_DRAW_STR)
return EXPP_ReturnIntError( PyExc_ValueError, "Error: button string length exceeded max limit (399 chars).");
diff --git a/source/blender/python/api2_2x/Draw.h b/source/blender/python/api2_2x/Draw.h
index a78b19b0ebd..561cd88952c 100644
--- a/source/blender/python/api2_2x/Draw.h
+++ b/source/blender/python/api2_2x/Draw.h
@@ -1,15 +1,12 @@
/*
- * $Id: Draw.h 11387 2007-07-27 06:14:25Z joeedh $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* The code in Draw.[ch] and BGL.[ch] comes from opy_draw.c in the old
diff --git a/source/blender/python/api2_2x/EXPP_interface.c b/source/blender/python/api2_2x/EXPP_interface.c
index 9d49746ff41..71f52c3e48c 100644
--- a/source/blender/python/api2_2x/EXPP_interface.c
+++ b/source/blender/python/api2_2x/EXPP_interface.c
@@ -1,15 +1,12 @@
/*
- * $Id: EXPP_interface.c 7338 2006-04-30 16:22:31Z ianwill $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <Python.h>
diff --git a/source/blender/python/api2_2x/EXPP_interface.h b/source/blender/python/api2_2x/EXPP_interface.h
index 8ed0836820d..6dc01244401 100644
--- a/source/blender/python/api2_2x/EXPP_interface.h
+++ b/source/blender/python/api2_2x/EXPP_interface.h
@@ -1,15 +1,12 @@
/*
- * $Id: EXPP_interface.h 7338 2006-04-30 16:22:31Z ianwill $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten, Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_INTERFACE_H
diff --git a/source/blender/python/api2_2x/Effect.c b/source/blender/python/api2_2x/Effect.c
index 43c86ebe634..f47221ccc8d 100644
--- a/source/blender/python/api2_2x/Effect.c
+++ b/source/blender/python/api2_2x/Effect.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot, Jean-Michel Soler, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Effect.h" /*This must come first */
diff --git a/source/blender/python/api2_2x/Effect.h b/source/blender/python/api2_2x/Effect.h
index 86996b9f8a6..8e6a67fe460 100644
--- a/source/blender/python/api2_2x/Effect.h
+++ b/source/blender/python/api2_2x/Effect.h
@@ -1,15 +1,12 @@
/*
- * $Id: Effect.h 5817 2005-11-17 19:19:05Z khughes $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_EFFECT_H
diff --git a/source/blender/python/api2_2x/Font.c b/source/blender/python/api2_2x/Font.c
index 61edac2841a..a8c7435f68b 100644
--- a/source/blender/python/api2_2x/Font.c
+++ b/source/blender/python/api2_2x/Font.c
@@ -1,13 +1,10 @@
/*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joilnen Leite
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Font.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/Font.h b/source/blender/python/api2_2x/Font.h
index 75867c5b6e7..ad6198f3b77 100644
--- a/source/blender/python/api2_2x/Font.h
+++ b/source/blender/python/api2_2x/Font.h
@@ -1,15 +1,12 @@
/*
- * $Id: Font.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joilnen Leite
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_FONT_H
diff --git a/source/blender/python/api2_2x/Geometry.c b/source/blender/python/api2_2x/Geometry.c
index 909e6e449cb..c800adee30b 100644
--- a/source/blender/python/api2_2x/Geometry.c
+++ b/source/blender/python/api2_2x/Geometry.c
@@ -1,15 +1,12 @@
/*
- * $Id: Geometry.c 12867 2007-12-13 15:06:02Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert, Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Geometry.h"
diff --git a/source/blender/python/api2_2x/Geometry.h b/source/blender/python/api2_2x/Geometry.h
index a9a1c7cf818..d7de9561078 100644
--- a/source/blender/python/api2_2x/Geometry.h
+++ b/source/blender/python/api2_2x/Geometry.h
@@ -1,15 +1,12 @@
/*
- * $Id: Geometry.h 10324 2007-03-21 17:06:02Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*Include this file for access to vector, quat, matrix, euler, etc...*/
diff --git a/source/blender/python/api2_2x/Group.c b/source/blender/python/api2_2x/Group.c
index b4819a425f3..3e7f02c3797 100644
--- a/source/blender/python/api2_2x/Group.c
+++ b/source/blender/python/api2_2x/Group.c
@@ -1,13 +1,10 @@
/*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Group.h" /* This must come first */
diff --git a/source/blender/python/api2_2x/Group.h b/source/blender/python/api2_2x/Group.h
index 68b6ce3eb17..d3275951b2c 100644
--- a/source/blender/python/api2_2x/Group.h
+++ b/source/blender/python/api2_2x/Group.h
@@ -1,15 +1,12 @@
/*
- * $Id: Group.h 11864 2007-08-28 10:07:08Z sirdude $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_GROUP_H
diff --git a/source/blender/python/api2_2x/IDProp.c b/source/blender/python/api2_2x/IDProp.c
index 3358b06d30b..f60ebf8dee1 100644
--- a/source/blender/python/api2_2x/IDProp.c
+++ b/source/blender/python/api2_2x/IDProp.c
@@ -1,15 +1,12 @@
/**
* $Id: IDProp.c
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joseph Eagar
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "DNA_ID.h"
@@ -519,7 +516,7 @@ PyObject *BPy_IDGroup_HasKey(BPy_IDProperty *self, PyObject *value)
PyObject *BPy_IDGroup_Update(BPy_IDProperty *self, PyObject *vars)
{
PyObject *pyob, *pkey, *pval;
- int i=0;
+ Py_ssize_t i=0;
if (PySequence_Size(vars) != 1)
return EXPP_ReturnPyObjError( PyExc_TypeError,
diff --git a/source/blender/python/api2_2x/IDProp.h b/source/blender/python/api2_2x/IDProp.h
index 5fcf4f6e1b7..9316a01680b 100644
--- a/source/blender/python/api2_2x/IDProp.h
+++ b/source/blender/python/api2_2x/IDProp.h
@@ -1,15 +1,12 @@
/**
* $Id: IDProp.h
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joseph Eagar
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <Python.h>
diff --git a/source/blender/python/api2_2x/Image.c b/source/blender/python/api2_2x/Image.c
index c8217eba2b2..94da5a77170 100644
--- a/source/blender/python/api2_2x/Image.c
+++ b/source/blender/python/api2_2x/Image.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Willian P. Germano, Campbell Barton, Joilnen B. Leite,
* Austin Benesh
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Image.h" /*This must come first */
@@ -191,7 +188,7 @@ static PyMethodDef BPy_Image_methods[] = {
"(int) - Change Image object animation speed (fps)"},
{"save", ( PyCFunction ) Image_save, METH_NOARGS,
"() - Write image buffer to file"},
- {"unpack", ( PyCFunction ) Image_unpack, METH_VARARGS,
+ {"unpack", ( PyCFunction ) Image_unpack, METH_O,
"(int) - Unpack image. Uses the values defined in Blender.UnpackModes."},
{"pack", ( PyCFunction ) Image_pack, METH_NOARGS,
"() - Pack the image"},
@@ -1194,7 +1191,7 @@ static PyObject *Image_hasData(BPy_Image *self, void *closure)
static PyObject *Image_getFlag(BPy_Image *self, void *flag)
{
- if (self->image->flag & (int)flag)
+ if (self->image->flag & GET_INT_FROM_POINTER(flag))
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
@@ -1203,7 +1200,7 @@ static PyObject *Image_getFlag(BPy_Image *self, void *flag)
static PyObject *Image_getFlagTpage(BPy_Image *self, void *flag)
{
- if (self->image->tpageflag & (int)flag)
+ if (self->image->tpageflag & GET_INT_FROM_POINTER(flag))
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
@@ -1238,9 +1235,9 @@ static int Image_setFlag(BPy_Image *self, PyObject *value, void *flag)
"expected True/False or 0/1" );
if ( param )
- self->image->flag |= (int)flag;
+ self->image->flag |= GET_INT_FROM_POINTER(flag);
else
- self->image->flag &= ~(int)flag;
+ self->image->flag &= ~GET_INT_FROM_POINTER(flag);
return 0;
}
@@ -1252,9 +1249,9 @@ static int Image_setFlagTpage(BPy_Image *self, PyObject *value, void *flag)
"expected True/False or 0/1" );
if ( param )
- self->image->tpageflag |= (int)flag;
+ self->image->tpageflag |= GET_INT_FROM_POINTER(flag);
else
- self->image->tpageflag &= ~(int)flag;
+ self->image->tpageflag &= ~GET_INT_FROM_POINTER(flag);
return 0;
}
@@ -1266,7 +1263,7 @@ static PyObject *getIntAttr( BPy_Image *self, void *type )
int param;
struct Image *image = self->image;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_IMAGE_ATTR_XREP:
param = image->xrep;
break;
@@ -1307,7 +1304,7 @@ static int setIntAttrClamp( BPy_Image *self, PyObject *value, void *type )
struct Image *image = self->image;
int min, max, size;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_IMAGE_ATTR_XREP:
min = EXPP_IMAGE_REP_MIN;
max = EXPP_IMAGE_REP_MAX;
diff --git a/source/blender/python/api2_2x/Image.h b/source/blender/python/api2_2x/Image.h
index a2fb22563bb..c8c424ec2f2 100644
--- a/source/blender/python/api2_2x/Image.h
+++ b/source/blender/python/api2_2x/Image.h
@@ -1,15 +1,12 @@
/*
- * $Id: Image.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Alex Mole
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_IMAGE_H
diff --git a/source/blender/python/api2_2x/Ipo.c b/source/blender/python/api2_2x/Ipo.c
index e150a10259c..68768fc9346 100644
--- a/source/blender/python/api2_2x/Ipo.c
+++ b/source/blender/python/api2_2x/Ipo.c
@@ -1,15 +1,12 @@
/*
- * $Id: Ipo.c 12078 2007-09-18 06:41:29Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Jacques Guignot RIP 2005, Nathan Letwory,
* Stephen Swaney, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Ipo.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/Ipo.h b/source/blender/python/api2_2x/Ipo.h
index 35893015a79..bc581a8f051 100644
--- a/source/blender/python/api2_2x/Ipo.h
+++ b/source/blender/python/api2_2x/Ipo.h
@@ -1,15 +1,12 @@
/*
- * $Id: Ipo.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_IPO_H
diff --git a/source/blender/python/api2_2x/Ipocurve.c b/source/blender/python/api2_2x/Ipocurve.c
index cc4cb066fe7..b9bfb77d19e 100644
--- a/source/blender/python/api2_2x/Ipocurve.c
+++ b/source/blender/python/api2_2x/Ipocurve.c
@@ -1,15 +1,12 @@
/*
- * $Id: Ipocurve.c 12078 2007-09-18 06:41:29Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot, Nathan Letwory, Ken Hughes, Johnny Matthews
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Ipocurve.h" /*This must come first*/
@@ -37,6 +34,7 @@
#include "BKE_main.h"
#include "BKE_depsgraph.h"
#include "BKE_ipo.h"
+#include "BKE_utildefines.h"
#include "BIF_space.h"
#include "BSE_editipo.h"
#include "MEM_guardedalloc.h"
@@ -1020,7 +1018,7 @@ static int IpoCurve_newsetExtend( C_IpoCurve * self, PyObject * value )
static PyObject *IpoCurve_getFlag( C_IpoCurve * self, void *type )
{
- if (self->ipocurve->flag & (int)type)
+ if (self->ipocurve->flag & GET_INT_FROM_POINTER(type))
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
@@ -1034,9 +1032,9 @@ static int IpoCurve_setFlag( C_IpoCurve * self, PyObject *value, void *type )
"expected True/False or 0/1" );
if (param)
- self->ipocurve->flag |= (int)type;
+ self->ipocurve->flag |= GET_INT_FROM_POINTER(type);
else
- self->ipocurve->flag &= ~(int)type;
+ self->ipocurve->flag &= ~GET_INT_FROM_POINTER(type);
return 0;
}
diff --git a/source/blender/python/api2_2x/Ipocurve.h b/source/blender/python/api2_2x/Ipocurve.h
index 6c4216fa4bd..8263bf2022f 100644
--- a/source/blender/python/api2_2x/Ipocurve.h
+++ b/source/blender/python/api2_2x/Ipocurve.h
@@ -1,15 +1,12 @@
/*
- * $Id: Ipocurve.h 10943 2007-06-16 12:24:41Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_IPOCURVE_H
diff --git a/source/blender/python/api2_2x/Key.c b/source/blender/python/api2_2x/Key.c
index b223a382818..856dabdde74 100644
--- a/source/blender/python/api2_2x/Key.c
+++ b/source/blender/python/api2_2x/Key.c
@@ -1,15 +1,12 @@
/*
- * $Id: Key.c 12867 2007-12-13 15:06:02Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Pontus Lidman, Johnny Matthews, Ken Hughes,
* Michael Reimpell
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Key.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/Key.h b/source/blender/python/api2_2x/Key.h
index 35e92fc5fea..f4950c5e96f 100644
--- a/source/blender/python/api2_2x/Key.h
+++ b/source/blender/python/api2_2x/Key.h
@@ -1,15 +1,12 @@
/*
- * $Id: Key.h 10783 2007-05-26 12:58:46Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Pontus Lidman
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_KEY_H
diff --git a/source/blender/python/api2_2x/Lamp.c b/source/blender/python/api2_2x/Lamp.c
index 16b93430d25..ef3174ac4ed 100644
--- a/source/blender/python/api2_2x/Lamp.c
+++ b/source/blender/python/api2_2x/Lamp.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Willian P. Germano, Nathan Letwory, Stephen Swaney,
* Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Lamp.h" /*This must come first*/
@@ -45,6 +42,7 @@
#include "constant.h"
#include "gen_utils.h"
#include "gen_library.h"
+#include "BKE_utildefines.h"
/*****************************************************************************/
/* Python BPy_Lamp defaults: */
@@ -1178,7 +1176,7 @@ static int Lamp_setFalloffType( BPy_Lamp * self, PyObject * value )
static PyObject *Lamp_getComponent( BPy_Lamp * self, void * closure )
{
- switch ( (int)closure ) {
+ switch ( GET_INT_FROM_POINTER(closure) ) {
case EXPP_LAMP_COMP_R:
return PyFloat_FromDouble( self->lamp->r );
case EXPP_LAMP_COMP_G:
@@ -1203,7 +1201,7 @@ static int Lamp_setComponent( BPy_Lamp * self, PyObject * value,
color = (float)PyFloat_AsDouble( value );
color = EXPP_ClampFloat( color, EXPP_LAMP_COL_MIN, EXPP_LAMP_COL_MAX );
- switch ( (int)closure ) {
+ switch ( GET_INT_FROM_POINTER(closure) ) {
case EXPP_LAMP_COMP_R:
self->lamp->r = color;
return 0;
diff --git a/source/blender/python/api2_2x/Lamp.h b/source/blender/python/api2_2x/Lamp.h
index 01c80e0006b..0f2dbfdb704 100644
--- a/source/blender/python/api2_2x/Lamp.h
+++ b/source/blender/python/api2_2x/Lamp.h
@@ -1,15 +1,12 @@
/*
- * $Id: Lamp.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Nathan Letwory
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_LAMP_H
diff --git a/source/blender/python/api2_2x/Lattice.c b/source/blender/python/api2_2x/Lattice.c
index 6a9f3891e52..99ae5a5656a 100644
--- a/source/blender/python/api2_2x/Lattice.c
+++ b/source/blender/python/api2_2x/Lattice.c
@@ -1,15 +1,12 @@
/*
- * $Id: Lattice.c 11130 2007-06-30 00:18:10Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Lattice.h" /*This must come first*/
@@ -679,7 +676,7 @@ static PyObject *Lattice_getLatSize(BPy_Lattice * self)
static PyObject *Lattice_getAxisType(BPy_Lattice * self, void * type)
{
char interp_type = 0;
- switch ( (int)type ) {
+ switch ( GET_INT_FROM_POINTER(type) ) {
case 0:
interp_type = self->lattice->typeu;
break;
diff --git a/source/blender/python/api2_2x/Lattice.h b/source/blender/python/api2_2x/Lattice.h
index dd141f1b8dd..64a53ba7484 100644
--- a/source/blender/python/api2_2x/Lattice.h
+++ b/source/blender/python/api2_2x/Lattice.h
@@ -1,15 +1,12 @@
/*
- * $Id: Lattice.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_Lattice_H
diff --git a/source/blender/python/api2_2x/Library.c b/source/blender/python/api2_2x/Library.c
index 12e2ce3055b..667db8a1dfd 100644
--- a/source/blender/python/api2_2x/Library.c
+++ b/source/blender/python/api2_2x/Library.c
@@ -4,15 +4,12 @@
* Blender.Library BPython module implementation.
* This submodule has functions to append data from .blend files.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): Willian P. Germano, Campbell Barton, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/************************************************************/
@@ -279,10 +276,11 @@ static PyObject *M_Library_Datablocks( PyObject * self, PyObject * value )
counter++;
}
BLI_linklist_free( names, free ); /* free linklist *and* each node's data */
- return list;
+ } else {
+ list = PyList_New( 0 );
}
- Py_RETURN_NONE;
+ return list;
}
/**
@@ -943,7 +941,7 @@ PyTypeObject LibraryData_Type = {
static PyObject *LibraryData_CreatePyObject( BPy_Library *self, void *mode )
{
- return CreatePyObject_LibData( (int)mode, OTHER, NULL, NULL,
+ return CreatePyObject_LibData( GET_INT_FROM_POINTER(mode), OTHER, NULL, NULL,
self->filename );
}
diff --git a/source/blender/python/api2_2x/Library.h b/source/blender/python/api2_2x/Library.h
index 1ddc138ea57..326040edb35 100644
--- a/source/blender/python/api2_2x/Library.h
+++ b/source/blender/python/api2_2x/Library.h
@@ -1,15 +1,12 @@
/*
- * $Id: Library.h 10323 2007-03-21 14:25:31Z stiv $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_LIBRARY_H
diff --git a/source/blender/python/api2_2x/MTex.c b/source/blender/python/api2_2x/MTex.c
index 61d809411a1..f5d93935fd3 100644
--- a/source/blender/python/api2_2x/MTex.c
+++ b/source/blender/python/api2_2x/MTex.c
@@ -1,15 +1,12 @@
/*
- * $Id: MTex.c 10279 2007-03-16 11:38:02Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Alex Mole, Yehoshua Sapir
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "MTex.h" /*This must come first*/
@@ -145,6 +142,9 @@ static PyGetSetDef MTex_getseters[] = {
{ "correctNor", (getter) MTex_getFlag, (setter) MTex_setFlag,
"Correct normal mapping for Texture space and Object space",
(void*) MTEX_VIEWSPACE },
+ { "fromDupli", (getter) MTex_getFlag, (setter) MTex_setFlag,
+ "If object is duplicated by vertices, faces or particles, inherit texture coordinate from parent object",
+ (void*) MTEX_DUPLI_MAPTO },
{ "xproj", (getter) MTex_getProjX, (setter) MTex_setProjX,
"Projection of X axis to Texture space", NULL },
{ "yproj", (getter) MTex_getProjY, (setter) MTex_setProjY,
diff --git a/source/blender/python/api2_2x/MTex.h b/source/blender/python/api2_2x/MTex.h
index 36cfa1c477a..5e67ebc47ca 100644
--- a/source/blender/python/api2_2x/MTex.h
+++ b/source/blender/python/api2_2x/MTex.h
@@ -1,15 +1,12 @@
/*
- * $Id: MTex.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Alex Mole
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_MTEX_H
diff --git a/source/blender/python/api2_2x/Makefile b/source/blender/python/api2_2x/Makefile
index 488c81c7100..7c831952042 100644
--- a/source/blender/python/api2_2x/Makefile
+++ b/source/blender/python/api2_2x/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/python/api2_2x/Material.c b/source/blender/python/api2_2x/Material.c
index fc697bee343..79deb29bafa 100644
--- a/source/blender/python/api2_2x/Material.c
+++ b/source/blender/python/api2_2x/Material.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Willian P. Germano, Michel Selten, Alex Mole,
* Alexander Szakaly, Campbell Barton, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Material.h" /*This must come first*/
@@ -1604,7 +1601,7 @@ static PyObject* Material_getSssScale( BPy_Material * self )
static PyObject* Material_getSssRadius( BPy_Material * self, void * type )
{
- return PyFloat_FromDouble( ( double ) (self->material->sss_radius[(int)type]) );
+ return PyFloat_FromDouble( ( double ) (self->material->sss_radius[GET_INT_FROM_POINTER(type)]) );
}
static PyObject* Material_getSssIOR( BPy_Material * self )
@@ -1816,7 +1813,7 @@ static int Material_setColorComponent( BPy_Material * self, PyObject * value,
param = (float)PyFloat_AsDouble( value );
param = EXPP_ClampFloat( param, EXPP_MAT_COL_MIN, EXPP_MAT_COL_MAX );
- switch ( (int)closure ) {
+ switch ( GET_INT_FROM_POINTER(closure) ) {
case EXPP_MAT_COMP_R:
self->material->r = param;
return 0;
@@ -2177,7 +2174,7 @@ static int Material_setSssScale( BPy_Material * self, PyObject * value )
static int Material_setSssRadius( BPy_Material * self, PyObject * value, void *type )
{
- return EXPP_setFloatClamped ( value, &self->material->sss_radius[(int)type],
+ return EXPP_setFloatClamped ( value, &self->material->sss_radius[GET_INT_FROM_POINTER(type)],
EXPP_MAT_SSS_RADIUS_MIN,
EXPP_MAT_SSS_RADIUS_MAX);
}
@@ -2639,7 +2636,7 @@ void EXPP_incr_mats_us( Material ** matlist, int len )
static PyObject *Material_getColorComponent( BPy_Material * self,
void * closure )
{
- switch ( (int)closure ) {
+ switch ( GET_INT_FROM_POINTER(closure) ) {
case EXPP_MAT_COMP_R:
return PyFloat_FromDouble( ( double ) self->material->r );
case EXPP_MAT_COMP_G:
diff --git a/source/blender/python/api2_2x/Material.h b/source/blender/python/api2_2x/Material.h
index 18fc87ee803..ec7fd0ad995 100644
--- a/source/blender/python/api2_2x/Material.h
+++ b/source/blender/python/api2_2x/Material.h
@@ -1,15 +1,12 @@
/*
- * $Id: Material.h 10649 2007-05-04 03:23:40Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_MATERIAL_H
diff --git a/source/blender/python/api2_2x/Mathutils.c b/source/blender/python/api2_2x/Mathutils.c
index 65ae46ffccd..e63fc5ef38f 100644
--- a/source/blender/python/api2_2x/Mathutils.c
+++ b/source/blender/python/api2_2x/Mathutils.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert, Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Mathutils.h"
diff --git a/source/blender/python/api2_2x/Mathutils.h b/source/blender/python/api2_2x/Mathutils.h
index 56d96d8f281..dd9aae2abed 100644
--- a/source/blender/python/api2_2x/Mathutils.h
+++ b/source/blender/python/api2_2x/Mathutils.h
@@ -1,15 +1,12 @@
/*
- * $Id: Mathutils.h 10943 2007-06-16 12:24:41Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
//Include this file for access to vector, quat, matrix, euler, etc...
diff --git a/source/blender/python/api2_2x/Mesh.c b/source/blender/python/api2_2x/Mesh.c
index 90b4d899f4f..9f68287d658 100644
--- a/source/blender/python/api2_2x/Mesh.c
+++ b/source/blender/python/api2_2x/Mesh.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Mesh.h" /*This must come first*/
@@ -6483,7 +6480,7 @@ static PyObject *Mesh_assignVertsToGroup( BPy_Mesh * self, PyObject * args )
if( !PyArg_ParseTuple ( args, "sO!fi", &groupStr, &PyList_Type,
&listObject, &weight, &assignmode) ) {
return EXPP_ReturnPyObjError( PyExc_TypeError,
- "expected string, list, float, string arguments" );
+ "expected string, list, float, int arguments" );
}
pGroup = get_named_vertexgroup( object, groupStr );
@@ -7042,7 +7039,7 @@ static PyObject *Mesh_getColorLayerNames( BPy_Mesh * self )
static PyObject *Mesh_getActiveLayer( BPy_Mesh * self, void *type )
{
CustomData *data = &self->mesh->fdata;
- int layer_type = (int)type;
+ int layer_type = GET_INT_FROM_POINTER(type);
int i;
if (layer_type < 0) { /* hack, if negative, its the renderlayer.*/
layer_type = -layer_type;
@@ -7061,7 +7058,7 @@ static int Mesh_setActiveLayer( BPy_Mesh * self, PyObject * value, void *type )
{
CustomData *data = &self->mesh->fdata;
char *name;
- int i,ok,n,layer_type = (int)type, render=0;
+ int i,ok,n,layer_type = GET_INT_FROM_POINTER(type), render=0;
if( !PyString_Check( value ) )
return EXPP_ReturnIntError( PyExc_ValueError,
@@ -7115,7 +7112,7 @@ static PyObject *Mesh_getMultires( BPy_Mesh * self, void *type )
{
int i=0;
if (self->mesh->mr) {
- switch ((int)type) {
+ switch (GET_INT_FROM_POINTER(type)) {
case MESH_MULTIRES_LEVEL:
i = self->mesh->mr->newlvl;
break;
@@ -7159,7 +7156,7 @@ static int Mesh_setMultires( BPy_Mesh * self, PyObject *value, void *type )
return EXPP_ReturnIntError( PyExc_TypeError,
"value out of range" );
- switch ((int)type) {
+ switch (GET_INT_FROM_POINTER(type)) {
case MESH_MULTIRES_LEVEL:
self->mesh->mr->newlvl = i;
multires_set_level_cb(self->object, self->mesh);
diff --git a/source/blender/python/api2_2x/Mesh.h b/source/blender/python/api2_2x/Mesh.h
index d73c5c5925e..fd03d4f3bd2 100644
--- a/source/blender/python/api2_2x/Mesh.h
+++ b/source/blender/python/api2_2x/Mesh.h
@@ -1,15 +1,12 @@
/*
- * $Id: Mesh.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* Most of this file comes from opy_nmesh.[ch] in the old bpython dir */
diff --git a/source/blender/python/api2_2x/Metaball.c b/source/blender/python/api2_2x/Metaball.c
index 72152bd1a9a..9cc5aac3d77 100644
--- a/source/blender/python/api2_2x/Metaball.c
+++ b/source/blender/python/api2_2x/Metaball.c
@@ -1,15 +1,12 @@
/*
- * $Id: Metaball.c 11136 2007-07-01 05:41:23Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Metaball.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/Metaball.h b/source/blender/python/api2_2x/Metaball.h
index 6be35dbd3fb..7abb3532071 100644
--- a/source/blender/python/api2_2x/Metaball.h
+++ b/source/blender/python/api2_2x/Metaball.h
@@ -1,15 +1,12 @@
/*
- * $Id: Metaball.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_METABALL_H
diff --git a/source/blender/python/api2_2x/Modifier.c b/source/blender/python/api2_2x/Modifier.c
index f965bfee91b..9775bce2235 100644
--- a/source/blender/python/api2_2x/Modifier.c
+++ b/source/blender/python/api2_2x/Modifier.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
*
* Contributor(s): Ken Hughes, Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* TODO, accessing a modifier sequence of a deleted object will crash blender at the moment, not sure how to fix this. */
diff --git a/source/blender/python/api2_2x/Modifier.h b/source/blender/python/api2_2x/Modifier.h
index 12afc591c2c..bf5f7a7818d 100644
--- a/source/blender/python/api2_2x/Modifier.h
+++ b/source/blender/python/api2_2x/Modifier.h
@@ -1,15 +1,12 @@
/*
- * $Id: Modifier.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_MODIFIER_H
diff --git a/source/blender/python/api2_2x/NLA.c b/source/blender/python/api2_2x/NLA.c
index 8fbb468de88..728d31398a9 100644
--- a/source/blender/python/api2_2x/NLA.c
+++ b/source/blender/python/api2_2x/NLA.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "NLA.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/NLA.h b/source/blender/python/api2_2x/NLA.h
index 50bfa32b7e7..f4fd8761cf1 100644
--- a/source/blender/python/api2_2x/NLA.h
+++ b/source/blender/python/api2_2x/NLA.h
@@ -1,15 +1,12 @@
/*
- * $Id: NLA.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_NLA_H
diff --git a/source/blender/python/api2_2x/NMesh.c b/source/blender/python/api2_2x/NMesh.c
index b443952d1d2..e7ed89573fb 100644
--- a/source/blender/python/api2_2x/NMesh.c
+++ b/source/blender/python/api2_2x/NMesh.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
* Bala Gi, Alexander Szakaly, Stephane Soppera, Campbell Barton, Ken Hughes,
* Daniel Dunbar.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "NMesh.h" /*This must come first*/
@@ -2582,27 +2579,27 @@ static int mface_from_data( MFace * mf, CustomData *fdata, int findex,
nmv = ( BPy_NMVert * ) PyList_GetItem( from->v, 0 );
if( BPy_NMVert_Check( nmv ) && nmv->index != -1 )
mf->v1 = nmv->index;
- else
- mf->v1 = 0;
+ else
+ return -1;
nmv = ( BPy_NMVert * ) PyList_GetItem( from->v, 1 );
if( BPy_NMVert_Check( nmv ) && nmv->index != -1 )
mf->v2 = nmv->index;
else
- mf->v2 = 0;
+ return -1;
nmv = ( BPy_NMVert * ) PyList_GetItem( from->v, 2 );
if( BPy_NMVert_Check( nmv ) && nmv->index != -1 )
mf->v3 = nmv->index;
else
- mf->v3 = 0;
+ return -1;
if( numverts == 4 ) {
nmv = ( BPy_NMVert * ) PyList_GetItem( from->v, 3 );
if( BPy_NMVert_Check( nmv ) && nmv->index != -1 )
mf->v4 = nmv->index;
else
- mf->v4 = 0;
+ return -1;
}
if( tf )
@@ -2730,6 +2727,7 @@ Material **nmesh_updateMaterials( BPy_NMesh * nmesh )
}
if( len > 0 ) {
+ if (len>16) len = 16;
matlist = EXPP_newMaterialList_fromPyList( nmesh->materials );
EXPP_incr_mats_us( matlist, len );
@@ -2966,6 +2964,7 @@ static int convert_NMeshToMesh( Mesh * mesh, BPy_NMesh * nmesh)
MVert *newmv;
MSticky *newst;
int nmeshtotedges;
+ int badfaces;
int i, j, ok;
/* Minor note: we used 'mode' because 'flag' was already used internally
@@ -3054,14 +3053,19 @@ static int convert_NMeshToMesh( Mesh * mesh, BPy_NMesh * nmesh)
}
newmf = mesh->mface;
+ badfaces = 0;
for( i = 0; i < mesh->totface; i++ ) {
PyObject *mf = PySequence_GetItem( nmesh->faces, i );
ok = mface_from_data( newmf, &mesh->fdata, i, ( BPy_NMFace * ) mf );
Py_DECREF( mf );
- if( !ok )
+ if( ok == 0)
return 0;
- newmf++;
+ else if ( ok == -1 )
+ ++badfaces;
+ else
+ newmf++;
}
+ mesh->totface -= badfaces;
/* Always do this to ensure no loose edges in faces */
fill_medge_from_nmesh(mesh, nmesh);
diff --git a/source/blender/python/api2_2x/NMesh.h b/source/blender/python/api2_2x/NMesh.h
index 3a3b6e10088..0186d6a52b2 100644
--- a/source/blender/python/api2_2x/NMesh.h
+++ b/source/blender/python/api2_2x/NMesh.h
@@ -1,15 +1,12 @@
/*
- * $Id: NMesh.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Jordi Rovira i Bonnet, Joseph Gilbert.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* Most of this file comes from opy_nmesh.[ch] in the old bpython dir */
diff --git a/source/blender/python/api2_2x/Node.c b/source/blender/python/api2_2x/Node.c
index 0ceb6b3c2a2..f66f378b176 100644
--- a/source/blender/python/api2_2x/Node.c
+++ b/source/blender/python/api2_2x/Node.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Nathan Letwory
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Node.h"
@@ -417,7 +414,7 @@ static PyObject *Map_socketdef_getter(BPy_NodeSocketLists *self, void *closure)
{
PyObject *sockets = NULL;
- switch ((int)closure) {
+ switch (GET_INT_FROM_POINTER(closure)) {
case 'I': /* inputs */
Py_INCREF(self->input);
sockets = self->input;
@@ -451,7 +448,7 @@ static int Map_socketdef(BPy_NodeSocketLists *self, PyObject *args, void *closur
if(BTST2(node->custom1, NODE_DYNAMIC_READY, NODE_DYNAMIC_ADDEXIST))
return 0;
- switch((int)closure) {
+ switch(GET_INT_FROM_POINTER(closure)) {
case 'I':
if (args) {
if(PySequence_Check(args)) {
@@ -1099,7 +1096,7 @@ static PyObject *Node_GetInputMap(BPy_Node *self) {
static PyObject *ShadeInput_getAttribute(BPy_ShadeInput *self, void *type) {
PyObject *obj = NULL;
if(self->shi) {
- switch((int)type) {
+ switch(GET_INT_FROM_POINTER(type)) {
case SURFACEVIEWVECTOR:
obj = Py_BuildValue("(fff)", self->shi->view[0], self->shi->view[1], self->shi->view[2]);
break;
diff --git a/source/blender/python/api2_2x/Node.h b/source/blender/python/api2_2x/Node.h
index 49626599887..3bf2151af7c 100644
--- a/source/blender/python/api2_2x/Node.h
+++ b/source/blender/python/api2_2x/Node.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Nathan Letwory
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __NODE_H__
diff --git a/source/blender/python/api2_2x/Noise.c b/source/blender/python/api2_2x/Noise.c
index dcee6f45d2a..430534b120a 100644
--- a/source/blender/python/api2_2x/Noise.c
+++ b/source/blender/python/api2_2x/Noise.c
@@ -1,18 +1,15 @@
/**
- * $Id: Noise.c 12056 2007-09-17 06:11:06Z aligorith $
+ * $Id$
*
* Blender.Noise BPython module implementation.
* This submodule has functions to generate noise of various types.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): eeshlo
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/************************/
diff --git a/source/blender/python/api2_2x/Object.c b/source/blender/python/api2_2x/Object.c
index a7a651e4465..0780d2d483d 100644
--- a/source/blender/python/api2_2x/Object.c
+++ b/source/blender/python/api2_2x/Object.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
* Joseph Gilbert, Stephen Swaney, Bala Gi, Campbell Barton, Johnny Matthews,
* Ken Hughes, Alex Mole, Jean-Michel Soler
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
struct SpaceIpo;
@@ -360,7 +357,8 @@ static PyObject *Object_getSize( BPy_Object * self, PyObject * args );
static PyObject *Object_getTimeOffset( BPy_Object * self );
static PyObject *Object_getTracked( BPy_Object * self );
static PyObject *Object_getType( BPy_Object * self );
-static PyObject *Object_getBoundBox( BPy_Object * self );
+static PyObject *Object_getBoundBox( BPy_Object * self, PyObject *args );
+static PyObject *Object_getBoundBox_noargs( BPy_Object * self );
static PyObject *Object_getAction( BPy_Object * self );
static PyObject *Object_getPose( BPy_Object * self );
static PyObject *Object_evaluatePose( BPy_Object * self, PyObject *args );
@@ -459,6 +457,8 @@ static PyObject *Object_insertShapeKey(BPy_Object * self);
static PyObject *Object_copyNLA( BPy_Object * self, PyObject * args );
static PyObject *Object_convertActionToStrip( BPy_Object * self );
static PyObject *Object_copy(BPy_Object * self); /* __copy__ */
+static PyObject *Object_trackAxis(BPy_Object * self);
+static PyObject *Object_upAxis(BPy_Object * self);
/*****************************************************************************/
/* Python BPy_Object methods table: */
@@ -631,7 +631,7 @@ automatic when the script finishes."},
"Returns SB StiffQuads"},
{"setSBStiffQuads", ( PyCFunction ) Object_SetSBStiffQuads, METH_VARARGS,
"Sets SB StiffQuads"},
- {"getBoundBox", ( PyCFunction ) Object_getBoundBox, METH_NOARGS,
+ {"getBoundBox", ( PyCFunction ) Object_getBoundBox, METH_VARARGS,
"Returns the object's bounding box"},
{"makeDisplayList", ( PyCFunction ) Object_makeDisplayList, METH_NOARGS,
"Update this object's Display List. Some changes like turning\n\
@@ -1469,11 +1469,15 @@ static PyObject *Object_getType( BPy_Object * self )
return PyString_FromString( str );
}
-static PyObject *Object_getBoundBox( BPy_Object * self )
+static PyObject *Object_getBoundBox( BPy_Object * self, PyObject *args )
{
- int i;
float *vec = NULL;
PyObject *vector, *bbox;
+ int worldspace = 1;
+
+ if( !PyArg_ParseTuple( args, "|i", &worldspace ) )
+ return EXPP_ReturnPyObjError( PyExc_TypeError,
+ "expected an int or nothing" );
if( !self->object->data )
return EXPP_ReturnPyObjError( PyExc_AttributeError,
@@ -1498,27 +1502,33 @@ static PyObject *Object_getBoundBox( BPy_Object * self )
default:
Py_RETURN_NONE;
}
+ } else { /* the ob bbox exists */
+ vec = ( float * ) self->object->bb->vec;
+ }
+
+
+ { /* transform our obdata bbox by the obmat.
+ the obmat is 4x4 homogeneous coords matrix.
+ each bbox coord is xyz, so we make it homogenous
+ by padding it with w=1.0 and doing the matrix mult.
+ afterwards we divide by w to get back to xyz.
+ */
+ /* printmatrix4( "obmat", self->object->obmat); */
+
+ float tmpvec[4]; /* tmp vector for homogenous coords math */
+ int i;
+ float *from;
- { /* transform our obdata bbox by the obmat.
- the obmat is 4x4 homogeneous coords matrix.
- each bbox coord is xyz, so we make it homogenous
- by padding it with w=1.0 and doing the matrix mult.
- afterwards we divide by w to get back to xyz.
- */
- /* printmatrix4( "obmat", self->object->obmat); */
-
- float tmpvec[4]; /* tmp vector for homogenous coords math */
- int i;
- float *from;
-
- bbox = PyList_New( 8 );
- if( !bbox )
- return EXPP_ReturnPyObjError
- ( PyExc_MemoryError,
- "couldn't create pylist" );
- for( i = 0, from = vec; i < 8; i++, from += 3 ) {
- memcpy( tmpvec, from, 3 * sizeof( float ) );
- tmpvec[3] = 1.0f; /* set w coord */
+ bbox = PyList_New( 8 );
+ if( !bbox )
+ return EXPP_ReturnPyObjError
+ ( PyExc_MemoryError,
+ "couldn't create pylist" );
+ for( i = 0, from = vec; i < 8; i++, from += 3 ) {
+ memcpy( tmpvec, from, 3 * sizeof( float ) );
+ tmpvec[3] = 1.0f; /* set w coord */
+
+ if (worldspace) {
Mat4MulVec4fl( self->object->obmat, tmpvec );
/* divide x,y,z by w */
tmpvec[0] /= tmpvec[3];
@@ -1528,49 +1538,34 @@ static PyObject *Object_getBoundBox( BPy_Object * self )
#if 0
{ /* debug print stuff */
int i;
-
+
printf( "\nobj bbox transformed\n" );
for( i = 0; i < 4; ++i )
printf( "%f ", tmpvec[i] );
-
+
printf( "\n" );
}
#endif
-
- /* because our bounding box is calculated and
- does not have its own memory,
- we must create vectors that allocate space */
-
- vector = newVectorObject( NULL, 3, Py_NEW);
- memcpy( ( ( VectorObject * ) vector )->vec,
- tmpvec, 3 * sizeof( float ) );
- PyList_SET_ITEM( bbox, i, vector );
}
- }
- } else { /* the ob bbox exists */
- vec = ( float * ) self->object->bb->vec;
-
- if( !vec )
- return EXPP_ReturnPyObjError( PyExc_RuntimeError,
- "couldn't retrieve bounding box data" );
+ /* because our bounding box is calculated and
+ does not have its own memory,
+ we must create vectors that allocate space */
- bbox = PyList_New( 8 );
-
- if( !bbox )
- return EXPP_ReturnPyObjError( PyExc_MemoryError,
- "couldn't create pylist" );
-
- /* create vectors referencing object bounding box coords */
- for( i = 0; i < 8; i++ ) {
- vector = newVectorObject( vec, 3, Py_WRAP );
+ vector = newVectorObject( NULL, 3, Py_NEW);
+ memcpy( ( ( VectorObject * ) vector )->vec,
+ tmpvec, 3 * sizeof( float ) );
PyList_SET_ITEM( bbox, i, vector );
- vec += 3;
}
}
return bbox;
}
+static PyObject *Object_getBoundBox_noargs( BPy_Object * self )
+{
+ return Object_getBoundBox(self, PyTuple_New(0));
+}
+
static PyObject *Object_makeDisplayList( BPy_Object * self )
{
Object *ob = self->object;
@@ -3558,7 +3553,7 @@ static PyObject *getIntAttr( BPy_Object *self, void *type )
int param;
struct Object *object = self->object;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_OBJ_ATTR_LAYERMASK:
param = object->lay;
break;
@@ -3614,7 +3609,7 @@ static int setIntAttrClamp( BPy_Object *self, PyObject *value, void *type )
struct Object *object = self->object;
int min, max, size;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_OBJ_ATTR_DUPON:
min = 1;
max = 1500;
@@ -3690,7 +3685,7 @@ static int setIntAttrRange( BPy_Object *self, PyObject *value, void *type )
/* these parameters require clamping */
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_OBJ_ATTR_COLBITS:
min = 0;
max = 0xffff;
@@ -3715,20 +3710,20 @@ static PyObject *getFloatAttr( BPy_Object *self, void *type )
float param;
struct Object *object = self->object;
- if( (int)type >= EXPP_OBJ_ATTR_PI_SURFACEDAMP &&
- (int)type <= EXPP_OBJ_ATTR_PI_SBOFACETHICK ) {
+ if( GET_INT_FROM_POINTER(type) >= EXPP_OBJ_ATTR_PI_SURFACEDAMP &&
+ GET_INT_FROM_POINTER(type) <= EXPP_OBJ_ATTR_PI_SBOFACETHICK ) {
if( !self->object->pd && !setupPI(self->object) )
return EXPP_ReturnPyObjError( PyExc_RuntimeError,
"particle deflection could not be accessed" );
}
- else if( (int)type >= EXPP_OBJ_ATTR_SB_NODEMASS &&
- (int)type <= EXPP_OBJ_ATTR_SB_INFRICT ) {
+ else if( GET_INT_FROM_POINTER(type) >= EXPP_OBJ_ATTR_SB_NODEMASS &&
+ GET_INT_FROM_POINTER(type) <= EXPP_OBJ_ATTR_SB_INFRICT ) {
if( !self->object->soft && !setupSB(self->object) )
return EXPP_ReturnPyObjError( PyExc_RuntimeError,
"softbody could not be accessed" );
}
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_OBJ_ATTR_LOC_X:
param = object->loc[0];
break;
@@ -3873,20 +3868,20 @@ static int setFloatAttrClamp( BPy_Object *self, PyObject *value, void *type )
struct Object *object = self->object;
float min, max;
- if( (int)type >= EXPP_OBJ_ATTR_PI_SURFACEDAMP &&
- (int)type <= EXPP_OBJ_ATTR_PI_SBOFACETHICK ) {
+ if( GET_INT_FROM_POINTER(type) >= EXPP_OBJ_ATTR_PI_SURFACEDAMP &&
+ GET_INT_FROM_POINTER(type) <= EXPP_OBJ_ATTR_PI_SBOFACETHICK ) {
if( !self->object->pd && !setupPI(self->object) )
return EXPP_ReturnIntError( PyExc_RuntimeError,
"particle deflection could not be accessed" );
}
- else if( (int)type >= EXPP_OBJ_ATTR_SB_NODEMASS &&
- (int)type <= EXPP_OBJ_ATTR_SB_INFRICT ) {
+ else if( GET_INT_FROM_POINTER(type) >= EXPP_OBJ_ATTR_SB_NODEMASS &&
+ GET_INT_FROM_POINTER(type) <= EXPP_OBJ_ATTR_SB_INFRICT ) {
if( !self->object->soft && !setupSB(self->object) )
return EXPP_ReturnIntError( PyExc_RuntimeError,
"softbody could not be accessed" );
}
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_OBJ_ATTR_DRAWSIZE:
min = EXPP_OBJECT_DRAWSIZEMIN;
max = EXPP_OBJECT_DRAWSIZEMAX;
@@ -4032,7 +4027,7 @@ static int setFloatAttr( BPy_Object *self, PyObject *value, void *type )
param = (float)PyFloat_AsDouble( value );
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_OBJ_ATTR_LOC_X:
object->loc[0] = param;
break;
@@ -4104,7 +4099,7 @@ static PyObject *getFloat3Attr( BPy_Object *self, void *type )
float *param;
struct Object *object = self->object;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_OBJ_ATTR_LOC:
param = object->loc;
break;
@@ -4147,7 +4142,7 @@ static int setFloat3Attr( BPy_Object *self, PyObject *value, void *type )
}
Py_DECREF( value );
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_OBJ_ATTR_LOC:
dst = object->loc;
break;
@@ -4181,7 +4176,7 @@ static int setFloat3Attr( BPy_Object *self, PyObject *value, void *type )
static PyObject *Object_getShapeFlag( BPy_Object *self, void *type )
{
- if (self->object->shapeflag & (int)type)
+ if (self->object->shapeflag & GET_INT_FROM_POINTER(type))
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
@@ -4191,9 +4186,9 @@ static int Object_setShapeFlag( BPy_Object *self, PyObject *value,
void *type )
{
if (PyObject_IsTrue(value) )
- self->object->shapeflag |= (int)type;
+ self->object->shapeflag |= GET_INT_FROM_POINTER(type);
else
- self->object->shapeflag &= ~(int)type;
+ self->object->shapeflag &= ~GET_INT_FROM_POINTER(type);
self->object->recalc |= OB_RECALC_OB;
return 0;
@@ -4201,7 +4196,7 @@ static int Object_setShapeFlag( BPy_Object *self, PyObject *value,
static PyObject *Object_getRestricted( BPy_Object *self, void *type )
{
- if (self->object->restrictflag & (int)type)
+ if (self->object->restrictflag & GET_INT_FROM_POINTER(type))
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
@@ -4216,16 +4211,16 @@ static int Object_setRestricted( BPy_Object *self, PyObject *value,
"expected True/False or 0/1" );
if ( param )
- self->object->restrictflag |= (int)type;
+ self->object->restrictflag |= GET_INT_FROM_POINTER(type);
else
- self->object->restrictflag &= ~(int)type;
+ self->object->restrictflag &= ~GET_INT_FROM_POINTER(type);
return 0;
}
static PyObject *Object_getDrawModeBits( BPy_Object *self, void *type )
{
- return EXPP_getBitfield( (void *)&self->object->dtx, (int)type, 'b' );
+ return EXPP_getBitfield( (void *)&self->object->dtx, GET_INT_FROM_POINTER(type), 'b' );
}
static int Object_setDrawModeBits( BPy_Object *self, PyObject *value,
@@ -4233,13 +4228,13 @@ static int Object_setDrawModeBits( BPy_Object *self, PyObject *value,
{
self->object->recalc |= OB_RECALC_OB;
return EXPP_setBitfield( value, (void *)&self->object->dtx,
- (int)type, 'b' );
+ GET_INT_FROM_POINTER(type), 'b' );
}
static PyObject *Object_getTransflagBits( BPy_Object *self, void *type )
{
return EXPP_getBitfield( (void *)&self->object->transflag,
- (int)type, 'h' );
+ GET_INT_FROM_POINTER(type), 'h' );
}
static int Object_setTransflagBits( BPy_Object *self, PyObject *value,
@@ -4247,7 +4242,7 @@ static int Object_setTransflagBits( BPy_Object *self, PyObject *value,
{
self->object->recalc |= OB_RECALC_OB;
return EXPP_setBitfield( value, (void *)&self->object->transflag,
- (int)type, 'h' );
+ GET_INT_FROM_POINTER(type), 'h' );
}
static PyObject *Object_getLayers( BPy_Object * self )
@@ -4833,7 +4828,7 @@ static PyGetSetDef BPy_Object_getseters[] = {
"The object's type",
NULL},
{"boundingBox",
- (getter)Object_getBoundBox, (setter)NULL,
+ (getter)Object_getBoundBox_noargs, (setter)NULL,
"The bounding box of this object",
NULL},
{"action",
@@ -5076,7 +5071,14 @@ static PyGetSetDef BPy_Object_getseters[] = {
(getter)Object_getRBHalfExtents, (setter)NULL,
"Rigid body physics bounds object type",
NULL},
-
+ {"trackAxis",
+ (getter)Object_trackAxis, (setter)NULL,
+ "track axis 'x' | 'y' | 'z' | '-x' | '-y' | '-z' (string. readonly)",
+ NULL},
+ {"upAxis",
+ (getter)Object_upAxis, (setter)NULL,
+ "up axis 'x' | 'y' | 'z' (string. readonly)",
+ NULL},
{"restrictDisplay",
(getter)Object_getRestricted, (setter)Object_setRestricted,
"Toggle object restrictions",
@@ -5188,6 +5190,7 @@ PyTypeObject Object_Type = {
NULL
};
+
static PyObject *M_Object_DrawModesDict( void )
{
PyObject *M = PyConstant_New( );
@@ -5964,3 +5967,65 @@ static PyObject *Object_SetSBStiffQuads( BPy_Object * self, PyObject * args )
return EXPP_setterWrapper( (void *)self, args,
(setter)Object_setSBStiffQuads );
}
+
+static PyObject *Object_trackAxis( BPy_Object * self )
+{
+ Object* ob;
+ char ctr[3];
+
+ memset( ctr, 0, sizeof(ctr));
+ ob = self->object;
+
+ switch(ob->trackflag){
+ case(0):
+ ctr[0] = 'X';
+ break;
+ case(1):
+ ctr[0] = 'Y';
+ break;
+ case(2):
+ ctr[0] = 'Z';
+ break;
+ case(3):
+ ctr[0] = '-';
+ ctr[1] = 'X';
+ break;
+ case(4):
+ ctr[0] = '-';
+ ctr[1] = 'Y';
+ break;
+ case(5):
+ ctr[0] = '-';
+ ctr[1] = 'Z';
+ break;
+ default:
+ break;
+ }
+
+ return PyString_FromString(ctr);
+}
+
+static PyObject *Object_upAxis( BPy_Object * self )
+{
+ Object* ob;
+ char cup[2];
+
+ memset( cup, 0, sizeof(cup));
+ ob = self->object;
+
+ switch(ob->upflag){
+ case(0):
+ cup[0] = 'X';
+ break;
+ case(1):
+ cup[0] = 'Y';
+ break;
+ case(2):
+ cup[0] = 'Z';
+ break;
+ default:
+ break;
+ }
+
+ return PyString_FromString(cup);
+}
diff --git a/source/blender/python/api2_2x/Object.h b/source/blender/python/api2_2x/Object.h
index 7891f99da09..a4bb42b1b5c 100644
--- a/source/blender/python/api2_2x/Object.h
+++ b/source/blender/python/api2_2x/Object.h
@@ -1,15 +1,12 @@
/*
- * $Id: Object.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_OBJECT_H
diff --git a/source/blender/python/api2_2x/Particle.c b/source/blender/python/api2_2x/Particle.c
index 84c0c727792..76c98cb0ccf 100644
--- a/source/blender/python/api2_2x/Particle.c
+++ b/source/blender/python/api2_2x/Particle.c
@@ -1,15 +1,12 @@
/*
- * $Id: Particle.c 10279 2007-03-16 11:38:02Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot, Jean-Michel Soler
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Particle.h" /*This must come first */
diff --git a/source/blender/python/api2_2x/Particle.h b/source/blender/python/api2_2x/Particle.h
index 73b5363dac6..13e6fadaaa0 100644
--- a/source/blender/python/api2_2x/Particle.h
+++ b/source/blender/python/api2_2x/Particle.h
@@ -1,15 +1,12 @@
/*
- * $Id: Particle.h 5702 2005-11-04 20:34:38Z khughes $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_PARTICLE_H
diff --git a/source/blender/python/api2_2x/Pose.c b/source/blender/python/api2_2x/Pose.c
index 01fbe591a74..1021eac5fc4 100644
--- a/source/blender/python/api2_2x/Pose.c
+++ b/source/blender/python/api2_2x/Pose.c
@@ -1,15 +1,12 @@
/*
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Pose.h"
@@ -147,7 +144,7 @@ static PyObject *PoseBonesDict_repr(BPy_PoseBonesDict *self)
{
char buffer[128], *str;
PyObject *key, *value;
- int pos = 0;
+ Py_ssize_t pos = 0;
/* probably a bit of overkill but better then crashing */
str = MEM_mallocN( 64 + ( PyDict_Size( self->bonesMap ) * 128), "PoseBonesDict_repr" );
@@ -1055,7 +1052,7 @@ static int PoseBone_setStretch(BPy_PoseBone *self, PyObject *value, void *closur
//Gets the pose bones IK stiffness
static PyObject *PoseBone_getStiff(BPy_PoseBone *self, void *axis)
{
- return PyFloat_FromDouble( self->posechannel->stiffness[(int)axis] );
+ return PyFloat_FromDouble( self->posechannel->stiffness[GET_INT_FROM_POINTER(axis)] );
}
//------------------------PoseBone.stiffX/Y/Z (setter)
@@ -1071,7 +1068,7 @@ static int PoseBone_setStiff(BPy_PoseBone *self, PyObject *value, void *axis)
stiff = (float)PyFloat_AsDouble(value);
if (stiff<0) stiff = 0;
if (stiff>0.990) stiff = 0.990f;
- self->posechannel->stiffness[(int)axis] = stiff;
+ self->posechannel->stiffness[GET_INT_FROM_POINTER(axis)] = stiff;
return 0;
}
@@ -1105,7 +1102,7 @@ static int PoseBone_setFlag(BPy_PoseBone *self, PyObject *value, void *flag)
//Gets the pose bones ikflag
static PyObject *PoseBone_getIKFlag(BPy_PoseBone *self, void *flag)
{
- if (self->posechannel->ikflag & (int)flag)
+ if (self->posechannel->ikflag & GET_INT_FROM_POINTER(flag))
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
@@ -1122,9 +1119,9 @@ static int PoseBone_setIKFlag(BPy_PoseBone *self, PyObject *value, void *flag)
"expected True/False or 0/1" );
if ( param )
- self->posechannel->ikflag |= (int)flag;
+ self->posechannel->ikflag |= GET_INT_FROM_POINTER(flag);
else
- self->posechannel->ikflag &= ~(int)flag;
+ self->posechannel->ikflag &= ~GET_INT_FROM_POINTER(flag);
return 0;
}
diff --git a/source/blender/python/api2_2x/Pose.h b/source/blender/python/api2_2x/Pose.h
index 17a9f871ee3..f94b82662cb 100644
--- a/source/blender/python/api2_2x/Pose.h
+++ b/source/blender/python/api2_2x/Pose.h
@@ -1,15 +1,12 @@
/*
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_POSE_H
diff --git a/source/blender/python/api2_2x/Registry.c b/source/blender/python/api2_2x/Registry.c
index 4eb4fd93294..ea0d7170e03 100644
--- a/source/blender/python/api2_2x/Registry.c
+++ b/source/blender/python/api2_2x/Registry.c
@@ -1,15 +1,12 @@
/*
- * $Id: Registry.c 4803 2005-07-18 03:50:37Z ascotan $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Registry.h" /*This must come first */
diff --git a/source/blender/python/api2_2x/Registry.h b/source/blender/python/api2_2x/Registry.h
index 58cfe65dfd0..4a1fc55a36a 100644
--- a/source/blender/python/api2_2x/Registry.h
+++ b/source/blender/python/api2_2x/Registry.h
@@ -1,15 +1,12 @@
/*
- * $Id: Registry.h 3209 2004-10-07 19:25:40Z stiv $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* This submodule was introduced as a way to preserve configured data in
diff --git a/source/blender/python/api2_2x/Scene.c b/source/blender/python/api2_2x/Scene.c
index c5bd7ef9056..7ef351b1127 100644
--- a/source/blender/python/api2_2x/Scene.c
+++ b/source/blender/python/api2_2x/Scene.c
@@ -2,15 +2,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
* Contributor(s): Willian P. Germano, Jacques Guignot, Joseph Gilbert,
* Campbell Barton, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
struct View3D;
@@ -556,6 +553,7 @@ PyObject *Scene_Init( void )
PyDict_SetItemString( dict, "Render", Render_Init( ) );
PyDict_SetItemString( dict, "Radio", Radio_Init( ) );
PyDict_SetItemString( dict, "Sequence", Sequence_Init( ) );
+ PyDict_SetItemString( dict, "TimeLine", TimeLine_Init( ) );
return submodule;
}
@@ -1240,7 +1238,7 @@ int SceneObSeq_setObjects( BPy_SceneObSeq *self, PyObject *value, void *_mode_)
Scene *scene= self->bpyscene->scene;
Object *blen_ob;
Base *base;
- int size, mode = (int)_mode_;
+ int size, mode = GET_INT_FROM_POINTER(_mode_);
SCENE_DEL_CHECK_INT(self->bpyscene);
diff --git a/source/blender/python/api2_2x/Scene.h b/source/blender/python/api2_2x/Scene.h
index eefa72562b5..19b3b488b31 100644
--- a/source/blender/python/api2_2x/Scene.h
+++ b/source/blender/python/api2_2x/Scene.h
@@ -1,15 +1,12 @@
/*
- * $Id: Scene.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_SCENE_H
diff --git a/source/blender/python/api2_2x/Sound.c b/source/blender/python/api2_2x/Sound.c
index 25f557eb0c1..962790b6ce2 100644
--- a/source/blender/python/api2_2x/Sound.c
+++ b/source/blender/python/api2_2x/Sound.c
@@ -1,15 +1,12 @@
/*
- * $Id: Sound.c 11123 2007-06-29 08:59:26Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Chris Keith
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Sound.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/Sound.h b/source/blender/python/api2_2x/Sound.h
index 06e9a95bdc5..56487bde5b1 100644
--- a/source/blender/python/api2_2x/Sound.h
+++ b/source/blender/python/api2_2x/Sound.h
@@ -1,15 +1,12 @@
/*
- * $Id: Sound.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Chris Keith
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_SOUND_H
diff --git a/source/blender/python/api2_2x/SurfNurb.c b/source/blender/python/api2_2x/SurfNurb.c
index f1c038fc33c..65bd04de14d 100644
--- a/source/blender/python/api2_2x/SurfNurb.c
+++ b/source/blender/python/api2_2x/SurfNurb.c
@@ -1,14 +1,11 @@
/*
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Stephen Swaney
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SurfNurb.h" /*This must come first */
diff --git a/source/blender/python/api2_2x/SurfNurb.h b/source/blender/python/api2_2x/SurfNurb.h
index 30d9a48012e..8438df0b7b2 100644
--- a/source/blender/python/api2_2x/SurfNurb.h
+++ b/source/blender/python/api2_2x/SurfNurb.h
@@ -1,14 +1,11 @@
/*
- * $Id: SurfNurb.h 10269 2007-03-15 01:09:14Z campbellbarton $
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * $Id$
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Stephen Swaney
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_SURFNURB_H
diff --git a/source/blender/python/api2_2x/Sys.c b/source/blender/python/api2_2x/Sys.c
index e936eb56b59..337f8b6bb14 100644
--- a/source/blender/python/api2_2x/Sys.c
+++ b/source/blender/python/api2_2x/Sys.c
@@ -1,15 +1,12 @@
/*
- * $Id: Sys.c 10945 2007-06-16 13:17:41Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Sys.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/Sys.h b/source/blender/python/api2_2x/Sys.h
index 3e5f78f4922..401a3aadc23 100644
--- a/source/blender/python/api2_2x/Sys.h
+++ b/source/blender/python/api2_2x/Sys.h
@@ -1,15 +1,12 @@
/*
- * $Id: Sys.h 4803 2005-07-18 03:50:37Z ascotan $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_sys_H
diff --git a/source/blender/python/api2_2x/Text.c b/source/blender/python/api2_2x/Text.c
index 6c577285266..308ad094c7b 100644
--- a/source/blender/python/api2_2x/Text.c
+++ b/source/blender/python/api2_2x/Text.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Text.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/Text.h b/source/blender/python/api2_2x/Text.h
index 90de82f1254..0c5e2607f03 100644
--- a/source/blender/python/api2_2x/Text.h
+++ b/source/blender/python/api2_2x/Text.h
@@ -1,15 +1,12 @@
/*
- * $Id: Text.h 10136 2007-02-25 01:07:28Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_TEXT_H
diff --git a/source/blender/python/api2_2x/Text3d.c b/source/blender/python/api2_2x/Text3d.c
index 6194b232401..5137e989b8d 100644
--- a/source/blender/python/api2_2x/Text3d.c
+++ b/source/blender/python/api2_2x/Text3d.c
@@ -1,15 +1,12 @@
/*
- * $Id: Text3d.c 11099 2007-06-28 13:46:42Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
* Johnny Matthews
* Campbell BArton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Text3d.h" /*This must come first*/
@@ -40,6 +37,7 @@
#include "BKE_library.h"
#include "BKE_global.h"
#include "BKE_main.h"
+#include "BKE_utildefines.h"
#include "BIF_editfont.h" /* do_textedit() */
#include "Curve.h"
#include "constant.h"
@@ -258,7 +256,7 @@ static PyObject *getFloatAttr( BPy_Text3d *self, void *type )
float param;
struct Curve *curve= self->curve;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_T3D_ATTR_FRAME_WIDTH:
param = curve->tb[curve->actbox-1].w;
break;
@@ -285,7 +283,7 @@ static int setFloatAttrClamp( BPy_Text3d *self, PyObject *value, void *type )
struct Curve *curve= self->curve;
float min, max;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_T3D_ATTR_FRAME_WIDTH:
min = 0.0;
max = 50.0;
diff --git a/source/blender/python/api2_2x/Text3d.h b/source/blender/python/api2_2x/Text3d.h
index ddab385ca66..c887a6ebbfb 100644
--- a/source/blender/python/api2_2x/Text3d.h
+++ b/source/blender/python/api2_2x/Text3d.h
@@ -1,15 +1,12 @@
/*
- * $Id: Text3d.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joilnen Leite
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_TEXT3D_H
diff --git a/source/blender/python/api2_2x/Texture.c b/source/blender/python/api2_2x/Texture.c
index ffd2653d330..696c78f2bac 100644
--- a/source/blender/python/api2_2x/Texture.c
+++ b/source/blender/python/api2_2x/Texture.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Alex Mole, Nathan Letwory, Joilnen B. Leite, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Texture.h" /*This must come first*/
@@ -1596,10 +1593,10 @@ static int Texture_setImageFlags( BPy_Texture * self, PyObject * value,
* so set/clear the bit in the bitfield based on the type
*/
- if( (int)type ) {
+ if( GET_INT_FROM_POINTER(type) ) {
int err;
param = self->texture->imaflag;
- err = EXPP_setBitfield( value, &param, (int)type, 'h' );
+ err = EXPP_setBitfield( value, &param, GET_INT_FROM_POINTER(type), 'h' );
if( err )
return err;
@@ -1643,9 +1640,9 @@ static int Texture_setIUserFlags( BPy_Texture * self, PyObject * value,
"expected True/False or 0/1" );
if( param )
- self->texture->iuser.flag |= (int)flag;
+ self->texture->iuser.flag |= GET_INT_FROM_POINTER(flag);
else
- self->texture->iuser.flag &= ~(int)flag;
+ self->texture->iuser.flag &= ~GET_INT_FROM_POINTER(flag);
return 0;
}
@@ -1717,7 +1714,7 @@ static int Texture_setNoiseBasis2( BPy_Texture * self, PyObject * value,
* attribute, so check the range and set the whole value
*/
- if( (int)type == EXPP_TEX_NOISEBASIS2 ) {
+ if( GET_INT_FROM_POINTER(type) == EXPP_TEX_NOISEBASIS2 ) {
int param;
if( !PyInt_Check( value ) )
return EXPP_ReturnIntError( PyExc_TypeError,
@@ -1747,7 +1744,7 @@ static int Texture_setNoiseBasis2( BPy_Texture * self, PyObject * value,
return EXPP_ReturnIntError( PyExc_ValueError,
"expected int value of 1" );
- self->texture->noisebasis2 = (short)(int)type;
+ self->texture->noisebasis2 = (short)GET_INT_FROM_POINTER(type);
}
return 0;
}
@@ -2107,15 +2104,15 @@ static PyObject *Texture_getImageFlags( BPy_Texture *self, void *type )
* other types means attribute "mipmap", "calcAlpha", etc
*/
- if( (int)type )
- return EXPP_getBitfield( &self->texture->imaflag, (int)type, 'h' );
+ if( GET_INT_FROM_POINTER(type) )
+ return EXPP_getBitfield( &self->texture->imaflag, GET_INT_FROM_POINTER(type), 'h' );
else
return PyInt_FromLong( self->texture->imaflag );
}
static PyObject *Texture_getIUserFlags( BPy_Texture *self, void *flag )
{
- if( self->texture->iuser.flag & (int)flag )
+ if( self->texture->iuser.flag & GET_INT_FROM_POINTER(flag) )
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
@@ -2142,10 +2139,10 @@ static PyObject *Texture_getNoiseBasis2( BPy_Texture *self, void *type )
* other types means attribute "sine", "saw", or "tri" attribute
*/
- if( (int)type == EXPP_TEX_NOISEBASIS2 )
+ if( GET_INT_FROM_POINTER(type) == EXPP_TEX_NOISEBASIS2 )
return PyInt_FromLong( self->texture->noisebasis2 );
else
- return PyInt_FromLong( ( self->texture->noisebasis2 == (int)type ) ? 1 : 0 );
+ return PyInt_FromLong( ( self->texture->noisebasis2 == GET_INT_FROM_POINTER(type) ) ? 1 : 0 );
}
static PyObject *Texture_getNoiseDepth( BPy_Texture *self )
diff --git a/source/blender/python/api2_2x/Texture.h b/source/blender/python/api2_2x/Texture.h
index a00fe6faf94..1508007936b 100644
--- a/source/blender/python/api2_2x/Texture.h
+++ b/source/blender/python/api2_2x/Texture.h
@@ -1,15 +1,12 @@
/*
- * $Id: Texture.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Alex Mole
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* based on Image.h */
diff --git a/source/blender/python/api2_2x/Types.c b/source/blender/python/api2_2x/Types.c
index 425584f84ac..1ce19071885 100644
--- a/source/blender/python/api2_2x/Types.c
+++ b/source/blender/python/api2_2x/Types.c
@@ -1,14 +1,11 @@
/*
- * $Id: Types.c 11713 2007-08-19 19:06:42Z campbellbarton $
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * $Id$
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Willian P. Germano, Alex Mole, Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Types.h"
diff --git a/source/blender/python/api2_2x/Types.h b/source/blender/python/api2_2x/Types.h
index b905ab75d62..7ffb1c03f19 100644
--- a/source/blender/python/api2_2x/Types.h
+++ b/source/blender/python/api2_2x/Types.h
@@ -1,15 +1,12 @@
/*
- * $Id: Types.h 7266 2006-04-16 15:28:50Z stiv $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Alex Mole
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_TYPES_H
diff --git a/source/blender/python/api2_2x/Window.c b/source/blender/python/api2_2x/Window.c
index 64349cdb83c..061084da622 100644
--- a/source/blender/python/api2_2x/Window.c
+++ b/source/blender/python/api2_2x/Window.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Willian P. Germano, Tom Musgrove, Michael Reimpell,
* Yann Vernier, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <Python.h>
diff --git a/source/blender/python/api2_2x/Window.h b/source/blender/python/api2_2x/Window.h
index a39856ecd58..685464c9a56 100644
--- a/source/blender/python/api2_2x/Window.h
+++ b/source/blender/python/api2_2x/Window.h
@@ -1,15 +1,12 @@
/*
* $Id:*
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* This file is useless now, CAN BE REMOVED. */
diff --git a/source/blender/python/api2_2x/World.c b/source/blender/python/api2_2x/World.c
index a6fac327360..6021f8552ad 100644
--- a/source/blender/python/api2_2x/World.c
+++ b/source/blender/python/api2_2x/World.c
@@ -1,15 +1,12 @@
/*
- * $Id: World.c 12078 2007-09-18 06:41:29Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot, Johnny Matthews
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
diff --git a/source/blender/python/api2_2x/World.h b/source/blender/python/api2_2x/World.h
index 71c407bff19..2ca51611a0f 100644
--- a/source/blender/python/api2_2x/World.h
+++ b/source/blender/python/api2_2x/World.h
@@ -1,15 +1,12 @@
/*
- * $Id: World.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Jacques Guignot
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_WORLD_H
diff --git a/source/blender/python/api2_2x/bpy.c b/source/blender/python/api2_2x/bpy.c
index 6ddbcfe4096..96f88a80cbd 100644
--- a/source/blender/python/api2_2x/bpy.c
+++ b/source/blender/python/api2_2x/bpy.c
@@ -1,14 +1,11 @@
/*
- * $Id: bpy.c 10550 2007-04-18 22:53:20Z campbellbarton $
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * $Id$
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
* Contributor(s): Michel Selten, Willian P. Germano, Joseph Gilbert,
* Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* for open, close in Blender_Load */
diff --git a/source/blender/python/api2_2x/bpy.h b/source/blender/python/api2_2x/bpy.h
index 855da49bd2b..463537e1a0e 100644
--- a/source/blender/python/api2_2x/bpy.h
+++ b/source/blender/python/api2_2x/bpy.h
@@ -1,15 +1,12 @@
/*
- * $Id: bpy.h 10546 2007-04-18 14:40:01Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten, Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_BPYMOD_H
diff --git a/source/blender/python/api2_2x/bpy_config.c b/source/blender/python/api2_2x/bpy_config.c
index ce8ce0bc39c..0e6f9741751 100644
--- a/source/blender/python/api2_2x/bpy_config.c
+++ b/source/blender/python/api2_2x/bpy_config.c
@@ -1,15 +1,12 @@
/*
- * $Id: bpy_config.c 11123 2007-06-29 08:59:26Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,13 +24,14 @@
*
* Contributor(s): Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* python types */
#include "DNA_userdef_types.h"
#include "../api2_2x/gen_utils.h"
#include "bpy_config.h"
+#include "BKE_utildefines.h"
enum conf_consts {
/*string*/
@@ -91,7 +89,7 @@ static PyObject *getStrAttr( BPy_Config *self, void *type )
{
char *param = NULL;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_CONF_ATTR_PATH_YF_EXPORT:
param = U.yfexportdir;
break;
@@ -142,7 +140,7 @@ static int setStrAttr( BPy_Config *self, PyObject *value, void *type )
return EXPP_ReturnIntError( PyExc_TypeError,
"error, must assign a python string for setStrAttr");
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_CONF_ATTR_PATH_YF_EXPORT:
param = U.yfexportdir;
break;
@@ -189,7 +187,7 @@ static PyObject *getIntAttr( BPy_Config *self, void *type )
{
int param;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_CONF_ATTR_UNDOSTEPS:
param = (int)U.undosteps;
break;
@@ -223,7 +221,7 @@ static int setIntAttrClamp( BPy_Config *self, PyObject *value, void *type )
void *param;
int min, max, size;
- switch( (int)type ) {
+ switch( GET_INT_FROM_POINTER(type) ) {
case EXPP_CONF_ATTR_UNDOSTEPS:
min = 0;
max = 64;
diff --git a/source/blender/python/api2_2x/bpy_config.h b/source/blender/python/api2_2x/bpy_config.h
index ae1f114dc81..25178fd3e6f 100644
--- a/source/blender/python/api2_2x/bpy_config.h
+++ b/source/blender/python/api2_2x/bpy_config.h
@@ -1,15 +1,12 @@
/*
- * $Id: bpy_config.h 10546 2007-04-18 14:40:01Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_BPY_CONFIG_H
diff --git a/source/blender/python/api2_2x/bpy_data.c b/source/blender/python/api2_2x/bpy_data.c
index 428f8cc6d9a..4705c1bdd03 100644
--- a/source/blender/python/api2_2x/bpy_data.c
+++ b/source/blender/python/api2_2x/bpy_data.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "bpy_data.h"
diff --git a/source/blender/python/api2_2x/bpy_data.h b/source/blender/python/api2_2x/bpy_data.h
index 45600df6471..5fef692a719 100644
--- a/source/blender/python/api2_2x/bpy_data.h
+++ b/source/blender/python/api2_2x/bpy_data.h
@@ -1,14 +1,11 @@
/*
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_BPYDATA_H
diff --git a/source/blender/python/api2_2x/bpy_types.h b/source/blender/python/api2_2x/bpy_types.h
index fcada098d1e..4e4d7b87d7c 100644
--- a/source/blender/python/api2_2x/bpy_types.h
+++ b/source/blender/python/api2_2x/bpy_types.h
@@ -1,14 +1,11 @@
/*
- * $Id: bpy_types.h 4803 2005-07-18 03:50:37Z ascotan $
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * $Id$
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_bpy_types_h
diff --git a/source/blender/python/api2_2x/charRGBA.c b/source/blender/python/api2_2x/charRGBA.c
index 087ddecc1c5..7c01c850b4d 100644
--- a/source/blender/python/api2_2x/charRGBA.c
+++ b/source/blender/python/api2_2x/charRGBA.c
@@ -1,15 +1,12 @@
/*
- * $Id: charRGBA.c 10782 2007-05-26 04:39:31Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "charRGBA.h" /*This must come first */
diff --git a/source/blender/python/api2_2x/charRGBA.h b/source/blender/python/api2_2x/charRGBA.h
index 9cc3dc739d1..0a765dde5dd 100644
--- a/source/blender/python/api2_2x/charRGBA.h
+++ b/source/blender/python/api2_2x/charRGBA.h
@@ -1,15 +1,12 @@
/*
- * $Id: charRGBA.h 10280 2007-03-16 14:44:31Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_charRGBA_H
diff --git a/source/blender/python/api2_2x/constant.c b/source/blender/python/api2_2x/constant.c
index 1034fbd616c..7cf6a83e602 100644
--- a/source/blender/python/api2_2x/constant.c
+++ b/source/blender/python/api2_2x/constant.c
@@ -1,15 +1,12 @@
/*
- * $Id: constant.c 10778 2007-05-25 16:43:25Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "constant.h" /*This must come first */
diff --git a/source/blender/python/api2_2x/constant.h b/source/blender/python/api2_2x/constant.h
index 1e325cef012..dc906a32fb8 100644
--- a/source/blender/python/api2_2x/constant.h
+++ b/source/blender/python/api2_2x/constant.h
@@ -1,15 +1,12 @@
/*
- * $Id: constant.h 7089 2006-03-18 15:23:02Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano, Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_constant_H
diff --git a/source/blender/python/api2_2x/doc/Constraint.py b/source/blender/python/api2_2x/doc/Constraint.py
index 0f9e4b5e07a..e00851caa36 100644
--- a/source/blender/python/api2_2x/doc/Constraint.py
+++ b/source/blender/python/api2_2x/doc/Constraint.py
@@ -3,7 +3,7 @@
"""
The Blender.Constraint submodule
-B{New}:
+B{New}:
- provides access to Blender's constraint stack
This module provides access to the Constraint Data in Blender.
@@ -38,11 +38,10 @@ Or to print all the constraints attached to each bone in a pose::
@var Settings: Constant dict used for changing constraint settings.
- Used for all single-target constraints
(TRACKTO, FOLLOWPATH, COPYROT, COPYLOC, COPYSIZE, ACTION, LOCKTRACK, STRETCHTO, FLOOR, CLAMPTO, CHILDOF, TRANSFORM, LIMITDIST)
- - TARGET (Object): target object
- - BONE (string): name of Bone sub-target (for Armature targets), or name of Vertex Group sub-target
+ - TARGET (Object): target object
+ - BONE (string): name of Bone sub-target (for Armature targets), or name of Vertex Group sub-target
(for Geometry targets)
- - Used for all multiple-target constraints
- (PYTHON)
+ - Used for all multiple-target constraints (PYTHON)
- TARGET (list of Objects): list of target objects, with one list slot = one target slot
- BONE (list of strings): list of names of Bone sub-target (for Armature targets) or name of Vertex Group
sub-targets (for Geometry targets)
diff --git a/source/blender/python/api2_2x/doc/Mesh.py b/source/blender/python/api2_2x/doc/Mesh.py
index 8b49ce29d54..d8bd7be6566 100644
--- a/source/blender/python/api2_2x/doc/Mesh.py
+++ b/source/blender/python/api2_2x/doc/Mesh.py
@@ -987,7 +987,7 @@ class Mesh:
@param group: the name of a vertex group.
"""
- def assignVertsToGroup(group, vertList, weight, assignmode = AssignModes['REPLACE']):
+ def assignVertsToGroup(group, vertList, weight, assignmode):
"""
Adds an array (a Python list) of vertex points to a named vertex group
associated with a mesh. The vertex list is a list of vertex indices from
diff --git a/source/blender/python/api2_2x/doc/Object.py b/source/blender/python/api2_2x/doc/Object.py
index 4228f6de1a8..bb57c0b1852 100644
--- a/source/blender/python/api2_2x/doc/Object.py
+++ b/source/blender/python/api2_2x/doc/Object.py
@@ -417,7 +417,7 @@ class Object:
empty_ob.setMatrix(dupe_matrix)
Blender.Redraw()
@type DupObjects: list of tuples containing (object, matrix)
- @ivar enableNLAOverride: Whether the object uses NLA or active Action for animation.
+ @ivar enableNLAOverride: Whether the object uses NLA or active Action for animation. When True the NLA is used.
@type enableNLAOverride: boolean
@ivar enableDupVerts: The DupliVerts status of the object.
Does not indicate that this object has any dupliVerts,
@@ -636,6 +636,10 @@ class Object:
@ivar rbShapeBoundType: Rigid body shape bound type. See L{RBShapes}
const dict for values.
@type rbShapeBoundType: int
+ @ivar trackAxis: Track axis. Return string 'X' | 'Y' | 'Z' | '-X' | '-Y' | '-Z' (readonly)
+ @type trackAxis: string
+ @ivar upAxis: Up axis. Return string 'Y' | 'Y' | 'Z' (readonly)
+ @type upAxis: string
"""
def buildParts():
@@ -1178,10 +1182,12 @@ class Object:
- 1 - selected
"""
- def getBoundBox():
+ def getBoundBox(worldspace=1):
"""
Returns the worldspace bounding box of this object. This works for meshes (out of
edit mode) and curves.
+ @type worldspace: int
+ @param worldspace: An optional argument. When zero, the bounding values will be localspace.
@rtype: list of 8 (x,y,z) float coordinate vectors (WRAPPED DATA)
@return: The coordinates of the 8 corners of the bounding box. Data is wrapped when
bounding box is present.
diff --git a/source/blender/python/api2_2x/doc/Render.py b/source/blender/python/api2_2x/doc/Render.py
index 97c7c0ecc44..cf886ad27f1 100644
--- a/source/blender/python/api2_2x/doc/Render.py
+++ b/source/blender/python/api2_2x/doc/Render.py
@@ -391,8 +391,8 @@ class RenderData:
@type bakeClear: bool
@ivar bakeToActive: When enabled, selected objects are baked onto the active object.
@type bakeToActive: bool
- @ivar bakeNormalizeAO: Normalize AO bake values.
- @type bakeNormalizeAO: bool
+ @ivar bakeNormalize: Normalize AO and displacement to the range of the distance value.
+ @type bakeNormalize: bool
@ivar bakeMargin: The pixel distance to extend baked pixels past the boundry (reduces bleeding when mipmapping)
@type bakeMargin: int
@ivar bakeDist: The distance in blender units to use when bakeToActive is enabled and geomtry does not overlap.
diff --git a/source/blender/python/api2_2x/doc/Texture.py b/source/blender/python/api2_2x/doc/Texture.py
index 184d769171f..8b29d91ca19 100644
--- a/source/blender/python/api2_2x/doc/Texture.py
+++ b/source/blender/python/api2_2x/doc/Texture.py
@@ -515,6 +515,7 @@ class MTex:
@ivar neg: Negate texture values mode
@ivar noRGB: Convert texture RGB values to intensity values
@ivar correctNor: Correct normal mapping for Texture space and Object space
+ @ivar fromDupli: If object is duplicated by vertices, faces or particles, inherit texture coordinate from parent object
@ivar xproj: Projection of X axis to Texture space. L{Proj}
@ivar yproj: Projection of Y axis to Texture space. L{Proj}
@ivar zproj: Projection of Z axis to Texture space. L{Proj}
diff --git a/source/blender/python/api2_2x/euler.c b/source/blender/python/api2_2x/euler.c
index acbc2b4e680..e349dd26532 100644
--- a/source/blender/python/api2_2x/euler.c
+++ b/source/blender/python/api2_2x/euler.c
@@ -1,15 +1,12 @@
/*
- * $Id: euler.c 12314 2007-10-20 20:24:09Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Mathutils.h"
diff --git a/source/blender/python/api2_2x/euler.h b/source/blender/python/api2_2x/euler.h
index d992d61b402..b76eb962baa 100644
--- a/source/blender/python/api2_2x/euler.h
+++ b/source/blender/python/api2_2x/euler.h
@@ -1,15 +1,12 @@
/*
- * $Id: euler.h 8367 2006-08-22 09:13:44Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/python/api2_2x/gen_library.h b/source/blender/python/api2_2x/gen_library.h
index 277421ec089..66cc8552e6b 100644
--- a/source/blender/python/api2_2x/gen_library.h
+++ b/source/blender/python/api2_2x/gen_library.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten, Willian P. Germano, Alex Mole, Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_gen_library_h
diff --git a/source/blender/python/api2_2x/gen_utils.c b/source/blender/python/api2_2x/gen_utils.c
index 780712dac7b..de3704164ac 100644
--- a/source/blender/python/api2_2x/gen_utils.c
+++ b/source/blender/python/api2_2x/gen_utils.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Michel Selten, Willian P. Germano, Alex Mole, Ken Hughes,
* Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "gen_utils.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/gen_utils.h b/source/blender/python/api2_2x/gen_utils.h
index 3ff1517b86c..1f2fd55cf1b 100644
--- a/source/blender/python/api2_2x/gen_utils.h
+++ b/source/blender/python/api2_2x/gen_utils.h
@@ -1,15 +1,12 @@
/*
- * $Id: gen_utils.h 11732 2007-08-20 10:08:59Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten, Willian P. Germano, Alex Mole, Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_gen_utils_h
diff --git a/source/blender/python/api2_2x/logic.c b/source/blender/python/api2_2x/logic.c
index 6e0813be8f3..99c506d1a34 100644
--- a/source/blender/python/api2_2x/logic.c
+++ b/source/blender/python/api2_2x/logic.c
@@ -1,15 +1,12 @@
/*
- * $Id: logic.c 11123 2007-06-29 08:59:26Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "logic.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/logic.h b/source/blender/python/api2_2x/logic.h
index ea415d06a0a..28aa5e6e3e7 100644
--- a/source/blender/python/api2_2x/logic.h
+++ b/source/blender/python/api2_2x/logic.h
@@ -1,15 +1,12 @@
/*
- * $Id: logic.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_LOGIC_H
diff --git a/source/blender/python/api2_2x/matrix.c b/source/blender/python/api2_2x/matrix.c
index d52318e93bf..d81e56ec3dc 100644
--- a/source/blender/python/api2_2x/matrix.c
+++ b/source/blender/python/api2_2x/matrix.c
@@ -1,15 +1,12 @@
/*
- * $Id: matrix.c 11958 2007-09-07 07:55:36Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Michel Selten & Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Mathutils.h"
diff --git a/source/blender/python/api2_2x/matrix.h b/source/blender/python/api2_2x/matrix.h
index b830038bfcc..8e6bfc0674e 100644
--- a/source/blender/python/api2_2x/matrix.h
+++ b/source/blender/python/api2_2x/matrix.h
@@ -1,14 +1,11 @@
/*
- * $Id: matrix.h 8363 2006-08-21 13:52:32Z campbellbarton $
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * $Id$
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/python/api2_2x/meshPrimitive.c b/source/blender/python/api2_2x/meshPrimitive.c
index 754f4986646..2b76a835c9f 100644
--- a/source/blender/python/api2_2x/meshPrimitive.c
+++ b/source/blender/python/api2_2x/meshPrimitive.c
@@ -1,15 +1,12 @@
/*
- * $Id: meshPrimitive.c 10773 2007-05-24 15:00:10Z khughes $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Mesh.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/meshPrimitive.h b/source/blender/python/api2_2x/meshPrimitive.h
index e864ffd0d17..9abd22749ad 100644
--- a/source/blender/python/api2_2x/meshPrimitive.h
+++ b/source/blender/python/api2_2x/meshPrimitive.h
@@ -1,15 +1,12 @@
/*
- * $Id: meshPrimitive.h 7512 2006-05-25 16:45:24Z khughes $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_MESHPRIMITIVES_H
diff --git a/source/blender/python/api2_2x/modules.h b/source/blender/python/api2_2x/modules.h
index 81e138da798..8700188b2e9 100644
--- a/source/blender/python/api2_2x/modules.h
+++ b/source/blender/python/api2_2x/modules.h
@@ -1,15 +1,12 @@
/*
- * $Id: modules.h 4803 2005-07-18 03:50:37Z ascotan $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
* Contributor(s): Michel Selten, Willian P. Germano, Nathan Letwory,
* Stephen Swaney
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_modules_h
diff --git a/source/blender/python/api2_2x/point.c b/source/blender/python/api2_2x/point.c
index 969fe2d53af..0bdedfecdd6 100644
--- a/source/blender/python/api2_2x/point.c
+++ b/source/blender/python/api2_2x/point.c
@@ -1,15 +1,12 @@
/*
- * $Id: point.c 10782 2007-05-26 04:39:31Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Mathutils.h"
diff --git a/source/blender/python/api2_2x/point.h b/source/blender/python/api2_2x/point.h
index 4ecceb64491..a9c4e5e4e2c 100644
--- a/source/blender/python/api2_2x/point.h
+++ b/source/blender/python/api2_2x/point.h
@@ -1,15 +1,12 @@
/*
- * $Id: point.h 7266 2006-04-16 15:28:50Z stiv $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_point_h
diff --git a/source/blender/python/api2_2x/quat.c b/source/blender/python/api2_2x/quat.c
index a4a99c28d72..7cfc1a7cde8 100644
--- a/source/blender/python/api2_2x/quat.c
+++ b/source/blender/python/api2_2x/quat.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Mathutils.h"
diff --git a/source/blender/python/api2_2x/quat.h b/source/blender/python/api2_2x/quat.h
index c66300de498..ac70b4e3802 100644
--- a/source/blender/python/api2_2x/quat.h
+++ b/source/blender/python/api2_2x/quat.h
@@ -1,15 +1,12 @@
/*
- * $Id: quat.h 8367 2006-08-22 09:13:44Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/python/api2_2x/rgbTuple.c b/source/blender/python/api2_2x/rgbTuple.c
index 85fa26433fc..688f72f8f98 100644
--- a/source/blender/python/api2_2x/rgbTuple.c
+++ b/source/blender/python/api2_2x/rgbTuple.c
@@ -1,15 +1,12 @@
/*
- * $Id: rgbTuple.c 11713 2007-08-19 19:06:42Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "rgbTuple.h" /*This must come first */
diff --git a/source/blender/python/api2_2x/rgbTuple.h b/source/blender/python/api2_2x/rgbTuple.h
index 59c0f02643f..0da05bb025f 100644
--- a/source/blender/python/api2_2x/rgbTuple.h
+++ b/source/blender/python/api2_2x/rgbTuple.h
@@ -1,15 +1,12 @@
/*
- * $Id: rgbTuple.h 5317 2005-09-21 19:48:40Z stiv $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_rgbTuple_H
diff --git a/source/blender/python/api2_2x/sceneRadio.c b/source/blender/python/api2_2x/sceneRadio.c
index a39186b8e28..6bdc45d582c 100644
--- a/source/blender/python/api2_2x/sceneRadio.c
+++ b/source/blender/python/api2_2x/sceneRadio.c
@@ -1,15 +1,12 @@
/*
- * $Id: sceneRadio.c 10270 2007-03-15 01:47:53Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can Redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "sceneRadio.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/sceneRadio.h b/source/blender/python/api2_2x/sceneRadio.h
index 98604d9afb2..5d7c05ac3a6 100644
--- a/source/blender/python/api2_2x/sceneRadio.h
+++ b/source/blender/python/api2_2x/sceneRadio.h
@@ -1,15 +1,12 @@
/*
- * $Id: sceneRadio.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_SCENERADIO_H
diff --git a/source/blender/python/api2_2x/sceneRender.c b/source/blender/python/api2_2x/sceneRender.c
index 284dc1efa4f..7cae5f6144f 100644
--- a/source/blender/python/api2_2x/sceneRender.c
+++ b/source/blender/python/api2_2x/sceneRender.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can Redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert, Dietrich Bollmann
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
struct View3D; /* keep me up here */
@@ -919,6 +916,18 @@ PyObject *RenderData_GaussFilterSize( BPy_RenderData * self, PyObject * args )
0.5f, 1.5f );
}
+PyObject *RenderData_AspectRatioX( BPy_RenderData * self, PyObject * args )
+{
+ return M_Render_GetSetAttributeFloat( args, &self->renderContext->xasp,
+ 1.0f, 200.0f );
+}
+
+PyObject *RenderData_AspectRatioY( BPy_RenderData * self, PyObject * args )
+{
+ return M_Render_GetSetAttributeFloat( args, &self->renderContext->yasp,
+ 1.0f, 200.0f );
+}
+
PyObject *RenderData_StartFrame( BPy_RenderData * self, PyObject * args )
{
return M_Render_GetSetAttributeInt( args, &self->renderContext->sfra,
@@ -949,18 +958,6 @@ PyObject *RenderData_ImageSizeY( BPy_RenderData * self, PyObject * args )
4, 10000 );
}
-PyObject *RenderData_AspectRatioX( BPy_RenderData * self, PyObject * args )
-{
- return M_Render_GetSetAttributeShort( args, &self->renderContext->xasp,
- 1, 200 );
-}
-
-PyObject *RenderData_AspectRatioY( BPy_RenderData * self, PyObject * args )
-{
- return M_Render_GetSetAttributeShort( args, &self->renderContext->yasp,
- 1, 200 );
-}
-
static int RenderData_setRenderer( BPy_RenderData * self, PyObject * value )
{
int type;
@@ -1868,6 +1865,12 @@ static PyObject *RenderData_getFloatAttr( BPy_RenderData *self, void *type )
case EXPP_RENDER_ATTR_BAKEBIAS:
param = self->renderContext->bake_biasdist;
break;
+ case EXPP_RENDER_ATTR_ASPECTX:
+ param = (long)self->renderContext->xasp;
+ break;
+ case EXPP_RENDER_ATTR_ASPECTY:
+ param = (long)self->renderContext->yasp;
+ break;
default:
return EXPP_ReturnPyObjError( PyExc_RuntimeError,
"undefined type constant in RenderData_getFloatAttr" );
@@ -1911,6 +1914,16 @@ static int RenderData_setFloatAttrClamp( BPy_RenderData *self, PyObject *value,
max = 1000.0f;
param = &self->renderContext->bake_biasdist;
break;
+ case EXPP_RENDER_ATTR_ASPECTX:
+ min = 1.0f;
+ max = 200.0f;
+ param = &self->renderContext->xasp;
+ break;
+ case EXPP_RENDER_ATTR_ASPECTY:
+ min = 1.0f;
+ max = 200.0f;
+ param = &self->renderContext->yasp;
+ break;
default:
return EXPP_ReturnIntError( PyExc_RuntimeError,
"undefined type constant in RenderData_setFloatAttrClamp" );
@@ -1933,12 +1946,6 @@ static PyObject *RenderData_getIValueAttr( BPy_RenderData *self, void *type )
case EXPP_RENDER_ATTR_YPARTS:
param = (long)self->renderContext->yparts;
break;
- case EXPP_RENDER_ATTR_ASPECTX:
- param = (long)self->renderContext->xasp;
- break;
- case EXPP_RENDER_ATTR_ASPECTY:
- param = (long)self->renderContext->yasp;
- break;
case EXPP_RENDER_ATTR_CFRAME:
param = (long)self->renderContext->cfra;
break;
@@ -1996,18 +2003,6 @@ static int RenderData_setIValueAttrClamp( BPy_RenderData *self, PyObject *value,
size = 'h';
param = &self->renderContext->yparts;
break;
- case EXPP_RENDER_ATTR_ASPECTX:
- min = 1;
- max = 200;
- size = 'h';
- param = &self->renderContext->xasp;
- break;
- case EXPP_RENDER_ATTR_ASPECTY:
- min = 1;
- max = 200;
- size = 'h';
- param = &self->renderContext->yasp;
- break;
case EXPP_RENDER_ATTR_CFRAME:
min = 1;
max = MAXFRAME;
@@ -2128,14 +2123,14 @@ static int RenderData_setMode( BPy_RenderData* self, PyObject *arg )
static PyObject *RenderData_getSceModeBits( BPy_RenderData *self, void* type )
{
- return EXPP_getBitfield( &self->renderContext->scemode, (int)type, 'h' );
+ return EXPP_getBitfield( &self->renderContext->scemode, (int)type, 'i' );
}
static int RenderData_setSceModeBits( BPy_RenderData* self, PyObject *value,
void* type )
{
return EXPP_setBitfield( value, &self->renderContext->scemode,
- (int)type, 'h' );
+ (int)type, 'i' );
}
static PyObject *RenderData_getSceMode( BPy_RenderData *self )
@@ -2156,7 +2151,7 @@ static int RenderData_setSceMode( BPy_RenderData* self, PyObject *arg )
return EXPP_ReturnIntError( PyExc_ValueError,
"unexpected bits set in argument" );
- self->renderContext->scemode = (short)value;
+ self->renderContext->scemode = (int)value;
EXPP_allqueue( REDRAWBUTSSCENE, 0 );
return 0;
@@ -2726,14 +2721,6 @@ static PyGetSetDef BPy_RenderData_getseters[] = {
(getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp,
"Number of vertical parts for image render",
(void *)EXPP_RENDER_ATTR_YPARTS},
- {"aspectX",
- (getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp,
- "Horizontal aspect ratio",
- (void *)EXPP_RENDER_ATTR_ASPECTX},
- {"aspectY",
- (getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp,
- "Vertical aspect ratio",
- (void *)EXPP_RENDER_ATTR_ASPECTY},
{"cFrame",
(getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp,
"The current frame for rendering",
@@ -2771,6 +2758,14 @@ static PyGetSetDef BPy_RenderData_getseters[] = {
(getter)RenderData_getFloatAttr, (setter)RenderData_setFloatAttrClamp,
"Motion blur factor",
(void *)EXPP_RENDER_ATTR_MBLURFACTOR},
+ {"aspectX",
+ (getter)RenderData_getFloatAttr, (setter)RenderData_setFloatAttrClamp,
+ "Horizontal aspect ratio",
+ (void *)EXPP_RENDER_ATTR_ASPECTX},
+ {"aspectY",
+ (getter)RenderData_getFloatAttr, (setter)RenderData_setFloatAttrClamp,
+ "Vertical aspect ratio",
+ (void *)EXPP_RENDER_ATTR_ASPECTY},
{"mapOld",
(getter)RenderData_getMapOld, (setter)RenderData_setMapOld,
"Number of frames the Map Old will last",
@@ -2881,9 +2876,9 @@ static PyGetSetDef BPy_RenderData_getseters[] = {
(getter)RenderData_getBakeMode, (setter)RenderData_setBakeMode,
"Bake selection to active",
(void *)R_BAKE_TO_ACTIVE},
- {"bakeNormalizeAO",
+ {"bakeNormalize",
(getter)RenderData_getBakeMode, (setter)RenderData_setBakeMode,
- "Bake selection to active",
+ "Normalize AO and displacement to the dist range",
(void *)R_BAKE_NORMALIZE},
{"bakeMargin",
(getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp,
@@ -3798,7 +3793,7 @@ static PyObject *M_Render_BakeNormalSpaceDict( void )
BPy_constant *d = ( BPy_constant * ) M;
PyConstant_Insert( d, "CAMERA", PyInt_FromLong( R_BAKE_SPACE_CAMERA ) );
- PyConstant_Insert( d, "WORLS", PyInt_FromLong( R_BAKE_SPACE_WORLD ) );
+ PyConstant_Insert( d, "WORLD", PyInt_FromLong( R_BAKE_SPACE_WORLD ) );
PyConstant_Insert( d, "OBJECT", PyInt_FromLong( R_BAKE_SPACE_OBJECT ) );
PyConstant_Insert( d, "TANGENT", PyInt_FromLong( R_BAKE_SPACE_TANGENT ) );
}
diff --git a/source/blender/python/api2_2x/sceneRender.h b/source/blender/python/api2_2x/sceneRender.h
index 1200bb87af2..fffc7916a07 100644
--- a/source/blender/python/api2_2x/sceneRender.h
+++ b/source/blender/python/api2_2x/sceneRender.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_SCENERENDER_H
diff --git a/source/blender/python/api2_2x/sceneSequence.c b/source/blender/python/api2_2x/sceneSequence.c
index 6bcf074068d..08475883593 100644
--- a/source/blender/python/api2_2x/sceneSequence.c
+++ b/source/blender/python/api2_2x/sceneSequence.c
@@ -1,13 +1,10 @@
/*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Campbell Barton
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "sceneSequence.h" /* This must come first */
diff --git a/source/blender/python/api2_2x/sceneSequence.h b/source/blender/python/api2_2x/sceneSequence.h
index 2d8431fae80..2ac1ecdb295 100644
--- a/source/blender/python/api2_2x/sceneSequence.h
+++ b/source/blender/python/api2_2x/sceneSequence.h
@@ -1,15 +1,12 @@
/*
- * $Id: sceneSequence.h 11400 2007-07-28 09:26:53Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Michel Selten
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_SEQUENCE_H
diff --git a/source/blender/python/api2_2x/sceneTimeLine.c b/source/blender/python/api2_2x/sceneTimeLine.c
index 9feba1eb462..7e88ed00ffb 100644
--- a/source/blender/python/api2_2x/sceneTimeLine.c
+++ b/source/blender/python/api2_2x/sceneTimeLine.c
@@ -1,14 +1,11 @@
-/* $Id: sceneTimeLine.c 10778 2007-05-25 16:43:25Z campbellbarton $
+/* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Joilnen Leite
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <BLI_blenlib.h>
diff --git a/source/blender/python/api2_2x/sceneTimeLine.h b/source/blender/python/api2_2x/sceneTimeLine.h
index 0a3aa62b571..b2255441b53 100644
--- a/source/blender/python/api2_2x/sceneTimeLine.h
+++ b/source/blender/python/api2_2x/sceneTimeLine.h
@@ -1,15 +1,12 @@
/*
- * $Id: sceneTimeLine.h 10269 2007-03-15 01:09:14Z campbellbarton $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joilnen Leite
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_TIMELINE_H
diff --git a/source/blender/python/api2_2x/vector.c b/source/blender/python/api2_2x/vector.c
index b3bcdf17762..33ca993fb49 100644
--- a/source/blender/python/api2_2x/vector.c
+++ b/source/blender/python/api2_2x/vector.c
@@ -1,14 +1,11 @@
/*
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Willian P. Germano & Joseph Gilbert, Ken Hughes
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "Mathutils.h"
diff --git a/source/blender/python/api2_2x/vector.h b/source/blender/python/api2_2x/vector.h
index 040f1ba5594..a86f2ddfe42 100644
--- a/source/blender/python/api2_2x/vector.h
+++ b/source/blender/python/api2_2x/vector.h
@@ -1,14 +1,11 @@
-/* $Id: vector.h 10313 2007-03-20 12:07:02Z campbellbarton $
+/* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): Willian P. Germano & Joseph Gilbert
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/python/api2_2x/windowTheme.c b/source/blender/python/api2_2x/windowTheme.c
index b345cd0ae0f..ba231e9cb57 100644
--- a/source/blender/python/api2_2x/windowTheme.c
+++ b/source/blender/python/api2_2x/windowTheme.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "windowTheme.h" /*This must come first*/
diff --git a/source/blender/python/api2_2x/windowTheme.h b/source/blender/python/api2_2x/windowTheme.h
index 45900830706..352a15e8c0e 100644
--- a/source/blender/python/api2_2x/windowTheme.h
+++ b/source/blender/python/api2_2x/windowTheme.h
@@ -1,15 +1,12 @@
/*
- * $Id: windowTheme.h 8774 2006-11-07 11:24:11Z jesterking $
+ * $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian P. Germano
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef EXPP_WINDOWTHEME_H
diff --git a/source/blender/quicktime/CMakeLists.txt b/source/blender/quicktime/CMakeLists.txt
index afaaa35cac7..95969878cf1 100644
--- a/source/blender/quicktime/CMakeLists.txt
+++ b/source/blender/quicktime/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC apple/quicktime_import.c apple/quicktime_export.c)
diff --git a/source/blender/quicktime/Makefile b/source/blender/quicktime/Makefile
index c71ebc4325d..3d8ab2f0adc 100644
--- a/source/blender/quicktime/Makefile
+++ b/source/blender/quicktime/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/quicktime/apple/Makefile b/source/blender/quicktime/apple/Makefile
index 4620714563e..40a353243a6 100644
--- a/source/blender/quicktime/apple/Makefile
+++ b/source/blender/quicktime/apple/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c
index e1f893f0d9d..a49a9a2fdc8 100644
--- a/source/blender/quicktime/apple/quicktime_export.c
+++ b/source/blender/quicktime/apple/quicktime_export.c
@@ -5,14 +5,11 @@
*
* Code to create QuickTime Movies with Blender
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): Stefan Gartner (sgefant)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_QUICKTIME
@@ -311,6 +308,7 @@ static void QT_EndCreateMyVideoTrack(void)
static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, int recty)
{
+ SCTemporalSettings gTemporalSettings;
OSErr err = noErr;
qtexport->ibuf = IMB_allocImBuf (rectx, recty, 32, IB_rect, 0);
@@ -329,7 +327,18 @@ static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, i
SCDefaultPixMapSettings (qtdata->theComponent, qtexport->thePixMap, true);
- SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
+ // workaround for crash with H.264, which requires an upgrade to
+ // the new callback based api for proper encoding, but that's not
+ // really compatible with rendering out frames sequentially
+ gTemporalSettings = qtdata->gTemporalSettings;
+ if(qtdata->gSpatialSettings.codecType == kH264CodecType) {
+ if(gTemporalSettings.temporalQuality != codecMinQuality) {
+ fprintf(stderr, "Only minimum quality compression supported for QuickTime H.264.\n");
+ gTemporalSettings.temporalQuality = codecMinQuality;
+ }
+ }
+
+ SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &gTemporalSettings);
SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
diff --git a/source/blender/quicktime/apple/quicktime_import.c b/source/blender/quicktime/apple/quicktime_import.c
index 862b20b5260..5a3c76b9d6f 100644
--- a/source/blender/quicktime/apple/quicktime_import.c
+++ b/source/blender/quicktime/apple/quicktime_import.c
@@ -5,14 +5,11 @@
*
* Code to use Quicktime to load images/movies as texture.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): Stefan Gartner (sgefant)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_QUICKTIME
diff --git a/source/blender/quicktime/quicktime_export.h b/source/blender/quicktime/quicktime_export.h
index 5962ae3d713..8a752f9b251 100644
--- a/source/blender/quicktime/quicktime_export.h
+++ b/source/blender/quicktime/quicktime_export.h
@@ -1,14 +1,11 @@
/* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __QUICKTIME_EXPORT_H__
diff --git a/source/blender/quicktime/quicktime_import.h b/source/blender/quicktime/quicktime_import.h
index 58f20e4bf16..1444827e12e 100644
--- a/source/blender/quicktime/quicktime_import.h
+++ b/source/blender/quicktime/quicktime_import.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/blender/radiosity/CMakeLists.txt b/source/blender/radiosity/CMakeLists.txt
index 14805f5bb8d..36e9ad19770 100644
--- a/source/blender/radiosity/CMakeLists.txt
+++ b/source/blender/radiosity/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/source/*.c)
diff --git a/source/blender/radiosity/Makefile b/source/blender/radiosity/Makefile
index 9bbb20c3db4..91a13e2fd57 100644
--- a/source/blender/radiosity/Makefile
+++ b/source/blender/radiosity/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Makes module object directory and bounces make to subdirectories.
diff --git a/source/blender/radiosity/extern/include/radio.h b/source/blender/radiosity/extern/include/radio.h
index 1bdd847930d..b50560438fb 100644
--- a/source/blender/radiosity/extern/include/radio.h
+++ b/source/blender/radiosity/extern/include/radio.h
@@ -7,15 +7,12 @@
$Id$
- ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ ***** BEGIN GPL LICENSE BLOCK *****
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version. The Blender
- Foundation also sells licenses for use in proprietary software under
- the Blender License. See http://www.blender.org/BL/ for information
- about this.
+ of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -33,7 +30,7 @@
Contributor(s): none yet.
- ***** END GPL/BL DUAL LICENSE BLOCK *****
+ ***** END GPL LICENSE BLOCK *****
*/
#ifndef RADIO_H
diff --git a/source/blender/radiosity/extern/include/radio_types.h b/source/blender/radiosity/extern/include/radio_types.h
index c9a0726e0d8..342e122cf36 100644
--- a/source/blender/radiosity/extern/include/radio_types.h
+++ b/source/blender/radiosity/extern/include/radio_types.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* #include "misc_util.h" */ /* for listbase...*/
diff --git a/source/blender/radiosity/intern/Makefile b/source/blender/radiosity/intern/Makefile
index fde495bed85..456b51cc56e 100644
--- a/source/blender/radiosity/intern/Makefile
+++ b/source/blender/radiosity/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Makes module object directory and bounces make to subdirectories.
diff --git a/source/blender/radiosity/intern/source/Makefile b/source/blender/radiosity/intern/source/Makefile
index 7791866eeaa..19768c959c7 100644
--- a/source/blender/radiosity/intern/source/Makefile
+++ b/source/blender/radiosity/intern/source/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# radiosity uses the render lib
#
diff --git a/source/blender/radiosity/intern/source/raddisplay.c b/source/blender/radiosity/intern/source/raddisplay.c
index dcd53b61f46..43860c2a9ae 100644
--- a/source/blender/radiosity/intern/source/raddisplay.c
+++ b/source/blender/radiosity/intern/source/raddisplay.c
@@ -1,14 +1,11 @@
/* ***************************************
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
diff --git a/source/blender/radiosity/intern/source/radfactors.c b/source/blender/radiosity/intern/source/radfactors.c
index d2d1b581ae8..8c89e806034 100644
--- a/source/blender/radiosity/intern/source/radfactors.c
+++ b/source/blender/radiosity/intern/source/radfactors.c
@@ -1,14 +1,11 @@
/* ***************************************
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
diff --git a/source/blender/radiosity/intern/source/radio.c b/source/blender/radiosity/intern/source/radio.c
index 8d08632aedb..aff07ebe9ef 100644
--- a/source/blender/radiosity/intern/source/radio.c
+++ b/source/blender/radiosity/intern/source/radio.c
@@ -1,14 +1,11 @@
/* ***************************************
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
diff --git a/source/blender/radiosity/intern/source/radnode.c b/source/blender/radiosity/intern/source/radnode.c
index 168ad2de725..5517a22eb93 100644
--- a/source/blender/radiosity/intern/source/radnode.c
+++ b/source/blender/radiosity/intern/source/radnode.c
@@ -1,14 +1,11 @@
/* ***************************************
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
diff --git a/source/blender/radiosity/intern/source/radpostprocess.c b/source/blender/radiosity/intern/source/radpostprocess.c
index ec2de5f8712..a7dae59c5f0 100644
--- a/source/blender/radiosity/intern/source/radpostprocess.c
+++ b/source/blender/radiosity/intern/source/radpostprocess.c
@@ -1,14 +1,11 @@
/* ***************************************
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
diff --git a/source/blender/radiosity/intern/source/radpreprocess.c b/source/blender/radiosity/intern/source/radpreprocess.c
index 0fef1414482..5f8a39786c1 100644
--- a/source/blender/radiosity/intern/source/radpreprocess.c
+++ b/source/blender/radiosity/intern/source/radpreprocess.c
@@ -1,14 +1,11 @@
/* ***************************************
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
diff --git a/source/blender/radiosity/intern/source/radrender.c b/source/blender/radiosity/intern/source/radrender.c
index 88c5e2197f9..e5ef1e9a4a2 100644
--- a/source/blender/radiosity/intern/source/radrender.c
+++ b/source/blender/radiosity/intern/source/radrender.c
@@ -1,14 +1,11 @@
/* ***************************************
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* radrender.c, aug 2003
diff --git a/source/blender/readblenfile/BLO_readblenfile.h b/source/blender/readblenfile/BLO_readblenfile.h
index d1b89d8dc97..01de3c77f01 100644
--- a/source/blender/readblenfile/BLO_readblenfile.h
+++ b/source/blender/readblenfile/BLO_readblenfile.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/readblenfile/CMakeLists.txt b/source/blender/readblenfile/CMakeLists.txt
index 491d0fbaaea..dc4a8f5636d 100644
--- a/source/blender/readblenfile/CMakeLists.txt
+++ b/source/blender/readblenfile/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.c)
diff --git a/source/blender/readblenfile/Makefile b/source/blender/readblenfile/Makefile
index 0db2f2aa3b5..d291cb84315 100644
--- a/source/blender/readblenfile/Makefile
+++ b/source/blender/readblenfile/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/readblenfile/intern/BLO_readblenfile.c b/source/blender/readblenfile/intern/BLO_readblenfile.c
index 8199c83c3ef..6e5bf149c7a 100644
--- a/source/blender/readblenfile/intern/BLO_readblenfile.c
+++ b/source/blender/readblenfile/intern/BLO_readblenfile.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
/**
diff --git a/source/blender/readblenfile/intern/Makefile b/source/blender/readblenfile/intern/Makefile
index fa9875b8403..54316903f23 100644
--- a/source/blender/readblenfile/intern/Makefile
+++ b/source/blender/readblenfile/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/readblenfile/stub/BLO_readblenfileSTUB.c b/source/blender/readblenfile/stub/BLO_readblenfileSTUB.c
index d0e7cd9a117..5d1c7e791d9 100644
--- a/source/blender/readblenfile/stub/BLO_readblenfileSTUB.c
+++ b/source/blender/readblenfile/stub/BLO_readblenfileSTUB.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/readblenfile/stub/Makefile b/source/blender/readblenfile/stub/Makefile
index ed96e56b8af..a2b0fe88f6a 100644
--- a/source/blender/readblenfile/stub/Makefile
+++ b/source/blender/readblenfile/stub/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/readblenfile/test/Makefile b/source/blender/readblenfile/test/Makefile
index 235abad36b5..50f50f5c54c 100644
--- a/source/blender/readblenfile/test/Makefile
+++ b/source/blender/readblenfile/test/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/readblenfile/test/test.c b/source/blender/readblenfile/test/test.c
index 5b2a194e0e0..c8fb25eaa61 100644
--- a/source/blender/readblenfile/test/test.c
+++ b/source/blender/readblenfile/test/test.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h> // strlen
#include "BLO_readblenfile.h"
diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt
index 84e9c91e570..b543dff49ff 100644
--- a/source/blender/render/CMakeLists.txt
+++ b/source/blender/render/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/source/*.c)
diff --git a/source/blender/render/Makefile b/source/blender/render/Makefile
index 5d8fbdd743f..11ddbad0b94 100644
--- a/source/blender/render/Makefile
+++ b/source/blender/render/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/render/intern/Makefile b/source/blender/render/intern/Makefile
index ee9969a76c8..859a813bd2f 100644
--- a/source/blender/render/intern/Makefile
+++ b/source/blender/render/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/render/intern/include/envmap.h b/source/blender/render/intern/include/envmap.h
index 32d72555ca4..cbaf329cc75 100644
--- a/source/blender/render/intern/include/envmap.h
+++ b/source/blender/render/intern/include/envmap.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef ENVMAP_EXT_H
diff --git a/source/blender/render/intern/include/gammaCorrectionTables.h b/source/blender/render/intern/include/gammaCorrectionTables.h
index 3d0928f84a3..e792d3ffc4a 100644
--- a/source/blender/render/intern/include/gammaCorrectionTables.h
+++ b/source/blender/render/intern/include/gammaCorrectionTables.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef GAMMACORRECTIONTABLES_H
diff --git a/source/blender/render/intern/include/initrender.h b/source/blender/render/intern/include/initrender.h
index 9a94d193990..0bff7b91acf 100644
--- a/source/blender/render/intern/include/initrender.h
+++ b/source/blender/render/intern/include/initrender.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef INITRENDER_H
diff --git a/source/blender/render/intern/include/pixelshading.h b/source/blender/render/intern/include/pixelshading.h
index d2235784a59..ee7199a4295 100644
--- a/source/blender/render/intern/include/pixelshading.h
+++ b/source/blender/render/intern/include/pixelshading.h
@@ -45,7 +45,7 @@
* mask is pixel coverage in bits
* @return pointer to the object
*/
-void shadeHaloFloat(HaloRen *har,
+int shadeHaloFloat(HaloRen *har,
float *col, int zz,
float dist, float xn,
float yn, short flarec);
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h
index 22fb2e70d87..c2d2ea96745 100644
--- a/source/blender/render/intern/include/render_types.h
+++ b/source/blender/render/intern/include/render_types.h
@@ -64,8 +64,10 @@ typedef struct SampleTables
typedef struct QMCSampler
{
+ struct QMCSampler *next, *prev;
int type;
int tot;
+ int used;
double *samp2d;
double offs[BLENDER_MAX_THREADS][2];
} QMCSampler;
@@ -150,7 +152,7 @@ struct Render
/* samples */
SampleTables *samples;
float jit[32][2];
- QMCSampler *qsa;
+ ListBase *qmcsamplers;
/* shadow counter, detect shadow-reuse for shaders */
int shadowsamplenr[BLENDER_MAX_THREADS];
@@ -455,7 +457,6 @@ typedef struct LampRen {
struct ShadBuf *shb;
float *jitter;
- QMCSampler *qsa;
float imat[3][3];
float spottexfac;
diff --git a/source/blender/render/intern/include/rendercore.h b/source/blender/render/intern/include/rendercore.h
index cdc348279e5..4b28529a147 100644
--- a/source/blender/render/intern/include/rendercore.h
+++ b/source/blender/render/intern/include/rendercore.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef RENDERCORE_H
@@ -104,9 +101,7 @@ extern void ray_trace(ShadeInput *, ShadeResult *);
extern void ray_ao(ShadeInput *, float *);
extern void init_jitter_plane(LampRen *lar);
extern void init_ao_sphere(struct World *wrld);
-extern void init_lamp_hammersley(LampRen *lar);
-extern void free_lamp_qmcsampler(LampRen *lar);
-extern void init_render_hammersley(Render *re);
+extern void init_render_qmcsampler(Render *re);
extern void free_render_qmcsampler(Render *re);
#endif /* RENDER_EXT_H */
diff --git a/source/blender/render/intern/include/shadbuf.h b/source/blender/render/intern/include/shadbuf.h
index 9a0a5296341..7015b4bc1bf 100644
--- a/source/blender/render/intern/include/shadbuf.h
+++ b/source/blender/render/intern/include/shadbuf.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SHADBUF_EXT_H
diff --git a/source/blender/render/intern/include/strand.h b/source/blender/render/intern/include/strand.h
index ebe026e3fec..09988125830 100644
--- a/source/blender/render/intern/include/strand.h
+++ b/source/blender/render/intern/include/strand.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Brecht Van Lommel.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef STRAND_H
diff --git a/source/blender/render/intern/include/texture.h b/source/blender/render/intern/include/texture.h
index 9175145869c..8e56c4a852f 100644
--- a/source/blender/render/intern/include/texture.h
+++ b/source/blender/render/intern/include/texture.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef TEXTURE_EXT_H
diff --git a/source/blender/render/intern/source/Makefile b/source/blender/render/intern/source/Makefile
index 95835f212e8..a86da71e40d 100644
--- a/source/blender/render/intern/source/Makefile
+++ b/source/blender/render/intern/source/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index 42191ff35ad..c2bb6229131 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -55,6 +55,7 @@
#include "DNA_meshdata_types.h"
#include "DNA_meta_types.h"
#include "DNA_modifier_types.h"
+#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_object_force.h"
#include "DNA_object_fluidsim.h"
@@ -986,6 +987,26 @@ static void free_mesh_orco_hash(Render *re)
}
}
+static void flag_render_node_material(Render *re, bNodeTree *ntree)
+{
+ bNode *node;
+
+ for(node=ntree->nodes.first; node; node= node->next) {
+ if(node->id) {
+ if(GS(node->id->name)==ID_MA) {
+ Material *ma= (Material *)node->id;
+
+ if(ma->mode & MA_ZTRA)
+ re->flag |= R_ZTRA;
+
+ ma->flag |= MA_IS_USED;
+ }
+ else if(node->type==NODE_GROUP)
+ flag_render_node_material(re, (bNodeTree *)node->id);
+ }
+ }
+}
+
static Material *give_render_material(Render *re, Object *ob, int nr)
{
extern Material defmaterial; /* material.c */
@@ -994,14 +1015,17 @@ static Material *give_render_material(Render *re, Object *ob, int nr)
ma= give_current_material(ob, nr);
if(ma==NULL)
ma= &defmaterial;
- else
- if(ma->mode & MA_ZTRA)
- re->flag |= R_ZTRA;
if(re->r.mode & R_SPEED) ma->texco |= NEED_UV;
+ if(ma->mode & MA_ZTRA)
+ re->flag |= R_ZTRA;
+
/* for light groups */
ma->flag |= MA_IS_USED;
+
+ if(ma->nodetree && ma->use_nodes)
+ flag_render_node_material(re, ma->nodetree);
return ma;
}
@@ -3660,9 +3684,6 @@ static GroupObject *add_render_lamp(Render *re, Object *ob)
if(re->r.mode & R_SHADOW) {
- if ((lar->mode & LA_SHAD_RAY) && (lar->ray_samp_method == LA_SAMP_HAMMERSLEY)) {
- init_lamp_hammersley(lar);
- }
if(la->type==LA_AREA && (lar->mode & LA_SHAD_RAY) && (lar->ray_samp_method == LA_SAMP_CONSTANT)) {
init_jitter_plane(lar);
}
@@ -4348,7 +4369,6 @@ void RE_Database_Free(Render *re)
freeshadowbuf(lar);
if(lar->jitter) MEM_freeN(lar->jitter);
if(lar->shadsamp) MEM_freeN(lar->shadsamp);
- if(lar->qsa) free_lamp_qmcsampler(lar);
curvemapping_free(lar->curfalloff);
}
@@ -4386,8 +4406,7 @@ void RE_Database_Free(Render *re)
re->wrld.aotables= NULL;
re->scene->world->aotables= NULL;
}
- if((re->r.mode & R_RAYTRACE) && (re->wrld.mode & WO_AMB_OCC) &&
- (re->wrld.ao_samp_method == WO_AOSAMP_HAMMERSLEY) && (re->qsa))
+ if(re->r.mode & R_RAYTRACE)
free_render_qmcsampler(re);
if(re->r.mode & R_RAYTRACE) freeraytree(re);
@@ -4762,11 +4781,12 @@ void RE_Database_FromScene(Render *re, Scene *scene, int use_camera_view)
}
init_render_world(re); /* do first, because of ambient. also requires re->osa set correct */
- if((re->r.mode & R_RAYTRACE) && (re->wrld.mode & WO_AMB_OCC)) {
- if (re->wrld.ao_samp_method == WO_AOSAMP_HAMMERSLEY)
- init_render_hammersley(re);
- else if (re->wrld.ao_samp_method == WO_AOSAMP_CONSTANT)
- init_ao_sphere(&re->wrld);
+ if(re->r.mode & R_RAYTRACE) {
+ init_render_qmcsampler(re);
+
+ if(re->wrld.mode & WO_AMB_OCC)
+ if (re->wrld.ao_samp_method == WO_AOSAMP_CONSTANT)
+ init_ao_sphere(&re->wrld);
}
/* still bad... doing all */
@@ -5415,11 +5435,12 @@ void RE_Database_Baking(Render *re, Scene *scene, int type, Object *actob)
}
init_render_world(re); /* do first, because of ambient. also requires re->osa set correct */
- if((re->r.mode & R_RAYTRACE) && (re->wrld.mode & WO_AMB_OCC)) {
- if (re->wrld.ao_samp_method == WO_AOSAMP_HAMMERSLEY)
- init_render_hammersley(re);
- else if (re->wrld.ao_samp_method == WO_AOSAMP_CONSTANT)
- init_ao_sphere(&re->wrld);
+ if(re->r.mode & R_RAYTRACE) {
+ init_render_qmcsampler(re);
+
+ if(re->wrld.mode & WO_AMB_OCC)
+ if (re->wrld.ao_samp_method == WO_AOSAMP_CONSTANT)
+ init_ao_sphere(&re->wrld);
}
/* still bad... doing all */
diff --git a/source/blender/render/intern/source/gammaCorrectionTables.c b/source/blender/render/intern/source/gammaCorrectionTables.c
index ae54d061eda..24caaea2921 100644
--- a/source/blender/render/intern/source/gammaCorrectionTables.c
+++ b/source/blender/render/intern/source/gammaCorrectionTables.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "gammaCorrectionTables.h"
diff --git a/source/blender/render/intern/source/imagetexture.c b/source/blender/render/intern/source/imagetexture.c
index 7dc205e2794..696f6b72849 100644
--- a/source/blender/render/intern/source/imagetexture.c
+++ b/source/blender/render/intern/source/imagetexture.c
@@ -32,6 +32,7 @@
#include <string.h>
#include <fcntl.h>
#include <math.h>
+#include <float.h>
#ifndef WIN32
#include <unistd.h>
#else
@@ -245,7 +246,7 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, float *texvec, TexResult *texre
if(tex->flag & TEX_NEGALPHA) texres->ta= 1.0f-texres->ta;
/* de-premul, this is being premulled in shade_input_do_shade() */
- if(texres->ta!=1.0f && texres->ta!=0.0f) {
+ if(texres->ta!=1.0f && texres->ta>FLT_EPSILON) {
fx= 1.0f/texres->ta;
texres->tr*= fx;
texres->tg*= fx;
@@ -989,7 +990,7 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, float *texvec, float *dxt, f
}
/* de-premul, this is being premulled in shade_input_do_shade() */
- if(texres->ta!=1.0f && texres->ta!=0.0f) {
+ if(texres->ta!=1.0f && texres->ta>FLT_EPSILON) {
fx= 1.0f/texres->ta;
texres->tr*= fx;
texres->tg*= fx;
diff --git a/source/blender/render/intern/source/initrender.c b/source/blender/render/intern/source/initrender.c
index add89d6249f..ba971d28524 100644
--- a/source/blender/render/intern/source/initrender.c
+++ b/source/blender/render/intern/source/initrender.c
@@ -459,11 +459,7 @@ void RE_SetCamera(Render *re, Object *camera)
if(cam->type==CAM_ORTHO) re->r.mode |= R_ORTHO;
- /* solve this too... all time depending stuff is in convertblender.c? */
- if(cam->ipo) {
- calc_ipo(cam->ipo, frame_to_float(re->r.cfra));
- execute_ipo(&cam->id, cam->ipo);
- }
+ /* updating these values from ipo's/drivers is handeled by the depgraph */
lens= cam->lens;
shiftx=cam->shiftx;
shifty=cam->shifty;
diff --git a/source/blender/render/intern/source/occlusion.c b/source/blender/render/intern/source/occlusion.c
index a4d75c032e5..d70c51b83bc 100644
--- a/source/blender/render/intern/source/occlusion.c
+++ b/source/blender/render/intern/source/occlusion.c
@@ -1475,7 +1475,7 @@ static void sample_occ_surface(ShadeInput *shi)
int *face, *index = RE_strandren_get_face(shi->obr, strand, 0);
float w[4], *co1, *co2, *co3, *co4;
- if(mesh && index) {
+ if(mesh && mesh->face && mesh->co && mesh->col && index) {
face= mesh->face[*index];
co1= mesh->co[face[0]];
@@ -1555,6 +1555,9 @@ void make_occ_tree(Render *re)
occ_compute_passes(re, re->occlusiontree, re->wrld.ao_approx_passes);
for(mesh=re->strandsurface.first; mesh; mesh=mesh->next) {
+ if(!mesh->face || !mesh->co || !mesh->col)
+ continue;
+
count= MEM_callocN(sizeof(int)*mesh->totvert, "OcclusionCount");
facecol= MEM_callocN(sizeof(float)*3*mesh->totface, "StrandSurfFaceCol");
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 26dce52736c..2c6da8b2cb8 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -870,7 +870,7 @@ static void read_render_result(Render *re, int sample)
printf("read exr tmp file: %s\n", str);
- if(rectx!=re->result->rectx || recty!=re->result->recty) {
+ if(re->result == NULL || rectx!=re->result->rectx || recty!=re->result->recty) {
printf("error in reading render result\n");
}
else {
diff --git a/source/blender/render/intern/source/pixelshading.c b/source/blender/render/intern/source/pixelshading.c
index 6871a066c4f..fc5ac68e8c9 100644
--- a/source/blender/render/intern/source/pixelshading.c
+++ b/source/blender/render/intern/source/pixelshading.c
@@ -24,6 +24,7 @@
* ***** END GPL LICENSE BLOCK *****
*/
+#include <float.h>
#include <math.h>
#include <string.h>
#include "BLI_arithb.h"
@@ -243,8 +244,36 @@ static void render_lighting_halo(HaloRen *har, float *colf)
}
+/**
+ * Converts a halo z-buffer value to distance from the camera's near plane
+ * @param z The z-buffer value to convert
+ * @return a distance from the camera's near plane in blender units
+ */
+static float haloZtoDist(int z)
+{
+ float zco = 0;
-void shadeHaloFloat(HaloRen *har, float *col, int zz,
+ if(z >= 0x7FFFFF)
+ return 10e10;
+ else {
+ zco = (float)z/(float)0x7FFFFF;
+ if(R.r.mode & R_ORTHO)
+ return (R.winmat[3][2] - zco*R.winmat[3][3])/(R.winmat[2][2]);
+ else
+ return (R.winmat[3][2])/(R.winmat[2][2] - R.winmat[2][3]*zco);
+ }
+}
+
+/**
+ * @param col (float[4]) Store the rgb color here (with alpha)
+ * The alpha is used to blend the color to the background
+ * color_new = (1-alpha)*color_background + color
+ * @param zz The current zbuffer value at the place of this pixel
+ * @param dist Distance of the pixel from the center of the halo squared. Given in pixels
+ * @param xn The x coordinate of the pixel relaticve to the center of the halo. given in pixels
+ * @param yn The y coordinate of the pixel relaticve to the center of the halo. given in pixels
+ */
+int shadeHaloFloat(HaloRen *har, float *col, int zz,
float dist, float xn, float yn, short flarec)
{
/* fill in col */
@@ -263,12 +292,40 @@ void shadeHaloFloat(HaloRen *har, float *col, int zz,
}
else alpha= har->alfa;
- if(alpha==0.0) {
- col[0] = 0.0;
- col[1] = 0.0;
- col[2] = 0.0;
- col[3] = 0.0;
- return;
+ if(alpha==0.0)
+ return 0;
+
+ /* soften the halo if it intersects geometry */
+ if(har->mat && har->mat->mode & MA_HALO_SOFT) {
+ float segment_length, halo_depth, distance_from_z, visible_depth, soften;
+
+ /* calculate halo depth */
+ segment_length= har->hasize*sasqrt(1.0f - dist/(har->rad*har->rad));
+ halo_depth= 2.0f*segment_length;
+
+ if(halo_depth < FLT_EPSILON)
+ return 0;
+
+ /* calculate how much of this depth is visible */
+ distance_from_z = haloZtoDist(zz) - haloZtoDist(har->zs);
+ visible_depth = halo_depth;
+ if(distance_from_z < segment_length) {
+ soften= (segment_length + distance_from_z)/halo_depth;
+
+ /* apply softening to alpha */
+ if(soften < 1.0f)
+ alpha *= soften;
+ if(alpha <= 0.0f)
+ return 0;
+ }
+ }
+ else {
+ /* not a soft halo. use the old softening code */
+ /* halo being intersected? */
+ if(har->zs> zz-har->zd) {
+ t= ((float)(zz-har->zs))/(float)har->zd;
+ alpha*= sqrt(sqrt(t));
+ }
}
radist= sqrt(dist);
@@ -366,21 +423,10 @@ void shadeHaloFloat(HaloRen *har, float *col, int zz,
if(ster<1.0) dist*= sqrt(ster);
}
}
-
- /* halo being intersected? */
- if(har->zs> zz-har->zd) {
- t= ((float)(zz-har->zs))/(float)har->zd;
- alpha*= sqrt(sqrt(t));
- }
/* disputable optimize... (ton) */
- if(dist<=0.00001) {
- col[0] = 0.0;
- col[1] = 0.0;
- col[2] = 0.0;
- col[3] = 0.0;
- return;
- }
+ if(dist<=0.00001)
+ return 0;
dist*= alpha;
ringf*= dist;
@@ -441,6 +487,8 @@ void shadeHaloFloat(HaloRen *har, float *col, int zz,
/* alpha requires clip, gives black dots */
if(col[3] > 1.0f)
col[3]= 1.0f;
+
+ return 1;
}
/* ------------------------------------------------------------------------- */
diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c
index d423abefe96..7ffed72329e 100644
--- a/source/blender/render/intern/source/rayshade.c
+++ b/source/blender/render/intern/source/rayshade.c
@@ -40,8 +40,9 @@
#include "BKE_utildefines.h"
#include "BLI_arithb.h"
-#include "BLI_rand.h"
+#include "BLI_blenlib.h"
#include "BLI_jitter.h"
+#include "BLI_rand.h"
#include "PIL_time.h"
@@ -729,8 +730,8 @@ static void hammersley_create(double *out, int n)
struct QMCSampler *QMC_initSampler(int type, int tot)
{
- QMCSampler *qsa = MEM_mallocN(sizeof(QMCSampler), "qmc sampler");
- qsa->samp2d = MEM_mallocN(2*sizeof(double)*tot, "qmc sample table");
+ QMCSampler *qsa = MEM_callocN(sizeof(QMCSampler), "qmc sampler");
+ qsa->samp2d = MEM_callocN(2*sizeof(double)*tot, "qmc sample table");
qsa->tot = tot;
qsa->type = type;
@@ -871,27 +872,55 @@ static void QMC_sampleHemiCosine(float *vec, QMCSampler *qsa, int thread, int nu
#endif
/* called from convertBlenderScene.c */
-/* samples don't change per pixel, so build the samples in advance for efficiency */
-void init_lamp_hammersley(LampRen *lar)
+void init_render_qmcsampler(Render *re)
{
- lar->qsa = QMC_initSampler(SAMP_TYPE_HAMMERSLEY, lar->ray_totsamp);
+ re->qmcsamplers= MEM_callocN(sizeof(ListBase)*BLENDER_MAX_THREADS, "QMCListBase");
}
-void init_render_hammersley(Render *re)
+QMCSampler *get_thread_qmcsampler(Render *re, int thread, int type, int tot)
{
- re->qsa = QMC_initSampler(SAMP_TYPE_HAMMERSLEY, (re->wrld.aosamp * re->wrld.aosamp));
+ QMCSampler *qsa;
+
+ /* create qmc samplers as needed, since recursion makes it hard to
+ * predict how many are needed */
+
+ for(qsa=re->qmcsamplers[thread].first; qsa; qsa=qsa->next) {
+ if(qsa->type == type && qsa->tot == tot && !qsa->used) {
+ qsa->used= 1;
+ return qsa;
+ }
+ }
+
+ qsa= QMC_initSampler(type, tot);
+ qsa->used= 1;
+ BLI_addtail(&re->qmcsamplers[thread], qsa);
+
+ return qsa;
}
-void free_lamp_qmcsampler(LampRen *lar)
+void release_thread_qmcsampler(Render *re, int thread, QMCSampler *qsa)
{
- QMC_freeSampler(lar->qsa);
- lar->qsa = NULL;
+ qsa->used= 0;
}
void free_render_qmcsampler(Render *re)
{
- QMC_freeSampler(re->qsa);
- re->qsa = NULL;
+ QMCSampler *qsa, *next;
+ int a;
+
+ if(re->qmcsamplers) {
+ for(a=0; a<BLENDER_MAX_THREADS; a++) {
+ for(qsa=re->qmcsamplers[a].first; qsa; qsa=next) {
+ next= qsa->next;
+ QMC_freeSampler(qsa);
+ }
+
+ re->qmcsamplers[a].first= re->qmcsamplers[a].last= NULL;
+ }
+
+ MEM_freeN(re->qmcsamplers);
+ re->qmcsamplers= NULL;
+ }
}
static int adaptive_sample_variance(int samples, float *col, float *colsq, float thresh)
@@ -968,7 +997,7 @@ static void trace_refract(float *col, ShadeInput *shi, ShadeResult *shr)
else samp_type = SAMP_TYPE_HAMMERSLEY;
/* all samples are generated per pixel */
- qsa = QMC_initSampler(samp_type, max_samples);
+ qsa = get_thread_qmcsampler(&R, shi->thread, samp_type, max_samples);
QMC_initPixel(qsa, shi->thread);
} else
max_samples = 1;
@@ -1026,7 +1055,8 @@ static void trace_refract(float *col, ShadeInput *shi, ShadeResult *shr)
col[2] /= (float)samples;
col[3] /= (float)samples;
- if (qsa) QMC_freeSampler(qsa);
+ if (qsa)
+ release_thread_qmcsampler(&R, shi->thread, qsa);
}
static void trace_reflect(float *col, ShadeInput *shi, ShadeResult *shr, float fresnelfac)
@@ -1053,7 +1083,7 @@ static void trace_reflect(float *col, ShadeInput *shi, ShadeResult *shr, float f
else samp_type = SAMP_TYPE_HAMMERSLEY;
/* all samples are generated per pixel */
- qsa = QMC_initSampler(samp_type, max_samples);
+ qsa = get_thread_qmcsampler(&R, shi->thread, samp_type, max_samples);
QMC_initPixel(qsa, shi->thread);
} else
max_samples = 1;
@@ -1131,7 +1161,8 @@ static void trace_reflect(float *col, ShadeInput *shi, ShadeResult *shr, float f
col[1] /= (float)samples;
col[2] /= (float)samples;
- if (qsa) QMC_freeSampler(qsa);
+ if (qsa)
+ release_thread_qmcsampler(&R, shi->thread, qsa);
}
/* extern call from render loop */
@@ -1546,9 +1577,9 @@ void ray_ao_qmc(ShadeInput *shi, float *shadfac)
max_samples /= speedfac;
if (max_samples < 5) max_samples = 5;
- qsa = QMC_initSampler(SAMP_TYPE_HALTON, max_samples);
+ qsa = get_thread_qmcsampler(&R, shi->thread, SAMP_TYPE_HALTON, max_samples);
} else if (R.wrld.ao_samp_method==WO_AOSAMP_HAMMERSLEY)
- qsa = R.qsa;
+ qsa = get_thread_qmcsampler(&R, shi->thread, SAMP_TYPE_HAMMERSLEY, max_samples);
QMC_initPixel(qsa, shi->thread);
@@ -1621,7 +1652,8 @@ void ray_ao_qmc(ShadeInput *shi, float *shadfac)
shadfac[0]= shadfac[1]= shadfac[2]= 1.0f - fac/(float)samples;
}
- if ((qsa) && (qsa->type == SAMP_TYPE_HALTON)) QMC_freeSampler(qsa);
+ if (qsa)
+ release_thread_qmcsampler(&R, shi->thread, qsa);
}
/* extern call from shade_lamp_loop, ambient occlusion calculus */
@@ -1787,11 +1819,11 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
/* sampling init */
if (lar->ray_samp_method==LA_SAMP_HALTON) {
- qsa = QMC_initSampler(SAMP_TYPE_HALTON, max_samples);
- qsa_jit = QMC_initSampler(SAMP_TYPE_HALTON, max_samples);
+ qsa = get_thread_qmcsampler(&R, shi->thread, SAMP_TYPE_HALTON, max_samples);
+ qsa_jit = get_thread_qmcsampler(&R, shi->thread, SAMP_TYPE_HALTON, max_samples);
} else if (lar->ray_samp_method==LA_SAMP_HAMMERSLEY) {
- qsa = lar->qsa;
- qsa_jit = QMC_initSampler(SAMP_TYPE_HAMMERSLEY, max_samples);
+ qsa = get_thread_qmcsampler(&R, shi->thread, SAMP_TYPE_HAMMERSLEY, max_samples);
+ qsa_jit = get_thread_qmcsampler(&R, shi->thread, SAMP_TYPE_HAMMERSLEY, max_samples);
}
QMC_initPixel(qsa, shi->thread);
@@ -1921,8 +1953,10 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
} else
shadfac[3]= 1.0f-fac/samples;
- if (qsa_jit) QMC_freeSampler(qsa_jit);
- if ((qsa) && (qsa->type == SAMP_TYPE_HALTON)) QMC_freeSampler(qsa);
+ if (qsa_jit)
+ release_thread_qmcsampler(&R, shi->thread, qsa_jit);
+ if (qsa)
+ release_thread_qmcsampler(&R, shi->thread, qsa);
}
static void ray_shadow_jitter(ShadeInput *shi, LampRen *lar, float *lampco, float *shadfac, Isect *isec)
diff --git a/source/blender/render/intern/source/raytrace.c b/source/blender/render/intern/source/raytrace.c
index 7423a11764d..ec47df74d04 100644
--- a/source/blender/render/intern/source/raytrace.c
+++ b/source/blender/render/intern/source/raytrace.c
@@ -1033,8 +1033,11 @@ static int testnode(Octree *oc, Isect *is, Node *no, OcVal ocval, RayCheckFunc c
isect.ob= ob;
isect.face= face;
if(RE_ray_face_intersection(&isect, oc->transformfunc, oc->coordsfunc)) {
- if(isect.labda<is->labda) *is= isect;
- found= 1;
+ if(isect.labda<is->labda) {
+ *is= isect;
+ found= 1;
+ }
+
}
}
//else rejected++;
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index 36ee4daaa64..9fd0c247aaf 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -165,11 +165,14 @@ static int calchalo_z(HaloRen *har, int zz)
return zz;
}
+
+
static void halo_pixelstruct(HaloRen *har, RenderLayer **rlpp, int totsample, int od, float dist, float xn, float yn, PixStr *ps)
{
- float col[4], accol[4];
- int amount, amountm, zz, flarec, sample;
+ float col[4], accol[4], fac;
+ int amount, amountm, zz, flarec, sample, fullsample, mask=0;
+ fullsample= (totsample > 1);
amount= 0;
accol[0]=accol[1]=accol[2]=accol[3]= 0.0f;
flarec= har->flarec;
@@ -179,39 +182,57 @@ static void halo_pixelstruct(HaloRen *har, RenderLayer **rlpp, int totsample, in
amount+= amountm;
zz= calchalo_z(har, ps->z);
- if(zz> har->zs) {
- float fac;
-
- shadeHaloFloat(har, col, zz, dist, xn, yn, flarec);
- fac= ((float)amountm)/(float)R.osa;
- accol[0]+= fac*col[0];
- accol[1]+= fac*col[1];
- accol[2]+= fac*col[2];
- accol[3]+= fac*col[3];
- flarec= 0;
+ if((zz> har->zs) || (har->mat && (har->mat->mode & MA_HALO_SOFT))) {
+ if(shadeHaloFloat(har, col, zz, dist, xn, yn, flarec)) {
+ flarec= 0;
+
+ if(fullsample) {
+ for(sample=0; sample<totsample; sample++)
+ if(ps->mask & (1 << sample))
+ addalphaAddfacFloat(rlpp[sample]->rectf + od*4, col, har->add);
+ }
+ else {
+ fac= ((float)amountm)/(float)R.osa;
+ accol[0]+= fac*col[0];
+ accol[1]+= fac*col[1];
+ accol[2]+= fac*col[2];
+ accol[3]+= fac*col[3];
+ }
+ }
}
+ mask |= ps->mask;
ps= ps->next;
}
+
/* now do the sky sub-pixels */
amount= R.osa-amount;
if(amount) {
- float fac;
-
- shadeHaloFloat(har, col, 0x7FFFFF, dist, xn, yn, flarec);
- fac= ((float)amount)/(float)R.osa;
- accol[0]+= fac*col[0];
- accol[1]+= fac*col[1];
- accol[2]+= fac*col[2];
- accol[3]+= fac*col[3];
- }
- col[0]= accol[0];
- col[1]= accol[1];
- col[2]= accol[2];
- col[3]= accol[3];
-
- for(sample=0; sample<totsample; sample++)
- addalphaAddfacFloat(rlpp[sample]->rectf + od*4, col, har->add);
+ if(shadeHaloFloat(har, col, 0x7FFFFF, dist, xn, yn, flarec)) {
+ if(!fullsample) {
+ fac= ((float)amount)/(float)R.osa;
+ accol[0]+= fac*col[0];
+ accol[1]+= fac*col[1];
+ accol[2]+= fac*col[2];
+ accol[3]+= fac*col[3];
+ }
+ }
+ }
+
+ if(fullsample) {
+ for(sample=0; sample<totsample; sample++)
+ if(!(mask & (1 << sample)))
+ addalphaAddfacFloat(rlpp[sample]->rectf + od*4, col, har->add);
+ }
+ else {
+ col[0]= accol[0];
+ col[1]= accol[1];
+ col[2]= accol[2];
+ col[3]= accol[3];
+
+ for(sample=0; sample<totsample; sample++)
+ addalphaAddfacFloat(rlpp[sample]->rectf + od*4, col, har->add);
+ }
}
static void halo_tile(RenderPart *pa, RenderLayer *rl)
@@ -279,11 +300,11 @@ static void halo_tile(RenderPart *pa, RenderLayer *rl)
}
else {
zz= calchalo_z(har, *rz);
- if(zz> har->zs) {
- shadeHaloFloat(har, col, zz, dist, xn, yn, har->flarec);
-
- for(sample=0; sample<totsample; sample++)
- addalphaAddfacFloat(rlpp[sample]->rectf + od*4, col, har->add);
+ if((zz> har->zs) || (har->mat && (har->mat->mode & MA_HALO_SOFT))) {
+ if(shadeHaloFloat(har, col, zz, dist, xn, yn, har->flarec)) {
+ for(sample=0; sample<totsample; sample++)
+ addalphaAddfacFloat(rlpp[sample]->rectf + od*4, col, har->add);
+ }
}
}
}
@@ -1279,7 +1300,7 @@ static void shade_sample_sss(ShadeSample *ssamp, Material *mat, ObjectInstanceRe
{
ShadeInput *shi= ssamp->shi;
ShadeResult shr;
- float texfac, orthoarea, nor[3];
+ float texfac, orthoarea, nor[3], alpha;
/* cache for shadow */
shi->samplenr= R.shadowsamplenr[shi->thread]++;
@@ -1345,15 +1366,18 @@ static void shade_sample_sss(ShadeSample *ssamp, Material *mat, ObjectInstanceRe
/* texture blending */
texfac= shi->mat->sss_texfac;
+ alpha= shr.col[3];
+ *area *= alpha;
+
if(texfac == 0.0f) {
- if(shr.col[0]!=0.0f) color[0] /= shr.col[0];
- if(shr.col[1]!=0.0f) color[1] /= shr.col[1];
- if(shr.col[2]!=0.0f) color[2] /= shr.col[2];
+ if(shr.col[0]!=0.0f) color[0] *= alpha/shr.col[0];
+ if(shr.col[1]!=0.0f) color[1] *= alpha/shr.col[1];
+ if(shr.col[2]!=0.0f) color[2] *= alpha/shr.col[2];
}
- else if(texfac != 1.0f) {
- if(shr.col[0]!=0.0f) color[0] *= pow(shr.col[0], texfac)/shr.col[0];
- if(shr.col[1]!=0.0f) color[1] *= pow(shr.col[1], texfac)/shr.col[1];
- if(shr.col[2]!=0.0f) color[2] *= pow(shr.col[2], texfac)/shr.col[2];
+ else if(texfac != 1.0f && (alpha > FLT_EPSILON)) {
+ if(shr.col[0]!=0.0f) color[0] *= alpha*pow(shr.col[0]/alpha, texfac)/shr.col[0];
+ if(shr.col[1]!=0.0f) color[1] *= alpha*pow(shr.col[1]/alpha, texfac)/shr.col[1];
+ if(shr.col[2]!=0.0f) color[2] *= alpha*pow(shr.col[2]/alpha, texfac)/shr.col[2];
}
}
@@ -1423,6 +1447,8 @@ void zbufshade_sss_tile(RenderPart *pa)
rl= rr->layers.first;
ssamp.shi[0].passflag |= SCE_PASS_RGBA|SCE_PASS_COMBINED;
ssamp.shi[0].combinedflag &= ~(SCE_PASS_SPEC);
+ ssamp.shi[0].mat_override= NULL;
+ ssamp.shi[0].light_override= NULL;
lay= ssamp.shi[0].lay;
/* create the pixelstrs to be used later */
@@ -1609,8 +1635,8 @@ static void renderhalo_post(RenderResult *rr, float *rectf, HaloRen *har) /* pos
dist= xsq+ysq;
if(dist<har->radsq) {
- shadeHaloFloat(har, colf, 0x7FFFFF, dist, xn, yn, har->flarec);
- addalphaAddfacFloat(rtf, colf, har->add);
+ if(shadeHaloFloat(har, colf, 0x7FFFFF, dist, xn, yn, har->flarec))
+ addalphaAddfacFloat(rtf, colf, har->add);
}
rtf+=4;
}
@@ -2217,7 +2243,7 @@ static void do_bake_shade(void *handle, int x, int y, float u, float v)
}
if (hit && bs->type==RE_BAKE_DISPLACEMENT) {;
- bake_displacement(handle, shi, (dir==-1)? -mindist:mindist, x, y);
+ bake_displacement(handle, shi, (dir==-1)? mindist:-mindist, x, y);
return;
}
diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c
index 35e0815cc69..bf2ee3dbdd9 100644
--- a/source/blender/render/intern/source/shadeinput.c
+++ b/source/blender/render/intern/source/shadeinput.c
@@ -856,9 +856,13 @@ void shade_input_set_shade_texco(ShadeInput *shi)
tangent= RE_vlakren_get_nmap_tangent(obr, shi->vlr, 0);
if(tangent) {
- s1= &tangent[shi->i1*3];
- s2= &tangent[shi->i2*3];
- s3= &tangent[shi->i3*3];
+ int j1= shi->i1, j2= shi->i2, j3= shi->i3;
+
+ vlr_set_uv_indices(shi->vlr, &j1, &j2, &j3);
+
+ s1= &tangent[j1*3];
+ s2= &tangent[j2*3];
+ s3= &tangent[j3*3];
shi->nmaptang[0]= (tl*s3[0] - tu*s1[0] - tv*s2[0]);
shi->nmaptang[1]= (tl*s3[1] - tu*s1[1] - tv*s2[1]);
diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c
index 315ca58efc8..629d60bdffc 100644
--- a/source/blender/render/intern/source/shadeoutput.c
+++ b/source/blender/render/intern/source/shadeoutput.c
@@ -429,10 +429,6 @@ static float area_lamp_energy(float (*area)[3], float *co, float *vn)
double cross[4][3]; /* cross products of this */
double rad[4]; /* angles between vecs */
- /* extra test for dot */
- if ( INPR(co, vn) <= 0.0f)
- return 0.0f;
-
VECSUB(vec[0], co, area[0]);
VECSUB(vec[1], co, area[1]);
VECSUB(vec[2], co, area[2]);
@@ -1307,7 +1303,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
}
/* 'is' is diffuse */
- if((ma->shade_flag & MA_CUBIC) && is>0.0f)
+ if((ma->shade_flag & MA_CUBIC) && is>0.0f && is<1.0f)
is= 3.0*is*is - 2.0*is*is*is; // nicer termination of shades
i= is*phongcorr;
@@ -1620,10 +1616,13 @@ void shade_lamp_loop(ShadeInput *shi, ShadeResult *shr)
if (shr->shad[2] < 0) shr->shad[2] = 0;
if(ma->sss_flag & MA_DIFF_SSS) {
- float sss[3], col[3], texfac= ma->sss_texfac;
+ float sss[3], col[3], alpha, invalpha, texfac= ma->sss_texfac;
/* this will return false in the preprocess stage */
if(sample_sss(&R, ma, shi->co, sss)) {
+ alpha= shr->col[3];
+ invalpha= (alpha > FLT_EPSILON)? 1.0f/alpha: 1.0f;
+
if(texfac==0.0f) {
VECCOPY(col, shr->col);
}
@@ -1631,19 +1630,20 @@ void shade_lamp_loop(ShadeInput *shi, ShadeResult *shr)
col[0]= col[1]= col[2]= 1.0f;
}
else {
- col[0]= pow(shr->col[0], 1.0f-texfac);
- col[1]= pow(shr->col[1], 1.0f-texfac);
- col[2]= pow(shr->col[2], 1.0f-texfac);
+ VECCOPY(col, shr->col);
+ col[0]= alpha*pow(col[0]*invalpha, 1.0f-texfac);
+ col[1]= alpha*pow(col[1]*invalpha, 1.0f-texfac);
+ col[2]= alpha*pow(col[2]*invalpha, 1.0f-texfac);
}
- shr->diff[0]= sss[0]*col[0];
- shr->diff[1]= sss[1]*col[1];
- shr->diff[2]= sss[2]*col[2];
+ shr->diff[0]= sss[0]*col[0]*invalpha;
+ shr->diff[1]= sss[1]*col[1]*invalpha;
+ shr->diff[2]= sss[2]*col[2]*invalpha;
if(shi->combinedflag & SCE_PASS_SHADOW) {
- shr->shad[0]= sss[0]*col[0];
- shr->shad[1]= sss[1]*col[1];
- shr->shad[2]= sss[2]*col[2];
+ shr->shad[0]= shr->diff[0];
+ shr->shad[1]= shr->diff[1];
+ shr->shad[2]= shr->diff[2];
}
}
}
@@ -1661,7 +1661,7 @@ void shade_lamp_loop(ShadeInput *shi, ShadeResult *shr)
}
/* exposure correction */
- if(R.wrld.exp!=0.0f || R.wrld.range!=1.0f) {
+ if((R.wrld.exp!=0.0f || R.wrld.range!=1.0f) && !R.sss_points) {
wrld_exposure_correct(shr->combined); /* has no spec! */
wrld_exposure_correct(shr->spec);
}
diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c
index 1c5d793dbc9..591d51a969d 100644
--- a/source/blender/render/intern/source/strand.c
+++ b/source/blender/render/intern/source/strand.c
@@ -650,7 +650,7 @@ static void strand_render(Render *re, StrandSegment *sseg, float winmat[][4], St
do_scanconvert_strand(re, spart, zspan, t, dt, p1->zco2, p1->zco1, p2->zco1, p2->zco2, 0);
}
else {
- float hoco1[4], hoco2[3];
+ float hoco1[4], hoco2[4];
int a, obi, index;
obi= sseg->obi - re->objectinstance;
diff --git a/source/blender/render/intern/source/texture.c b/source/blender/render/intern/source/texture.c
index 6af3b711028..0a72f976825 100644
--- a/source/blender/render/intern/source/texture.c
+++ b/source/blender/render/intern/source/texture.c
@@ -721,30 +721,59 @@ static int plugintex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex
{
PluginTex *pit;
int rgbnor=0;
+ float result[ 8 ];
texres->tin= 0.0;
pit= tex->plugin;
if(pit && pit->doit) {
if(texres->nor) {
- VECCOPY(pit->result+5, texres->nor);
+ if (pit->version < 6) {
+ VECCOPY(pit->result+5, texres->nor);
+ } else {
+ VECCOPY(result+5, texres->nor);
+ }
+ }
+ if (pit->version < 6) {
+ if(osatex) rgbnor= ((TexDoitold)pit->doit)(tex->stype,
+ pit->data, texvec, dxt, dyt);
+ else rgbnor= ((TexDoitold)pit->doit)(tex->stype,
+ pit->data, texvec, 0, 0);
+ } else {
+ if(osatex) rgbnor= ((TexDoit)pit->doit)(tex->stype,
+ pit->data, texvec, dxt, dyt, result);
+ else rgbnor= ((TexDoit)pit->doit)(tex->stype,
+ pit->data, texvec, 0, 0, result);
}
- if(osatex) rgbnor= ((TexDoit)pit->doit)(tex->stype, pit->data, texvec, dxt, dyt);
- else rgbnor= ((TexDoit)pit->doit)(tex->stype, pit->data, texvec, 0, 0);
- texres->tin= pit->result[0];
+ if (pit->version < 6) {
+ texres->tin = pit->result[0];
+ } else {
+ texres->tin = result[0];
+ }
if(rgbnor & TEX_NOR) {
if(texres->nor) {
- VECCOPY(texres->nor, pit->result+5);
+ if (pit->version < 6) {
+ VECCOPY(texres->nor, pit->result+5);
+ } else {
+ VECCOPY(texres->nor, result+5);
+ }
}
}
if(rgbnor & TEX_RGB) {
- texres->tr= pit->result[1];
- texres->tg= pit->result[2];
- texres->tb= pit->result[3];
- texres->ta= pit->result[4];
+ if (pit->version < 6) {
+ texres->tr = pit->result[1];
+ texres->tg = pit->result[2];
+ texres->tb = pit->result[3];
+ texres->ta = pit->result[4];
+ } else {
+ texres->tr = result[1];
+ texres->tg = result[2];
+ texres->tb = result[3];
+ texres->ta = result[4];
+ }
BRICONTRGB;
}
@@ -1468,8 +1497,9 @@ void do_material_tex(ShadeInput *shi)
dx= dxt;
dy= dyt;
VECCOPY(tempvec, shi->co);
- if(shi->obi && shi->obi->duplitexmat)
- MTC_Mat4MulVecfl(shi->obi->duplitexmat, tempvec);
+ if(mtex->texflag & MTEX_OB_DUPLI_ORIG)
+ if(shi->obi && shi->obi->duplitexmat)
+ MTC_Mat4MulVecfl(shi->obi->duplitexmat, tempvec);
MTC_Mat4MulVecfl(ob->imat, tempvec);
if(shi->osatex) {
VECCOPY(dxt, shi->dxco);
diff --git a/source/blender/src/Bfont.c b/source/blender/src/Bfont.c
index 2d442e2cf73..cd45debcbe4 100644
--- a/source/blender/src/Bfont.c
+++ b/source/blender/src/Bfont.c
@@ -2,15 +2,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/blender/src/CMakeLists.txt b/source/blender/src/CMakeLists.txt
index 176ec036ada..d6874cdd4db 100644
--- a/source/blender/src/CMakeLists.txt
+++ b/source/blender/src/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.c)
diff --git a/source/blender/src/Makefile b/source/blender/src/Makefile
index 5038c294bc6..c1c0ef8b1f2 100644
--- a/source/blender/src/Makefile
+++ b/source/blender/src/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/src/booleanops.c b/source/blender/src/booleanops.c
index fc78200ab5c..14766d1f746 100644
--- a/source/blender/src/booleanops.c
+++ b/source/blender/src/booleanops.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* CSG operations.
*/
@@ -399,10 +396,10 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
if (!BLI_ghash_haskey(material_hash, orig_mat)) {
mat[*totmat] = orig_mat;
mat_nr = mface->mat_nr = (*totmat)++;
- BLI_ghash_insert(material_hash, orig_mat, (void*)mat_nr);
+ BLI_ghash_insert(material_hash, orig_mat, SET_INT_IN_POINTER(mat_nr));
}
else
- mface->mat_nr = (int)BLI_ghash_lookup(material_hash, orig_mat);
+ mface->mat_nr = GET_INT_FROM_POINTER(BLI_ghash_lookup(material_hash, orig_mat));
}
else
mface->mat_nr = 0;
diff --git a/source/blender/src/booleanops_mesh.c b/source/blender/src/booleanops_mesh.c
index d0b40b6eb7e..14e32873dbd 100644
--- a/source/blender/src/booleanops_mesh.c
+++ b/source/blender/src/booleanops_mesh.c
@@ -3,15 +3,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "CSG_BooleanOps.h"
diff --git a/source/blender/src/butspace.c b/source/blender/src/butspace.c
index cdc46cde8b7..5b5c7f2d5ba 100644
--- a/source/blender/src/butspace.c
+++ b/source/blender/src/butspace.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <time.h>
diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c
index 06c04652d55..f1c356a0a77 100644
--- a/source/blender/src/buttons_editing.c
+++ b/source/blender/src/buttons_editing.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <time.h>
@@ -930,7 +927,6 @@ void do_modifier_panels(unsigned short event)
break;
case B_MODIFIER_RECALC:
- ob->softflag |= OB_SB_RESET;
allqueue(REDRAWBUTSEDIT, 0);
allqueue(REDRAWVIEW3D, 0);
allqueue(REDRAWIMAGE, 0);
@@ -1655,6 +1651,13 @@ void modifiers_explodeFacepa(void *arg1, void *arg2)
emd->flag |= eExplodeFlag_CalcFaces;
}
+static int modifier_is_fluid_particles(ModifierData *md) {
+ if(md->type == eModifierType_ParticleSystem) {
+ if(((ParticleSystemModifierData *)md)->psys->part->type == PART_FLUID)
+ return 1;
+ }
+ return 0;
+}
static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco, int *yco, int index, int cageIndex, int lastCageIndex)
{
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
@@ -1732,7 +1735,8 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco
uiBlockSetEmboss(block, UI_EMBOSSN);
// deletion over the deflection panel
- if(md->type!=eModifierType_Collision)
+ // fluid particle modifier can't be deleted here
+ if(md->type!=eModifierType_Collision && !modifier_is_fluid_particles(md))
{
but = uiDefIconBut(block, BUT, B_MODIFIER_RECALC, VICON_X, x+width-70+40, y, 16, 16, NULL, 0.0, 0.0, 0.0, 0.0, "Delete modifier");
uiButSetFunc(but, modifiers_del, ob, md);
@@ -2222,11 +2226,11 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco
uiButSetFunc(but, modifiers_reassignHook, ob, md);
}
} else if (md->type==eModifierType_Softbody) {
- uiDefBut(block, LABEL, 1, "See Softbody panel.", lx, (cy-=19), buttonWidth,19, NULL, 0.0, 0.0, 0, 0, "");
+ uiDefBut(block, LABEL, 1, "See Soft Body panel.", lx, (cy-=19), buttonWidth,19, NULL, 0.0, 0.0, 0, 0, "");
} else if (md->type==eModifierType_Cloth) {
uiDefBut(block, LABEL, 1, "See Cloth panel.", lx, (cy-=19), buttonWidth,19, NULL, 0.0, 0.0, 0, 0, "");
} else if (md->type==eModifierType_Collision) {
- uiDefBut(block, LABEL, 1, "See Deflection panel.", lx, (cy-=19), buttonWidth,19, NULL, 0.0, 0.0, 0, 0, "");
+ uiDefBut(block, LABEL, 1, "See Collision panel.", lx, (cy-=19), buttonWidth,19, NULL, 0.0, 0.0, 0, 0, "");
} else if (md->type==eModifierType_Boolean) {
BooleanModifierData *bmd = (BooleanModifierData*) md;
uiDefButI(block, MENU, B_MODIFIER_RECALC, "Operation%t|Intersect%x0|Union%x1|Difference%x2", lx,(cy-=19),buttonWidth,19, &bmd->operation, 0.0, 1.0, 0, 0, "Boolean operation to perform");
@@ -2436,17 +2440,17 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco
}
if (md->error) {
- char str[512];
-
- y -= 20;
+ y -= 6;
uiBlockSetCol(block, color);
/* roundbox 4 free variables: corner-rounding, nop, roundbox type, shade */
uiDefBut(block, ROUNDBOX, 0, "", x-10, y, width, 20, NULL, 5.0, 0.0, 15, 40, "");
uiBlockSetCol(block, TH_AUTO);
- sprintf(str, "Modifier Error: %s", md->error);
- uiDefBut(block, LABEL, B_NOP, str, x+15, y+15, width-35, 19, NULL, 0.0, 0.0, 0.0, 0.0, "");
+ uiDefIconBut(block,LABEL,B_NOP,ICON_ERROR, x-9, y,19,19, 0,0,0,0,0, "");
+ uiDefBut(block, LABEL, B_NOP, md->error, x+5, y, width-15, 19, NULL, 0.0, 0.0, 0.0, 0.0, "");
+
+ y -= 18;
}
uiClearButLock();
@@ -2473,7 +2477,7 @@ static void editing_panel_modifiers(Object *ob)
uiDefBlockBut(block, modifiers_add_menu, ob, "Add Modifier", 0, 190, 130, 20, "Add a new modifier");
sprintf(str, "To: %s", ob->id.name+2);
- uiDefBut(block, LABEL, 1, str, 140, 190, 150, 20, NULL, 0.0, 0.0, 0, 0, "Object whose modifier stack is being edited");
+ uiDefBut(block, LABEL, 1, str, 140, 190, 160, 20, NULL, 0.0, 0.0, 0, 0, "Object whose modifier stack is being edited");
xco = 0;
yco = 160;
@@ -3700,11 +3704,6 @@ void do_latticebuts(unsigned short event)
lt = ob->data;
if(ob==G.obedit) resizelattice(editLatt, lt->opntsu, lt->opntsv, lt->opntsw, NULL);
else resizelattice(ob->data, lt->opntsu, lt->opntsv, lt->opntsw, NULL);
- ob->softflag |= OB_SB_REDO;
- if(modifiers_isClothEnabled(ob)) {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- }
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
allqueue(REDRAWVIEW3D, 0);
}
@@ -3712,11 +3711,6 @@ void do_latticebuts(unsigned short event)
if(ob) {
lt = ob->data;
resizelattice(ob->data, lt->opntsu, lt->opntsv, lt->opntsw, ob);
- ob->softflag |= OB_SB_REDO;
- if(modifiers_isClothEnabled(ob)) {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- }
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
allqueue(REDRAWVIEW3D, 0);
}
@@ -4004,15 +3998,26 @@ static void attach_bone_to_parent_cb(void *bonev, void *arg2_unused)
{
EditBone *ebone= bonev;
- if (ebone->parent && (ebone->flag & BONE_CONNECTED)) {
- /* Attach this bone to its parent */
- VECCOPY(ebone->head, ebone->parent->tail);
+ if (ebone->parent) {
+ if(ebone->flag & BONE_CONNECTED) {
+ /* Attach this bone to its parent */
+ VECCOPY(ebone->head, ebone->parent->tail);
+
+ if(ebone->flag & BONE_ROOTSEL)
+ ebone->parent->flag |= BONE_TIPSEL;
+ }
+ else if(!(ebone->parent->flag & BONE_ROOTSEL)) {
+ ebone->parent->flag &= ~BONE_TIPSEL;
+ }
}
}
static void parnr_to_editbone(EditBone *bone)
{
if (bone->parNr == -1){
+ if(bone->parent && !(bone->parent->flag & BONE_ROOTSEL))
+ bone->parent->flag &= ~BONE_TIPSEL;
+
bone->parent = NULL;
bone->flag &= ~BONE_CONNECTED;
}
@@ -4156,13 +4161,13 @@ static void editing_panel_armature_type(Object *ob, bArmature *arm)
for(a=0; a<8; a++) {
short dx= 18;
but= uiDefButBitS(block, BUT_TOGDUAL, 1<<a, REDRAWVIEW3D, "", 10+a*dx, 115, dx, 15, &arm->layer, 0, 0, 0, 0, "Armature layer (Hold Ctrl for locking in a proxy instance)");
- uiButSetFunc(but, armature_layer_cb, &arm->layer, (void *)(1<<a));
+ uiButSetFunc(but, armature_layer_cb, &arm->layer, SET_INT_IN_POINTER(1<<a));
}
uiBlockBeginAlign(block);
for(a=8; a<16; a++) {
short dx= 18;
but= uiDefButBitS(block, BUT_TOGDUAL, 1<<a, REDRAWVIEW3D, "", 18+a*dx, 115, dx, 15, &arm->layer, 0, 0, 0, 0, "Armature layer (Hold Ctrl for locking in a proxy instance)");
- uiButSetFunc(but, armature_layer_cb, &arm->layer, (void *)(1<<a));
+ uiButSetFunc(but, armature_layer_cb, &arm->layer, SET_INT_IN_POINTER(1<<a));
}
/* quite bad here, but I don't know a better place for copy... */
if(ob->pose)
@@ -4362,13 +4367,13 @@ static void editing_panel_armature_bones(Object *ob, bArmature *arm)
for(a=0; a<8; a++) {
short dx= 21;
but= uiDefButBitS(block, TOG, 1<<a, REDRAWVIEW3D, "", -10+a*dx, by-57, dx, 15, &curBone->layer, 0, 0, 0, 0, "Armature layer that bone exists on");
- uiButSetFunc(but, armature_layer_cb, &curBone->layer, (void *)(1<<a));
+ uiButSetFunc(but, armature_layer_cb, &curBone->layer, SET_INT_IN_POINTER(1<<a));
}
uiBlockBeginAlign(block);
for(a=8; a<16; a++) {
short dx= 21;
but= uiDefButBitS(block, TOG, 1<<a, REDRAWVIEW3D, "", -6+a*dx, by-57, dx, 15, &curBone->layer, 0, 0, 0, 0, "Armature layer that bone exists on");
- uiButSetFunc(but, armature_layer_cb, &curBone->layer, (void *)(1<<a));
+ uiButSetFunc(but, armature_layer_cb, &curBone->layer, SET_INT_IN_POINTER(1<<a));
}
uiBlockEndAlign(block);
@@ -4465,13 +4470,13 @@ static void editing_panel_pose_bones(Object *ob, bArmature *arm)
for(a=0; a<8; a++) {
short dx= 21;
but= uiDefButBitS(block, TOG, 1<<a, REDRAWVIEW3D, "", -10+a*dx, by-57, dx, 15, &curBone->layer, 0, 0, 0, 0, "Armature layer that bone exists on");
- uiButSetFunc(but, armature_layer_cb, &curBone->layer, (void *)(1<<a));
+ uiButSetFunc(but, armature_layer_cb, &curBone->layer, SET_INT_IN_POINTER(1<<a));
}
uiBlockBeginAlign(block);
for(a=8; a<16; a++) {
short dx= 21;
but= uiDefButBitS(block, TOG, 1<<a, REDRAWVIEW3D, "", -6+a*dx, by-57, dx, 15, &curBone->layer, 0, 0, 0, 0, "Armature layer that bone exists on");
- uiButSetFunc(but, armature_layer_cb, &curBone->layer, (void *)(1<<a));
+ uiButSetFunc(but, armature_layer_cb, &curBone->layer, SET_INT_IN_POINTER(1<<a));
}
uiBlockEndAlign(block);
@@ -4945,7 +4950,7 @@ static void verify_vertexgroup_name_func(void *datav, void *data2_unused)
static void skgen_reorder(void *option, void *arg2)
{
char tmp;
- switch ((int)option)
+ switch (GET_INT_FROM_POINTER(option))
{
case 0:
tmp = G.scene->toolsettings->skgen_subdivisions[0];
@@ -4989,7 +4994,7 @@ static void editing_panel_mesh_skgen(Object *ob, Mesh *me)
int y = 90 - 20 * i;
but = uiDefIconBut(block, BUT, B_MODIFIER_RECALC, VICON_MOVE_DOWN, 1025, y, 16, 19, NULL, 0.0, 0.0, 0.0, 0.0, "Change the order the subdivisions algorithm are applied");
- uiButSetFunc(but, skgen_reorder, (void *)i, NULL);
+ uiButSetFunc(but, skgen_reorder, SET_INT_IN_POINTER(i), NULL);
switch(G.scene->toolsettings->skgen_subdivisions[i])
{
@@ -5024,7 +5029,7 @@ static void editing_panel_mesh_tools1(Object *ob, Mesh *me)
block= uiNewBlock(&curarea->uiblocks, "editing_panel_mesh_tools1", UI_EMBOSS, UI_HELV, curarea->win);
- if(uiNewPanel(curarea, block, "Mesh Tools 1", "Editing", 960, 0, 318, 204)==0) return;
+ if(uiNewPanel(curarea, block, "Mesh Tools More", "Editing", 960, 0, 318, 204)==0) return;
uiBlockBeginAlign(block);
uiDefBut(block, BUT,B_SELSWAP, "Select Swap", 955, 200, 106, 19, 0, 0, 0, 0, 0, "Selects unselected faces, and deselects selected faces (Ctrl+I)");
@@ -5040,7 +5045,7 @@ static void editing_panel_mesh_tools1(Object *ob, Mesh *me)
uiBlockBeginAlign(block);
uiDefButBitI(block, TOG, G_DRAWFACES, REDRAWVIEW3D_IMAGE, "Draw Faces", 955,88,150,19, &G.f, 0, 0, 0, 0, "Displays all faces as shades in the 3d view and UV editor");
- uiDefButBitI(block, TOG, G_DRAWEDGES, REDRAWVIEW3D, "Draw Edges", 955, 66,150,19, &G.f, 0, 0, 0, 0, "Displays selected edges using hilights");
+ uiDefButBitI(block, TOG, G_DRAWEDGES, REDRAWVIEW3D_IMAGE, "Draw Edges", 955, 66,150,19, &G.f, 0, 0, 0, 0, "Displays selected edges using hilights in the 3d view and UV editor");
uiDefButBitI(block, TOG, G_DRAWCREASES, REDRAWVIEW3D, "Draw Creases", 955, 42,150,19, &G.f, 0, 0, 0, 0, "Displays creases created for subsurf weighting");
uiDefButBitI(block, TOG, G_DRAWBWEIGHTS, REDRAWVIEW3D, "Draw Bevel Weights", 955, 20,150,19, &G.f, 0, 0, 0, 0, "Displays weights created for the Bevel modifier");
uiDefButBitI(block, TOG, G_DRAWSEAMS, REDRAWVIEW3D, "Draw Seams", 955, -2,150,19, &G.f, 0, 0, 0, 0, "Displays UV unwrapping seams");
@@ -5409,15 +5414,10 @@ static void editing_panel_links(Object *ob)
}
/* now only objects that can be visible rendered */
- if ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL);
- else return;
+ if (!OB_SUPPORT_MATERIAL(ob)) return;
- id= ob->data;
uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
-
- if(ob->type==OB_MESH) poin= &( ((Mesh *)ob->data)->texflag );
- else if(ob->type==OB_MBALL) poin= &( ((MetaBall *)ob->data)->texflag );
- else poin= &( ((Curve *)ob->data)->texflag );
+ give_obdata_texspace(ob, &poin, NULL, NULL, NULL);
uiDefButBitI(block, TOG, AUTOSPACE, B_AUTOTEX, "AutoTexSpace", 143,15,140,19, poin, 0, 0, 0, 0, "Adjusts active object's texture space automatically when transforming object");
sprintf(str,"%d Mat ", ob->totcol);
@@ -5524,11 +5524,24 @@ void sculptmode_draw_interface_tools(uiBlock *block, unsigned short cx, unsigned
uiDefBut( block,LABEL,B_NOP,"Symmetry",cx,cy,90,19,NULL,0,0,0,0,"");
cy-= 20;
uiBlockBeginAlign(block);
- uiDefButBitC(block, TOG, SYMM_X, 0, "X", cx,cy,89,19, &sd->symm, 0,0,0,0, "Mirror brush across X axis");
- uiDefButBitC(block, TOG, SYMM_Y, 0, "Y", cx+89,cy,89,19, &sd->symm, 0,0,0,0, "Mirror brush across Y axis");
- uiDefButBitC(block, TOG, SYMM_Z, 0, "Z", cx+178,cy,90,19, &sd->symm, 0,0,0,0, "Mirror brush across Z axis");
+ uiDefButBitC(block, TOG, SYMM_X, 0, "X", cx,cy,40,19, &sd->symm, 0,0,0,0, "Mirror brush across X axis");
+ uiDefButBitC(block, TOG, SYMM_Y, 0, "Y", cx+40,cy,40,19, &sd->symm, 0,0,0,0, "Mirror brush across Y axis");
+ uiDefButBitC(block, TOG, SYMM_Z, 0, "Z", cx+80,cy,40,19, &sd->symm, 0,0,0,0, "Mirror brush across Z axis");
uiBlockEndAlign(block);
+
+ cy+= 20;
+ uiBlockBeginAlign(block);
+ uiDefBut( block,LABEL,B_NOP,"LockAxis",cx+140,cy,90,19,NULL,0,0,0,0,"");
+ cy-= 20;
+ uiBlockBeginAlign(block);
+ uiDefButBitC(block, TOG, AXISLOCK_X, 0, "X", cx+140,cy,40,19, &sd->axislock, 0,0,0,0, "Constrain X axis");
+ uiDefButBitC(block, TOG, AXISLOCK_Y, 0, "Y", cx+180,cy,40,19, &sd->axislock, 0,0,0,0, "Constrain Y axis");
+ uiDefButBitC(block, TOG, AXISLOCK_Z, 0, "Z", cx+220,cy,40,19, &sd->axislock, 0,0,0,0, "Constrain Z axis");
+ uiBlockEndAlign(block);
+
+
+
cx+= 210;
}
@@ -5915,7 +5928,7 @@ void do_fpaintbuts(unsigned short event)
}
break;
case B_BRUSHKEEPDATA:
- brush_toggle_fake_user(settings->imapaint.brush);
+ brush_toggled_fake_user(settings->imapaint.brush);
allqueue(REDRAWBUTSEDIT, 0);
allqueue(REDRAWIMAGE, 0);
break;
@@ -6232,12 +6245,14 @@ static void editing_panel_mesh_uvautocalculation(void)
uiBlockBeginAlign(block);
uiDefButS(block, MENU, REDRAWBUTSEDIT, "Unwrapper%t|Conformal%x0|Angle Based%x1",100,row,200,butH, &G.scene->toolsettings->unwrapper, 0, 0, 0, 0, "Unwrap method");
- uiDefButBitS(block, TOG, 1, B_NOP, "Fill Holes",100,row-butHB,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0, "Fill holes to prevent internal overlaps");
+ uiDefButBitS(block, TOG, UVCALC_FILLHOLES, B_NOP, "Fill Holes",100,row-butHB,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0, "Fill holes to prevent internal overlaps");
uiBlockEndAlign(block);
row-= 2*butHB+butS;
row= 180;
+ uiDefButBitS(block, TOGN, UVCALC_NO_ASPECT_CORRECT, B_NOP, "Image Aspect",100,row,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0, "Scale the UV Unwrapping to correct for the current images aspect ratio");
+
uiBlockBeginAlign(block);
uiDefButF(block, NUM,B_UVAUTO_CUBESIZE ,"Cube Size:",315,row,200,butH, &G.scene->toolsettings->uvcalc_cubesize, 0.0001, 100.0, 10, 3, "Defines the cubemap size for cube mapping");
uiBlockEndAlign(block);
diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c
index 6b69a4a8da7..27caedf0cdd 100644
--- a/source/blender/src/buttons_logic.c
+++ b/source/blender/src/buttons_logic.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -67,6 +64,8 @@
#include "BKE_main.h"
#include "BKE_sca.h"
#include "BKE_property.h"
+#include "BKE_property.h"
+#include "BKE_utildefines.h"
#include "BIF_gl.h"
#include "BIF_resources.h"
@@ -218,7 +217,7 @@ void make_unique_prop_names(char *str)
static void make_unique_prop_names_cb(void *strv, void *redraw_view3d_flagv)
{
char *str= strv;
- int redraw_view3d_flag= (int) redraw_view3d_flagv;
+ int redraw_view3d_flag= GET_INT_FROM_POINTER(redraw_view3d_flagv);
make_unique_prop_names(str);
if (redraw_view3d_flag) allqueue(REDRAWVIEW3D, 0);
@@ -714,6 +713,8 @@ static char *actuator_name(int type)
return "Visibility";
case ACT_2DFILTER:
return "2D Filter";
+ case ACT_PARENT:
+ return "Parent";
}
return "unknown";
}
@@ -729,13 +730,13 @@ static char *actuator_pup(Object *owner)
return "Actuators %t|Action %x15|Motion %x0|Constraint %x9|Ipo %x1"
"|Camera %x3|Sound %x5|Property %x6|Edit Object %x10"
"|Scene %x11|Random %x13|Message %x14|CD %x16|Game %x17"
- "|Visibility %x18|2D Filter %x19";
+ "|Visibility %x18|2D Filter %x19|Parent %x20";
break;
default:
return "Actuators %t|Motion %x0|Constraint %x9|Ipo %x1"
"|Camera %x3|Sound %x5|Property %x6|Edit Object %x10"
"|Scene %x11|Random %x13|Message %x14|CD %x16|Game %x17"
- "|Visibility %x18|2D Filter %x19";
+ "|Visibility %x18|2D Filter %x19|Parent %x20";
}
}
@@ -1096,18 +1097,13 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short
(short)(10+xco),(short)(yco-44), (short)(0.7 * (width-20)), 19,
&rs->name, 0, 31, 0, 0,
"Only look for Objects with this property");
- uiDefButS(block, ROW, 1, "X",
- (short)(10+xco+0.7 * (width-20)),(short)(yco-44), (short)(0.1 * (width-22)),19,
- &rs->axis, 2.0, 0, 0, 0,
- "Cast the cone along the object's positive x-axis");
- uiDefButS(block, ROW, 1, "Y",
- (short)(10+xco+0.8 * (width-20)),(short)(yco-44),(short)(0.1 * (width-22)), 19,
- &rs->axis, 2.0, 1, 0, 0,
- "Cast the cone along the object's positive y-axis");
- uiDefButS(block, ROW, 1, "Z",
- (short)(10+xco+0.9 * (width-20)), (short)(yco-44), (short)(0.1 * (width-22)), 19,
- &rs->axis, 2.0, 2, 0, 0,
- "Cast the cone along the object's positive z-axis");
+
+ str = "Type %t|+X axis %x0|+Y axis %x1|+Z axis %x2|-X axis %x3|-Y axis %x4|-Z axis %x5";
+ uiDefButS(block, MENU, B_REDR, str,
+ (short)(10+xco+0.7 * (width-20)), (short)(yco-44), (short)(0.3 * (width-22)), 19,
+ &rs->axis, 2.0, 31, 0, 0,
+ "Specify along which axis the radar cone is cast.");
+
uiDefButF(block, NUM, 1, "Ang:",
(short)(10+xco), (short)(yco-68), (short)((width-20)/2), 19,
&rs->angle, 0.0, 179.9, 10, 0,
@@ -1479,6 +1475,7 @@ static short draw_actuatorbuttons(bActuator *act, uiBlock *block, short xco, sho
bGameActuator *gma = NULL;
bVisibilityActuator *visAct = NULL;
bTwoDFilterActuator *tdfa = NULL;
+ bParentActuator *parAct = NULL;
float *fp;
short ysize = 0, wval;
@@ -1865,7 +1862,7 @@ static short draw_actuatorbuttons(bActuator *act, uiBlock *block, short xco, sho
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+40, yco-44, (width-80), 19, &(sca->camera), "Set this Camera");
+ uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+40, yco-44, (width-80), 19, &(sca->camera), "Set this Camera. Leave empty to refer to self object");
}
else if(sca->type==ACT_SCENE_SET) {
@@ -2227,6 +2224,29 @@ static short draw_actuatorbuttons(bActuator *act, uiBlock *block, short xco, sho
yco -= ysize;
break;
+ case ACT_PARENT:
+ parAct = act->data;
+
+ if(parAct->type==ACT_PARENT_SET) {
+
+ ysize= 48;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+
+ uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+40, yco-44, (width-80), 19, &(parAct->ob), "Set this object as parent");
+ }
+ else if(parAct->type==ACT_PARENT_REMOVE) {
+
+ ysize= 28;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ }
+
+ str= "Parent %t|Set Parent %x0|Remove Parent %x1";
+ uiDefButI(block, MENU, B_REDR, str, xco+40, yco-24, (width-80), 19, &parAct->type, 0.0, 0.0, 0, 0, "");
+
+ yco-= ysize;
+ break;
default:
ysize= 4;
diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c
index 7a0d00c0593..2489b5a1d16 100644
--- a/source/blender/src/buttons_object.c
+++ b/source/blender/src/buttons_object.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <time.h>
@@ -54,6 +51,7 @@
#include "BKE_softbody.h"
#include "BKE_utildefines.h"
#include "BKE_particle.h"
+#include "BKE_pointcache.h"
#include "BLI_blenlib.h"
#include "BLI_arithb.h"
@@ -1002,7 +1000,7 @@ static void draw_constraint (uiBlock *block, ListBase *list, bConstraint *con, s
/* Settings */
uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, CONSTRAINT_IK_TIP, B_CONSTRAINT_TEST, "Use Tail", *xco, *yco-92, 137, 19, &data->flag, 0, 0, 0, 0, "Include Bone's tail als last element in Chain");
+ uiDefButBitS(block, TOG, CONSTRAINT_IK_TIP, B_CONSTRAINT_TEST, "Use Tail", *xco, *yco-92, 137, 19, &data->flag, 0, 0, 0, 0, "Include Bone's tail also last element in Chain");
uiDefButS(block, NUM, B_CONSTRAINT_TEST, "ChainLen:", *xco, *yco-112,137,19, &data->rootbone, 0, 255, 0, 0, "If not zero, the amount of bones in this chain");
uiBlockBeginAlign(block);
@@ -1031,16 +1029,16 @@ static void draw_constraint (uiBlock *block, ListBase *list, bConstraint *con, s
uiButSetCompleteFunc(but, autocomplete_vgroup, (void *)data->poletar);
}
else {
- strcpy (data->polesubtarget, "");
+ strcpy(data->polesubtarget, "");
}
-
- if(data->poletar) {
+
+ if (data->poletar) {
uiBlockBeginAlign(block);
#if 0
but = uiDefBut(block, BUT, B_CONSTRAINT_TEST, (data->flag & CONSTRAINT_IK_SETANGLE)? "Set Pole Offset": "Clear Pole Offset", *xco, *yco-167, 137, 19, 0, 0.0, 1.0, 0.0, 0.0, "Set the pole rotation offset from the current pose");
uiButSetFunc(but, con_kinematic_set_pole_angle, ob, con);
- if(!(data->flag & CONSTRAINT_IK_SETANGLE))
-#endif
+ if (!(data->flag & CONSTRAINT_IK_SETANGLE))
+#endif
uiDefButF(block, NUM, B_CONSTRAINT_TEST, "Pole Offset ", *xco, *yco-167, 137, 19, &data->poleangle, -180.0, 180.0, 0, 0, "Pole rotation offset");
}
}
@@ -1481,7 +1479,8 @@ static void draw_constraint (uiBlock *block, ListBase *list, bConstraint *con, s
#endif
uiBlockEndAlign(block);
- uiDefButS(block, MENU, B_CONSTRAINT_TEST, "Limit Mode%t|Inside %x0|Outside %x1|Surface %x2", *xco+((width/2)-50), *yco-104, 100, 18, &data->mode, 0, 24, 0, 0, "Distances in relation to sphere of influence to allow");
+ uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Clamp Region:",*xco+((width/2)-110), *yco-104,100,18, NULL, 0.0, 0.0, 0.0, 0.0, "");
+ uiDefButS(block, MENU, B_CONSTRAINT_TEST, "Limit Mode%t|Inside %x0|Outside %x1|Surface %x2", *xco+(width/2), *yco-104, 100, 18, &data->mode, 0, 24, 0, 0, "Distances in relation to sphere of influence to allow");
}
break;
case CONSTRAINT_TYPE_RIGIDBODYJOINT:
@@ -1643,7 +1642,7 @@ static void draw_constraint (uiBlock *block, ListBase *list, bConstraint *con, s
uiBlockEndAlign(block);
/* Extrapolate Ranges? */
- uiDefButBitC(block, TOG, 1, B_CONSTRAINT_TEST, "Extrapolate", *xco, *yco-42,80,19, &data->expo, 0, 0, 0, 0, "Extrapolate ranges");
+ uiDefButBitC(block, TOG, 1, B_CONSTRAINT_TEST, "Extrapolate", *xco-10, *yco-42,80,19, &data->expo, 0, 0, 0, 0, "Extrapolate ranges");
/* Draw options for source motion */
uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Source:", *xco-10, *yco-62, 50, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
@@ -2052,72 +2051,133 @@ void do_constraintbuts(unsigned short event)
allqueue (REDRAWBUTSOBJECT, 0);
}
-void softbody_bake(Object *ob)
+void pointcache_bake(PTCacheID *pid, int startframe)
{
Base *base;
- SoftBody *sb;
ScrArea *sa;
+ PointCache *cache;
+ ListBase pidlist;
float frameleno= G.scene->r.framelen;
- int cfrao= CFRA, sfra=100000, efra=0, didbreak =0;
-
+ int cfrao= CFRA, didbreak =0, endframe, cstart, cend;
G.scene->r.framelen= 1.0; // baking has to be in uncorrected time
sbSetInterruptCallBack(blender_test_break); // make softbody module ESC aware
G.afbreek=0; // init global break system
- if(ob) {
- sb= ob->soft;
- sfra= MIN2(sfra, sb->sfra);
- efra= MAX2(efra, sb->efra);
- sbObjectToSoftbody(ob); // put softbody in restposition, free bake
- ob->softflag |= OB_SB_BAKEDO;
+ if(pid) {
+ cache= pid->cache;
+
+ BKE_ptcache_id_time(pid, 0.0f, &cstart, &cend, NULL);
+
+ startframe= startframe;
+ endframe= cend;
+
+ cache->flag |= PTCACHE_BAKING;
+ cache->flag &= ~PTCACHE_BAKED;
}
else {
+ startframe= MAXFRAME;
+ endframe= 0;
+
for(base=G.scene->base.first; base; base= base->next) {
if(TESTBASELIB(base)) {
- if(base->object->soft) {
- sb= base->object->soft;
- sfra= MIN2(sfra, sb->sfra);
- efra= MAX2(efra, sb->efra);
- sbObjectToSoftbody(base->object); // put softbody in restposition, free bake
- base->object->softflag |= OB_SB_BAKEDO;
+ BKE_ptcache_ids_from_object(&pidlist, base->object);
+
+ for(pid=pidlist.first; pid; pid=pid->next) {
+ cache= pid->cache;
+
+ BKE_ptcache_id_time(pid, 0.0f, &cstart, &cend, NULL);
+
+ startframe= MIN2(startframe, cstart);
+ endframe= MAX2(endframe, cend);
+
+ cache->flag |= PTCACHE_BAKING;
+ cache->flag &= ~PTCACHE_BAKED;
}
+
+ BLI_freelistN(&pidlist);
}
}
}
- CFRA= sfra;
+ CFRA= startframe;
update_for_newframe_muted(); // put everything on this frame
curarea->win_swap= 0; // clean swapbuffers
- for(; CFRA <= efra; CFRA++) {
+ for(; CFRA <= endframe; CFRA++) {
set_timecursor(CFRA);
update_for_newframe_muted();
- for(sa= G.curscreen->areabase.first; sa; sa= sa->next) {
- if(sa->spacetype == SPACE_VIEW3D) {
+ for(sa= G.curscreen->areabase.first; sa; sa= sa->next)
+ if(sa->spacetype == SPACE_VIEW3D)
scrarea_do_windraw(sa);
- }
- }
screen_swapbuffers();
+
//blender_test_break() has a granularity of 10 ms, who cares .. baking the unit cube is kinda boring
- if (blender_test_break()){
+ if(blender_test_break()) {
didbreak = 1;
break;
}
+ }
+
+ if(didbreak && G.qual!=LR_SHIFTKEY) {
+ /* failed to bake, free the frames we baked */
+ if(pid) {
+ cache= pid->cache;
+
+ BKE_ptcache_id_time(pid, 0.0f, &cstart, &cend, NULL);
+
+ cache->flag &= ~PTCACHE_BAKING;
+ if(startframe == cstart)
+ cache->flag &= ~PTCACHE_BAKED;
+
+ BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_AFTER, startframe-1);
+ }
+ else {
+ for(base=G.scene->base.first; base; base= base->next) {
+ if(TESTBASELIB(base)) {
+ BKE_ptcache_ids_from_object(&pidlist, base->object);
+ for(pid=pidlist.first; pid; pid=pid->next) {
+ cache= pid->cache;
+
+ BKE_ptcache_id_time(pid, 0.0f, &cstart, &cend, NULL);
+
+ cache->flag &= ~PTCACHE_BAKING;
+ if(startframe == cstart)
+ cache->flag &= ~PTCACHE_BAKED;
+
+ BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_AFTER, startframe-1);
+ }
+
+ BLI_freelistN(&pidlist);
+ }
+ }
+ }
}
- if((didbreak)&&(G.qual!=LR_SHIFTKEY)) {
- if(ob)
- sbObjectToSoftbody(ob); // free bake
+ else {
+ /* succesfully finished baking */
+ if(pid) {
+ cache= pid->cache;
+
+ cache->flag &= ~PTCACHE_BAKING;
+ cache->flag |= PTCACHE_BAKED;
+ }
else {
for(base=G.scene->base.first; base; base= base->next) {
if(TESTBASELIB(base)) {
- if(base->object->soft) {
- sbObjectToSoftbody(base->object); // free bake
+ BKE_ptcache_ids_from_object(&pidlist, base->object);
+
+ for(pid=pidlist.first; pid; pid=pid->next) {
+ cache= pid->cache;
+
+ cache->flag &= ~PTCACHE_BAKING;
+ cache->flag |= PTCACHE_BAKED;
}
+
+ BLI_freelistN(&pidlist);
}
}
}
@@ -2127,16 +2187,7 @@ void softbody_bake(Object *ob)
waitcursor(0);
sbSetInterruptCallBack(NULL); // softbody module won't ESC
G.afbreek=0; // reset global break system
-
- if(ob)
- ob->softflag &= ~OB_SB_BAKEDO;
- else {
- for(base=G.scene->base.first; base; base= base->next)
- if(TESTBASELIB(base))
- if(base->object->soft)
- base->object->softflag &= ~OB_SB_BAKEDO;
- }
-
+
CFRA= cfrao;
G.scene->r.framelen= frameleno;
update_for_newframe_muted();
@@ -2144,6 +2195,48 @@ void softbody_bake(Object *ob)
allqueue(REDRAWBUTSOBJECT, 0);
}
+void pointcache_free(PTCacheID *pid, int cacheonly)
+{
+ Base *base;
+ ListBase pidlist;
+
+ if(pid) {
+ if(cacheonly) {
+ BKE_ptcache_id_reset(pid, PTCACHE_RESET_DEPSGRAPH);
+ }
+ else {
+ BKE_ptcache_id_reset(pid, PTCACHE_RESET_BAKED);
+ pid->cache->flag &= ~PTCACHE_BAKED;
+ }
+
+ DAG_object_flush_update(G.scene, pid->ob, OB_RECALC_DATA);
+ }
+ else {
+ for(base=G.scene->base.first; base; base= base->next) {
+ if(TESTBASELIB(base)) {
+ BKE_ptcache_ids_from_object(&pidlist, base->object);
+
+ for(pid=pidlist.first; pid; pid=pid->next) {
+ if(cacheonly) {
+ BKE_ptcache_id_reset(pid, PTCACHE_RESET_DEPSGRAPH);
+ }
+ else {
+ BKE_ptcache_id_reset(pid, PTCACHE_RESET_BAKED);
+ pid->cache->flag &= ~PTCACHE_BAKED;
+ }
+
+ DAG_object_flush_update(G.scene, pid->ob, OB_RECALC_DATA);
+ }
+
+ BLI_freelistN(&pidlist);
+ }
+ }
+ }
+
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWBUTSOBJECT, 0);
+}
+
// store processed path & file prefix for fluidsim bake directory
void fluidsimFilesel(char *selection)
{
@@ -2274,61 +2367,71 @@ void do_object_panels(unsigned short event)
allqueue(REDRAWVIEW3D, 0);
break;
- case B_SOFTBODY_CHANGE:
- ob= OBACT;
- if(ob) {
- ParticleSystem *psys = PE_get_current(ob);
- if(psys)
- psys->softflag |= OB_SB_REDO;
- else
- ob->softflag |= OB_SB_REDO;
- allqueue(REDRAWBUTSOBJECT, 0);
- allqueue(REDRAWVIEW3D, 0);
- }
- break;
case B_SOFTBODY_DEL_VG:
if(ob->soft) {
ob->soft->vertgroup= 0;
- ob->softflag |= OB_SB_REDO;
+ //ob->softflag |= OB_SB_REDO;
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
allqueue(REDRAWBUTSOBJECT, 0);
allqueue(REDRAWVIEW3D, 0);
}
break;
- case B_SOFTBODY_BAKE:
- if(ob->soft) softbody_bake(ob);
- break;
- case B_SOFTBODY_BAKE_FREE:
- if(ob->soft) sbObjectToSoftbody(ob);
- allqueue(REDRAWBUTSOBJECT, 0);
- allqueue(REDRAWVIEW3D, 0);
- break;
case B_FLUIDSIM_BAKE:
/* write config files (currently no simulation) */
fluidsimBake(ob);
break;
case B_FLUIDSIM_MAKEPART:
- {
- PartEff *paf= NULL;
- /* prepare fluidsim particle display */
- // simplified delete effect, create new - recalc some particles...
- if(ob==NULL || ob->type!=OB_MESH) break;
- ob->fluidsimSettings->type = 0;
- // reset type, and init particle system once normally
- paf= give_parteff(ob);
- if( (BLI_countlist(&ob->effect)<MAX_EFFECT) &&
- (!paf)) {
- // create new entry
- copy_act_effect(ob); DAG_scene_sort(G.scene); }
- paf = give_parteff(ob);
- if(paf) {
- paf->totpart = 1000; paf->sta = paf->end = 1.0; // generate some particles...
- build_particle_system(ob);
- ob->fluidsimSettings->type = OB_FLUIDSIM_PARTICLE;
- }
+ if(ob==NULL || ob->type!=OB_MESH) break;
+ else {
+ ParticleSettings *part = psys_new_settings("PSys", G.main);
+ ParticleSystem *psys = MEM_callocN(sizeof(ParticleSystem), "particle_system");
+ ModifierData *md;
+ ParticleSystemModifierData *psmd;
+
+ part->type = PART_FLUID;
+ psys->part = part;
+ psys->pointcache = BKE_ptcache_add();
+ psys->flag |= PSYS_ENABLED;
+
+ ob->fluidsimSettings->type = OB_FLUIDSIM_PARTICLE;
+
+ BLI_addtail(&ob->particlesystem,psys);
+
+ md= modifier_new(eModifierType_ParticleSystem);
+ sprintf(md->name, "FluidParticleSystem" );
+ psmd= (ParticleSystemModifierData*) md;
+ psmd->psys=psys;
+ BLI_addtail(&ob->modifiers, md);
}
allqueue(REDRAWVIEW3D, 0);
allqueue(REDRAWBUTSOBJECT, 0);
break;
+ case B_FLUIDSIM_CHANGETYPE:
+ if(ob && ob->particlesystem.first && ob->fluidsimSettings->type!=OB_FLUIDSIM_PARTICLE){
+ ParticleSystem *psys;
+ for(psys=ob->particlesystem.first; psys; psys=psys->next) {
+ if(psys->part->type==PART_FLUID) {
+ /* clear modifier */
+ ParticleSystemModifierData *psmd= psys_get_modifier(ob,psys);
+ BLI_remlink(&ob->modifiers, psmd);
+ modifier_free((ModifierData *)psmd);
+
+ /* clear particle system */
+ BLI_remlink(&ob->particlesystem,psys);
+ psys_free(ob,psys);
+
+ BIF_undo_push("Delete particle system");
+
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
+
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWOOPS, 0);
+ break;
+ }
+ }
+ }
+ allqueue(REDRAWBUTSOBJECT, 0);
+ break;
case B_FLUIDSIM_SELDIR:
{
ScrArea *sa = closest_bigger_area();
@@ -2347,63 +2450,21 @@ void do_object_panels(unsigned short event)
group_relink_nla_objects(ob);
allqueue(REDRAWVIEW3D, 0);
break;
- case B_BAKEABLE_CHANGE:
- allqueue(REDRAWBUTSOBJECT, 0);
- allqueue(REDRAWVIEW3D, 0);
- break;
case B_OBJECT_IPOFLAG:
if(ob->ipo) ob->ipo->showkey= (ob->ipoflag & OB_DRAWKEY)?1:0;
allqueue(REDRAWVIEW3D, 0);
break;
- case B_CLOTH_CLEARCACHEALL:
- {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
- if(clmd)
- {
- // do nothing in editmode
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_EDITMODE)
- break;
-
- /* force freeing because user wants */
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE;
-
- /*user wants to free all, so free whole cloth, this helps to start sim at later frame */
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
-
- CFRA= 1;
- update_for_newframe_muted();
- DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
- cloth_clear_cache(ob, clmd, 0);
- allqueue(REDRAWBUTSOBJECT, 0);
- allqueue(REDRAWVIEW3D, 0);
- }
- }
- break;
- case B_CLOTH_CLEARCACHEFRAME:
- {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
- if(clmd)
- {
- // do nothing in editmode
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_EDITMODE)
- break;
-
- /* force freeing because user wants */
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE;
-
- cloth_clear_cache(ob, clmd, MAX2(0.0,G.scene->r.cfra));
- // MAX2(1.0,G.scene->r.cfra + 1.0)
- allqueue(REDRAWBUTSOBJECT, 0);
- }
- }
- break;
case B_CLOTH_CHANGEPREROLL:
{
ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
if(clmd)
{
+ PTCacheID pid;
+
+ BKE_ptcache_id_from_cloth(&pid, ob, clmd);
+
// do nothing in editmode
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_EDITMODE)
+ if(pid.cache->flag & PTCACHE_BAKE_EDIT_ACTIVE)
break;
CFRA= 1;
@@ -2414,17 +2475,11 @@ void do_object_panels(unsigned short event)
}
}
break;
- case B_CLOTH_RENEW:
+ case B_BAKE_CACHE_CHANGE:
{
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
-
- if(clmd)
- {
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
- allqueue(REDRAWBUTSOBJECT, 0);
- allqueue(REDRAWVIEW3D, 0);
- }
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
+ allqueue(REDRAWBUTSOBJECT, 0);
+ allqueue(REDRAWVIEW3D, 0);
}
break;
@@ -2688,7 +2743,7 @@ static void object_panel_draw(Object *ob)
uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
/* LAYERS */
- xco= 120;
+ xco= 80;
dx= 35;
dy= 30;
@@ -2709,6 +2764,9 @@ static void object_panel_draw(Object *ob)
uiBlockEndAlign(block);
+ /* Object Color */
+ uiDefButF(block, COL, REDRAWVIEW3D, "", 270, 165,30, 30, ob->col, 0, 0, 0, 0, "Object color, used when faces have the ObCol mode enabled");
+
uiDefBut(block, LABEL, 0, "Drawtype", 10,120,100,20, NULL, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
@@ -2802,6 +2860,7 @@ void do_effects_panels(unsigned short event)
ParticleSystemModifierData *psmd;
ParticleSystem *psys;
ParticleSettings *part;
+ LinkNode *node, *firstnode;
ID *id,*idtest;
int nr;
@@ -2963,6 +3022,7 @@ void do_effects_panels(unsigned short event)
nr++;
idtest= idtest->next;
}
+
if(idtest==0) { /* new particle system */
if(id){
idtest= (ID *)psys_copy_settings((ParticleSettings *)id);
@@ -2972,10 +3032,17 @@ void do_effects_panels(unsigned short event)
}
idtest->us--;
}
+ else if(((ParticleSettings*)idtest)->type==PART_FLUID) {
+ error("Can't select fluid particles");
+ break;
+ }
+
if(idtest!=id) {
short nr=0;
if(id==0){ /* no psys previously -> no modifier -> need to create that also */
psys = MEM_callocN(sizeof(ParticleSystem), "particle_system");
+ psys->pointcache = BKE_ptcache_add();
+ psys->flag |= PSYS_ENABLED;
BLI_addtail(&ob->particlesystem,psys);
md= modifier_new(eModifierType_ParticleSystem);
@@ -2988,7 +3055,7 @@ void do_effects_panels(unsigned short event)
idtest->us++;
psys->part=(ParticleSettings*)idtest;
psys->totpart=0;
- psys->flag=PSYS_ENABLED|PSYS_CURRENT;
+ psys->flag= PSYS_ENABLED|PSYS_CURRENT;
psys->cfra=bsystem_time(ob,G.scene->r.cfra+1,0.0);
/* check need for dupliobjects */
@@ -3057,6 +3124,27 @@ void do_effects_panels(unsigned short event)
}
}
break;
+
+ case B_PART_ALLOC:
+ case B_PART_DISTR:
+ case B_PART_INIT:
+ case B_PART_RECALC:
+ case B_PART_ALLOC_CHILD:
+ case B_PART_DISTR_CHILD:
+ case B_PART_INIT_CHILD:
+ case B_PART_RECALC_CHILD:
+ if(psys) {
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWBUTSOBJECT, 0);
+ }
+ break;
+
+ /* there were separate update events before the pointcache refactor,
+ * now it only does a flush update which means it is recalculating
+ * more than strictly needed, but how to restore such partial updates
+ * i'm not sure - brecht. */
+#if 0
case B_PART_ALLOC:
case B_PART_ALLOC_CHILD:
if(psys){
@@ -3066,6 +3154,7 @@ void do_effects_panels(unsigned short event)
allqueue(REDRAWOOPS, 0);
}
break;
+
case B_PART_DISTR:
case B_PART_DISTR_CHILD:
if(psys){
@@ -3092,13 +3181,8 @@ void do_effects_panels(unsigned short event)
allqueue(REDRAWBUTSEDIT, 0);
}
break;
- case B_PART_RECALC:
- case B_PART_RECALC_CHILD:
- if(psys){
- psys_flush_settings(psys->part,0,event==B_PART_RECALC);
- allqueue(REDRAWOOPS, 0);
- }
/* no break! */
+#endif
case B_PART_REDRAW_DEPS:
if(event == B_PART_REDRAW_DEPS)
DAG_scene_sort(G.scene);
@@ -3118,13 +3202,17 @@ void do_effects_panels(unsigned short event)
allqueue(REDRAWBUTSOBJECT, 0);
break;
case B_PARTTYPE:
- if((psys=psys_get_current(ob))){
- DAG_scene_sort(G.scene);
+ if(psys) {
+ /* 1 = do DAG_object_flush_update */
+ firstnode= psys_using_settings(psys->part, 1);
- psys_flush_settings(psys->part,PSYS_TYPE,1);
+ for(node=firstnode; node; node=node->next)
+ psys_changed_type(node->link);
+
+ BLI_linklist_free(firstnode, NULL);
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWBUTSOBJECT, 0);
}
- allqueue(REDRAWVIEW3D, 0);
- allqueue(REDRAWBUTSOBJECT, 0);
break;
case B_PARTACT:
allqueue(REDRAWVIEW3D, 0);
@@ -3266,7 +3354,7 @@ static void object_collision__enabletoggle ( void *ob_v, void *arg2 )
if(pd && (pd->deflect))
{
md = modifier_new ( eModifierType_Collision );
- BLI_addhead ( &ob->modifiers, md );
+ BLI_addtail ( &ob->modifiers, md );
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
allqueue(REDRAWBUTSEDIT, 0);
allqueue(REDRAWVIEW3D, 0);
@@ -3281,15 +3369,16 @@ static void object_collision__enabletoggle ( void *ob_v, void *arg2 )
}
/* Panels for particle interaction settings */
-static void object_panel_deflection(Object *ob)
+static void object_panel_collision(Object *ob)
{
uiBlock *block;
uiBut *but;
block= uiNewBlock(&curarea->uiblocks, "object_panel_deflection", UI_EMBOSS, UI_HELV, curarea->win);
- if(uiNewPanel(curarea, block, "Deflection", "Physics", 0, 0, 318, 204)==0) return;
+ uiNewPanelTabbed("Fields", "Physics");
+ if(uiNewPanel(curarea, block, "Collision", "Physics", 0, 0, 318, 204)==0) return;
- uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+ uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
/* should become button, option? */
if(ob->pd==NULL) {
@@ -3304,27 +3393,33 @@ static void object_panel_deflection(Object *ob)
if(ob->pd && ob->type==OB_MESH) {
PartDeflect *pd= ob->pd;
- but = uiDefButBitS(block, TOG, 1, B_REDR, "Deflection",160,160,150,20, &pd->deflect, 0, 0, 0, 0, "Deflects particles based on collision");
+ but = uiDefButBitS(block, TOG, 1, B_REDR, "Collision",10,160,150,20, &pd->deflect, 0, 0, 0, 0, "Enable this objects as a collider for physics systems");
uiButSetFunc(but, object_collision__enabletoggle, ob, NULL);
+
+ uiDefBut(block, LABEL, 0, "",160,160,150,2, NULL, 0.0, 0, 0, 0, "");
if(pd->deflect) {
- uiDefBut(block, LABEL, 0, "Particles", 160,140,75,20, NULL, 0.0, 0, 0, 0, "");
- uiDefButBitS(block, TOG, PDEFLE_KILL_PART, B_DIFF, "Kill",235,140,75,20, &pd->flag, 0, 0, 0, 0, "Kill collided particles");
+ uiDefBut(block, LABEL, 0, "Particle Interaction", 10,135,310,20, NULL, 0.0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_DIFF, "Damping: ", 160,120,75,20, &pd->pdef_damp, 0.0, 1.0, 10, 0, "Amount of damping during particle collision");
- uiDefButF(block, NUM, B_DIFF, "Rnd Damping: ", 235,120,75,20, &pd->pdef_rdamp, 0.0, 1.0, 10, 0, "Random variation of damping");
- uiDefButF(block, NUM, B_DIFF, "Friction: ", 160,100,75,20, &pd->pdef_frict, 0.0, 1.0, 10, 0, "Amount of friction during particle collision");
- uiDefButF(block, NUM, B_DIFF, "Rnd Friction: ", 235,100,75,20, &pd->pdef_rfrict, 0.0, 1.0, 10, 0, "Random variation of friction");
- uiDefButF(block, NUM, B_DIFF, "Permeability: ", 160,80,150,20, &pd->pdef_perm, 0.0, 1.0, 10, 0, "Chance that the particle will pass through the mesh");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Damping: ", 10,115,105,20, &pd->pdef_damp, 0.0, 1.0, 10, 2, "Amount of damping during particle collision");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Rnd: ", 115,115,75,20, &pd->pdef_rdamp, 0.0, 1.0, 10, 2, "Random variation of damping");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Friction: ", 10,95,105,20, &pd->pdef_frict, 0.0, 1.0, 10, 2, "Amount of friction during particle collision");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Rnd: ", 115,95,75,20, &pd->pdef_rfrict, 0.0, 1.0, 10, 2, "Random variation of friction");
uiBlockEndAlign(block);
+
+ uiDefButBitS(block, TOG, PDEFLE_KILL_PART, B_FIELD_CHANGE, "Kill",200,115,120,20, &pd->flag, 0, 0, 0, 0, "Kill collided particles");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Permeability: ", 200,90,120,20, &pd->pdef_perm, 0.0, 1.0, 10, 2, "Chance that the particle will pass through the mesh");
- uiDefBut(block, LABEL, 0, "Soft Body / Cloth", 160,60,150,20, NULL, 0.0, 0, 0, 0, "");
+ uiDefBut(block, LABEL, 0, "Soft Body and Cloth Interaction", 10,65,310,20, NULL, 0.0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Damping:", 160,40,150,20, &pd->pdef_sbdamp, 0.0, 1.0, 10, 0, "Amount of damping during soft body collision");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Inner:", 160,20,150,20, &pd->pdef_sbift, 0.001, 1.0, 10, 0, "Inner face thickness");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Outer:", 160, 0,150,20, &pd->pdef_sboft, 0.001, 1.0, 10, 0, "Outer face thickness");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Damping:", 10,45,150,20, &pd->pdef_sbdamp, 0.0, 1.0, 10, 0, "Amount of damping during collision");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Inner:", 10,25,150,20, &pd->pdef_sbift, 0.001, 1.0, 10, 0, "Inner face thickness");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Outer:", 10, 5,150,20, &pd->pdef_sboft, 0.001, 1.0, 10, 0, "Outer face thickness");
+ uiBlockEndAlign(block);
+
+ uiDefButBitS(block, TOG, OB_SB_COLLFINAL, B_FIELD_CHANGE, "Ev.M.Stack", 170,45,150,20, &ob->softflag, 0, 0, 0, 0, "Pick collision object from modifier stack (softbody only)");
}
}
}
@@ -3336,10 +3431,9 @@ static void object_panel_fields(Object *ob)
static short actpsys=-1;
block= uiNewBlock(&curarea->uiblocks, "object_panel_fields", UI_EMBOSS, UI_HELV, curarea->win);
- uiNewPanelTabbed("Deflection", "Physics");
if(uiNewPanel(curarea, block, "Fields", "Physics", 0, 0, 318, 204)==0) return;
- uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+ uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
/* should become button, option? */
if(ob->pd==NULL) {
@@ -3354,6 +3448,8 @@ static void object_panel_fields(Object *ob)
PartDeflect *pd= ob->pd;
char *menustr= MEM_mallocN(256, "temp string");
char *tipstr="Choose field type";
+
+ uiBlockBeginAlign(block);
if(ob->particlesystem.first) {
ParticleSystem *psys;
@@ -3406,6 +3502,9 @@ static void object_panel_fields(Object *ob)
else
uiDefButS(block, MENU, B_FIELD_DEP, menustr, 10,180,140,20, &pd->forcefield, 0.0, 0.0, 0, 0, tipstr);
+ uiBlockEndAlign(block);
+ uiDefBut(block, LABEL, 0, "",160,180,150,2, NULL, 0.0, 0, 0, 0, "");
+
MEM_freeN(menustr);
if(pd->forcefield) {
@@ -3423,10 +3522,12 @@ static void object_panel_fields(Object *ob)
uiDefButF(block, NUM, B_FIELD_CHANGE, "Strength: ", 10,140,140,20, &pd->f_strength, -1000, 1000, 10, 3, "Strength of force field");
if(pd->forcefield == PFIELD_TEXTURE){
- uiDefIDPoinBut(block, field_testTexture, ID_TE, B_FIELD_CHANGE, "Texture: ", 10, 120, 140, 20, &pd->tex, "Texture to use as force");
- uiDefButBitS(block, TOG, PFIELD_TEX_OBJECT, B_FIELD_CHANGE, "Use Object Co", 10,100,140,20, &pd->flag, 0.0, 0, 0, 0, "Use object/global coordinates for texture");
- uiDefButBitS(block, TOG, PFIELD_TEX_ROOTCO, B_FIELD_CHANGE, "Root TexCo", 10,80,120,20, &pd->flag, 0.0, 0, 0, 0, "Texture coords from root particle locations");
- uiDefButBitS(block, TOG, PFIELD_TEX_2D, B_FIELD_CHANGE, "2D", 130,80,20,20, &pd->flag, 0.0, 0, 0, 0, "Apply force only in 2d");
+ uiDefIDPoinBut(block, field_testTexture, ID_TE, B_FIELD_CHANGE, "Texture: ", 10,120,140,20, &pd->tex, "Texture to use as force");
+ uiBlockEndAlign(block);
+ uiBlockBeginAlign(block);
+ uiDefButBitS(block, TOG, PFIELD_TEX_OBJECT, B_FIELD_CHANGE, "Use Object Co", 10,95,140,20, &pd->flag, 0.0, 0, 0, 0, "Use object/global coordinates for texture");
+ uiDefButBitS(block, TOG, PFIELD_TEX_ROOTCO, B_FIELD_CHANGE, "Root TexCo", 10,75,100,20, &pd->flag, 0.0, 0, 0, 0, "Texture coords from root particle locations");
+ uiDefButBitS(block, TOG, PFIELD_TEX_2D, B_FIELD_CHANGE, "2D", 120,75,30,20, &pd->flag, 0.0, 0, 0, 0, "Apply force only in 2d");
}
else if(pd->forcefield == PFIELD_HARMONIC)
uiDefButF(block, NUM, B_FIELD_CHANGE, "Damp: ", 10,120,140,20, &pd->f_damp, 0, 10, 10, 0, "Damping of the harmonic force");
@@ -3438,13 +3539,13 @@ static void object_panel_fields(Object *ob)
uiDefButBitS(block, TOG, PFIELD_GUIDE_PATH_ADD, B_FIELD_CHANGE, "Additive", 10,40,140,20, &pd->flag, 0.0, 0, 0, 0, "Based on distance/falloff it adds a portion of the entire path");
}
else if(pd->forcefield==PFIELD_TEXTURE){
- uiDefButS(block, MENU, B_FIELD_CHANGE, "Texture mode%t|RGB%x0|Gradient%x1|Curl%x2", 10,40,140,20, &pd->tex_mode, 0.0, 0.0, 0, 0, "How the texture effect is calculated (RGB & Curl need a RGB texture else Gradient will be used instead)");
+ uiDefButS(block, MENU, B_FIELD_CHANGE, "Texture mode%t|RGB%x0|Gradient%x1|Curl%x2", 10,50,140,20, &pd->tex_mode, 0.0, 0.0, 0, 0, "How the texture effect is calculated (RGB & Curl need a RGB texture else Gradient will be used instead)");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Nabla:", 10,20,140,20, &pd->tex_nabla, 0.0001f, 1.0, 1, 0, "Specify the dimension of the area for gradient and curl calculation");
+ uiDefButF(block, NUM, B_FIELD_CHANGE, "Nabla:", 10,30,140,20, &pd->tex_nabla, 0.0001f, 1.0, 1, 0, "Specify the dimension of the area for gradient and curl calculation");
}
else if(particles==0 && ELEM(pd->forcefield,PFIELD_VORTEX,PFIELD_WIND)==0){
//uiDefButF(block, NUM, B_FIELD_CHANGE, "Distance: ", 10,20,140,20, &pd->f_dist, 0, 1000.0, 10, 0, "Falloff power (real gravitational fallof = 2)");
- uiDefButBitS(block, TOG, PFIELD_PLANAR, B_FIELD_CHANGE, "Planar", 10,0,140,20, &pd->flag, 0.0, 0, 0, 0, "Create planar field");
+ uiDefButBitS(block, TOG, PFIELD_PLANAR, B_FIELD_CHANGE, "Planar", 10,15,140,20, &pd->flag, 0.0, 0, 0, 0, "Create planar field");
}
uiBlockEndAlign(block);
@@ -3505,30 +3606,159 @@ static void object_panel_fields(Object *ob)
}
}
+/* Generic physics baking buttons */
+
+static void object_physics__baketoggle(void *pid_v, void *unused_v)
+{
+ PTCacheID *pid = pid_v;
+ Object *ob = pid->ob;
+ PointCache *cache = pid->cache;
+ ClothModifierData *clmd;
+ int cageIndex, stack_index, startframe, endframe;
+
+ // automatically enable modifier in editmode when we have a protected cache
+ if(!(cache->flag & PTCACHE_BAKED)) {
+ BKE_ptcache_id_time(pid, 0.0f, &startframe, &endframe, NULL);
+ pointcache_bake(pid, startframe);
+
+ if(pid->type == PTCACHE_TYPE_CLOTH) {
+ clmd= (ClothModifierData*)pid->data;
+ cageIndex = modifiers_getCageIndex(ob, NULL );
+ stack_index = modifiers_indexInObject(ob, (ModifierData *)clmd);
+ if(stack_index >= cageIndex)
+ ((ModifierData *)clmd)->mode ^= eModifierMode_OnCage;
+ }
+ }
+ else {
+ if(cache->flag & PTCACHE_BAKE_EDIT_ACTIVE) {
+ notice("Can't free bake in editmode");
+ }
+ else {
+ if(pid->type == PTCACHE_TYPE_CLOTH) {
+ clmd= (ClothModifierData*)pid->data;
+ ((ModifierData *)clmd)->mode ^= eModifierMode_OnCage;
+ }
+
+ cache->flag &= ~PTCACHE_BAKED;
+ BKE_ptcache_id_reset(pid, PTCACHE_RESET_OUTDATED);
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
+ }
+ }
+}
+
+static void object_physics__rebake(void *pid_v, void *unused_v)
+{
+ PTCacheID *pid = pid_v;
+ int curframe = (int)G.scene->r.cfra;
+
+ BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_AFTER, curframe);
+ pointcache_bake(pid, curframe);
+}
+
+static void object_physics__clearcache(void *pid_v, void *unused_v)
+{
+ PTCacheID *pid = pid_v;
+ Object *ob = pid->ob;
+ PointCache *cache = pid->cache;
+
+ if(cache->flag & PTCACHE_BAKE_EDIT_ACTIVE)
+ return;
+
+ BKE_ptcache_id_reset(pid, PTCACHE_RESET_BAKED);
+ DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
+
+ allqueue(REDRAWBUTSOBJECT, 0);
+ allqueue(REDRAWVIEW3D, 0);
+}
+
+static void object_physics_bake_buttons(uiBlock *block, PTCacheID *pid, int y, int libdata)
+{
+ uiBut *but;
+ PointCache *cache;
+
+ cache= pid->cache;
+
+ if(!libdata && G.obedit)
+ uiSetButLock(1, "Can't change bake settings in editmode");
+
+ if(cache->flag & PTCACHE_BAKED)
+ but = uiDefBut(block, BUT, REDRAWBUTSOBJECT, "Free Bake", 10,y+25,85,20, NULL, 0.0, 0.0, 0, 0, "Free baked simulation");
+ else
+ but = uiDefBut(block, BUT, REDRAWBUTSOBJECT, "Bake", 10,y+25,85,20, NULL, 0.0, 0.0, 0, 0, "Bake specified frame range");
+ uiButSetFunc(but, object_physics__baketoggle, pid, NULL);
+
+ if(!libdata && !G.obedit && (cache->flag & PTCACHE_BAKED))
+ uiSetButLock(1, "Simulation frames are baked");
+
+ uiBlockBeginAlign(block);
+ uiDefButI(block, NUM, B_BAKE_CACHE_CHANGE, "Start:", 100,y+25,105,20, &cache->startframe, 1, MAXFRAME, 1, 0, "Frame on which the simulation starts");
+ uiDefButI(block, NUM, B_BAKE_CACHE_CHANGE, "End:", 205,y+25,105,20, &cache->endframe, 1, MAXFRAME, 1, 0, "Frame on which the simulation stops");
+ uiBlockEndAlign(block);
+
+ if(cache->flag & PTCACHE_BAKED) {
+ if(pid->type == PTCACHE_TYPE_CLOTH ||
+ (pid->type == PTCACHE_TYPE_SOFTBODY && !((SoftBody*)pid->data)->particles)) {
+ if(!libdata && !G.obedit)
+ uiClearButLock();
+
+ uiBlockBeginAlign(block);
+ uiDefButBitI(block, TOG, PTCACHE_BAKE_EDIT, REDRAWVIEW3D, "Bake Editing", 10,y,100,20, &cache->flag, 0, 0, 0, 0, "Enable editing of the baked results in editmode.");
+ but= uiDefBut(block, BUT, REDRAWBUTSOBJECT, "Rebake From Current Frame", 110,y,200,20, NULL, 0.0, 0.0, 0, 0, "Bake again from current frame");
+ uiButSetFunc(but, object_physics__rebake, pid, NULL);
+ uiBlockEndAlign(block);
+ }
+
+ if(!libdata)
+ uiClearButLock();
+ }
+ else {
+ char str[512];
+ int exist, startframe, endframe;
+
+ if(!libdata)
+ uiClearButLock();
+
+ BKE_ptcache_id_time(pid, 0.0f, &startframe, &endframe, NULL);
+ exist= BKE_ptcache_id_exist(pid, startframe);
+
+ sprintf(str, "%simulation frames in disk cache.", (exist)? "S": "No s");
+ uiDefBut(block, LABEL, 0, str, 10,y,200,20, NULL, 0.0, 0, 0, 0, "");
+
+ if(exist) {
+ but= uiDefBut(block, BUT, REDRAWBUTSOBJECT, "Free Cache", 210,y,100,20, NULL, 0.0, 0.0, 0, 0, "Free cached simulation results");
+ uiButSetFunc(but, object_physics__clearcache, pid, NULL);
+ }
+ }
+}
+
/* Panel for softbodies */
static void object_softbodies__enable(void *ob_v, void *arg2)
{
Object *ob = ob_v;
ModifierData *md = modifiers_findByType(ob, eModifierType_Softbody);
+ PTCacheID pid;
- if (modifiers_isSoftbodyEnabled(ob)) {
- if (md) {
- md->mode &= ~(eModifierMode_Render|eModifierMode_Realtime);
- }
- } else {
- if (!md) {
- md = modifier_new(eModifierType_Softbody);
- BLI_addhead(&ob->modifiers, md);
- }
+ if(md) {
+ BLI_remlink(&ob->modifiers, md);
+ modifier_free(md);
+ BIF_undo_push("Del modifier");
- md->mode |= eModifierMode_Render|eModifierMode_Realtime;
+ ob->softflag &= ~OB_SB_ENABLE;
+ } else {
+ md = modifier_new(eModifierType_Softbody);
+ BLI_addhead(&ob->modifiers, md);
if (!ob->soft) {
ob->soft= sbNew();
ob->softflag |= OB_SB_GOAL|OB_SB_EDGES;
- softbody_clear_cache(ob, CFRA);
+
+ BKE_ptcache_id_from_softbody(&pid, ob, ob->soft);
+ BKE_ptcache_id_clear(&pid, PTCACHE_CLEAR_ALL, 0);
}
+
+ ob->softflag |= OB_SB_ENABLE;
}
+
/* needed so that initial state is cached correctly */
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
@@ -3552,7 +3782,7 @@ static void object_softbodies__enable_psys(void *ob_v, void *psys_v)
ParticleSystem *psys = psys_v;
Object *ob = ob_v;
- if(psys->softflag & OB_SB_ENABLE){
+ if(psys->softflag & OB_SB_ENABLE) {
psys->softflag &= ~OB_SB_ENABLE;
}
else{
@@ -3560,7 +3790,6 @@ static void object_softbodies__enable_psys(void *ob_v, void *psys_v)
psys->soft= sbNew();
psys->softflag |= OB_SB_GOAL|OB_SB_EDGES;
psys->soft->particles=psys;
- clear_particles_from_cache(ob, psys, CFRA);
}
psys->softflag |= OB_SB_ENABLE;
}
@@ -3583,10 +3812,12 @@ static void object_softbodies_collision(Object *ob)
{
SoftBody *sb=ob->soft;
uiBlock *block;
- uiBut *but = NULL;
static int val;
short *softflag=&ob->softflag, psys_cur=0;
int ob_has_hair=psys_ob_has_hair(ob);
+ static PTCacheID staticpid;
+ int libdata;
+
if(!_can_softbodies_at_all(ob)) return;
/*bah that is ugly! creating missing data members in UI code*/
if(ob->pd == NULL){
@@ -3596,10 +3827,11 @@ static void object_softbodies_collision(Object *ob)
ob->pd->pdef_sboft = 0.02f;
}
block= uiNewBlock(&curarea->uiblocks, "object_softbodies_collision", UI_EMBOSS, UI_HELV, curarea->win);
- // uiNewPanelTabbed("Soft Body", "Physics"); /*don't really want it tabbed first */
+ uiNewPanelTabbed("Soft Body", "Physics");
if(uiNewPanel(curarea, block, "Soft Body Collision", "Physics", 651, 0, 318, 204)==0) return;
- uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+ libdata= object_is_libdata(ob);
+ uiSetButLock(libdata, ERROR_LIBDATA_MESSAGE);
if(ob_has_hair) {
if(PE_get_current_num(ob) >= 0) {
@@ -3625,64 +3857,43 @@ static void object_softbodies_collision(Object *ob)
uiDefBut(block, LABEL, 0, "",10,10,1,2, NULL, 0.0, 0, 0, 0, ""); /* tell UI we go to 10,10*/
uiBlockBeginAlign(block);
if(psys_cur){
- uiDefBut(block, LABEL, 0, "Hair is not a softbody",10,190,300,20, NULL, 0.0, 0, 0, 0, "");
- uiDefBut(block, LABEL, 0, "However the emitter can deflect a softbody",10,170,300,20, NULL, 0.0, 0, 0, 0, "");
+ uiDefBut(block, LABEL, 0, "Hair is not a softbody.",10,190,300,20, NULL, 0.0, 0, 0, 0, "");
}
else {
- uiDefBut(block, LABEL, 0, "Object is not a softbody",10,190,300,20, NULL, 0.0, 0, 0, 0, "");
- uiDefBut(block, LABEL, 0, "However it can deflect a softbody",10,170,300,20, NULL, 0.0, 0, 0, 0, "");
- }
- /* OTHER OBJECTS COLLISION STUFF */
- if (ob->type==OB_MESH){
- uiBlockBeginAlign(block);
- but = uiDefButBitS(block, TOG, 1, B_REDR, "Deflection",10,50,150,20, &ob->pd->deflect, 0, 0, 0, 0, "Makes this object visible to softbody objects");
- uiButSetFunc(but, object_collision__enabletoggle, ob, NULL);
- if(ob->pd->deflect) {
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Damping:", 160,50,150,20, &ob->pd->pdef_sbdamp, 0.0, 1.0, 10, 0, "Amount of damping during soft body collision");
- uiDefButBitS(block, TOG,OB_SB_COLLFINAL , B_DIFF, "Ev.M.Stack",10,30,150,20, &ob->softflag, 0, 0, 0, 0, "Pick collision object from modifier stack");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Inner:", 160,30,150,20, &ob->pd->pdef_sbift, 0.001, 1.0, 10, 0, "Inner face thickness");
- uiDefButF(block, NUM, B_FIELD_CHANGE, "Outer:", 160,10,150,20, &ob->pd->pdef_sboft, 0.001, 1.0, 10, 0, "Outer face thickness");
- }
+ uiDefBut(block, LABEL, 0, "Object is not a softbody.",10,190,300,20, NULL, 0.0, 0, 0, 0, "");
}
uiBlockEndAlign(block);
}
else{
+ BKE_ptcache_id_from_softbody(&staticpid, ob, sb);
+ object_physics_bake_buttons(block, &staticpid, 125, libdata);
+
/* SELF COLLISION STUFF */
if ((ob->type==OB_MESH)||(ob->type==OB_CURVE) ) {
uiBlockBeginAlign(block);
if (*softflag & OB_SB_EDGES){
- uiDefButBitS(block, TOG, OB_SB_SELF, B_SOFTBODY_CHANGE, "Self Collision", 10,170,150,20, softflag, 0, 0, 0, 0, "enable naive vertex ball self collision");
+ uiDefButBitS(block, TOG, OB_SB_SELF, B_BAKE_CACHE_CHANGE, "Self Collision", 10,80,150,20, softflag, 0, 0, 0, 0, "enable naive vertex ball self collision");
if(*softflag & OB_SB_SELF){
- uiDefButF(block, NUM, B_SOFTBODY_CHANGE, "Ball Size:", 160,170,150,20, &sb->colball, -10.0, 10.0, 10, 0, "Absolute ball size or factor if not manual adjusted");
- uiDefButS(block, ROW, B_DIFF, "Man",10,150,60,20, &sb->sbc_mode, 4.0,SBC_MODE_MANUAL, 0, 0, "Manual adjust");
- uiDefButS(block, ROW, B_DIFF, "Av",70,150,60,20, &sb->sbc_mode, 4.0,SBC_MODE_AVG, 0, 0, "Average Spring lenght * Ball Size");
- uiDefButS(block, ROW, B_DIFF, "Min",130,150,60,20, &sb->sbc_mode, 4.0,SBC_MODE_MIN, 0, 0, "Minimal Spring lenght * Ball Size");
- uiDefButS(block, ROW, B_DIFF, "Max",190,150,60,20, &sb->sbc_mode, 4.0,SBC_MODE_MAX, 0, 0, "Maximal Spring lenght * Ball Size");
- uiDefButS(block, ROW, B_DIFF, "AvMiMa",250,150,60,20, &sb->sbc_mode, 4.0,SBC_MODE_AVGMINMAX, 0, 0, "(Min+Max)/2 * Ball Size");
- uiDefButF(block, NUM, B_DIFF, "B Stiff:", 10,130,150,20, &sb->ballstiff, 0.001, 100.0, 10, 0, "Ball inflating presure");
- uiDefButF(block, NUM, B_DIFF, "B Damp:", 160,130,150,20, &sb->balldamp, 0.001, 1.0, 10, 0, "Blending to inelastic collision");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Ball Size:", 160,80,150,20, &sb->colball, -10.0, 10.0, 10, 0, "Absolute ball size or factor if not manual adjusted");
+ uiDefButS(block, ROW, B_BAKE_CACHE_CHANGE, "Man",10,60,60,20, &sb->sbc_mode, 4.0,SBC_MODE_MANUAL, 0, 0, "Manual adjust");
+ uiDefButS(block, ROW, B_BAKE_CACHE_CHANGE, "Av",70,60,60,20, &sb->sbc_mode, 4.0,SBC_MODE_AVG, 0, 0, "Average Spring lenght * Ball Size");
+ uiDefButS(block, ROW, B_BAKE_CACHE_CHANGE, "Min",130,60,60,20, &sb->sbc_mode, 4.0,SBC_MODE_MIN, 0, 0, "Minimal Spring lenght * Ball Size");
+ uiDefButS(block, ROW, B_BAKE_CACHE_CHANGE, "Max",190,60,60,20, &sb->sbc_mode, 4.0,SBC_MODE_MAX, 0, 0, "Maximal Spring lenght * Ball Size");
+ uiDefButS(block, ROW, B_BAKE_CACHE_CHANGE, "AvMiMa",250,60,60,20, &sb->sbc_mode, 4.0,SBC_MODE_AVGMINMAX, 0, 0, "(Min+Max)/2 * Ball Size");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "B Stiff:", 10,40,150,20, &sb->ballstiff, 0.001, 100.0, 10, 0, "Ball inflating presure");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "B Damp:", 160,40,150,20, &sb->balldamp, 0.001, 1.0, 10, 0, "Blending to inelastic collision");
}
}
else{
- uiDefBut(block, LABEL, 0, "<Self Collision> not available because there",10,170,300,20, NULL, 0.0, 0, 0, 0, "");
- uiDefBut(block, LABEL, 0, "are no edges, enable <Use Edges>",10,150,300,20, NULL, 0.0, 0, 0, 0, "");
+ uiDefBut(block, LABEL, 0, "<Self Collision> not available because there",10,80,300,20, NULL, 0.0, 0, 0, 0, "");
+ uiDefBut(block, LABEL, 0, "are no edges, enable <Use Edges>",10,60,300,20, NULL, 0.0, 0, 0, 0, "");
}
uiBlockEndAlign(block);
/*SOLVER SETTINGS*/
/* done in another panel now*/
}
- /* OTHER OBJECTS COLLISION STUFF */
- if (ob->type==OB_MESH){
- but = uiDefButBitS(block, TOG, 1, B_REDR, "Deflection",10,50,150,20, &ob->pd->deflect, 0, 0, 0, 0, "Makes this object visible to other softbody objects");
- uiButSetFunc(but, object_collision__enabletoggle, ob, NULL);
- if(ob->pd->deflect) {
- uiDefButF(block, NUM, B_DIFF, "Damping:", 160,50,150,20, &ob->pd->pdef_sbdamp, 0.0, 1.0, 10, 0, "Amount of damping during soft body collision");
- uiDefButBitS(block, TOG,OB_SB_COLLFINAL , B_DIFF, "Ev.M.Stack",10,30,150,20, softflag, 0, 0, 0, 0, "Pick collision object from modifier stack");
- uiDefButF(block, NUM, B_DIFF, "Inner:", 160,30,150,20, &ob->pd->pdef_sbift, 0.001, 1.0, 10, 0, "Inner face thickness");
- uiDefButF(block, NUM, B_DIFF, "Outer:", 160,10,150,20, &ob->pd->pdef_sboft, 0.001, 1.0, 10, 0, "Outer face thickness");
- }
- }
+
uiDefBut(block, LABEL, 0, "",10,10,1,2, NULL, 0.0, 0, 0, 0, ""); /* tell UI we go to 10,10*/
}
uiBlockEndAlign(block);
@@ -3696,9 +3907,11 @@ static void object_softbodies_solver(Object *ob)
int ob_has_hair=psys_ob_has_hair(ob);
if(!_can_softbodies_at_all(ob)) return;
block= uiNewBlock(&curarea->uiblocks, "object_softbodies_solver", UI_EMBOSS, UI_HELV, curarea->win);
+ uiNewPanelTabbed("Soft Body", "Physics");
if(uiNewPanel(curarea, block, "Soft Body Solver", "Physics", 651, 0, 318, 204)==0) return;
- uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+ uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+
/* doubt that is really needed here but for now */
if(ob_has_hair) {
if(PE_get_current_num(ob) >= 0) {
@@ -3723,10 +3936,10 @@ static void object_softbodies_solver(Object *ob)
if(!val) {
uiDefBut(block, LABEL, 0, "",10,10,1,2, NULL, 0.0, 0, 0, 0, ""); /* tell UI we go to 10,10*/
if(psys_cur){
- uiDefBut(block, LABEL, 0, "Hair is not a softbody",10,190,300,20, NULL, 0.0, 0, 0, 0, "");
+ uiDefBut(block, LABEL, 0, "Hair is not a softbody.",10,190,300,20, NULL, 0.0, 0, 0, 0, "");
}
else {
- uiDefBut(block, LABEL, 0, "Object is not a softbody",10,190,300,20, NULL, 0.0, 0, 0, 0, "");
+ uiDefBut(block, LABEL, 0, "Object is not a softbody.",10,190,300,20, NULL, 0.0, 0, 0, 0, "");
}
}
else{
@@ -3734,7 +3947,7 @@ static void object_softbodies_solver(Object *ob)
/*SOLVER SETTINGS*/
uiBlockBeginAlign(block);
uiDefBut(block, LABEL, 0, "Solver select",10,200,300,20, NULL, 0.0, 0, 0, 0, "");
- uiDefButS(block, MENU, B_SOFTBODY_CHANGE, sbsolvers,10,180,300,20, &sb->solver_ID, 14.0, 0.0, 0, 0, "Select Solver");
+ uiDefButS(block, MENU, B_BAKE_CACHE_CHANGE, sbsolvers,10,180,300,20, &sb->solver_ID, 14.0, 0.0, 0, 0, "Select Solver");
uiBlockEndAlign(block);
/*some have adapive step size - some not*/
@@ -3749,31 +3962,31 @@ static void object_softbodies_solver(Object *ob)
if(adaptive_mode){
uiBlockBeginAlign(block);
uiDefBut(block, LABEL, 0, "Step size controls",10,160,300,20, NULL, 0.0, 0, 0, 0, "");
- uiDefButF(block, NUM, B_DIFF, "Error Lim:", 10,140,280,20, &sb->rklimit , 0.001, 10.0, 10, 0, "The Runge-Kutta ODE solver error limit, low value gives more precision, high values speed");
- uiDefButBitS(block, TOG, SBSO_OLDERR, B_DIFF,"V", 290,140,20,20, &sb->solverflags, 0, 0, 0, 0, "Use velocities for automagic step sizes");
- uiDefButS(block, NUM, B_DIFF, "MinS:", 10,120,150,20, &sb->minloops, 0.00, 30000.0, 10, 0, "Minimal # solver steps/frame ");
- uiDefButS(block, NUM, B_DIFF, "MaxS:", 160,120,150,20, &sb->maxloops, 0.00, 30000.0, 10, 0, "Maximal # solver steps/frame ");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Error Lim:", 10,140,280,20, &sb->rklimit , 0.001, 10.0, 10, 0, "The Runge-Kutta ODE solver error limit, low value gives more precision, high values speed");
+ uiDefButBitS(block, TOG, SBSO_OLDERR, B_BAKE_CACHE_CHANGE,"V", 290,140,20,20, &sb->solverflags, 0, 0, 0, 0, "Use velocities for automagic step sizes");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "MinS:", 10,120,150,20, &sb->minloops, 0.00, 30000.0, 10, 0, "Minimal # solver steps/frame ");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "MaxS:", 160,120,150,20, &sb->maxloops, 0.00, 30000.0, 10, 0, "Maximal # solver steps/frame ");
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
uiDefBut(block, LABEL, 0, "Collision helpers",10,100,300,20, NULL, 0.0, 0, 0, 0, "");
- uiDefButS(block, NUM, B_DIFF, "Choke:", 10,80,150,20, &sb->choke, 0.00, 100.0, 10, 0, "'Viscosity' inside collision target ");
- uiDefButS(block, NUM, B_DIFF, "Fuzzy:", 160,80,150,20, &sb->fuzzyness, 1.00, 100.0, 10, 0, "Fuzzyness while on collision, high values make collsion handling faster but less stable");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "Choke:", 10,80,150,20, &sb->choke, 0.00, 100.0, 10, 0, "'Viscosity' inside collision target ");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "Fuzzy:", 160,80,150,20, &sb->fuzzyness, 1.00, 100.0, 10, 0, "Fuzzyness while on collision, high values make collsion handling faster but less stable");
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
uiDefBut(block, LABEL, 0, "Diagnosis",10,60,300,20, NULL, 0.0, 0, 0, 0, "");
- uiDefButBitS(block, TOG, SBSO_MONITOR, B_DIFF,"Print Performance to Console", 10,40,300,20, &sb->solverflags, 0, 0, 0, 0, "Turn on SB diagnose console prints");
+ uiDefButBitS(block, TOG, SBSO_MONITOR, B_BAKE_CACHE_CHANGE,"Print Performance to Console", 10,40,300,20, &sb->solverflags, 0, 0, 0, 0, "Turn on SB diagnose console prints");
uiBlockEndAlign(block);
}
else{
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
- uiDefButS(block, NUM, B_DIFF, "Fuzzy:", 210,100,90,20, &sb->fuzzyness, 1.00, 100.0, 10, 0, "Fuzzyness while on collision, high values make collsion handling faster but less stable");
- uiDefButBitS(block, TOG, SBSO_MONITOR, B_DIFF,"M", 290,100,20,20, &sb->solverflags, 0, 0, 0, 0, "Turn on SB diagnose console prints");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "Fuzzy:", 210,100,90,20, &sb->fuzzyness, 1.00, 100.0, 10, 0, "Fuzzyness while on collision, high values make collsion handling faster but less stable");
+ uiDefButBitS(block, TOG, SBSO_MONITOR, B_BAKE_CACHE_CHANGE,"M", 290,100,20,20, &sb->solverflags, 0, 0, 0, 0, "Turn on SB diagnose console prints");
uiBlockEndAlign(block);
- uiDefButS(block, NUM, B_DIFF, "Steps:", 10,80,100,20, &sb->minloops, 1.00, 30000.0, 10, 0, "Solver steps/frame ");
- uiDefButS(block, NUM, B_DIFF, "Choke:", 210,80,100,20, &sb->choke, 0.00, 100.0, 10, 0, "'Viscosity' inside collision target ");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "Steps:", 10,80,100,20, &sb->minloops, 1.00, 30000.0, 10, 0, "Solver steps/frame ");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "Choke:", 210,80,100,20, &sb->choke, 0.00, 100.0, 10, 0, "'Viscosity' inside collision target ");
}
uiBlockEndAlign(block);
@@ -3783,22 +3996,13 @@ static void object_softbodies_solver(Object *ob)
uiBlockEndAlign(block);
}
-static void sb_clear_cache(void *ob_v, void *actsoft_v)
-{
- Object *ob = ob_v;
- short *actsoft = actsoft_v;
-
- if(actsoft >= 0)
- clear_particles_from_cache(ob, BLI_findlink(&ob->particlesystem, *actsoft), CFRA);
- else
- softbody_clear_cache(ob, CFRA);
-}
static void object_softbodies(Object *ob)
{
SoftBody *sb=ob->soft;
ParticleSystem *psys=NULL;
uiBlock *block;
uiBut *but;
+ ModifierData *md;
static int val;
short *softflag=&ob->softflag, psys_cur=0;
int ob_has_hair = psys_ob_has_hair(ob);
@@ -3806,13 +4010,13 @@ static void object_softbodies(Object *ob)
if(!_can_softbodies_at_all(ob)) return;
block= uiNewBlock(&curarea->uiblocks, "object_softbodies", UI_EMBOSS, UI_HELV, curarea->win);
+ uiNewPanelTabbed("Soft Body", "Physics");
if(uiNewPanel(curarea, block, "Soft Body", "Physics", 640, 0, 318, 204)==0) return;
- uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+ uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
if(ob_has_hair) {
- char *menustr = psys_menu_string(ob,1);
-
psys= psys_get_current(ob);
+
if(psys && actsoft >= 0) {
actsoft= psys_get_current_num(ob)+1;
@@ -3822,52 +4026,56 @@ static void object_softbodies(Object *ob)
}
else
actsoft= -1; /* -1 = object */
-
- but=uiDefButS(block, MENU, B_BAKE_REDRAWEDIT, menustr, 10,200,100,20, &actsoft, 14.0, 0.0, 0, 0, "Browse systems");
- uiButSetFunc(but, PE_change_act, ob, &actsoft);
-
- MEM_freeN(menustr);
}
- if(psys_cur && psys){
+ if(psys_cur && psys) {
if(*softflag & OB_SB_ENABLE)
- val=1;
+ val = 1;
else
- val=0;
+ val = 0;
- but = uiDefButI(block, TOG, REDRAWBUTSOBJECT, "Soft Body", 110,200,70,20, &val, 0, 0, 0, 0, "Sets hair to become soft body");
+ but = uiDefButI(block, TOG, REDRAWBUTSOBJECT, "Soft Body", 10,200,130,20, &val, 0, 0, 0, 0, "Sets hair to become soft body");
uiButSetFunc(but, object_softbodies__enable_psys, ob, psys);
}
- else{
- val = modifiers_isSoftbodyEnabled(ob);
+ else {
+ md = modifiers_findByType(ob, eModifierType_Softbody);
+ val = (md != NULL);
+
if(ob_has_hair)
- but = uiDefButI(block, TOG, REDRAWBUTSOBJECT, "Soft Body", 110,200,70,20, &val, 0, 0, 0, 0, "Sets object to become soft body");
+ but = uiDefButI(block, TOG, REDRAWBUTSOBJECT, "Soft Body", 10,200,130,20, &val, 0, 0, 0, 0, "Sets object to become soft body");
else
but = uiDefButI(block, TOG, REDRAWBUTSOBJECT, "Soft Body", 10,200,130,20, &val, 0, 0, 0, 0, "Sets object to become soft body");
-
uiButSetFunc(but, object_softbodies__enable, ob, NULL);
+
+ if(md) {
+ uiBlockBeginAlign(block);
+ uiDefIconButBitI(block, TOG, eModifierMode_Render, B_BAKE_CACHE_CHANGE, ICON_SCENE, 145, 200, 20, 20,&md->mode, 0, 0, 1, 0, "Enable soft body during rendering");
+ but= uiDefIconButBitI(block, TOG, eModifierMode_Realtime, B_BAKE_CACHE_CHANGE, VICON_VIEW3D, 165, 200, 20, 20,&md->mode, 0, 0, 1, 0, "Enable soft body during interactive display");
+ uiBlockEndAlign(block);
+ }
}
+
+ if(ob_has_hair) {
+ char *menustr = psys_menu_string(ob,1);
+
+ but=uiDefButS(block, MENU, B_BAKE_REDRAWEDIT, menustr, 210,200,100,20, &actsoft, 14.0, 0.0, 0, 0, "Browse systems");
+ uiButSetFunc(but, PE_change_act, ob, &actsoft);
+
+ MEM_freeN(menustr);
+ }
+
+
uiDefBut(block, LABEL, 0, "",10,10,300,0, NULL, 0.0, 0, 0, 0, ""); /* tell UI we go to 10,10*/
- if(val){
+ if(val) {
int defCount;
char *menustr;
static char str[128];
- //uiDefButBitS(block, TOG, OB_SB_BAKESET, REDRAWBUTSOBJECT, "Bake settings", 180,200,130,20, &ob->softflag, 0, 0, 0, 0, "To convert simulation into baked (cached) result");
-
- //if(sb->keys) uiSetButLock(1, "Soft Body is baked, free it first");
- uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, OB_SB_PROTECT_CACHE, REDRAWBUTSOBJECT, "Protect", 180,200,50,20, softflag, 0.0, 0.0, 10, 0, "Protect the cache");
- but=uiDefBut(block, BUT, B_SOFTBODY_CHANGE, "Clear", 230,200,50,20, NULL, 0.0, 0.0, 10, 0, "Clear the cache");
- if((*softflag & PSYS_PROTECT_CACHE)==0)
- uiButSetFunc(but, sb_clear_cache, ob, &actsoft);
-
- uiBlockEndAlign(block);
-
- if(*softflag & OB_SB_PROTECT_CACHE) uiSetButLock(1, "Cache is protected");
+ if(sb->pointcache->flag & PTCACHE_BAKED)
+ uiSetButLock(1, "Simulation frames are baked");
//if(ob->softflag & OB_SB_BAKESET) {
// uiBlockBeginAlign(block);
@@ -3900,65 +4108,66 @@ static void object_softbodies(Object *ob)
sprintf(str, "Vertex Mass");
}
uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_DIFF, "Friction:", 10, 170,150,20, &sb->mediafrict, 0.0, 50.0, 10, 0, "General media friction for point movements");
- uiDefButF(block, NUM, B_DIFF, "Mass:", 160, 170,150,20, &sb->nodemass , 0.001, 50000.0, 10, 0, str);
- uiDefButF(block, NUM, B_DIFF, "Grav:", 10,150,150,20, &sb->grav , -10.0, 10.0, 10, 0, "Apply gravitation to point movement");
- uiDefButF(block, NUM, B_DIFF, "Speed:", 160,150,150,20, &sb->physics_speed , 0.01, 100.0, 10, 0, "Tweak timing for physics to control frequency and speed");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Friction:", 10, 170,150,20, &sb->mediafrict, 0.0, 50.0, 10, 0, "General media friction for point movements");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Mass:", 160, 170,150,20, &sb->nodemass , 0.001, 50000.0, 10, 0, str);
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Grav:", 10,150,150,20, &sb->grav , -10.0, 10.0, 10, 0, "Apply gravitation to point movement");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Speed:", 160,150,150,20, &sb->physics_speed , 0.01, 100.0, 10, 0, "Tweak timing for physics to control frequency and speed");
uiBlockEndAlign(block);
/* GOAL STUFF */
uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, OB_SB_GOAL, B_SOFTBODY_CHANGE, "Use Goal", 10,120,130,20, softflag, 0, 0, 0, 0, "Define forces for vertices to stick to animated position");
+ uiDefButBitS(block, TOG, OB_SB_GOAL, B_BAKE_CACHE_CHANGE, "Use Goal", 10,120,130,20, softflag, 0, 0, 0, 0, "Define forces for vertices to stick to animated position");
if (*softflag & OB_SB_GOAL){
if(ob->type==OB_MESH) {
menustr= get_vertexgroup_menustr(ob);
defCount=BLI_countlist(&ob->defbase);
if(defCount==0) sb->vertgroup= 0;
- uiDefButS(block, MENU, B_SOFTBODY_CHANGE, menustr, 140,120,20,20, &sb->vertgroup, 0, defCount, 0, 0, "Browses available vertex groups");
+ uiDefButS(block, MENU, B_BAKE_CACHE_CHANGE, menustr, 140,120,20,20, &sb->vertgroup, 0, defCount, 0, 0, "Browses available vertex groups");
MEM_freeN (menustr);
if(sb->vertgroup) {
bDeformGroup *defGroup = BLI_findlink(&ob->defbase, sb->vertgroup-1);
if(defGroup)
- uiDefBut(block, BUT, B_DIFF, defGroup->name, 160,120,130,20, NULL, 0.0, 0.0, 0, 0, "Name of current vertex group");
+ uiDefBut(block, BUT, B_BAKE_CACHE_CHANGE, defGroup->name, 160,120,130,20, NULL, 0.0, 0.0, 0, 0, "Name of current vertex group");
else
- uiDefBut(block, BUT, B_DIFF, "(no group)", 160,120,130,20, NULL, 0.0, 0.0, 0, 0, "Vertex Group doesn't exist anymore");
+ uiDefBut(block, BUT, B_BAKE_CACHE_CHANGE, "(no group)", 160,120,130,20, NULL, 0.0, 0.0, 0, 0, "Vertex Group doesn't exist anymore");
uiDefIconBut(block, BUT, B_SOFTBODY_DEL_VG, ICON_X, 290,120,20,20, 0, 0, 0, 0, 0, "Disable use of vertex group");
}
else
- uiDefButF(block, NUM, B_SOFTBODY_CHANGE, "Goal:", 160,120,150,20, &sb->defgoal, 0.0, 1.0, 10, 0, "Default Goal (vertex target position) value, when no Vertex Group used");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Goal:", 160,120,150,20, &sb->defgoal, 0.0, 1.0, 10, 0, "Default Goal (vertex target position) value, when no Vertex Group used");
}
else {
- uiDefButS(block, TOG, B_SOFTBODY_CHANGE, "W", 140,120,20,20, &sb->vertgroup, 0, 1, 0, 0, "Use control point weight values");
- uiDefButF(block, NUM, B_SOFTBODY_CHANGE, "Goal:", 160,120,150,20, &sb->defgoal, 0.0, 1.0, 10, 0, "Default Goal (vertex target position) value, when no Vertex Group used");
+ uiDefButS(block, TOG, B_BAKE_CACHE_CHANGE, "W", 140,120,20,20, &sb->vertgroup, 0, 1, 0, 0, "Use control point weight values");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Goal:", 160,120,150,20, &sb->defgoal, 0.0, 1.0, 10, 0, "Default Goal (vertex target position) value, when no Vertex Group used");
}
- uiDefButF(block, NUM, B_DIFF, "G Stiff:", 10,100,150,20, &sb->goalspring, 0.0, 0.999, 10, 0, "Goal (vertex target position) spring stiffness");
- uiDefButF(block, NUM, B_DIFF, "G Damp:", 160,100,150,20, &sb->goalfrict , 0.0, 50.0, 10, 0, "Goal (vertex target position) friction");
- uiDefButF(block, NUM, B_SOFTBODY_CHANGE, "G Min:", 10,80,150,20, &sb->mingoal, 0.0, 1.0, 10, 0, "Goal minimum, vertex group weights are scaled to match this range");
- uiDefButF(block, NUM, B_SOFTBODY_CHANGE, "G Max:", 160,80,150,20, &sb->maxgoal, 0.0, 1.0, 10, 0, "Goal maximum, vertex group weights are scaled to match this range");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "G Stiff:", 10,100,150,20, &sb->goalspring, 0.0, 0.999, 10, 0, "Goal (vertex target position) spring stiffness");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "G Damp:", 160,100,150,20, &sb->goalfrict , 0.0, 50.0, 10, 0, "Goal (vertex target position) friction");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "G Min:", 10,80,150,20, &sb->mingoal, 0.0, 1.0, 10, 0, "Goal minimum, vertex group weights are scaled to match this range");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "G Max:", 160,80,150,20, &sb->maxgoal, 0.0, 1.0, 10, 0, "Goal maximum, vertex group weights are scaled to match this range");
}
uiBlockEndAlign(block);
/* EDGE SPRING STUFF */
if(ob->type!=OB_SURF) {
uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, OB_SB_EDGES, B_SOFTBODY_CHANGE, "Use Edges", 10,50,90,20, softflag, 0, 0, 0, 0, "Use Edges as springs");
+ uiDefButBitS(block, TOG, OB_SB_EDGES, B_BAKE_CACHE_CHANGE, "Use Edges", 10,50,90,20, softflag, 0, 0, 0, 0, "Use Edges as springs");
if (*softflag & OB_SB_EDGES){
- uiDefButBitS(block, TOG, OB_SB_QUADS, B_SOFTBODY_CHANGE, "Stiff Quads", 110,50,90,20, softflag, 0, 0, 0, 0, "Adds diagonal springs on 4-gons");
- uiDefButBitS(block, TOG, OB_SB_EDGECOLL, B_DIFF, "CEdge", 220,50,45,20, softflag, 0, 0, 0, 0, "Edge collide too");
- uiDefButBitS(block, TOG, OB_SB_FACECOLL, B_DIFF, "CFace", 265,50,45,20, softflag, 0, 0, 0, 0, "Faces collide too SLOOOOOW warning ");
- uiDefButF(block, NUM, B_DIFF, "E Pull:", 10,30,100,20, &sb->inspring, 0.0, 0.999, 10, 0, "Edge spring stiffness when longer than rest length");
- uiDefButF(block, NUM, B_DIFF, "E Push:", 110,30,100,20, &sb->inpush, 0.0, 0.999, 10, 0, "Edge spring stiffness when shorter than rest length");
- uiDefButF(block, NUM, B_DIFF, "E Damp:", 210,30,100,20, &sb->infrict, 0.0, 50.0, 10, 0, "Edge spring friction");
-
- uiDefButBitS(block, TOG,OB_SB_AERO_ANGLE,B_SOFTBODY_CHANGE, "N",10,10,20,20, softflag, 0, 0, 0, 0, "New aero(uses angle and length)");
- uiDefButS(block, NUM, B_DIFF, "Aero:", 30,10,60,20, &sb->aeroedge, 0.00, 30000.0, 10, 0, "Make edges 'sail'");
- uiDefButS(block, NUM, B_SOFTBODY_CHANGE, "Plas:", 90,10,60,20, &sb->plastic, 0.0, 100.0, 10, 0, "Permanent deform");
+ uiDefButBitS(block, TOG, OB_SB_QUADS, B_BAKE_CACHE_CHANGE, "Stiff Quads", 110,50,90,20, softflag, 0, 0, 0, 0, "Adds diagonal springs on 4-gons");
+ uiDefButBitS(block, TOG, OB_SB_EDGECOLL, B_BAKE_CACHE_CHANGE, "CEdge", 220,50,45,20, softflag, 0, 0, 0, 0, "Edge collide too");
+ uiDefButBitS(block, TOG, OB_SB_FACECOLL, B_BAKE_CACHE_CHANGE, "CFace", 265,50,45,20, softflag, 0, 0, 0, 0, "Faces collide too SLOOOOOW warning ");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Pull:", 10,30,75,20, &sb->inspring, 0.0, 0.999, 10, 0, "Edge spring stiffness when longer than rest length");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Push:", 85,30,75,20, &sb->inpush, 0.0, 0.999, 10, 0, "Edge spring stiffness when shorter than rest length");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Damp:", 160,30,70,20, &sb->infrict, 0.0, 50.0, 10, 0, "Edge spring friction");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "SL:",250 ,30,60,20, &sb->springpreload, 0.0, 200.0, 10, 0, "Alter spring lenght to shrink/blow up (unit %) 0 to disable ");
+
+ uiDefButBitS(block, TOG,OB_SB_AERO_ANGLE,B_BAKE_CACHE_CHANGE, "N",10,10,20,20, softflag, 0, 0, 0, 0, "New aero(uses angle and length)");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "Aero:", 30,10,60,20, &sb->aeroedge, 0.00, 30000.0, 10, 0, "Make edges 'sail'");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "Plas:", 90,10,60,20, &sb->plastic, 0.0, 100.0, 10, 0, "Permanent deform");
if(ob->type==OB_MESH) {
- uiDefButF(block, NUM, B_SOFTBODY_CHANGE, "Be:", 150,10,80,20, &sb->secondspring, 0.0, 10.0, 10, 0, "Bendig Stiffness");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Be:", 150,10,80,20, &sb->secondspring, 0.0, 10.0, 10, 0, "Bendig Stiffness");
if (*softflag & OB_SB_QUADS){
- uiDefButF(block, NUM, B_SOFTBODY_CHANGE, "Sh:", 230,10,80,20, &sb->shearstiff, 0.0, 1.0, 10, 0, "Shear Stiffness");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Sh:", 230,10,80,20, &sb->shearstiff, 0.0, 1.0, 10, 0, "Shear Stiffness");
}
}
else sb->secondspring = 0;
@@ -3971,6 +4180,28 @@ static void object_softbodies(Object *ob)
uiBlockEndAlign(block);
}
+static void object_panel_particle_bake(Object *ob)
+{
+ uiBlock *block;
+ ParticleSystem *psys= psys_get_current(ob);
+ static PTCacheID staticpid;
+ int libdata;
+
+ if (psys==NULL || psys->part==NULL) return;
+ if (ELEM(psys->part->type, PART_HAIR, PART_FLUID)) return;
+ if (psys->part->phystype == PART_PHYS_KEYED) return;
+
+ block= uiNewBlock(&curarea->uiblocks, "object_panel_particle_bake", UI_EMBOSS, UI_HELV, curarea->win);
+ uiNewPanelTabbed("Particle System", "Particle");
+ if(uiNewPanel(curarea, block, "Bake", "Particle", 320, 0, 318, 204)==0) return;
+
+ libdata= object_is_libdata(ob);
+ uiSetButLock(libdata, ERROR_LIBDATA_MESSAGE);
+
+ BKE_ptcache_id_from_particles(&staticpid, ob, psys);
+ object_physics_bake_buttons(block, &staticpid, 10, libdata);
+}
+
/* Panels for new particles*/
static void object_panel_particle_children(Object *ob)
{
@@ -3985,14 +4216,21 @@ static void object_panel_particle_children(Object *ob)
if(part==NULL) return;
block= uiNewBlock(&curarea->uiblocks, "object_panel_particle_child", UI_EMBOSS, UI_HELV, curarea->win);
- if(uiNewPanel(curarea, block, "Children", "Particle", 1300, 0, 318, 204)==0) return;
uiNewPanelTabbed("Extras", "Particle");
+ if(uiNewPanel(curarea, block, "Children", "Particle", 1300, 0, 318, 204)==0) return;
+
+ uiSetButLock((part->id.lib != NULL), ERROR_LIBDATA_MESSAGE);
+
+ if(part->type == PART_FLUID) {
+ uiDefBut(block, LABEL, 0, "No settings for fluid particles", butx,(buty-=2*buth),2*butw,buth, NULL, 0.0, 0, 0, 0, "");
+ return;
+ }
uiDefButS(block, MENU, B_PART_ALLOC_CHILD, "Children from:%t|Faces%x2|Particles%x1|None%x0", butx,buty,butw,buth, &part->childtype, 14.0, 0.0, 0, 0, "Create child particles");
if(part->childtype==0) return;
- if(part->childtype==PART_CHILD_FACES && (psys->flag&(PSYS_HAIR_DONE|PSYS_KEYED))==0) {
+ if(part->childtype==PART_CHILD_FACES && !(part->phystype==PART_PHYS_KEYED || part->type==PART_HAIR)) {
uiDefBut(block, LABEL, 0, "Hair or keyed", butx,(buty-=2*buth),butw,buth, NULL, 0.0, 0, 0, 0, "");
uiDefBut(block, LABEL, 0, "particles needed!", butx,(buty-=2*buth),butw,buth, NULL, 0.0, 0, 0, 0, "");
return;
@@ -4038,12 +4276,12 @@ static void object_panel_particle_children(Object *ob)
butx=160;
buty=180;
- if(psys->flag & (PSYS_HAIR_DONE|PSYS_KEYED))
+ if(part->phystype==PART_PHYS_KEYED || part->type==PART_HAIR)
uiDefButBitS(block, TOG, 1, B_PART_REDRAW, "Kink/Branch", butx,(buty-=buth),butw,buth, &kink_ui, 0, 0, 0, 0, "Show kink and branch options");
else
buty-=buth;
- if(kink_ui || (psys->flag & (PSYS_HAIR_DONE|PSYS_KEYED)) == 0) {
+ if(kink_ui || !(part->phystype==PART_PHYS_KEYED || part->type==PART_HAIR)) {
buty -= buth/2;
/* kink */
@@ -4061,7 +4299,7 @@ static void object_panel_particle_children(Object *ob)
}
uiBlockEndAlign(block);
- if(part->childtype==PART_CHILD_PARTICLES && psys->flag & (PSYS_HAIR_DONE|PSYS_KEYED)) {
+ if(part->childtype==PART_CHILD_PARTICLES && (part->phystype==PART_PHYS_KEYED || part->type==PART_HAIR)) {
if(part->flag & PART_BRANCHING) {
uiDefButBitI(block, TOG, PART_BRANCHING, B_PART_RECALC_CHILD, "Branching", butx,(buty-=2*buth),butw,buth, &part->flag, 0, 0, 0, 0, "Branch child paths from eachother");
uiDefButBitI(block, TOG, PART_ANIM_BRANCHING, B_PART_RECALC_CHILD, "Animated", butx,(buty-=buth),butw/2,buth, &part->flag, 0, 0, 0, 0, "Animate branching");
@@ -4138,6 +4376,13 @@ static void object_panel_particle_extra(Object *ob)
block= uiNewBlock(&curarea->uiblocks, "object_panel_particle_extra", UI_EMBOSS, UI_HELV, curarea->win);
if(uiNewPanel(curarea, block, "Extras", "Particle", 980, 0, 318, 204)==0) return;
+ uiSetButLock((part->id.lib != NULL), ERROR_LIBDATA_MESSAGE);
+
+ if(part->type == PART_FLUID) {
+ uiDefBut(block, LABEL, 0, "No settings for fluid particles", butx,(buty-=2*buth),2*butw,buth, NULL, 0.0, 0, 0, 0, "");
+ return;
+ }
+
uiDefBut(block, LABEL, 0, "Effectors:", butx,buty,butw,buth, NULL, 0.0, 0, 0, 0, "");
uiBlockBeginAlign(block);
uiDefIDPoinBut(block, test_grouppoin_but, ID_GR, B_PART_RECALC, "GR:", butx, (buty-=buth), butw/2, buth, &part->eff_group, "Limit effectors to this Group");
@@ -4313,7 +4558,7 @@ static void object_panel_particle_visual(Object *ob)
uiDefButF(block, NUM, B_PART_REDRAW, "Front:", butx,(buty-=buth),butw,buth, &part->draw_line[1], 0.0, 10.0, 0, 0, "Length of the line's head");
break;
case PART_DRAW_PATH:
- if(psys->flag & (PSYS_HAIR_DONE|PSYS_KEYED)) {
+ if(part->phystype==PART_PHYS_KEYED || part->type==PART_HAIR) {
uiDefButS(block, NUM, B_PART_RECALC, "Steps:", butx,(buty+=buth),butw,buth, &part->draw_step, 0.0, 7.0, 0, 0, "How many steps paths are drawn with (power of 2)");
uiDefButS(block, NUM, B_PART_REDRAW, "Render:", butx,(buty-=buth),butw,buth, &part->ren_step, 0.0, 9.0, 0, 0, "How many steps paths are rendered with (power of 2)");
@@ -4429,12 +4674,18 @@ static void object_panel_particle_physics(Object *ob)
block= uiNewBlock(&curarea->uiblocks, "object_panel_particle_physics", UI_EMBOSS, UI_HELV, curarea->win);
if(uiNewPanel(curarea, block, "Physics", "Particle", 320, 0, 318, 204)==0) return;
- if(ob->id.lib) uiSetButLock(1, "Can't edit library data");
-
- if(psys->flag & PSYS_EDITED || psys->flag & PSYS_PROTECT_CACHE) {
- uiSetButLock(1, "Hair is edited or cache is protected!");
+ if(part->type == PART_FLUID) {
+ uiDefBut(block, LABEL, 0, "No settings for fluid particles", butx,(buty-=2*buth),2*butw,buth, NULL, 0.0, 0, 0, 0, "");
+ return;
}
+ if(ob->id.lib)
+ uiSetButLock(1, "Can't edit library data");
+ else if(psys->flag & PSYS_EDITED)
+ uiSetButLock(1, "Hair is edited!");
+ else if(psys->pointcache->flag & PTCACHE_BAKED)
+ uiSetButLock(1, "Simulation frames are baked!");
+
if(part->phystype==PART_PHYS_KEYED){
uiBlockBeginAlign(block);
uiDefButBitI(block, TOG, PSYS_FIRST_KEYED, B_PART_RECALC, "First", butx,buty,45,buth, &psys->flag, 0, 0, 0, 0, "Sets the system to be the starting point of keyed particles");
@@ -4586,10 +4837,6 @@ static void object_panel_particle_physics(Object *ob)
}
}
-static void psys_clear_cache(void *ob_v, void *psys_v)
-{
- clear_particles_from_cache((Object *)ob_v, (ParticleSystem *)psys_v, CFRA);
-}
static void object_panel_particle_system(Object *ob)
{
uiBlock *block;
@@ -4597,10 +4844,11 @@ static void object_panel_particle_system(Object *ob)
ParticleSystem *psys=NULL;
ParticleSettings *part;
ID *id, *idfrom;
+ ModifierData *md;
short butx=0, buty=160, butw=150, buth=20;
- char str[30];
+ char str[30], *lockmessage= NULL;
static short partact;
- short totpart, lock;
+ short totpart, lock= 0;
block= uiNewBlock(&curarea->uiblocks, "object_panel_particle_system", UI_EMBOSS, UI_HELV, curarea->win);
if(uiNewPanel(curarea, block, "Particle System", "Particle", 0, 0, 318, 204)==0) return;
@@ -4619,16 +4867,18 @@ static void object_panel_particle_system(Object *ob)
id=NULL;
idfrom=&ob->id;
+ if(psys==0 || psys->part->type != PART_FLUID) {
/* browse buttons */
- uiBlockSetCol(block, TH_BUT_SETTING2);
- butx= std_libbuttons(block, butx, buty, 0, NULL, B_PARTBROWSE, ID_PA, 0, id, idfrom, &(G.buts->menunr), B_PARTALONE, 0, B_PARTDELETE, 0, 0);
-
+ uiBlockSetCol(block, TH_BUT_SETTING2);
+ butx= std_libbuttons(block, butx, buty, 0, NULL, B_PARTBROWSE, ID_PA, 0, id, idfrom, &(G.buts->menunr), B_PARTALONE, 0, B_PARTDELETE, 0, 0);
+ }
+
uiBlockSetCol(block, TH_AUTO);
partact=psys_get_current_num(ob)+1;
totpart=BLI_countlist(&ob->particlesystem);
sprintf(str, "%d Part", totpart);
- but=uiDefButS(block, NUM, B_PARTACT, str, 224,buty,88,buth, &partact, 1.0, totpart+1, 0, 0, "Shows the number of particle systems in the object and the active particle system");
+ but=uiDefButS(block, NUM, B_PARTACT, str, 230,buty,83,buth, &partact, 1.0, totpart+1, 0, 0, "Shows the number of particle systems in the object and the active particle system");
uiButSetFunc(but, PE_change_act, ob, &partact);
if(psys==NULL)
@@ -4636,35 +4886,47 @@ static void object_panel_particle_system(Object *ob)
part=psys->part;
- if(part==NULL) return;
+ if(part==NULL)
+ return;
butx=0;
- buty-=5;
-
- uiDefButBitI(block, TOG, PSYS_ENABLED, B_PART_ENABLE, "Enabled", 0,(buty-=buth),100,buth, &psys->flag, 0, 0, 0, 0, "Sets particle system to be calculated and shown");
+
+ if(part->type == PART_FLUID) {
+ uiDefBut(block, LABEL, 0, "No settings for fluid particles", butx,buty,2*butw,buth, NULL, 0.0, 0, 0, 0, "");
+ return;
+ }
+
+ buty -= (buth+5);
if(part->type == PART_HAIR){
if(psys->flag & PSYS_EDITED)
- uiDefBut(block, BUT, B_PART_EDITABLE, "Free Edit", 105,buty,100,buth, NULL, 0.0, 0.0, 10, 0, "Free editing");
+ uiDefBut(block, BUT, B_PART_EDITABLE, "Free Edit", butx+butw+10,buty,butw,buth, NULL, 0.0, 0.0, 10, 0, "Free editing");
else
- uiDefBut(block, BUT, B_PART_EDITABLE, "Set Editable", 105,buty,100,buth, NULL, 0.0, 0.0, 10, 0, "Finalize hair to enable editing in particle mode");
+ uiDefBut(block, BUT, B_PART_EDITABLE, "Set Editable", butx+butw+10,buty,butw,buth, NULL, 0.0, 0.0, 10, 0, "Finalize hair to enable editing in particle mode");
}
- else {
- uiBlockBeginAlign(block);
- uiDefButBitI(block, TOG, PSYS_PROTECT_CACHE, B_PART_REDRAW, "Protect", 105,buty,50,buth, &psys->flag, 0.0, 0.0, 10, 0, "Protect the cache");
- but=uiDefBut(block, BUT, B_PART_RECALC, "Clear", 155,buty,50,buth, NULL, 0.0, 0.0, 10, 0, "Clear the cache");
- if((psys->flag & PSYS_PROTECT_CACHE)==0)
- uiButSetFunc(but, psys_clear_cache, ob, &partact);
+ md= (ModifierData*)psys_get_modifier(ob, psys);
+ if(md) {
+ uiBlockBeginAlign(block);
+ uiDefIconButBitI(block, TOG, eModifierMode_Render, B_PART_RECALC, ICON_SCENE, butx+butw-40, buty, 20, 20,&md->mode, 0, 0, 1, 0, "Enable particle system during rendering");
+ but= uiDefIconButBitI(block, TOG, eModifierMode_Realtime, B_PART_RECALC, VICON_VIEW3D, butx+butw-20, buty, 20, 20,&md->mode, 0, 0, 1, 0, "Enable particle system during interactive display");
uiBlockEndAlign(block);
}
- lock= (psys->flag & PSYS_EDITED || psys->flag & PSYS_PROTECT_CACHE);
+ if(psys->flag & PSYS_EDITED) {
+ lockmessage= "Hair is edited!";
+ lock= 1;
+ }
+ else if(psys->pointcache->flag & PTCACHE_BAKED) {
+ lockmessage= "Simulation frames are baked!";
+ lock= 1;
+ }
+
if(lock)
- uiSetButLock(1, "Hair is edited or cache is protected!");
+ uiSetButLock(1, lockmessage);
- uiDefButS(block, MENU, B_PARTTYPE, "Type%t|Hair%x2|Reactor%x1|Emitter%x0", 210,buty,100,buth, &part->type, 14.0, 0.0, 0, 0, "Type of particle system");
+ uiDefButS(block, MENU, B_PARTTYPE, "Type%t|Hair%x2|Reactor%x1|Emitter%x0", butx,buty,butw-45,buth, &part->type, 14.0, 0.0, 0, 0, "Type of particle system");
buty-=5;
uiDefBut(block, LABEL, 0, "Basic:", butx,(buty-=buth),butw,buth, NULL, 0.0, 0, 0, 0, "");
@@ -4711,7 +4973,7 @@ static void object_panel_particle_system(Object *ob)
if(lock) uiClearButLock();
uiDefButBitI(block, TOG, PART_TRAND, B_PART_DISTR, "Random", butx,(buty-=buth),butw/2,buth, &part->flag, 0, 0, 0, 0, "Emit in random order of elements");
- if(lock) uiSetButLock(1, "Hair is edited or cache is protected!");
+ if(lock) uiSetButLock(1, lockmessage);
if(part->type==PART_REACTOR)
uiDefButS(block, MENU, B_PART_DISTR, "Particle %x3|Volume %x2|Faces %x1|Verts %x0", butx+butw/2,buty,butw/2,buth, &part->from, 14.0, 0.0, 0, 0, "Where to emit particles from");
@@ -4721,7 +4983,7 @@ static void object_panel_particle_system(Object *ob)
if(ELEM(part->from,PART_FROM_FACE,PART_FROM_VOLUME)) {
if(lock) uiClearButLock();
uiDefButBitI(block, TOG, PART_EDISTR, B_PART_DISTR, "Even",butx,(buty-=buth),butw/2,buth, &part->flag, 0, 0, 0, 0, "Use even distribution from faces based on face areas or edge lengths");
- if(lock) uiSetButLock(1, "Hair is edited or cache is protected!");
+ if(lock) uiSetButLock(1, lockmessage);
uiDefButS(block, MENU, B_PART_DISTR, "Distribution %t|Grid%x2|Random%x1|Jittered%x0", butx+butw/2,buty,butw/2,buth, &part->distr, 14.0, 0.0, 0, 0, "How to distribute particles on selected element");
if(part->distr==PART_DISTR_JIT) {
uiDefButF(block, NUM, B_PART_DISTR, "Amount:", butx,(buty-=buth),butw,buth, &part->jitfac, 0, 2.0, 1, 1, "Amount of jitter applied to the sampling");
@@ -4783,9 +5045,9 @@ static void object_panel_fluidsim(Object *ob)
char *msg = NULL;
block= uiNewBlock(&curarea->uiblocks, "object_fluidsim", UI_EMBOSS, UI_HELV, curarea->win);
- if(uiNewPanel(curarea, block, "Fluid Simulation", "Physics", 1060, 0, 318, 204)==0) return;
+ if(uiNewPanel(curarea, block, "Fluid", "Physics", 1060, 0, 318, 204)==0) return;
- uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+ uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
if(ob->type==OB_MESH) {
if(((Mesh *)ob->data)->totvert == 0) {
@@ -4803,13 +5065,13 @@ static void object_panel_fluidsim(Object *ob)
}
uiBlockBeginAlign(block);
- uiDefButS(block, ROW, REDRAWBUTSOBJECT ,"Domain", 90, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_DOMAIN, 20.0, 1.0, "Bounding box of this object represents the computational domain of the fluid simulation.");
- uiDefButS(block, ROW, REDRAWBUTSOBJECT ,"Fluid", 160, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_FLUID, 20.0, 2.0, "Object represents a volume of fluid in the simulation.");
- uiDefButS(block, ROW, REDRAWBUTSOBJECT ,"Obstacle", 230, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_OBSTACLE,20.0, 3.0, "Object is a fixed obstacle.");
+ uiDefButS(block, ROW, B_FLUIDSIM_CHANGETYPE ,"Domain", 90, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_DOMAIN, 20.0, 1.0, "Bounding box of this object represents the computational domain of the fluid simulation.");
+ uiDefButS(block, ROW, B_FLUIDSIM_CHANGETYPE ,"Fluid", 160, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_FLUID, 20.0, 2.0, "Object represents a volume of fluid in the simulation.");
+ uiDefButS(block, ROW, B_FLUIDSIM_CHANGETYPE ,"Obstacle", 230, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_OBSTACLE,20.0, 3.0, "Object is a fixed obstacle.");
yline -= lineHeight;
- uiDefButS(block, ROW, REDRAWBUTSOBJECT ,"Inflow", 90, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_INFLOW, 20.0, 4.0, "Object adds fluid to the simulation.");
- uiDefButS(block, ROW, REDRAWBUTSOBJECT ,"Outflow", 160, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_OUTFLOW, 20.0, 5.0, "Object removes fluid from the simulation.");
+ uiDefButS(block, ROW, B_FLUIDSIM_CHANGETYPE ,"Inflow", 90, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_INFLOW, 20.0, 4.0, "Object adds fluid to the simulation.");
+ uiDefButS(block, ROW, B_FLUIDSIM_CHANGETYPE ,"Outflow", 160, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_OUTFLOW, 20.0, 5.0, "Object removes fluid from the simulation.");
uiDefButS(block, ROW, B_FLUIDSIM_MAKEPART ,"Particle", 230, yline, 70,objHeight, &fss->type, 15.0, OB_FLUIDSIM_PARTICLE,20.0, 3.0, "Object is made a particle system to display particles generated by a fluidsim domain object.");
uiBlockEndAlign(block);
yline -= lineHeight;
@@ -5079,10 +5341,10 @@ static void object_panel_fluidsim(Object *ob)
return;
} else {
- msg = "Object not enabled for fluid simulation...";
+ msg = "Object not enabled for fluid simulation.";
}
} else {
- msg = "Only Mesh Objects can participate.";
+ msg = "Only mesh objects can do fluid simulation.";
}
errMessage:
yline -= lineHeight + 5;
@@ -5100,7 +5362,7 @@ static void object_cloth__enabletoggle(void *ob_v, void *arg2)
if (!md) {
md = modifier_new(eModifierType_Cloth);
- BLI_addhead(&ob->modifiers, md);
+ BLI_addtail(&ob->modifiers, md);
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
allqueue(REDRAWBUTSEDIT, 0);
@@ -5119,7 +5381,7 @@ static void object_cloth__enabletoggle(void *ob_v, void *arg2)
BIF_undo_push("Del modifier");
- ob->softflag |= OB_SB_RESET;
+ //ob->softflag |= OB_SB_RESET;
allqueue(REDRAWBUTSEDIT, 0);
allqueue(REDRAWVIEW3D, 0);
allqueue(REDRAWIMAGE, 0);
@@ -5202,10 +5464,15 @@ static void object_panel_cloth(Object *ob)
uiBut *but=NULL;
static int val, val2;
ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
+ PointCache *cache;
+ ModifierData *md;
+ int libdata = 0;
block= uiNewBlock(&curarea->uiblocks, "object_cloth", UI_EMBOSS, UI_HELV, curarea->win);
if(uiNewPanel(curarea, block, "Cloth ", "Physics", 640, 0, 318, 204)==0) return;
- uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+
+ libdata= object_is_libdata(ob);
+ uiSetButLock(libdata, ERROR_LIBDATA_MESSAGE);
val = (clmd ? 1:0);
@@ -5217,6 +5484,14 @@ static void object_panel_cloth(Object *ob)
{
but = uiDefButI(block, TOG, REDRAWBUTSOBJECT, "Cloth", 10,200,130,20, &val, 0, 0, 0, 0, "Sets object to become cloth");
uiButSetFunc(but, object_cloth__enabletoggle, ob, NULL);
+
+ md = (ModifierData*)clmd;
+ if(md) {
+ uiBlockBeginAlign(block);
+ uiDefIconButBitI(block, TOG, eModifierMode_Render, B_BAKE_CACHE_CHANGE, ICON_SCENE, 145, 200, 20, 20,&md->mode, 0, 0, 1, 0, "Enable cloth during rendering");
+ but= uiDefIconButBitI(block, TOG, eModifierMode_Realtime, B_BAKE_CACHE_CHANGE, VICON_VIEW3D, 165, 200, 20, 20,&md->mode, 0, 0, 1, 0, "Enable cloth during interactive display");
+ uiBlockEndAlign(block);
+ }
}
uiDefBut(block, LABEL, 0, "",10,10,300,0, NULL, 0.0, 0, 0, 0, ""); /* tell UI we go to 10,10*/
@@ -5228,45 +5503,50 @@ static void object_panel_cloth(Object *ob)
char clmvg [] = "Vertex Groups%t|";
val2=0;
+ cache= clmd->point_cache;
/* GENERAL STUFF */
- uiClearButLock();
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_EDITMODE) uiSetButLock(1, "Please leave editmode.");
- else if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT) uiSetButLock(1, "Cache is protected");
+ if(!libdata) {
+ uiClearButLock();
+ if(cache->flag & PTCACHE_BAKE_EDIT_ACTIVE)
+ uiSetButLock(1, "Please leave editmode.");
+ else if(cache->flag & PTCACHE_BAKED)
+ uiSetButLock(1, "Simulation frames are baked");
+ }
uiDefBut(block, LABEL, 0, "Material Preset:", 10,170,150,20, NULL, 0.0, 0, 0, 0, "");
- but=uiDefButS(block, MENU, B_CLOTH_RENEW, "Silk %x1|Cotton %x2|Rubber %x3|Denim %x4|Leather %x5|Custom %x0",
+ but=uiDefButS(block, MENU, B_BAKE_CACHE_CHANGE, "Silk %x1|Cotton %x2|Rubber %x3|Denim %x4|Leather %x5|Custom %x0",
160,170,150,20, &clmd->sim_parms->presets, 0, 0, 0, 0, "");
uiButSetFunc(but, cloth_presets_material, ob, NULL);
uiBlockBeginAlign(block);
- but = uiDefButF(block, NUM, B_CLOTH_RENEW, "StructStiff:", 10,150,150,20, &clmd->sim_parms->structural, 1.0, 10000.0, 100, 0, "Overall stiffness of structure");
+ but = uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "StructStiff:", 10,150,150,20, &clmd->sim_parms->structural, 1.0, 10000.0, 100, 0, "Overall stiffness of structure");
uiButSetFunc(but, cloth_presets_custom_material, ob, NULL);
- but = uiDefButF(block, NUM, B_CLOTH_RENEW, "BendStiff:", 160,150,150,20, &clmd->sim_parms->bending, 0.0, 10000.0, 1000, 0, "Wrinkle coefficient (higher = less smaller but more big wrinkles)");
+ but = uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "BendStiff:", 160,150,150,20, &clmd->sim_parms->bending, 0.0, 10000.0, 1000, 0, "Wrinkle coefficient (higher = less smaller but more big wrinkles)");
uiButSetFunc(but, cloth_presets_custom_material, ob, NULL);
- but = uiDefButF(block, NUM, B_CLOTH_RENEW, "Spring Damp:", 10,130,150,20, &clmd->sim_parms->Cdis, 0.0, 50.0, 100, 0, "Damping of cloth velocity (higher = more smooth, less jiggling)");
+ but = uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Spring Damp:", 10,130,150,20, &clmd->sim_parms->Cdis, 0.0, 50.0, 100, 0, "Damping of cloth velocity (higher = more smooth, less jiggling)");
uiButSetFunc(but, cloth_presets_custom_material, ob, NULL);
- uiDefButF(block, NUM, B_CLOTH_RENEW, "Air Damp:", 160,130,150,20, &clmd->sim_parms->Cvi, 0.0, 10.0, 10, 0, "Air has normaly some thickness which slows falling things down");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Air Damp:", 160,130,150,20, &clmd->sim_parms->Cvi, 0.0, 10.0, 10, 0, "Air has normaly some thickness which slows falling things down");
- uiDefButI(block, NUM, B_CLOTH_RENEW, "Quality:", 10,110,150,20, &clmd->sim_parms->stepsPerFrame, 4.0, 80.0, 5, 0, "Quality of the simulation (higher=better=slower)");
+ uiDefButI(block, NUM, B_BAKE_CACHE_CHANGE, "Quality:", 10,110,150,20, &clmd->sim_parms->stepsPerFrame, 4.0, 80.0, 5, 0, "Quality of the simulation (higher=better=slower)");
- uiDefButF(block, NUM, B_CLOTH_RENEW, "Mass:", 160,110,150,20, &clmd->sim_parms->mass, 0.0, 10.0, 1000, 0, "Mass of cloth material.");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Mass:", 160,110,150,20, &clmd->sim_parms->mass, 0.0, 10.0, 1000, 0, "Mass of cloth material.");
uiDefBut(block, LABEL, 0, "Gravity:", 10,90,60,20, NULL, 0.0, 0, 0, 0, "");
- uiDefButF(block, NUM, B_CLOTH_RENEW, "X:", 70,90,80,20, &clmd->sim_parms->gravity[0], -100.0, 100.0, 10, 0, "Apply gravitation to point movement");
- uiDefButF(block, NUM, B_CLOTH_RENEW, "Y:", 150,90,80,20, &clmd->sim_parms->gravity[1], -100.0, 100.0, 10, 0, "Apply gravitation to point movement");
- uiDefButF(block, NUM, B_CLOTH_RENEW, "Z:", 230,90,80,20, &clmd->sim_parms->gravity[2], -100.0, 100.0, 10, 0, "Apply gravitation to point movement");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "X:", 70,90,80,20, &clmd->sim_parms->gravity[0], -100.0, 100.0, 10, 0, "Apply gravitation to point movement");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Y:", 150,90,80,20, &clmd->sim_parms->gravity[1], -100.0, 100.0, 10, 0, "Apply gravitation to point movement");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Z:", 230,90,80,20, &clmd->sim_parms->gravity[2], -100.0, 100.0, 10, 0, "Apply gravitation to point movement");
uiBlockEndAlign(block);
/* GOAL STUFF */
uiBlockBeginAlign(block);
- uiDefButBitI(block, TOG, CLOTH_SIMSETTINGS_FLAG_GOAL, B_CLOTH_RENEW, "Pinning of cloth", 10,60,150,20, &clmd->sim_parms->flags, 0, 0, 0, 0, "Define forces for vertices to stick to animated position");
+ uiDefButBitI(block, TOG, CLOTH_SIMSETTINGS_FLAG_GOAL, B_BAKE_CACHE_CHANGE, "Pinning of cloth", 10,60,150,20, &clmd->sim_parms->flags, 0, 0, 0, 0, "Define forces for vertices to stick to animated position");
if ((clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL) && (BLI_countlist (&ob->defbase) > 0))
{
@@ -5295,18 +5575,18 @@ static void object_panel_cloth(Object *ob)
sprintf (clvg2, "%s%s", clmvg, clvg1);
- uiDefButS(block, MENU, B_CLOTH_RENEW, clvg2, 160,60,150,20, &clmd->sim_parms->vgroup_mass, 0, defCount, 0, 0, "Browses available vertex groups");
+ uiDefButS(block, MENU, B_BAKE_CACHE_CHANGE, clvg2, 160,60,150,20, &clmd->sim_parms->vgroup_mass, 0, defCount, 0, 0, "Browses available vertex groups");
MEM_freeN (clvg1);
MEM_freeN (clvg2);
}
- uiDefButF(block, NUM, B_CLOTH_RENEW, "Pin Stiff:", 10,40,150,20, &clmd->sim_parms->goalspring, 0.0, 50.0, 50, 0, "Pin (vertex target position) spring stiffness");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Pin Stiff:", 10,40,150,20, &clmd->sim_parms->goalspring, 0.0, 50.0, 50, 0, "Pin (vertex target position) spring stiffness");
uiDefBut(block, LABEL, 0, "",160,40,150,20, NULL, 0.0, 0, 0, 0, "");
- // uiDefButI(block, NUM, B_CLOTH_RENEW, "Pin Damp:", 160,50,150,20, &clmd->sim_parms->goalfrict, 1.0, 100.0, 10, 0, "Pined damping (higher = doesn't oszilate so much)");
+ // uiDefButI(block, NUM, B_BAKE_CACHE_CHANGE, "Pin Damp:", 160,50,150,20, &clmd->sim_parms->goalfrict, 1.0, 100.0, 10, 0, "Pined damping (higher = doesn't oszilate so much)");
/*
// nobody is changing these ones anyway
- uiDefButF(block, NUM, B_CLOTH_RENEW, "G Min:", 10,30,150,20, &clmd->sim_parms->mingoal, 0.0, 1.0, 10, 0, "Goal minimum, vertex group weights are scaled to match this range");
- uiDefButF(block, NUM, B_CLOTH_RENEW, "G Max:", 160,30,150,20, &clmd->sim_parms->maxgoal, 0.0, 1.0, 10, 0, "Goal maximum, vertex group weights are scaled to match this range");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "G Min:", 10,30,150,20, &clmd->sim_parms->mingoal, 0.0, 1.0, 10, 0, "Goal minimum, vertex group weights are scaled to match this range");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "G Max:", 160,30,150,20, &clmd->sim_parms->maxgoal, 0.0, 1.0, 10, 0, "Goal maximum, vertex group weights are scaled to match this range");
*/
}
else if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL)
@@ -5336,78 +5616,42 @@ static void object_panel_cloth(Object *ob)
uiBlockEndAlign(block);
}
-static void object_cloth__protecttoggle(void *ob_v, void *arg2)
-{
- Object *ob = ob_v;
- int cageIndex, stack_index;
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
-
- // automatically enable modifier in editmode when we havee a protected cache
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT)
- {
- cageIndex = modifiers_getCageIndex(ob_v, NULL );
- stack_index = modifiers_indexInObject(ob_v, (ModifierData *)clmd);
- if( stack_index >= cageIndex )
- ((ModifierData *)clmd)->mode ^= eModifierMode_OnCage;
- }
- else
- {
- ((ModifierData *)clmd)->mode ^= eModifierMode_OnCage;
- }
-
-}
-
-
static void object_panel_cloth_II(Object *ob)
{
uiBlock *block;
- uiBut *but = NULL;
ClothModifierData *clmd = NULL;
+ PointCache *cache;
+ static PTCacheID staticpid;
+ int libdata;
block= uiNewBlock(&curarea->uiblocks, "object_cloth_II", UI_EMBOSS, UI_HELV, curarea->win);
uiNewPanelTabbed("Cloth ", "Physics");
- if(uiNewPanel(curarea, block, "Cloth Cache/Collisions", "Physics", 651, 0, 318, 204)==0) return;
+ if(uiNewPanel(curarea, block, "Cloth Collision", "Physics", 651, 0, 318, 204)==0) return;
- uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+ libdata= object_is_libdata(ob);
+ uiSetButLock(libdata, ERROR_LIBDATA_MESSAGE);
clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
if(clmd)
- {
- uiClearButLock();
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_EDITMODE) uiSetButLock(1, "Please leave editmode.");
- else if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT) uiSetButLock(1, "Cache is protected");
-
- uiDefButI(block, NUM, B_CLOTH_RENEW, "First Frame:",10,160,150,20, &clmd->sim_parms->firstframe, 0, MAXFRAME, 1, 0, "Frame on which the simulation starts");
- uiDefButI(block, NUM, B_CLOTH_RENEW, "Last Frame:",160,160,150,20, &clmd->sim_parms->lastframe, 0, MAXFRAME, 1, 0, "Frame on which the simulation stops");
-
- uiDefBut(block, LABEL, 0, "",10,140,300,20, NULL, 0.0, 0, 0, 0, "");
-
- if(!(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_EDITMODE))
- {
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT)
- uiClearButLock();
- }
-
- if (!G.relbase_valid)
- {
- uiDefBut(block, LABEL, 0, "Cache deactivated until file is saved.", 10,120,300,20, NULL, 0.0, 0, 0, 0, "");
- uiDefBut(block, LABEL, 0, " ", 10,100,300,40, NULL, 0.0, 0, 0, 0, "");
- }
- else
- {
- but = uiDefButBitI(block, TOG, CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT, REDRAWVIEW3D, "Protect Cache & Enable Cache Editing", 10,120,300,20, &clmd->sim_parms->flags, 0, 0, 0, 0, "Protect cache from automatic freeing when scene changed. This also enabled the cache beeing edited in editmode.");
- uiButSetFunc(but, object_cloth__protecttoggle, ob, NULL);
- uiDefBut(block, LABEL, 0, "Clear cache:", 10,100,90,20, NULL, 0.0, 0, 0, 0, "");
- uiDefBut(block, BUT, B_CLOTH_CLEARCACHEALL, "All", 100, 100,100,20, NULL, 0.0, 0.0, 10, 0, "Free ALL cloth cache without preroll");
- uiDefBut(block, BUT, B_CLOTH_CLEARCACHEFRAME, "From next frame", 200, 100,110,20, NULL, 0.0, 0.0, 10, 0, "Free cloth cache starting from next frame");
- uiDefBut(block, LABEL, 0, " ", 10,80,300,20, NULL, 0.0, 0, 0, 0, "");
+ {
+ BKE_ptcache_id_from_cloth(&staticpid, ob, clmd);
+ cache= staticpid.cache;
+
+ if(!libdata) {
+ uiClearButLock();
+ if(cache->flag & PTCACHE_BAKE_EDIT_ACTIVE)
+ uiSetButLock(1, "Please leave editmode.");
}
-
- if(!(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_EDITMODE))
- {
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT)
- uiSetButLock(1, "Cache is protected");
+
+ object_physics_bake_buttons(block, &staticpid, 135, libdata);
+
+ uiDefBut(block, LABEL, 0, "",10,140,300,20, NULL, 0.0, 0, 0, 0, "");
+
+ if(!libdata) {
+ if(!(cache->flag & PTCACHE_BAKE_EDIT_ACTIVE))
+ if(cache->flag & PTCACHE_BAKED)
+ uiSetButLock(1, "Simulation frames are baked");
}
/*
@@ -5418,19 +5662,19 @@ static void object_panel_cloth_II(Object *ob)
uiDefBut(block, LABEL, 0, " ", 10,80,145,20, NULL, 0.0, 0, 0, 0, "");
*/
#if WITH_BULLET == 1
- uiDefButBitI(block, TOG, CLOTH_COLLSETTINGS_FLAG_ENABLED, B_CLOTH_RENEW, "Enable collisions", 10,60,150,20, &clmd->coll_parms->flags, 0, 0, 0, 0, "Enable collisions with this object");
+ uiDefButBitI(block, TOG, CLOTH_COLLSETTINGS_FLAG_ENABLED, B_BAKE_CACHE_CHANGE, "Enable collisions", 10,60,150,20, &clmd->coll_parms->flags, 0, 0, 0, 0, "Enable collisions with this object");
if (clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_ENABLED)
{
- uiDefButF(block, NUM, B_CLOTH_RENEW, "Min Distance:", 160,60,150,20, &clmd->coll_parms->epsilon, 0.001f, 1.0, 0.01f, 0, "Minimum distance between collision objects before collision response takes in, can be changed for each frame");
- uiDefButS(block, NUM, B_CLOTH_RENEW, "Collision Quality:", 10,40,150,20, &clmd->coll_parms->loop_count, 1.0, 20.0, 1.0, 0, "How many collision iterations should be done. (higher = better = slower)");
- uiDefButF(block, NUM, B_CLOTH_RENEW, "Friction:", 160,40,150,20, &clmd->coll_parms->friction, 0.0, 80.0, 1.0, 0, "Friction force if a collision happened (0=movement not changed, 100=no movement left)");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Min Distance:", 160,60,150,20, &clmd->coll_parms->epsilon, 0.001f, 1.0, 0.01f, 0, "Minimum distance between collision objects before collision response takes in, can be changed for each frame");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "Collision Quality:", 10,40,150,20, &clmd->coll_parms->loop_count, 1.0, 20.0, 1.0, 0, "How many collision iterations should be done. (higher = better = slower)");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Friction:", 160,40,150,20, &clmd->coll_parms->friction, 0.0, 80.0, 1.0, 0, "Friction force if a collision happened (0=movement not changed, 100=no movement left)");
- uiDefButBitI(block, TOG, CLOTH_COLLSETTINGS_FLAG_SELF, B_CLOTH_RENEW, "Enable selfcollisions", 10,20,150,20, &clmd->coll_parms->flags, 0, 0, 0, 0, "Enable selfcollisions with this object");
+ uiDefButBitI(block, TOG, CLOTH_COLLSETTINGS_FLAG_SELF, B_BAKE_CACHE_CHANGE, "Enable selfcollisions", 10,20,150,20, &clmd->coll_parms->flags, 0, 0, 0, 0, "Enable selfcollisions with this object");
if (clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_SELF)
{
- uiDefButF(block, NUM, B_CLOTH_RENEW, "Min Distance:", 160,20,150,20, &clmd->coll_parms->selfepsilon, 0.5f, 1.0, 0.01f, 0, "0.5 means no distance at all, 1.0 is maximum distance");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "Min Distance:", 160,20,150,20, &clmd->coll_parms->selfepsilon, 0.5f, 1.0, 0.01f, 0, "0.5 means no distance at all, 1.0 is maximum distance");
// self_loop_count
- uiDefButS(block, NUM, B_CLOTH_RENEW, "Selfcoll Quality:", 10,0,150,20, &clmd->coll_parms->self_loop_count, 1.0, 10.0, 1.0, 0, "How many selfcollision iterations should be done. (higher = better = slower), can be changed for each frame");
+ uiDefButS(block, NUM, B_BAKE_CACHE_CHANGE, "Selfcoll Quality:", 10,0,150,20, &clmd->coll_parms->self_loop_count, 1.0, 10.0, 1.0, 0, "How many selfcollision iterations should be done. (higher = better = slower), can be changed for each frame");
}
else
uiDefBut(block, LABEL, 0, "",160,20,150,20, NULL, 0.0, 0, 0, 0, "");
@@ -5450,12 +5694,15 @@ static void object_panel_cloth_III(Object *ob)
{
uiBlock *block;
ClothModifierData *clmd = NULL;
+ PointCache *cache;
+ int libdata;
block= uiNewBlock(&curarea->uiblocks, "object_cloth_III", UI_EMBOSS, UI_HELV, curarea->win);
uiNewPanelTabbed("Cloth ", "Physics");
if(uiNewPanel(curarea, block, "Cloth Advanced", "Physics", 651, 0, 318, 204)==0) return;
- uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
+ libdata= object_is_libdata(ob);
+ uiSetButLock(libdata, ERROR_LIBDATA_MESSAGE);
clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
@@ -5465,23 +5712,18 @@ static void object_panel_cloth_III(Object *ob)
char *clvg1, *clvg2;
char clmvg [] = "Vertex Groups%t|None%x0|";
char clmvg2 [] = "Vertex Groups%t|None%x0|";
+
+ cache= clmd->point_cache;
- uiClearButLock();
- if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_EDITMODE) uiSetButLock(1, "Please leave editmode.");
- else if(clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT) uiSetButLock(1, "Cache is protected");
-
- uiDefButBitI(block, TOG, CLOTH_SIMSETTINGS_FLAG_AUTOPROTECT, REDRAWBUTSOBJECT, "Autoprotect cache",10,160,150,20, &clmd->sim_parms->flags, 0, 0, 0, 0, "Enables automatic toggling of the 'Protect cache' button from the 2nd panel.");
-
- if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_AUTOPROTECT)
- {
- uiDefButI(block, NUM, B_DIFF, "From frame:",160,160,150,20, &clmd->sim_parms->autoprotect, 0.0, MAXFRAME + 1, 1, 0, "Frame on which the 'Protect Cache' button (2nd panel) is toggled automatically (To prevent accidently cleaning it).");
- }
- else
- {
- uiDefBut(block, LABEL, 0, " ", 160,160,150,20, NULL, 0.0, 0, 0, 0, "");
+ if(!libdata) {
+ uiClearButLock();
+ if(cache->flag & PTCACHE_BAKE_EDIT_ACTIVE)
+ uiSetButLock(1, "Please leave editmode.");
+ else if(cache->flag & PTCACHE_BAKED)
+ uiSetButLock(1, "Simulation frames are baked");
}
-
- uiDefButBitI(block, TOG, CLOTH_SIMSETTINGS_FLAG_SCALING, B_CLOTH_RENEW, "Enable stiffness scaling",10,130,300,20, &clmd->sim_parms->flags, 0, 0, 0, 0, "If enabled, stiffness can be scaled along a weight painted vertex group.");
+
+ uiDefButBitI(block, TOG, CLOTH_SIMSETTINGS_FLAG_SCALING, B_BAKE_CACHE_CHANGE, "Enable stiffness scaling",10,130,300,20, &clmd->sim_parms->flags, 0, 0, 0, 0, "If enabled, stiffness can be scaled along a weight painted vertex group.");
if ((clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_SCALING)&& (BLI_countlist (&ob->defbase) > 0))
{
@@ -5508,7 +5750,7 @@ static void object_panel_cloth_III(Object *ob)
sprintf (clvg2, "%s%s", clmvg, clvg1);
- uiDefButS(block, MENU, B_CLOTH_RENEW, clvg2, 10,90,150,20, &clmd->sim_parms->vgroup_struct, 0, defCount, 0, 0, "Browses available vertex groups");
+ uiDefButS(block, MENU, B_BAKE_CACHE_CHANGE, clvg2, 10,90,150,20, &clmd->sim_parms->vgroup_struct, 0, defCount, 0, 0, "Browses available vertex groups");
MEM_freeN (clvg1);
MEM_freeN (clvg2);
@@ -5532,19 +5774,19 @@ static void object_panel_cloth_III(Object *ob)
sprintf (clvg2, "%s%s", clmvg2, clvg1);
- uiDefButS(block, MENU, B_CLOTH_RENEW, clvg2, 160,90,150,20, &clmd->sim_parms->vgroup_bend, 0, defCount, 0, 0, "Browses available vertex groups");
+ uiDefButS(block, MENU, B_BAKE_CACHE_CHANGE, clvg2, 160,90,150,20, &clmd->sim_parms->vgroup_bend, 0, defCount, 0, 0, "Browses available vertex groups");
MEM_freeN (clvg1);
MEM_freeN (clvg2);
- uiDefButF(block, NUM, B_CLOTH_RENEW, "StructStiff Max:",10,70,150,20, &clmd->sim_parms->max_struct, clmd->sim_parms->structural, 10000.0, 0.01f, 0, "Maximum structural stiffness value");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "StructStiff Max:",10,70,150,20, &clmd->sim_parms->max_struct, clmd->sim_parms->structural, 10000.0, 0.01f, 0, "Maximum structural stiffness value");
- uiDefButF(block, NUM, B_CLOTH_RENEW, "BendStiff Max:",160,70,150,20, &clmd->sim_parms->max_bend, clmd->sim_parms->bending, 10000.0, 0.01f, 0, "Maximum bending stiffness value");
+ uiDefButF(block, NUM, B_BAKE_CACHE_CHANGE, "BendStiff Max:",160,70,150,20, &clmd->sim_parms->max_bend, clmd->sim_parms->bending, 10000.0, 0.01f, 0, "Maximum bending stiffness value");
}
else if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_SCALING)
{
uiDefBut(block, LABEL, 0, " ", 10,110,300,20, NULL, 0.0, 0, 0, 0, "");
- uiDefBut(block, LABEL, 0, "No vertex group for pinning available.", 10,90,300,20, NULL, 0.0, 0, 0, 0, "");
+ uiDefBut(block, LABEL, 0, "No vertex group for stiffness scaling available.", 10,90,300,20, NULL, 0.0, 0, 0, 0, "");
}
@@ -5578,9 +5820,9 @@ void physics_panels()
/* check context here */
ob= OBACT;
if(ob) {
- if(ob->type==OB_MESH)
- object_panel_deflection(ob);
object_panel_fields(ob);
+ if(ob->type==OB_MESH)
+ object_panel_collision(ob);
object_softbodies(ob);
object_softbodies_collision(ob);
object_softbodies_solver(ob);
@@ -5602,7 +5844,8 @@ void particle_panels()
psys=psys_get_current(ob);
- if(psys){
+ if(psys ){
+ object_panel_particle_bake(ob);
object_panel_particle_physics(ob);
object_panel_particle_visual(ob);
object_panel_particle_simplification(ob);
diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c
index 40ff0d5cff6..a955f7a89e4 100644
--- a/source/blender/src/buttons_scene.c
+++ b/source/blender/src/buttons_scene.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <time.h>
@@ -1798,7 +1795,7 @@ static char* ffmpeg_format_pup(void)
}
return string;
#endif
- strcpy(formatstring, "FFMpeg format: %%t|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d");
+ strcpy(formatstring, "FFMpeg format: %%t|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d");
sprintf(string, formatstring,
"MPEG-1", FFMPEG_MPEG1,
"MPEG-2", FFMPEG_MPEG2,
@@ -1807,7 +1804,8 @@ static char* ffmpeg_format_pup(void)
"Quicktime", FFMPEG_MOV,
"DV", FFMPEG_DV,
"H264", FFMPEG_H264,
- "XVid", FFMPEG_XVID);
+ "XVid", FFMPEG_XVID,
+ "FLV", FFMPEG_FLV);
return string;
}
@@ -1830,7 +1828,7 @@ static char* ffmpeg_preset_pup(void)
static char* ffmpeg_codec_pup(void) {
static char string[2048];
char formatstring[2048];
- strcpy(formatstring, "FFMpeg format: %%t|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d");
+ strcpy(formatstring, "FFMpeg format: %%t|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d");
sprintf(string, formatstring,
"MPEG1", CODEC_ID_MPEG1VIDEO,
"MPEG2", CODEC_ID_MPEG2VIDEO,
@@ -1838,7 +1836,8 @@ static char* ffmpeg_codec_pup(void) {
"HuffYUV", CODEC_ID_HUFFYUV,
"DV", CODEC_ID_DVVIDEO,
"H264", CODEC_ID_H264,
- "XVid", CODEC_ID_XVID);
+ "XVid", CODEC_ID_XVID,
+ "FlashVideo1", CODEC_ID_FLV1 );
return string;
}
@@ -1998,17 +1997,19 @@ static void render_panel_output(void)
if(uiNewPanel(curarea, block, "Output", "Render", 0, 0, 318, 204)==0) return;
uiBlockBeginAlign(block);
- uiDefIconBut(block, BUT, B_FS_PIC, ICON_FILESEL, 10, 190, 20, 20, 0, 0, 0, 0, 0, "Open Fileselect to get Pics dir/name");
- uiDefBut(block, TEX,0,"", 31, 190, 279, 20,G.scene->r.pic, 0.0,79.0, 0, 0, "Directory/name to save rendered Pics to");
- uiDefIconBut(block, BUT,B_FS_BACKBUF, ICON_FILESEL, 10, 168, 20, 20, 0, 0, 0, 0, 0, "Open Fileselect to get Backbuf image");
- uiDefBut(block, TEX,0,"", 31, 168, 279, 20,G.scene->r.backbuf, 0.0,79.0, 0, 0, "Image to use as background for rendering");
+ uiDefIconBut(block, BUT, B_FS_PIC, ICON_FILESEL, 10, 190, 20, 20, 0, 0, 0, 0, 0, "Select the directory/name for saving animations");
+ uiDefBut(block, TEX,0,"", 31, 190, 279, 20,G.scene->r.pic, 0.0,79.0, 0, 0, "Directory/name to save animations, # characters defines the position and length of frame numbers");
+ uiDefIconBut(block, BUT,B_FS_BACKBUF, ICON_FILESEL, 10, 168, 20, 20, 0, 0, 0, 0, 0, "Select the directory/name for a Backbuf image");
+ uiDefBut(block, TEX,0,"", 31, 168, 259, 20,G.scene->r.backbuf, 0.0,79.0, 0, 0, "Image to use as background for rendering");
+ uiDefIconButBitS(block, ICONTOG, R_BACKBUF, B_NOP, ICON_CHECKBOX_HLT-1, 290, 168, 20, 20, &G.scene->r.bufflag, 0.0, 0.0, 0, 0, "Enable/Disable use of Backbuf image");
uiBlockEndAlign(block);
+ uiDefButBitI(block, TOG, R_EXTENSION, B_NOP, "Extensions", 10, 142, 100, 20, &G.scene->r.scemode, 0.0, 0.0, 0, 0, "Adds filetype extensions to the filename when rendering animations");
+
uiBlockBeginAlign(block);
- uiDefButBitI(block, TOG, R_TOUCH, B_NOP, "Touch", 10, 142, 50, 20, &G.scene->r.mode, 0.0, 0.0, 0, 0, "Create an empty file before rendering each frame, remove if cancelled (and empty)");
- uiDefButBitI(block, TOG, R_NO_OVERWRITE, B_NOP, "No Overwrite", 60, 142, 90, 20, &G.scene->r.mode, 0.0, 0.0, 0, 0, "Skip rendering frames when the file exists (image output only)");
+ uiDefButBitI(block, TOG, R_TOUCH, B_NOP, "Touch", 170, 142, 50, 20, &G.scene->r.mode, 0.0, 0.0, 0, 0, "Create an empty file before rendering each frame, remove if cancelled (and empty)");
+ uiDefButBitI(block, TOG, R_NO_OVERWRITE, B_NOP, "No Overwrite", 220, 142, 90, 20, &G.scene->r.mode, 0.0, 0.0, 0, 0, "Skip rendering frames when the file exists (image output only)");
uiBlockEndAlign(block);
- uiDefButBitS(block, TOG, R_BACKBUF, B_NOP,"Backbuf", 160, 142, 80, 20, &G.scene->r.bufflag, 0, 0, 0, 0, "Enable/Disable use of Backbuf image");
/* SET BUTTON */
uiBlockBeginAlign(block);
@@ -2023,6 +2024,8 @@ static void render_panel_output(void)
uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, B_NOP, "", 31, 114, 100, 20, &(G.scene->set), "Name of the Set");
uiClearButLock();
uiDefIconBut(block, BUT, B_CLEARSET, ICON_X, 132, 114, 20, 20, 0, 0, 0, 0, 0, "Remove Set link");
+ } else {
+ uiDefBut(block, LABEL, 0, "No Set Scene", 31, 114, 200, 20, 0, 0, 0, 0, 0, "");
}
uiBlockEndAlign(block);
@@ -2052,8 +2055,6 @@ static void render_panel_output(void)
uiDefButS(block, MENU, B_REDR, "Render Display %t|Render Window %x1|Image Editor %x0|Full Screen %x2",
72, 10, 120, 19, &G.displaymode, 0.0, (float)R_DISPLAYWIN, 0, 0, "Sets render output display");
-
- uiDefButBitI(block, TOG, R_EXTENSION, B_NOP, "Extensions", 205, 10, 105, 19, &G.scene->r.scemode, 0.0, 0.0, 0, 0, "Adds filetype extensions to the filename when rendering animations");
/* Dither control */
uiDefButF(block, NUM,B_DIFF, "Dither:", 10,89,100,19, &G.scene->r.dither_intensity, 0.0, 2.0, 0, 0, "The amount of dithering noise present in the output image (0.0 = no dithering)");
@@ -2065,8 +2066,8 @@ static void render_panel_output(void)
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
- uiDefButBitI(block, TOG, R_NO_TEX, B_NOP, "Disable Tex", 115, 63, 70, 20, &G.scene->r.scemode, 0.0, 0.0, 0, 0, "Disables Textures for render");
- uiDefButBitI(block, TOG, R_FREE_IMAGE, B_NOP, "Free Tex Images", 205, 63, 100, 20, &G.scene->r.scemode, 0.0, 0.0, 0, 0, "Frees all Images used by Textures after each render");
+ uiDefButBitI(block, TOG, R_NO_TEX, B_NOP, "Disable Tex", 115, 63, 75, 20, &G.scene->r.scemode, 0.0, 0.0, 0, 0, "Disables Textures for render");
+ uiDefButBitI(block, TOG, R_FREE_IMAGE, B_NOP, "Free Tex Images", 210, 63, 100, 20, &G.scene->r.scemode, 0.0, 0.0, 0, 0, "Frees all Images used by Textures after each render");
uiBlockEndAlign(block);
}
@@ -2191,8 +2192,7 @@ static void render_panel_render(void)
uiDefButS(block, ROW,800,"Key", 456,13,35,20,&G.scene->r.alphamode,3.0,2.0, 0, 0, "Alpha and color values remain unchanged");
uiBlockEndAlign(block);
- if(G.scene->r.mode & R_RAYTRACE)
- uiDefButS(block, MENU, B_DIFF,"Octree resolution %t|64 %x64|128 %x128|256 %x256|512 %x512", 496,13,64,20,&G.scene->r.ocres,0.0,0.0, 0, 0, "Octree resolution for ray tracing");
+ uiDefButS(block, MENU, B_DIFF,"Octree resolution %t|64 %x64|128 %x128|256 %x256|512 %x512", 496,13,64,20,&G.scene->r.ocres,0.0,0.0, 0, 0, "Octree resolution for ray tracing and baking, Use higher values for complex scenes");
uiBlockBeginAlign(block);
uiDefButBitI(block, TOG, R_SHADOW, B_REDR,"Shadow", 565,172,52,29, &G.scene->r.mode, 0, 0, 0, 0, "Enable shadow calculation");
@@ -2497,8 +2497,18 @@ static void render_panel_format(void)
uiBlockBeginAlign(block);
uiDefButS(block, NUM,REDRAWVIEWCAM,"SizeX:", 892 ,136,112,27, &G.scene->r.xsch, 4.0, 10000.0, 0, 0, "The image width in pixels");
uiDefButS(block, NUM,REDRAWVIEWCAM,"SizeY:", 1007,136,112,27, &G.scene->r.ysch, 4.0,10000.0, 0, 0, "The image height in scanlines");
- uiDefButS(block, NUM,REDRAWVIEWCAM,"AspX:", 892 ,114,112,20, &G.scene->r.xasp, 1.0,200.0, 0, 0, "The horizontal aspect ratio");
- uiDefButS(block, NUM,REDRAWVIEWCAM,"AspY:", 1007,114,112,20, &G.scene->r.yasp, 1.0,200.0, 0, 0, "The vertical aspect ratio");
+
+ uiDefButF(block, NUM, REDRAWVIEWCAM, "AspX:",
+ 892 ,114,112,20,
+ &G.scene->r.xasp,
+ 1, 200, 100, 2,
+ "Horizontal Aspect Ratio");
+ uiDefButF(block, NUM, REDRAWVIEWCAM, "AspY:",
+ 1007,114,112,20,
+ &G.scene->r.yasp,
+ 1, 200, 100, 2,
+ "Vertical Aspect Ratio");
+
uiBlockEndAlign(block);
yofs = 54;
@@ -2701,7 +2711,7 @@ static void render_panel_yafrayGlobal()
static void layer_copy_func(void *lay_v, void *lay_p)
{
unsigned int *lay= lay_p;
- int laybit= (int)lay_v;
+ int laybit= GET_INT_FROM_POINTER(lay_v);
if(G.qual & (LR_SHIFTKEY|LR_CTRLKEY)) {
if(*lay==0) *lay= 1<<laybit;
diff --git a/source/blender/src/buttons_script.c b/source/blender/src/buttons_script.c
index dd21dc75af1..4ae4eab8825 100644
--- a/source/blender/src/buttons_script.c
+++ b/source/blender/src/buttons_script.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <time.h>
diff --git a/source/blender/src/buttons_shading.c b/source/blender/src/buttons_shading.c
index f107102c7fc..4500fc4a08c 100644
--- a/source/blender/src/buttons_shading.c
+++ b/source/blender/src/buttons_shading.c
@@ -1519,6 +1519,7 @@ static void texture_panel_colors(Tex *tex)
uiNewPanelTabbed("Texture", "Texture");
if(uiNewPanel(curarea, block, "Colors", "Texture", 1280, 0, 318, 204)==0) return;
+ uiSetButLock(tex->id.lib!=NULL, ERROR_LIBDATA_MESSAGE);
/* COLORBAND */
uiBlockBeginAlign(block);
@@ -1588,8 +1589,10 @@ static void texture_panel_texture(MTex *mtex, Material *ma, World *wrld, Lamp *l
}
uiBlockSetCol(block, TH_BUT_NEUTRAL);
+ uiClearButLock();
+
/* From button: removed */
-
+
/* CHANNELS */
if(node==NULL) {
uiBlockBeginAlign(block);
@@ -1671,11 +1674,11 @@ static void texture_panel_preview(MTex *mtex, int preview)
uiDefButC(block, ROW, B_TEXREDR_PRV, "Brush", 200,100,80,25, &G.buts->texfrom, 3.0, 3.0, 0, 0, "Displays the textures of the selected brush");
uiBlockEndAlign(block);
- if(mtex && mtex->tex)
- uiDefButBitS(block, TOG, TEX_PRV_ALPHA, B_TEXREDR_PRV, "Alpha", 200,60,80,20, &mtex->tex->flag, 0, 0, 0, 0, "Show alpha in preview");
-
- uiDefBut(block, BUT, B_DEFTEXVAR, "Default Vars",200,10,80,20, 0, 0, 0, 0, 0, "Sets all values to defaults");
-
+ if(mtex && mtex->tex) {
+ uiDefButBitS(block, TOG, TEX_PRV_ALPHA, B_TEXREDR_PRV, "Alpha", 200,60,80,20, &mtex->tex->flag, 0, 0, 0, 0, "Show alpha in preview");
+ uiSetButLock(mtex->tex->id.lib!=NULL, ERROR_LIBDATA_MESSAGE);
+ uiDefBut(block, BUT, B_DEFTEXVAR, "Default Vars",200,10,80,20, 0, 0, 0, 0, 0, "Sets all values to defaults");
+ }
}
@@ -2333,9 +2336,11 @@ static void world_panel_preview(World *wrld)
uiDefBut(block, LABEL, 0, " ", 20,20,10,10, 0, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, WO_SKYREAL, B_WORLDPRV,"Real", 200,175,80,25, &wrld->skytype, 0, 0, 0, 0, "Renders background with a real horizon");
- uiDefButBitS(block, TOG, WO_SKYBLEND, B_WORLDPRV,"Blend",200,150,80,25, &wrld->skytype, 0, 0, 0, 0, "Renders background with natural progression from horizon to zenith");
- uiDefButBitS(block, TOG,WO_SKYPAPER, B_WORLDPRV,"Paper",200,125,80,25, &wrld->skytype, 0, 0, 0, 0, "Flattens blend or texture coordinates");
+ uiDefButBitS(block, TOG, WO_SKYBLEND, B_WORLDPRV,"Blend", 220,175,100,25, &wrld->skytype, 0, 0, 0, 0, "Renders background with natural progression from horizon to zenith");
+ uiDefButBitS(block, TOG,WO_SKYPAPER, B_WORLDPRV,"Paper", 220,150,100,25, &wrld->skytype, 0, 0, 0, 0, "Flattens blend or texture coordinates");
+ if (wrld->skytype & WO_SKYBLEND) {
+ uiDefButBitS(block, TOG, WO_SKYREAL, B_WORLDPRV,"Real", 220,125,100,25, &wrld->skytype, 0, 0, 0, 0, "Renders background with a real horizon");
+ }
uiBlockEndAlign(block);
}
@@ -3079,6 +3084,11 @@ void do_matbuts(unsigned short event)
break;
case B_MTEXMOVEUP:
if(ma && (int)ma->texact > 0) {
+ int mtexuse = ma->septex & (1<<((int)ma->texact));
+ ma->septex &= ~(1<<((int)ma->texact));
+ ma->septex |= (ma->septex & (1<<((int)ma->texact-1))) << 1;
+ ma->septex &= ~(1<<((int)ma->texact-1));
+ ma->septex |= mtexuse >> 1;
mtexswap = ma->mtex[(int)ma->texact];
ma->mtex[(int)ma->texact] = ma->mtex[((int)ma->texact)-1];
ma->mtex[((int)ma->texact)-1] = mtexswap;
@@ -3088,6 +3098,11 @@ void do_matbuts(unsigned short event)
break;
case B_MTEXMOVEDOWN:
if(ma && (int)ma->texact < MAX_MTEX-1) {
+ int mtexuse = ma->septex & (1<<((int)ma->texact));
+ ma->septex &= ~(1<<((int)ma->texact));
+ ma->septex |= (ma->septex & (1<<((int)ma->texact+1))) >> 1;
+ ma->septex &= ~(1<<((int)ma->texact+1));
+ ma->septex |= mtexuse << 1;
mtexswap = ma->mtex[(int)ma->texact];
ma->mtex[(int)ma->texact] = ma->mtex[((int)ma->texact)+1];
ma->mtex[((int)ma->texact)+1] = mtexswap;
@@ -3164,7 +3179,7 @@ void do_matbuts(unsigned short event)
ob=base->object;
for(psys=ob->particlesystem.first; psys; psys=psys->next) {
if(psys && ma==give_current_material(ob,psys->part->omat)) {
- psys->recalc |= PSYS_INIT;
+ psys->recalc |= PSYS_INIT | PSYS_RECALC_HAIR;
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
}
@@ -3190,7 +3205,7 @@ static void particle_recalc_material(void *ma_v, void *arg2)
ob=base->object;
for(psys=ob->particlesystem.first; psys; psys=psys->next){
if(psys && ma==give_current_material(ob,psys->part->omat)){
- psys->recalc |= PSYS_INIT;
+ psys->recalc |= PSYS_INIT | PSYS_RECALC_HAIR;
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
}
@@ -3246,16 +3261,18 @@ static void material_panel_map_to(Object *ob, Material *ma, int from_nodes)
uiDefButF(block, NUMSLI, B_MATPRV, "B ", 10,40,135,19, &(mtex->b), 0.0, 1.0, B_MTEXCOL, 0, "The default color for textures that don't return RGB");
}
uiBlockEndAlign(block);
-
- uiDefButF(block, NUMSLI, B_MATPRV, "DVar ", 10,10,135,19, &(mtex->def_var), 0.0, 1.0, 0, 0, "Value to use for Ref, Spec, Amb, Emit, Alpha, RayMir, TransLu and Hard");
-
- /* MAP TO */
- uiBlockBeginAlign(block);
/*check if material is being used by particles*/
for(psys=ob->particlesystem.first; psys; psys=psys->next)
if(psys->part->omat==ob->actcol)
psys_mapto=1;
+
+ but = uiDefButF(block, NUMSLI, B_MATPRV, "DVar ", 10,10,135,19, &(mtex->def_var), 0.0, 1.0, 0, 0, "Value to use for Ref, Spec, Amb, Emit, Alpha, RayMir, TransLu and Hard");
+ if(psys_mapto && mtex->pmapto & MAP_PA_INIT)
+ uiButSetFunc(but, particle_recalc_material, ma, NULL);
+
+ /* MAP TO */
+ uiBlockBeginAlign(block);
if(psys_mapto && pattr) {
but=uiDefButBitS(block, TOG3, MAP_PA_TIME, B_MAT_PARTICLE, "Time", 10,180,60,19, &(mtex->pmapto), 0, 0, 0, 0, "Causes the texture to affect the emission time of particles");
@@ -3424,6 +3441,9 @@ static void material_panel_map_input(Object *ob, Material *ma)
if(ELEM(mtex->texco, TEXCO_UV, TEXCO_ORCO))
uiDefButBitS(block, TOG, MTEX_DUPLI_MAPTO, B_MATPRV, "From Dupli", 820,140,88,18, &(mtex->texflag), 0, 0, 0, 0, "If object is duplicated by vertices, faces or particles, inherit texture coordinate from parent object");
+ else if(mtex->texco == TEXCO_OBJECT)
+ uiDefButBitS(block, TOG, MTEX_OB_DUPLI_ORIG, B_MATPRV, "From Original", 820,140,88,18, &(mtex->texflag), 0, 0, 0, 0, "If object is duplicated, use object coordinates as if the object was in its original position");
+
/* COORDS */
uiBlockBeginAlign(block);
@@ -3622,7 +3642,7 @@ static void material_panel_tramir(Material *ma)
uiBlockBeginAlign(block);
uiDefButF(block, NUMSLI, B_MATPRV, "Gloss: ",
- X2CLM2, yco-=BUTH, BUTW2, BUTH, &(ma->gloss_tra), 0.0, 1.0, 100, 0, "The clarity of the refraction. Values < 1.0 give diffuse, blurry reflections ");
+ X2CLM2, yco-=BUTH, BUTW2, BUTH, &(ma->gloss_tra), 0.0, 1.0, 100, 0, "The clarity of the refraction. Values < 1.0 give diffuse, blurry refractions");
uiDefButS(block, NUM, B_MATPRV, "Samples:",
X2CLM2, yco-=BUTH, BUTW2, BUTH, &(ma->samp_gloss_tra), 0.0, 1024.0, 100, 0, "Number of cone samples averaged for blurry refractions");
uiDefButF(block, NUM, B_MATPRV, "Thresh: ",
@@ -3835,14 +3855,15 @@ static void material_panel_shading(Material *ma)
uiBlockSetCol(block, TH_BUT_SETTING1);
uiBlockBeginAlign(block);
- uiDefButBitI(block, TOG, MA_HALO_FLARE, B_MATPRV, "Flare",245,142,65,28, &(ma->mode), 0, 0, 0, 0, "Renders halo as a lensflare");
- uiDefButBitI(block, TOG, MA_HALO_RINGS, B_MATPRV, "Rings", 245,123,65, 18, &(ma->mode), 0, 0, 0, 0, "Renders rings over halo");
- uiDefButBitI(block, TOG, MA_HALO_LINES, B_MATPRV, "Lines", 245,104,65, 18, &(ma->mode), 0, 0, 0, 0, "Renders star shaped lines over halo");
- uiDefButBitI(block, TOG, MA_STAR, B_MATPRV, "Star", 245,85,65, 18, &(ma->mode), 0, 0, 0, 0, "Renders halo as a star");
- uiDefButBitI(block, TOG, MA_HALOTEX, B_MATPRV, "HaloTex", 245,66,65, 18, &(ma->mode), 0, 0, 0, 0, "Gives halo a texture");
- uiDefButBitI(block, TOG, MA_HALOPUNO, B_MATPRV, "HaloPuno", 245,47,65, 18, &(ma->mode), 0, 0, 0, 0, "Uses the vertex normal to specify the dimension of the halo");
- uiDefButBitI(block, TOG, MA_HALO_XALPHA, B_MATPRV, "X Alpha", 245,28,65, 18, &(ma->mode), 0, 0, 0, 0, "Uses extreme alpha");
- uiDefButBitI(block, TOG, MA_HALO_SHADE, B_MATPRV, "Shaded", 245,9,65, 18, &(ma->mode), 0, 0, 0, 0, "Lets halo receive light and shadows");
+ uiDefButBitI(block, TOG, MA_HALO_FLARE, B_MATPRV, "Flare", 245,161,65,28, &(ma->mode), 0, 0, 0, 0, "Renders halo as a lensflare");
+ uiDefButBitI(block, TOG, MA_HALO_RINGS, B_MATPRV, "Rings", 245,142,65,18, &(ma->mode), 0, 0, 0, 0, "Renders rings over halo");
+ uiDefButBitI(block, TOG, MA_HALO_LINES, B_MATPRV, "Lines", 245,123,65,18, &(ma->mode), 0, 0, 0, 0, "Renders star shaped lines over halo");
+ uiDefButBitI(block, TOG, MA_STAR, B_MATPRV, "Star", 245,104,65, 18, &(ma->mode), 0, 0, 0, 0, "Renders halo as a star");
+ uiDefButBitI(block, TOG, MA_HALOTEX, B_MATPRV, "HaloTex", 245,85,65, 18, &(ma->mode), 0, 0, 0, 0, "Gives halo a texture");
+ uiDefButBitI(block, TOG, MA_HALOPUNO, B_MATPRV, "HaloPuno", 245,66,65, 18, &(ma->mode), 0, 0, 0, 0, "Uses the vertex normal to specify the dimension of the halo");
+ uiDefButBitI(block, TOG, MA_HALO_XALPHA, B_MATPRV, "X Alpha", 245,47,65, 18, &(ma->mode), 0, 0, 0, 0, "Uses extreme alpha");
+ uiDefButBitI(block, TOG, MA_HALO_SHADE, B_MATPRV, "Shaded", 245,28,65, 18, &(ma->mode), 0, 0, 0, 0, "Lets halo receive light and shadows");
+ uiDefButBitI(block, TOG, MA_HALO_SOFT, B_MATPRV, "Soft", 245,9,65, 18, &(ma->mode), 0, 0, 0, 0, "Softens the halo");
uiBlockEndAlign(block);
}
else {
diff --git a/source/blender/src/cmap.tga.c b/source/blender/src/cmap.tga.c
index da515b6b106..a0e3bece2bf 100644
--- a/source/blender/src/cmap.tga.c
+++ b/source/blender/src/cmap.tga.c
@@ -2,15 +2,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/blender/src/cmovie.tga.c b/source/blender/src/cmovie.tga.c
index 391c032168d..32359c02980 100644
--- a/source/blender/src/cmovie.tga.c
+++ b/source/blender/src/cmovie.tga.c
@@ -2,15 +2,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/blender/src/cre/license.jpeg.c b/source/blender/src/cre/license.jpeg.c
index 880d3dbde2e..6d8f0e3da9d 100644
--- a/source/blender/src/cre/license.jpeg.c
+++ b/source/blender/src/cre/license.jpeg.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/blender/src/cre/license_key.c b/source/blender/src/cre/license_key.c
index 4daa7628f53..37b67d44bb6 100644
--- a/source/blender/src/cre/license_key.c
+++ b/source/blender/src/cre/license_key.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "license_key.h"
diff --git a/source/blender/src/cursors.c b/source/blender/src/cursors.c
index ea10d2e9b3e..1ed8e97ef1d 100644
--- a/source/blender/src/cursors.c
+++ b/source/blender/src/cursors.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
-* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version. The Blender
-* Foundation also sells licenses for use in proprietary software under
-* the Blender License. See http://www.blender.org/BL/ for information
-* about this.
+* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
-* ***** END GPL/BL DUAL LICENSE BLOCK *****
+* ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/src/drawaction.c b/source/blender/src/drawaction.c
index 1d3ece58db7..eb01339c821 100644
--- a/source/blender/src/drawaction.c
+++ b/source/blender/src/drawaction.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joshua Leung
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Drawing routines for the Action window type
*/
@@ -462,6 +459,7 @@ static void draw_channel_names(void)
if ( IN_RANGE(yminc, G.v2d->cur.ymin, G.v2d->cur.ymax) ||
IN_RANGE(ymaxc, G.v2d->cur.ymin, G.v2d->cur.ymax) )
{
+ bActionGroup *grp = NULL;
short indent= 0, offset= 0, sel= 0, group=0;
int expand= -1, protect = -1, special= -1, mute = -1;
char name[32];
@@ -495,6 +493,8 @@ static void draw_channel_names(void)
bActionChannel *achan= (bActionChannel *)ale->data;
group= (ale->grp) ? 1 : 0;
+ grp= ale->grp;
+
indent = 0;
special = -1;
@@ -524,7 +524,9 @@ static void draw_channel_names(void)
bConstraintChannel *conchan = (bConstraintChannel *)ale->data;
indent = 2;
+
group= (ale->grp) ? 1 : 0;
+ grp= ale->grp;
if (EDITABLE_CONCHAN(conchan))
protect = ICON_UNLOCKED;
@@ -548,7 +550,9 @@ static void draw_channel_names(void)
indent = 2;
protect = -1; // for now, until this can be supported by others
+
group= (ale->grp) ? 1 : 0;
+ grp= ale->grp;
if (icu->flag & IPO_MUTE)
mute = ICON_MUTE_IPO_ON;
@@ -581,7 +585,9 @@ static void draw_channel_names(void)
indent = 1;
special = geticon_ipo_blocktype(achan->ipo->blocktype);
+
group= (ale->grp) ? 1 : 0;
+ grp= ale->grp;
if (FILTER_IPO_ACHAN(achan))
expand = ICON_TRIA_DOWN;
@@ -598,7 +604,9 @@ static void draw_channel_names(void)
indent = 1;
special = ICON_CONSTRAINT;
+
group= (ale->grp) ? 1 : 0;
+ grp= ale->grp;
if (FILTER_CON_ACHAN(achan))
expand = ICON_TRIA_DOWN;
@@ -625,8 +633,28 @@ static void draw_channel_names(void)
offset = 0;
}
else {
- /* for normal channels */
- BIF_ThemeColorShade(TH_HEADER, ((indent==0)?20: (indent==1)?-20: -40));
+ /* for normal channels
+ * - use 3 shades of color group/standard colour for 3 indention level
+ * - use standard colour if enabled
+ */
+ if ((G.saction->flag & SACTION_DRAWGCOLORS) && (grp)) {
+ char cp[3];
+
+ if (indent == 2) {
+ VECCOPY(cp, grp->cs.solid);
+ }
+ else if (indent == 1) {
+ VECCOPY(cp, grp->cs.select);
+ }
+ else {
+ VECCOPY(cp, grp->cs.active);
+ }
+
+ glColor3ub(cp[0], cp[1], cp[2]);
+ }
+ else
+ BIF_ThemeColorShade(TH_HEADER, ((indent==0)?20: (indent==1)?-20: -40));
+
indent += group;
offset = 7 * indent;
glRectf(x+offset, yminc, (float)NAMEWIDTH, ymaxc);
diff --git a/source/blender/src/drawdeps.c b/source/blender/src/drawdeps.c
index d948f31009b..d64d6427bd1 100644
--- a/source/blender/src/drawdeps.c
+++ b/source/blender/src/drawdeps.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
@@ -272,14 +269,14 @@ DagNode * scenenode;
if ((ob->data) && (mask&DAG_RL_DATA)) {
node2 = dag_get_node(dag,ob->data);
- dag_add_relation(dag,node,node2,DAG_RL_DATA);
+ dag_add_relation(dag,node,node2,DAG_RL_DATA, "Object-Data Relation");
node2->first_ancestor = ob;
node2->ancestor_count += 1;
}
if (addtoroot == 1 )
- dag_add_relation(dag,scenenode,node,DAG_RL_SCENE);
+ dag_add_relation(dag,scenenode,node,DAG_RL_SCENE, "Scene Relation");
base= base->next;
}
diff --git a/source/blender/src/drawimage.c b/source/blender/src/drawimage.c
index 1590308125c..89e34b6d73e 100644
--- a/source/blender/src/drawimage.c
+++ b/source/blender/src/drawimage.c
@@ -194,7 +194,7 @@ void calc_image_view(SpaceImage *sima, char mode)
ImBuf *ibuf= imagewindow_get_ibuf(sima);
float xuser_asp, yuser_asp;
- aspect_sima(sima, &xuser_asp, &yuser_asp);
+ image_pixel_aspect(sima->image, &xuser_asp, &yuser_asp);
if(ibuf) {
xim= ibuf->x * xuser_asp;
yim= ibuf->y * yuser_asp;
@@ -243,11 +243,10 @@ void calc_image_view(SpaceImage *sima, char mode)
/* check for facelesect, and set active image */
void what_image(SpaceImage *sima)
{
- MTFace *activetf;
-
if( (sima->mode!=SI_TEXTURE) ||
(sima->image && sima->image->source==IMA_SRC_VIEWER) ||
(G.obedit != OBACT) ||
+ (G.editMesh==NULL) ||
(sima->pin)
) {
return;
@@ -255,13 +254,16 @@ void what_image(SpaceImage *sima)
/* viewer overrides uv editmode */
if (EM_texFaceCheck()) {
+ MTFace *activetf;
+
sima->image= NULL;
activetf = get_active_mtface(NULL, NULL, 1); /* partially selected face is ok */
if(activetf && activetf->mode & TF_TEX) {
- if (!sima->pin)
- sima->image= activetf->tpage;
+ /* done need to check for pin here, see above */
+ /*if (!sima->pin)*/
+ sima->image= activetf->tpage;
if(sima->flag & SI_EDITTILE);
else sima->curtile= activetf->tile;
@@ -288,80 +290,6 @@ ImBuf *imagewindow_get_ibuf(SpaceImage *sima)
return NULL;
}
-extern int EM_texFaceCheck(void); /* from editmesh.c */
-/* called to assign images to UV faces */
-void image_changed(SpaceImage *sima, Image *image)
-{
- MTFace *tface;
- EditMesh *em = G.editMesh;
- EditFace *efa;
- ImBuf *ibuf = NULL;
- short change = 0;
-
- if(image==NULL) {
- sima->flag &= ~SI_DRAWTOOL;
- } else {
- ibuf = BKE_image_get_ibuf(image, NULL);
- }
-
- if(sima->mode!=SI_TEXTURE)
- return;
-
- /* skip assigning these procedural images... */
- if(image && (image->type==IMA_TYPE_R_RESULT || image->type==IMA_TYPE_COMPOSITE)) {
- return;
- } else if ((G.obedit) &&
- (G.obedit->type == OB_MESH) &&
- (G.editMesh) &&
- (G.editMesh->faces.first)
- ) {
-
- /* Add a UV layer if there is none, editmode only */
- if ( !CustomData_has_layer(&G.editMesh->fdata, CD_MTFACE) ) {
- EM_add_data_layer(&em->fdata, CD_MTFACE);
- CustomData_set_layer_active(&em->fdata, CD_MTFACE, 0); /* always zero because we have no other UV layers */
- change = 1; /* so we update the object, incase no faces are selected */
-
- /* BIF_undo_push("New UV Texture"); - undo should be done by whatever changes the image */
- allqueue(REDRAWVIEW3D, 0);
- allqueue(REDRAWBUTSEDIT, 0);
- }
-
- for (efa= em->faces.first; efa; efa= efa->next) {
- tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
- if (efa->h==0 && efa->f & SELECT) {
- if (image) {
- tface->tpage= image;
- tface->mode |= TF_TEX;
-
- if(image->tpageflag & IMA_TILES) tface->mode |= TF_TILES;
- else tface->mode &= ~TF_TILES;
-
- if(image->id.us==0) id_us_plus(&image->id);
- else id_lib_extern(&image->id);
-
- if (tface->transp==TF_ADD) {} /* they obviously know what they are doing! - leave as is */
- else if (ibuf && ibuf->depth == 32) tface->transp = TF_ALPHA;
- else tface->transp = TF_SOLID;
-
- } else {
- tface->tpage= NULL;
- tface->mode &= ~TF_TEX;
- tface->transp = TF_SOLID;
- }
- change = 1;
- }
- }
- }
- /* change the space image after because simaFaceDraw_Check uses the space image
- * to check if the face is displayed in UV-localview */
- sima->image = image;
-
- if (change)
- object_uvs_changed(OBACT);
-
- allqueue(REDRAWBUTSEDIT, 0);
-}
/*
* dotile - 1, set the tile flag (from the space image)
* 2, set the tile index for the faces.
@@ -481,12 +409,20 @@ static void drawcursor_sima(float xuser_asp, float yuser_asp)
// checks if we are selecting only faces
int draw_uvs_face_check(void)
{
- if (G.sima==NULL)
+ if (G.sima==NULL) {
return 0;
- if (G.sima->flag & SI_SYNC_UVSEL && G.scene->selectmode == SCE_SELECT_FACE)
- return 2;
- if (G.sima->flag & SI_SELACTFACE)
- return 1;
+ }
+ if (G.sima->flag & SI_SYNC_UVSEL) {
+ if (G.scene->selectmode == SCE_SELECT_FACE) {
+ return 2;
+ } else if (G.scene->selectmode & SCE_SELECT_FACE) {
+ return 1;
+ }
+ } else {
+ if (G.sima->flag & SI_SELACTFACE) {
+ return 1;
+ }
+ }
return 0;
}
@@ -536,6 +472,7 @@ void draw_uvs_sima(void)
char col1[4], col2[4];
float pointsize;
int drawface;
+ int lastsel, sel;
if (!G.obedit || !CustomData_has_layer(&em->fdata, CD_MTFACE))
return;
@@ -859,13 +796,11 @@ void draw_uvs_sima(void)
}
if (activetface) {
- GLubyte act_face_stipple[32*32/8] = DM_FACE_STIPPLE;
-
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
BIF_ThemeColor4(TH_EDITMESH_ACTIVE);
glEnable(GL_POLYGON_STIPPLE);
- glPolygonStipple(act_face_stipple);
+ glPolygonStipple(stipple_quarttone);
glBegin(efa_act->v4?GL_QUADS:GL_TRIANGLES);
glVertex2fv(activetface->uv[0]);
glVertex2fv(activetface->uv[1]);
@@ -961,22 +896,64 @@ void draw_uvs_sima(void)
}
glLineWidth(1);
- cpack(0xFFFFFF);
- for (efa= em->faces.first; efa; efa= efa->next) {
-// tface= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
-// if (simaFaceDraw_Check(efa, tface)) {
+ col2[0] = col2[1] = col2[2] = 128; col2[3] = 255;
+ glColor4ubv((unsigned char *)col2);
+
+ if (G.f & G_DRAWEDGES) {
+ glShadeModel(GL_SMOOTH);
+ BIF_GetThemeColor4ubv(TH_VERTEX_SELECT, col1);
+ lastsel = sel = 0;
+
+ for (efa= em->faces.first; efa; efa= efa->next) {
+ // tface= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
+ // if (simaFaceDraw_Check(efa, tface)) {
+
+ /*this is a shortcut to do the same as above but a faster for drawing */
+ if ((tface=(MTFace *)efa->tmp.p)) {
+
+ glBegin(GL_LINE_LOOP);
+ sel = (simaUVSel_Check(efa, tface, 0) ? 1 : 0);
+ if (sel != lastsel) { glColor4ubv(sel ? (GLubyte *)col1 : (GLubyte *)col2); lastsel = sel; }
+ glVertex2fv(tface->uv[0]);
+
+ sel = simaUVSel_Check(efa, tface, 1) ? 1 : 0;
+ if (sel != lastsel) { glColor4ubv(sel ? (GLubyte *)col1 : (GLubyte *)col2); lastsel = sel; }
+ glVertex2fv(tface->uv[1]);
+
+ sel = simaUVSel_Check(efa, tface, 2) ? 1 : 0;
+ if (sel != lastsel) { glColor4ubv(sel ? (GLubyte *)col1 : (GLubyte *)col2); lastsel = sel; }
+ glVertex2fv(tface->uv[2]);
+
+ if(efa->v4) {
+ sel = simaUVSel_Check(efa, tface, 3) ? 1 : 0;
+ if (sel != lastsel) { glColor4ubv(sel ? (GLubyte *)col1 : (GLubyte *)col2); lastsel = sel; }
+ glVertex2fv(tface->uv[3]);
+ }
+
+ glEnd();
+ }
+ }
+ glShadeModel(GL_FLAT);
+ } else { /* No nice edges */
- /*this is a shortcut to do the same as above but a faster for drawing */
- if ((tface=(MTFace *)efa->tmp.p)) {
+ for (efa= em->faces.first; efa; efa= efa->next) {
+ // tface= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
+ // if (simaFaceDraw_Check(efa, tface)) {
- glBegin(GL_LINE_LOOP);
+ /*this is a shortcut to do the same as above but a faster for drawing */
+ if ((tface=(MTFace *)efa->tmp.p)) {
+
+ glBegin(GL_LINE_LOOP);
glVertex2fv(tface->uv[0]);
glVertex2fv(tface->uv[1]);
glVertex2fv(tface->uv[2]);
- if(efa->v4) glVertex2fv(tface->uv[3]);
- glEnd();
+ if(efa->v4)
+ glVertex2fv(tface->uv[3]);
+ glEnd();
+ }
}
}
+
break;
}
@@ -1153,31 +1130,6 @@ static void draw_image_transform(ImBuf *ibuf, float xuser_asp, float yuser_asp)
}
}
-static void draw_image_view_icon(void)
-{
- float xPos = 5.0;
-
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-
-
- if (G.sima->flag & SI_SYNC_UVSEL) {
- /* take settings from the editmesh */
- if (G.scene->selectmode == SCE_SELECT_FACE || G.sima->flag & SI_SELACTFACE) {
- BIF_icon_draw_aspect(xPos, 5.0, ICON_FACESEL_HLT, 1.0f);
- }
-
- } else {
- /* use the flags for UV mode - normal operation */
- if(G.sima->flag & SI_SELACTFACE) {
- BIF_icon_draw_aspect(xPos, 5.0, ICON_FACESEL_HLT, 1.0f);
- }
- }
-
- glBlendFunc(GL_ONE, GL_ZERO);
- glDisable(GL_BLEND);
-}
-
static void draw_image_view_tool(void)
{
ToolSettings *settings= G.scene->toolsettings;
@@ -1470,19 +1422,6 @@ static void image_panel_game_properties(short cntrl) // IMAGE_HANDLER_GAME_PROPE
}
}
-//static void image_panel_transform_properties(short cntrl) // IMAGE_HANDLER_TRANSFORM_PROPERTIES
-//{
-// uiBlock *block;
-//
-// block= uiNewBlock(&curarea->uiblocks, "image_transform_properties", UI_EMBOSS, UI_HELV, curarea->win);
-// uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
-// uiSetPanelHandler(IMAGE_HANDLER_TRANSFORM_PROPERTIES); // for close and esc
-// if(uiNewPanel(curarea, block, "Transform Properties", "Image", 10, 10, 318, 204)==0)
-// return;
-//
-// image_editvertex_buts(block);
-//}
-
static void image_panel_view_properties(short cntrl) // IMAGE_HANDLER_VIEW_PROPERTIES
{
uiBlock *block;
@@ -1508,21 +1447,29 @@ static void image_panel_view_properties(short cntrl) // IMAGE_HANDLER_VIEW_PROPE
if (EM_texFaceCheck()) {
- uiDefBut(block, LABEL, B_NOP, "Draw Type:", 10, 60,120,19, 0, 0, 0, 0, 0, "");
+ uiDefBut(block, LABEL, B_NOP, "Draw Type:", 10, 80,120,19, 0, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButC(block, ROW, B_REDR, "Dash", 10, 40,58,19, &G.sima->dt_uv, 0.0, SI_UVDT_DASH, 0, 0, "Dashed Wire UV drawtype");
- uiDefButC(block, ROW, B_REDR, "Black", 68, 40,58,19, &G.sima->dt_uv, 0.0, SI_UVDT_BLACK, 0, 0, "Black Wire UV drawtype");
- uiDefButC(block, ROW, B_REDR, "White", 126,40,58,19, &G.sima->dt_uv, 0.0, SI_UVDT_WHITE, 0, 0, "White Wire UV drawtype");
- uiDefButC(block, ROW, B_REDR, "Outline", 184,40,58,19, &G.sima->dt_uv, 0.0, SI_UVDT_OUTLINE, 0, 0, "Outline Wire UV drawtype");
+ uiDefButC(block, ROW, B_REDR, "Outline", 10,60,58,19, &G.sima->dt_uv, 0.0, SI_UVDT_OUTLINE, 0, 0, "Outline Wire UV drawtype");
+ uiDefButC(block, ROW, B_REDR, "Dash", 68, 60,58,19, &G.sima->dt_uv, 0.0, SI_UVDT_DASH, 0, 0, "Dashed Wire UV drawtype");
+ uiDefButC(block, ROW, B_REDR, "Black", 126, 60,58,19, &G.sima->dt_uv, 0.0, SI_UVDT_BLACK, 0, 0, "Black Wire UV drawtype");
+ uiDefButC(block, ROW, B_REDR, "White", 184,60,58,19, &G.sima->dt_uv, 0.0, SI_UVDT_WHITE, 0, 0, "White Wire UV drawtype");
+
uiBlockEndAlign(block);
- uiDefButBitI(block, TOG, SI_SMOOTH_UV, B_REDR, "Smooth", 250,40,60,19, &G.sima->flag, 0, 0, 0, 0, "Display smooth lines in the UV view");
+ uiDefButBitI(block, TOG, SI_SMOOTH_UV, B_REDR, "Smooth", 250,60,60,19, &G.sima->flag, 0, 0, 0, 0, "Display smooth lines in the UV view");
- uiDefButBitI(block, TOG, SI_DRAW_STRETCH, B_REDR, "UV Stretch", 10,0,100,19, &G.sima->flag, 0, 0, 0, 0, "Difference between UV's and the 3D coords (blue for low distortion, red is high)");
- uiBlockBeginAlign(block);
- uiDefButC(block, ROW, B_REDR, "Area", 120,0,60,19, &G.sima->dt_uvstretch, 0.0, SI_UVDT_STRETCH_AREA, 0, 0, "Area distortion between UV's and 3D coords");
- uiDefButC(block, ROW, B_REDR, "Angle", 180,0,60,19, &G.sima->dt_uvstretch, 0.0, SI_UVDT_STRETCH_ANGLE, 0, 0, "Angle distortion between UV's and 3D coords");
- uiBlockEndAlign(block);
+ uiDefButBitI(block, TOG, G_DRAWFACES, B_REDR, "Faces", 10,30,60,19, &G.f, 0, 0, 0, 0, "Displays all faces as shades in the 3d view and UV editor");
+ uiDefButBitI(block, TOG, G_DRAWEDGES, B_REDR, "Edges", 70, 30,60,19, &G.f, 0, 0, 0, 0, "Displays selected edges using hilights and UV editor");
+
+ uiDefButBitI(block, TOG, SI_DRAWSHADOW, B_REDR, "Final Shadow", 130, 30,110,19, &G.sima->flag, 0, 0, 0, 0, "Draw the final result from the objects modifiers");
+
+ uiDefButBitI(block, TOG, SI_DRAW_STRETCH, B_REDR, "UV Stretch", 10,0,100,19, &G.sima->flag, 0, 0, 0, 0, "Difference between UV's and the 3D coords (blue for low distortion, red is high)");
+ if (G.sima->flag & SI_DRAW_STRETCH) {
+ uiBlockBeginAlign(block);
+ uiDefButC(block, ROW, B_REDR, "Area", 120,0,60,19, &G.sima->dt_uvstretch, 0.0, SI_UVDT_STRETCH_AREA, 0, 0, "Area distortion between UV's and 3D coords");
+ uiDefButC(block, ROW, B_REDR, "Angle", 180,0,60,19, &G.sima->dt_uvstretch, 0.0, SI_UVDT_STRETCH_ANGLE, 0, 0, "Angle distortion between UV's and 3D coords");
+ uiBlockEndAlign(block);
+ }
}
image_editcursor_buts(block);
@@ -1841,10 +1788,6 @@ static void image_blockhandlers(ScrArea *sa)
case IMAGE_HANDLER_GAME_PROPERTIES:
image_panel_game_properties(sima->blockhandler[a+1]);
break;
-// case IMAGE_HANDLER_TRANSFORM_PROPERTIES:
-// if (EM_texFaceCheck())
-// image_panel_transform_properties(sima->blockhandler[a+1]);
-// break;
case IMAGE_HANDLER_VIEW_PROPERTIES:
image_panel_view_properties(sima->blockhandler[a+1]);
break;
@@ -2119,7 +2062,7 @@ void drawimagespace(ScrArea *sa, void *spacedata)
unsigned int *rect;
float x1, y1;
short sx, sy, dx, dy, show_render= 0, show_viewer= 0;
- float xuser_asp, yuser_asp;
+ float xuser_asp=1, yuser_asp=1;
/* If derived data is used then make sure that object
* is up-to-date... might not be the case because updates
* are normally done in drawview and could get here before
@@ -2141,11 +2084,11 @@ void drawimagespace(ScrArea *sa, void *spacedata)
if(sima->image->type==IMA_TYPE_R_RESULT)
show_render= 1;
}
- what_image(sima);
- aspect_sima(sima, &xuser_asp, &yuser_asp);
+ what_image(sima);
if(sima->image) {
+ image_pixel_aspect(sima->image, &xuser_asp, &yuser_asp);
/* UGLY hack? until now iusers worked fine... but for flipbook viewer we need this */
if(sima->image->type==IMA_TYPE_COMPOSITE) {
@@ -2395,7 +2338,6 @@ void drawimagespace(ScrArea *sa, void *spacedata)
if(G.rendering==0) {
draw_image_view_tool();
- draw_image_view_icon();
}
draw_area_emboss(sa);
diff --git a/source/blender/src/drawimasel.c b/source/blender/src/drawimasel.c
index 6fa625592be..6afc414e3de 100644
--- a/source/blender/src/drawimasel.c
+++ b/source/blender/src/drawimasel.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -332,7 +329,7 @@ static void draw_imasel_previews(ScrArea *sa, SpaceImaSel *simasel)
if (!files) return;
/* Reload directory */
- BLI_strncpy(simasel->dir, BIF_filelist_dir(files), FILE_MAXDIR);
+ BLI_strncpy(simasel->dir, BIF_filelist_dir(files), FILE_MAX);
type = BIF_filelist_gettype(simasel->files);
diff --git a/source/blender/src/drawipo.c b/source/blender/src/drawipo.c
index e13d0f4d0cd..521e3ebd981 100644
--- a/source/blender/src/drawipo.c
+++ b/source/blender/src/drawipo.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/src/drawmesh.c b/source/blender/src/drawmesh.c
index df5334dd27d..b72cd3f56f8 100644
--- a/source/blender/src/drawmesh.c
+++ b/source/blender/src/drawmesh.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/src/drawnla.c b/source/blender/src/drawnla.c
index a0b4c7f01b3..fba55f7f308 100644
--- a/source/blender/src/drawnla.c
+++ b/source/blender/src/drawnla.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c
index 9ddf5e405dd..b7b2bdf195e 100644
--- a/source/blender/src/drawobject.c
+++ b/source/blender/src/drawobject.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -213,9 +210,9 @@ int init_gl_materials(Object *ob, int check_alpha)
if(a<MAXMATBUF) {
if (ma->mode & MA_SHLESS) {
- matbuf[a][0][0]= 2*ma->r;
- matbuf[a][0][1]= 2*ma->g;
- matbuf[a][0][2]= 2*ma->b;
+ matbuf[a][0][0]= ma->r;
+ matbuf[a][0][1]= ma->g;
+ matbuf[a][0][2]= ma->b;
} else {
matbuf[a][0][0]= (ma->ref+ma->emit)*ma->r;
matbuf[a][0][1]= (ma->ref+ma->emit)*ma->g;
@@ -2061,15 +2058,16 @@ static int draw_em_fancy__setFaceOpts(void *userData, int index, int *drawSmooth
static void draw_em_fancy(Object *ob, EditMesh *em, DerivedMesh *cageDM, DerivedMesh *finalDM, int dt)
{
Mesh *me = ob->data;
- EditFace *efa_act = NULL;
+ EditFace *efa_act = EM_get_actFace(0); /* annoying but active faces is stored differently */
EditEdge *eed_act = NULL;
EditVert *eve_act = NULL;
if (G.editMesh->selected.last) {
EditSelection *ese = G.editMesh->selected.last;
- if ( ese->type == EDITFACE ) {
+ /* face is handeled above */
+ /*if (ese->type == EDITFACE ) {
efa_act = (EditFace *)ese->data;
- } else if ( ese->type == EDITEDGE ) {
+ } else */ if ( ese->type == EDITEDGE ) {
eed_act = (EditEdge *)ese->data;
} else if ( ese->type == EDITVERT ) {
eve_act = (EditVert *)ese->data;
@@ -2796,7 +2794,7 @@ static int drawDispList(Base *base, int dt)
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
drawDispListsolid(lb, ob);
}
- if(ob==G.obedit && cu->bevobj==NULL && cu->taperobj==NULL) {
+ if(ob==G.obedit && cu->bevobj==NULL && cu->taperobj==NULL && cu->ext1 == 0.0 && cu->ext2 == 0.0) {
cpack(0);
draw_index_wire= 0;
drawDispListwire(lb);
@@ -3082,6 +3080,8 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys)
ma= give_current_material(ob,part->omat);
+ if(G.vd->zbuf) glDepthMask(1);
+
if(select)
cpack(0xFFFFFF);
else if((ma) && (part->draw&PART_DRAW_MAT_COL))
@@ -3571,9 +3571,6 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys)
glDisable(GL_LIGHTING);
glDisableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
-#if 0 /* If this is needed, it cant be enabled in wire mode, since it messes up the view - Campbell */
- glEnable(GL_DEPTH_TEST);
-#endif
if(states)
MEM_freeN(states);
@@ -3681,7 +3678,7 @@ static void draw_particle_edit(Object *ob, ParticleSystem *psys)
glDisableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glDisable(GL_LIGHTING);
- glPointSize(4.0f);
+ glPointSize(BIF_GetThemeValuef(TH_VERTEX_SIZE));
if(G.scene->selectmode==SCE_SELECT_POINT){
float *cd=0,*cdata=0;
@@ -3754,6 +3751,7 @@ static void draw_particle_edit(Object *ob, ParticleSystem *psys)
glLineWidth(1.0f);
mymultmatrix(ob->obmat); // bring back local matrix for dtx
+ glPointSize(1.0);
}
unsigned int nurbcol[8]= {
diff --git a/source/blender/src/drawoops.c b/source/blender/src/drawoops.c
index ef32d2c7039..5da38135be3 100644
--- a/source/blender/src/drawoops.c
+++ b/source/blender/src/drawoops.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/src/drawscene.c b/source/blender/src/drawscene.c
index 557083d2b97..7dc0344795e 100644
--- a/source/blender/src/drawscene.c
+++ b/source/blender/src/drawscene.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* drawing graphics and editing
*/
@@ -111,7 +108,7 @@ void set_scene(Scene *sce) /* also see scene.c: set_scene_bg() */
if (!v3d->camera || !object_in_scene(v3d->camera, sce)) {
v3d->camera= scene_find_camera(sc->scene);
if (sc==G.curscreen) handle_view3d_lock();
- if (!v3d->camera && v3d->persp>1) v3d->persp= 1;
+ if (!v3d->camera && v3d->persp==V3D_CAMOB) v3d->persp= V3D_PERSP;
}
}
sl= sl->next;
diff --git a/source/blender/src/drawscript.c b/source/blender/src/drawscript.c
index b6ea63ca695..c744449d1db 100644
--- a/source/blender/src/drawscript.c
+++ b/source/blender/src/drawscript.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Willian Padovani Germano.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -108,14 +105,16 @@ void drawscriptspace(ScrArea *sa, void *spacedata)
}
}
- if (script->py_draw) {
- BPY_spacescript_do_pywin_draw(sc);
+ if (script) {
+ if (script->py_draw) {
+ BPY_spacescript_do_pywin_draw(sc);
+ } else if (!script->flags && !script->py_event && !script->py_button) {
+ /* quick hack for 2.37a for scripts that call the progress bar inside a
+ * file selector callback, to show previous space after finishing, w/o
+ * needing an event */
+ addqueue(curarea->win, MOUSEX, 0);
+ }
}
- /* quick hack for 2.37a for scripts that call the progress bar inside a
- * file selector callback, to show previous space after finishing, w/o
- * needing an event */
- else if (!script->flags && !script->py_event && !script->py_button)
- addqueue(curarea->win, MOUSEX, 0);
}
void winqreadscriptspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt)
diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c
index 6efd109358b..fb97a369dd8 100644
--- a/source/blender/src/drawseq.c
+++ b/source/blender/src/drawseq.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
@@ -92,24 +89,6 @@
#define SEQ_STRIP_OFSBOTTOM 0.2
#define SEQ_STRIP_OFSTOP 0.8
-static GLubyte halftone[] = {
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
- 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55};
-
/* Note, Dont use WHILE_SEQ while drawing! - it messes up transform, - Campbell */
int no_rightbox=0, no_leftbox= 0;
@@ -240,7 +219,7 @@ static void drawmeta_contents(Sequence *seqm, float x1, float y1, float x2, floa
if (seqm->flag & SEQ_MUTE) {
glEnable(GL_POLYGON_STIPPLE);
- glPolygonStipple(halftone);
+ glPolygonStipple(stipple_halftone);
glEnable(GL_LINE_STIPPLE);
glLineStipple(1, 0x8888);
@@ -376,7 +355,7 @@ static void draw_seq_handle(Sequence *seq, SpaceSeq *sseq, float pixelx, short d
float x1, x2, y1, y2;
float handsize;
float minhandle, maxhandle;
- char str[120];
+ char str[32];
unsigned int whichsel=0;
View2D *v2d;
@@ -447,9 +426,9 @@ static void draw_seq_handle(Sequence *seq, SpaceSeq *sseq, float pixelx, short d
glRasterPos3f(rx1, y1-0.15, 0.0);
} else {
sprintf(str, "%d", seq->enddisp - 1);
- glRasterPos3f((x2-BMF_GetStringWidth(G.font, str)*pixelx), y2+0.05, 0.0);
+ glRasterPos3f((x2-BMF_GetStringWidth(G.fonts, str)*pixelx), y2+0.05, 0.0);
}
- BMF_DrawString(G.font, str);
+ BMF_DrawString(G.fonts, str);
}
}
@@ -636,7 +615,7 @@ static void draw_shadedstrip(Sequence *seq, char *col, float x1, float y1, float
if (seq->flag & SEQ_MUTE) {
glEnable(GL_POLYGON_STIPPLE);
- glPolygonStipple(halftone);
+ glPolygonStipple(stipple_halftone);
}
ymid1 = (y2-y1)*0.25 + y1;
diff --git a/source/blender/src/drawsound.c b/source/blender/src/drawsound.c
index 4fff327c5bb..f765f62a12f 100644
--- a/source/blender/src/drawsound.c
+++ b/source/blender/src/drawsound.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/src/drawtext.c b/source/blender/src/drawtext.c
index ca34768b19e..71f0bbef7ca 100644
--- a/source/blender/src/drawtext.c
+++ b/source/blender/src/drawtext.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c
index b6b1f632041..d97701e8c1e 100644
--- a/source/blender/src/drawview.c
+++ b/source/blender/src/drawview.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
//#define NAN_LINEAR_PHYSICS
@@ -1508,25 +1505,25 @@ static void draw_viewport_name(ScrArea *sa)
switch(G.vd->view) {
case 1:
- if (G.vd->persp & V3D_PERSP_DO_3D_PERSP)
- name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Back Persp" : "Front Persp";
- else
+ if (G.vd->persp == V3D_ORTHO)
name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Back Ortho" : "Front Ortho";
+ else
+ name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Back Persp" : "Front Persp";
break;
case 3:
- if (G.vd->persp & V3D_PERSP_DO_3D_PERSP)
- name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Left Persp" : "Right Persp";
- else
+ if (G.vd->persp == V3D_ORTHO)
name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Left Ortho" : "Right Ortho";
+ else
+ name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Left Persp" : "Right Persp";
break;
case 7:
- if (G.vd->persp & V3D_PERSP_DO_3D_PERSP)
- name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Bottom Persp" : "Top Persp";
- else
+ if (G.vd->persp == V3D_ORTHO)
name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Bottom Ortho" : "Top Ortho";
+ else
+ name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Bottom Persp" : "Top Persp";
break;
default:
- if (G.vd->persp==V3D_PERSP_USE_THE_CAMERA) {
+ if (G.vd->persp==V3D_CAMOB) {
if ((G.vd->camera) && (G.vd->camera->type == OB_CAMERA)) {
Camera *cam;
cam = G.vd->camera->data;
@@ -1535,7 +1532,7 @@ static void draw_viewport_name(ScrArea *sa)
name = "Object as Camera";
}
} else {
- name = (G.vd->persp & V3D_PERSP_DO_3D_PERSP) ? "User Persp" : "User Ortho";
+ name = (G.vd->persp == V3D_ORTHO) ? "User Ortho" : "User Persp";
}
}
@@ -3507,34 +3504,28 @@ static int cached_dynamics(int sfra, int efra)
{
Base *base = G.scene->base.first;
Object *ob;
- ModifierData *md;
ParticleSystem *psys;
- int i, stack_index=-1, cached=1;
+ int i, cached=1;
+ PTCacheID pid;
while(base && cached) {
ob = base->object;
if(ob->softflag & OB_SB_ENABLE && ob->soft) {
- for(i=0, md=ob->modifiers.first; md; i++, md=md->next) {
- if(md->type == eModifierType_Softbody) {
- stack_index = i;
- break;
- }
- }
+ BKE_ptcache_id_from_softbody(&pid, ob, ob->soft);
+
for(i=sfra; i<=efra && cached; i++)
- cached &= BKE_ptcache_id_exist(&ob->id,i,stack_index);
+ cached &= BKE_ptcache_id_exist(&pid, i);
}
for(psys=ob->particlesystem.first; psys; psys=psys->next) {
- stack_index = modifiers_indexInObject(ob,(ModifierData*)psys_get_modifier(ob,psys));
if(psys->part->type==PART_HAIR) {
- if(psys->softflag & OB_SB_ENABLE && psys->soft);
- else
- stack_index = -1;
- }
+ if(psys->softflag & OB_SB_ENABLE && psys->soft) {
+ BKE_ptcache_id_from_softbody(&pid, ob, psys->soft);
- if(stack_index >= 0)
- for(i=sfra; i<=efra && cached; i++)
- cached &= BKE_ptcache_id_exist(&ob->id,i,stack_index);
+ for(i=sfra; i<=efra && cached; i++)
+ cached &= BKE_ptcache_id_exist(&pid, i);
+ }
+ }
}
base = base->next;
diff --git a/source/blender/src/edit.c b/source/blender/src/edit.c
index 9190b3263f0..656ecda8eac 100644
--- a/source/blender/src/edit.c
+++ b/source/blender/src/edit.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
@@ -251,7 +248,7 @@ int get_border(rcti *rect, short flag)
BIF_ThemeColor(TH_BACK);
glRecti(10, 25, 250, 40);
- if(G.vd->persp==0) {
+ if(G.vd->persp==V3D_ORTHO) {
window_to_3d(dvec, mvalo[0]-x1, mvalo[1]-y1);
sprintf(str, "X %.4f Y %.4f Z %.4f Dia %.4f", dvec[0], dvec[1], dvec[2], sqrt(dvec[0]*dvec[0]+dvec[1]*dvec[1]+dvec[2]*dvec[2]));
@@ -262,7 +259,7 @@ int get_border(rcti *rect, short flag)
glRasterPos2i(16, 28);
BMF_DrawString(G.fonts, str);
}
- else if(G.vd->persp==2) {
+ else if(G.vd->persp==V3D_CAMOB) {
rctf vb;
calc_viewborder(G.vd, &vb);
@@ -842,6 +839,11 @@ void countall()
G.totobj+=tot;
count_object(ob, base->flag & SELECT, tot);
}
+ else if((ob->transflag & OB_DUPLIGROUP) && ob->dup_group) {
+ int tot= count_duplilist(ob);
+ G.totobj+=tot;
+ count_object(ob, base->flag & SELECT, tot);
+ }
else {
count_object(ob, base->flag & SELECT, 1);
G.totobj++;
@@ -1301,7 +1303,7 @@ void snap_sel_to_grid()
base= base->next;
}
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
allqueue(REDRAWVIEW3D, 0);
}
@@ -1414,7 +1416,7 @@ void snap_sel_to_curs()
base= base->next;
}
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
allqueue(REDRAWVIEW3D, 0);
}
@@ -1819,7 +1821,7 @@ void snap_to_center()
base= base->next;
}
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
allqueue(REDRAWVIEW3D, 0);
}
diff --git a/source/blender/src/editaction.c b/source/blender/src/editaction.c
index f8017fb3455..d5bec0431e5 100644
--- a/source/blender/src/editaction.c
+++ b/source/blender/src/editaction.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): 2007, Joshua Leung (major rewrite of Action Editor)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -950,7 +947,7 @@ static void action_groups_addachan (bAction *act, bActionGroup *agrp, bActionCha
}
else {
BLI_insertlinkafter(&act->chanbase, chan, achan);
-
+
agrp->channels.first= achan;
agrp->channels.last= achan;
@@ -1131,7 +1128,7 @@ void verify_pchan2achan_grouping (bAction *act, bPose *pose, char name[])
achan= verify_action_channel(act, name);
/* check if pchan has a group */
- if ((pchan->agrp_index) && (achan->grp == NULL)) {
+ if ((pchan->agrp_index > 0) && (achan->grp == NULL)) {
bActionGroup *agrp, *grp=NULL;
/* get group to try to be like */
@@ -1150,8 +1147,38 @@ void verify_pchan2achan_grouping (bAction *act, bPose *pose, char name[])
grp= MEM_callocN(sizeof(bActionGroup), "bActionGroup");
grp->flag |= (AGRP_ACTIVE|AGRP_SELECTED|AGRP_EXPANDED);
+
+ /* copy name */
sprintf(grp->name, agrp->name);
+ /* deal with group-color copying */
+ if (agrp->customCol) {
+ if (agrp->customCol > 0) {
+ /* copy theme colors on-to group's custom color in case user tries to edit color */
+ bTheme *btheme= U.themes.first;
+ ThemeWireColor *col_set= &btheme->tarm[(agrp->customCol - 1)];
+
+ memcpy(&grp->cs, col_set, sizeof(ThemeWireColor));
+ }
+ else {
+ /* init custom colours with a generic multi-colour rgb set, if not initialised already */
+ if (agrp->cs.solid[0] == 0) {
+ /* define for setting colors in theme below */
+ #define SETCOL(col, r, g, b, a) col[0]=r; col[1]=g; col[2]= b; col[3]= a;
+
+ SETCOL(grp->cs.solid, 0xff, 0x00, 0x00, 255);
+ SETCOL(grp->cs.select, 0x81, 0xe6, 0x14, 255);
+ SETCOL(grp->cs.active, 0x18, 0xb6, 0xe0, 255);
+
+ #undef SETCOL
+ }
+ else {
+ /* just copy color set specified */
+ memcpy(&grp->cs, &agrp->cs, sizeof(ThemeWireColor));
+ }
+ }
+ }
+
BLI_addtail(&act->groups, grp);
}
@@ -3570,6 +3597,8 @@ static void mouse_actionchannels (short mval[])
/* select/deselect */
select_icu_channel(act, icu, SELECT_INVERT);
}
+
+ allspace(REMAKEIPO, 0);
}
break;
case ACTTYPE_CONCHAN:
diff --git a/source/blender/src/editarmature.c b/source/blender/src/editarmature.c
index a93d81e04af..99c87097bd3 100644
--- a/source/blender/src/editarmature.c
+++ b/source/blender/src/editarmature.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* editarmature.c: Interface for creating and posing armature objects
*/
@@ -135,14 +132,14 @@ void make_boneList(ListBase *list, ListBase *bones, EditBone *parent)
eBone= MEM_callocN(sizeof(EditBone), "make_editbone");
/* Copy relevant data from bone to eBone */
- eBone->parent=parent;
- BLI_strncpy (eBone->name, curBone->name, 32);
+ eBone->parent= parent;
+ BLI_strncpy(eBone->name, curBone->name, 32);
eBone->flag = curBone->flag;
/* fix selection flags */
if (eBone->flag & BONE_SELECTED) {
eBone->flag |= BONE_TIPSEL;
- if(eBone->parent && (eBone->flag & BONE_CONNECTED))
+ if (eBone->parent && (eBone->flag & BONE_CONNECTED))
eBone->parent->flag |= BONE_TIPSEL;
else
eBone->flag |= BONE_ROOTSEL;
@@ -156,7 +153,7 @@ void make_boneList(ListBase *list, ListBase *bones, EditBone *parent)
eBone->roll= 0.0;
/* roll fixing */
- VecSubf (delta, eBone->tail, eBone->head);
+ VecSubf(delta, eBone->tail, eBone->head);
vec_roll_to_mat3(delta, 0.0, postmat);
Mat3CpyMat4(premat, curBone->arm_mat);
@@ -215,7 +212,7 @@ static void fix_bonelist_roll (ListBase *bonelist, ListBase *editbonelist)
/* Get the bone postmat */
Mat3CpyMat4(postmat, curBone->arm_mat);
-
+
Mat3Inv(imat, premat);
Mat3MulMat3(difmat, imat, postmat);
#if 0
@@ -262,16 +259,16 @@ void editbones_to_armature (ListBase *list, Object *ob)
fBone->parent= eBone->parent;
}
printf("Warning: removed zero sized bone: %s\n", eBone->name);
- BLI_freelinkN (list, eBone);
+ BLI_freelinkN(list, eBone);
}
}
/* Copy the bones from the editData into the armature */
for (eBone=list->first; eBone; eBone=eBone->next) {
- newBone= MEM_callocN (sizeof(Bone), "bone");
+ newBone= MEM_callocN(sizeof(Bone), "bone");
eBone->temp= newBone; /* Associate the real Bones with the EditBones */
- BLI_strncpy (newBone->name, eBone->name, 32);
+ BLI_strncpy(newBone->name, eBone->name, 32);
memcpy(newBone->head, eBone->head, sizeof(float)*3);
memcpy(newBone->tail, eBone->tail, sizeof(float)*3);
newBone->flag= eBone->flag;
@@ -297,8 +294,8 @@ void editbones_to_armature (ListBase *list, Object *ob)
for (eBone=list->first;eBone;eBone=eBone->next) {
newBone= (Bone *)eBone->temp;
if (eBone->parent) {
- newBone->parent=(Bone *)eBone->parent->temp;
- BLI_addtail(&newBone->parent->childbase,newBone);
+ newBone->parent= (Bone *)eBone->parent->temp;
+ BLI_addtail(&newBone->parent->childbase, newBone);
{
float M_boneRest[3][3];
@@ -307,11 +304,11 @@ void editbones_to_armature (ListBase *list, Object *ob)
float delta[3];
/* Get the parent's matrix (rotation only) */
- VecSubf (delta, eBone->parent->tail, eBone->parent->head);
+ VecSubf(delta, eBone->parent->tail, eBone->parent->head);
vec_roll_to_mat3(delta, eBone->parent->roll, M_parentRest);
/* Get this bone's matrix (rotation only) */
- VecSubf (delta, eBone->tail, eBone->head);
+ VecSubf(delta, eBone->tail, eBone->head);
vec_roll_to_mat3(delta, eBone->roll, M_boneRest);
/* Invert the parent matrix */
@@ -327,7 +324,7 @@ void editbones_to_armature (ListBase *list, Object *ob)
}
/* ...otherwise add this bone to the armature's bonebase */
else
- BLI_addtail(&arm->bonebase,newBone);
+ BLI_addtail(&arm->bonebase, newBone);
}
/* Make a pass through the new armature to fix rolling */
@@ -336,7 +333,7 @@ void editbones_to_armature (ListBase *list, Object *ob)
/* so all users of this armature should get rebuilt */
for (obt= G.main->object.first; obt; obt= obt->id.next) {
- if(obt->data==arm)
+ if (obt->data==arm)
armature_rebuild_pose(obt, arm);
}
@@ -558,7 +555,7 @@ int join_armature(void)
/* if(G.obedit) return; */ /* Alredy checked in join_menu() */
ob= OBACT;
- if(ob->type!=OB_ARMATURE) return 0;
+ if (ob->type!=OB_ARMATURE) return 0;
if (object_data_is_libdata(ob)) {
error_libdata();
return 0;
@@ -573,10 +570,10 @@ int join_armature(void)
for (base=FIRSTBASE; base; base=nextbase) {
nextbase = base->next;
if (TESTBASE(base)){
- if ((base->object->type==OB_ARMATURE) && (base->object!=ob)){
+ if ((base->object->type==OB_ARMATURE) && (base->object!=ob)) {
/* Make a list of editbones in current armature */
eblist.first=eblist.last= NULL;
- make_boneList (&eblist, &((bArmature*)base->object->data)->bonebase,NULL);
+ make_boneList(&eblist, &((bArmature *)base->object->data)->bonebase, NULL);
/* Get Pose of current armature */
opose= base->object->pose;
@@ -591,7 +588,7 @@ int join_armature(void)
curbone= editbone_name_exists(&eblist, pchan->name);
/* Get new name */
- unique_editbone_name (&ebbase, curbone->name);
+ unique_editbone_name(&ebbase, curbone->name);
/* Transform the bone */
{
@@ -653,6 +650,223 @@ int join_armature(void)
return 1;
}
+/* Helper function for armature separating - link fixing */
+static void separated_armature_fix_links(Object *origArm, Object *newArm, ListBase *edbo)
+{
+ Object *ob;
+ bPoseChannel *pchan;
+ bConstraint *con;
+ EditBone *ebo, *ebn;
+
+ /* let's go through all objects in database */
+ for (ob= G.main->object.first; ob; ob= ob->id.next) {
+ /* do some object-type specific things */
+ if (ob->type == OB_ARMATURE) {
+ for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
+ for (con= pchan->constraints.first; con; con= con->next) {
+ bConstraintTypeInfo *cti= constraint_get_typeinfo(con);
+ ListBase targets = {NULL, NULL};
+ bConstraintTarget *ct;
+
+ /* constraint targets */
+ if (cti && cti->get_constraint_targets) {
+ cti->get_constraint_targets(con, &targets);
+
+ for (ct= targets.first; ct; ct= ct->next) {
+ /* any targets which point to original armature are redirected to the new one only if:
+ * - the target isn't the original armature itself
+ * - the target is one of the bones which were moved into newArm
+ */
+ if ((ct->tar == origArm) && (ct->subtarget[0] != 0)) {
+ for (ebo=edbo->first, ebn=edbo->last; ebo && ebn; ebo=ebo->next, ebn=ebn->prev) {
+ /* check if either one matches */
+ if ( (strcmp(ebo->name, ct->subtarget)==0) ||
+ (strcmp(ebn->name, ct->subtarget)==0) )
+ {
+ ct->tar= newArm;
+ printf("arm = '%s' pchan = '%s', ebo = '%s', YES \n", ob->id.name+2, pchan->name, ebo->name);
+ printf("arm = '%s' pchan = '%s', ebn = '%s', YES \n", ob->id.name+2, pchan->name, ebn->name);
+ break;
+ }
+ else {
+ printf("arm = '%s' pchan = '%s', ebo = '%s', NOT\n", ob->id.name+2, pchan->name, ebo->name);
+ printf("arm = '%s' pchan = '%s', ebn = '%s', NOT \n", ob->id.name+2, pchan->name, ebn->name);
+ }
+
+ /* check if both ends have met (to stop checking) */
+ if (ebo == ebn) break;
+ }
+ }
+ }
+
+ if (cti->flush_constraint_targets)
+ cti->flush_constraint_targets(con, &targets, 0);
+ }
+ }
+ }
+ }
+
+ /* fix object-level constraints */
+ if (ob != origArm) {
+ for (con= ob->constraints.first; con; con= con->next) {
+ bConstraintTypeInfo *cti= constraint_get_typeinfo(con);
+ ListBase targets = {NULL, NULL};
+ bConstraintTarget *ct;
+
+ /* constraint targets */
+ if (cti && cti->get_constraint_targets) {
+ cti->get_constraint_targets(con, &targets);
+
+ for (ct= targets.first; ct; ct= ct->next) {
+ /* any targets which point to original armature are redirected to the new one only if:
+ * - the target isn't the original armature itself
+ * - the target is one of the bones which were moved into newArm
+ */
+ if ((ct->tar == origArm) && (ct->subtarget[0] != 0)) {
+ for (ebo=edbo->first, ebn=edbo->last; ebo && ebn; ebo=ebo->next, ebn=ebn->prev) {
+ /* check if either one matches */
+ if ( (strcmp(ebo->name, ct->subtarget)==0) ||
+ (strcmp(ebn->name, ct->subtarget)==0) )
+ {
+ ct->tar= newArm;
+ break;
+ }
+
+ /* check if both ends have met (to stop checking) */
+ if (ebo == ebn) break;
+ }
+ }
+ }
+
+ if (cti->flush_constraint_targets)
+ cti->flush_constraint_targets(con, &targets, 0);
+ }
+ }
+ }
+
+ /* See if an object is parented to this armature */
+ if ((ob->parent) && (ob->parent == origArm)) {
+ /* Is object parented to a bone of this src armature? */
+ if (ob->partype==PARBONE) {
+ /* bone name in object */
+ for (ebo=edbo->first, ebn=edbo->last; ebo && ebn; ebo=ebo->next, ebn=ebn->prev) {
+ /* check if either one matches */
+ if ( (strcmp(ebo->name, ob->parsubstr)==0) ||
+ (strcmp(ebn->name, ob->parsubstr)==0) )
+ {
+ ob->parent= newArm;
+ break;
+ }
+
+ /* check if both ends have met (to stop checking) */
+ if (ebo == ebn) break;
+ }
+ }
+ }
+ }
+}
+
+void separate_armature (void)
+{
+ EditBone *ebo, *ebn;
+ Object *oldob;
+ Base *base, *oldbase;
+ bArmature *arm;
+ ListBase edbo = {NULL, NULL};
+
+ // 31Mar08 - Aligorith:
+ // this tool is currently not ready for production use, as it will still
+ // crash in some cases, and also constraint relinking isn't working yet
+ // remove the following two lines to test this tool... you have been warned!
+ okee("Not implemented (WIP)");
+ return;
+
+ if ( G.vd==0 || (G.vd->lay & G.obedit->lay)==0 ) return;
+ if ( okee("Separate")==0 ) return;
+
+ waitcursor(1);
+
+ arm= G.obedit->data;
+
+ /* we are going to trick everything as follows:
+ * 1. duplicate base: this is the new one, remember old pointer
+ * 2. set aside all NOT selected bones
+ * 3. load_editArmature(): this will be the new base
+ * 4. freelist and restore old armature
+ */
+
+ /* only edit-base selected */
+ base= FIRSTBASE;
+ while(base) {
+ if(base->lay & G.vd->lay) {
+ if(base->object==G.obedit) base->flag |= 1;
+ else base->flag &= ~1;
+ }
+ base= base->next;
+ }
+
+ /* set aside: everything that is not selected */
+ for (ebo= G.edbo.first; ebo; ebo= ebn) {
+ ebn= ebo->next;
+
+ /* remove from original, and move to duplicate if not-selected */
+ if ((ebo->flag & BONE_SELECTED)==0) {
+ EditBone *curbone;
+
+ /* need to make sure children don't still refer to this only if they are selected
+ * - potentially slow O(n*n) situation here...
+ */
+ for (curbone= G.edbo.first; curbone; curbone=curbone->next) {
+ if ((curbone->parent == ebo) && (curbone->flag & BONE_SELECTED)) {
+ curbone->parent= ebo->parent;
+ curbone->flag &= ~BONE_CONNECTED;
+ }
+ }
+
+ BLI_remlink(&G.edbo, ebo);
+ BLI_addtail(&edbo, ebo);
+ }
+ }
+
+ oldob= G.obedit;
+ oldbase= BASACT;
+
+ adduplicate(1, 0); /* no transform and zero so do get a linked dupli */
+
+ G.obedit= BASACT->object; /* basact is set in adduplicate() */
+
+ G.obedit->data= copy_armature(arm);
+ /* because new armature is a copy: reduce user count */
+ arm->id.us--;
+
+ load_editArmature();
+
+ BASACT->flag &= ~SELECT;
+
+ /* fix links before depsgraph flushes */ // err... or after?
+ printf("oldob = %p, obact = %p \n", oldob, G.obedit);
+ separated_armature_fix_links(oldob, G.obedit, &G.edbo);
+
+ if (G.edbo.first) free_editArmature();
+
+ G.edbo = edbo;
+
+ G.obedit= 0; /* displists behave different in edit mode */ // needed?
+ DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA); /* this is the separated one */
+ DAG_object_flush_update(G.scene, oldob, OB_RECALC_DATA); /* this is the original one */
+
+ G.obedit= oldob;
+ BASACT= oldbase;
+ BASACT->flag |= SELECT;
+
+ waitcursor(0);
+
+ countall();
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWBUTSEDIT, 0);
+ allqueue(REDRAWOOPS, 0);
+}
+
/* **************** END tools on Editmode Armature **************** */
/* **************** PoseMode & EditMode *************************** */
@@ -1149,17 +1363,17 @@ static EditBone * get_nearest_editbonepoint (int findunsel, int *selmask)
static void delete_bone(EditBone* exBone)
{
- EditBone *curBone;
+ EditBone *curBone;
- /* Find any bones that refer to this bone */
- for (curBone=G.edbo.first;curBone;curBone=curBone->next){
- if (curBone->parent==exBone){
+ /* Find any bones that refer to this bone */
+ for (curBone=G.edbo.first;curBone;curBone=curBone->next) {
+ if (curBone->parent==exBone) {
curBone->parent=exBone->parent;
curBone->flag &= ~BONE_CONNECTED;
}
}
- BLI_freelinkN (&G.edbo,exBone);
+ BLI_freelinkN(&G.edbo,exBone);
}
/* only editmode! */
@@ -1601,13 +1815,13 @@ static void add_primitive_bone(Object *ob, short newob)
float obmat[3][3], curs[3], viewmat[3][3], totmat[3][3], imat[3][3];
EditBone *bone;
- VECCOPY (curs, give_cursor());
+ VECCOPY(curs, give_cursor());
/* Get inverse point for head and orientation for tail */
Mat4Invert(G.obedit->imat, G.obedit->obmat);
Mat4MulVecfl(G.obedit->imat, curs);
- if ( !(newob) || U.flag & USER_ADD_VIEWALIGNED) Mat3CpyMat4(obmat, G.vd->viewmat);
+ if ( !(newob) || (U.flag & USER_ADD_VIEWALIGNED) ) Mat3CpyMat4(obmat, G.vd->viewmat);
else Mat3One(obmat);
Mat3CpyMat4(viewmat, G.obedit->obmat);
@@ -1621,7 +1835,7 @@ static void add_primitive_bone(Object *ob, short newob)
VECCOPY(bone->head, curs);
- if ( !(newob) || U.flag & USER_ADD_VIEWALIGNED)
+ if ( !(newob) || (U.flag & USER_ADD_VIEWALIGNED) )
VecAddf(bone->tail, bone->head, imat[1]); // bone with unit length 1
else
VecAddf(bone->tail, bone->head, imat[2]); // bone with unit length 1, pointing up Z
@@ -1636,15 +1850,15 @@ void add_primitiveArmature(int type)
/* this function also comes from an info window */
if ELEM(curarea->spacetype, SPACE_VIEW3D, SPACE_INFO); else return;
- if(G.vd==NULL) return;
+ if (G.vd==NULL) return;
- G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT);
+ G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT+G_SCULPTMODE);
setcursor_space(SPACE_VIEW3D, CURSOR_STD);
check_editmode(OB_ARMATURE);
/* If we're not the "obedit", make a new object and enter editmode */
- if(G.obedit==NULL) {
+ if (G.obedit==NULL) {
add_object(OB_ARMATURE);
base_init_from_view3d(BASACT, G.vd);
G.obedit= BASACT->object;
@@ -1661,7 +1875,7 @@ void add_primitiveArmature(int type)
countall(); // flushes selection!
- if ( (newob) && !(U.flag & USER_ADD_EDITMODE)) {
+ if ((newob) && !(U.flag & USER_ADD_EDITMODE)) {
exit_editmode(2);
}
@@ -1680,17 +1894,23 @@ void addvert_armature(void)
TEST_EDITARMATURE;
/* find the active or selected bone */
- for (ebone = G.edbo.first; ebone; ebone=ebone->next)
- if(arm->layer & ebone->layer)
- if(ebone->flag & (BONE_ACTIVE|BONE_TIPSEL)) break;
+ for (ebone = G.edbo.first; ebone; ebone=ebone->next) {
+ if (arm->layer & ebone->layer) {
+ if (ebone->flag & (BONE_ACTIVE|BONE_TIPSEL))
+ break;
+ }
+ }
- if(ebone==NULL) {
- for (ebone = G.edbo.first; ebone; ebone=ebone->next)
- if(arm->layer & ebone->layer)
- if(ebone->flag & (BONE_ACTIVE|BONE_ROOTSEL)) break;
-
- if(ebone==NULL)
+ if (ebone==NULL) {
+ for (ebone = G.edbo.first; ebone; ebone=ebone->next) {
+ if (arm->layer & ebone->layer) {
+ if (ebone->flag & (BONE_ACTIVE|BONE_ROOTSEL))
+ break;
+ }
+ }
+ if (ebone == NULL)
return;
+
to_root= 1;
}
@@ -1698,12 +1918,12 @@ void addvert_armature(void)
/* we re-use code for mirror editing... */
flipbone= NULL;
- if(arm->flag & ARM_MIRROR_EDIT)
+ if (arm->flag & ARM_MIRROR_EDIT)
flipbone= armature_bone_get_mirrored(ebone);
- for(a=0; a<2; a++) {
- if(a==1) {
- if(flipbone==NULL)
+ for (a=0; a<2; a++) {
+ if (a==1) {
+ if (flipbone==NULL)
break;
else {
SWAP(EditBone *, flipbone, ebone);
@@ -1713,7 +1933,7 @@ void addvert_armature(void)
newbone= add_editbone(ebone->name);
newbone->flag |= BONE_ACTIVE;
- if(to_root) {
+ if (to_root) {
VECCOPY(newbone->head, ebone->head);
newbone->rad_head= ebone->rad_tail;
newbone->parent= ebone->parent;
@@ -1729,7 +1949,7 @@ void addvert_armature(void)
VECCOPY(newbone->tail, curs);
VecSubf(newbone->tail, newbone->tail, G.obedit->obmat[3]);
- if(a==1)
+ if (a==1)
newbone->tail[0]= -newbone->tail[0];
Mat3CpyMat4(mat, G.obedit->obmat);
@@ -1742,13 +1962,10 @@ void addvert_armature(void)
}
-
countall();
BIF_undo_push("Add Bone");
allqueue(REDRAWVIEW3D, 0);
-
- while(get_mbut()&R_MOUSE);
}
/* adds an EditBone between the nominated locations (should be in the right space) */
@@ -1770,8 +1987,8 @@ static EditBone *get_named_editbone(char *name)
EditBone *eBone;
if (name)
- for (eBone=G.edbo.first; eBone; eBone=eBone->next){
- if (!strcmp (name, eBone->name))
+ for (eBone=G.edbo.first; eBone; eBone=eBone->next) {
+ if (!strcmp(name, eBone->name))
return eBone;
}
@@ -1788,8 +2005,7 @@ static void update_dup_subtarget(EditBone *dupBone)
bPoseChannel *chan;
bConstraint *curcon;
ListBase *conlist;
-
-
+
if ( (chan = verify_pose_channel(OBACT->pose, dupBone->name)) ) {
if ( (conlist = &chan->constraints) ) {
for (curcon = conlist->first; curcon; curcon=curcon->next) {
@@ -1851,10 +2067,9 @@ void adduplicate_armature(void)
}
/* Find the selected bones and duplicate them as needed */
- for (curBone=G.edbo.first; curBone && curBone!=firstDup; curBone=curBone->next){
+ for (curBone=G.edbo.first; curBone && curBone!=firstDup; curBone=curBone->next) {
if (arm->layer & curBone->layer) {
if (curBone->flag & BONE_SELECTED) {
-
eBone=MEM_callocN(sizeof(EditBone), "addup_editbone");
eBone->flag |= BONE_SELECTED;
@@ -1864,8 +2079,8 @@ void adduplicate_armature(void)
curBone->temp = eBone;
eBone->temp = curBone;
- unique_editbone_name (&G.edbo, eBone->name);
- BLI_addtail (&G.edbo, eBone);
+ unique_editbone_name(&G.edbo, eBone->name);
+ BLI_addtail(&G.edbo, eBone);
if (!firstDup)
firstDup=eBone;
@@ -1875,7 +2090,7 @@ void adduplicate_armature(void)
if (OBACT->pose) {
bPoseChannel *chanold, *channew;
ListBase *listold, *listnew;
-
+
chanold = verify_pose_channel (OBACT->pose, curBone->name);
if (chanold) {
listold = &chanold->constraints;
@@ -1908,23 +2123,21 @@ void adduplicate_armature(void)
}
/* Run though the list and fix the pointers */
- for (curBone=G.edbo.first; curBone && curBone!=firstDup; curBone=curBone->next){
- if(arm->layer & curBone->layer) {
- if (curBone->flag & BONE_SELECTED){
+ for (curBone=G.edbo.first; curBone && curBone!=firstDup; curBone=curBone->next) {
+ if (arm->layer & curBone->layer) {
+ if (curBone->flag & BONE_SELECTED) {
eBone=(EditBone*) curBone->temp;
/* If this bone has no parent,
Set the duplicate->parent to NULL
*/
- if (!curBone->parent){
+ if (!curBone->parent)
eBone->parent = NULL;
- }
/* If this bone has a parent that IS selected,
Set the duplicate->parent to the curBone->parent->duplicate
*/
- else if (curBone->parent->flag & BONE_SELECTED){
- eBone->parent=(EditBone*) curBone->parent->temp;
- }
+ else if (curBone->parent->flag & BONE_SELECTED)
+ eBone->parent= (EditBone *)curBone->parent->temp;
/* If this bone has a parent that IS not selected,
Set the duplicate->parent to the curBone->parent
*/
@@ -1942,8 +2155,8 @@ void adduplicate_armature(void)
/* Deselect the old bones and select the new ones */
- for (curBone=G.edbo.first; curBone && curBone!=firstDup; curBone=curBone->next){
- if(arm->layer & curBone->layer)
+ for (curBone=G.edbo.first; curBone && curBone!=firstDup; curBone=curBone->next) {
+ if (arm->layer & curBone->layer)
curBone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL | BONE_ACTIVE);
}
@@ -2032,12 +2245,11 @@ static void fill_add_joint (EditBone *ebo, short eb_tail, ListBase *points)
VECCOPY(vec, ebo->head);
}
- // FIXME: this algorithm sucks... it misses things it shouldn't
for (ebp= points->first; ebp; ebp= ebp->next) {
if (VecEqual(ebp->vec, vec)) {
if (eb_tail) {
if ((ebp->head_owner) && (ebp->head_owner->parent == ebo)) {
- /* so this bone's tail owner is this bone*/
+ /* so this bone's tail owner is this bone */
ebp->tail_owner= ebo;
found= 1;
break;
@@ -2344,9 +2556,9 @@ void hide_selected_armature_bones(void)
bArmature *arm= G.obedit->data;
EditBone *ebone;
- for (ebone = G.edbo.first; ebone; ebone=ebone->next){
- if(arm->layer & ebone->layer) {
- if(ebone->flag & (BONE_SELECTED)) {
+ for (ebone = G.edbo.first; ebone; ebone=ebone->next) {
+ if (arm->layer & ebone->layer) {
+ if (ebone->flag & (BONE_SELECTED)) {
ebone->flag &= ~(BONE_TIPSEL|BONE_SELECTED|BONE_ROOTSEL|BONE_ACTIVE);
ebone->flag |= BONE_HIDDEN_A;
}
@@ -2362,10 +2574,10 @@ void hide_unselected_armature_bones(void)
{
EditBone *ebone;
- for (ebone = G.edbo.first; ebone; ebone=ebone->next){
+ for (ebone = G.edbo.first; ebone; ebone=ebone->next) {
bArmature *arm= G.obedit->data;
- if(arm->layer & ebone->layer) {
- if(ebone->flag & (BONE_TIPSEL|BONE_SELECTED|BONE_ROOTSEL));
+ if (arm->layer & ebone->layer) {
+ if (ebone->flag & (BONE_TIPSEL|BONE_SELECTED|BONE_ROOTSEL));
else {
ebone->flag &= ~BONE_ACTIVE;
ebone->flag |= BONE_HIDDEN_A;
@@ -2382,10 +2594,10 @@ void show_all_armature_bones(void)
{
EditBone *ebone;
- for (ebone = G.edbo.first; ebone; ebone=ebone->next){
+ for (ebone = G.edbo.first; ebone; ebone=ebone->next) {
bArmature *arm= G.obedit->data;
if(arm->layer & ebone->layer) {
- if(ebone->flag & BONE_HIDDEN_A) {
+ if (ebone->flag & BONE_HIDDEN_A) {
ebone->flag |= (BONE_TIPSEL|BONE_SELECTED|BONE_ROOTSEL);
ebone->flag &= ~BONE_HIDDEN_A;
}
@@ -2554,7 +2766,7 @@ static void editbone_clear_parent(EditBone *ebone, int mode)
ebone->parent->flag &= ~(BONE_TIPSEL);
}
- if(mode==1) ebone->parent= NULL;
+ if (mode==1) ebone->parent= NULL;
ebone->flag &= ~BONE_CONNECTED;
}
@@ -2566,13 +2778,12 @@ void clear_bone_parent(void)
short val;
val= pupmenu("Clear Parent%t|Clear Parent%x1|Disconnect Bone%x2");
+ if (val<1) return;
- if(val<1) return;
for (ebone = G.edbo.first; ebone; ebone=ebone->next) {
- if(arm->layer & ebone->layer) {
- if(ebone->flag & BONE_SELECTED) {
-
- if(arm->flag & ARM_MIRROR_EDIT)
+ if (arm->layer & ebone->layer) {
+ if (ebone->flag & BONE_SELECTED) {
+ if (arm->flag & ARM_MIRROR_EDIT)
flipbone = armature_bone_get_mirrored(ebone);
if (flipbone)
@@ -2581,6 +2792,7 @@ void clear_bone_parent(void)
}
}
}
+
countall(); // checks selection
allqueue(REDRAWVIEW3D, 0);
allqueue(REDRAWBUTSEDIT, 0);
@@ -2595,8 +2807,8 @@ static EditBone *editbone_name_exists (ListBase *ebones, char *name)
if (ebones == NULL) ebones = &G.edbo;
- for (eBone=ebones->first; eBone; eBone=eBone->next){
- if (!strcmp (name, eBone->name))
+ for (eBone=ebones->first; eBone; eBone=eBone->next) {
+ if (!strcmp(name, eBone->name))
return eBone;
}
return NULL;
@@ -2609,21 +2821,19 @@ void unique_editbone_name (ListBase *ebones, char *name)
int number;
char *dot;
-
if (editbone_name_exists(ebones, name)) {
-
/* Strip off the suffix, if it's a number */
number= strlen(name);
- if(number && isdigit(name[number-1])) {
+ if (number && isdigit(name[number-1])) {
dot= strrchr(name, '.'); // last occurrance
if (dot)
*dot=0;
}
- for (number = 1; number <=999; number++){
+ for (number = 1; number <=999; number++) {
sprintf (tempname, "%s.%03d", name, number);
- if (!editbone_name_exists(ebones, tempname)){
- BLI_strncpy (name, tempname, 32);
+ if (!editbone_name_exists(ebones, tempname)) {
+ BLI_strncpy(name, tempname, 32);
return;
}
}
@@ -2641,11 +2851,11 @@ void extrude_armature(int forked)
TEST_EDITARMATURE;
/* since we allow root extrude too, we have to make sure selection is OK */
- for (ebone = G.edbo.first; ebone; ebone=ebone->next){
- if(arm->layer & ebone->layer) {
- if(ebone->flag & BONE_ROOTSEL) {
- if(ebone->parent && (ebone->flag & BONE_CONNECTED)) {
- if(ebone->parent->flag & BONE_TIPSEL)
+ for (ebone = G.edbo.first; ebone; ebone=ebone->next) {
+ if (arm->layer & ebone->layer) {
+ if (ebone->flag & BONE_ROOTSEL) {
+ if (ebone->parent && (ebone->flag & BONE_CONNECTED)) {
+ if (ebone->parent->flag & BONE_TIPSEL)
ebone->flag &= ~BONE_ROOTSEL;
}
}
@@ -2653,38 +2863,36 @@ void extrude_armature(int forked)
}
/* Duplicate the necessary bones */
- for (ebone = G.edbo.first; ((ebone) && (ebone!=first)); ebone=ebone->next){
- if(arm->layer & ebone->layer) {
-
+ for (ebone = G.edbo.first; ((ebone) && (ebone!=first)); ebone=ebone->next) {
+ if (arm->layer & ebone->layer) {
/* we extrude per definition the tip */
do_extrude= 0;
if (ebone->flag & (BONE_TIPSEL|BONE_SELECTED))
do_extrude= 1;
- else if(ebone->flag & BONE_ROOTSEL) {
+ else if (ebone->flag & BONE_ROOTSEL) {
/* but, a bone with parent deselected we do the root... */
- if(ebone->parent && (ebone->parent->flag & BONE_TIPSEL));
+ if (ebone->parent && (ebone->parent->flag & BONE_TIPSEL));
else do_extrude= 2;
}
if (do_extrude) {
-
/* we re-use code for mirror editing... */
flipbone= NULL;
if(arm->flag & ARM_MIRROR_EDIT) {
flipbone= armature_bone_get_mirrored(ebone);
if (flipbone) {
forked= 0; // we extrude 2 different bones
- if(flipbone->flag & (BONE_TIPSEL|BONE_ROOTSEL|BONE_SELECTED))
+ if (flipbone->flag & (BONE_TIPSEL|BONE_ROOTSEL|BONE_SELECTED))
/* don't want this bone to be selected... */
flipbone->flag &= ~(BONE_TIPSEL|BONE_SELECTED|BONE_ROOTSEL|BONE_ACTIVE);
}
- if(flipbone==NULL && forked)
+ if ((flipbone==NULL) && (forked))
flipbone= ebone;
}
- for(a=0; a<2; a++) {
- if(a==1) {
- if(flipbone==NULL)
+ for (a=0; a<2; a++) {
+ if (a==1) {
+ if (flipbone==NULL)
break;
else {
SWAP(EditBone *, flipbone, ebone);
@@ -2694,7 +2902,7 @@ void extrude_armature(int forked)
totbone++;
newbone = MEM_callocN(sizeof(EditBone), "extrudebone");
- if(do_extrude==1) {
+ if (do_extrude==1) {
VECCOPY (newbone->head, ebone->tail);
VECCOPY (newbone->tail, newbone->head);
newbone->parent = ebone;
@@ -2708,7 +2916,7 @@ void extrude_armature(int forked)
newbone->flag= BONE_TIPSEL;
}
-
+
newbone->weight= ebone->weight;
newbone->dist= ebone->dist;
newbone->xwidth= ebone->xwidth;
@@ -2720,11 +2928,11 @@ void extrude_armature(int forked)
newbone->segments= 1;
newbone->layer= ebone->layer;
- if(newbone->parent) newbone->flag |= BONE_CONNECTED;
+ if (newbone->parent) newbone->flag |= BONE_CONNECTED;
BLI_strncpy (newbone->name, ebone->name, 32);
- if(flipbone && forked) { // only set if mirror edit
+ if (flipbone && forked) { // only set if mirror edit
if(strlen(newbone->name)<30) {
if(a==0) strcat(newbone->name, "_L");
else strcat(newbone->name, "_R");
@@ -2738,9 +2946,8 @@ void extrude_armature(int forked)
first = newbone;
/* restore ebone if we were flipping */
- if(a==1 && flipbone)
+ if (a==1 && flipbone)
SWAP(EditBone *, flipbone, ebone);
-
}
}
@@ -2749,7 +2956,7 @@ void extrude_armature(int forked)
}
}
/* if only one bone, make this one active */
- if(totbone==1 && first) first->flag |= BONE_ACTIVE;
+ if (totbone==1 && first) first->flag |= BONE_ACTIVE;
/* Transform the endpoints */
countall(); // flushes selection!
@@ -2769,32 +2976,33 @@ void subdivide_armature(int numcuts)
EditBone *ebone, *newbone, *tbone, *mbone;
int a, i;
- if(numcuts < 1) return;
+ if (numcuts < 1) return;
for (mbone = G.edbo.last; mbone; mbone= mbone->prev) {
- if(arm->layer & mbone->layer) {
- if(mbone->flag & BONE_SELECTED) {
- for(i=numcuts+1; i>1; i--) {
+ if (arm->layer & mbone->layer) {
+ if (mbone->flag & BONE_SELECTED) {
+ for (i=numcuts+1; i>1; i--) {
/* compute cut ratio first */
float cutratio= 1/(float)i;
float cutratioI= 1-cutratio;
/* take care of mirrored stuff */
- for(a=0; a<2; a++) {
+ for (a=0; a<2; a++) {
float val1[3];
float val2[3];
float val3[3];
/* try to find mirrored bone on a != 0 */
- if(a) {
- if(arm->flag & ARM_MIRROR_EDIT)
+ if (a) {
+ if (arm->flag & ARM_MIRROR_EDIT)
ebone= armature_bone_get_mirrored(mbone);
- else ebone= NULL;
+ else
+ ebone= NULL;
}
else
ebone= mbone;
- if(ebone) {
+ if (ebone) {
newbone= MEM_mallocN(sizeof(EditBone), "ebone subdiv");
*newbone = *ebone;
BLI_addtail(&G.edbo, newbone);
@@ -2820,8 +3028,8 @@ void subdivide_armature(int numcuts)
unique_editbone_name (&G.edbo, newbone->name);
/* correct parent bones */
- for (tbone = G.edbo.first; tbone; tbone=tbone->next){
- if(tbone->parent==ebone)
+ for (tbone = G.edbo.first; tbone; tbone=tbone->next) {
+ if (tbone->parent==ebone)
tbone->parent= newbone;
}
newbone->parent= ebone;
@@ -2832,7 +3040,7 @@ void subdivide_armature(int numcuts)
}
}
- if(numcuts==1) BIF_undo_push("Subdivide");
+ if (numcuts==1) BIF_undo_push("Subdivide");
else BIF_undo_push("Subdivide multi");
}
@@ -2932,7 +3140,7 @@ int do_pose_selectbuffer(Base *base, unsigned int *buffer, short hits)
bArmature *arm= ob->data;
/* since we do unified select, we don't shift+select a bone if the armature object was not active yet */
- if (!(G.qual & LR_SHIFTKEY) || base!=BASACT){
+ if (!(G.qual & LR_SHIFTKEY) || (base != BASACT)) {
deselectall_posearmature(ob, 0, 0);
nearBone->flag |= (BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL|BONE_ACTIVE);
select_actionchannel_by_name(ob->action, nearBone->name, 1);
@@ -2949,7 +3157,7 @@ int do_pose_selectbuffer(Base *base, unsigned int *buffer, short hits)
select_actionchannel_by_name(ob->action, nearBone->name, 0);
}
}
- else{
+ else {
bone_looper(ob, arm->bonebase.first, NULL, clear_active_flag);
nearBone->flag |= (BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL|BONE_ACTIVE);
@@ -2958,8 +3166,8 @@ int do_pose_selectbuffer(Base *base, unsigned int *buffer, short hits)
}
/* in weightpaint we select the associated vertex group too */
- if(G.f & G_WEIGHTPAINT) {
- if(nearBone->flag & BONE_ACTIVE) {
+ if (G.f & G_WEIGHTPAINT) {
+ if (nearBone->flag & BONE_ACTIVE) {
vertexgroup_select_by_name(OBACT, nearBone->name);
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
}
@@ -2974,7 +3182,6 @@ int do_pose_selectbuffer(Base *base, unsigned int *buffer, short hits)
}
return nearBone!=NULL;
-
}
/* test==0: deselect all
@@ -2988,34 +3195,36 @@ void deselectall_posearmature (Object *ob, int test, int doundo)
int selectmode= 0;
/* we call this from outliner too, but with OBACT set OK */
- if(!ob || !ob->pose) return;
+ if (ELEM(NULL, ob, ob->pose)) return;
arm= get_armature(ob);
/* Determine if we're selecting or deselecting */
if (test==1) {
- for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next)
- if(pchan->bone->layer & arm->layer && !(pchan->bone->flag & BONE_HIDDEN_P))
- if(pchan->bone->flag & BONE_SELECTED)
+ for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
+ if ((pchan->bone->layer & arm->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {
+ if (pchan->bone->flag & BONE_SELECTED)
break;
+ }
+ }
- if (pchan==NULL)
+ if (pchan == NULL)
selectmode= 1;
}
- else if(test==2)
+ else if (test == 2)
selectmode= 2;
/* Set the flags accordingly */
- for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
- if(pchan->bone->layer & arm->layer && !(pchan->bone->flag & BONE_HIDDEN_P)) {
- if(selectmode==0) pchan->bone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL|BONE_ACTIVE);
- else if(selectmode==1) pchan->bone->flag |= BONE_SELECTED;
+ for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
+ if ((pchan->bone->layer & arm->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {
+ if (selectmode==0) pchan->bone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL|BONE_ACTIVE);
+ else if (selectmode==1) pchan->bone->flag |= BONE_SELECTED;
else pchan->bone->flag &= ~BONE_ACTIVE;
}
}
/* action editor */
deselect_actionchannels(ob->action, 0); /* deselects for sure */
- if(selectmode==1)
+ if (selectmode == 1)
deselect_actionchannels(ob->action, 1); /* swaps */
allqueue(REDRAWBUTSEDIT, 0);
@@ -3166,8 +3375,8 @@ static int dgroup_skinnable(Object *ob, Bone *bone, void *datap)
if (data->list != NULL) {
hgroup = (bDeformGroup ***) &data->list;
-
- for(a=0; a<segments; a++) {
+
+ for (a=0; a<segments; a++) {
**hgroup = defgroup;
++*hgroup;
}
@@ -3201,7 +3410,7 @@ static void envelope_bone_weighting(Object *ob, Mesh *mesh, float (*verts)[3], i
/* for each skinnable bone */
for (j=0; j < numbones; ++j) {
- if(!selected[j])
+ if (!selected[j])
continue;
bone = bonelist[j];
@@ -3295,15 +3504,15 @@ void add_verts_to_dgroups(Object *ob, Object *par, int heat, int mirror)
for (j=0; j < numbones; ++j) {
bone = bonelist[j];
dgroup = dgrouplist[j];
-
+
/* handle bbone */
- if(heat) {
- if(segments == 0) {
+ if (heat) {
+ if (segments == 0) {
segments = 1;
bbone = NULL;
-
- if(par->pose && (pchan=get_pose_channel(par->pose, bone->name))) {
- if(bone->segments > 1) {
+
+ if ((par->pose) && (pchan=get_pose_channel(par->pose, bone->name))) {
+ if (bone->segments > 1) {
segments = bone->segments;
bbone = b_bone_spline_setup(pchan, 1);
}
@@ -3314,10 +3523,10 @@ void add_verts_to_dgroups(Object *ob, Object *par, int heat, int mirror)
}
/* compute root and tip */
- if(bbone) {
+ if (bbone) {
VECCOPY(root[j], bbone[segments].mat[3]);
Mat4MulVecfl(bone->arm_mat, root[j]);
- if(segments+1 < bone->segments) {
+ if ((segments+1) < bone->segments) {
VECCOPY(tip[j], bbone[segments+1].mat[3])
Mat4MulVecfl(bone->arm_mat, tip[j]);
}
@@ -3333,7 +3542,7 @@ void add_verts_to_dgroups(Object *ob, Object *par, int heat, int mirror)
Mat4MulVecfl(par->obmat, tip[j]);
/* set selected */
- if(wpmode) {
+ if (wpmode) {
if ((arm->layer & bone->layer) && (bone->flag & BONE_SELECTED))
selected[j] = 1;
}
@@ -3341,16 +3550,17 @@ void add_verts_to_dgroups(Object *ob, Object *par, int heat, int mirror)
selected[j] = 1;
/* find flipped group */
- if(mirror) {
+ if (mirror) {
char name[32];
BLI_strncpy(name, dgroup->name, 32);
// 0 = don't strip off number extensions
bone_flip_name(name, 0);
- for (curdg = ob->defbase.first; curdg; curdg=curdg->next)
+ for (curdg = ob->defbase.first; curdg; curdg=curdg->next) {
if (!strcmp(curdg->name, name))
break;
+ }
dgroupflip[j] = curdg;
}
@@ -3364,7 +3574,7 @@ void add_verts_to_dgroups(Object *ob, Object *par, int heat, int mirror)
/* if in weight paint mode, use final verts from derivedmesh */
DerivedMesh *dm = mesh_get_derived_final(ob, CD_MASK_BAREMESH);
- if(dm->foreachMappedVert) {
+ if (dm->foreachMappedVert) {
dm->foreachMappedVert(dm, add_vgroups__mapFunc, (void*)verts);
vertsfilled = 1;
}
@@ -3387,12 +3597,14 @@ void add_verts_to_dgroups(Object *ob, Object *par, int heat, int mirror)
}
/* compute the weights based on gathered vertices and bones */
- if (heat)
+ if (heat) {
heat_bone_weighting(ob, mesh, verts, numbones, dgrouplist, dgroupflip,
root, tip, selected);
- else
+ }
+ else {
envelope_bone_weighting(ob, mesh, verts, numbones, bonelist, dgrouplist,
dgroupflip, root, tip, selected, Mat4ToScalef(par->obmat));
+ }
/* free the memory allocated */
MEM_freeN(bonelist);
@@ -3425,7 +3637,7 @@ void create_vgroups_from_armature(Object *ob, Object *par)
"Name Groups %x2|"
"Create From Envelopes %x3|"
"Create From Bone Heat %x4|");
- switch (mode){
+ switch (mode) {
case 2:
/* Traverse the bone list, trying to create empty vertex
* groups cooresponding to the bone.
@@ -3445,7 +3657,6 @@ void create_vgroups_from_armature(Object *ob, Object *par)
*/
add_verts_to_dgroups(ob, par, (mode == 4), 0);
break;
-
}
}
@@ -3453,7 +3664,7 @@ static int hide_selected_pose_bone(Object *ob, Bone *bone, void *ptr)
{
bArmature *arm= ob->data;
- if(arm->layer & bone->layer) {
+ if (arm->layer & bone->layer) {
if (bone->flag & BONE_SELECTED) {
bone->flag |= BONE_HIDDEN_P;
bone->flag &= ~(BONE_SELECTED|BONE_ACTIVE);
@@ -3483,7 +3694,8 @@ static int hide_unselected_pose_bone(Object *ob, Bone *bone, void *ptr)
{
bArmature *arm= ob->data;
- if(arm->layer & bone->layer) {
+ if (arm->layer & bone->layer) {
+ // hrm... typo here?
if (~bone->flag & BONE_SELECTED) {
bone->flag |= BONE_HIDDEN_P;
bone->flag &= ~BONE_ACTIVE;
@@ -3497,7 +3709,7 @@ void hide_unselected_pose_bones(void)
{
bArmature *arm;
- arm=get_armature (OBACT);
+ arm=get_armature(OBACT);
if (!arm)
return;
@@ -3515,7 +3727,7 @@ static int show_pose_bone(Object *ob, Bone *bone, void *ptr)
{
bArmature *arm= ob->data;
- if(arm->layer & bone->layer) {
+ if (arm->layer & bone->layer) {
if (bone->flag & BONE_HIDDEN_P) {
bone->flag &= ~BONE_HIDDEN_P;
bone->flag |= BONE_SELECTED;
@@ -3530,7 +3742,7 @@ void show_all_pose_bones(void)
{
bArmature *arm;
- arm=get_armature (OBACT);
+ arm=get_armature(OBACT);
if (!arm)
return;
@@ -3564,9 +3776,9 @@ void unique_bone_name (bArmature *arm, char *name)
*dot=0;
}
- for (number = 1; number <=999; number++){
+ for (number = 1; number <=999; number++) {
sprintf (tempname, "%s.%03d", name, number);
- if (!get_named_bone(arm, tempname)){
+ if (!get_named_bone(arm, tempname)) {
BLI_strncpy (name, tempname, 32);
return;
}
@@ -3619,20 +3831,20 @@ void armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
BLI_strncpy(oldname, oldnamep, MAXBONENAME);
/* now check if we're in editmode, we need to find the unique name */
- if(G.obedit && G.obedit->data==arm) {
+ if ((G.obedit) && (G.obedit->data==arm)) {
EditBone *eBone;
-
+
eBone= editbone_name_exists(&G.edbo, oldname);
- if(eBone) {
- unique_editbone_name (&G.edbo, newname);
+ if (eBone) {
+ unique_editbone_name(&G.edbo, newname);
BLI_strncpy(eBone->name, newname, MAXBONENAME);
}
else return;
}
else {
Bone *bone= get_named_bone (arm, oldname);
-
- if(bone) {
+
+ if (bone) {
unique_bone_name (arm, newname);
BLI_strncpy(bone->name, newname, MAXBONENAME);
}
@@ -3640,28 +3852,28 @@ void armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
}
/* do entire dbase */
- for(ob= G.main->object.first; ob; ob= ob->id.next) {
+ for (ob= G.main->object.first; ob; ob= ob->id.next) {
/* we have the object using the armature */
- if(arm==ob->data) {
+ if (arm==ob->data) {
Object *cob;
bAction *act;
bActionChannel *achan;
bActionStrip *strip;
-
+
/* Rename action channel if necessary */
act = ob->action;
if (act && !act->id.lib) {
/* Find the appropriate channel */
achan= get_action_channel(act, oldname);
- if(achan) BLI_strncpy(achan->name, newname, MAXBONENAME);
+ if (achan)
+ BLI_strncpy(achan->name, newname, MAXBONENAME);
}
/* Rename the pose channel, if it exists */
if (ob->pose) {
bPoseChannel *pchan = get_pose_channel(ob->pose, oldname);
- if (pchan) {
+ if (pchan)
BLI_strncpy (pchan->name, newname, MAXBONENAME);
- }
}
/* check all nla-strips too */
@@ -3671,13 +3883,14 @@ void armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
if (act && !act->id.lib) {
/* Find the appropriate channel */
achan= get_action_channel(act, oldname);
- if(achan) BLI_strncpy(achan->name, newname, MAXBONENAME);
+ if (achan)
+ BLI_strncpy(achan->name, newname, MAXBONENAME);
}
}
/* Update any object constraints to use the new bone name */
- for(cob= G.main->object.first; cob; cob= cob->id.next) {
- if(cob->constraints.first)
+ for (cob= G.main->object.first; cob; cob= cob->id.next) {
+ if (cob->constraints.first)
constraint_bone_name_fix(ob, &cob->constraints, oldname, newname);
if (cob->pose) {
bPoseChannel *pchan;
@@ -3690,18 +3903,18 @@ void armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
/* See if an object is parented to this armature */
if (ob->parent && (ob->parent->data == arm)) {
- if(ob->partype==PARBONE) {
+ if (ob->partype==PARBONE) {
/* bone name in object */
if (!strcmp(ob->parsubstr, oldname))
BLI_strncpy(ob->parsubstr, newname, MAXBONENAME);
}
}
- if(modifiers_usesArmature(ob, arm)) {
+ if (modifiers_usesArmature(ob, arm)) {
bDeformGroup *dg;
/* bone name in defgroup */
for (dg=ob->defbase.first; dg; dg=dg->next) {
- if(!strcmp(dg->name, oldname))
+ if (!strcmp(dg->name, oldname))
BLI_strncpy(dg->name, newname, MAXBONENAME);
}
}
@@ -3717,8 +3930,8 @@ void armature_flip_names(void)
char newname[32];
for (ebone = G.edbo.first; ebone; ebone=ebone->next) {
- if(arm->layer & ebone->layer) {
- if(ebone->flag & BONE_SELECTED) {
+ if (arm->layer & ebone->layer) {
+ if (ebone->flag & BONE_SELECTED) {
BLI_strncpy(newname, ebone->name, sizeof(newname));
bone_flip_name(newname, 1); // 1 = do strip off number extensions
armature_bone_rename(G.obedit->data, ebone->name, newname);
@@ -3768,9 +3981,12 @@ EditBone *armature_bone_get_mirrored(EditBone *ebo)
BLI_strncpy(name, ebo->name, sizeof(name));
bone_flip_name(name, 0); // 0 = don't strip off number extensions
- for (eboflip=G.edbo.first; eboflip; eboflip=eboflip->next)
- if(ebo!=eboflip)
- if (!strcmp (name, eboflip->name)) break;
+ for (eboflip=G.edbo.first; eboflip; eboflip=eboflip->next) {
+ if (ebo != eboflip) {
+ if (!strcmp (name, eboflip->name))
+ break;
+ }
+ }
return eboflip;
}
@@ -3783,25 +3999,24 @@ void transform_armature_mirror_update(void)
for (ebo=G.edbo.first; ebo; ebo=ebo->next) {
/* no layer check, correct mirror is more important */
- if(ebo->flag & (BONE_TIPSEL|BONE_ROOTSEL)) {
-
+ if (ebo->flag & (BONE_TIPSEL|BONE_ROOTSEL)) {
eboflip= armature_bone_get_mirrored(ebo);
- if(eboflip) {
+ if (eboflip) {
/* we assume X-axis flipping for now */
- if(ebo->flag & BONE_TIPSEL) {
+ if (ebo->flag & BONE_TIPSEL) {
eboflip->tail[0]= -ebo->tail[0];
eboflip->tail[1]= ebo->tail[1];
eboflip->tail[2]= ebo->tail[2];
eboflip->rad_tail= ebo->rad_tail;
}
- if(ebo->flag & BONE_ROOTSEL) {
+ if (ebo->flag & BONE_ROOTSEL) {
eboflip->head[0]= -ebo->head[0];
eboflip->head[1]= ebo->head[1];
eboflip->head[2]= ebo->head[2];
eboflip->rad_head= ebo->rad_head;
}
- if(ebo->flag & BONE_SELECTED) {
+ if (ebo->flag & BONE_SELECTED) {
eboflip->dist= ebo->dist;
eboflip->roll= -ebo->roll;
eboflip->xwidth= ebo->xwidth;
diff --git a/source/blender/src/editconstraint.c b/source/blender/src/editconstraint.c
index 506d9f14937..653e74c70b4 100644
--- a/source/blender/src/editconstraint.c
+++ b/source/blender/src/editconstraint.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Joshua Leung
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/src/editcurve.c b/source/blender/src/editcurve.c
index aef4d16e5e1..d9bc55fa8bf 100644
--- a/source/blender/src/editcurve.c
+++ b/source/blender/src/editcurve.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
@@ -449,7 +446,7 @@ void separate_nurb()
G.obedit= 0; /* displists behave different in edit mode */
DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA); /* this is the separated one */
- DAG_object_flush_update(G.scene, oldob, OB_RECALC_DATA); /* this is the separated one */
+ DAG_object_flush_update(G.scene, oldob, OB_RECALC_DATA); /* this is the original one */
G.obedit= oldob;
BASACT= oldbase;
diff --git a/source/blender/src/editdeform.c b/source/blender/src/editdeform.c
index 6ab3d5c17c6..6d6a53fc59e 100644
--- a/source/blender/src/editdeform.c
+++ b/source/blender/src/editdeform.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Creator-specific support for vertex deformation groups
* Added: apply deform function (ton)
*/
diff --git a/source/blender/src/editface.c b/source/blender/src/editface.c
index 33b9a60104f..c1665332be8 100644
--- a/source/blender/src/editface.c
+++ b/source/blender/src/editface.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
@@ -83,6 +80,7 @@
#include "BIF_gl.h"
#include "BIF_graphics.h"
#include "BIF_space.h" /* for allqueue */
+#include "BIF_drawimage.h" /* for allqueue */
#include "BDR_drawmesh.h"
#include "BDR_editface.h"
@@ -338,6 +336,53 @@ static void uv_calc_shift_project(float *target, float *shift, float rotmat[][4]
}
}
+void correct_uv_aspect( void )
+{
+ float aspx=1, aspy=1;
+ EditMesh *em = G.editMesh;
+ EditFace *efa = EM_get_actFace(1);
+ MTFace *tface;
+
+ if (efa) {
+ tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
+ image_final_aspect(tface->tpage, &aspx, &aspy);
+ }
+
+ if (aspx != aspy) {
+
+ EditMesh *em = G.editMesh;
+ float scale;
+
+ if (aspx > aspy) {
+ scale = aspy/aspx;
+ for (efa= em->faces.first; efa; efa= efa->next) {
+ if (efa->f & SELECT) {
+ tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
+ tface->uv[0][0] = ((tface->uv[0][0]-0.5)*scale)+0.5;
+ tface->uv[1][0] = ((tface->uv[1][0]-0.5)*scale)+0.5;
+ tface->uv[2][0] = ((tface->uv[2][0]-0.5)*scale)+0.5;
+ if(efa->v4) {
+ tface->uv[3][0] = ((tface->uv[3][0]-0.5)*scale)+0.5;
+ }
+ }
+ }
+ } else {
+ scale = aspx/aspy;
+ for (efa= em->faces.first; efa; efa= efa->next) {
+ if (efa->f & SELECT) {
+ tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
+ tface->uv[0][1] = ((tface->uv[0][1]-0.5)*scale)+0.5;
+ tface->uv[1][1] = ((tface->uv[1][1]-0.5)*scale)+0.5;
+ tface->uv[2][1] = ((tface->uv[2][1]-0.5)*scale)+0.5;
+ if(efa->v4) {
+ tface->uv[3][1] = ((tface->uv[3][1]-0.5)*scale)+0.5;
+ }
+ }
+ }
+ }
+ }
+}
+
void calculate_uv_map(unsigned short mapmode)
{
MTFace *tface;
@@ -363,6 +408,9 @@ void calculate_uv_map(unsigned short mapmode)
if (em && em->faces.first)
EM_add_data_layer(&em->fdata, CD_MTFACE);
+ if (G.sima && G.sima->image) /* this is a bit of a kludge, but assume they want the image on their mesh when UVs are added */
+ image_changed(G.sima, G.sima->image);
+
if (!EM_texFaceCheck())
return;
@@ -523,6 +571,8 @@ void calculate_uv_map(unsigned short mapmode)
break;
}
default:
+ if ((G.scene->toolsettings->uvcalc_flag & UVCALC_NO_ASPECT_CORRECT)==0)
+ correct_uv_aspect();
return;
} /* end switch mapmode */
@@ -552,6 +602,13 @@ void calculate_uv_map(unsigned short mapmode)
}
}
+ if ( (mapmode!=B_UVAUTO_BOUNDS) &&
+ (mapmode!=B_UVAUTO_RESET) &&
+ (G.scene->toolsettings->uvcalc_flag & UVCALC_NO_ASPECT_CORRECT)==0
+ ) {
+ correct_uv_aspect();
+ }
+
BIF_undo_push("UV calculation");
object_uvs_changed(OBACT);
@@ -562,36 +619,15 @@ void calculate_uv_map(unsigned short mapmode)
/* last_sel, use em->act_face otherwise get the last selected face in the editselections
* at the moment, last_sel is mainly useful for gaking sure the space image dosnt flicker */
-MTFace *get_active_mtface(EditFace **act_efa, MCol **mcol, short sloppy)
+MTFace *get_active_mtface(EditFace **act_efa, MCol **mcol, int sloppy)
{
EditMesh *em = G.editMesh;
EditFace *efa = NULL;
- EditSelection *ese;
if(!EM_texFaceCheck())
return NULL;
- /* first check the active face */
- if (sloppy && em->act_face) {
- efa = em->act_face;
- } else {
- ese = em->selected.last;
- for (; ese; ese=ese->prev){
- if(ese->type == EDITFACE) {
- efa = (EditFace *)ese->data;
-
- if (efa->h) efa= NULL;
- else break;
- }
- }
- }
-
- if (sloppy && !efa) {
- for (efa= em->faces.first; efa; efa= efa->next) {
- if (efa->f & SELECT)
- break;
- }
- }
+ efa = EM_get_actFace(sloppy);
if (efa) {
if (mcol) {
@@ -872,7 +908,7 @@ static void seam_add_adjacent(Mesh *me, Heap *heap, int mednum, int vertnum, int
if (cost[adjnum] > newcost) {
cost[adjnum] = newcost;
prevedge[adjnum] = mednum;
- BLI_heap_insert(heap, newcost, (void*)adjnum);
+ BLI_heap_insert(heap, newcost, SET_INT_IN_POINTER(adjnum));
}
}
}
@@ -937,11 +973,11 @@ static int seam_shortest_path(Mesh *me, int source, int target)
/* regular dijkstra shortest path, but over edges instead of vertices */
heap = BLI_heap_new();
- BLI_heap_insert(heap, 0.0f, (void*)source);
+ BLI_heap_insert(heap, 0.0f, SET_INT_IN_POINTER(source));
cost[source] = 0.0f;
while (!BLI_heap_empty(heap)) {
- mednum = (int)BLI_heap_popmin(heap);
+ mednum = GET_INT_FROM_POINTER(BLI_heap_popmin(heap));
med = me->medge + mednum;
if (mednum == target)
diff --git a/source/blender/src/editfont.c b/source/blender/src/editfont.c
index ac56aec8e51..5ec0399a426 100644
--- a/source/blender/src/editfont.c
+++ b/source/blender/src/editfont.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/editgroup.c b/source/blender/src/editgroup.c
index fb99b57a39e..e4906568f3b 100644
--- a/source/blender/src/editgroup.c
+++ b/source/blender/src/editgroup.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/src/editimasel.c b/source/blender/src/editimasel.c
index e93687fef93..2ee583788e5 100644
--- a/source/blender/src/editimasel.c
+++ b/source/blender/src/editimasel.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -409,7 +406,7 @@ static void free_imasel_spec(char *dir)
static void do_library_append(SpaceImaSel *simasel)
{
Library *lib;
- char dir[FILE_MAXDIR], group[32];
+ char dir[FILE_MAX], group[32];
if ( BIF_filelist_islibrary(simasel->files, dir, group)==0 ) {
error("Not a library");
@@ -956,16 +953,24 @@ void winqreadimaselspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
file = BIF_filelist_file(simasel->files, simasel->active_file);
if(file && S_ISDIR(file->type)) {
- strcat(simasel->dir, file->relname);
- strcat(simasel->dir,"/");
- simasel->file[0] = '\0';
- BLI_cleanup_dir(G.sce, simasel->dir);
- BIF_filelist_setdir(simasel->files, simasel->dir);
- BIF_filelist_free(simasel->files);
- simasel->active_file = -1;
- simasel->scrollpos = 0;
- do_draw = 1;
- do_headdraw = 1;
+ /* the path is too long and we are not going up! */
+ if (strcmp(file->relname, ".") &&
+ strcmp(file->relname, "..") &&
+ strlen(simasel->dir) + strlen(file->relname) >= FILE_MAX )
+ {
+ error("Path too long, cannot enter this directory");
+ } else {
+ strcat(simasel->dir, file->relname);
+ strcat(simasel->dir,"/");
+ simasel->file[0] = '\0';
+ BLI_cleanup_dir(G.sce, simasel->dir);
+ BIF_filelist_setdir(simasel->files, simasel->dir);
+ BIF_filelist_free(simasel->files);
+ simasel->active_file = -1;
+ simasel->scrollpos = 0;
+ do_draw = 1;
+ do_headdraw = 1;
+ }
}
else if (file)
{
diff --git a/source/blender/src/editipo.c b/source/blender/src/editipo.c
index fe68e0818bb..0af21a5c595 100644
--- a/source/blender/src/editipo.c
+++ b/source/blender/src/editipo.c
@@ -349,18 +349,6 @@ void editipo_changed(SpaceIpo *si, int doredraw)
allqueue(REDRAWVIEW3D, 0);
}
else if(si->blocktype==ID_PA){
- Object *ob=OBACT;
- ParticleSystem *psys = ob->particlesystem.first;
-
- /* find out if we need to initialize particles */
- for(; psys; psys=psys->next) {
- if(psys->part->ipo==si->ipo) {
- ei= si->editipo;
- for(a=0; a<si->totipo; a++, ei++)
- if(ei->icu && ELEM3(ei->icu->adrcode,PART_EMIT_FREQ,PART_EMIT_LIFE,PART_EMIT_SIZE))
- psys_flush_settings(psys->part,PSYS_INIT,1);
- }
- }
DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA);
allqueue(REDRAWVIEW3D, 0);
}
@@ -994,20 +982,24 @@ static void make_editipo(void)
/* sets globals, bad stuff but we need these variables in other parts of code */
get_status_editipo();
- if(G.sipo->ipo) {
-
- if (G.sipo->pin)
- rf= &(G.sipo->v2d.cur);
- else
- rf= &(G.sipo->ipo->cur);
-
- if(rf->xmin<rf->xmax && rf->ymin<rf->ymax) G.v2d->cur= *rf;
- else ipo_default_v2d_cur(G.sipo->blocktype, &G.v2d->cur);
- }
- else {
- ipo_default_v2d_cur(G.sipo->blocktype, &G.v2d->cur);
- }
+ if (G.sipo->flag & SIPO_LOCK_VIEW) {
+ rf= &(G.v2d->cur); /* view is locked, dont move it, just to sanity check */
+ if(rf->xmin>=rf->xmax || rf->ymin>=rf->ymax) ipo_default_v2d_cur(G.sipo->blocktype, &G.v2d->cur);
+ } else {
+ if(G.sipo->ipo) {
+ if (G.sipo->pin)
+ rf= &(G.sipo->v2d.cur);
+ else
+ rf= &(G.sipo->ipo->cur);
+
+ if(rf->xmin<rf->xmax && rf->ymin<rf->ymax) G.v2d->cur= *rf;
+ else ipo_default_v2d_cur(G.sipo->blocktype, &G.v2d->cur);
+ }
+ else {
+ ipo_default_v2d_cur(G.sipo->blocktype, &G.v2d->cur);
+ }
+ }
view2d_do_locks(curarea, V2D_LOCK_COPY);
}
@@ -1214,7 +1206,7 @@ void test_editipo(int doit)
if(G.sipo->ipo != ipo) {
G.sipo->ipo= ipo;
/* if lock we don't copy from ipo, this makes the UI jump around confusingly */
- if(G.v2d->flag & V2D_VIEWLOCK);
+ if(G.v2d->flag & V2D_VIEWLOCK || G.sipo->flag & SIPO_LOCK_VIEW);
else if(ipo) G.v2d->cur= ipo->cur;
doit= 1;
}
@@ -3499,7 +3491,7 @@ void common_insertkey(void)
else if(event==13) BIF_undo_push("Insert VisualLocRot Key");
else if(event==15) BIF_undo_push("Insert Needed Key");
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
allspace(REMAKEIPO, 0);
allqueue(REDRAWIPO, 0);
@@ -4342,6 +4334,7 @@ void del_ipo(int need_check)
get_status_editipo(); /* count again */
check_active_editipo();
+ editipo_changed(G.sipo, 1);
BIF_undo_push("Delete Ipo");
allqueue(REDRAWNLA, 0);
@@ -5066,9 +5059,12 @@ static void bezt_to_transdata (TransData *td, TransData2D *td2d, float *loc, flo
td2d->loc[2] = 0.0f;
td2d->loc2d = loc;
- td->flag = 0;
+ /*td->flag = 0;*/ /* can be set beforehand, else make sure its set to 0 */
td->loc = td2d->loc;
- VECCOPY(td->center, cent);
+ td->center[0] = get_action_frame_inv(OBACT, cent[0]);
+ td->center[1] = cent[1];
+ td->center[2] = 0.0f;
+
VECCOPY(td->iloc, td->loc);
}
else {
@@ -5077,7 +5073,7 @@ static void bezt_to_transdata (TransData *td, TransData2D *td2d, float *loc, flo
td2d->loc[2] = 0.0f;
td2d->loc2d = loc;
- td->flag = 0;
+ /*td->flag = 0;*/ /* can be set beforehand, else make sure its set to 0 */
td->loc = td2d->loc;
VECCOPY(td->center, cent);
VECCOPY(td->iloc, td->loc);
@@ -5168,19 +5164,35 @@ void make_ipo_transdata (TransInfo *t)
bezt= ei->icu->bezt;
for (b=0; b < ei->icu->totvert; b++, bezt++) {
+ TransDataCurveHandleFlags *hdata = NULL;
/* only include handles if selected, and interpolaton mode uses beztriples */
if (ei->icu->ipo==IPO_BEZ) {
- if (bezt->f1 & SELECT)
+ if (bezt->f1 & SELECT) {
+ hdata = initTransDataCurveHandes(td, bezt);
bezt_to_transdata(td++, td2d++, bezt->vec[0], bezt->vec[1], 1, onlytime);
- if (bezt->f3 & SELECT)
+ }
+ if (bezt->f3 & SELECT) {
+ if (hdata==NULL) {
+ hdata = initTransDataCurveHandes(td, bezt);
+ }
bezt_to_transdata(td++, td2d++, bezt->vec[2], bezt->vec[1], 1, onlytime);
+ }
}
/* only include main vert if selected */
if (bezt->f2 & SELECT) {
+
+ if ((bezt->f1&SELECT)==0 && (bezt->f3&SELECT)==0) {
+ if (hdata==NULL) {
+ hdata = initTransDataCurveHandes(td, bezt);
+ }
+ }
+
bezt_to_transdata(td++, td2d++, bezt->vec[1], bezt->vec[1], 1, onlytime);
}
}
+ /* Sets handles based on the selection */
+ testhandles_ipocurve(ei->icu);
}
}
}
diff --git a/source/blender/src/editipo_mods.c b/source/blender/src/editipo_mods.c
index ae283ce8c0b..f03de1ff383 100644
--- a/source/blender/src/editipo_mods.c
+++ b/source/blender/src/editipo_mods.c
@@ -969,6 +969,27 @@ void set_ipotype(void)
scrarea_queue_winredraw(curarea);
}
+void set_ipoextend(void)
+{
+ short event= pupmenu("Ipo Extend Mode %t|Constant %x1|Extrapolation %x2|Cyclic %x3|Cyclic Extrapolation %x4");
+
+ switch(event)
+ {
+ case 1:
+ set_exprap_ipo(IPO_HORIZ);
+ break;
+ case 2:
+ set_exprap_ipo(IPO_DIR);
+ break;
+ case 3:
+ set_exprap_ipo(IPO_CYCL);
+ break;
+ case 4:
+ set_exprap_ipo(IPO_CYCLX);
+ break;
+ }
+}
+
void borderselect_ipo(void)
{
EditIpo *ei;
diff --git a/source/blender/src/editkey.c b/source/blender/src/editkey.c
index 5cc193f8844..1f24fb07667 100644
--- a/source/blender/src/editkey.c
+++ b/source/blender/src/editkey.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/src/editlattice.c b/source/blender/src/editlattice.c
index e80e87b6976..0782e012f68 100644
--- a/source/blender/src/editlattice.c
+++ b/source/blender/src/editlattice.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* i.t.t. wat de naam doet vermoeden: ook algemene lattice (calc) functies
*/
diff --git a/source/blender/src/editmball.c b/source/blender/src/editmball.c
index 10ef8756ebf..58c44fb2408 100644
--- a/source/blender/src/editmball.c
+++ b/source/blender/src/editmball.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/src/editmesh.c b/source/blender/src/editmesh.c
index 34d3bc89bdb..9eef61e11f9 100644
--- a/source/blender/src/editmesh.c
+++ b/source/blender/src/editmesh.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
@@ -77,6 +74,7 @@
#include "BKE_multires.h"
#include "BKE_object.h"
#include "BKE_pointcache.h"
+#include "BKE_softbody.h"
#include "BKE_texture.h"
#include "BKE_utildefines.h"
@@ -796,6 +794,78 @@ static void edge_drawflags(void)
}
}
+static int editmesh_pointcache_edit(Object *ob, int totvert, PTCacheID *pid_p, float mat[][4], int load)
+{
+ Cloth *cloth;
+ SoftBody *sb;
+ ClothModifierData *clmd;
+ PTCacheID pid, tmpid;
+ int cfra= (int)G.scene->r.cfra, found= 0;
+
+ pid.cache= NULL;
+
+ /* check for cloth */
+ if(modifiers_isClothEnabled(ob)) {
+ clmd= (ClothModifierData*)modifiers_findByType(ob, eModifierType_Cloth);
+ cloth= clmd->clothObject;
+
+ BKE_ptcache_id_from_cloth(&tmpid, ob, clmd);
+
+ /* verify vertex count and baked status */
+ if(cloth && (totvert == cloth->numverts)) {
+ if((tmpid.cache->flag & PTCACHE_BAKED) && (tmpid.cache->flag & PTCACHE_BAKE_EDIT)) {
+ pid= tmpid;
+
+ if(load && (pid.cache->flag & PTCACHE_BAKE_EDIT_ACTIVE))
+ found= 1;
+ }
+ }
+ }
+
+ /* check for softbody */
+ if(!found && ob->soft) {
+ sb= ob->soft;
+
+ BKE_ptcache_id_from_softbody(&tmpid, ob, sb);
+
+ /* verify vertex count and baked status */
+ if(sb->bpoint && (totvert == sb->totpoint)) {
+ if((tmpid.cache->flag & PTCACHE_BAKED) && (tmpid.cache->flag & PTCACHE_BAKE_EDIT)) {
+ pid= tmpid;
+
+ if(load && (pid.cache->flag & PTCACHE_BAKE_EDIT_ACTIVE))
+ found= 1;
+ }
+ }
+ }
+
+ /* if not making editmesh verify editing was active for this point cache */
+ if(load) {
+ if(found)
+ pid.cache->flag &= ~PTCACHE_BAKE_EDIT_ACTIVE;
+ else
+ return 0;
+ }
+
+ /* check if we have cache for this frame */
+ if(pid.cache && BKE_ptcache_id_exist(&pid, cfra)) {
+ *pid_p = pid;
+
+ if(load) {
+ Mat4CpyMat4(mat, ob->obmat);
+ }
+ else {
+ pid.cache->editframe= cfra;
+ pid.cache->flag |= PTCACHE_BAKE_EDIT_ACTIVE;
+ Mat4Invert(mat, ob->obmat); /* ob->imat is not up to date */
+ }
+
+ return 1;
+ }
+
+ return 0;
+}
+
/* turns Mesh into editmesh */
void make_editMesh()
{
@@ -809,10 +879,11 @@ void make_editMesh()
EditFace *efa;
EditEdge *eed;
EditSelection *ese;
- int tot, a, eekadoodle= 0, cloth_enabled = 0;
- ClothModifierData *clmd = NULL;
- Cloth *cloth = NULL;
- float temp[3];
+ PTCacheID pid;
+ Cloth *cloth;
+ SoftBody *sb;
+ float cacheco[3], cachemat[4][4], *co;
+ int tot, a, cacheedit= 0, eekadoodle= 0;
#ifdef WITH_VERSE
if(me->vnode){
@@ -847,49 +918,29 @@ void make_editMesh()
/* make editverts */
CustomData_copy(&me->vdata, &em->vdata, CD_MASK_EDITMESH, CD_CALLOC, 0);
mvert= me->mvert;
-
- /* lots of checks to be sure if we have nice cloth object */
- if(modifiers_isClothEnabled(G.obedit))
- {
- clmd = (ClothModifierData *) modifiers_findByType(G.obedit, eModifierType_Cloth);
- cloth = clmd->clothObject;
-
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_EDITMODE;
-
- /* just to be sure also check vertcount */
- /* also check if we have a protected cache */
- if(cloth && (tot == cloth->numverts) && (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT))
- {
- /* check if we have cache for this frame */
- int stack_index = modifiers_indexInObject(G.obedit, (ModifierData *)clmd);
-
- if(BKE_ptcache_id_exist((ID *)G.obedit, G.scene->r.cfra, stack_index))
- {
- cloth_enabled = 1;
-
- clmd->sim_parms->editedframe = G.scene->r.cfra;
-
- /* inverse matrix is not uptodate... */
- Mat4Invert ( G.obedit->imat, G.obedit->obmat );
- if(G.rt > 0)
- printf("make_editmesh --> cloth_enabled\n");
- }
- }
- }
+
+ cacheedit= editmesh_pointcache_edit(G.obedit, tot, &pid, cachemat, 0);
evlist= (EditVert **)MEM_mallocN(tot*sizeof(void *),"evlist");
for(a=0; a<tot; a++, mvert++) {
- if(cloth_enabled)
- {
- VECCOPY(temp, cloth->verts[a].x);
- Mat4MulVecfl ( G.obedit->imat, temp );
- eve= addvertlist(temp, NULL);
-
- /* TODO: what about normals? */
+ if(cacheedit) {
+ if(pid.type == PTCACHE_TYPE_CLOTH) {
+ cloth= ((ClothModifierData*)pid.data)->clothObject;
+ VECCOPY(cacheco, cloth->verts[a].x)
+ }
+ else if(pid.type == PTCACHE_TYPE_SOFTBODY) {
+ sb= (SoftBody*)pid.data;
+ VECCOPY(cacheco, sb->bpoint[a].pos)
+ }
+
+ Mat4MulVecfl(cachemat, cacheco);
+ co= cacheco;
}
- else
- eve= addvertlist(mvert->co, NULL);
+ else
+ co= mvert->co;
+
+ eve= addvertlist(co, NULL);
evlist[a]= eve;
// face select sets selection in next loop
@@ -957,16 +1008,22 @@ void make_editMesh()
efa->flag= mface->flag & ~ME_HIDE;
/* select and hide face flag */
- if(mface->flag & ME_FACE_SEL) {
- efa->f |= SELECT;
+ if(mface->flag & ME_HIDE) {
+ efa->h= 1;
+ } else {
+ if (a==me->act_face) {
+ EM_set_actFace(efa);
+ }
+
+ /* dont allow hidden and selected */
+ if(mface->flag & ME_FACE_SEL) {
+ efa->f |= SELECT;
+
+ if(FACESEL_PAINT_TEST) {
+ EM_select_face(efa, 1); /* flush down */
+ }
+ }
}
- if(mface->flag & ME_HIDE) efa->h= 1;
-
- if((FACESEL_PAINT_TEST) && (efa->f & SELECT))
- EM_select_face(efa, 1); /* flush down */
-
- if (a==me->act_face)
- em->act_face = efa;
}
}
}
@@ -1002,9 +1059,12 @@ void make_editMesh()
EM_hide_reset();
/* sets helper flags which arent saved */
EM_fgon_flags();
+
+ /* vertex coordinates change with cache edit, need to recalc */
+ if(cacheedit)
+ recalc_editnormals();
countall();
-
}
/* makes Mesh out of editmesh */
@@ -1017,14 +1077,15 @@ void load_editMesh(void)
MFace *mface;
MSelect *mselect;
EditVert *eve;
- EditFace *efa;
+ EditFace *efa, *efa_act;
EditEdge *eed;
EditSelection *ese;
- float *fp, *newkey, *oldkey, nor[3];
- int i, a, ototvert, totedge=0, cloth_enabled = 0;
- ClothModifierData *clmd = NULL;
- Cloth *cloth = NULL;
- float temp[3], dt = 0.0;
+ SoftBody *sb;
+ Cloth *cloth;
+ ClothModifierData *clmd;
+ PTCacheID pid;
+ float *fp, *newkey, *oldkey, nor[3], cacheco[3], cachemat[4][4];
+ int i, a, ototvert, totedge=0, cacheedit= 0;
#ifdef WITH_VERSE
if(em->vnode) {
@@ -1091,60 +1152,50 @@ void load_editMesh(void)
/* the vertices, use ->tmp.l as counter */
eve= em->verts.first;
a= 0;
-
- /* lots of checks to be sure if we have nice cloth object */
- if(modifiers_isClothEnabled(G.obedit))
- {
- clmd = (ClothModifierData *) modifiers_findByType(G.obedit, eModifierType_Cloth);
- cloth = clmd->clothObject;
-
- /* just to be sure also check vertcount */
- /* also check if we have a protected cache */
- if(cloth && (G.totvert == cloth->numverts) && (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_CCACHE_PROTECT))
- {
- /* check if we have cache for this frame */
- int stack_index = modifiers_indexInObject(G.obedit, (ModifierData *)clmd);
-
- if(BKE_ptcache_id_exist((ID *)G.obedit, clmd->sim_parms->editedframe, stack_index))
- {
- cloth_enabled = 1;
-
- /* inverse matrix is not uptodate... */
- Mat4Invert ( G.obedit->imat, G.obedit->obmat );
- dt = 1.0f / clmd->sim_parms->stepsPerFrame;
- }
- if(G.rt > 0)
- printf("loadmesh --> tot: %d, num: %d\n", G.totvert, cloth->numverts);
- }
- }
-
- i=0;
+
+ /* check for point cache editing */
+ cacheedit= editmesh_pointcache_edit(G.obedit, G.totvert, &pid, cachemat, 1);
+
while(eve) {
-
- if(cloth_enabled)
- {
- if(G.rt > 0)
- printf("loadmesh --> cloth_enabled\n");
-
- VECCOPY(temp, cloth->verts[i].x);
- VECCOPY(cloth->verts[i].x, eve->co);
- Mat4MulVecfl ( G.obedit->obmat, cloth->verts[i].x );
-
-
- // not physical correct but gives nicer results when commented
- VECSUB(temp, cloth->verts[i].x, temp);
- VecMulf(temp, 1.0f / (dt*10.0));
- VECADD(cloth->verts[i].v, cloth->verts[i].v, temp);
-
- if(oldverts) {
- VECCOPY(mvert->co, oldverts[i].co);
- if(G.rt > 0)
- printf("loadmesh --> cloth_enabled oldverts\n");
+ if(cacheedit) {
+ if(pid.type == PTCACHE_TYPE_CLOTH) {
+ clmd= (ClothModifierData*)pid.data;
+ cloth= clmd->clothObject;
+
+ /* assign position */
+ VECCOPY(cacheco, cloth->verts[a].x)
+ VECCOPY(cloth->verts[a].x, eve->co);
+ Mat4MulVecfl(cachemat, cloth->verts[a].x);
+
+ /* find plausible velocity, not physical correct but gives
+ * nicer results when commented */
+ VECSUB(cacheco, cloth->verts[a].x, cacheco);
+ VecMulf(cacheco, clmd->sim_parms->stepsPerFrame*10.0f);
+ VECADD(cloth->verts[a].v, cloth->verts[a].v, cacheco);
}
- i++;
+ else if(pid.type == PTCACHE_TYPE_SOFTBODY) {
+ sb= (SoftBody*)pid.data;
+
+ /* assign position */
+ VECCOPY(cacheco, sb->bpoint[a].pos)
+ VECCOPY(sb->bpoint[a].pos, eve->co);
+ Mat4MulVecfl(cachemat, sb->bpoint[a].pos);
+
+ /* changing velocity for softbody doesn't seem to give
+ * good results? */
+#if 0
+ VECSUB(cacheco, sb->bpoint[a].pos, cacheco);
+ VecMulf(cacheco, sb->minloops*10.0f);
+ VECADD(sb->bpoint[a].vec, sb->bpoint[a].pos, cacheco);
+#endif
+ }
+
+ if(oldverts)
+ VECCOPY(mvert->co, oldverts[a].co)
}
- else
+ else
VECCOPY(mvert->co, eve->co);
+
mvert->mat_nr= 255; /* what was this for, halos? */
/* vertex normal */
@@ -1174,34 +1225,12 @@ void load_editMesh(void)
mvert++;
}
- /* burn changes to cache */
- if(cloth_enabled)
- {
- if(G.rt > 0)
- printf("loadmesh --> cloth_enabled cloth_write_cache\n");
- cloth_write_cache(G.obedit, clmd, clmd->sim_parms->editedframe);
-
- if(G.scene->r.cfra != clmd->sim_parms->editedframe)
- {
- if(cloth_read_cache(G.obedit, clmd, G.scene->r.cfra))
- implicit_set_positions(clmd);
- }
- else
- implicit_set_positions(clmd);
-
- clmd->sim_parms->flags &= ~CLOTH_SIMSETTINGS_FLAG_EDITMODE;
- }
- else
- {
- if(modifiers_isClothEnabled(G.obedit)) {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(G.obedit, eModifierType_Cloth);
- if(G.rt > 0)
- printf("loadmesh --> CLOTH_SIMSETTINGS_FLAG_RESET\n");
- /* only reset cloth when no cache was used */
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_CCACHE_FFREE;
- clmd->sim_parms->flags &= ~CLOTH_SIMSETTINGS_FLAG_EDITMODE;
- }
+ /* write changes to cache */
+ if(cacheedit) {
+ if(pid.type == PTCACHE_TYPE_CLOTH)
+ cloth_write_cache(G.obedit, pid.data, pid.cache->editframe);
+ else if(pid.type == PTCACHE_TYPE_SOFTBODY)
+ sbWriteCache(G.obedit, pid.cache->editframe);
}
/* the edges */
@@ -1232,6 +1261,7 @@ void load_editMesh(void)
/* the faces */
a = 0;
efa= em->faces.first;
+ efa_act= EM_get_actFace(0);
i = 0;
me->act_face = -1;
while(efa) {
@@ -1289,7 +1319,7 @@ void load_editMesh(void)
/* no index '0' at location 3 or 4 */
test_index_face(mface, &me->fdata, i, efa->v4?4:3);
- if (EM_get_actFace() == efa)
+ if (efa_act == efa)
me->act_face = a;
#ifdef WITH_VERSE
@@ -1462,12 +1492,9 @@ void load_editMesh(void)
/* remake softbody of all users */
if(me->id.us>1) {
Base *base;
- for(base= G.scene->base.first; base; base= base->next) {
- if(base->object->data==me) {
- base->object->softflag |= OB_SB_REDO;
+ for(base= G.scene->base.first; base; base= base->next)
+ if(base->object->data==me)
base->object->recalc |= OB_RECALC_DATA;
- }
- }
}
mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
diff --git a/source/blender/src/editmesh_add.c b/source/blender/src/editmesh_add.c
index 8fb21549172..952ae957f34 100644
--- a/source/blender/src/editmesh_add.c
+++ b/source/blender/src/editmesh_add.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/blender/src/editmesh_lib.c b/source/blender/src/editmesh_lib.c
index 298bc222133..eb8d3a12322 100644
--- a/source/blender/src/editmesh_lib.c
+++ b/source/blender/src/editmesh_lib.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -78,9 +75,32 @@ void EM_set_actFace(EditFace *efa)
G.editMesh->act_face = efa;
}
-EditFace * EM_get_actFace(void)
+EditFace * EM_get_actFace(int sloppy)
{
- return G.editMesh->act_face;
+ if (G.editMesh->act_face) {
+ return G.editMesh->act_face;
+ } else if (sloppy) {
+ EditFace *efa= NULL;
+ EditSelection *ese;
+
+ ese = G.editMesh->selected.last;
+ for (; ese; ese=ese->prev){
+ if(ese->type == EDITFACE) {
+ efa = (EditFace *)ese->data;
+
+ if (efa->h) efa= NULL;
+ else break;
+ }
+ }
+ if (efa==NULL) {
+ for (efa= G.editMesh->faces.first; efa; efa= efa->next) {
+ if (efa->f & SELECT)
+ break;
+ }
+ }
+ return efa; /* can still be null */
+ }
+ return NULL;
}
/* ********* Selection History ************ */
@@ -1077,7 +1097,7 @@ static short extrudeflag_edge(short flag, float *nor)
EditMesh *em = G.editMesh;
EditVert *eve, *nextve;
EditEdge *eed, *nexted;
- EditFace *efa, *nextfa;
+ EditFace *efa, *nextfa, *efan;
short del_old= 0;
ModifierData *md;
@@ -1231,27 +1251,32 @@ static short extrudeflag_edge(short flag, float *nor)
if(del_old==0) { // keep old faces means flipping normal
if(efa->v4)
- addfacelist(efa->v4->tmp.v, efa->v3->tmp.v,
+ efan = addfacelist(efa->v4->tmp.v, efa->v3->tmp.v,
efa->v2->tmp.v, efa->v1->tmp.v, efa, efa);
else
- addfacelist(efa->v3->tmp.v, efa->v2->tmp.v,
+ efan = addfacelist(efa->v3->tmp.v, efa->v2->tmp.v,
efa->v1->tmp.v, NULL, efa, efa);
}
else {
if(efa->v4)
- addfacelist(efa->v1->tmp.v, efa->v2->tmp.v,
+ efan = addfacelist(efa->v1->tmp.v, efa->v2->tmp.v,
efa->v3->tmp.v, efa->v4->tmp.v, efa, efa);
else
- addfacelist(efa->v1->tmp.v, efa->v2->tmp.v,
+ efan = addfacelist(efa->v1->tmp.v, efa->v2->tmp.v,
efa->v3->tmp.v, NULL, efa, efa);
}
-
+
+ if (G.editMesh->act_face == efa) {
+ G.editMesh->act_face = efan;
+ }
+
/* for transform */
add_normal_aligned(nor, efa->n);
}
}
if(del_old) {
+
/* step 4: remove old faces, if del_old */
efa= em->faces.first;
while(efa) {
@@ -1262,7 +1287,8 @@ static short extrudeflag_edge(short flag, float *nor)
}
efa= nextfa;
}
-
+
+
/* step 5: remove selected unused edges */
/* start tagging again */
for(eed= em->edges.first; eed; eed= eed->next) eed->f1=0;
@@ -1677,7 +1703,7 @@ void adduplicateflag(int flag)
EditMesh *em = G.editMesh;
EditVert *eve, *v1, *v2, *v3, *v4;
EditEdge *eed, *newed;
- EditFace *efa, *newfa;
+ EditFace *efa, *newfa, *act_efa = EM_get_actFace(0);
EM_clear_flag_all(128);
EM_selectmode_set(); // paranoia check, selection now is consistant
@@ -1724,6 +1750,10 @@ void adduplicateflag(int flag)
newfa= addfacelist(v1, v2, v3, v4, efa, efa);
+ if (efa==act_efa) {
+ EM_set_actFace(newfa);
+ }
+
newfa->f= efa->f;
efa->f -= flag;
efa->f |= 128;
diff --git a/source/blender/src/editmesh_loop.c b/source/blender/src/editmesh_loop.c
index ca47741b6f1..4ac5072b212 100644
--- a/source/blender/src/editmesh_loop.c
+++ b/source/blender/src/editmesh_loop.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c
index a5589ccd9c5..d1873d1fe56 100644
--- a/source/blender/src/editmesh_mods.c
+++ b/source/blender/src/editmesh_mods.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -960,7 +957,7 @@ EDGE GROUP
-int edgegroup_select(short mode)
+static int edgegroup_select__internal(short mode)
{
EditMesh *em = G.editMesh;
EditEdge *eed, *base_eed=NULL;
@@ -1155,11 +1152,35 @@ int edgegroup_select(short mode)
}
}
}
- }
+ }
+ return selcount;
+}
+/* wrap the above function but do selection flushing edge to face */
+int edgegroup_select(short mode)
+{
+ int selcount = edgegroup_select__internal(mode);
+
+ if (selcount) {
+ /* Could run a generic flush function,
+ * but the problem is only that all edges of a face
+ * can be selected without the face becoming selected */
+ EditMesh *em = G.editMesh;
+ EditFace *efa;
+ for(efa= em->faces.first; efa; efa= efa->next) {
+ if (efa->v4) {
+ if (efa->e1->f&SELECT && efa->e2->f&SELECT && efa->e3->f&SELECT && efa->e4->f&SELECT)
+ efa->f |= SELECT;
+ } else {
+ if (efa->e1->f&SELECT && efa->e2->f&SELECT && efa->e3->f&SELECT)
+ efa->f |= SELECT;
+ }
+ }
+ }
return selcount;
}
+
/*
VERT GROUP
mode 1: same normal
@@ -1421,15 +1442,21 @@ void mesh_copy_menu(void)
ese = em->selected.last;
- if (!ese) return;
+ /* Faces can have a NULL ese, so dont return on a NULL ese here */
- if(ese->type == EDITVERT) {
+ if(ese && ese->type == EDITVERT) {
+
+ if (!ese) return;
/*EditVert *ev, *ev_act = (EditVert*)ese->data;
ret= pupmenu("");*/
- } else if(ese->type == EDITEDGE) {
- EditEdge *eed, *eed_act = (EditEdge*)ese->data;
+ } else if(ese && ese->type == EDITEDGE) {
+ EditEdge *eed, *eed_act;
float vec[3], vec_mid[3], eed_len, eed_len_act;
+ if (!ese) return;
+
+ eed_act = (EditEdge*)ese->data;
+
ret= pupmenu("Copy Active Edge to Selected%t|Crease%x1|Length%x2");
if (ret<1) return;
@@ -1486,25 +1513,37 @@ void mesh_copy_menu(void)
break;
}
- } else if(ese->type == EDITFACE) {
- EditFace *efa, *efa_act = (EditFace*)ese->data;
- MTFace *tf, *tf_act;
- MCol *mcol, *mcol_act;
+ } else if(ese==NULL || ese->type == EDITFACE) {
+ EditFace *efa, *efa_act;
+ MTFace *tf, *tf_act = NULL;
+ MCol *mcol, *mcol_act = NULL;
- ret= pupmenu(
- "Copy Face Selected%t|"
- "Active Material%x1|Active Image%x2|Active UV Coords%x3|"
- "Active Mode%x4|Active Transp%x5|Active Vertex Colors%x6|%l|"
-
- "TexFace UVs from layer%x7|"
- "TexFace Images from layer%x8|"
- "TexFace All from layer%x9|"
- "Vertex Colors from layer%x10");
-
- if (ret<1) return;
+ efa_act = EM_get_actFace(0);
- tf_act = CustomData_em_get(&em->fdata, efa_act->data, CD_MTFACE);
- mcol_act = CustomData_em_get(&em->fdata, efa_act->data, CD_MCOL);
+ if (efa_act) {
+ ret= pupmenu(
+ "Copy Face Selected%t|"
+ "Active Material%x1|Active Image%x2|Active UV Coords%x3|"
+ "Active Mode%x4|Active Transp%x5|Active Vertex Colors%x6|%l|"
+
+ "TexFace UVs from layer%x7|"
+ "TexFace Images from layer%x8|"
+ "TexFace All from layer%x9|"
+ "Vertex Colors from layer%x10");
+ if (ret<1) return;
+ tf_act = CustomData_em_get(&em->fdata, efa_act->data, CD_MTFACE);
+ mcol_act = CustomData_em_get(&em->fdata, efa_act->data, CD_MCOL);
+ } else {
+ ret= pupmenu(
+ "Copy Face Selected%t|"
+
+ /* Make sure these are always the same as above */
+ "TexFace UVs from layer%x7|"
+ "TexFace Images from layer%x8|"
+ "TexFace All from layer%x9|"
+ "Vertex Colors from layer%x10");
+ if (ret<1) return;
+ }
switch (ret) {
case 1: /* copy material */
@@ -1613,15 +1652,11 @@ void mesh_copy_menu(void)
break;
-
- /* copy from layer */
+ /* Copy from layer - Warning! tf_act and mcol_act will be NULL here */
case 7:
case 8:
case 9:
- if (!tf_act) {
- error("mesh has no uv/image layers");
- return;
- } else if (CustomData_number_of_layers(&em->fdata, CD_MTFACE)<2) {
+ if (CustomData_number_of_layers(&em->fdata, CD_MTFACE)<2) {
error("mesh does not have multiple uv/image layers");
return;
} else {
@@ -1648,10 +1683,7 @@ void mesh_copy_menu(void)
break;
case 10: /* select vcol layers - make sure this stays in sync with above code */
- if (!mcol_act) {
- error("mesh has no color layers");
- return;
- } else if (CustomData_number_of_layers(&em->fdata, CD_MCOL)<2) {
+ if (CustomData_number_of_layers(&em->fdata, CD_MCOL)<2) {
error("mesh does not have multiple color layers");
return;
} else {
@@ -1740,9 +1772,10 @@ void mesh_copy_menu(void)
allqueue(REDRAWVIEW3D, 0);
allqueue(REDRAWBUTSEDIT, 0);
- if(ese->type == EDITVERT) BIF_undo_push("Copy Vert Attribute");
- else if (ese->type == EDITEDGE) BIF_undo_push("Copy Edge Attribute");
- else if (ese->type == EDITFACE) BIF_undo_push("Copy Face Attribute");
+ if (ese==NULL || ese->type == EDITFACE) BIF_undo_push("Copy Face Attribute");
+ else if ( ese->type == EDITEDGE) BIF_undo_push("Copy Edge Attribute");
+ else if ( ese->type == EDITVERT) BIF_undo_push("Copy Vert Attribute");
+
}
}
@@ -3164,7 +3197,7 @@ void deselectall_mesh(void) /* this toggles!!!, UI level */
}
}
-void select_more(void)
+void EM_select_more(void)
{
EditMesh *em = G.editMesh;
EditVert *eve;
@@ -3202,6 +3235,11 @@ void select_more(void)
EM_select_face(efa, 1);
}
}
+}
+
+void select_more(void)
+{
+ EM_select_more();
countall();
addqueue(curarea->win, REDRAW, 0);
@@ -3210,7 +3248,7 @@ void select_more(void)
BIF_undo_push("Select More");
}
-void select_less(void)
+void EM_select_less(void)
{
EditMesh *em = G.editMesh;
EditEdge *eed;
@@ -3270,6 +3308,11 @@ void select_less(void)
EM_selectmode_flush();
}
+}
+
+void select_less(void)
+{
+ EM_select_less();
countall();
BIF_undo_push("Select Less");
diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c
index 14660b7d6a0..7d589e160c8 100644
--- a/source/blender/src/editmesh_tools.c
+++ b/source/blender/src/editmesh_tools.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Johnny Matthews, Geoffrey Bantle.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -994,9 +991,10 @@ void delete_mesh(void)
erase_vertices(&em->verts);
}
else if(event==6) {
- if(!EdgeLoopDelete()) {
- BIF_undo();
- }
+ if(!EdgeLoopDelete())
+ return;
+
+ str= "Erase Edge Loop";
}
else if(event==4) {
str= "Erase Edges & Faces";
@@ -2431,6 +2429,10 @@ void esubdivideflag(int flag, float rad, int beauty, int numcuts, int seltype)
if(multires_test()) return;
+ //Set faces f1 to 0 cause we need it later
+ for(ef=em->faces.first;ef;ef = ef->next) ef->f1 = 0;
+ for(eve=em->verts.first; eve; eve=eve->next) eve->f1 = eve->f2 = 0;
+
for (; md; md=md->next) {
if (md->type==eModifierType_Mirror) {
MirrorModifierData *mmd = (MirrorModifierData*) md;
@@ -2457,10 +2459,6 @@ void esubdivideflag(int flag, float rad, int beauty, int numcuts, int seltype)
}
}
- //Set faces f1 to 0 cause we need it later
- for(ef=em->faces.first;ef;ef = ef->next) ef->f1 = 0;
- for(eve=em->verts.first; eve; eve=eve->next) eve->f1 = eve->f2 = 0;
-
//Flush vertex flags upward to the edges
for(eed = em->edges.first;eed;eed = eed->next) {
//if(eed->f & flag && eed->v1->f == eed->v2->f) {
@@ -4659,7 +4657,7 @@ int EdgeLoopDelete(void) {
if(!EdgeSlide(1, 1)) {
return 0;
}
- select_more();
+ EM_select_more();
removedoublesflag(1,0, 0.001);
EM_select_flush();
DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
@@ -6117,7 +6115,7 @@ static void collapse_edgeuvs(void)
/*End UV Edge collapse code*/
-static void collapseuvs(void)
+static void collapseuvs(EditVert *mergevert)
{
EditFace *efa;
MTFace *tf;
@@ -6134,22 +6132,22 @@ static void collapseuvs(void)
for(efa = G.editMesh->faces.first; efa; efa=efa->next){
tf = CustomData_em_get(&G.editMesh->fdata, efa->data, CD_MTFACE);
- if(efa->v1->f1){
+ if(efa->v1->f1 && ELEM(mergevert, NULL, efa->v1)) {
uvav[0] += tf->uv[0][0];
uvav[1] += tf->uv[0][1];
uvcount += 1;
}
- if(efa->v2->f1){
+ if(efa->v2->f1 && ELEM(mergevert, NULL, efa->v2)){
uvav[0] += tf->uv[1][0];
uvav[1] += tf->uv[1][1];
uvcount += 1;
}
- if(efa->v3->f1){
+ if(efa->v3->f1 && ELEM(mergevert, NULL, efa->v3)){
uvav[0] += tf->uv[2][0];
uvav[1] += tf->uv[2][1];
uvcount += 1;
}
- if(efa->v4 && efa->v4->f1){
+ if(efa->v4 && efa->v4->f1 && ELEM(mergevert, NULL, efa->v4)){
uvav[0] += tf->uv[3][0];
uvav[1] += tf->uv[3][1];
uvcount += 1;
@@ -6286,7 +6284,7 @@ int merge_firstlast(int first, int uvmerge)
for(eve=G.editMesh->verts.first; eve; eve=eve->next){
if(eve->f&SELECT) eve->f1 = 1;
}
- collapseuvs();
+ collapseuvs(mergevert);
}
countall();
@@ -6307,7 +6305,7 @@ int merge_target(int target, int uvmerge)
for(eve=G.editMesh->verts.first; eve; eve=eve->next){
if(eve->f&SELECT) eve->f1 = 1;
}
- collapseuvs();
+ collapseuvs(NULL);
}
countall();
diff --git a/source/blender/src/editmode_undo.c b/source/blender/src/editmode_undo.c
index cd7a6c23069..d0a44360ad5 100644
--- a/source/blender/src/editmode_undo.c
+++ b/source/blender/src/editmode_undo.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/blender/src/editnla.c b/source/blender/src/editnla.c
index 0fc8baae154..6d9adda85d0 100644
--- a/source/blender/src/editnla.c
+++ b/source/blender/src/editnla.c
@@ -2052,6 +2052,6 @@ void copy_action_modifiers(void)
BIF_undo_push("Copy Action Modifiers");
allqueue(REDRAWNLA, 0);
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
}
diff --git a/source/blender/src/editnode.c b/source/blender/src/editnode.c
index 010cbc7f14d..6a703eaabde 100644
--- a/source/blender/src/editnode.c
+++ b/source/blender/src/editnode.c
@@ -67,6 +67,7 @@
#include "BIF_resources.h"
#include "BIF_renderwin.h"
#include "BIF_space.h"
+#include "BIF_scrarea.h"
#include "BIF_screen.h"
#include "BIF_toolbox.h"
@@ -76,8 +77,9 @@
#include "BSE_headerbuttons.h"
#include "BSE_node.h"
-#include "BLI_blenlib.h"
#include "BLI_arithb.h"
+#include "BLI_blenlib.h"
+#include "BLI_storage_types.h"
#include "BDR_editobject.h"
@@ -188,11 +190,82 @@ static void shader_node_event(SpaceNode *snode, short event)
}
}
+static int image_detect_file_sequence(int *start_p, int *frames_p, char *str)
+{
+ SpaceFile *sfile;
+ char name[FILE_MAX], head[FILE_MAX], tail[FILE_MAX], filename[FILE_MAX];
+ int a, frame, totframe, found, minframe;
+ unsigned short numlen;
+
+ sfile= scrarea_find_space_of_type(curarea, SPACE_FILE);
+ if(sfile==0)
+ return 0;
+
+ /* find first frame */
+ found= 0;
+ minframe= 0;
+
+ for(a=0; a<sfile->totfile; a++) {
+ if(sfile->filelist[a].flags & ACTIVE) {
+ BLI_strncpy(name, sfile->filelist[a].relname, sizeof(name));
+ frame= BLI_stringdec(name, head, tail, &numlen);
+
+ if(!found || frame < minframe) {
+ BLI_strncpy(filename, name, sizeof(name));
+ minframe= frame;
+ found= 1;
+ }
+ }
+ }
+
+ /* not one frame found */
+ if(!found)
+ return 0;
+
+ /* counter number of following frames */
+ found= 1;
+ totframe= 0;
+
+ for(frame=minframe; found; frame++) {
+ found= 0;
+ BLI_strncpy(name, filename, sizeof(name));
+ BLI_stringenc(name, head, tail, numlen, frame);
+
+ for(a=0; a<sfile->totfile; a++) {
+ if(sfile->filelist[a].flags & ACTIVE) {
+ if(strcmp(sfile->filelist[a].relname, name) == 0) {
+ found= 1;
+ totframe++;
+ break;
+ }
+ }
+ }
+ }
+
+ if(totframe > 1) {
+ BLI_strncpy(str, sfile->dir, sizeof(name));
+ strcat(str, filename);
+
+ *start_p= minframe;
+ *frames_p= totframe;
+ return 1;
+ }
+
+ return 0;
+}
+
static void load_node_image(char *str) /* called from fileselect */
{
SpaceNode *snode= curarea->spacedata.first;
bNode *node= nodeGetActive(snode->edittree);
Image *ima= NULL;
+ ImageUser *iuser= node->storage;
+ char filename[FILE_MAX];
+ int start=0, frames=0, sequence;
+
+ sequence= image_detect_file_sequence(&start, &frames, filename);
+ if(sequence)
+ str= filename;
ima= BKE_add_image_file(str);
if(ima) {
@@ -203,6 +276,12 @@ static void load_node_image(char *str) /* called from fileselect */
id_us_plus(node->id);
BLI_strncpy(node->name, node->id->name+2, 21);
+
+ if(sequence) {
+ ima->source= IMA_SRC_SEQUENCE;
+ iuser->frames= frames;
+ iuser->offset= start-1;
+ }
BKE_image_signal(ima, node->storage, IMA_SIGNAL_RELOAD);
@@ -1714,8 +1793,10 @@ static void node_remove_extra_links(SpaceNode *snode, bNodeSocket *tsock, bNodeL
if(nodeCountSocketLinks(snode->edittree, sock) < sock->limit)
break;
}
- if(sock)
+ if(sock) {
tlink->tosock= sock;
+ sock->flag &= ~SOCK_HIDDEN;
+ }
else {
nodeRemLink(snode->edittree, tlink);
}
diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c
index 07973926503..cd8038e5c6e 100644
--- a/source/blender/src/editobject.c
+++ b/source/blender/src/editobject.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/**
@@ -339,6 +336,7 @@ void delete_obj(int ok)
allqueue(REDRAWNLA, 0);
DAG_scene_sort(G.scene);
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
BIF_undo_push("Delete object(s)");
}
@@ -964,7 +962,7 @@ void clear_parent(void)
}
DAG_scene_sort(G.scene);
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
allqueue(REDRAWVIEW3D, 0);
allqueue(REDRAWOOPS, 0);
@@ -1125,7 +1123,7 @@ void clear_object(char mode)
allqueue(REDRAWVIEW3D, 0);
if(armature_clear==0) /* in this case flush was done */
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
BIF_undo_push(str);
}
@@ -1625,7 +1623,7 @@ void make_parent(void)
allqueue(REDRAWOOPS, 0);
DAG_scene_sort(G.scene);
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
BIF_undo_push("make Parent");
}
@@ -1787,20 +1785,6 @@ void exit_editmode(int flag) /* freedata==0 at render, 1= freedata, 2= do undo b
/* for example; displist make is different in editmode */
if(freedata) G.obedit= NULL;
- /* total remake of softbody data */
- if(modifiers_isSoftbodyEnabled(ob)) {
- if (ob->soft && ob->soft->keys) {
- notice("Erase Baked SoftBody");
- }
-
- sbObjectToSoftbody(ob);
- }
-
- if(modifiers_isClothEnabled(ob)) {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- }
-
if(ob->type==OB_MESH && get_mesh(ob)->mr)
multires_edge_level_update(ob, get_mesh(ob));
@@ -2106,7 +2090,7 @@ void docenter(int centermode)
base= base->next;
}
if (tot_change) {
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
allqueue(REDRAWVIEW3D, 0);
BIF_undo_push("Do Center");
}
@@ -3148,7 +3132,7 @@ void flip_subdivison(int level)
allqueue(REDRAWOOPS, 0);
allqueue(REDRAWBUTSEDIT, 0);
allqueue(REDRAWBUTSOBJECT, 0);
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
if(particles)
BIF_undo_push("Switch particles on/off");
@@ -3657,7 +3641,7 @@ void copy_attr(short event)
if(do_scene_sort)
DAG_scene_sort(G.scene);
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
if(event==20) {
allqueue(REDRAWBUTSOBJECT, 0);
@@ -3691,7 +3675,7 @@ void copy_attr_menu()
strcat (str, "|Object Constraints%x22");
strcat (str, "|NLA Strips%x26");
- if ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL) {
+ if (OB_SUPPORT_MATERIAL(ob)) {
strcat(str, "|Texture Space%x17");
}
@@ -3904,7 +3888,7 @@ void make_links(short event)
allqueue(REDRAWOOPS, 0);
allqueue(REDRAWBUTSHEAD, 0);
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
BIF_undo_push("Create links");
}
@@ -5292,7 +5276,7 @@ void adduplicate(int mode, int dupflag)
copy_object_set_idnew(dupflag);
DAG_scene_sort(G.scene);
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
countall();
if(mode==0) {
diff --git a/source/blender/src/editoops.c b/source/blender/src/editoops.c
index cb654646d0f..48abb490e94 100644
--- a/source/blender/src/editoops.c
+++ b/source/blender/src/editoops.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/editparticle.c b/source/blender/src/editparticle.c
index d70b8620ae8..95a4abe1f9d 100644
--- a/source/blender/src/editparticle.c
+++ b/source/blender/src/editparticle.c
@@ -3,15 +3,12 @@
*
* $Id: editparticle.c $
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -280,7 +277,7 @@ static int test_key_depth(float *co, bglMats *mats){
float depth;
short wco[3], x,y;
- if((G.vd->flag & V3D_ZBUF_SELECT)==0) return 1;
+ if((G.vd->drawtype<=OB_WIRE) || (G.vd->flag & V3D_ZBUF_SELECT)==0) return 1;
gluProject(co[0],co[1],co[2], mats->modelview, mats->projection,
(GLint *)mats->viewport, &ux, &uy, &uz );
@@ -294,7 +291,8 @@ static int test_key_depth(float *co, bglMats *mats){
y=wco[1];
if(G.vd->depths && x<G.vd->depths->w && y<G.vd->depths->h){
- if((float)uz>G.vd->depths->depths[y*G.vd->depths->w+x])
+ /* the 0.0001 is an experimental threshold to make selecting keys right next to a surface work better */
+ if((float)uz - 0.0001 > G.vd->depths->depths[y*G.vd->depths->w+x])
return 0;
else
return 1;
@@ -305,7 +303,7 @@ static int test_key_depth(float *co, bglMats *mats){
glReadPixels(x, y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth);
- if((float)uz>depth)
+ if((float)uz - 0.0001 > depth)
return 0;
else
return 1;
@@ -1125,9 +1123,6 @@ void PE_set_particle_edit(void)
}
else{
G.f &= ~G_PARTICLEEDIT;
-
- if(psys->soft)
- psys->softflag |= OB_SB_REDO;
}
DAG_object_flush_update(G.scene, OBACT, OB_RECALC_DATA);
@@ -1503,10 +1498,12 @@ void PE_do_lasso_select(short mcords[][2], short moves, short select)
}
void PE_hide(int mode)
{
- ParticleSystem *psys = PE_get_current(OBACT);
+ Object *ob = OBACT;
+ ParticleSystem *psys = PE_get_current(ob);
ParticleEdit *edit;
+ ParticleEditKey *key;
ParticleData *pa;
- int i,totpart;
+ int i, k, totpart;
if(!PE_can_edit(psys)) return;
@@ -1514,21 +1511,40 @@ void PE_hide(int mode)
totpart = psys->totpart;
if(mode == 0){ /* reveal all particles */
- LOOP_PARTICLES(i,pa){
- pa->flag &= ~PARS_HIDE;
+ LOOP_PARTICLES(i, pa){
+ if(pa->flag & PARS_HIDE) {
+ pa->flag &= ~PARS_HIDE;
+ pa->flag |= PARS_EDIT_RECALC;
+
+ LOOP_KEYS(k, key)
+ key->flag |= PEK_SELECT;
+ }
}
}
else if(mode == 1){ /* hide unselected particles */
- LOOP_PARTICLES(i,pa)
- if(particle_is_selected(psys, pa))
+ LOOP_PARTICLES(i, pa) {
+ if(!particle_is_selected(psys, pa)) {
pa->flag |= PARS_HIDE;
+ pa->flag |= PARS_EDIT_RECALC;
+
+ LOOP_KEYS(k, key)
+ key->flag &= ~PEK_SELECT;
+ }
+ }
}
else{ /* hide selected particles */
- LOOP_PARTICLES(i,pa)
- if(particle_is_selected(psys, pa))
+ LOOP_PARTICLES(i, pa) {
+ if(particle_is_selected(psys, pa)) {
pa->flag |= PARS_HIDE;
+ pa->flag |= PARS_EDIT_RECALC;
+
+ LOOP_KEYS(k, key)
+ key->flag &= ~PEK_SELECT;
+ }
+ }
}
+ PE_update_selection(ob, 1);
BIF_undo_push("(Un)hide elements");
allqueue(REDRAWVIEW3D, 1);
@@ -2054,7 +2070,7 @@ static void brush_comb(ParticleSystem *psys, float mat[][4], float imat[][4], in
}
static void brush_cut(ParticleSystem *psys, int index, void *userData)
{
- struct { short *mval; float rad; rcti* rect; int selected; float cutfac;} *data = userData;
+ struct { short *mval; float rad; rcti* rect; int selected; float cutfac; bglMats mats;} *data = userData;
ParticleData *pa= &psys->particles[index];
ParticleCacheKey *key = psys->pathcache[index];
float rad2, cut_time = 1.0;
@@ -2080,7 +2096,7 @@ static void brush_cut(ParticleSystem *psys, int index, void *userData)
xo1 = x1 - o1;
/* check if root is inside circle */
- if(xo0*xo0 + xo1*xo1 < rad2) {
+ if(xo0*xo0 + xo1*xo1 < rad2 && test_key_depth(key->co,&(data->mats))) {
cut_time = -1.0f;
cut = 1;
}
@@ -2089,6 +2105,15 @@ static void brush_cut(ParticleSystem *psys, int index, void *userData)
for(k=1, key++; k<=keys; k++, key++){
project_short_noclip(key->co, vertco);
+ if(test_key_depth(key->co,&(data->mats)) == 0) {
+ x0 = (float)vertco[0];
+ x1 = (float)vertco[1];
+
+ xo0 = x0 - o0;
+ xo1 = x1 - o1;
+ continue;
+ }
+
v0 = (float)vertco[0] - x0;
v1 = (float)vertco[1] - x1;
@@ -2279,7 +2304,7 @@ static void brush_add(Object *ob, ParticleSystem *psys, short *mval, short numbe
/* create intersection coordinates in view Z direction at mouse coordinates */
/* Thanks to who ever wrote the "Mouse Location 3D Space" tutorial in "Blender 3D: Blending Into Python/Cookbook". */
- if(G.vd->persp){
+ if(G.vd->persp != V3D_ORTHO){
vec[0]= (2.0f*(mx+dmx)/curarea->winx);
vec[1]= (2.0f*(my+dmy)/curarea->winy);
vec[2]= -1.0f;
@@ -2607,7 +2632,7 @@ int PE_brush_particles(void)
}
case PE_BRUSH_CUT:
{
- struct { short *mval; float rad; rcti* rect; int selected; float cutfac;} data;
+ struct { short *mval; float rad; rcti* rect; int selected; float cutfac; bglMats mats;} data;
data.mval = mval;
data.rad = (float)brush->size;
@@ -2616,6 +2641,8 @@ int PE_brush_particles(void)
data.cutfac = (float)(brush->strength / 100.0f);
+ bgl_get_mats(&(data.mats));
+
if(selected)
foreach_selected_element(psys, brush_cut, &data);
else
diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c
index 6391cf54f27..58c3c6e1267 100644
--- a/source/blender/src/editscreen.c
+++ b/source/blender/src/editscreen.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* All screen functions that are related to the interface
* handling and drawing. Might be split up as well later...
*/
diff --git a/source/blender/src/editseq.c b/source/blender/src/editseq.c
index 30a4e8a3ab6..bd1c265f2a1 100644
--- a/source/blender/src/editseq.c
+++ b/source/blender/src/editseq.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/editsima.c b/source/blender/src/editsima.c
index dcbd98f90ad..c0efbf8b40b 100644
--- a/source/blender/src/editsima.c
+++ b/source/blender/src/editsima.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -218,12 +215,18 @@ void transform_aspect_ratio_tface_uv(float *aspx, float *aspy)
{
int w, h;
float xuser_asp, yuser_asp;
-
- aspect_sima(G.sima, &xuser_asp, &yuser_asp);
-
- transform_width_height_tface_uv(&w, &h);
- *aspx= (float)w/256.0f * xuser_asp;
- *aspy= (float)h/256.0f * yuser_asp;
+
+ if(G.sima && G.sima->image) {
+ image_pixel_aspect(G.sima->image, &xuser_asp, &yuser_asp);
+
+ transform_width_height_tface_uv(&w, &h);
+ *aspx= (float)w/256.0f * xuser_asp;
+ *aspy= (float)h/256.0f * yuser_asp;
+ }
+ else {
+ *aspx= 1.0f;
+ *aspy= 1.0f;
+ }
}
void transform_width_height_tface_uv(int *width, int *height)
@@ -710,7 +713,7 @@ void mouse_select_sima(void)
actface= 1;
sticky= 0;
} else {
- actface= G.sima->flag & SI_SELACTFACE;
+ actface= G.scene->selectmode & SCE_SELECT_FACE;
sticky= 2;
}
} else {
@@ -842,7 +845,10 @@ void mouse_select_sima(void)
simaUVSel_Set(efa, tf, 3);
}
}
- EM_set_actFace(nearestefa);
+
+ if (actface)
+ EM_set_actFace(nearestefa);
+
flush = 1;
}
}
@@ -2074,11 +2080,10 @@ int minmax_tface_uv(float *min, float *max)
for (efa= em->faces.first; efa; efa= efa->next) {
tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
if (simaFaceDraw_Check(efa, tf)) {
- if (simaUVSel_Check(efa, tf, 0)) DO_MINMAX2(tf->uv[0], min, max);
- if (simaUVSel_Check(efa, tf, 1)) DO_MINMAX2(tf->uv[1], min, max);
- if (simaUVSel_Check(efa, tf, 2)) DO_MINMAX2(tf->uv[2], min, max);
- if (efa->v4 && (simaUVSel_Check(efa, tf, 3))) DO_MINMAX2(tf->uv[3], min, max);
- sel = 1;
+ if (simaUVSel_Check(efa, tf, 0)) { DO_MINMAX2(tf->uv[0], min, max); sel = 1; }
+ if (simaUVSel_Check(efa, tf, 1)) { DO_MINMAX2(tf->uv[1], min, max); sel = 1; }
+ if (simaUVSel_Check(efa, tf, 2)) { DO_MINMAX2(tf->uv[2], min, max); sel = 1; }
+ if (efa->v4 && (simaUVSel_Check(efa, tf, 3))) { DO_MINMAX2(tf->uv[3], min, max); sel = 1; }
}
}
return sel;
@@ -2632,23 +2637,119 @@ void BIF_image_update_frame(void)
}
}
-void aspect_sima(SpaceImage *sima, float *x, float *y)
+extern int EM_texFaceCheck(void); /* from editmesh.c */
+/* called to assign images to UV faces */
+void image_changed(SpaceImage *sima, Image *image)
+{
+ MTFace *tface;
+ EditMesh *em = G.editMesh;
+ EditFace *efa;
+ ImBuf *ibuf = NULL;
+ short change = 0;
+
+ if(image==NULL) {
+ sima->flag &= ~SI_DRAWTOOL;
+ } else {
+ ibuf = BKE_image_get_ibuf(image, NULL);
+ }
+
+ if(sima->mode!=SI_TEXTURE)
+ return;
+
+ /* skip assigning these procedural images... */
+ if(image && (image->type==IMA_TYPE_R_RESULT || image->type==IMA_TYPE_COMPOSITE)) {
+ return;
+ } else if ((G.obedit) &&
+ (G.obedit->type == OB_MESH) &&
+ (G.editMesh) &&
+ (G.editMesh->faces.first)
+ ) {
+
+ /* Add a UV layer if there is none, editmode only */
+ if ( !CustomData_has_layer(&G.editMesh->fdata, CD_MTFACE) ) {
+ EM_add_data_layer(&em->fdata, CD_MTFACE);
+ CustomData_set_layer_active(&em->fdata, CD_MTFACE, 0); /* always zero because we have no other UV layers */
+ change = 1; /* so we update the object, incase no faces are selected */
+
+ /* BIF_undo_push("New UV Texture"); - undo should be done by whatever changes the image */
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWBUTSEDIT, 0);
+ }
+
+ for (efa= em->faces.first; efa; efa= efa->next) {
+ tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
+ if (efa->h==0 && efa->f & SELECT) {
+ if (image) {
+ tface->tpage= image;
+ tface->mode |= TF_TEX;
+
+ if(image->tpageflag & IMA_TILES) tface->mode |= TF_TILES;
+ else tface->mode &= ~TF_TILES;
+
+ if(image->id.us==0) id_us_plus(&image->id);
+ else id_lib_extern(&image->id);
+
+ if (tface->transp==TF_ADD) {} /* they obviously know what they are doing! - leave as is */
+ else if (ibuf && ibuf->depth == 32) tface->transp = TF_ALPHA;
+ else tface->transp = TF_SOLID;
+
+ } else {
+ tface->tpage= NULL;
+ tface->mode &= ~TF_TEX;
+ tface->transp = TF_SOLID;
+ }
+ change = 1;
+ }
+ }
+ }
+ /* change the space image after because simaFaceDraw_Check uses the space image
+ * to check if the face is displayed in UV-localview */
+ sima->image = image;
+
+ if (change)
+ object_uvs_changed(OBACT);
+
+ allqueue(REDRAWBUTSEDIT, 0);
+}
+
+void image_pixel_aspect(Image *image, float *x, float *y)
{
*x = *y = 1.0;
- if( (sima->image == 0) ||
- (sima->image->type == IMA_TYPE_R_RESULT) ||
- (sima->image->type == IMA_TYPE_COMPOSITE) ||
- (sima->image->tpageflag & IMA_TILES) ||
- (sima->image->aspx==0.0 || sima->image->aspy==0.0)
+ if( (image == NULL) ||
+ (image->type == IMA_TYPE_R_RESULT) ||
+ (image->type == IMA_TYPE_COMPOSITE) ||
+ (image->tpageflag & IMA_TILES) ||
+ (image->aspx==0.0 || image->aspy==0.0)
) {
return;
}
/* x is always 1 */
- *y = sima->image->aspy / sima->image->aspx;
+ *y = image->aspy / image->aspx;
}
+void image_final_aspect(Image *image, float *x, float *y)
+{
+ *x = *y = 1.0;
+
+ if( (image == NULL) ||
+ (image->type == IMA_TYPE_R_RESULT) ||
+ (image->type == IMA_TYPE_COMPOSITE) ||
+ (image->tpageflag & IMA_TILES) ||
+ (image->aspx==0.0 || image->aspy==0.0)
+ ) {
+ return;
+ } else {
+ ImBuf *ibuf= BKE_image_get_ibuf(image, NULL);
+ if (ibuf && ibuf->x && ibuf->y) {
+ *y = (image->aspy * ibuf->y) / (image->aspx * ibuf->x);
+ } else {
+ /* x is always 1 */
+ *y = image->aspy / image->aspx;
+ }
+ }
+}
/* Face selection tests - Keep these together */
diff --git a/source/blender/src/editsound.c b/source/blender/src/editsound.c
index 38098bdb35d..3ea9a0fb056 100644
--- a/source/blender/src/editsound.c
+++ b/source/blender/src/editsound.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
@@ -798,6 +795,7 @@ int sound_set_sample(bSound *sound, bSample *sample)
bSample *sound_new_sample(bSound *sound)
{
+ char samplename[FILE_MAX];
bSample *sample = NULL;
int len;
char *name;
@@ -824,9 +822,12 @@ bSample *sound_new_sample(bSound *sound)
sample->alindex = SAMPLE_INVALID;
/* convert sound->name to abolute filename */
- strcpy(sample->name, sound->name);
- BLI_convertstringcode(sample->name, G.sce, G.scene->r.cfra);
-
+ /* TODO: increase sound->name, sample->name and strip->name to FILE_MAX, to avoid
+ cutting off sample name here - elubie */
+ BLI_strncpy(samplename, sound->name, FILE_MAX);
+ BLI_convertstringcode(samplename, G.sce, G.scene->r.cfra);
+ BLI_strncpy(sample->name, samplename, FILE_MAXDIR);
+
/* connect the pf to the sample */
if (sound->newpackedfile)
sample->packedfile = sound->newpackedfile;
diff --git a/source/blender/src/editview.c b/source/blender/src/editview.c
index 47604b8133d..b7fbddc520f 100644
--- a/source/blender/src/editview.c
+++ b/source/blender/src/editview.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* cursor/gestures/selecteren
*/
@@ -2287,7 +2284,7 @@ void view3d_border_zoom(void)
cent[0] = (((double)rect.xmin)+((double)rect.xmax)) / 2;
cent[1] = (((double)rect.ymin)+((double)rect.ymax)) / 2;
- if (v3d->persp==1) { /* perspective */
+ if (v3d->persp==V3D_PERSP) {
double p_corner[3];
/* no depths to use, we cant do anything! */
@@ -2404,7 +2401,7 @@ void fly(void)
if(curarea->spacetype!=SPACE_VIEW3D) return;
- if(G.vd->persp==2 && G.vd->camera->id.lib) {
+ if(G.vd->persp==V3D_CAMOB && G.vd->camera->id.lib) {
error("Cannot fly a camera from an external library");
return;
}
@@ -2425,7 +2422,7 @@ void fly(void)
persp_backup= G.vd->persp;
dist_backup= G.vd->dist;
- if (G.vd->persp==2) { /* Camera */
+ if (G.vd->persp==V3D_CAMOB) {
if(G.vd->camera->constraints.first) {
error("Cannot fly an object with constraints");
return;
@@ -2448,8 +2445,8 @@ void fly(void)
} else {
/* perspective or ortho */
- if (G.vd->persp==0)
- G.vd->persp= 1; /*if ortho projection, make perspective */
+ if (G.vd->persp==V3D_ORTHO)
+ G.vd->persp= V3D_PERSP; /*if ortho projection, make perspective */
QUATCOPY(rot_backup, G.vd->viewquat);
VECCOPY(ofs_backup, G.vd->ofs);
G.vd->dist= 0.0;
@@ -2746,7 +2743,7 @@ void fly(void)
dvec[2] = dvec_tmp[2]*(1-dvec_lag) + dvec_old[2]*dvec_lag;
- if (G.vd->persp==2) {
+ if (G.vd->persp==V3D_CAMOB) {
if (G.vd->camera->protectflag & OB_LOCK_LOCX)
dvec[0] = 0.0;
if (G.vd->camera->protectflag & OB_LOCK_LOCY)
@@ -2768,11 +2765,11 @@ void fly(void)
do_screenhandlers(G.curscreen); /* advance the next frame */
/* we are in camera view so apply the view ofs and quat to the view matrix and set the camera to teh view */
- if (G.vd->persp==2) {
- G.vd->persp= 1; /*set this so setviewmatrixview3d uses the ofs and quat instead of the camera */
+ if (G.vd->persp==V3D_CAMOB) {
+ G.vd->persp= V3D_PERSP; /*set this so setviewmatrixview3d uses the ofs and quat instead of the camera */
setviewmatrixview3d();
setcameratoview3d();
- G.vd->persp= 2;
+ G.vd->persp= V3D_CAMOB;
/* record the motion */
if (IS_AUTOKEY_MODE(NORMAL) && (!playing_anim || cfra != G.scene->r.cfra)) {
@@ -2803,7 +2800,7 @@ void fly(void)
/* Revert to original view? */
if (action == 2) { /* action == 2 means the user pressed Esc of RMB, and not to apply view to camera */
- if (persp_backup==2) { /* a camera view */
+ if (persp_backup==V3D_CAMOB) { /* a camera view */
G.vd->viewbut=1;
VECCOPY(G.vd->camera->loc, ofs_backup);
VECCOPY(G.vd->camera->rot, rot_backup);
@@ -2815,7 +2812,7 @@ void fly(void)
G.vd->persp= persp_backup;
}
}
- else if (persp_backup==2) { /* camera */
+ else if (persp_backup==V3D_CAMOB) { /* camera */
float mat3[3][3];
Mat3CpyMat4(mat3, G.vd->camera->obmat);
Mat3ToCompatibleEul(mat3, G.vd->camera->rot, rot_backup);
diff --git a/source/blender/src/eventdebug.c b/source/blender/src/eventdebug.c
index 6c6a137a789..c21b2bee81b 100644
--- a/source/blender/src/eventdebug.c
+++ b/source/blender/src/eventdebug.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "mydevice.h"
#include "blendef.h"
diff --git a/source/blender/src/filelist.c b/source/blender/src/filelist.c
index 42940e5be04..589afb7f75f 100644
--- a/source/blender/src/filelist.c
+++ b/source/blender/src/filelist.c
@@ -95,7 +95,7 @@ typedef struct FileList
int numfiles;
int numfiltered;
- char dir[FILE_MAXDIR];
+ char dir[FILE_MAX];
short type;
short ipotype;
struct BlendHandle *libfiledata;
@@ -370,7 +370,7 @@ struct FileList* BIF_filelist_new()
struct FileList* BIF_filelist_copy(struct FileList* filelist)
{
FileList* p = BIF_filelist_new();
- BLI_strncpy(p->dir, filelist->dir, FILE_MAXDIR);
+ BLI_strncpy(p->dir, filelist->dir, FILE_MAX);
p->filelist = NULL;
p->fidx = NULL;
p->type = filelist->type;
@@ -438,7 +438,7 @@ const char * BIF_filelist_dir(struct FileList* filelist)
void BIF_filelist_setdir(struct FileList* filelist, const char *dir)
{
- BLI_strncpy(filelist->dir, dir, FILE_MAXDIR);
+ BLI_strncpy(filelist->dir, dir, FILE_MAX);
}
void BIF_filelist_imgsize(struct FileList* filelist, short w, short h)
@@ -590,7 +590,7 @@ void BIF_filelist_setfilter(struct FileList* filelist, unsigned int filter)
void BIF_filelist_readdir(struct FileList* filelist)
{
- char wdir[FILE_MAXDIR];
+ char wdir[FILE_MAX];
int finished = 0;
if (!filelist) return;
@@ -843,7 +843,7 @@ void BIF_filelist_from_library(struct FileList* filelist)
struct ImBuf* ima;
int ok, i, nnames, idcode;
char filename[FILE_MAXDIR+FILE_MAXFILE];
- char dir[FILE_MAXDIR], group[GROUP_MAX];
+ char dir[FILE_MAX], group[GROUP_MAX];
filelist->type = FILE_LOADLIB;
diff --git a/source/blender/src/filesel.c b/source/blender/src/filesel.c
index 597611344c6..138e0faa491 100644
--- a/source/blender/src/filesel.c
+++ b/source/blender/src/filesel.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -1223,6 +1220,7 @@ static void activate_fileselect_(int type, char *title, char *file, short *menup
}
else if(type==FILE_LOADLIB) {
BLI_strncpy(sfile->dir, name, sizeof(sfile->dir));
+ BLI_cleanup_dir(G.sce, sfile->dir);
if( is_a_library(sfile, temp, group) ) {
/* force a reload of the library-filelist */
freefilelist(sfile);
@@ -1413,6 +1411,14 @@ static void filesel_execute(SpaceFile *sfile)
struct direntry *files;
char name[FILE_MAX];
int a;
+
+ /* check for added length of dir and filename - annoying, but now that dir names can already be FILE_MAX
+ we need to prevent overwriting. Alternative of shortening the name behind the user's back is greater evil
+ - elubie */
+ if (strlen(sfile->dir) + strlen(sfile->file) >= FILE_MAX) {
+ okee("File and Directory name together are too long. Please use shorter names.");
+ return;
+ }
filesel_prevspace();
@@ -1869,7 +1875,7 @@ void winqreadfilespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
/* the path is too long and we are not going up! */
if (strcmp(sfile->filelist[act].relname, ".") &&
strcmp(sfile->filelist[act].relname, "..") &&
- strlen(sfile->dir) + strlen(sfile->filelist[act].relname) >= FILE_MAXDIR )
+ strlen(sfile->dir) + strlen(sfile->filelist[act].relname) >= FILE_MAX )
{
error("Path too long, cannot enter this directory");
} else {
@@ -1880,20 +1886,24 @@ void winqreadfilespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
sfile->ofs= 0;
do_draw= 1;
}
- }
- else {
+ } else {
if( strcmp(sfile->file, sfile->filelist[act].relname)) {
- char tmpstr[240];
- do_draw= 1;
BLI_strncpy(sfile->file, sfile->filelist[act].relname, sizeof(sfile->file));
- if (sfile->f_fp) {
- sprintf (tmpstr, "%s%s", sfile->dir, sfile->file);
- /* printf ("%s\n", tmpstr); */
- #ifdef INTERNATIONAL
- if (!FTF_GetNewFont ((const unsigned char *)tmpstr, 0, U.fontsize))
- error ("No font file");
- #endif
+ do_draw = 1;
+
+#ifdef INTERNATIONAL
+ if (sfile->type==FILE_LOADFONT && event!=MIDDLEMOUSE) {
+ /* Font Preview */
+ char tmpstr[240];
+ if (sfile->f_fp) {
+ sprintf (tmpstr, "%s%s", sfile->dir, sfile->file);
+
+ if (!FTF_GetNewFont ((const unsigned char *)tmpstr, 0, U.fontsize)) {
+ error ("No font file");
+ }
+ }
}
+#endif
}
if(event==MIDDLEMOUSE && sfile->type) filesel_execute(sfile);
}
@@ -2000,8 +2010,7 @@ void winqreadfilespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
if (sfile->filelist[i].flags & ACTIVE) {
BLI_make_file_string(G.sce, str, sfile->dir, sfile->filelist[i].relname);
- if(event==BKEY) ret= BLI_backup(sfile->filelist[i].relname, sfile->dir, otherdir);
- else if(event==CKEY) ret= BLI_copy_fileops(str, otherdir);
+ if(event==CKEY) ret= BLI_copy_fileops(str, otherdir);
else if(event==LKEY) ret= BLI_link(str, otherdir);
else if(event==MKEY) ret= BLI_move(str, otherdir);
@@ -2110,7 +2119,12 @@ void winqreadfilespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
fs_fake_users(sfile);
}
break;
-
+ case HKEY:
+ sfile->flag ^= FILE_HIDE_DOT;
+ BLI_hide_dot_files(sfile->flag & FILE_HIDE_DOT);
+ freefilelist(sfile);
+ scrarea_queue_winredraw(curarea);
+ break;
case PADPLUSKEY:
case EQUALKEY:
if (G.qual & LR_CTRLKEY) BLI_newname(sfile->file, +100);
diff --git a/source/blender/src/fluidsim.c b/source/blender/src/fluidsim.c
index ac90d3ed119..b51f5bba4d6 100644
--- a/source/blender/src/fluidsim.c
+++ b/source/blender/src/fluidsim.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
@@ -1129,6 +1126,11 @@ void fluidsimBake(struct Object *ob)
}
}
+void fluidsimFreeBake(struct Object *ob)
+{
+ /* not implemented yet */
+}
+
#else /* DISABLE_ELBEEM */
@@ -1149,5 +1151,8 @@ FluidsimSettings* fluidsimSettingsCopy(FluidsimSettings *fss) {
void fluidsimBake(struct Object *ob) {
}
+void fluidsimFreeBake(struct Object *ob) {
+}
+
#endif /* DISABLE_ELBEEM */
diff --git a/source/blender/src/fsmenu.c b/source/blender/src/fsmenu.c
index 319fb8de48f..fc98c054478 100644
--- a/source/blender/src/fsmenu.c
+++ b/source/blender/src/fsmenu.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/ghostwinlay.c b/source/blender/src/ghostwinlay.c
index eed753694bd..90a9ae9e406 100644
--- a/source/blender/src/ghostwinlay.c
+++ b/source/blender/src/ghostwinlay.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
#include <stdio.h>
diff --git a/source/blender/src/glutil.c b/source/blender/src/glutil.c
index 13922bb7eef..c4a7b32bf8c 100644
--- a/source/blender/src/glutil.c
+++ b/source/blender/src/glutil.c
@@ -3,15 +3,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
@@ -54,6 +51,43 @@
#define GL_CLAMP_TO_EDGE 0x812F
#endif
+/* defined in BIF_gl.h */
+GLubyte stipple_halftone[128] = {
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55};
+
+
+/* repeate this pattern
+ X000X000
+ 00000000
+ 00X000X0
+ 00000000 */
+
+
+GLubyte stipple_quarttone[128] = {
+ 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0,
+ 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0,
+ 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0,
+ 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0,
+ 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0,
+ 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0,
+ 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0,
+ 136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0};
+
/* Invert line handling */
diff --git a/source/blender/src/hddaudio.c b/source/blender/src/hddaudio.c
index 8a6128fba26..506a9b1b8aa 100644
--- a/source/blender/src/hddaudio.c
+++ b/source/blender/src/hddaudio.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Peter Schlaile <peter [at] schlaile [dot] de> 2005
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/src/header_action.c b/source/blender/src/header_action.c
index 4bbb9f18263..8405c5bf89d 100644
--- a/source/blender/src/header_action.c
+++ b/source/blender/src/header_action.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): 2007, Joshua Leung (Action Editor recode)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -97,7 +94,8 @@ enum {
ACTMENU_VIEW_TIME,
ACTMENU_VIEW_NOHIDE,
ACTMENU_VIEW_TRANSDELDUPS,
- ACTMENU_VIEW_HORIZOPTIMISE
+ ACTMENU_VIEW_HORIZOPTIMISE,
+ ACTMENU_VIEW_GCOLORS
};
enum {
@@ -347,6 +345,9 @@ static void do_action_viewmenu(void *arg, int event)
case ACTMENU_VIEW_HORIZOPTIMISE: /* Include keyframes not in view (horizontally) when preparing to draw */
G.saction->flag ^= SACTION_HORIZOPTIMISEON;
break;
+ case ACTMENU_VIEW_GCOLORS: /* Draw grouped-action channels using its group's color */
+ G.saction->flag ^= SACTION_DRAWGCOLORS;
+ break;
}
allqueue(REDRAWVIEW3D, 0);
}
@@ -393,15 +394,19 @@ static uiBlock *action_viewmenu(void *arg_unused)
menuwidth, 19, NULL, 0.0, 0.0, 1,
ACTMENU_VIEW_NOHIDE, "");
+ uiDefIconTextBut(block, BUTM, 1, (G.saction->flag & SACTION_DRAWGCOLORS)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
+ "Use Group Colors|", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_GCOLORS, "");
+
// this option may get removed in future
uiDefIconTextBut(block, BUTM, 1, (G.saction->flag & SACTION_HORIZOPTIMISEON)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
"Cull Out-of-View Keys (Time)|", 0, yco-=20,
menuwidth, 19, NULL, 0.0, 0.0, 1,
ACTMENU_VIEW_HORIZOPTIMISE, "");
-
- // this option may get removed in future...
+
uiDefIconTextBut(block, BUTM, 1, (G.saction->flag & SACTION_NOTRANSKEYCULL)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT,
- "AfterTrans Delete Dupli-Frames|", 0, yco-=20,
+ "AutoMerge Keyframes|", 0, yco-=20,
menuwidth, 19, NULL, 0.0, 0.0, 1,
ACTMENU_VIEW_TRANSDELDUPS, "");
diff --git a/source/blender/src/header_buttonswin.c b/source/blender/src/header_buttonswin.c
index 3519c1f582c..22471fda1ea 100644
--- a/source/blender/src/header_buttonswin.c
+++ b/source/blender/src/header_buttonswin.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/header_filesel.c b/source/blender/src/header_filesel.c
index 7591a6e7e21..f21b4be5725 100644
--- a/source/blender/src/header_filesel.c
+++ b/source/blender/src/header_filesel.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/header_image.c b/source/blender/src/header_image.c
index 5bb9ffcba4e..d4e5dd70777 100644
--- a/source/blender/src/header_image.c
+++ b/source/blender/src/header_image.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -296,7 +293,7 @@ void do_image_buttons(unsigned short event)
}
break;
case B_KEEPDATA:
- brush_toggle_fake_user(settings->imapaint.brush);
+ brush_toggled_fake_user(settings->imapaint.brush);
allqueue(REDRAWIMAGE, 0);
allqueue(REDRAWBUTSEDIT, 0);
break;
@@ -362,26 +359,6 @@ static void do_image_buttons_set_uvlayer_callback(void *act, void *data)
allqueue(REDRAWIMAGE, 0);
}
-static void do_image_buttons_set_selection_mode_callback(void *mode, void *dummy2)
-{
- int selectmode = *((int *)mode);
- if (selectmode==0) {
- if (G.scene->selectmode == SCE_SELECT_VERTEX) return;
- G.scene->selectmode = SCE_SELECT_VERTEX;
- } else {
- if (G.scene->selectmode == SCE_SELECT_FACE) return;
- G.scene->selectmode = SCE_SELECT_FACE;
- }
-
- EM_selectmode_set();
- countall();
-
- BIF_undo_push("Set Selection Mode");
- allqueue(REDRAWVIEW3D, 0);
- allqueue(REDRAWBUTSEDIT, 0);
- allqueue(REDRAWIMAGE, 0);
-}
-
static void do_image_view_viewnavmenu(void *arg, int event)
{
switch(event) {
@@ -460,14 +437,6 @@ static void do_image_viewmenu(void *arg, int event)
case 4: /* Realtime Panel... */
add_blockhandler(curarea, IMAGE_HANDLER_VIEW_PROPERTIES, UI_PNL_UNSTOW);
break;
- case 5: /* Draw Shadow Mesh */
- G.sima->flag ^= SI_DRAWSHADOW;
- allqueue(REDRAWIMAGE, 0);
- break;
- case 6: /* Draw Faces */
- G.f ^= G_DRAWFACES;
- allqueue(REDRAWIMAGE, 0);
- break;
case 7: /* Properties Panel */
add_blockhandler(curarea, IMAGE_HANDLER_PROPERTIES, UI_PNL_UNSTOW);
break;
@@ -476,9 +445,6 @@ static void do_image_viewmenu(void *arg, int event)
break;
case 9:
image_viewcenter();
- case 10: /* Display Normalized Coordinates */
- G.sima->flag ^= SI_COORDFLOATS;
- allqueue(REDRAWIMAGE, 0);
break;
case 11: /* Curves Panel... */
add_blockhandler(curarea, IMAGE_HANDLER_CURVES, UI_PNL_UNSTOW);
@@ -513,15 +479,6 @@ static uiBlock *image_viewmenu(void *arg_unused)
uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Paint Tool...|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Curves Tool...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Composite Preview...|Shift P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
-
- if(G.sima->flag & SI_COORDFLOATS) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Display Normalized Coordinates|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
- else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Display Normalized Coordinates|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
- if(G.f & G_DRAWFACES) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Draw Faces", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
- else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Draw Faces|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
- if(G.sima->flag & SI_DRAWSHADOW) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Draw Shadow Mesh", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
- else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Draw Shadow Mesh|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
-
- uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
if(G.sima->flag & SI_LOCAL_UV) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "UV Local View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, "");
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "UV Local View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, "");
@@ -1233,20 +1190,30 @@ void image_buttons(void)
"Rotation/Scaling Pivot (Hotkeys: Comma, Shift Comma, Period)");
xco+= XIC + 18;
- uiBlockBeginAlign(block);
+
uiDefIconButBitI(block, TOG, SI_SYNC_UVSEL, B_REDR, ICON_EDIT, xco,0,XIC,YIC, &G.sima->flag, 0, 0, 0, 0, "Sync UV and Mesh Selection");
- xco+= XIC;
+ xco+= XIC+8;
if (G.sima->flag & SI_SYNC_UVSEL) {
- static int selectmode;
- /* would use these if const's could go in strings
- * SCE_SELECT_VERTEX, SCE_SELECT_FACE */
- ubut = uiDefIconTextButI(block, ICONTEXTROW, B_REDR, ICON_VERTEXSEL,
- "Selection Mode: %t|Vertex%x0|Face%x2",
- xco,0,XIC+10,YIC, &selectmode, 0, 3.0, 0, 0,
- "Change mesh selection mode");
- uiButSetFunc(ubut, do_image_buttons_set_selection_mode_callback, &selectmode, NULL);
+ uiBlockBeginAlign(block);
+
+ /* B_SEL_VERT & B_SEL_FACE are not defined here which is a bit bad, BUT it works even if image editor is fullscreen */
+ uiDefIconButBitS(block, TOG, SCE_SELECT_VERTEX, B_SEL_VERT, ICON_VERTEXSEL, xco,0,XIC,YIC, &G.scene->selectmode, 1.0, 0.0, 0, 0, "Vertex select mode (Ctrl Tab 1)");
+ xco+= XIC;
+ /* no edge */
+ /*uiDefIconButBitS(block, TOG, SCE_SELECT_EDGE, B_SEL_EDGE, ICON_EDGESEL, xco,0,XIC,YIC, &G.scene->selectmode, 1.0, 0.0, 0, 0, "Edge select mode (Ctrl Tab 2)");
+ xco+= XIC; */
+ uiDefIconButBitS(block, TOG, SCE_SELECT_FACE, B_SEL_FACE, ICON_FACESEL, xco,0,XIC,YIC, &G.scene->selectmode, 1.0, 0.0, 0, 0, "Face select mode (Ctrl Tab 3)");
+ xco+= XIC+8;
+ uiBlockEndAlign(block);
} else {
+ uiBlockBeginAlign(block);
+ uiDefIconButBitI(block, TOGN, SI_SELACTFACE, B_REDR, ICON_VERTEXSEL, xco,0,XIC,YIC, &G.sima->flag, 1.0, 0.0, 0, 0, "UV Vertex select mode)");
+ xco+= XIC;
+ uiDefIconButBitI(block, TOG, SI_SELACTFACE, B_REDR, ICON_FACESEL, xco,0,XIC,YIC, &G.sima->flag, 0, 0, 0, 0, "UV Face select mode");
+ xco+= XIC+8;
+ uiBlockEndAlign(block);
+
/* would use these if const's could go in strings
* SI_STICKY_LOC SI_STICKY_DISABLE SI_STICKY_VERTEX */
ubut = uiDefIconTextButC(block, ICONTEXTROW, B_REDR, ICON_STICKY_UVS_LOC,
@@ -1256,7 +1223,6 @@ void image_buttons(void)
}
xco+= XIC + 16;
- uiBlockEndAlign(block);
/* Snap copied right out of view3d header */
uiBlockBeginAlign(block);
diff --git a/source/blender/src/header_imasel.c b/source/blender/src/header_imasel.c
index 8650d620cc0..f66bb882367 100644
--- a/source/blender/src/header_imasel.c
+++ b/source/blender/src/header_imasel.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -104,7 +101,7 @@ void imasel_buttons(void)
uiBlock *block;
short xco, xcotitle;
char naam[256];
- char dir[FILE_MAXDIR], group[32];
+ char dir[FILE_MAX], group[32];
short type;
int do_filter = 0;
diff --git a/source/blender/src/header_info.c b/source/blender/src/header_info.c
index fb7b57ddb8d..dac7c7bc2c6 100644
--- a/source/blender/src/header_info.c
+++ b/source/blender/src/header_info.c
@@ -5,15 +5,12 @@
* and handle user events sent to it.
*
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
@@ -806,7 +803,7 @@ static uiBlock *verse_filemenu(void *unusedargs)
static void do_info_filemenu(void *arg, int event)
{
ScrArea *sa;
- char dir[FILE_MAXDIR];
+ char dir[FILE_MAX];
if(curarea->spacetype==SPACE_INFO) {
sa= closest_bigger_area();
@@ -828,12 +825,12 @@ static void do_info_filemenu(void *arg, int event)
activate_fileselect(FILE_LOADLIB, "Load Library", G.lib, 0);
break;
case 4: /* save */
- strcpy(dir, G.sce);
+ BLI_strncpy(dir, G.sce, FILE_MAX);
untitled(dir);
activate_fileselect(FILE_BLENDER, "Save As", dir, BIF_write_file);
break;
case 5:
- strcpy(dir, G.sce);
+ BLI_strncpy(dir, G.sce, FILE_MAX);
if (untitled(dir)) {
activate_fileselect(FILE_BLENDER, "Save As", dir, BIF_write_file);
} else {
@@ -866,10 +863,10 @@ static void do_info_filemenu(void *arg, int event)
{
extern short winqueue_break; /* editscreen.c */
int save_over, retval = 0;
- char str[FILE_MAXDIR+FILE_MAXFILE];
- char scestr[FILE_MAXDIR+FILE_MAXFILE];
+ char str[FILE_MAX];
+ char scestr[FILE_MAX];
- strcpy(scestr, G.sce); /* temporal store */
+ BLI_strncpy(scestr, G.sce, FILE_MAX); /* temporal store */
save_over = G.save_over;
BLI_make_file_string("/", str, btempdir, "quit.blend");
retval = BKE_read_file(str, NULL);
diff --git a/source/blender/src/header_ipo.c b/source/blender/src/header_ipo.c
index 4f98e966f8c..54a3790574b 100644
--- a/source/blender/src/header_ipo.c
+++ b/source/blender/src/header_ipo.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -210,13 +207,9 @@ void spaceipo_assign_ipo(SpaceIpo *si, Ipo *ipo)
{
Sequence *seq= (Sequence *)si->from; /* note, sequence is mimicing Id */
- if((seq->type & SEQ_EFFECT)
- || (seq->type == SEQ_RAM_SOUND)
- || (seq->type == SEQ_HD_SOUND)) {
- if(seq->ipo)
- seq->ipo->id.us--;
- seq->ipo= ipo;
- }
+ if(seq->ipo)
+ seq->ipo->id.us--;
+ seq->ipo= ipo;
}
break;
case ID_CU:
@@ -571,10 +564,10 @@ static uiBlock *ipo_editmenu_extendmenu(void *arg_unused)
block= uiNewBlock(&curarea->uiblocks, "ipo_editmenu_extendmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
uiBlockSetButmFunc(block, do_ipo_editmenu_extendmenu, NULL);
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Constant", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrapolation", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cyclic", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cyclic Extrapolation", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Constant|E, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrapolation|E, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cyclic|E, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cyclic Extrapolation|E, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
uiBlockSetDirection(block, UI_RIGHT);
uiTextBoundsBlock(block, 60);
@@ -749,6 +742,9 @@ static void do_ipo_viewmenu(void *arg, int event)
case 11:
do_ipo_buttons(B_IPOVIEWCENTER);
break;
+ case 12:
+ G.sipo->flag ^= SIPO_LOCK_VIEW;
+ break;
}
}
@@ -769,7 +765,7 @@ static uiBlock *ipo_viewmenu(void *arg_unused)
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Show Keys|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
else
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Show Keys|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
-
+
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Zoom Out|NumPad -", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
@@ -788,6 +784,11 @@ static uiBlock *ipo_viewmenu(void *arg_unused)
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Center on Current Frame|Shift C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
uiDefIconTextBut(block, BUTM, 1, (G.v2d->flag & V2D_VIEWLOCK)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
"Lock Time to Other Windows|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
+
+ if (G.sipo->flag & SIPO_LOCK_VIEW)
+ uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Lock View Area", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
+ else
+ uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Lock View Area", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
if (ei != NULL && (ei->flag & IPO_EDIT)) {
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move Current Frame to Selected|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
diff --git a/source/blender/src/header_nla.c b/source/blender/src/header_nla.c
index 05f809a46ae..41e7bc32365 100644
--- a/source/blender/src/header_nla.c
+++ b/source/blender/src/header_nla.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/header_script.c b/source/blender/src/header_script.c
index ba43ae2e7e5..f0a042f27c0 100644
--- a/source/blender/src/header_script.c
+++ b/source/blender/src/header_script.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): Willian P. Germano.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/header_seq.c b/source/blender/src/header_seq.c
index a9173b18c1c..6648520cfff 100644
--- a/source/blender/src/header_seq.c
+++ b/source/blender/src/header_seq.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/header_sound.c b/source/blender/src/header_sound.c
index c2fb72d7d17..a3817bd5df3 100644
--- a/source/blender/src/header_sound.c
+++ b/source/blender/src/header_sound.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/header_text.c b/source/blender/src/header_text.c
index 9ee7896d65e..cf6d21ff264 100644
--- a/source/blender/src/header_text.c
+++ b/source/blender/src/header_text.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/header_time.c b/source/blender/src/header_time.c
index 7b98d2f5f4c..9a77a4c44eb 100644
--- a/source/blender/src/header_time.c
+++ b/source/blender/src/header_time.c
@@ -2,15 +2,12 @@
*
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -56,6 +53,7 @@
#include "BKE_global.h"
#include "BKE_main.h"
+#include "BKE_pointcache.h"
#include "BSE_drawipo.h"
#include "BSE_drawview.h"
@@ -69,6 +67,24 @@
#include "butspace.h"
#include "mydevice.h"
+static void start_animated_screen(SpaceTime *stime)
+{
+ add_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM, stime->redraws);
+
+ if(stime->redraws & TIME_WITH_SEQ_AUDIO)
+ audiostream_start( CFRA );
+
+ BKE_ptcache_set_continue_physics((stime->redraws & TIME_CONTINUE_PHYSICS));
+}
+
+static void end_animated_screen(SpaceTime *stime)
+{
+ rem_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM);
+
+ audiostream_stop();
+ BKE_ptcache_set_continue_physics(0);
+}
+
void do_time_buttons(ScrArea *sa, unsigned short event)
{
SpaceTime *stime= sa->spacedata.first;
@@ -80,17 +96,11 @@ void do_time_buttons(ScrArea *sa, unsigned short event)
update_for_newframe();
break;
case B_TL_PLAY:
- add_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM, stime->redraws);
- if(stime->redraws & TIME_WITH_SEQ_AUDIO)
- audiostream_start( CFRA );
-
+ start_animated_screen(stime);
break;
case B_TL_STOP:
- rem_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM);
- if(stime->redraws & TIME_WITH_SEQ_AUDIO)
- audiostream_stop();
+ end_animated_screen(stime);
allqueue(REDRAWALL, 0);
-
break;
case B_TL_FF:
/* end frame */
@@ -132,7 +142,7 @@ static void do_time_redrawmenu(void *arg, int event)
stime->redraws ^= event;
/* update handler when it's running */
if(has_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM))
- add_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM, stime->redraws);
+ start_animated_screen(stime);
}
else {
if(event==1001) {
@@ -182,6 +192,12 @@ static uiBlock *time_redrawmenu(void *arg_unused)
sprintf(str, "Set Frames/Sec (%d/%f)", G.scene->r.frs_sec, G.scene->r.frs_sec_base);
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, str, 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1001, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ if(stime->redraws & TIME_CONTINUE_PHYSICS) icon= ICON_CHECKBOX_HLT;
+ else icon= ICON_CHECKBOX_DEHLT;
+ uiDefIconTextBut(block, BUTM, 1, icon, "Continue Physics", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, TIME_CONTINUE_PHYSICS, "During playblack, continue physics simulations regardless of the frame number");
if(curarea->headertype==HEADERTOP) {
@@ -204,7 +220,8 @@ static void do_time_viewmenu(void *arg, int event)
switch(event) {
case 2: /* Play Back Animation */
- add_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM, stime->redraws);
+ if(!has_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM))
+ start_animated_screen(stime);
break;
case 3: /* View All */
first= G.scene->r.sfra;
diff --git a/source/blender/src/header_view3d.c b/source/blender/src/header_view3d.c
index 623662d8f39..047693f25ca 100644
--- a/source/blender/src/header_view3d.c
+++ b/source/blender/src/header_view3d.c
@@ -6,15 +6,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +29,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -220,7 +217,7 @@ static void do_view3d_view_camerasmenu(void *arg, int event)
if (event==i) {
- if (G.vd->camera == base->object && G.vd->persp==2)
+ if (G.vd->camera == base->object && G.vd->persp==V3D_CAMOB)
return;
if (U.smooth_viewtx) {
@@ -228,12 +225,12 @@ static void do_view3d_view_camerasmenu(void *arg, int event)
float orig_ofs[3], orig_lens = G.vd->lens;
VECCOPY(orig_ofs, G.vd->ofs);
- if (G.vd->camera && G.vd->persp==2)
+ if (G.vd->camera && G.vd->persp==V3D_CAMOB)
view_settings_from_ob(G.vd->camera, G.vd->ofs, G.vd->viewquat, &G.vd->dist, &G.vd->lens);
G.vd->camera = base->object;
handle_view3d_lock();
- G.vd->persp= 2;
+ G.vd->persp= V3D_CAMOB;
G.vd->view= 0;
smooth_view_to_camera(G.vd);
@@ -244,7 +241,7 @@ static void do_view3d_view_camerasmenu(void *arg, int event)
} else {
G.vd->camera= base->object;
handle_view3d_lock();
- G.vd->persp= 2;
+ G.vd->persp= V3D_CAMOB;
G.vd->view= 0;
}
break;
@@ -550,7 +547,7 @@ static void do_view3d_viewmenu(void *arg, int event)
switch(event) {
case 0: /* User */
G.vd->viewbut = 0;
- G.vd->persp = 1;
+ G.vd->persp = V3D_PERSP;
break;
case 1: /* Camera */
persptoetsen(PAD0);
@@ -565,10 +562,10 @@ static void do_view3d_viewmenu(void *arg, int event)
persptoetsen(PAD3);
break;
case 5: /* Perspective */
- G.vd->persp=1;
+ G.vd->persp=V3D_PERSP;
break;
case 6: /* Orthographic */
- G.vd->persp=0;
+ G.vd->persp=V3D_ORTHO;
break;
case 7: /* Local View */
G.vd->localview= 1;
@@ -625,9 +622,9 @@ static uiBlock *view3d_viewmenu(void *arg_unused)
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
- if ((G.vd->viewbut == 0) && !(G.vd->persp == 2)) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "User", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
+ if ((G.vd->viewbut == 0) && !(G.vd->persp == V3D_CAMOB)) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "User", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "User", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
- if (G.vd->persp == 2) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Camera|NumPad 0", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
+ if (G.vd->persp == V3D_CAMOB) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Camera|NumPad 0", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Camera|NumPad 0", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
if (G.vd->viewbut == 1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Top|NumPad 7", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Top|NumPad 7", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
@@ -640,9 +637,9 @@ static uiBlock *view3d_viewmenu(void *arg_unused)
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
- if(G.vd->persp==1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Perspective|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
+ if(G.vd->persp==V3D_PERSP) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Perspective|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Perspective|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
- if(G.vd->persp==0) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Orthographic|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
+ if(G.vd->persp==V3D_ORTHO) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Orthographic|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Orthographic|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
@@ -663,7 +660,7 @@ static uiBlock *view3d_viewmenu(void *arg_unused)
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Clipping Border|Alt B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 17, "");
else
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Set Clipping Border|Alt B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 17, "");
- if (v3d->persp==0) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Zoom Within Border...|Shift B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 19, "");
+ if (v3d->persp==V3D_ORTHO) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Zoom Within Border...|Shift B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 19, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "View Selected|NumPad .", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "View All|Home", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 9, "");
if(!curarea->full) uiDefIconTextBut(block, BUTM, B_FULL, ICON_BLANK1, "Maximize Window|Ctrl UpArrow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 99, "");
@@ -2718,7 +2715,11 @@ void do_view3d_edit_mesh_edgesmenu(void *arg, int event)
EdgeSlide(0,0.0);
break;
case 13: /* Edge Loop Delete */
- EdgeLoopDelete();
+ if(EdgeLoopDelete()) {
+ countall();
+ BIF_undo_push("Erase Edge Loop");
+ DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
+ }
break;
case 14: /*Collapse Edges*/
collapseEdges();
@@ -3868,6 +3869,9 @@ static void do_view3d_edit_armaturemenu(void *arg, int event)
case 21:
armature_autoside_names(event-19);
break;
+ case 22: /* separate */
+ separate_armature();
+ break;
}
allqueue(REDRAWVIEW3D, 0);
@@ -3877,9 +3881,9 @@ static void do_view3d_edit_armaturemenu(void *arg, int event)
static void do_view3d_scripts_armaturemenu(void *arg, int event)
{
- BPY_menu_do_python(PYMENU_SCRIPTTEMPLATE, event);
+ BPY_menu_do_python(PYMENU_ARMATURE, event);
- allqueue(REDRAWIMAGE, 0);
+ allqueue(REDRAWVIEW3D, 0);
}
static uiBlock *view3d_scripts_armaturemenu(void *args_unused)
@@ -3957,7 +3961,7 @@ static uiBlock *view3d_edit_armaturemenu(void *arg_unused)
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrude|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
- if(arm->flag & ARM_MIRROR_EDIT)
+ if (arm->flag & ARM_MIRROR_EDIT)
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrude Forked|Shift E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
@@ -3965,6 +3969,8 @@ static uiBlock *view3d_edit_armaturemenu(void *arg_unused)
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Fill Between Joints|F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Separate|Ctrl Shift P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 22, "");
+
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide|W, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
@@ -5135,9 +5141,10 @@ void do_view3d_buttons(short event)
case B_PERSP:
- if(G.vd->persp==2) persptoetsen(PAD0);
+ if(G.vd->persp==V3D_CAMOB) persptoetsen(PAD0);
else {
- G.vd->persp= 1-G.vd->persp;
+ if (G.vd->persp==V3D_ORTHO) G.vd->persp = V3D_PERSP;
+ else if (G.vd->persp==V3D_PERSP) G.vd->persp = V3D_ORTHO;
persptoetsen(PAD5);
}
@@ -5588,7 +5595,7 @@ void view3d_buttons(void)
uiBlockEndAlign(block);
}
} else {
- if (G.obedit==NULL && (G.f & (G_VERTEXPAINT|G_WEIGHTPAINT|G_TEXTUREPAINT|G_SCULPTMODE))) {
+ if (G.obedit==NULL && (G.f & (G_VERTEXPAINT|G_WEIGHTPAINT|G_TEXTUREPAINT))) {
uiDefIconButBitI(block, TOG, G_FACESELECT, B_REDR, ICON_FACESEL_HLT,xco,0,XIC,YIC, &G.f, 0, 0, 0, 0, "Painting Mask (FKey)");
xco+= XIC+10;
} else {
diff --git a/source/blender/src/headerbuttons.c b/source/blender/src/headerbuttons.c
index 43ca45ffb67..fcc1dcb42b4 100644
--- a/source/blender/src/headerbuttons.c
+++ b/source/blender/src/headerbuttons.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -384,10 +381,7 @@ int std_libbuttons(uiBlock *block, short xco, short yco,
}
if(keepbut) {
- if(id->flag & LIB_FAKEUSER)
- uiDefBut(block, BUT, keepbut, "F", xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Don't save this datablock even if it has no users");
- else
- uiDefBut(block, BUT, keepbut, "F", xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Saves this datablock even if it has no users");
+ uiDefButBitS(block, TOG, LIB_FAKEUSER, keepbut, "F", xco,yco,XIC,YIC, &id->flag, 0, 0, 0, 0, "Saves this datablock even if it has no users");
xco+= XIC;
}
}
@@ -546,9 +540,14 @@ static void filesel_u_pythondir(char *name)
BLI_cleanup_dir(G.sce, name);
BLI_split_dirfile(name, dir, file);
-
+
strcpy(U.pythondir, dir);
allqueue(REDRAWALL, 0);
+
+ /* act on the change */
+ BPyMenu_RemoveAllEntries();
+ BPY_rebuild_syspath();
+ if (BPyMenu_Init(1) == -1) error("Invalid scripts dir: check console");
}
static void filesel_u_sounddir(char *name)
@@ -1649,13 +1648,11 @@ void do_global_buttons(unsigned short event)
id= (ID *)G.saction->action;
}/* similar for other spacetypes ? */
if (id) {
- if( id->flag & LIB_FAKEUSER) {
- id->flag -= LIB_FAKEUSER;
- id->us--;
- } else {
- id->flag |= LIB_FAKEUSER;
+ /* flag was already toggled, just need to update user count */
+ if(id->flag & LIB_FAKEUSER)
id->us++;
- }
+ else
+ id->us--;
}
allqueue(REDRAWHEADERS, 0);
diff --git a/source/blender/src/imagepaint.c b/source/blender/src/imagepaint.c
index 539fde5b14d..15c289cc21c 100644
--- a/source/blender/src/imagepaint.c
+++ b/source/blender/src/imagepaint.c
@@ -4,15 +4,12 @@
*
* Functions to paint images in 2D and 3D.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): Jens Ole Wund (bjornmose)
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/src/imasel.c b/source/blender/src/imasel.c
index 78fc3f1be2a..be9f489ea49 100644
--- a/source/blender/src/imasel.c
+++ b/source/blender/src/imasel.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h>
diff --git a/source/blender/src/interface.c b/source/blender/src/interface.c
index 6513a3a2a4e..fb5b5e2f187 100644
--- a/source/blender/src/interface.c
+++ b/source/blender/src/interface.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/src/interface_draw.c b/source/blender/src/interface_draw.c
index 0cbcff3875a..fdb5fea658c 100644
--- a/source/blender/src/interface_draw.c
+++ b/source/blender/src/interface_draw.c
@@ -2,15 +2,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/src/interface_icons.c b/source/blender/src/interface_icons.c
index d93834d8d8a..641669e2168 100644
--- a/source/blender/src/interface_icons.c
+++ b/source/blender/src/interface_icons.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/src/interface_panel.c b/source/blender/src/interface_panel.c
index de1e70caeec..8cb0619835e 100644
--- a/source/blender/src/interface_panel.c
+++ b/source/blender/src/interface_panel.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
@@ -876,8 +873,8 @@ static void ui_draw_panel_header(uiBlock *block)
Panel *pa, *panel= block->panel;
float width;
int a, nr= 1, pnl_icons;
- char *panelname= panel->drawname[0]?panel->drawname:panel->panelname;
- char *str;
+ char *activename= panel->drawname[0]?panel->drawname:panel->panelname;
+ char *panelname, *str;
/* count */
pa= curarea->panels.first;
@@ -901,7 +898,7 @@ static void ui_draw_panel_header(uiBlock *block)
/* draw text label */
BIF_ThemeColor(TH_TEXT_HI);
ui_rasterpos_safe(4.0f+block->minx+pnl_icons, block->maxy+5.0f, block->aspect);
- BIF_DrawString(block->curfont, panelname, (U.transopts & USER_TR_BUTTONS));
+ BIF_DrawString(block->curfont, activename, (U.transopts & USER_TR_BUTTONS));
return;
}
@@ -915,6 +912,8 @@ static void ui_draw_panel_header(uiBlock *block)
pa= curarea->panels.first;
while(pa) {
panelname= pa->drawname[0]?pa->drawname:pa->panelname;
+ if(a == 0)
+ activename= panelname;
if(pa->active==0);
else if(pa==panel) {
@@ -928,7 +927,10 @@ static void ui_draw_panel_header(uiBlock *block)
/* draw the active text label */
BIF_ThemeColor(TH_TEXT);
ui_rasterpos_safe(16+pnl_icons+a*width, panel->sizey+4, block->aspect);
- str= ui_block_cut_str(block, panelname, (short)(width-10));
+ if(panelname != activename && strstr(panelname, activename) == panelname)
+ str= ui_block_cut_str(block, panelname+strlen(activename), (short)(width-10));
+ else
+ str= ui_block_cut_str(block, panelname, (short)(width-10));
BIF_DrawString(block->curfont, str, (U.transopts & USER_TR_BUTTONS));
a++;
@@ -942,7 +944,10 @@ static void ui_draw_panel_header(uiBlock *block)
/* draw an inactive tab label */
BIF_ThemeColorShade(TH_TEXT_HI, -40);
ui_rasterpos_safe(16+pnl_icons+a*width, panel->sizey+4, block->aspect);
- str= ui_block_cut_str(block, panelname, (short)(width-10));
+ if(panelname != activename && strstr(panelname, activename) == panelname)
+ str= ui_block_cut_str(block, panelname+strlen(activename), (short)(width-10));
+ else
+ str= ui_block_cut_str(block, panelname, (short)(width-10));
BIF_DrawString(block->curfont, str, (U.transopts & USER_TR_BUTTONS));
a++;
diff --git a/source/blender/src/keyval.c b/source/blender/src/keyval.c
index 79445fa7aa2..dab4b4ae839 100644
--- a/source/blender/src/keyval.c
+++ b/source/blender/src/keyval.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BLI_blenlib.h"
diff --git a/source/blender/src/language.c b/source/blender/src/language.c
index 5eb4bf3dc61..07c17b58a44 100644
--- a/source/blender/src/language.c
+++ b/source/blender/src/language.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/blender/src/lorem.c b/source/blender/src/lorem.c
index 6b3a00f2cc3..68637f7f9ef 100644
--- a/source/blender/src/lorem.c
+++ b/source/blender/src/lorem.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -20,7 +17,7 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BIF_editfont.h"
diff --git a/source/blender/src/mainqueue.c b/source/blender/src/mainqueue.c
index 30ee825a23a..9e26ebb3a10 100644
--- a/source/blender/src/mainqueue.c
+++ b/source/blender/src/mainqueue.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* Just the functions to maintain a central event
* queue.
diff --git a/source/blender/src/meshlaplacian.c b/source/blender/src/meshlaplacian.c
index 5e8fdac80da..4d84672185a 100644
--- a/source/blender/src/meshlaplacian.c
+++ b/source/blender/src/meshlaplacian.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* meshlaplacian.c: Algorithms using the mesh laplacian.
*/
diff --git a/source/blender/src/meshtools.c b/source/blender/src/meshtools.c
index f40ecb74948..79b0d8fc1de 100644
--- a/source/blender/src/meshtools.c
+++ b/source/blender/src/meshtools.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
diff --git a/source/blender/src/mywindow.c b/source/blender/src/mywindow.c
index 56ef28d3a6e..cb8d233c341 100644
--- a/source/blender/src/mywindow.c
+++ b/source/blender/src/mywindow.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*
* for compatibility with old iris code, replacement of swinopen, winset, etc
diff --git a/source/blender/src/oops.c b/source/blender/src/oops.c
index 7def4ca615e..1f851d2fa6c 100644
--- a/source/blender/src/oops.c
+++ b/source/blender/src/oops.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/src/outliner.c b/source/blender/src/outliner.c
index b9c1725233f..d66118ae1fc 100644
--- a/source/blender/src/outliner.c
+++ b/source/blender/src/outliner.c
@@ -1302,6 +1302,8 @@ static int outliner_open_back(SpaceOops *soops, TreeElement *te)
return retval;
}
+/* This is not used anywhere at the moment */
+#if 0
static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found)
{
TreeElement *te;
@@ -1324,7 +1326,7 @@ static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *te
}
}
}
-
+#endif
void outliner_one_level(struct ScrArea *sa, int add)
{
@@ -2652,7 +2654,7 @@ static void object_delete_cb(TreeElement *te, TreeStoreElem *tsep, TreeStoreElem
if(G.obedit==base->object) exit_editmode(EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR);
if(base==BASACT) {
- G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT);
+ G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT+G_SCULPTMODE);
setcursor_space(SPACE_VIEW3D, CURSOR_STD);
}
diff --git a/source/blender/src/parametrizer.c b/source/blender/src/parametrizer.c
index c97056956d8..a643f37ec2a 100644
--- a/source/blender/src/parametrizer.c
+++ b/source/blender/src/parametrizer.c
@@ -256,6 +256,16 @@ static void p_chart_uv_scale(PChart *chart, float scale)
}
}
+static void p_chart_uv_scale_xy(PChart *chart, float x, float y)
+{
+ PVert *v;
+
+ for (v=chart->verts; v; v=v->nextlink) {
+ v->uv[0] *= x;
+ v->uv[1] *= y;
+ }
+}
+
static void p_chart_uv_translate(PChart *chart, float trans[2])
{
PVert *v;
@@ -4220,6 +4230,18 @@ void param_average(ParamHandle *handle)
}
}
+void param_scale(ParamHandle *handle, float x, float y)
+{
+ PHandle *phandle = (PHandle*)handle;
+ PChart *chart;
+ int i;
+
+ for (i = 0; i < phandle->ncharts; i++) {
+ chart = phandle->charts[i];
+ p_chart_uv_scale_xy(chart, x, y);
+ }
+}
+
void param_flush(ParamHandle *handle)
{
PHandle *phandle = (PHandle*)handle;
diff --git a/source/blender/src/parametrizer.h b/source/blender/src/parametrizer.h
index a192be05b0e..766d461416d 100644
--- a/source/blender/src/parametrizer.h
+++ b/source/blender/src/parametrizer.h
@@ -75,6 +75,10 @@ void param_pack(ParamHandle *handle);
void param_average(ParamHandle *handle);
+/* Simple x,y scale */
+
+void param_scale(ParamHandle *handle, float x, float y);
+
/* Flushing */
void param_flush(ParamHandle *handle);
diff --git a/source/blender/src/playanim.c b/source/blender/src/playanim.c
index 1161dc8a616..7a61368b4cd 100644
--- a/source/blender/src/playanim.c
+++ b/source/blender/src/playanim.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <sys/types.h>
diff --git a/source/blender/src/poselib.c b/source/blender/src/poselib.c
index 14b3286c03b..769e83d7a2d 100644
--- a/source/blender/src/poselib.c
+++ b/source/blender/src/poselib.c
@@ -1144,7 +1144,6 @@ static void poselib_preview_init_data (tPoseLib_PreviewData *pld, Object *ob, sh
/* After previewing poses */
static void poselib_preview_cleanup (tPoseLib_PreviewData *pld)
{
- Base *base;
Object *ob= pld->ob;
bPose *pose= pld->pose;
bArmature *arm= pld->arm;
@@ -1161,17 +1160,8 @@ static void poselib_preview_cleanup (tPoseLib_PreviewData *pld)
/* old optimize trick... this enforces to bypass the depgraph
* - note: code copied from transform_generics.c -> recalcData()
*/
- if ((arm->flag & ARM_DELAYDEFORM)==0) {
+ if ((arm->flag & ARM_DELAYDEFORM)==0)
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); /* sets recalc flags */
-
- /* bah, softbody exception... recalcdata doesnt reset */
- for (base= FIRSTBASE; base; base= base->next) {
- if (base->object->recalc & OB_RECALC_DATA)
- if (modifiers_isSoftbodyEnabled(base->object)) {
- base->object->softflag |= OB_SB_REDO;
- }
- }
- }
else
where_is_pose(ob);
@@ -1222,7 +1212,6 @@ static void poselib_preview_cleanup (tPoseLib_PreviewData *pld)
void poselib_preview_poses (Object *ob, short apply_active)
{
tPoseLib_PreviewData pld;
- Base *base;
unsigned short event;
short val=0;
@@ -1252,17 +1241,8 @@ void poselib_preview_poses (Object *ob, short apply_active)
/* old optimize trick... this enforces to bypass the depgraph
* - note: code copied from transform_generics.c -> recalcData()
*/
- if ((pld.arm->flag & ARM_DELAYDEFORM)==0) {
+ if ((pld.arm->flag & ARM_DELAYDEFORM)==0)
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); /* sets recalc flags */
-
- /* bah, softbody exception... recalcdata doesnt reset */
- for (base= FIRSTBASE; base; base= base->next) {
- if (base->object->recalc & OB_RECALC_DATA)
- if (modifiers_isSoftbodyEnabled(base->object)) {
- base->object->softflag |= OB_SB_REDO;
- }
- }
- }
else
where_is_pose(ob);
}
diff --git a/source/blender/src/poseobject.c b/source/blender/src/poseobject.c
index 0eb4d0bb9a1..4c97a8fdbdf 100644
--- a/source/blender/src/poseobject.c
+++ b/source/blender/src/poseobject.c
@@ -121,7 +121,7 @@ void enter_posemode(void)
}
if (G.obedit) exit_editmode(EM_FREEDATA|EM_WAITCURSOR);
- G.f &= ~(G_VERTEXPAINT | G_TEXTUREPAINT | G_WEIGHTPAINT);
+ G.f &= ~(G_VERTEXPAINT | G_TEXTUREPAINT | G_WEIGHTPAINT | G_SCULPTMODE);
}
void set_pose_keys (Object *ob)
diff --git a/source/blender/src/previewrender.c b/source/blender/src/previewrender.c
index a8ecd0d770b..0be63197dd1 100644
--- a/source/blender/src/previewrender.c
+++ b/source/blender/src/previewrender.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* global includes */
diff --git a/source/blender/src/pub/license_key.c b/source/blender/src/pub/license_key.c
index 07e8296a185..3b825f35743 100644
--- a/source/blender/src/pub/license_key.c
+++ b/source/blender/src/pub/license_key.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "license_key.h"
diff --git a/source/blender/src/renderwin.c b/source/blender/src/renderwin.c
index 4510e72e659..7699de41381 100644
--- a/source/blender/src/renderwin.c
+++ b/source/blender/src/renderwin.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WIN32
@@ -1018,7 +1015,7 @@ static void end_test_break_callback()
}
#else
-/* all other OS's support signal(SIGVTALRM) */
+/* all other OS's support signal(SIGVTALRM/SIGALRM) */
/* XXX The ESC problem: some unix users reported that ESC doesn't cancel
* renders anymore. Most complaints came from linux, but it's not
@@ -1029,7 +1026,10 @@ static void end_test_break_callback()
* fixes the problem, at least while we investigate better.
*
* ITIMER_REAL (SIGALRM): timer that counts real system time
- * ITIMER_VIRTUAL (SIGVTALRM): only counts time spent in its owner process */
+ * ITIMER_VIRTUAL (SIGVTALRM): only counts time spent in its owner process
+ *
+ * Addendum: now SIGVTALRM is used on Solaris again, because SIGALRM can
+ * kill the process there! */
/* POSIX: this function goes in the signal() callback */
static void interruptESC(int sig)
@@ -1038,7 +1038,11 @@ static void interruptESC(int sig)
if(G.afbreek==0) G.afbreek= 2; /* code for read queue */
/* call again, timer was reset */
+#ifdef __sun
+ signal(SIGVTALRM, interruptESC);
+#else
signal(SIGALRM, interruptESC);
+#endif
}
/* POSIX: initialize timer and signal */
@@ -1053,8 +1057,13 @@ static void init_test_break_callback()
tmevalue.it_value.tv_sec = 0;
tmevalue.it_value.tv_usec = 10000;
+#ifdef __sun
+ signal(SIGVTALRM, interruptESC);
+ setitimer(ITIMER_VIRTUAL, &tmevalue, 0);
+#else
signal(SIGALRM, interruptESC);
setitimer(ITIMER_REAL, &tmevalue, 0);
+#endif
}
/* POSIX: stop timer and callback */
@@ -1064,9 +1073,13 @@ static void end_test_break_callback()
memset(&tmevalue, 0, sizeof(struct itimerval));
+#ifdef __sun
+ setitimer(ITIMER_VIRTUAL, &tmevalue, 0);
+ signal(SIGVTALRM, SIG_IGN);
+#else
setitimer(ITIMER_REAL, &tmevalue, 0);
signal(SIGALRM, SIG_IGN);
-
+#endif
}
@@ -1288,7 +1301,7 @@ void do_ogl_view3d_render(Render *re, View3D *v3d, int winx, int winy)
update_for_newframe_muted(); /* here, since camera can be animated */
- if(v3d->persp==2 && v3d->camera) {
+ if(v3d->persp==V3D_CAMOB && v3d->camera) {
/* in camera view, use actual render winmat */
RE_GetCameraWindow(re, v3d->camera, CFRA, winmat);
drawview3d_render(v3d, winx, winy, winmat);
diff --git a/source/blender/src/resources.c b/source/blender/src/resources.c
index 722675f0453..046d14c990d 100644
--- a/source/blender/src/resources.c
+++ b/source/blender/src/resources.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
@@ -457,7 +454,10 @@ void BIF_InitTheme(void)
SETCOL(btheme->tv3d.edge, 0x0, 0x0, 0x0, 255);
SETCOL(btheme->tv3d.edge_select, 0xb0, 0xb0, 0x30, 255);
SETCOL(btheme->tv3d.edge_seam, 230, 150, 50, 255);
+ SETCOL(btheme->tv3d.edge_sharp, 255, 32, 32, 255);
SETCOL(btheme->tv3d.edge_facesel, 75, 75, 75, 255);
+ SETCOL(btheme->tv3d.editmesh_active, 255, 255, 255, 128);
+
SETCOL(btheme->tv3d.face, 0, 50, 150, 30);
SETCOL(btheme->tv3d.face_select, 200, 100, 200, 60);
SETCOL(btheme->tv3d.normal, 0x22, 0xDD, 0xDD, 255);
@@ -720,6 +720,9 @@ char *BIF_ThemeColorsPup(int spacetype)
str += sprintf(str, "Vertex Size %%x%d|", TH_VERTEX_SIZE);
str += sprintf(str, "Face %%x%d|", TH_FACE);
str += sprintf(str, "Face Selected %%x%d", TH_FACE_SELECT);
+ str += sprintf(str, "Face Dot Selected %%x%d|", TH_FACE_DOT);
+ str += sprintf(str, "Face Dot Size %%x%d|", TH_FACEDOT_SIZE);
+ str += sprintf(str, "Active Vert/Edge/Face %%x%d|", TH_EDITMESH_ACTIVE);
break;
case SPACE_SEQ:
str += sprintf(str, "Grid %%x%d|", TH_GRID);
diff --git a/source/blender/src/scrarea.c b/source/blender/src/scrarea.c
index c9076a105a8..6f7da9a7dbf 100644
--- a/source/blender/src/scrarea.c
+++ b/source/blender/src/scrarea.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
diff --git a/source/blender/src/screendump.c b/source/blender/src/screendump.c
index 4c1cda52da3..b5240a94241 100644
--- a/source/blender/src/screendump.c
+++ b/source/blender/src/screendump.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Making screendumps.
*/
diff --git a/source/blender/src/sculptmode.c b/source/blender/src/sculptmode.c
index 217fd9f3705..9e358d5df0c 100644
--- a/source/blender/src/sculptmode.c
+++ b/source/blender/src/sculptmode.c
@@ -390,7 +390,7 @@ float brush_strength(BrushAction *a)
switch(G.scene->sculptdata.brush_type){
case DRAW_BRUSH:
case LAYER_BRUSH:
- return b->strength / 5000.0f * dir * pressure * flip * anchored;
+ return b->strength / 5000.0f * dir * pressure * flip * anchored * G.vd->grid;
case SMOOTH_BRUSH:
return b->strength / 50.0f * pressure * anchored;
case PINCH_BRUSH:
@@ -418,14 +418,37 @@ void sculpt_clip(const BrushAction *a, float *co, const float val[3])
}
}
-void add_norm_if(const BrushAction *a, float out[3], const short no[3])
+void sculpt_axislock(float *co)
+{
+ SculptData *sd = sculpt_data();
+ if (sd->axislock == AXISLOCK_X+AXISLOCK_Y+AXISLOCK_Z) return;
+ if (G.vd->twmode == V3D_MANIP_LOCAL) {
+ float mat[3][3], imat[3][3];
+ Mat3CpyMat4(mat, OBACT->obmat);
+ Mat3Inv(imat, mat);
+ Mat3MulVecfl(mat, co);
+ if (sd->axislock & AXISLOCK_X) co[0] = 0.0;
+ if (sd->axislock & AXISLOCK_Y) co[1] = 0.0;
+ if (sd->axislock & AXISLOCK_Z) co[2] = 0.0;
+ Mat3MulVecfl(imat, co);
+ } else {
+ if (sd->axislock & AXISLOCK_X) co[0] = 0.0;
+ if (sd->axislock & AXISLOCK_Y) co[1] = 0.0;
+ if (sd->axislock & AXISLOCK_Z) co[2] = 0.0;
+ }
+}
+
+static void add_norm_if(const BrushAction *a, float out[3], float out_flip[3], const short no[3])
{
float fno[3] = {no[0], no[1], no[2]};
Normalize(fno);
- if(acos(Inpf(((BrushAction*)a)->symm.out, fno)) < M_PI_2)
+ if((Inpf(((BrushAction*)a)->symm.out, fno)) < 0) {
VecAddf(out, out, fno);
+ } else if (out[0]==0.0 && out[1]==0.0 && out[2]==0.0) {
+ VecAddf(out_flip, out_flip, fno); /* out_flip is used when out is {0,0,0} */
+ }
}
/* Currently only for the draw brush; finds average normal for all active
@@ -434,19 +457,25 @@ void calc_area_normal(float out[3], const BrushAction *a, const float *outdir, c
{
Mesh *me = get_mesh(OBACT);
ActiveData *node = active_verts->first;
- const int view = sculpt_data()->brush_type==DRAW_BRUSH ? sculptmode_brush()->view : 0;
-
- out[0] = out[1] = out[2] = 0;
+ SculptData *sd = sculpt_data();
+ const int view = sd->brush_type==DRAW_BRUSH ? sculptmode_brush()->view : 0;
+ float out_flip[3];
+
+ out[0]=out[1]=out[2] = out_flip[0]=out_flip[1]=out_flip[2] = 0;
if(sculptmode_brush()->flag & SCULPT_BRUSH_ANCHORED) {
for(; node; node = node->next)
- add_norm_if(a, out, a->orig_norms[node->Index]);
+ add_norm_if(a, out, out_flip, a->orig_norms[node->Index]);
}
else {
for(; node; node = node->next)
- add_norm_if(a, out, me->mvert[node->Index].no);
+ add_norm_if(a, out, out_flip, me->mvert[node->Index].no);
}
+ if (out[0]==0.0 && out[1]==0.0 && out[2]==0.0) {
+ VECCOPY(out, out_flip);
+ }
+
Normalize(out);
if(outdir) {
@@ -454,7 +483,7 @@ void calc_area_normal(float out[3], const BrushAction *a, const float *outdir, c
out[1] = outdir[1] * view + out[1] * (10-view);
out[2] = outdir[2] * view + out[2] * (10-view);
}
-
+
Normalize(out);
}
@@ -465,7 +494,9 @@ void do_draw_brush(const BrushAction *a, const ListBase* active_verts)
ActiveData *node= active_verts->first;
calc_area_normal(area_normal, a, a->symm.out, active_verts);
-
+
+ sculpt_axislock(area_normal);
+
while(node){
float *co= me->mvert[node->Index].co;
@@ -565,17 +596,22 @@ void do_grab_brush(BrushAction *a)
Mesh *me= get_mesh(OBACT);
ActiveData *node= a->grab_active_verts[a->symm.index].first;
float add[3];
-
+ float grab_delta[3];
+
+ VecCopyf(grab_delta, a->symm.grab_delta);
+ sculpt_axislock(grab_delta);
+
while(node) {
float *co= me->mvert[node->Index].co;
- VecCopyf(add, a->symm.grab_delta);
+ VecCopyf(add, grab_delta);
VecMulf(add, node->Fade);
VecAddf(add, add, co);
sculpt_clip(a, co, add);
node= node->next;
}
+
}
void do_layer_brush(BrushAction *a, const ListBase *active_verts)
@@ -690,7 +726,7 @@ void do_flatten_brush(const BrushAction *a, const ListBase *active_verts)
VecSubf(val, intr, co);
VecMulf(val, node->Fade);
VecAddf(val, val, co);
-
+
sculpt_clip(a, co, val);
node= node->next;
diff --git a/source/blender/src/seqaudio.c b/source/blender/src/seqaudio.c
index f09da0d79fd..3e784019274 100644
--- a/source/blender/src/seqaudio.c
+++ b/source/blender/src/seqaudio.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): intrr, Peter Schlaile
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
diff --git a/source/blender/src/seqeffects.c b/source/blender/src/seqeffects.c
index 85693546789..c66a4557ca1 100644
--- a/source/blender/src/seqeffects.c
+++ b/source/blender/src/seqeffects.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Peter Schlaile <peter [at] schlaile [dot] de> 2005/2006
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -1501,12 +1498,38 @@ static void do_mul_effect(Sequence * seq,int cfra,
WIPE
********************************************************************** */
+typedef struct WipeZone {
+ float angle;
+ int flip;
+ int xo, yo;
+ int width;
+ float invwidth;
+ float pythangle;
+} WipeZone;
+
+static void precalc_wipe_zone(WipeZone *wipezone, WipeVars *wipe, int xo, int yo)
+{
+ wipezone->flip = (wipe->angle < 0);
+ wipezone->angle = pow(fabs(wipe->angle)/45.0f, log(xo)/log(2.0f));
+ wipezone->xo = xo;
+ wipezone->yo = yo;
+ wipezone->width = (int)(wipe->edgeWidth*((xo+yo)/2.0f));
+ wipezone->pythangle = 1.0f/sqrt(wipe->angle*wipe->angle + 1.0f);
+
+ if(wipe->wipetype == DO_SINGLE_WIPE)
+ wipezone->invwidth = 1.0f/wipezone->width;
+ else
+ wipezone->invwidth = 1.0f/(0.5f*wipezone->width);
+}
+
// This function calculates the blur band for the wipe effects
-static float in_band(float width,float dist, float perc,int side,int dir){
-
+static float in_band(WipeZone *wipezone,float width,float dist,float perc,int side,int dir)
+{
float t1,t2,alpha,percwidth;
+
if(width == 0)
return (float)side;
+
if(side == 1)
percwidth = width * perc;
else
@@ -1515,8 +1538,8 @@ static float in_band(float width,float dist, float perc,int side,int dir){
if(width < dist)
return side;
- t1 = dist / width; //percentange of width that is
- t2 = 1 / width; //amount of alpha per % point
+ t1 = dist * wipezone->invwidth; //percentange of width that is
+ t2 = wipezone->invwidth; //amount of alpha per % point
if(side == 1)
alpha = (t1*t2*100) + (1-perc); // add point's alpha contrib to current position in wipe
@@ -1525,31 +1548,31 @@ static float in_band(float width,float dist, float perc,int side,int dir){
if(dir == 0)
alpha = 1-alpha;
+
return alpha;
}
-static float check_zone(int x, int y, int xo, int yo,
- Sequence *seq, float facf0)
+static float check_zone(WipeZone *wipezone, int x, int y,
+ Sequence *seq, float facf0)
{
float posx, posy,hyp,hyp2,angle,hwidth,b1,b2,b3,pointdist;
/*some future stuff
float hyp3,hyp4,b4,b5
*/
float temp1,temp2,temp3,temp4; //some placeholder variables
- float halfx = xo/2;
- float halfy = yo/2;
+ int xo = wipezone->xo;
+ int yo = wipezone->yo;
+ float halfx = xo*0.5f;
+ float halfy = yo*0.5f;
float widthf,output=0;
WipeVars *wipe = (WipeVars *)seq->effectdata;
int width;
- angle = wipe->angle;
- if(angle < 0){
- x = xo-x;
- //y = yo-y
- }
- angle = pow(fabs(angle)/45,log(xo)/log(2));
+ if(wipezone->flip) x = xo - x;
+ angle = wipezone->angle;
posy = facf0 * yo;
+
if(wipe->forward){
posx = facf0 * xo;
posy = facf0 * yo;
@@ -1557,64 +1580,83 @@ float hyp3,hyp4,b4,b5
posx = xo - facf0 * xo;
posy = yo - facf0 * yo;
}
+
switch (wipe->wipetype) {
case DO_SINGLE_WIPE:
- width = (int)(wipe->edgeWidth*((xo+yo)/2.0));
- hwidth = (float)width/2.0;
+ width = wipezone->width;
+ hwidth = width*0.5f;
- if (angle == 0.0)angle = 0.000001;
- b1 = posy - (-angle)*posx;
- b2 = y - (-angle)*x;
- hyp = fabs(angle*x+y+(-posy-angle*posx))/sqrt(angle*angle+1);
- if(angle < 0){
+ if(angle == 0.0f) {
+ b1 = posy;
+ b2 = y;
+ hyp = fabs(y - posy);
+ }
+ else {
+ b1 = posy - (-angle)*posx;
+ b2 = y - (-angle)*x;
+ hyp = fabs(angle*x+y+(-posy-angle*posx))*wipezone->pythangle;
+ }
+
+ if(angle < 0) {
temp1 = b1;
b1 = b2;
b2 = temp1;
}
- if(wipe->forward){
+
+ if(wipe->forward) {
if(b1 < b2)
- output = in_band(width,hyp,facf0,1,1);
+ output = in_band(wipezone,width,hyp,facf0,1,1);
else
- output = in_band(width,hyp,facf0,0,1);
- } else{
+ output = in_band(wipezone,width,hyp,facf0,0,1);
+ }
+ else {
if(b1 < b2)
- output = in_band(width,hyp,facf0,0,1);
+ output = in_band(wipezone,width,hyp,facf0,0,1);
else
- output = in_band(width,hyp,facf0,1,1);
+ output = in_band(wipezone,width,hyp,facf0,1,1);
}
break;
-
case DO_DOUBLE_WIPE:
- if(!wipe->forward)facf0 = 1-facf0; // Go the other direction
-
- width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); // calculate the blur width
- hwidth = (float)width/2.0;
- if (angle == 0)angle = 0.000001;
- b1 = posy/2 - (-angle)*posx/2;
- b3 = (yo-posy/2) - (-angle)*(xo-posx/2);
- b2 = y - (-angle)*x;
+ if(!wipe->forward)
+ facf0 = 1.0f-facf0; // Go the other direction
+
+ width = wipezone->width; // calculate the blur width
+ hwidth = width*0.5f;
+ if (angle == 0) {
+ b1 = posy*0.5f;
+ b3 = yo-posy*0.5f;
+ b2 = y;
+
+ hyp = abs(y - posy*0.5f);
+ hyp2 = abs(y - (yo-posy*0.5f));
+ }
+ else {
+ b1 = posy*0.5f - (-angle)*posx*0.5f;
+ b3 = (yo-posy*0.5f) - (-angle)*(xo-posx*0.5f);
+ b2 = y - (-angle)*x;
- hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1);
- hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1);
+ hyp = abs(angle*x+y+(-posy*0.5f-angle*posx*0.5f))*wipezone->pythangle;
+ hyp2 = abs(angle*x+y+(-(yo-posy*0.5f)-angle*(xo-posx*0.5f)))*wipezone->pythangle;
+ }
- temp1 = xo*(1-facf0/2)-xo*facf0/2;
- temp2 = yo*(1-facf0/2)-yo*facf0/2;
+ temp1 = xo*(1-facf0*0.5f)-xo*facf0*0.5f;
+ temp2 = yo*(1-facf0*0.5f)-yo*facf0*0.5f;
pointdist = sqrt(temp1*temp1 + temp2*temp2);
if(b2 < b1 && b2 < b3 ){
if(hwidth < pointdist)
- output = in_band(hwidth,hyp,facf0,0,1);
+ output = in_band(wipezone,hwidth,hyp,facf0,0,1);
} else if(b2 > b1 && b2 > b3 ){
if(hwidth < pointdist)
- output = in_band(hwidth,hyp2,facf0,0,1);
+ output = in_band(wipezone,hwidth,hyp2,facf0,0,1);
} else {
if( hyp < hwidth && hyp2 > hwidth )
- output = in_band(hwidth,hyp,facf0,1,1);
+ output = in_band(wipezone,hwidth,hyp,facf0,1,1);
else if( hyp > hwidth && hyp2 < hwidth )
- output = in_band(hwidth,hyp2,facf0,1,1);
+ output = in_band(wipezone,hwidth,hyp2,facf0,1,1);
else
- output = in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1);
+ output = in_band(wipezone,hwidth,hyp2,facf0,1,1) * in_band(wipezone,hwidth,hyp,facf0,1,1);
}
if(!wipe->forward)output = 1-output;
break;
@@ -1625,31 +1667,31 @@ float hyp3,hyp4,b4,b5
temp3: angle of low side of blur
temp4: angle of high side of blur
*/
- output = 1-facf0;
- widthf = wipe->edgeWidth*2*3.14159;
- temp1 = 2 * 3.14159 * facf0;
+ output = 1.0f - facf0;
+ widthf = wipe->edgeWidth*2.0f*(float)M_PI;
+ temp1 = 2.0f * (float)M_PI * facf0;
if(wipe->forward){
- temp1 = 2*3.14159-temp1;
+ temp1 = 2.0f*(float)M_PI - temp1;
}
x = x - halfx;
y = y - halfy;
temp2 = asin(abs(y)/sqrt(x*x + y*y));
- if(x <= 0 && y >= 0) temp2 = 3.14159 - temp2;
- else if(x<=0 && y <= 0) temp2 += 3.14159;
- else if(x >= 0 && y <= 0) temp2 = 2*3.14159 - temp2;
+ if(x <= 0 && y >= 0) temp2 = (float)M_PI - temp2;
+ else if(x<=0 && y <= 0) temp2 += (float)M_PI;
+ else if(x >= 0 && y <= 0) temp2 = 2.0f*(float)M_PI - temp2;
if(wipe->forward){
- temp3 = temp1-(widthf/2)*facf0;
- temp4 = temp1+(widthf/2)*(1-facf0);
+ temp3 = temp1-(widthf*0.5f)*facf0;
+ temp4 = temp1+(widthf*0.5f)*(1-facf0);
} else{
- temp3 = temp1-(widthf/2)*(1-facf0);
- temp4 = temp1+(widthf/2)*facf0;
+ temp3 = temp1-(widthf*0.5f)*(1-facf0);
+ temp4 = temp1+(widthf*0.5f)*facf0;
}
if (temp3 < 0) temp3 = 0;
- if (temp4 > 2*3.14159) temp4 = 2*3.14159;
+ if (temp4 > 2.0f*(float)M_PI) temp4 = 2.0f*(float)M_PI;
if(temp2 < temp3) output = 0;
@@ -1673,8 +1715,8 @@ float hyp3,hyp4,b4,b5
b3 = (yo-posy/2) - (-angle)*(xo-posx/2);
b2 = y - (-angle)*x;
- hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1);
- hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1);
+ hyp = abs(angle*x+y+(-posy/2-angle*posx/2))*wipezone->pythangle;
+ hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))*wipezone->pythangle;
temp1 = xo*(1-facf0/2)-xo*facf0/2;
temp2 = yo*(1-facf0/2)-yo*facf0/2;
@@ -1682,17 +1724,17 @@ float hyp3,hyp4,b4,b5
if(b2 < b1 && b2 < b3 ){
if(hwidth < pointdist)
- output = in_band(hwidth,hyp,facf0,0,1);
+ output = in_band(wipezone,hwidth,hyp,facf0,0,1);
} else if(b2 > b1 && b2 > b3 ){
if(hwidth < pointdist)
- output = in_band(hwidth,hyp2,facf0,0,1);
+ output = in_band(wipezone,hwidth,hyp2,facf0,0,1);
} else {
if( hyp < hwidth && hyp2 > hwidth )
- output = in_band(hwidth,hyp,facf0,1,1);
+ output = in_band(wipezone,hwidth,hyp,facf0,1,1);
else if( hyp > hwidth && hyp2 < hwidth )
- output = in_band(hwidth,hyp2,facf0,1,1);
+ output = in_band(wipezone,hwidth,hyp2,facf0,1,1);
else
- output = in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1);
+ output = in_band(wipezone,hwidth,hyp2,facf0,1,1) * in_band(wipezone,hwidth,hyp,facf0,1,1);
}
if(invert)facf0 = 1-facf0;
@@ -1701,22 +1743,22 @@ float hyp3,hyp4,b4,b5
b3 = (yo-posy/2) - (-angle)*(xo-posx/2);
b2 = y - (-angle)*x;
- hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1);
- hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1);
+ hyp = abs(angle*x+y+(-posy/2-angle*posx/2))*wipezone->pythangle;
+ hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))*wipezone->pythangle;
if(b2 < b1 && b2 < b3 ){
if(hwidth < pointdist)
- output *= in_band(hwidth,hyp,facf0,0,1);
+ output *= in_band(wipezone,hwidth,hyp,facf0,0,1);
} else if(b2 > b1 && b2 > b3 ){
if(hwidth < pointdist)
- output *= in_band(hwidth,hyp2,facf0,0,1);
+ output *= in_band(wipezone,hwidth,hyp2,facf0,0,1);
} else {
if( hyp < hwidth && hyp2 > hwidth )
- output *= in_band(hwidth,hyp,facf0,1,1);
+ output *= in_band(wipezone,hwidth,hyp,facf0,1,1);
else if( hyp > hwidth && hyp2 < hwidth )
- output *= in_band(hwidth,hyp2,facf0,1,1);
+ output *= in_band(wipezone,hwidth,hyp2,facf0,1,1);
else
- output *= in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1);
+ output *= in_band(wipezone,hwidth,hyp2,facf0,1,1) * in_band(wipezone,hwidth,hyp,facf0,1,1);
}
break;
@@ -1727,15 +1769,15 @@ float hyp3,hyp4,b4,b5
if(!wipe->forward) facf0 = 1-facf0;
- width = (int)(wipe->edgeWidth*((xo+yo)/2.0));
- hwidth = (float)width/2.0;
+ width = wipezone->width;
+ hwidth = width*0.5f;
temp1 = (halfx-(halfx)*facf0);
pointdist = sqrt(temp1*temp1 + temp1*temp1);
temp2 = sqrt((halfx-x)*(halfx-x) + (halfy-y)*(halfy-y));
- if(temp2 > pointdist) output = in_band(hwidth,fabs(temp2-pointdist),facf0,0,1);
- else output = in_band(hwidth,fabs(temp2-pointdist),facf0,1,1);
+ if(temp2 > pointdist) output = in_band(wipezone,hwidth,fabs(temp2-pointdist),facf0,0,1);
+ else output = in_band(wipezone,hwidth,fabs(temp2-pointdist),facf0,1,1);
if(!wipe->forward) output = 1-output;
@@ -1773,8 +1815,13 @@ static void do_wipe_effect_byte(Sequence *seq, float facf0, float facf1,
unsigned char *rect1,
unsigned char *rect2, unsigned char *out)
{
+ WipeZone wipezone;
+ WipeVars *wipe = (WipeVars *)seq->effectdata;
int xo, yo;
char *rt1, *rt2, *rt;
+
+ precalc_wipe_zone(&wipezone, wipe, x, y);
+
rt1 = (char *)rect1;
rt2 = (char *)rect2;
rt = (char *)out;
@@ -1783,7 +1830,7 @@ static void do_wipe_effect_byte(Sequence *seq, float facf0, float facf1,
yo = y;
for(y=0;y<yo;y++) {
for(x=0;x<xo;x++) {
- float check = check_zone(x,y,xo,yo,seq,facf0);
+ float check = check_zone(&wipezone,x,y,seq,facf0);
if (check) {
if (rt1) {
rt[0] = (int)(rt1[0]*check)+ (int)(rt2[0]*(1-check));
@@ -1826,8 +1873,13 @@ static void do_wipe_effect_float(Sequence *seq, float facf0, float facf1,
float *rect1,
float *rect2, float *out)
{
+ WipeZone wipezone;
+ WipeVars *wipe = (WipeVars *)seq->effectdata;
int xo, yo;
float *rt1, *rt2, *rt;
+
+ precalc_wipe_zone(&wipezone, wipe, x, y);
+
rt1 = rect1;
rt2 = rect2;
rt = out;
@@ -1836,7 +1888,7 @@ static void do_wipe_effect_float(Sequence *seq, float facf0, float facf1,
yo = y;
for(y=0;y<yo;y++) {
for(x=0;x<xo;x++) {
- float check = check_zone(x,y,xo,yo,seq,facf0);
+ float check = check_zone(&wipezone,x,y,seq,facf0);
if (check) {
if (rt1) {
rt[0] = rt1[0]*check+ rt2[0]*(1-check);
@@ -2572,26 +2624,67 @@ static void do_solid_color(Sequence * seq,int cfra,
float *rect_float;
if (out->rect) {
+ unsigned char col0[3];
+ unsigned char col1[3];
+
+ col0[0] = facf0 * cv->col[0] * 255;
+ col0[1] = facf0 * cv->col[1] * 255;
+ col0[2] = facf0 * cv->col[2] * 255;
+
+ col1[0] = facf1 * cv->col[0] * 255;
+ col1[1] = facf1 * cv->col[1] * 255;
+ col1[2] = facf1 * cv->col[2] * 255;
+
rect = (unsigned char *)out->rect;
for(y=0; y<out->y; y++) {
for(x=0; x<out->x; x++, rect+=4) {
- rect[0]= (char)(cv->col[0]*255);
- rect[1]= (char)(cv->col[1]*255);
- rect[2]= (char)(cv->col[2]*255);
+ rect[0]= col0[0];
+ rect[1]= col0[1];
+ rect[2]= col0[2];
rect[3]= 255;
- }
+ }
+ y++;
+ if (y<out->y) {
+ for(x=0; x<out->x; x++, rect+=4) {
+ rect[0]= col1[0];
+ rect[1]= col1[1];
+ rect[2]= col1[2];
+ rect[3]= 255;
+ }
+ }
}
+
} else if (out->rect_float) {
+ float col0[3];
+ float col1[3];
+
+ col0[0] = facf0 * cv->col[0];
+ col0[1] = facf0 * cv->col[1];
+ col0[2] = facf0 * cv->col[2];
+
+ col1[0] = facf1 * cv->col[0];
+ col1[1] = facf1 * cv->col[1];
+ col1[2] = facf1 * cv->col[2];
+
rect_float = out->rect_float;
for(y=0; y<out->y; y++) {
for(x=0; x<out->x; x++, rect_float+=4) {
- rect_float[0]= cv->col[0];
- rect_float[1]= cv->col[1];
- rect_float[2]= cv->col[2];
+ rect_float[0]= col0[0];
+ rect_float[1]= col0[1];
+ rect_float[2]= col0[2];
rect_float[3]= 1.0;
}
+ y++;
+ if (y<out->y) {
+ for(x=0; x<out->x; x++, rect_float+=4) {
+ rect_float[0]= col1[0];
+ rect_float[1]= col1[1];
+ rect_float[2]= col1[2];
+ rect_float[3]= 1.0;
+ }
+ }
}
}
}
diff --git a/source/blender/src/seqscopes.c b/source/blender/src/seqscopes.c
index c9796c356bc..34cd27dfdd3 100644
--- a/source/blender/src/seqscopes.c
+++ b/source/blender/src/seqscopes.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Author: Peter Schlaile < peter [at] schlaile [dot] de >
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c
index c6843557f52..22bedab6bee 100644
--- a/source/blender/src/sequence.c
+++ b/source/blender/src/sequence.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): Peter Schlaile <peter [at] schlaile [dot] de> 2005/2006
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -670,12 +667,11 @@ static void multibuf(ImBuf *ibuf, float fmul)
int a, mul, icol;
mul= (int)(256.0*fmul);
-
- a= ibuf->x*ibuf->y;
rt= (char *)ibuf->rect;
rt_float = ibuf->rect_float;
if (rt) {
+ a= ibuf->x*ibuf->y;
while(a--) {
icol= (mul*rt[0])>>8;
@@ -691,6 +687,7 @@ static void multibuf(ImBuf *ibuf, float fmul)
}
}
if (rt_float) {
+ a= ibuf->x*ibuf->y;
while(a--) {
rt_float[0] *= fmul;
rt_float[1] *= fmul;
@@ -875,7 +872,8 @@ TStripElem *give_tstripelem(Sequence *seq, int cfra)
alpha over mode...
*/
if (seq->blend_mode != SEQ_BLEND_REPLACE ||
- (seq->ipo && seq->ipo->curve.first && !(seq->type & SEQ_EFFECT))) {
+ (seq->ipo && seq->ipo->curve.first && (
+ !(seq->type & SEQ_EFFECT) || !seq->seq1))) {
Strip * s = seq->strip;
if (cfra < seq->start) {
se = s->tstripdata_startstill;
@@ -1058,7 +1056,7 @@ static int seq_proxy_get_fname(Sequence * seq, int cfra, char * name)
frameno = tse->nr + seq->anim_startofs;
- snprintf(name, PROXY_MAXFILE, "%s/%s/%d/#", dir,
+ snprintf(name, PROXY_MAXFILE, "%s/%s/%d/####", dir,
seq->strip->stripdata->name,
G.scene->r.size);
} else {
@@ -1066,7 +1064,7 @@ static int seq_proxy_get_fname(Sequence * seq, int cfra, char * name)
frameno = tse->nr + seq->anim_startofs;
- snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/#", dir,
+ snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir,
G.scene->r.size);
}
diff --git a/source/blender/src/space.c b/source/blender/src/space.c
index 2f8e540f1c0..72fb442fda0 100644
--- a/source/blender/src/space.c
+++ b/source/blender/src/space.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*
* - here initialize and free and handling SPACE data
@@ -88,6 +85,7 @@
#include "BKE_mesh.h"
#include "BKE_multires.h"
#include "BKE_node.h"
+#include "BKE_pointcache.h"
#include "BKE_scene.h"
#include "BKE_sculpt.h"
#include "BKE_texture.h"
@@ -294,7 +292,7 @@ void copy_view3d_lock(short val)
vd->lay= G.scene->lay;
vd->camera= G.scene->camera;
- if(vd->camera==0 && vd->persp>1) vd->persp= 1;
+ if(vd->camera==0 && vd->persp==V3D_CAMOB) vd->persp= V3D_PERSP;
if( (vd->lay & vd->layact) == 0) {
bit= 0;
@@ -1410,7 +1408,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
allqueue(REDRAWVIEW3D, 0);
}
else if(G.qual==0) {
- if (G.vd->persp==2)
+ if (G.vd->persp==V3D_CAMOB)
/* center the camera offset */
G.vd->camdx= G.vd->camdy= 0.0;
else {
@@ -1437,7 +1435,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
if(G.qual==LR_ALTKEY)
view3d_edit_clipping(v3d);
else if(G.qual==LR_SHIFTKEY) {
- if(G.vd->persp==2)
+ if(G.vd->persp==V3D_CAMOB)
set_render_border();
else
view3d_border_zoom();
@@ -1567,9 +1565,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
} else if (G.vd->ndofmode == 1) {
viewmoveNDOFfly(1);
} else {
- if (OBACT) {
- NDofTransform();
- }
+ NDofTransform();
}
break;
@@ -1690,9 +1686,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
} else if (G.vd->ndofmode == 1) {
viewmoveNDOFfly(1);
} else {
- if (OBACT) {
- NDofTransform();
- }
+ NDofTransform();
}
break;
@@ -1835,18 +1829,32 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
view3d_edit_clipping(v3d);
else if(G.qual==LR_SHIFTKEY)
{
- if(G.vd->persp==2)
+ if(G.vd->persp==V3D_CAMOB)
set_render_border();
else
view3d_border_zoom();
}
else if(G.qual==LR_CTRLKEY) {
- if(okee("Bake all selected")) {
- extern void softbody_bake(Object *ob);
- extern void fluidsimBake(Object *ob);
- softbody_bake(NULL);
- /* also bake first domain of selected objects... */
- fluidsimBake(NULL);
+ extern void pointcache_bake(PTCacheID *pid, int startframe);
+ extern void pointcache_free(PTCacheID *pid, int cacheonly);
+ extern void fluidsimBake(Object *ob);
+ extern void fluidsimFreeBake(Object *ob);
+ int pupval;
+
+ pupval= pupmenu("Physics Baking%t|Bake selected %x1|Free bake selected %x2|Free cache selected %x3");
+
+ if(pupval > 0) {
+ if(pupval == 1) {
+ pointcache_bake(NULL, 0);
+ /* also bake first domain of selected objects... */
+ fluidsimBake(NULL);
+ }
+ else if(pupval == 2) {
+ pointcache_free(NULL, 0);
+ fluidsimFreeBake(NULL);
+ }
+ else if(pupval == 3)
+ pointcache_free(NULL, 1);
}
}
else if(G.qual== (LR_ALTKEY|LR_CTRLKEY))
@@ -1885,7 +1893,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
allqueue(REDRAWVIEW3D, 0);
}
else if((G.qual==0)){
- if (G.vd->persp==2)
+ if (G.vd->persp==V3D_CAMOB)
/* center the camera offset */
G.vd->camdx= G.vd->camdy= 0.0;
else {
@@ -2377,6 +2385,8 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
clear_bone_parent();
else if((G.qual==0) && (G.obedit->type==OB_ARMATURE))
select_bone_parent();
+ else if((G.qual==(LR_CTRLKEY|LR_SHIFTKEY)) && (G.obedit->type==OB_ARMATURE))
+ separate_armature();
else if((G.qual==0) && G.obedit->type==OB_MESH)
separatemenu();
else if ((G.qual==0) && ELEM(G.obedit->type, OB_CURVE, OB_SURF))
@@ -2733,7 +2743,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
else
obmat_to_viewmat(ob, 1);
- if(G.vd->persp==2) G.vd->persp= 1;
+ if(G.vd->persp==V3D_CAMOB) G.vd->persp= V3D_PERSP;
scrarea_queue_winredraw(curarea);
}
}
@@ -2835,7 +2845,7 @@ static void initview3d(ScrArea *sa)
vd->blockscale= 0.7f;
vd->viewquat[0]= 1.0f;
vd->viewquat[1]= vd->viewquat[2]= vd->viewquat[3]= 0.0f;
- vd->persp= 1;
+ vd->persp= V3D_PERSP;
vd->drawtype= OB_WIRE;
vd->view= 7;
vd->dist= 10.0;
@@ -3116,6 +3126,10 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
if (G.qual==0)
set_ipotype();
break;
+ case EKEY:
+ if (G.qual==0)
+ set_ipoextend();
+ break;
case VKEY:
if (G.qual==0)
sethandles_ipo(HD_VECT);
@@ -5280,18 +5294,7 @@ static void winqreadimagespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
borderselect_sima(UV_SELECT_ALL);
break;
case CKEY:
- if (G.sima->flag & SI_SYNC_UVSEL) {
- /* operate on the editmesh */
- if (G.qual==0) {
- if (G.scene->selectmode != SCE_SELECT_FACE) {
- G.sima->flag ^= SI_SELACTFACE;
- scrarea_queue_winredraw(curarea);
- }
- } else {
- error("Sync selection to Edit Mesh disables UV select options");
- }
- } else {
- /* normal operaton */
+ if ((G.sima->flag & SI_SYNC_UVSEL)==0) {
if(G.qual==LR_CTRLKEY) {
G.sima->sticky = SI_STICKY_VERTEX;
scrarea_do_headdraw(curarea);
@@ -5304,6 +5307,7 @@ static void winqreadimagespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
} else {
G.sima->flag ^= SI_SELACTFACE;
scrarea_queue_winredraw(curarea);
+ scrarea_queue_headredraw(curarea); /* for the header face buttons */
}
}
break;
@@ -6422,7 +6426,7 @@ void allqueue(unsigned short event, short val)
case REDRAWVIEWCAM:
if(sa->spacetype==SPACE_VIEW3D) {
v3d= sa->spacedata.first;
- if(v3d->persp>1) scrarea_queue_winredraw(sa);
+ if(v3d->persp==V3D_CAMOB) scrarea_queue_winredraw(sa);
}
break;
case REDRAWINFO:
diff --git a/source/blender/src/spacetypes.c b/source/blender/src/spacetypes.c
index 4a0375f2366..f15630e37d5 100644
--- a/source/blender/src/spacetypes.c
+++ b/source/blender/src/spacetypes.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/splash.jpg.c b/source/blender/src/splash.jpg.c
index 8f930c1c769..440f4f763e6 100644
--- a/source/blender/src/splash.jpg.c
+++ b/source/blender/src/splash.jpg.c
@@ -1,2649 +1,2281 @@
/* DataToC output of file <splash_jpg> */
-int datatoc_splash_jpg_size= 84581;
+int datatoc_splash_jpg_size= 72804;
char datatoc_splash_jpg[]= {
-255,216,255,224, 0,
- 16, 74, 70, 73, 70, 0, 1, 2, 0, 0,100, 0,100, 0, 0,255,236, 0, 17, 68,117, 99,107,121, 0, 1, 0, 4, 0, 0, 0, 95,
- 0, 0,255,238, 0, 14, 65,100,111, 98,101, 0,100,192, 0, 0, 0, 1,255,219, 0,132, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
- 2, 2, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 2, 1, 2, 3, 2,
- 2, 3, 4, 4, 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,255,192, 0, 17, 8, 1, 26, 1,
-245, 3, 1, 17, 0, 2, 17, 1, 3, 17, 1,255,196, 0,225, 0, 0, 1, 4, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 4, 5, 6, 8, 0, 3, 9, 2, 10, 1, 11, 1, 0, 0, 7, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3,
- 4, 5, 6, 7, 1, 8, 9, 10, 16, 0, 1, 3, 3, 3, 2, 3, 4, 6, 6, 5, 7, 6, 12, 2, 11, 1, 2, 3, 4, 17, 5, 6,
- 0, 18, 7, 33, 49, 65, 19, 8, 81, 97, 34, 20,113,129,145,161, 50, 9,177, 66, 35, 51, 21, 10,193, 82, 52, 22, 23,209,225, 98,
-114,130, 36, 53,240,241,146, 67, 83, 54,162,115,131, 68, 37, 38,150,182,214, 55,151, 26,178, 99, 24,194,179,100, 69,118,166,198,
- 39, 56, 25, 17, 0, 1, 3, 2, 4, 2, 6, 7, 5, 4, 9, 3, 2, 5, 5, 0, 1, 0, 2, 3, 17, 4, 33, 49, 18, 5, 65, 6,
- 81, 97,113, 34, 19, 7,240,129,145,161,209, 50, 20,177,193, 66, 35, 8,225, 82,210, 21,241, 98,114,130,146, 51,211, 36, 22, 67,
- 52, 23,162, 83,178,194, 85, 24, 9,226,242,115, 37, 53,255,218, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0,251,244,208, 65,
-102,130, 9, 5,217, 87, 36,218,238, 74,179, 34, 43,151,116,192,150,171, 83,115,148,164,194, 93,196, 54,175, 32, 60, 81, 85,132,
- 23, 41,184,167,173, 59,105,181,233,152, 67, 39,211,233,241,116,157, 26,171,167, 85, 59,181,166, 52,173, 43, 78, 9,213,136,132,
-205, 31,212, 23, 8,181, 13,122,105,171, 77,123,218,107,133,105, 90, 87,138,228,238, 3,235,143,148,184,187,145,110,248, 15,170,
-123, 51,141, 48,110, 14,165, 55,139,117,149,168, 50,241,244, 56,175,217,148, 53, 25, 8,110,124, 50,159,194,234, 55, 46,157,106,
-179,208,120,171,150,191, 81, 59,207, 36,238,210,237, 92,239, 9,104,212,105, 35, 88, 1, 96, 57, 80, 52, 1, 36, 71,131,155, 87,
-127,107,135,183, 57,155,244,227,178,243,198,209, 22,237,200,211, 7, 29, 34,177,185,228,137, 8,206,165,196,152,229, 28, 90,234,
- 55,169,185,158,172, 99,217, 21,139, 44,179,192,200, 49,171,180, 27,221,150,230,194, 36,193,185, 91,100,166, 84, 73, 44,172, 84,
- 20,173, 4,142,157,136,238, 15, 67,215, 94,208,219,119, 43,125,226, 6, 92,218,200,217, 34,120,171, 92,210, 11, 72, 60, 65, 11,
-196,251,150,217,113,179, 78,251, 91,184,221, 28,172, 52,115, 92, 8,112, 35,129, 5, 60,233,242, 98,179, 65, 5,154, 8, 44,208,
- 65,102,130, 11, 52, 16, 89,160,130,205, 4, 22,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 89,160,130,205, 4,
- 22,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 89,160,130,205, 4, 22,104, 32,179, 65, 5,154, 8, 44,208, 65,
-102,130, 11, 52, 16, 89,160,130,205, 4, 22,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 89,160,130,205, 4, 22,
-104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 89,160,130,205, 4, 22,104, 32,179, 65, 5,154, 8, 44,208, 65,102,
-130, 11, 52, 16, 89,160,130,205, 4, 22,104, 32,179, 65, 5,154, 8, 46,110,250,156,129,235,110, 79, 36, 72, 95, 16,221,151, 15,
-143,126, 70, 10,108,173, 88, 38, 67,132,250, 94,242,211,243, 31, 59,243, 32, 58,183, 11,251,138, 72, 37, 59,118,210,134,186,242,
-199,155, 27, 63,152,251,134,236,231,114,252,205,109,142,150,232, 12,124,108, 53,167,123, 94,188, 75,181, 86,148,168,165, 41,141,
- 87,171, 60,165,222,124,182,219,182,150,183,152, 97,115,175,181, 59, 89,123, 36,120,165,123,186, 52, 96, 27,166,149,173, 13,107,
-194,138,129,103,252,247,234,239,140,239, 7, 30,203,185,102,239, 14,248,218, 66,228,218,226, 94, 32,220,165,193, 10, 0,164, 72,
- 75, 8,112, 50,165, 3, 80,149,144,105,214,148,166,188,187,206, 62, 97,243,231, 34, 92,253, 38,225,186, 17, 53, 49, 99, 36,142,
- 66,222,141, 90, 65,210, 79, 0,113,166, 52, 94,167,228,207, 46,121, 7,159,109,190,179,110,218,129,130,184, 61,241,203, 24,119,
- 78,141,100, 23, 1,196,129, 74,225, 84,206,246, 41,234,175,212,188, 11,109,202,237, 6,251,153,192,137,230, 61,105,186,222,154,
-137,111, 86,199,133, 21,228,188,226, 89,117,104, 93, 7, 64, 74, 73,235,223, 64,114,119,152, 30,115, 91, 69, 61,196,114, 77, 8,
-239, 70,249, 76,113,212, 30, 44, 46,210,226,211,213,221, 43,167,156,252,189,242, 90,234, 91,123,121, 35,130,115, 70,200,200, 68,
-146, 80,142, 15, 13,212,208,225,215,222, 25, 41, 15, 29,114, 39,168, 79, 69,153, 20,102,114, 44,114,237, 31, 17,187,203, 42,184,
-226,247,133,111,177, 93,202, 0, 14, 46, 28,148, 23, 27, 98, 66, 81,215,114, 15, 94,155,146, 69, 52,235,150,121,143,155,127, 78,
- 23, 77,101,253,179,197,156,142,239, 70,226, 12,111, 60, 76,111,110,166,181,244,232,207,241, 2, 50,105,204,252,183,202, 31,169,
- 75, 87,191,111,185, 97,188,141,189,217, 90, 8,145,131,128,145,142, 13,115,153, 94,145,135,225,112, 57,246,143, 15,245, 5,129,
-230,252, 59,120,230,123, 11,147, 38, 88,113,220,118,249,126,191, 90, 89,109, 6,249,110,123, 28,136,185,114,225, 41,181,173, 13,
-249,201, 66, 40,138,172, 37, 85, 4, 43,105,174,190,140,249,123,205,182, 94,101,217,193,123,182,190,172,149,193,148, 56, 22, 63,
- 0, 88,241,141, 11, 73, 21,165,106, 40, 69, 65, 11,230,231,152,188,165,123,229,133,229,197,150,230,202, 62, 38,151,213,184,135,
-176, 2, 67,216, 77, 42, 28, 1,165,105, 67, 80,104, 65, 67,143, 70,222,182,248, 47,215, 87, 26, 75,229, 46, 10,184,228, 18, 44,
-182,187,203,152,237,246,217,148,216, 92,199,239,150, 75,235, 44, 49, 33,113,221,108,169,214, 93,218,212,132, 31, 49,135, 86,131,
- 90, 5, 84, 29,105,220,219,202, 23,156,151,114, 45,111, 67, 67,203,117, 2,211, 80, 91, 82, 43,211,192,224, 64, 43, 43,228,206,
-118,177,231,187, 67,121, 96, 92, 88, 29,164,135, 55, 73, 14,160, 52, 60, 14, 4, 98, 9, 29,104,205,205,156,211,199, 62,158, 56,
-195, 43,230, 62, 90,190,171, 25,227,220, 38, 28,121,249, 37,241, 54,233, 55,101, 64,139, 41,246,163, 33, 95, 47, 17,167,228, 57,
-185,231,144,154, 33, 7,189, 79, 74,234, 43,103,218, 46, 55,235,150, 90, 90,183, 84,175, 52,104,168, 21,194,185,154, 12,130,153,
-222,247,187,110, 93,181,146,246,237,218, 97, 96,171,141, 9,160,173, 50, 0,156,202, 77,193, 92,235,198, 30,164,248,191, 25,230,
- 78, 28,200,255, 0,189,124,123,151,183,112,118,193,123, 54,233, 54,133,204, 69,178, 91,240,158, 38, 52,198, 88,146,214,217, 17,
-156, 72,222,129, 90, 84, 84, 16, 79,119,157,154,227,151,238, 95,103,118,221, 50,178,154,133, 65,165, 64, 35, 16, 72,200,133,205,
-139,124,182,230, 75, 72,239,108,223,174, 23,215, 75,168, 69,104, 75, 78, 4, 3,152, 60, 17,119, 81,106, 89,102,130, 11, 52, 16,
- 89,160,130,165, 28, 23,235,243,211,247,168,206,127,230,191, 78, 92, 93, 55, 41,186,102,220, 5, 38, 77,183,144, 46, 87, 28,121,
- 86,124,109,171,228, 11,140,139,100,152, 80,222,125,196,200,148,184,242,162,172, 41,192,192,108,138, 20, 45, 85,213,187,123,228,
-155,238, 94,177,182,191,186, 13, 17,220, 98,192, 13, 93, 77, 33,192,154, 96, 42, 8,194,181,233, 10,149,176,115,238,223,204,183,
-247, 91,117,161,121,146,216,210, 66, 91, 70,212, 56,180,128, 78, 38,132, 28,105, 78,130,174,190,170, 42,234,179, 65, 5, 18,207,
-179,172, 87,140, 48,124,195,146, 51,171,187, 24,254, 23,128,227, 23,204,199, 44,190, 73, 66,221, 98,211,142,227,113,157,153, 50,
- 66,144,210, 86,235,158, 84,118, 84,173,136, 73, 81,165, 18, 9, 32,105,213,141,148,187,148,209,219,194,221, 82, 61,193,173, 29,
- 46,113,160, 30,178, 83, 77,194,254, 45,174, 9, 46,103,118,152,227,105,123,143, 67, 90, 42, 79, 78, 0,112,197,124,234,175,243,
-234,230,254, 83,184,223, 47,222,147,191, 45,222,101,230,158, 32,199,174, 50, 33,185,157, 72,185, 92, 89,184,222, 4, 93,170, 90,
- 4, 91, 54, 61,122,137, 9,224,223, 82,202,101,200, 88, 10, 73, 82, 71, 99,188, 59,201,107, 13,164, 54, 61,215,119,130, 11,135,
- 10,232,238,208, 87,173,207, 97, 35,175, 75, 71, 90,243,179,124,247,220, 55,146,249,118,125,146,226,226,217,166,154,234,234,154,
-112,163, 35,120, 6,156, 53, 56,226, 48, 93, 31,252,188,255, 0, 52,110, 28,252,192, 96,101, 22, 91, 30, 57,127,226,190, 97,192,
- 67,107,206,120,151, 45,125, 19, 46, 22,248,142, 57,228,252,228, 9,136,109,129, 62, 50, 36,254,193,210,182, 90,117,183, 5, 28,
-101, 1, 77,169,116, 14,124,242,226,239,145, 29, 27,164,123,101,130, 79,146, 70,228,120,208,140,104,105,136,196,130, 50, 38,134,
-154, 71,151,126,104, 89,121,134,201, 25, 27, 29, 21,196, 95, 60, 79,196,129,149, 65,195, 80,174, 7, 0, 65,205,162,160,158,156,
-107, 60, 90, 98,205, 4, 21, 7,245,151,249,132,240,255, 0,163, 92,155,131,248,239, 38, 98, 70, 97,202, 92,245,200,152,142, 25,
-138, 96,118,107,139, 80,174, 22,204,127, 33,185,177,110,149,144,220, 92, 90, 29,249,104,112,214,246,214,134,194,167,221, 30, 91,
- 96, 37, 46,184,213,219,148,249, 22,239,155, 34,185,184,140,232,134, 8,220,247, 60,138,130, 90,210,224,198,244,184,211, 31,221,
- 24,156,192, 52, 30,114,243, 10,207,147,166,181,181,148, 23,207,113, 43, 24,214, 2, 1, 1,206, 13, 47,119, 67, 69,112,194,174,
- 56, 12,137, 2, 15,204,131,243, 64,183,126, 94,239,240, 12, 37,112,134, 65,205, 87, 30,125,127, 62,139,100,183,227,217, 82, 49,
-217,182,233,152, 66,241,246,208,202, 25, 54,219,139,147, 92,158,229,253, 9,109, 8, 9, 32,162,148, 81, 80,164,175,151,190, 93,
- 59,159, 91,114,255, 0,169,108, 45,128, 48,146,230,212, 16,237,120,215, 83,104, 6,140,107,211,212,162, 60,203,243, 61,190, 93,
- 58,209,159, 74,233,221,112, 94, 26, 26,237, 36, 22,104,194,154, 93, 82,237, 98,128,116,117,170, 48, 63, 62,142,100, 34,163,242,
-177,245, 58, 65,236, 68,155,169, 31,251,155,171,143,254, 23,178,255, 0,235,118,191,250,127,213, 84,127,252,237,127,255, 0,208,
- 47, 63,245,255, 0,164,187,249,196,249,211,252,153,198,184, 38,127, 47, 29,184,226, 51, 51, 28, 67, 26,201,230, 98,183,125,223,
-197, 49,185,119,232, 76,202,114, 4,157,237, 48,191, 54, 26,221, 45, 57,185,180,157,201, 53, 74,123, 12, 63,112,181, 22, 55, 18,
-194,215,135,134, 61,205, 14, 25, 59, 73, 35, 80,207, 3, 74,140, 74,244, 6,219,118,111,237,162,157,204, 44, 47, 99, 92, 90,115,
-105,112, 7, 73,192, 98, 43, 67,128,236, 68, 45, 51, 79, 86,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 89,160,
-130,205, 4, 22,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 89,160,130,205, 4, 22,104, 32,179, 65, 5,154, 8,
- 38,155,158, 65, 97,178, 41,148,222,111,118,139, 74,164, 5,170, 58,110,119, 38, 96, 41,244,183, 64,162,128,234,209,187,109, 69,
-105,165, 99,133,242,252,173, 39,176, 85, 20,184, 55, 50,146,197,203,113, 89,217, 4,252, 74, 22, 77,143,204,202,173,118,248,151,
-107,158, 51, 22,243, 26, 70, 65,110,181, 79, 52, 98, 75,240,144,225,146,203, 79,159,221,184,180, 4,171,192,157,117,214,210, 49,
-130, 66,215, 6, 19, 64,104,104, 72,204, 3,149, 66, 1,224,154, 84, 85, 72, 52,138, 50, 97,200,242,188, 95, 15,130,205,211, 45,
-201, 44, 24,181,182, 68,248,118,184,247, 28,142,241, 30,201, 5,251,157,193, 91, 35,198, 67,210, 92,105,181, 58,250,254, 22,219,
- 7,114,143, 64, 14,150,130,222, 75,147,166, 54,185,198,149,160, 4,154, 12,206, 28, 2, 43,158, 25,137, 52, 79,218, 69, 25, 51,
- 77,200,241,235,108,182,237,247, 27,245,150,223, 61,208,218,154,133, 54,232,196, 89,110,165,226, 82,130,150,220,113, 43, 86,229,
- 2, 5, 7, 83,165, 89, 3,228, 26,154,210, 71, 72, 5, 20,184, 12, 9, 79, 58, 73, 25,102,130, 9,181,119,171, 59,119,136,248,
-235,151,107, 98, 50, 9,150,201,183,168,150, 37,207,105, 55,137, 86,123,115,172, 49, 34, 91,113, 74,252,245,178,195,242,153,109,
-199, 82,157,169, 82,208,146, 65, 82, 65, 80, 68,226,210,250, 29, 32,210,180,194,166,164, 10,229, 82, 1,195,168,174,106, 21,167,
- 20,178, 76,152,208,163,189, 46,100,134, 34, 69,142,218,158,145, 38, 75,169, 98, 59, 13, 32, 85, 74, 90,212, 66, 82, 0,238, 73,
-209, 26,210,227, 64, 42, 87, 73,162,221,174, 32,179, 65, 5,154, 8, 33, 71, 32,242,246, 43,128,218, 46, 87, 91,141,194, 44,120,
- 54,135,151, 30,247,144, 92, 75,145,113, 44, 95,201, 65,113,215,110,119, 0,133, 50,194, 88,105, 37, 75, 64, 37, 67,160, 33, 59,
-129,215, 90,210,227, 65,154, 4,209,113,219,153,191, 53, 59, 98,175, 87, 12, 35,128,176, 46, 68,230,156,165, 46,155,108, 44,234,
-229,123,184,113,166, 1,243,238, 44, 52,236,168,118,219,114,162, 92,166,196,142,162,165,163,205, 80, 42, 66,127,122,106, 22,171,
-189,159, 38, 56,198, 37,185,126,129,208, 26, 77, 59, 78, 94,202,244,102,161,101,222, 6,173, 49,182,167,183,238,248,209, 59,187,
-249,144, 51,109,178, 90, 45, 95,220,251,230,119,121,131,104,182,162,239,150,195,230,123,149,182,197,117,186,165,132, 9, 15, 67,
- 54,216,177,131,241,203,149,242,220,232, 20, 62, 33,184, 29,197,252, 28,130, 37, 26,140,196, 52,229,221,198,156, 43,222,193, 55,
-126,251,167, 0,204,123,127, 98,191, 62,141, 61, 83, 91,125, 77, 88, 51, 89, 17, 45,247,123,124,188, 46,241,108,129, 41,171,131,
-205,221,162,165, 23, 72,254, 96, 67, 23, 54, 91,101, 19, 3, 79,180,243,100, 56,216,113, 59,104,178,162,119, 26,182,253,177, 59,
-100,120, 26,195,154,234,208,241,194,149,168,245,244,169, 75, 27,209,122, 9,161, 4,102,174,134,160, 83,229,169,247,216,138,195,
-210,100,188,212,104,209,218, 91,207,200,125,192,203, 12, 50,208, 42, 82,214,181, 16,148,165, 32, 84,146,122,104,146,202,216, 90,
- 94,242, 3, 64,169, 39, 0, 0,204,147,192, 35,197, 19,167,112, 99, 1, 46, 38,128, 1, 82, 73,200, 0, 51, 43,147,254,168,125,
-125,121, 78,207,227,158, 2,147,243,151, 7, 22,253,178,235,200, 17,219, 18, 27, 67,171,253,153,106,204,154, 40, 60,162, 73, 2,
- 77, 41,255, 0,102, 15, 69,143, 18,121,199,250,155, 33,206,218, 57, 92,235,144,146,199, 78, 5,113, 56,105,132, 99,168,159,223,
-255, 0, 0, 56, 57,123,139,201,159,210,248, 44,102,241,205, 35, 68, 96, 7,182,220,154, 96, 49,213, 57,195, 72, 25,232,207,247,
-200,197,171,154,156, 81,143,140,227,153,241, 27, 6, 90,185, 50, 85,123,203, 27,106,252,110, 78, 45,114,229, 72, 11, 91,143, 33,
-245, 44,239, 42,117,196, 20,174,166,181, 58,242,183,150, 91, 35,121,159,154,236,172,183, 74,184, 62,227,243, 67,235, 87, 22,213,
-206,107,171,141, 92, 70,147, 92,113, 94,174,243, 63,124,119, 43,242,157,237,238,214, 90,211, 29,183,229, 22, 82,141, 14,163, 90,
-230,211, 10, 52, 59, 80,166, 24, 46, 63,126,115,190,174,253, 69,187,235, 47,147,120, 22,221,152,102,124, 97,197, 28, 37, 50,211,
-137,225, 56, 38, 45,120,151,139, 91, 46, 49, 4, 24,146, 77,230, 82, 34,173,143,157,114,226,183,188,214,156, 93, 66, 91,216,148,
- 80, 2, 79,233,159,201, 94, 73,218,236, 54, 59,123,134, 67, 27,228,145,181, 46, 45, 7, 77, 9, 1,141,253,208,208, 41, 65, 76,
- 87,229,183,207,142,124,221,247, 13,254,230,214, 73,165,100, 81, 58,141,104,115,134,170,128,226,247, 99,222, 46, 38,181, 53,194,
-148, 87,163,242, 76,245, 15,204, 62,167,120,195,212,247,166,158,119,200,242, 46, 74,227,204, 19,143, 25,228, 14, 63,204,114,249,
-174, 94,238,220,121,145,177,243, 9, 68, 54,174, 50, 60,199,203, 79,134,188,246,218, 91,132, 32, 33,208,145,181,106, 26,243,199,
-235, 83,203, 45,151,115,216, 36,115,163,100,110,146, 57, 73, 0, 1, 71, 70,194,246,202, 6, 64,180,224, 72,204, 26, 21,233, 79,
-208,191,154,155,230,221,191,199, 24,150, 73, 27, 28,145, 0, 92, 73,238,200,253, 15,136,156,200,120,196, 2,112, 34,161,116, 11,
-210,174,117,114,179, 88, 61, 67,225, 94,123,202,179,100,220, 19,201, 19,215, 23,121, 44, 55,114,181, 90,228,165, 14, 4,246, 73,
- 83, 79, 40, 19,227, 64, 60, 6,190, 85,126,135,249,138, 91,110, 99,147,107, 36,152,165, 12,144, 14, 1,236,145,162,180,225, 86,
-184,130,120,208,117, 47,173,191,174,174, 93,134,231,150,153,186, 0, 4,177, 23,199, 94, 37,146, 70,243, 74,241,163,154, 8, 28,
- 42,122, 87, 26,255, 0, 39,175, 68,254,164, 61, 95,240,231, 34, 51,131,250,189,228,127, 78, 92, 87,139,103, 82, 91,143, 96,227,
- 25, 14,195,184, 95,179,153,144, 97,173,249,183, 7, 35, 77,183,184,182,152,140,152,232,105,181,173, 85, 59,246,249,125, 74,254,
-228,121,183,206,150, 28,167,127, 16,147,111,138,226,119,198, 9,116,153, 53,129,198,141,109, 67,177, 38,164,156, 56, 86,188, 62,
- 10,249, 47,200,155,143, 57,109,211, 24,247, 41,109,109,217, 41, 1,177,102,233, 11, 91, 87, 58,133,184, 1,164, 1,143, 26, 83,
-139,110,125,234,203,213, 95, 30,113,215,230, 45,249,105,122,151,229, 41,252,233, 19,143,240,155,171,152,134,127,121,146,229,210,
-247,109,185, 96,247,235, 26,212,129, 53,242,185,142, 69,184,192,127,204,242,100,184,181, 50,224, 9, 74,168, 85, 87, 54, 92,179,
-182, 95, 92,109, 60,197,183, 66, 32, 50, 72, 3,152, 48, 4, 61,143,224, 48,171, 92, 41, 80, 5, 70, 52, 77, 47,249,175,117,219,
-237,183,158, 88,220,231, 55, 2, 40,201,100,135, 18, 11, 30,206, 39, 26, 57,166,180, 36,233, 56, 85, 0, 81,235,155,155, 49,207,
- 79, 94,137,125, 28, 96,249,247, 37,113, 95, 19, 61,137, 77,204, 57, 66,243,194,204,188,190, 83,203,220,201,242,220,141, 43,141,
- 15,200,122, 59,175, 55, 10, 12, 80, 89,142,135, 18,149,186,181, 23, 55, 4, 32, 9,129,201,118,146,223,238,155,196,209,197, 44,
-254, 38,152,196,180,240,219,166, 40,241, 53, 6,149, 39, 19, 76, 0, 20,204,168, 71,115,221,236, 59,118,211,178, 67, 44,177, 91,
-248,122,164, 48,130,101,126,169,100,193,180, 32,144, 26, 48, 21, 21, 36,214,180, 8,219,108,245, 89,202,222,150,121,159,136,249,
- 27,209,118,117,235,243, 59,196,209,113, 76,126,102,227,159, 83, 24,125,194,241,141,223,109,107,121,128,226, 99,165,183, 37, 50,
-179, 42, 50,158, 1,126, 82, 28,101,105, 66,208,179, 82, 4, 49,229,203,110,101,178,158,223,122,102,222,201, 41, 88,159,110,224,
- 8, 52, 57,214,135, 3, 78, 36, 16, 72, 33, 78, 55,154, 46,185, 86,254,222,231, 98,126,229, 36, 85,164,209,220,177,197,174, 21,
- 25, 82,163, 17, 94, 0,180,128, 65, 87,147,138,249, 83,243, 5,252,196, 61,108,250,205,244,177,104,245,141,155,113, 15, 4,224,
- 92,151,200, 43, 82,177,107, 29,186, 14,105,107,196,237,121, 20,232, 54,155, 61,178,116,102, 33, 79,138,143, 34,137,144,234,164,
- 18, 82,216, 10, 11, 39, 84,205,218,207, 99,228, 29,151,109,220,206,222,201,174,165,141,159, 51,157,160,184,198, 28,231, 56, 18,
- 65,199, 33, 78, 60, 21,239,102,190,230, 15, 49,247,221,211,105, 27,148,144, 90, 67, 43,254, 86,183, 88,104,145,205, 99, 26, 64,
- 4, 97,153,174, 67,138, 23,224, 30,165, 61, 84,254, 85,126,182,189, 82,250,122,201,249,211, 50,245, 41,128, 96,188, 7,151,114,
- 53,146, 15, 37, 94, 38,221,152,122,251, 26,195, 30,247,101,144, 27,145, 42, 83,176,214,220,135,196,105,130, 59,193, 46, 55, 85,
- 80, 16,157,178,183,251, 6,219,230, 94,205, 99,127, 29,179, 45,166,146,225,177,187,195, 0, 96, 94, 90,225,128, 21,192, 85,181,
- 21, 7, 14,216,125,183,152,247, 79, 42,183,221,195,109,146,234, 75,168, 99,182,124,141,241, 9, 61,224,192,246, 28, 73,166, 39,
- 75,168,104, 70, 61, 20,156,122, 25,244,227,235,251,243, 54,192,242, 63, 87, 25,135,230, 23,204,124, 93,120,187,229,119,232,152,
- 53,135, 10,186, 74,103, 28,182,205,177, 59,183,115,182,248,151, 24, 48,162, 71, 68,129,229,183, 21,166,107,176,110, 82,142,234,
- 22, 28,237,204,187, 47,151,119, 77,218, 45,246,168,101,107, 88,210,247, 62,154,142,161,192,150,146, 77, 49, 46, 39, 62, 10, 71,
-144,185, 87,126,243, 58,209,219,213,206,241, 60, 46,115,220, 35,107, 9,210, 11, 78,101,161,205, 0, 87, 0,208, 50,198,171,155,
-156, 35,234,127,212, 15,162,155,159,230,109,200,138,200, 97,206,245, 45, 35, 57,182,241, 45,239, 62,135, 26, 52,248, 80,185, 31,
- 33,201,175,169,189,223, 88,108, 50,152,139, 37, 80, 37,174, 57,242,130, 3,139, 66,182, 80,109,214,133,189,242,213,135, 57, 29,
-150, 13, 4, 90, 8,221, 32, 97,168, 37,141,141,154, 88,113,175,226, 21,198,180, 7, 21,153,236, 28,213,184,114, 48,223,110, 53,
-131,122,100,108, 69,224, 2, 4,142,146, 77,111, 24, 83,240,184,140, 41, 82, 48,224,188,227, 60,175,123,191,240,107,156,151, 43,
-212, 39,230,115, 59,213,228,251,124,188,150,195,127,199,160, 93, 46,124, 69, 38,244, 93, 83,177, 34, 9, 41,184,124,219,145,221,
-104, 37, 42,146,217,160, 36,168, 52, 82,157,135,151, 59,120,130,255, 0,233,190,155,107, 22, 0,134,150,184,180, 75, 74, 98,105,
- 74, 3, 94, 29, 28,107,138,237,174,230,110, 54,239,170,250,173,216,238, 68, 23, 7, 52, 56,195,170,181, 2,181,169,105, 31,136,
-113,198,148,193, 89,142, 83,252,216,191, 50, 27,247, 28,122, 35,176, 99, 28,143,147,241, 55, 45,229,211, 51, 62, 46,206,151,115,
-195, 96,192, 60,129,144,219, 46,246,120,150,123,196,166, 46,118,183, 11,101,232,183, 36, 33,242,202, 66, 20,176,225, 3,173, 4,
- 6,215,229,167, 47, 65,113,185, 73, 36, 77,154,222, 48,217, 25, 71, 19,161,165,142, 46,104, 45,119, 2,211, 74,227, 74, 43, 38,
-239,230,175, 51, 92, 91,109, 81,197, 43,225,184,144,190, 39,213,128,107,112,123, 26,199,144,230,225, 80,225, 90, 97, 90,175,169,
-207,203,239,210,199, 38,122,106,225,172,171, 18,230,110,115,202,253, 69,100,220,147,153,220,121, 23, 32,202, 51,146,236,153, 49,
-231,100, 86,203, 92, 25, 86,246, 19, 38, 84,213,252,162, 21,110, 46, 54,130,176, 63,104,175,132,107,204,252,233,204,240,243, 61,
-219, 39,182,182,101,180,108,140, 49,172,103, 67, 92,226, 28,104, 7,123,189, 67,216, 49, 94,174,228, 78, 83,159,148,236,159,111,
-119,116,251,169, 36,144,200,231,191,165,205,107, 75, 69, 73,238,141, 53, 29,167, 5,110,112,126, 43,227, 62, 38,197, 97,226,248,
- 70, 41,141,225, 88,110, 61, 13,230,237,214, 75, 53,185,139, 45,130,201,111, 74,150,243,129,166, 90, 75,108,176,128,165, 41,106,
- 32, 1, 82, 73,238,117, 88,187,187,155,114,149,211, 76,247, 62, 71, 28, 92,226, 75,137,203, 18,113, 61, 10,215,103,101, 6,213,
- 11, 97,129,141,142, 38, 12, 26,208, 26,214,140,240, 3, 1,210,190, 89, 63, 42, 40,237,243,215,230,235,235,131,213, 55, 24, 70,
-249, 94, 24,110,229,200,246,107, 85,218,218,217, 98,217,146,187,157,228, 49, 94,183, 58, 41,181, 46, 11,132, 91, 43,247, 23, 82,
- 42, 82,165,182, 85,213, 64,159, 73,121,170,255, 0,228, 92,171,181,237, 87, 6,183, 29,199, 16,115,104, 99, 8,119,176,188, 48,
-117, 3, 76,151,150,188,159,103,252,135,155,247,109,226,216, 82,219,243, 26, 8,201,198, 73, 1,105,235,212, 24, 94,122, 9, 21,
-205,125,114,235,204,107,214, 42,155,250,232,245,173,197,190,132,120, 30,253,204,188,142,250,103,220, 84, 92,178,113,222, 11, 22,
- 64,102,243,200, 89,196,134,156,114, 53,190, 57,218,191, 37,164,132, 23,101, 73, 82, 74, 90,105, 42, 85, 20,178,132, 46,219,201,
-124,159,115,206,215,205,179,183, 20, 25,189,252, 24,206, 46, 61, 39,128, 28, 79, 85, 72,166,115,223, 59,218,114, 21,131,239,110,
- 77, 78, 76, 96,205,239,166, 13, 29, 3,139,143, 1,142, 38,128,252, 90,115,111, 29,250,155,185,250,148,244, 53,235, 27,213,141,
-218, 66, 57, 59,214, 39,168,107,126, 71,109,193,159,134,184,104,192, 48, 28, 26,249,134,127, 5,134,211, 78, 60,226,225, 54,168,
-215,205,172,193, 80,222,203,104, 65,121, 74,144,227,161, 62,179,218, 55, 93,183,249,110,235,180,109, 77,252,139, 59, 98,210,250,
-215, 91,222,201,117,156,177,161,102, 46,201,196,157, 35, 72, 21,241,158,247,179,238,163,116,218, 55,173,225,223,238, 47,174,131,
-132,116,167,135, 27, 31, 14,129, 74,225, 80,252, 27,155, 64, 26,137,113,117, 58,213,252,193,153, 85,183, 5,229, 79,202,187, 55,
-189, 53, 54, 69,159, 14,228, 30, 85,202,174,204, 91, 88, 18,174, 47, 91,113,235,175, 26,203,125, 17,218, 42, 64,113,197, 52,202,
-130, 18, 84, 42,104, 42, 53,151,249, 13,104,237,194,199,122,129,148,212,248,163,104,174, 2,174,108,224, 87,170,167, 21,173,254,
-162,111, 89,182,238, 27, 21,196,149, 45,142,105, 30,105,137,163, 95,110, 77, 7, 19, 65,130, 54, 97, 31,204, 21,233, 98, 54,109,
-100,194, 57,135,211,215, 59,240,173,146,236,236,102, 96,102,217,109,130, 28,166, 34, 67,144,225, 66,103, 92, 45,237, 62,137,204,
-199, 72, 21, 90,226, 38, 74,129,232, 18, 64, 39, 80,215, 30, 65,238, 38,221,211, 90, 92,219,206,230,230,214,184,226,122, 26,105,
- 66,127,181,165, 78,219,126,163,118,193,114,216, 47,109,110,109,218,227,131,222,209,128,233,115, 65,212, 7,246,117, 47,161,252,
- 98,247,143,100,184,253,159, 34,197, 46, 86,235,206, 55,125,182,194,188, 88,238,246,137, 77,206,181,221, 45, 87, 54,146,244,121,
- 49,222,105, 74,109,230,159,101,105, 91,107, 65, 33, 64,130, 13, 14,176,201,161,125,187,221, 28,128,181,205, 36, 16, 69, 8, 35,
- 2, 8,224, 65,204, 47, 65, 65, 59, 46, 88,217, 35,112,115, 28, 1, 4, 26,130, 8,168, 32,140, 8, 35, 16, 83,246,147, 74,172,
-208, 65,102,130, 11, 52, 16, 89,160,130,205, 4, 22,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 89,160,130,205,
- 4, 22,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 95, 60,223,156,239, 21,223,249, 27,156,253, 44, 58,222, 49,
-149,220, 48,232, 92,105,234, 62,215,145,100,246, 62, 13,186,115,205,191, 28,185, 94,237, 45, 51,107, 75,182,139,105,108,137, 18,
-103, 22,209, 13,245, 58,159,151,116,166, 85, 22, 24, 41, 59, 71,149,251,131, 44,173, 46,198,166,135,153, 34, 32, 25, 4, 68,128,
-238,247,120,240, 2,181, 20,239, 14,238, 21, 85,221,234, 35, 36,145,224,105, 71,112,213,195,163,210,153,170, 49,135, 88,253,123,
-241,190, 22,139,231, 29,113, 23, 54,113,182, 88,223,167,223, 74,248, 39, 37,185, 96,198,110,146,185, 2,221,197, 24,221,223, 37,
-102,224,253,173,197, 91,228,206, 98,224,236,102,173,146,164,199,140,194,228, 68,105,229,167, 96, 13,154, 91, 46,166,217,239,165,
-209, 60,209, 61,158, 52,206,101, 75,116,151,150,178,154,177, 0,182,186,128, 36,128,226, 6, 56,168,246, 54,226, 33, 86,181,192,
-233,104, 56, 26,210,167,223,151, 98, 55,113,189,207,243, 4,228,235,142, 91,134, 94,249,231,213,213,159, 10,196, 56, 35,159,179,
-204, 19, 52,177, 96,183,220, 22,239,149,228, 88,114,163, 75,199,109, 83, 39,228,152,204, 43,149,221,107,151, 41,248,203,121,182,
- 25,122, 66, 91,242,155, 41,242,201, 17,119,209,236,214, 13,100,172,183,182, 47,116,209, 53,205, 46,107,131, 67,170, 30,224, 24,
-242, 27,128, 6,149, 32, 86,167, 52,226, 51,113, 41, 45, 47,125, 3, 92, 65,161, 21,166, 67, 17,138,128,102,249, 23,171,158,104,
-182,225, 80,185,234, 47,171,235,190,106,198, 81,232,106,251,130,225, 22,238, 45,186,195,225, 43,134, 45, 30, 5,162, 78, 89,127,
-189,152,182,143, 32, 92,152,191, 7,252,245,200,117,178,219,132,161, 41, 40, 5, 13, 59,180,131,109,218,220,243,102,109,131, 52,
-220,135, 56,189,190, 32,117, 92, 24,214,213,213,210, 91, 74, 80, 26,140,115,196,165, 35,166,156, 15, 19, 93,106,202, 10, 26, 83,
- 10,147,134,117, 77,217, 7, 47,254,106,214,102,185, 22,231,117,202,189, 77, 90,185, 93, 77,242, 76, 92,215,143, 32,113, 94, 77,
-127,197,173,194, 44,160,253,154,225,139,200, 99, 27,254,236,218,162,182, 90,101,134, 94,139, 57,227, 37, 43, 41, 41, 30, 96, 42,
- 82, 29,183,151,165,240,218,214, 64, 97,238,105,121,123, 3,142, 20,112,120, 47,214,227,153, 32,180,105,167, 82, 14,154,236,106,
- 36,187, 86, 53, 20, 62,170, 97, 65,237,197,116,139, 30,244,179,206, 46,243, 23, 60,100,174,228,240, 57,123, 55,176,122,118,244,
-253,146,227, 57,127,169, 14, 7,179,242, 21,231, 46,206,100, 63,200,151, 17,101,178, 92, 84,108,182,203, 2,173,210, 76,102, 29,
- 44, 71,112,160, 57, 29, 78,160,108, 78,250, 60,220,193,104, 45,173,227,208, 98,141,211,202, 11, 97,149,204, 13,109, 34, 26,156,
- 59,197,213, 21, 34,164,100,105,158, 18, 77,180,147, 91,141,117, 16,214,226,230,131, 83,222,192,101, 79,232, 72,120,243,152, 57,
-199, 6,229,238, 12,201, 5,231,214, 30, 89,233,226, 44, 76, 62, 63,169, 25, 60,149,196,217, 85,246,249,106,230,123,222, 33,200,
-109,220, 45,209,109,199, 31, 69,233,200,136,191, 34,197,243, 40,183, 70,114, 12,121, 31, 46,150,150,143, 49,105, 81,175,118,219,
- 75,187,105,217,166,217,183, 53,119,131,161,236, 0,198, 36,138,132,157, 90,107,167, 93, 53, 16,247, 10,212, 26, 46, 71, 52,140,
-123, 77, 94, 89,134,170,131,157, 29,213, 92,233,150, 9, 30, 31,144,122,182,202,112,107,222,123,122,203,125, 70, 90,178,126, 61,
-227,111, 70,217, 62, 29, 97, 76, 57,246,104, 89, 6, 87,154,231,185, 60, 76,185, 23,107, 99,144, 1,187,169,187, 4, 56,104,153,
- 17,240, 82,203,106, 11, 90, 18, 74, 22, 15,115, 14,219,111, 51, 97, 99, 32, 44,123,238, 3,142, 4,134,182, 38, 24,244,186,189,
-222,241, 52, 35, 51,128, 57,133,198, 58,103,180,184,151, 84, 6,211,180,184,214,163,142, 8, 54,172,163,157, 83,149, 97,153,245,
-218,215,234,142,255, 0,203,247, 15, 78,217,198, 13,234, 6,253,115,178,103, 56,182, 61,195,121,174, 69,202, 92,107,252, 69, 22,
- 7,173,118, 9, 11, 48, 45,246,248, 50, 28, 92,108,113, 43,113,232,104, 15, 7, 17,188,190, 36,254,158,211,195,124, 45, 54,226,
- 17, 59, 93, 16, 6, 55, 25, 26, 33,154,154,170,225,222, 36,140,100,160, 14,194,135, 36,142,185, 42, 28,117,151,105, 33,217,224,
-117, 55, 42, 12,187, 56, 40,126, 77,110,231,108,155, 18,228,204,167, 59, 87,168, 60,222,246,231,166, 79, 87, 28, 95,197, 15, 92,
- 56,163, 41,118,211,156,189, 97,201, 90,185, 88,173,183,171, 77,222,211, 58,226,226,101, 90,164,174, 68,118,111,234, 43,144,152,
-237,161,213, 58,166,212,133, 58,129,246,144, 73, 20,112,248, 44,111,143, 3,223, 71,178,173,171, 40,226,215, 53,192, 96,225, 66,
- 99,193,186,137, 20,173, 81, 28, 36,112,113,118,163,221,112, 24, 28,113,192, 16, 71,219,208,172, 14,121,152,122,184,113,185,108,
- 98,185, 63,170,152, 60,179, 51, 53,228,203, 87,168, 59, 81,196,110,140,113,230, 1,133,191,156,194,139,136,200,195,100,200,180,
-174,196, 28, 93,157,198,190, 85,219, 76,137, 5,232,191, 50,236,205,202, 66,148,152,107, 59,109,180, 80,200,219,115, 8, 99, 12,
- 71, 83,117,185,222, 25, 50, 9, 0,118,175,154,181, 15, 13,163,180,134,230,156, 72,249,184, 23,234,169,213,129,160, 21,194,152,
- 83, 46,138,225, 90,174,158,122, 84,143,157,217,158,245, 25,134,230, 55,156,255, 0, 33,178, 96,190,162,174,248,247, 24, 94,121,
- 30,108,171,205,250,119, 30,203,196,241, 11,170, 75,119, 41,137, 15,220,227,183,122,185, 92, 91,105,242,165,132,237, 45, 5,126,
-202,130,133,204, 46,134, 95,166,150, 38,177,174,124, 0,188, 48, 0, 3,245,200,220,134, 0,233, 13,168,245,241, 82,182,154,155,
-173,174, 36,128,236, 43,209, 64,126,218,163,119, 40,228,179, 49,124, 70,108,203,108, 27,197,206,231, 37,232,208,162,219,177,232,
-130,117,254, 67, 14, 44, 42, 98,161,180,167, 26, 74,158,102, 10, 94,113,178,165,128, 20,145, 95, 97,174,129, 92, 19,180, 5,227,
-172,109,206, 93,201,111, 89, 38, 97,102,106,221,132, 96,119,123,222, 21,131,241,164,246, 81, 42, 44, 15,216, 6,103, 92,110, 72,
- 42,117,137,115, 46,108, 74,113, 27,234,180,162, 58,202, 82,181, 41,247,201,120, 92, 45,126, 95,155,167,163,175,224,137, 77,120,
- 28,145,133,188, 75,141,120,139, 27,114,223,133, 96, 24,157,133, 55, 4,255, 0, 10,182,216,113,251, 20, 75, 80,189, 76,144,157,
-141,176,176,132, 55,230, 37, 93, 55,149, 19,211,218,104, 10,119, 55,179, 94, 29, 82,189,206, 61,100,149,200,225,100, 34,141,104,
- 29,139,128,158,160,248, 75,211, 45,171,149,114, 38,237, 56,165,239, 32,185, 49, 33,165,228,113,109,217, 66, 45,188,115,111,203,
-210, 84,185,205,218,173,200,132,224, 12,182,242,182, 18,146,138,168, 40,128, 1,214,171,177, 27,169, 45,152,102,112,175, 10,130,
- 77, 56, 87, 26, 87,213,219,138,172,222,136,132,135, 64, 62,163, 65,246,125,234,235,254, 93, 60,143,134,226,217, 85,239,130,241,
-156, 78,211,137, 64,200, 96,207,205,226, 68,181, 61, 37,246,147,117,183, 37,134, 23,188,200,117,229, 54,101,199, 66,214,148, 36,
-165, 7,201, 90,146,144,162,178,170,239, 55,237,207,238,220,106,212, 0,161, 24, 10, 99,133, 41, 65,137, 79,246,153,218, 43, 29,
- 41,199,181,118, 3, 84, 53, 54,168,199,174,252, 43,154,115,206, 60,199,172,124, 80, 36,203,180,191,118,150,140,234,203,111,150,
- 33, 92, 46,144,214,150,140, 58,169, 75,109, 46, 48,211,137,116,188,221,122,146,131, 66, 18,117,231,111,212,119, 42,243, 31, 55,
-237,144, 90,108, 61,230, 25, 15,142,192,224,199, 61,180, 26, 49, 36, 2,192,117,106,109,113, 37,166,134,139,209,223,166,222,107,
-229,190, 79,221, 39,188,223,251,178, 8,199,128,242,210,246,177,213, 58,240, 0,144,242, 11,116,186,152, 0,225, 81, 84, 56,244,
-173,232,134,221,130,136,121,167, 35, 50,197,207, 42,162, 30,137, 16,167,124, 75, 57, 80,252, 45, 5,126, 37,245,234,225, 30,228,
-208,117, 44,252,150,253, 61, 90,121,118,214,223,238, 26,102,220, 8,168, 57,178, 26,140,153, 92,221,210,242, 58,155, 65,137,121,
-231,111,234, 38,239,204,103, 59,111,219,181, 67,183, 3, 66, 50,124,212, 57,190,153, 55,161,128,245,186,167, 1, 65,253, 89,241,
- 78, 71,192, 28,239, 55, 34,177,166, 84, 11, 37,254,248,238,107,132, 94,217,106,140, 70,150,227,223, 48,236,100,168,213, 59,225,
- 72, 85, 54,159,212, 41, 52,161,215,145,124,240,228,219,223, 43, 57,161,219,141,166,166, 69, 44,166,120, 36, 3, 0,253, 90,156,
-218,229, 86, 56,228,115,105, 29, 43,216, 30, 69,243,157,143,154,220,172,221,186,239, 75,229,138, 33,111, 60,100,226, 89,167, 75,
- 95, 76,232,246,140,198, 78, 7, 28, 20,119,155,108,191,151,231,174,180,216,114, 79, 88, 28, 75,144,217,121,115, 31,179, 68,177,
-185,200,220,123, 42, 68, 9, 55,203,116, 26,150,218,121,112,223,105,215, 18,149, 41, 91, 16,251, 75,217, 82, 18,186, 29,123, 35,
-202,111,255, 0, 32, 35,150,172,196, 23,134, 72, 36,205,193,172, 18,196,231, 83, 23, 52,124,204, 39,136,165, 58,202,241, 95,156,
- 31,254, 59,199, 53,222,125, 69,163, 98,184,102, 77, 38, 67, 12,205,109,112,107,136,238,188, 14, 6,181,234, 9,146, 6, 69,233,
-195,211,191, 20,100, 60, 23,232,203,140,229,224, 88,190, 94,229, 51,124,214,248,226,157,202,114,152,229, 30, 90,219, 83,142, 63,
- 38, 75,129,214,255, 0,102, 86,243,189, 17,185, 9, 66, 66,137,214, 53,250,136,253, 99,221,249,179, 4,150, 54,102, 93, 18, 55,
- 67,229,144, 6,157, 7, 54, 71, 27, 77, 26, 29,248,137,196,138,138,113, 91, 87,233,191,244, 91,101,228,252,241,223, 93,136,131,
-227,118,182, 69, 25, 46, 30, 32,201,242, 72,225, 87, 22,254, 16, 48, 6,134,188, 21,168,244, 69,233,222,243,154, 98,188,157,145,
-206, 63,193,227,102,152, 46, 77,129, 99,211,228,198, 83,190, 75,119,232,174,199,114,102,202,163,204, 64,117,104,218, 2,133,118,
- 30,160, 16,117, 96,253, 27,114, 52,219, 14,190,102,186,101, 4,133,172,132, 28, 9, 99, 92, 28,247,118, 57,192, 53,167,250,164,
-229, 74,192,126,180,121,234, 30, 96, 12,229,123, 87,212,198, 28,249,156, 49, 13,123,152, 88,198,255, 0,105,173,115,156,225,253,
- 96, 51,173, 41, 23, 5,254, 75, 63,152, 39,163,187, 62, 70,159, 74,126,188,237,152, 85,199, 46,149,179, 42,180,191,131, 22,241,
-139,172,104,200, 8,141, 41,182,100, 57,117, 13, 74,100, 41,196,249,129,160,118,144, 55, 0, 41,175,171, 27,223,156, 59, 47, 54,
- 72,211,186,109, 69,225,131,186, 67,251,195,164, 18, 3,106,211,134, 21, 95, 35,246, 15, 36,119,238, 77,137,237,218,119,129, 27,
-158,123,224,199,220, 52, 24, 16, 9,117, 28, 49,198,157, 24,169,191, 30,126, 66, 57, 19, 28, 83,234,114, 71, 41,243,210,243,207,
- 83, 30,165, 44,110,218,174,188,185,125,179, 63,115,139, 99, 55, 43,172, 75,189,201,207, 41,217,127, 55, 53,235,148,168,160,191,
- 33,199, 82,162, 0, 1, 32,110, 10, 97,127,231,119,141,121,100,109,237,124, 59, 59,103, 84, 68, 28, 1,113, 13, 45,110, 32, 80,
- 6,131,128, 0,250,240,164,142,221,228, 23,129,101,124, 46,110,204,183,215,109,210,233,156,210, 67, 65,112,123,168, 9,171,139,
-136,196,146, 56, 96, 49,174,203,239,228, 25,120,255, 0, 5,189, 55, 47,143,185,213,174, 62,245, 83,233,169,139,149,186,199,203,
- 86,188,125,195, 97,203, 45, 11,189,220,111,118,246,164,193, 50,150,228,103, 45,210, 46, 46, 6,222, 74,215,185, 42, 90, 86,133,
-164,164, 35,150,254,118,255, 0,187,189,250,155, 95, 18,202,232,130, 98, 46,197,167, 67, 88,234, 58,152,234, 13, 21, 20, 28, 40,
- 65,173,123,115,228, 31,251, 43, 15,165,187,240,175,237, 1, 13,152, 55, 7, 13,110,123, 65,109,106, 52,151, 26, 26,156,200, 32,
-138, 82,194,112, 31,160,191,204,113,142,124,193,121,115,212,207,174, 71,114,108,123, 3,140,237,189, 60,117,198,184,188,108,111,
- 22,203,237,175,169,181,184,197,218, 58,162, 49, 9,228,188,227, 40, 46,184, 98, 41,234, 36, 6,221,108,252, 66,189,190,243,158,
-195, 37,140,150,123,110,214, 24,231,154,248,146, 56,185,205, 61, 45,196,156, 49,167,122,157, 32,171, 55, 47,114, 47, 49,199,184,
- 69,123,186,238,229,237,140, 17,225,196,208,214,188, 30, 15, 4, 1,137, 2,167, 73,119, 67,134,104,197,232,223,242,217,201,189,
- 44,250,207,245, 97,234,110,119, 36, 90,114,203, 39,169, 12,171, 41,201, 96, 99, 80,177,231, 45, 18,177, 84,228,119,217,151,132,
-176,227,235,148,250,100,249, 41,148, 26,220,148, 38,164,110,160,237,168,254,110,231,246,115, 54,215, 97,183, 54, 18,195,108,198,
-180,187, 85,117, 81,129,181,165, 5, 50,174,101, 73,114, 95,150,239,229, 61,223,113,220,221, 56,120,187,123,156, 26, 27, 77, 53,
-121,125, 9,169,174,116,200, 40, 47, 47,254, 82,163,152,191, 48,188,211,213,214, 97,156,218, 47, 60, 95,200,252, 97, 59,139,242,
-190, 40, 93,141,232,215, 71,173, 23, 92,105, 56,244,133, 38,230,153,123, 82, 74,106,242, 72,100, 20,154, 80,212, 87, 79,172, 60,
-207,118,217,176,197,180,193, 17,108,209,202, 36,108,186,133, 1, 15,214, 59,180,245,102,163,247, 31, 41, 89,187,115, 20,187,205,
-196,161,208,203, 9,137,209,105, 53, 33,209,248,103,189, 95, 94, 74,159,241,215,228,251,249,133,122, 81,151,150,224, 30,143, 61,
-125,185,129,240, 94, 95,122,149,113,118,211,119,197,132,188,150,210,137,128, 52,167,153, 73,109,248,168,150, 35,165, 41, 84,136,
-203, 96,172,164, 18, 18, 64,165,175,114,243,103,100,230, 93, 23, 27,174,213,226, 92,177,160, 84, 58,141, 52,224,114, 58,107,192,
-234,162,167,237,126, 77,111,252,171,174,219,103,222, 60, 43, 71,184,157, 46,101, 92, 43,196,102, 53, 83,136,211, 84,227,233,255,
- 0,249,126, 34, 97, 88,239,169,206, 63,230,126,103,119,145,177, 79, 80, 56,253,170, 45,186,251, 6,194,109,153,150, 37,148,227,
-247, 7,174, 80,111, 43,126, 68,169,141, 74,144,137, 14, 2,232, 41, 1, 96,173, 36,209,103, 72,111,190,121,203,127, 53,149,197,
-165,176,137,246,228,212, 23, 85,174,107,154, 26, 89, 64, 1, 2,131, 14,140, 58, 18,252,191,250,124,135,110,130,254,218,242,232,
-205, 29,203, 64, 4, 55, 75,216,230,184,185,175,169, 36, 19, 83,143, 78, 35,138, 97,179,126, 85,191,153, 87, 15,241,147, 92, 17,
-138,254, 98, 86, 28, 47,211,165,129,244,170, 29,238, 46, 45,252, 3, 56,199,172,169,146, 36, 6, 24,186, 41,105,151, 9,160,233,
-160, 66, 46, 73, 77, 14,208, 2, 14,221, 43,113,230, 87, 47,110,183, 70,250, 77,156,190,237,217,141, 85, 99,141, 41, 82,218, 80,
-154,127, 82,188,115,197, 35,109,229, 95, 50,236,246,131,111,139,124, 17,217, 51, 34, 25,165,237,109,107, 64,234,212, 10,255, 0,
- 92, 14, 25, 96,172,247,171, 15,202, 59,145,189, 72,102, 30,139,115,151,249,249,185,151,191, 75,177,109, 76,228,247,124,183, 22,
- 69,195, 36,228,217,112, 46,214,251,154,230, 62,252, 39,161, 70,142,235,194, 17, 65,163, 39,184, 38,180, 53,174,114,191,153,241,
-114,237,182,225,110, 45, 0, 23, 85,160, 99,168,216,193,107,155, 64, 8, 36,129, 94,149,104,230,223, 41,102,230,123,173,178,229,
-215,132,155, 61, 58,139,219, 87, 72, 67,218,234,146, 11, 64, 39, 79, 66,238,173,189,133,198,131, 18, 58,233,189,136,237, 52,170,
-118,220,128, 1,214, 64,182,197,243,253,249,224,250,219,202, 49,124,111, 25,244, 1,233,197, 82, 47,222,162,253, 80, 34, 38, 61,
-146,198,176, 63,186,233,138,113,174, 72,225,137,242,101, 73, 33, 49,228,100,138,222,193, 82,213, 70,226, 37,247, 23,176, 45,167,
- 53,186,121, 57,202, 17, 78,247,239,219,141, 27,105,107, 87, 2,114,115,219,141,122,195, 51,195, 55,233, 2,180, 33,121,239,207,
- 14,117,154, 8,227,229,221,174,174,189,187,163, 92, 27,155, 99,113,165, 58,140,152,140,114, 96,113, 52,168, 43,160,191,150,247,
-162,220, 95,209, 79,167, 44, 67,140,237, 72, 98,110, 72,227, 63,199,243,220,145, 12,150,157,202, 51,155,171,109,252,244,186, 31,
-137, 45, 55,177, 17,227, 32,245, 75, 45,182, 13, 85,185, 71, 58,231,158,109,155,157, 55, 25, 47,100,193,191, 43, 27,251,172, 31,
- 40,237,226,238,151, 19,195, 5,167,121,125,201,144,242, 38,217, 21,132, 84, 47, 29,233, 29,251,242, 31,152,246,112,104,224,208,
- 56,212,174,131, 40,237, 5, 71,176, 4,253,154,168, 43,178,248,121,228,222,108,245,111,207,254,185, 98,122,166,245, 59,249,114,
-250,191,228,174, 62,227, 39,159,107,128,125, 62, 71,227, 12,158,195,140, 96,204,199,144,151, 34, 73,185, 25, 24,228,212, 79,146,
- 75, 72,147, 44,165,164,135,159, 13,238,253,131, 45,177,175, 96,218,237, 59, 78,203,178, 29,171,109,222, 44,226,150, 95,243,166,
- 50, 70, 92,252, 49, 13,164,131, 72,224, 49, 52,109,105,222,113,114,241, 37,230,241,188,239,219,248,222, 55, 93,146,250,104, 98,
-255, 0, 34, 1, 20,141,107, 49,192,186,177,187, 81,252, 78,192,106,117, 43,221,104,106,142,126,101,126,185,185, 75,212, 23, 46,
-122, 15,200,178,159, 67,156,231,233,238,119, 8,242, 62, 71,125,197,177, 78, 65,183,220,227,221,249,142,117,198,235,134, 73, 92,
- 11, 42,101, 99,246,199, 28,121,135, 45, 12,178,160,203,111, 29,210, 91,248, 65, 32, 41,207,151, 60,149,103,177, 89,110,144,193,
-185, 91,220, 54,104,131, 92,230, 22,145, 16, 13,148,106,125, 30,234, 3,168,156, 72,193,167, 30,134,190,104,115,229,247, 48,223,
-237, 51, 79,181, 92,219, 58, 9,156,230,178, 64,224,102, 37,208,157, 44,172,109,169, 26, 64,192, 59, 23, 12, 58,126,179,248, 37,
-188, 55,214, 7, 19,240, 87, 59,243, 31,167, 19,199,188,149,140,181,144, 93,177, 76, 87,149, 49,164,203,228, 78, 36,184,204,146,
-228, 9, 34, 59,243,237,240,230,193, 93,193,136, 44, 60,189,140,183,185, 62, 81, 32,236, 66,181,229,189,220, 73,203, 87, 23, 54,
- 22,151,126, 36, 46,210, 28,232,221,249,114,128, 42, 42, 26,226, 28, 1, 36,102,120,244,149,235,173,145,209,243, 85,181,174,229,
-123,101,225, 78,221, 78,107, 37,109,100,136,146, 90,104, 92,208, 90, 92, 0, 57, 10,138,116, 5, 76,255, 0, 61, 78, 24,227, 60,
-151,242,224,230, 92,178,251,100,180,183,144,241,100,156, 15, 41,193,111,239,178,210, 39, 89, 47,147,242, 27, 77,173,212, 48,242,
-192, 82,127,136, 68,156,228, 85,160, 31,139,122,122, 21, 4,210,231,228,158,227, 61,151, 48,219,199, 17, 58,101,214,215,129,145,
-104, 99,157,136,254,169, 1,221, 84,237, 84, 95, 62,246,203,123,254, 89,185,150,102,141,113, 22, 57,142, 57,181,198, 70,180,208,
-255, 0, 88, 18,218,113,175, 98,131,126, 82,126,171,112,126, 59,244, 11,232,127, 9,229,204,177,196,114, 7, 44,222, 50,142, 50,
-227, 60, 97, 9, 84,251,245,206, 13,167, 37,191,196,128,250,153, 43, 43,143, 2, 21,174, 19, 40, 92,167, 40,216,248, 27, 77, 86,
-180, 32,186,243, 59,150,166,190,223,183, 73,173, 89,249, 48,134,200,247,100,208, 76,108, 46, 21,226,226,226,112, 24,230, 78, 0,
-148,211,202,110,106,131,111,229,205,166, 27,201, 63, 58, 98,232,227,110,110, 32, 73, 35, 90,105,193,161,173, 29,227,134, 64, 98,
- 64, 93, 58,227, 15, 85,152,239, 45,242, 54,107,128,226,188,103,203, 8,182,224,121,166,109,199,215,190, 76,186,218,236,209, 56,
-241,121,102, 3, 35,229,167, 70, 97,196, 95, 29,187,185,185,239,133,165,170, 2, 82,175, 18, 53,158,238, 92,186,253,170, 8,230,
-150,104,181, 72,198, 60, 70, 11,139,244,188, 84, 19,220,211,150,125,229,165,109,124,204,205,222,226, 88, 34,130,109, 49,200,248,
-221, 33, 12, 17,234, 97,163,128,239,151,103,151,117, 24, 57, 19,148,241, 94, 48, 86, 4,222, 76, 47,110,200,228,174, 70,198,248,
-183, 19,137, 96,199,229,228, 83, 37,229, 89, 58, 36,188,209,117,168,109, 58,184,241,163, 69,135, 34, 76,185, 78, 0,219, 44,182,
-183, 28, 82, 80,146, 68,117,134,217, 46,229,226,152,244,210, 56,221, 35,137, 33,163, 75,104, 56,230, 73, 32, 0, 49, 36,128, 49,
- 82,155,142,235, 22,215,225, 9,117, 86, 89, 27, 27, 67, 90, 92, 75,157, 82, 43, 74,208, 0, 9,115,142, 13, 0,147,128, 85, 42,
- 7,230, 73,233,206,226,155, 93,197,152,124,184,206, 37, 51, 9,226,254, 69,189,103,115,120,162,235, 11, 19,193,240,190,103,184,
- 93, 45,152,205,202,250,227,173,166, 93,182, 53,214, 77,162, 66,155,144,184,229,176,214,215,212,176,202,188,205, 90, 95,229,238,
-225, 30,166,147, 22,176,249, 24, 24, 36,105,115,221, 16,107,158,214,112,113,104,112,168,173,107,221,166,172, 21, 70, 63, 50,246,
-217, 52,184, 9,188, 50,200,228, 47, 49,184, 53,140,149,206,108,110,127, 22,135, 22,154, 26, 82,157,226,116,226,173,166, 47,202,
- 56,238, 76,230,108, 21, 30,233,141, 49,132,102,119, 28, 42, 68,236,173,166, 44,240, 50, 7,237,140, 91, 93,114,225,106,119,230,
- 28, 76,184, 69,235,163,113, 82,249,218,124,228,173,178,144, 64,221, 86,185,219,100,182,240,241, 14, 47, 96,117, 27, 82, 69, 75,
-133, 29,134, 14,238,147, 78,138, 21,110,181,221, 99,186,241,112, 45, 12,121,101, 93, 64, 29, 64,211,169,184,226,218,184, 10,225,
-222,168,162,107,198,121,179, 5,202, 50,222,103,195,163,203,147,106,184,112, 70, 99,140, 96,249,196,235,240, 98,215,102, 55,188,
-183, 27,178,101, 17, 62, 78, 66,159, 62,115,102,219,127,138,149, 41,105, 65, 14,239, 64, 4, 0,162,173,206,207, 53,180, 86,243,
- 16, 8,157,142,123, 0,169, 52,107,221, 25,168,166, 7, 83, 15, 78, 20, 41, 43, 93,242, 11,169,174, 97, 4,131,110,246,177,229,
-212, 2,174,141,146, 10, 26,226, 52,188,116, 99, 80,183,242,215, 50, 97, 60, 45,138,181,152,102,143,221, 92,180,189,126,195, 49,
-244,179,142, 89,159,201,174,225,236,234,245,110,176, 67,145,242, 80,210,236,149, 71,110,225,117,142, 31,117, 8, 33, 9, 85,122,
-146, 1, 46,215,180, 77,188, 75,225, 67, 77, 90, 92,123,196, 52,119, 26,231,145, 83,133,104,211, 65,197,119,119,222,160,217, 34,
-241,167, 39, 78,166, 55,186, 11,143,125,237, 96, 52, 24,211, 83,133, 79, 4,167,137,185, 99, 20,230,140, 78, 70,101,135, 55,126,
-102,215, 15, 47,207,176, 89,177,178, 92,126, 86, 53,119,135,146,241,165,238,126, 63,118, 97,200,178,219,109,193,228, 92,237,175,
-182, 20, 5, 13, 60, 13, 64, 46,233,181,203,180, 74, 33,155, 78,162,198, 60,105, 33,192,181,237, 15,105,168,233,107,130, 62,209,
-187,195,189,194,102,135, 86,144,247,176,234,105,105, 14,141,238, 99,133, 15, 67,154, 66, 37,234, 57, 73,172,208, 65,102,130, 11,
- 52, 16, 89,160,130,205, 4, 22,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 89,160,130,205, 4, 22,104, 32,171,
-207,168, 95, 81,248,159,166,235, 94, 45,125,205,172,185, 20,251, 22, 81, 51, 52,181,181,115,177, 48,204,164, 91,238,248,150, 47,
-123,202, 90,136,235,107,117,183, 86,237,218, 61,134, 68, 72, 73,105, 42, 43,125, 77,160,211,120, 58,154,217,118, 57, 55,199, 61,
-145, 57,161,205, 13, 52, 60, 67,158,214, 87,177,165,192,154,240,169,224,155,220, 92,139, 96, 11,134, 6,190,224, 79,190,138,168,
-207,252,211,120, 50,223,100,185,228,174, 97,252,152,253,134, 22, 54,221,238, 4,216,118, 86, 37,203,190,221, 89,131,198,211,231,
- 89,162,194,110, 74,166,170,125,173,158, 76,134, 37, 48,166,129, 66,162,205, 7,247, 63, 21,137,158, 95,221,189,226, 61,113,234,
- 46,161,196,224, 43, 48, 14, 38,148,210,239, 4,208,215, 29, 77,233, 77, 14,235, 24, 21,161,165, 63,135, 14,222,247,184,167,201,
- 63,153,119, 12, 91,239,140, 91, 46,120,182,119, 22,211,120,206,237,248,110, 33,149, 49, 22, 29,198,197,151,219,149,152,101,120,
-133,202,249, 13, 76, 74, 91,166, 5,153,120,132,203,164,167, 54, 84, 66, 82, 30, 9, 63, 18, 82,139,121, 22,233,236,212,215,178,
-161,133,206,110, 32,180,248,108,144, 52,212,124,206,241, 3, 64,253,234,133,211,185,176, 26, 16,105, 90, 3,211,137, 21,236, 20,
-175, 98,124,201,189, 92,230, 55,139, 55,163, 44,219,135,184,230,102, 75,103,245, 51,154,101,208,127,185,119,153,176, 44,217, 37,
-207, 17,129,134,229, 55,251,116,184,211,223,154,139,116, 32,234,237, 17,167, 41,197, 41,194,168,229, 72, 66, 20,234,146, 52,148,
- 28,183, 20, 78,189,138,230, 80,215, 64,214,157, 64, 18, 3,140,140,105, 4, 1, 83,243, 22,240,239, 98, 77, 17,159,120,226, 35,
-115, 27, 93, 68,225,213, 66,126,234,246, 42,177, 96,252,220,236, 63,197, 57, 17,119,206, 59,189,188,219,121, 68,166, 48,108, 70,
- 68,235, 94, 33,117,177, 89,112, 92, 43, 12,186,229, 80,110, 55, 57,247, 3,111,185, 92,152,201,242, 69,195,130,196, 50,124,228,
-148,170,168, 66,124,197, 88, 38,242,221,250, 99,209, 32,249,123,206,163,156, 9,116,146, 53,132, 0, 42, 26, 88,202,184,156,186,
-206, 9,163,119,129, 83, 81,199, 1,150, 64, 19,143, 77, 78, 8,198,223,230,127,133,175, 31,139,157, 57,194, 92,167, 31,142,178,
- 43,247, 45,225,124,127,145,189, 58,198,155,190,111,158,113, 76,179, 12,219, 91,180,127, 18,249,187,122,110,210, 1,102, 43,243,
- 11,123, 92, 74,131,201,109, 27, 92, 84, 97,228, 25,117,152,124,120,252, 70,134, 57,194,142,163, 90,241, 90,234,165, 14,145,137,
- 2,184,101, 83,130, 91,249,171,105,171, 73,210,106, 6, 88,145,213,214,160, 23,207,204,234,245,197, 60,139,205,120, 63, 50,240,
-252,203,117,251, 12,201,222,127, 31,194,108,249,125,137, 23, 43, 78, 13,143, 97,152, 77,242,123,110, 92,228, 92, 91,135,125,186,
- 92, 39,229, 65,118,232, 80,210,146,164, 18,218,212,133, 52, 84,183,145,114, 19, 55, 24, 32,150,214, 96, 90,230,226,226,215, 80,
-184,201, 35, 71,116, 10,181,160, 51,188,227,199, 17, 90,224,155,183, 67, 19,156,215,183, 16,114,168,202,128,231,196,227,128, 86,
- 50,217,235,186,203,125,227,204,207,147,172,124, 53,201,114,241, 75, 63, 43,127,129,216, 20,217, 55, 11, 4, 23,121,103,148,165,
-230, 40,194,161, 65,182, 71, 55,101,204,128,204,155,163,205,173, 82,110, 76,176, 16,141,228,164,148, 0,184, 73, 57, 69,208,204,
-203,119,207, 24,121,143,196,112,163,142,134,120,126, 33, 36,233,161, 32, 87, 6,147, 83, 78,156, 28,139,240,230,151,134,154, 86,
-131, 44, 77,105,211,211,210,135,242,255, 0, 50,171, 44, 11,183, 39,227, 50,189, 61,242,219,153, 79, 9,218,173,242,185, 90,221,
- 2,243,139,191, 7, 25,188,223, 47,247, 76,114,213,110, 98, 75,183,184,235,185, 57,120,184, 65,142,168,142, 71,100,163,203,144,
-149,188, 89, 40, 90, 67,214,242, 43,222,216,164, 23, 17,232,148,157, 4,135,212,128,214,189,198,154, 77, 52,130,107, 83, 90,183,
- 10,212, 36,206,230, 1,112,208,106,220,242,195, 18, 7, 30, 63,122,182,220, 33,205,243,121,106,231,202,184,197,255, 0,143,111,
- 28,109,154,112,230, 97,101,195,115, 12,126,231,124,183,228,145,204,236,134,195,106,200,226, 59, 18,109,185,215, 25,125,181,219,
-111, 49,202,170, 18, 82,189,201,161,165, 77,111,118,218, 70,220,216,100,100,130, 70, 74,210,230,144, 8,192, 57,204, 53, 7, 44,
- 90,125, 73,228, 19,153,139,129, 20, 45, 52, 60,120, 3,247,166,111, 82, 89,131,184, 85,158,203,115, 74,228,219,152,158,213,226,
-200,246, 72,133,184,220, 59, 34,167, 46, 10,192,113,196, 2,134, 21, 41, 12,173,180, 60,186, 80,110, 72, 80, 43, 0,165,180,196,
-217,102, 26,242, 2,171,183, 14, 45,110, 10,154,113, 79, 53,163, 22,178, 95,114,156,138,241,154, 69,199,243,219,194,174,152, 45,
-131, 21, 48,227, 77,186,217, 33, 50, 34,174,239, 57,233,237,174, 75, 9,184,184,208, 91, 1,146,159,135,169,170,247,210,110,125,
-153,219,164,154,163, 32, 0, 49,207,213,235,251,168,154,182,232, 91,138, 28, 82, 76,247,212, 17,190,217,238, 12,224, 71, 34,195,
-242,159,225,178,152,180,101,185, 94, 96,246, 72,164,203,121, 1,191, 43, 99,237,184,136,198, 83,101,113,247, 52,164,129,230, 21,
- 15,218, 37,181, 36,237,229,207,161, 34,103,157, 97,164, 18,218, 82,163,239,236,227,146, 35,175,188, 96, 90, 48, 39,138,231,141,
-183,142,185,143, 32,201,166, 97,246, 94, 42,202, 87,146, 90,228,170, 29,242, 20,182, 60,245,218,230, 55,209,104, 34, 24,151,184,
- 37, 67,241,186,166,210, 71, 80,174,186,190, 59,114,137,145,137, 11,154, 26, 69, 65, 38,158,206, 42, 8, 91,188,184,180, 2, 79,
- 82,235,191,161,255, 0, 75,119,190, 25,131,127,206,249, 25,132, 39,145,114,149,174, 27,113, 63, 98,161,100,177,161, 64,132, 15,
- 37,110,165, 37,208,148, 36, 35,122,138, 82,128, 84, 74,214,179,172,251,153,119,182,238, 4, 69, 17,171, 6, 36,229, 83,240, 10,
-123,111,179, 48, 85,206,207,236, 31,181,116, 15, 85, 53, 38,178,149,232,122,141, 4, 22,104, 32,160,124,141,198,120, 95, 43, 99,
-114,177, 76,230,199, 18,247,105,146, 9, 74, 95, 78,217, 48,223,161, 1,232,238,166,142, 48,226,107,209,104, 80, 58,175,243, 55,
- 43,109,252,227,104,251, 29,202, 22,203, 11,184, 28,193,233,105, 24,181,195,131,154, 65, 29, 42,195,203, 28,213,184,114,109,219,
- 47,182,201,221, 20,205,226,220,136,232,112, 53, 14,105,226,215, 2, 15, 66,230,166, 91,249, 95,219, 31,156,227,216,103, 35, 77,
-182,192, 90,148,164, 66,188,218, 81,117,117,148,158,201, 14,161,248,164,211,222, 14,188,165,188,254,141,118,219,169, 75,172,119,
- 9, 97, 97,252, 47,140, 75, 78,194, 31, 25,246,215,181,122,207,100,253,104,238, 86,145, 6, 95,237,209, 76,241,248,153, 35,162,
-175,104, 44,144,123, 40,165, 60,111,249,108,226, 24,253,198, 53,199, 55,200,100,101,134, 43,168,117, 48,131, 2, 13,181,213, 32,
-212,111,105, 43,113, 75, 21,253, 85, 44,131,226, 14,172,220,157,250, 78,216,121,122, 86,207,127, 44,151,111,105,168,107,128,100,
-117, 29, 44, 5,197,221,133,196, 30, 32,170,199, 57,254,173,247,254, 98,133,214,251,124, 81,217,177,194,133,205, 37,242, 80,231,
- 71,144,208,222,208,208, 71, 2, 23, 73, 44, 24,245,167, 25,182, 70,180, 89,161,179, 10, 12, 86,144,211, 76,176,216,109, 1, 45,
-128, 7, 65, 64, 40, 6,189, 71, 12, 44,183, 96,142, 48, 26,214,128, 0, 2,128, 1,144, 3,128, 11,202,211, 76,251,135,153, 36,
-113,115,156, 73, 36,154,146, 78,100,147,153, 41,235, 74, 36,214,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 10,130,122,182,
-227, 63, 84, 57, 87, 36,113, 12,254, 4,228, 43,238, 51,199,249, 99,172,241,231,168, 24,144,178,117, 89,228, 98,120, 69,178,237,
-111,201, 27,200,241,244,110, 74,152,185,204,141,108,159,141, 56,236,112,167, 54, 92,153,124,141,176,130,147,115,229,189,207,110,
-180,182,156, 94,196,215, 74,206,252, 61,218,234,121,107,153,161,253, 44, 5,205,148, 3,133, 99, 45,252,106,139,205, 59, 86,231,
-123,117,110,108, 38,115, 33,127,114,122, 58,133,172, 14,108,158, 36,125, 15, 33,175,132,145,141, 37,107,178, 98,231, 52,254, 30,
-252,212,110,183, 94,101, 98,231,201, 60,189, 18, 93,231, 58,198, 99, 71, 86, 51,146,216,236,184,142, 65,133,207,229,108,102,224,
-185,248,141,216,231,175, 92, 49,245,216,184,230, 45,198, 44,136,171,198,237,255, 0, 48,135, 22,218,132,201, 1, 14, 57,121,110,
-245,203,113, 54,223, 76, 49, 16, 35,119,204,215,151, 53,226,222, 65,166, 70,248, 33,175,215, 57, 97, 4, 75, 38,154, 3,220,109,
- 64,207,159,177,115, 76,206,185,215, 60,192,186, 70,142,235,152, 24,230, 27,168,221,170, 39,120,229,204, 44,183, 15,105,105,134,
- 45, 64,145,223,117, 9,157,243,167, 8,122,210,185,228, 30,163,120,255, 0, 2,135,206, 57,191, 26,100, 92, 77,138,219,248,203,
- 34,228, 30,102,182,181, 18,223,150,226,114,176,231,227, 91,236,172,175, 46,152,229,217, 19,205,190,224,237,194,117,254,213, 6,
- 80, 81,121,181, 75,158,204,148, 33,150, 59, 46,249,180,197, 29,156,247, 6, 22, 76,217, 92,100,107, 34,118, 45,112,148, 23, 56,
-248, 99, 77, 42,208,214,198,247,182,148, 33,145,150,146,231,251,246,193,188,205, 37,237,189,176,158, 72, 29, 11, 68,110,146,102,
-208, 57,166, 34, 26,193,226,146,224,237, 47, 47,116,172,141,245,212, 11,228,107,128,106,174, 96,193,191, 50, 89,185,183, 63, 47,
-142,167,242,147, 82,239, 88,207,169,182,240,188,134, 47, 41, 88, 45,156, 85,114,196,175,248, 36,216, 92,105, 99,197,172,202,185,
-177,113,176,228,118,172,205,112,164,205,187, 76,135, 29,186, 33,245, 25,206,182,234, 27,108,187, 70,225,203,241,195,106, 46, 4,
-116, 14,183,214,223, 13,230, 64,225, 48, 51,190, 71,105, 45,124, 78,139, 80,107, 26,231, 28, 90, 52, 2, 9, 39,222,182,222,100,
-150,123,195,108,101,171,155,115,161,222, 36, 98, 34,215, 64,225,110,200,217,168, 57,147, 54,109, 37,210, 57,173, 24, 56,248,132,
- 16, 5,174,244,245,109,245, 93,195, 24,167,170, 6,114,187, 71, 32,243, 87,240, 59,133,159, 37,244,225,143,102,252,147,106,188,
-229, 89,170,228, 96,152,243,247, 59, 73,190, 78,156,159,145, 97,121,216,185,199,109, 87, 39, 16, 26, 71,196,208, 49,252,173,213,
-189,234,125,183,120,150,204,198,232,225,212, 11,103,115, 24,224,214,126,115,195, 93,160, 12, 79,131,160,157, 0,212,231,222,170,
-181,108, 86,251,166,201, 13,240,145,178, 79,165,193,214,237,124,141, 46,127,228, 70, 92,221,101,221,209,227,235, 3, 89, 20, 25,
-119,104,190,102,112,239, 75,191,157,118, 19,234,195, 54,245,149, 47,210,206, 35,157,115,158, 99, 50,251, 37,219,191, 32,231, 88,
-118, 67,106,199, 23,124,216,209, 77,170, 59, 25,180, 81, 21, 49,109,237,136, 17,134,245, 6,227,213,164,208, 29,122, 31,113,230,
-158, 74,220, 54,168,246,127,173,145,150,204,166, 12,100,173, 46,211,143,120,152, 77,106,238,241,233,118, 43,204,187,103, 40,115,
-230,217,187,203,190,125, 4,114, 93, 73,171, 25, 36,133,193,186,176,238, 1, 48,165, 27,220, 29, 13,192, 46,153, 96, 92,245,252,
-194,151,220,166,197,143,101,254,157,120, 43, 8,197,174,178, 21,108,186,229,205, 57,142,204, 56,180,121,109,173,180, 79, 44,199,
-206, 46,111,186, 34, 56,164,184,164, 55, 13,210, 64, 32, 54,191,194,115,203,237,179,144, 45,225,115,224,187,184,145,224, 84, 54,
-146, 13, 84,252, 53, 48,180, 10,229,139,135,104, 90,110,223,186,249,143,115, 51, 35,184,179,182,142, 55, 26, 23,214, 51,166,191,
-138,130,119, 19, 67,141, 3, 93,216, 81,143,242,120,193,191, 51,204, 27, 43,231, 68,122,235,201,243,155,222, 41,117,184, 91,149,
-135, 64,228,156,245,142, 67,189, 35, 38,105,249, 38,124,171, 76,134, 38, 79, 16,109,171,100,182,148,199, 75,136,106,187, 75, 45,
- 36, 5,147, 21,230,198,229,203,119,237,181,254, 68,198, 7,128,117,150, 48,176,105,160,210, 28, 8, 21,125,107,141, 9,233, 39,
- 5, 47,228,222,213,205, 59,115,238,207, 48,200,247, 48,145,160, 73, 32,145,218,170,117, 22,144, 93,165,148,166, 21, 3,247, 64,
-197,119,145,118,203,123,138, 43,114, 27, 11, 82,186,149, 41,176, 73,214, 48,183, 85,194,143,205,243,209,231, 61,250,137,231, 79,
-203,179, 52,224,222, 53,254,247,226,252, 35,202,217, 86, 69,202,247, 38, 50, 75, 54, 63,253,216,179, 92,175, 24, 36,168,239, 22,
- 46,119, 24, 82, 38,239,143,102,154,173,177, 27,117, 67,101, 8, 5,104, 10,217,124,175,230,187, 14, 93,176,221,161,188,151, 67,
-231,133,173,140,105,123,181, 16,201,133, 42,214,144, 49,115,126, 98, 6, 61, 69, 97,190,109,242,118,229,204,251,142,205, 61,140,
- 58,227,183,157,206,148,234, 99,116,180,190, 2, 13, 28,230,151, 96,199, 96,208, 78, 29, 98,182, 11,243, 5,141,249,146,227, 49,
- 56, 55, 58,252,191, 17,130, 94, 25,194, 21,149, 43,149,184,187, 41,122, 35, 50,121, 16, 93,209, 9, 22,246,212,155,139,144, 97,
-170, 60, 32,204,133,172,181,112,142,248, 90,211,177, 74, 73, 82,117, 3,200, 46,229,215,139,136, 55,239, 17,186,195,124, 57, 26,
- 9,209, 74,234,249, 65, 53, 53, 25,181,205,160, 53, 3, 5, 98,243, 29,156,207, 25,182,184,229,223, 13,218, 11,188, 72,222, 64,
-241, 43, 77, 63, 49,104,160,161,201,237,117, 72,161, 56,174, 69,243,246, 13,249,208,254,104, 54,220, 91,130, 57,187,135,120,219,
-210,223, 5,177,147, 90,175,121,181,194,213, 53,149,170,251, 46,214,170,182,228,152,226,255, 0,123,186,207, 16,210,181, 59, 22,
- 35,105,101,133, 60, 18, 94,118,168, 66,218,212,246, 77,223,147,188,181,115,239,108,103,150,238,235, 73, 12, 4, 28, 43,208,116,
- 49,173,174, 78,113,212,224, 50, 24,144,114, 29,251,101,231,127, 52,219, 29,134,225,111, 13,157,166,160, 94, 65, 6,180,233, 2,
- 71,185,212,205,173, 26, 90, 93, 77, 78,192, 17,217, 60,143,209,188,174, 56,226, 31, 68,124, 85,195,152,201,186, 89, 56, 15,158,
-184,150,245,145,202,118,116, 56, 55, 8,152, 30, 27,102,200, 98,202,185, 73, 92,135,163,153,110, 42,117,197, 46, 56,211, 1, 75,
- 43,117,106, 67,116,221, 76,130,215,154, 62,186,227,114,187,189,125, 31,113, 4,128, 96, 72,214,247, 48,134,138, 3, 65, 70,208,
- 19, 65, 64, 1, 43,107,188,229, 31,229,246,219, 93,157,139, 43, 29,181,196, 68,154,128,116, 49,146, 2,227, 82, 42,106,234,144,
- 42,106,226, 64,205, 69,109,222,157,238,127,254,154,156,127,202, 60,119,233,116,240, 31,247, 51, 57,230,139,255, 0, 50,115,136,
-200, 49,165,167,212,158, 55,158, 91, 46, 81, 96,192, 67, 86, 91,180,204,130,127,157,123,155, 18,242,226, 47,176,227,166, 34,163,
-121,113,247,238, 7, 79, 37,223,154, 54,121, 45,103,189,241,203,217, 16,138, 45, 50,126, 67,152,230,146,238,243, 67, 5, 24, 29,
- 31,229,185,197,250,170,234, 81, 50,135,151, 92,119,184,174,237,236,126,156, 50, 73,157, 44,218,163,255, 0,112,215,181,193,173,
-163, 28,100,117, 94, 91, 33,241, 90,208,194,202, 54,181, 93, 90,159,102,181, 93,255, 0,133,174,237,109,133,112,114,205,113,143,
-121,181,174,100,100,190,171,109,222, 50, 28,109, 18, 88, 42, 4,180,226, 16,234,210, 22,154, 26, 40,142,196,235, 60,142,103, 69,
- 93, 36,138,138, 26,113, 29, 7,169,105,114,192,201,180,235, 0,233, 53, 21,224,122, 71, 94, 37,114, 75,157,125, 18,242, 6, 89,
-205, 92,229,200,152, 38, 45, 49, 24,142, 51,197, 62,140, 91,226, 78, 41,139,200, 3, 18,226, 78,121,127,129, 47,121,205,210,249,
-131,228, 22,104, 87, 24,236,150, 12, 57,150,214,109,210, 46,140, 8,204,190,242, 23,251, 86, 19, 45,163,169,236,156,227, 5,173,
-157,189,188,239, 26,221, 45,207,137, 38,141, 82, 69,227, 50, 38,178, 86, 56,180,154,212, 56,184, 48,234, 45, 4, 96,237, 37,100,
- 59,247, 35,220, 93,223, 93, 92,193, 25,240,219, 13,167,133, 24,126,152,166,240, 95, 51,159, 11,216, 28, 5, 40, 88, 24, 94, 52,
-135, 16,113,104,120, 67,235, 79,160,252,175, 46,231,171,246, 69,201, 30,157,113, 57,220, 73,118,202,127, 48, 76,186,223, 96,203,
- 78, 39,126,183, 91,110, 92,247,109,225,212, 99, 79,170,218,205,194,107, 77,202,157, 43, 29,189,165, 78,180,146, 89, 91,106, 91,
-139, 64,117,165,184,254, 94,118,138,214,197,177,219,221, 60, 78, 27,102,210, 91,226, 2, 68, 46,185,214, 53, 16, 48, 1,241,224,
-115, 4, 0, 13, 8, 17,240,242, 12,183,155,131,228,185,179, 97,183, 47,189,112,107,188, 55, 0,102,109,175,134,116,135, 30,241,
- 44,147, 17,145, 4,146, 42, 9,128,122,118,244, 57,234, 83, 15,190, 99,188,135,206,184, 91,153,230, 55, 9,143, 76, 56,166,111,
-192,121, 78, 89,141,221, 44, 87,152,210,120, 15, 0,227,172,231, 57, 76,196,220,221,143, 46,239,138, 95,109, 82,226,161, 51,100,
-132,174, 18, 46, 42,132, 28,118,100,119, 22,251,127,231, 61,186,237,143,183,178,147, 67,207,142,230, 76,214,188, 17,254,238,105,
-162,138,154,106, 25, 35, 28, 15,116, 96,243, 30,186, 6, 56, 8,254, 92,228, 93,206,206, 70, 92,223,199,226, 48,125, 59, 95, 11,
-157, 25, 7,253,148, 48, 77, 53,117, 16,100,141,237,115,123,198,133,130, 66,202,151,180,155, 45,249,119,241,164,220,194, 70,119,
-201, 60,149, 43, 23,228,251, 71, 13, 61,100,244,127,233,211, 54, 76,166, 50,251,126, 77,197, 94,153,175, 55, 23,226,102, 12, 74,
- 9, 92,101,220, 47, 23, 25, 81,154,155, 33,189,202, 76,155,104,216,179,183,122,171,188,251,184,139, 65, 29,189,184,116,110,154,
-183, 51, 55, 22,150,201, 59, 64, 49,145,158,150,180, 18,208,115,108,152,142, 10,205,229,206,216,235,195, 45,205,209,100,173,134,
-150,176, 62,161,193,209,219,189,196, 74, 14, 90,156,226, 3,136,196, 58, 44, 15, 19,213,155, 61,150,207,143, 91, 99, 89,172, 22,
-155,101,142,209, 8, 56,152,118,171, 60, 6,173,150,216,137,121,106,113, 97,166, 24, 66, 26,111,115,139, 82,142,212,138,146, 79,
-115,172,198, 89,159,112,226,249, 28, 92,227,153, 38,164,250,202,214, 33,129,150,205, 12,141,161,173, 25, 0, 0, 3,212, 19,150,
-147, 74,172,208, 65,102,130, 11, 52, 16, 89,160,130,205, 4, 22,104, 32,179, 65, 5,154, 8, 44,208, 65,102,130, 11, 52, 16, 89,
-160,130,205, 4, 22,104, 32,134,124,167,195,252,125,205, 22,107, 6, 63,200,246, 22,242, 27, 70, 51,156,225,188,141,104,134,235,
-238, 48,219, 57, 86, 7, 53,185,246,231,151,229,169, 62,106, 18,251,116,113,165,213, 14, 32,169, 11, 5, 42, 35, 79,246,253,206,
-109,173,206,124, 14,210, 92,199, 48,255, 0,101,194,135,246, 28,193,197, 37, 44, 45,156, 0,225, 90, 16,125, 97, 10,237,254,141,
-125, 58, 91,101,226,210,227,241,228, 37,156, 55,148, 57, 67,152,108, 49,165, 76,126, 93,190, 54,111,204, 49,230,197,190, 58,184,
-238, 56,166, 93,101,230, 39, 41, 12,198, 82, 75,109,108,107,203, 74,124,180, 82, 65,252,207,122,240,240,100, 61,232,217, 25,202,
-186, 99, 32,183, 30,154,140, 78,102,166,185,164,133,148, 98,152,100, 73,245,156,211, 67,126,134,253, 52, 55,141, 96,248,159,248,
-126, 29,179,113,223, 16,114, 39, 6, 98,237,200,188,204,145, 42, 47, 29,242,163, 76,181,122,142,235,235,121, 78,190,244,148,180,
- 74,100,184, 75,136, 43,112,161, 64,184,170,168,121,178,252,190, 73, 60, 78,243,229,100,142,192,124,236,249, 77, 56, 1,209,145,
-160,174, 72,191, 67, 21, 0,166, 1,164, 14,195,154, 89,126,244,107,195, 23,216,152,132, 52,185,201, 24,234, 56,250, 70, 59, 35,
- 2,127, 12,229,140,135, 14,155,132,171, 24,198, 94,196, 35, 34,210,253,186,225, 29,219,123,107,176,190,227, 15,182,202,146,151,
- 74,148,167, 2,148,165, 18, 88,121,158,234, 18,243,249,110,215, 93, 90,152,199,106,171,252, 67,168, 16,107,222, 21, 21,203,130,
-235,172,152,234,102, 41,149, 9, 20,160,166, 30,165, 25,181,254, 95,254,153,177,199, 17, 47, 11,198,243, 30, 62,188,176,251, 78,
- 68,201,248,251,148,242, 92, 43, 46,137, 28,216,172,248,236,152,194,235,110,186, 49,112,113,155,133,186,195, 5, 83, 16,235,170,
-243, 95,105, 50,151, 89, 3,205,211,137, 57,202,254,124, 37,115, 94,222,135,177,142,111,204,231,131,164,180,138,130,231, 82,131,
- 0,116,142,238, 8,163,111,137,191, 40, 32,244,130, 65,200, 15,184,125,185,167,153, 94,134,253, 54,206,194,109,156,119, 59, 11,
-185,206,196,108,247,222, 84,201,109,246,233,185,141,222, 92,166,111,124,202,101,170,247, 36,205,114,106,167,173,197,185, 53,199,
- 35,186,167,138,217, 94,213,182,160,180,133, 4,155,205,151,204,148,206, 30, 3,200, 96, 36, 53,185, 71, 77, 34,148,165, 48,196,
- 82,132, 96,112, 93, 54, 17, 22,233, 35, 10,147,153,227,154,108,143,232, 63,129,161,220,238, 89, 28, 41,124,205, 7, 52,189, 92,
- 46, 83,239, 92,135, 3,212, 14,107, 3,145,111, 40,189,219,108,214,153,209,101, 95, 25,190, 34,228,252,105, 81, 49,235,117, 99,
-173,226,134,212,195,106,100, 54, 80,154, 29,220,221,120,230,134, 17, 17, 96, 0, 6, 24,163, 44, 20, 46,112, 33,186,104, 8, 46,
-118, 52,169,169,173, 87, 5,132, 96,215,189, 94,157, 70,188, 6,117,234, 9,253, 30,139,120, 9, 24,181,235, 9, 22, 60,167,251,
-173,125,153,146, 93,228,218, 7, 34, 95, 80,220, 76,139, 38,202, 27,204, 92,187,197,117, 55, 1, 34, 53,194, 38, 66,210, 36,196,
-156,219,129,230,105,181, 11, 9, 36, 20, 79, 52,222, 25, 27, 46,166,235, 0, 10,232,110, 65,158, 30,147,133, 11, 75, 48, 45,200,
-241, 8,223, 67, 29, 11,104,105,218,122,107, 94,218,241, 81,123,151,161,126, 20,131,133,114,253,147, 14,199, 91, 86, 79,203,248,
- 1,195,114,123,255, 0, 34,228,121, 14,112,156,150,100, 75,181,223, 32,139,112,187,190, 47, 81, 47, 18,100,166,245,122,145, 33,
- 82,216,156,211,233,253,154, 91,113, 41,101,180,165,195, 57,182,233,242,194,249, 93,221,137,250,154, 24, 24,218,119, 90,210, 26,
- 52,150,129,165,160, 80,180,140,234, 49, 40,134,193,129,174, 13, 24,184, 80,214,167,137, 56,227, 92,207, 74,146,250, 82,244,223,
-119,244,247,106,228,201, 89, 94,123, 51,145, 51,110, 89,207,218,206,242,123,212,137, 55,121,177,226, 42,221,103,181,216,225, 68,
-102, 69,254,241,126,188,202,242,161, 90,155, 82,221,147, 57, 95, 18,138, 91, 67, 77, 37,182,210,135, 48,239,141,222, 93, 16,142,
- 48,200,227,102,150,142,239, 23, 23, 19, 70,181,173, 24,187, 32,222,210, 77, 74, 61,165,177,183, 14,169,169, 38,188,122, 41,196,
-147,195,165, 90, 27,149,174,221,120,136,228, 11,172, 24,183, 8, 79, 83,204,141, 45,148,190,210,136,236,104,160,104, 71,129, 29,
- 71,134,160, 35,145,209, 29, 77, 36, 20,232,128,236, 10,230,223, 59,122, 71,228, 23,178,197, 95, 56,121, 86,235,134, 55,114,105,
-189,216,165,208, 52,149, 98,210, 90, 7,122, 33,186,253,194, 18, 76, 87,148,124,196,180, 74,138, 22, 84, 5, 16, 82, 5,195,104,
-223,217, 20,122, 38, 52, 61, 52, 38,190,206, 42, 46,234,205,206, 53,102, 42, 37,197,254,138,121, 18,243,150, 65,157,204,102, 5,
-187, 24,180, 62,137,205,218,237,110, 71,221, 53,246,255, 0, 10, 64,102,116,245, 21,215,179,170,113, 33, 2,165, 8,223, 69,135,
- 23,220,201, 19, 25,249, 71, 83,248, 96, 64, 29,120,231,212,137, 13,139,137,239,138, 5,213, 88,112,161,219,227,181, 18, 12,102,
- 98,198, 97,166, 88,105,150, 27, 13,161, 13, 48,144,132, 39,167,245, 80,144, 7,187, 84,103, 60,188,212,154,149, 46, 5, 50, 74,
-180, 85,213,154, 8, 47,231,159,125,254,109,127,204, 38,218,132,252,175, 12,250, 45,113,213, 16, 18,151,184,243, 57, 80,169,255,
- 0, 87,145, 83,170, 37,175, 50,221, 76,123,205,101, 59, 15,241, 42,149,190,249,113, 41,197,172,246, 31,138,178,156, 11,252,201,
-191,153, 47, 42,204,105,220,131,134,253, 26, 89,172,107,107,204, 84,184,152, 6,107, 25,226, 61,160,189,200,111, 36,123,170, 53,
- 76,230,175, 52,231,217, 6,152, 25, 27,228,174, 68, 56,253,142, 10, 23,117,231,105, 44,123,177,181,174,119, 69, 15,220, 85,160,
-191,255, 0, 48,135,169,188, 57,149, 77,202, 44, 62,150, 26,132,132,130,161, 3, 2,203, 28,127,119,210,188,216, 32, 83, 80,155,
-127,154, 28,195,184,182,177,216,197,235, 15, 31,252,229, 39,107,205, 91,173,200,168,182,111,191,248,148,115,255, 0,185, 79,153,
-221,130, 39,193,195,253, 62, 79,142, 80,165,249,172,225,217, 34, 82, 2, 5, 77, 64,203,214, 70,173,150,123,239, 53, 94, 13, 95,
- 79,108,209,214, 36,255, 0, 80, 41,219,123,173,226,224,106,240,162, 3,172, 59,248,144,194,209,252,208,254,162,242, 27,180,219,
-125,159,137,120, 5,230, 97,184,166,204,149,226, 57, 62,213,169, 61, 59,255, 0,123, 82, 53, 51,105,127,204, 51,154, 57,182,163,
-251,175,255, 0, 85, 61,181,126,229,112,234, 31, 4,122,157,252, 73,246, 95,243, 44,122,178, 97,123, 90,226, 47, 78,100,120,111,
-196,242,114,126,236,196,106,110, 23,110,239, 29,227,111,254, 23,255, 0,168,165,197,173,232,204,197,236,119,241, 38,213,255, 0,
- 50,247,171,227,248, 56,147,211, 74, 61,238, 97,217, 74,255, 0, 70,106,157, 58, 31,205, 56,248, 7,212,239,226, 40,255, 0, 77,
-118, 51, 49,251, 15,197, 37,115,249,151, 61,101,144,124,158, 44,244,184,147, 78,158,118, 15,151, 40, 87,253,156,220,105,120,223,
-124, 15,125,177,250,171,241, 74, 8,110, 6, 97,190,164,208,191,230, 92,245,210, 20, 66, 56,163,210, 89, 79,133,112, 76,198,167,
-255, 0,235,205, 75,178,164,119,179, 79,217,108, 8,198,181, 75,225,255, 0, 50, 63,175,153,230,145,184,139,210, 90,207,255, 0,
-200,185,135,255, 0, 30,104,175,149,172,204,165,155, 99,175, 42,173, 82, 63,153, 55,215,180, 87,204,103,184,139,210, 98, 93, 31,
-171,253,196,204,127,248,243, 70,107,218,225, 90,174, 27, 16, 13, 49, 73, 87,252,203, 94,187, 91, 59, 92,226,111, 73,105, 35,195,
-251,137,152,255, 0,241,230,140, 40,236,151, 62,144, 12,234,158,173,191,204,117,235,246,234,141,241,120,139,210, 82,144, 63,173,
-130,230, 63,252,121,164, 37,184,100, 57,165, 25, 96, 36,200,148,154,233,252,200, 62,189,237, 74, 31, 55,196, 62,145,193, 62, 35,
- 4,204, 9,255, 0,223,205, 8,167,108,217, 32,253,188, 51, 50, 83, 49,254,101,207, 93, 68,215,252, 36,244,145, 95,105,192,243,
- 2,127,247,243, 78, 40,147,250, 70,244,149,176,255, 0, 50,223,174,115,180,142, 37,244,146,162, 77, 41,253,195,204, 43,245,127,
-235,230,138, 42,141,244,109,233, 41, 83,127,204,179,235,125, 43, 2, 71, 17,250, 83, 66, 8,248,138,112, 76,189, 39,255, 0,126,
- 78,136, 73, 57, 81, 27,232,216, 51,175,167,169, 36,151,252,203,126,183,210,163,242,188, 73,233, 41, 73,246,189,128,229,228,253,
-217,216,209,154, 15, 20, 87, 89,179,129, 41,189,175,230, 94,245,226, 74,247,113, 7,164, 21, 80,157,133, 24, 14, 98,158,158,250,
-231,135, 74,119, 82,102,207, 28, 10, 84,223,243, 47,122,233, 73, 5, 92, 73,233, 25,178,127, 17, 70, 7,152,143,255, 0,191, 52,
- 83,212,148, 22, 77,226, 74,214,239,243, 53,122,231, 65,162,120,167,210, 73,240,235,130,102, 63,252,121,162,174,253, 19, 58, 74,
-144, 74,254,100,111, 93,195, 27,153,120,143,197,126,145, 95,151, 25,131, 37,184,202,192,243, 5, 33,104,110,133, 98,159,223,208,
-170,237,173, 58,234, 15,113,220,165,182,107,140, 64, 84, 14, 32,159,176,133, 98,216,121,126,214,254,230, 56,238, 28,240,199, 56,
- 3,164,128,113,235, 45, 35,220,148, 91,127,153, 51,214,229,198,217, 30,106,120,175,210,141, 29,105, 11, 90, 6, 13,151,209, 27,
-197,123,127,126, 73,167, 93,102,247, 30, 97, 95, 67,148,113,123, 29,252,107,210,214,159,167,157,142,229,186,188,123,175,241,199,
-254,138,210,255, 0,243, 34,250,222, 98,133,142, 38,244,150, 22,180,133, 2,172, 19, 46, 34,191, 86,116, 60,116,132, 94,100,223,
- 63, 54, 69,236,119,241,165,157,250,115,217, 7,253,123,175,241,197,254,138, 68,207,243, 42,122,236,120,236, 60, 77,233, 47,117,
-105,255, 0,113,115, 10, 5,127,237,230,164,163,231,219,183,225,162, 63, 99,191,137, 23,255, 0,183, 61,151,255, 0,126,235,252,
-113,255, 0,164,159,237,127,204,119,235,154, 99,168, 75,220, 79,233, 61, 53, 35,113,107, 6,203,130,169,223,161, 57,209,211,248,
-121,202,234, 65,139, 35,246, 59,248,146, 50,254,157,246,102,127,214,186,255, 0, 28,127,233, 45, 87,175,230, 71,245,195,110,102,
- 66,217,226,175, 74, 74, 91, 96,148,121,184, 62, 94,180,138, 2, 78,237,185,202, 79,134,158,142,105,185,253,214,123, 15,241, 40,
-185,252,134,218, 34, 4,137,174,127,197, 31,250, 72,233,108,252,253,253, 99,189,197,150,220,226,225,198,190,153,209,115,155, 15,
-230, 22,212,124, 67, 41, 77,181, 46,239,219, 64,133,102, 42,114,148, 32,254,240,234,171,185,249,139,125,102,242,214, 71, 17,237,
- 14,254, 48,156,108,222, 64,236,219,140,166, 55,205,116, 0,232,116,125, 31,255, 0, 17, 81,188, 35,249,134,253, 95,101, 31,198,
-155,147,198, 62,154,132,139,108, 73, 18, 89,110, 22, 33,148, 36,172,178,146,164,133, 5,230, 75, 39,121, 27, 69, 8,235,164, 32,
-243, 31,112,149,236,105,100, 32, 56,129, 93, 47,233,254,218,152,187,253, 58,108, 22,241,200,241, 61,225, 45,105, 52,215, 22, 52,
- 4,255, 0,236,241, 85,234,119,243, 48,122,244,108,191, 22, 71, 15,122, 68, 90, 79,152,195,236, 61,129,102, 46, 37, 73, 53, 74,
-144,160,115,218, 43,167, 66, 8,214,213, 12,222, 32, 14, 7,214,188,147,119,179, 54,221,206,141,218,129, 6,132, 26,123, 14, 9,
-174,217,252,204,190,183, 45, 16,226, 90,224,240,159,164, 11,109,182,223, 29,152,112,109,246,206, 61,203,160,193,133, 14, 58, 66,
- 91,105,150, 81,157, 6,218, 66, 18, 0, 74, 82, 0, 3,160,210,242, 61,242,146,231, 26,147,137, 39, 18, 79, 90, 99, 30,221, 20,
- 45, 12,104,163, 64,160, 2,128, 1,212, 40,158,191,251,157, 61,108,237,175,248, 71,233, 81, 38,158, 56, 78, 92, 69,127,246,228,
-105, 46,247, 82, 87,232,163,235,247,124, 22,148,255, 0, 51,127,174,103, 77, 26,226,111, 73,125,251,171, 5,204, 79,232,207, 52,
- 9, 33, 24,109,236, 60, 79,167,169, 54, 92,255, 0,153,207,215,226, 95,137,109,178,240,239,164, 89,183,105,210, 89,142,203, 14,
- 96,121,153,109,180,188,105,189, 84,207,146,104,158,253,245, 92,222,249,142, 61,161,142, 56, 23,142, 10,255, 0,201,222, 89,201,
-205, 51, 48, 29,109,136,156, 92, 41,238,194,138,209,179,252,193,158,176,173,152,252,121,185, 47, 30,250, 95,254, 44, 98,165,233,
-109,219,112,204,170, 60, 38,220,219, 82, 18,151,115, 87,151,223,218,173,101,211,121,159,184,135,105,142, 56,115,253,215,255, 0,
- 26,244,116, 31,166, 93,135,195,213, 45,197,221,105,193,241, 15,182, 18,170, 47, 40,127, 52,207,173,220, 78, 67, 80,113,142, 34,
-244,151, 62,108,151, 10, 24,110,229,132,102, 47, 4,160,119, 90,195, 89,219, 6,128,106,217,179,115,109,245,243,117, 76,200,128,
-234, 14,251,220, 86,101,205, 30, 80,236,187, 92,162, 43, 73,110, 92,127,172,232,207,217, 16, 81, 8,159,205, 61,249,138, 72,105,
- 11, 60, 51,232,200,173, 67,174,206, 59,206, 2,106, 7,191,145, 73,212,193,230, 73,135,225,111,176,252, 84, 99, 60,162,177,112,
-255, 0, 50,106,255, 0,105,159,192,157,160,255, 0, 52,119,230, 31, 36,213,206, 30,244,104,148,127,163,199,153,184,251,207, 33,
-157, 32,254,105,153,163, 6,179,216,126, 41,220, 94, 77, 88, 63, 57, 39,255, 0, 19, 63,129, 77, 97,127, 51,135,175,121, 44,135,
- 23,196,190,144,129, 0, 21, 4, 96, 57,152, 6,190,202,231,231, 76, 31,206, 87, 13,252, 44,246, 59,248,148,132,126, 72,237,142,
-206, 91,143,241, 51,253, 52,228,207,243, 50,122,245,112,252, 92, 71,233, 30,157, 43,179, 2,204,171,244, 1,253,254,235,162, 14,
-116,185, 63,134, 63, 99,191,137, 58, 30, 70,109, 92,101,184,255, 0, 20,127,233,167,102, 63,153, 91,215, 99,160, 21,113, 71,164,
-177, 83, 77,169,193,115, 16,160,126,188,239, 65,220,235,114,223,193, 31,177,223,196,148, 30, 69,109, 63,251,215, 63,226,143,253,
- 36,205,115,254,102,175, 93,176,221, 12,177,196,190,146,157, 90,148,132, 37, 10,192,243, 21,173,110, 44,208, 0, 6,122, 59,158,
-154, 69,220,239,118, 50,100,126,199,127, 18,227,252,140,217,216, 43,227, 92,255, 0,138, 63,244,148,186, 55,243, 39,250,216,110,
- 35, 6,229,198,126,147,126,124,160, 42, 75, 80,112,108,193,113,219, 81,235,181, 42, 57,210,137,167,109, 90,118,221,206,246,233,
-186,165,107, 5,122, 1,251,220,178, 30,100,229,141,171,108,148,197,106,249,156, 70,101,206, 97, 30,170, 48, 36, 83, 63,153,131,
-214,147, 40, 42, 99,137,253, 46, 46,149,248,149,130,229,202, 79,221,156,131,169,166, 79, 33,207, 79,191,226,170, 46,218,162, 25,
- 23,123,190, 10, 29, 43,249,157,253,118,161,194,152,252, 75,233, 29, 73, 29,188,220, 7, 50,221,245,211, 62, 26,118,215, 19,154,
- 65,219,116, 99, 34,125,223, 4,147,255, 0,185,243,215,178,127, 23, 16,250, 66, 34,190, 24, 38,102,147, 79,253,190, 58,237, 79,
- 4, 95,229,236,233, 62,239,130,222,239,243, 62,250,236, 12,130,207, 16,250, 73, 83,255, 0,213, 86, 13,152,148, 87,232, 25,224,
- 63,126,147,212,250,227, 74,122,117,174,157,190, 62, 4,251,190, 9, 10,255, 0,154, 11,215,195,105, 59,248,115,210, 42, 87, 79,
-135,255, 0, 81, 51, 34,154,251,255, 0,245,251, 71, 14, 39,161, 23,249,123, 7, 19,238,248, 38,127,254,232,191,204, 29, 36,149,
-240,255, 0,163,141,128,254,175, 31,230,187,169,255, 0,212, 47,232,209,234,137,244, 45,233, 41, 59,255, 0,205, 51,235,241,160,
- 54,112,215,164, 5, 19,220,156, 11, 52,160, 63,253, 64,209, 14,174,165,199, 89,176,116,250,122,146, 23,127,154,123,243, 4,109,
- 11, 42,225,255, 0, 70,205, 40, 36,148,249,156,125,155, 41, 38,159, 71, 33,141, 19,196,113,224,131,108,152,238, 37, 71, 97,255,
- 0, 53,103,230, 63, 58, 74,152,143,194,126,139,150,132,168,130,239,248,119,156,132, 1,237,255, 0,230, 55, 93, 28,200, 26, 49,
- 73, 27,102,142, 37, 78, 90,254,104,255, 0, 95,108,199, 43,184,241, 47,163,159,152,167, 68, 70,192, 51, 84, 36,125, 59,185, 5,
- 71,239,211,115,114,120, 4,217,204, 3, 36,186,205,252,208,222,190,238, 43, 90,222,226, 31, 71,237,198, 74,168,149, 35, 2,205,
- 2,200,250,249, 0,143,187, 73,186,233,227,128, 69, 32, 5,190,245,252,209, 30,187, 45,204, 45,200,252, 79,233, 5,107, 2,163,
-205,192,243, 53, 38,191, 86,126,147,160,203,167,156,192, 92, 13,170, 5,228,127,205,175,249,132,217, 89,117,108,240,207,162,215,
- 28, 73, 33,176,239, 30,103, 37, 38,158,218,114, 50, 78,157, 70,247, 61, 40, 35,170, 23,185,252,224, 63,153,144, 63,178,224,207,
- 67, 4,120,110,227, 76,248,159,187,147, 70,156, 22,163,248, 33, 32, 99,249,193,255, 0, 51,215,100,249, 42,224,143, 66,161, 27,
-169, 81,198,124,128, 21, 79,254,167, 29, 34,237, 67, 42, 34, 24,148,150, 23,243,117,126,103, 82,158, 40, 87, 6,122, 24, 67, 96,
- 84, 31,240,207, 63,221, 95,254,166,255, 0, 70,147,241, 28, 5,112, 71,250,117, 52,143,252,217,223,153, 11,182,183,165, 57,194,
-254,136,211, 49,178,173,141,167,141,243,191, 40,128, 60, 65,228,157,221,253,250, 98,111,100,241, 52, 80, 83,215,241, 72,150, 16,
-104,156,155,254,108, 63,204,104,199,138,235,156, 45,232,168, 41,237,187,194,120,235, 58, 9, 21, 30, 21,228,115,168,217, 55,169,
-152, 93,131,112,234, 63, 20,207,197,117, 72,193, 59, 47,249,174,191, 48,196, 77,102, 55,248, 53,232,199, 98,218,222,181,127,135,
-153,198,224,125,223,255, 0,145,117, 20,121,158,228, 70, 95,165,153,244, 31,226, 92,100,206, 44, 46, 32, 39, 1,252,214, 31,152,
- 49,130,185,127,224,231,163, 93,201,150,219, 0,127,135,217,190,207, 45, 97,100,159,254, 97,214,191, 8,211, 63,249,133,222,170,
-105,142,148,232,119,241, 40,239,230, 82,107,211, 65, 79, 95,197,112, 55, 38,225,254, 24,197, 96,139,204,139,218,239, 10,136, 60,
-244,239, 88,216,162,223, 94,202, 87,244,107, 37,178,230, 13,202,253,254, 24,102,154,172,170, 61,214,238,119,120,109,109, 42,157,
- 56, 71,154,151,146, 77,185, 91,236,208,254, 94,207,106, 42,143, 16, 51, 64,133,121,100, 1,215,196,251,117,120,219,185, 2, 41,
- 72,150,225,213,118,102,170,235,178,114,131, 30, 68,179, 26,185, 23, 51, 70, 93,200,155, 45, 93,208,100, 49, 33,178, 11, 78, 85,
- 91,107,236,174,180,173,179,111,138,201,154, 24, 5, 22,139, 29,147,109,219,164,101,216,170,174, 99, 58, 79, 28, 89,102,217,161,
-188, 86, 46,238,169,171,123,100,252, 72, 14,154, 10,117,241,174,151,145,190, 8, 32,113, 76,231, 38,217,165,163,138, 37,113,174,
- 54,108, 88,228, 53,173, 39,231,102,160, 73,146,225, 31, 25, 83,157,122,253,186,115,107, 24,141,169,205,148, 62, 19,122,212,253,
-207, 48, 85,110,168,144, 7,115,167,173, 52, 79,170,181, 80,169, 53, 72,173,123,104,245, 93,205, 49,207,114,228,219,173, 38, 51,
- 37, 72, 43, 78,245, 83,245,116,180, 69,188, 82, 51,234, 35,187,154,242,137, 87,135,167,108, 84,112,136,200, 64,162,232,122,171,
-233,210,146,185,167, 36, 75, 70, 61,131,188,166,246,187,245,202,216, 82,166, 21, 66, 60, 59,118,211, 9,173,155, 54,106, 78, 57,
-139, 50, 83, 7,239,226,108, 63,157,117,166, 62,112, 83,184, 21, 58,101,244,197,174,211,141, 19,159, 23, 10,241, 67,187,212,153,
-210,246,187, 29, 8, 75,160,212,129, 78,191,163, 82, 86,237, 17,103,146, 97,113,170, 65,134,105, 92, 44,131, 33,138,202, 90,101,
- 95, 47,180, 10,237, 20,169, 26,117, 51, 34,148, 98, 20,108, 17,207, 11,171,171, 5,249, 42,117,198,225, 69, 77,125,110,171,223,
-237,211, 70, 68,216,242, 10, 88,188,187, 52,128,182, 71,134,148,170, 45, 23,182,247, 54,180,172, 38,187, 72, 52, 61,123,107,135,
- 16,186, 48, 79, 18,174,198, 67, 30, 87,202,182,131,180, 39,120, 29,116,221,144,104, 53,170, 85,210,106,194,137,132, 70,121,243,
- 70,208, 85, 83,210,157,186,233,103, 60, 55, 52,152,105, 43,114,173,210, 98, 81, 79,167, 98, 84, 43,208,131,162, 9, 4,153, 35,
-104, 45,205, 36,146,168,133,165, 4,173, 65,202,244, 21,208, 5,192,245, 33,164, 38,166,161,151,150, 55, 19, 66,104, 43,216,105,
- 71, 58,136, 53,168,173,106,197, 55,194, 74,220,187, 22,217, 91,100, 22,203,128, 13,170, 20, 34,158, 61, 53, 11, 61,192, 36,141,
- 42, 90,222, 18, 40, 65,201, 67,113,101, 61,108,151,124,197,159,116,188,109, 82,202, 33,185,187,119,204,193,148, 10,218, 82, 72,
-247,124, 63, 78,177,110, 98,178,250, 73, 92, 50, 7, 17,235, 94,215,242,239,125,254,115, 99, 27,142, 46, 3, 73,237, 10, 94,139,
-116,185, 9, 74,219,109,195,180, 43,117, 18,106, 19,210,158,234,234,163,168, 51,138,209,140,110,119, 5,231,248, 99,241, 31, 11,
- 91, 46, 33, 10, 59,208,178,159,129, 96,247, 0,246, 61,245, 49,107, 40,126, 73,118,194, 64,169, 82,187, 51,172,182, 73, 45,214,
-160,117, 63,171, 95,242,106,201,104, 52,140, 84,125,224,160, 81, 76,193, 94, 76, 89,234,223, 81,228,188, 84, 79,234, 13,166,191,
-113, 58,155, 96,195, 21, 83,191,120,210, 85,177,205,238,109,227, 62,158,112, 75,107,100, 7,166,219, 34, 73,117, 42, 85, 84, 67,
-232, 5, 66,155,186, 85, 73,175,252,218,206,247,134,137, 38, 61,169,215, 43, 3,227, 75, 39, 70, 10,149, 98, 25,181,206,221,126,
-125,187,124,199,162,166,229,178, 36,165,182,186, 81, 42, 95, 90, 80, 40,209, 61,232, 7,113,227,216,175, 13,184,210, 9, 25, 39,
-115,223,187,196, 32, 28,211,101,197,183,215, 50, 82,148,202,210, 84,243,132,165, 74, 11, 80,169,236, 72, 36, 87,219, 77,122, 11,
-111,120,240, 89, 78,128,188, 39,191,194,239,171,155, 86,122,207,218,153, 29,104, 2,119, 54, 71,213,169, 32,234,170,251,163, 33,
- 52,203, 74, 82, 13, 7,126,154, 53, 81, 52, 45,176,153,117, 13,173,240,211,138, 74, 1, 80,162,106, 10,135,187,199, 81,219,133,
-252,118, 49,151,200,224, 0, 83,123, 46,207, 54,241, 59, 96,129,165,206, 60, 2, 51,224,152,226, 45,205, 55,146,220,162,249,115,
-157, 11,121,130,234,119, 22, 5, 1, 1, 36,251,255, 0, 14,188,243,188,110,231,115,153,210, 87, 51,130,247,127, 43,114,219, 57,
-118,210, 43,112, 49,104,196,245,230,154,121, 23,145, 92, 68, 41, 73,113,103,178,201,248,232,128, 18, 60, 5,122,251,180,207,111,
-176, 51,188, 41, 61,251,122, 22, 80, 56,245, 42, 40,171,183,247,138,249, 46,238,247,198,208, 87,203,196, 77, 74,130, 91,111,186,
-170, 79,138,181,166,197, 8,180,140, 48, 44, 18, 41,206,225, 51,166,118, 53, 56, 34,141,176,178,152,205,138,124, 64,124, 64, 10,
-138, 42,148, 29,125,186, 70,103,112, 86,187, 88,197, 19,227, 78,179,230, 20,160,124, 41,248, 66, 69, 41, 81,246,118,212,108,239,
-210,165, 97,135, 82,156, 91, 92, 97, 45, 36, 18,181, 84, 36, 4, 10, 26,245,241, 36,254,141, 68,201, 34,149,138,220, 41, 69,189,
-165,203,144,134,211, 84, 2,160, 64, 71,226,218, 60, 41,212,159,171, 92,108,189, 37, 56, 48, 41,123,182,255, 0,144,130,251,202,
-108,182, 27, 71,195,184, 4, 56,189,195,191, 82,104, 15,188,232,237,146,169, 23,196, 66, 23,219,223,143, 34,100,219,132,147,230,
- 34, 48, 91, 17,219, 66,146, 74,228,175,241, 40,248, 0,129,208,120,214,186,154,216,246,231, 95, 76, 14, 52, 24,149,159,243,167,
- 48,199,179,219, 56, 18, 11,157,128, 31,106, 89, 2,240, 96, 23,118,199,105,208,162, 78,247, 0, 52, 10,214,172, 45, 69, 6, 37,
-121,106, 89,204,142, 46,235, 74, 93,202,157, 82, 20,129, 17,154, 40,117,248, 0,167,221,163, 11, 64, 78,105, 19,113,194,138, 31,
- 45,207,152,117, 78,236, 8,220,107,180,118,211,182, 13, 2,137,187,141, 82, 23, 18, 66, 73,218, 77, 5,122, 15,102,141,146, 37,
- 18, 38,139,175, 60, 16,211,110, 21, 31,195, 68,248,232,133,224,102,138,218,146,156, 37,197,187, 50,223,197, 17, 75, 74,147,208,
-211,174,146,214,210,112, 40,207, 14, 28, 20, 96,199,156,167, 84, 21, 25,212,162,132,212,166,131, 75, 9, 27, 76,210, 97,164,168,
-237,197,185, 45,172,182,128,126, 47,184,232,120,192,113, 72, 74,237, 9, 34,216,100,165, 31, 56,165, 56,164,212,237,211,105, 39,
- 35,229, 77,196,154,150,164,220,188,149,252,188, 80,136,137, 87,194, 84, 0, 11, 63, 94,145, 14, 46,205, 54,147, 58,149,181, 41,
-111,207, 73,121,229, 58, 15, 85, 2,170,143,211,161, 82,136,104, 6, 9,241,119,150, 32, 52, 91,105, 65, 40,219,218,160,104,186,
- 75,146, 96,113, 67, 44,167, 43, 1,167, 2, 29,168,165, 8, 10,255, 0, 62,150, 99, 40,142,209, 85, 92,175,243,220,188, 57,177,
- 10, 52, 66,137, 34,181,174,164, 34,109, 18,204, 9, 69,186,200,167, 91,108,173, 62,206,164,119,210,133,201, 74, 39, 1,106,141,
- 22, 82, 20,182,194,168, 65, 32, 10,233, 55,214,136, 28, 20,197,182,163, 7,153, 45, 49,177, 14, 38,159,134,132,157, 34,214,146,
- 49, 74,146, 28, 18,248,177, 92, 51, 87, 28,182,175, 37, 68,120,116, 58,106,248,168,234,164,220,197, 60,155, 17,166, 45,236, 4,
-163,226,110,135,168,234, 53, 94,186,182, 34,170, 52, 67, 82, 66,102, 13, 45,233, 75,146,107,181, 13,109,168,240,213,126,104, 67,
- 90, 25,210, 82, 83,197,161,148, 82, 65, 25, 31,221,231, 19,215,127,206,178,170,248,211,106,255, 0,167, 77, 62,152,106,201, 70,
-125, 40,213, 84, 27,206, 39,114, 46, 80,211,236, 65,199,111, 76, 90,155, 74,144,219,105,136,166,210,177, 79,125, 53,221,177,150,
-118, 36, 23, 72,210,238,213, 87,219,237,224,181, 32,185,192,185, 28,189, 31, 97,153,132,185,200,178, 53,111,145,107,126, 76,157,
-210, 36,207,104,178,195, 72, 90,250,146,163,211,160,247,233,222,249,205,118,155, 76,126, 35,223, 80, 56, 12,202,176,187,120,138,
-208, 84,185,118,122,221,195, 28,112,145, 28,102,121,188, 47, 61,182,193,121, 17,157, 82,130, 40, 5,106, 17, 64, 41,244,235, 44,
-159,205, 93,218,250,167,110,178,113,111, 2, 71,197, 69, 93,115,141,221,203,180,219, 66, 72,233,162,139,185,194,126,134,243,156,
-218, 26,110,188,141,243,115,172, 75, 65,122, 27, 97, 69, 9,113, 63, 75,222,239, 17,170,213,215, 59,115,189,209,252,171, 74,122,
-118, 36, 99,187,220,239, 92, 42,202, 34,221,239, 2,244,141, 25,230,161,218,111,238, 37,132,236,104, 58, 64, 9, 74, 83,211,254,
-211, 83,123,111, 48,115,201,102,169,109,197,122, 61, 2,120,251,173,221,166,141, 96,162,108,185,240,199,166,185,172, 39,248,102,
-126,218, 28,113, 53,218,226,137,165,126,135, 53, 39,105,206,252,221, 9,252,235, 42,142,175,232, 79, 27,121,186, 70, 42, 99, 7,
-216,161, 50, 61, 56, 96, 83,129, 70, 57,200,246,133,172, 18, 16,211,238,132,253, 29,201, 58,176, 65,230,142,229,109,255, 0,117,
- 96,255, 0, 80, 78,224,223,110, 27,254,108, 37, 15,114, 63, 78, 25,101,153, 42,118, 20,171, 69,233,154, 85, 42,135, 36, 37,106,
- 31, 65,232,117,107,218,188,209,177,190, 33,178, 53,241,158,176,166, 97,222, 98,126,117, 8, 51,119,197, 47, 54, 39, 60,171,165,
-177,248,106, 61, 18, 92, 69, 80,170,123, 20, 9, 7, 90, 5,142,231, 6,226, 53, 66,240,225,212,165,163,145,178, 10,131, 84,198,
-168, 43, 62, 20,250,180,254,169, 74, 44, 16, 28,253,111,179, 93,170,237, 23,164,193, 80, 61,127, 70,133, 80,162,219,242, 84,238,
- 62,209,174, 85, 26,137,238,213,142,162,226,162,149, 72,105,138, 10,141,253, 43,164, 38,156,197,194,169, 70, 71,175,138, 79, 38,
-194,244,103,214,128,148, 60,134,143, 85,160,244, 32,104,205,152, 56, 32, 99, 33,100,163, 13,113,210,210, 33,132, 58,145, 66,189,
-160, 87, 92,107, 28, 13,107,130,235,136, 35, 36,205,242, 97, 73,162, 81,241,123,105,223, 74,213, 16, 10,175,109, 69,117,186, 20,
- 40,167,223, 77, 21,192, 59, 53,209, 80,188, 74, 67,142,163,107,174,149, 80, 16, 1, 58, 0, 6,228,187,137, 81,225,110, 9, 93,
-127, 21, 79,179, 93, 47, 70,108,117, 79, 12,218,220, 85, 2, 91, 38,190, 0,117,211, 41,174,217, 16,171,141, 2,149,181,219, 36,
-185,112,107, 26, 73, 42,127, 97,193,175,119, 66,132,167,204,106, 49,161, 52,115,227, 8,246,132,159,208, 72,214,119,190,249,139,
- 97,182, 85,161,218,157,213,151,181,109, 92,171,228,142,235,188,129, 36,141,240,217,214,113,237,165, 62,218, 34,198, 51,194,136,
-106,232,155,155,233,110, 76,182,227,169,133,160,133, 36, 75,138, 14,224, 41, 95,133,104, 53,167,126,228, 84,142,167, 21,230,143,
- 48, 91,187, 16, 90, 40, 62,207,217,233,217,234, 30, 66,242,188,242,188,110, 4,212,156,250, 13, 56,246,255, 0, 69,120,155, 21,
-136,225, 88,244, 87, 25,118,100, 49,229, 37,196,135, 80,164,254,221, 45,168,208,168, 30,181, 40,173, 23,237, 73,175,113,172,230,
-239,124,145,245,210, 86,175, 14,208, 27, 67, 69,116, 56,251, 12,225,184,242,159,131,126,197,172,183,139,117,206, 39,154,228, 89,
-150,244,191, 5,255, 0, 34,161,218, 54, 73,218,162,217, 27,182, 16,126, 18,180,147,241,141, 65,157,250,237,148, 44,121, 4,113,
- 7, 17,233,233,193, 39,119,183,213,164, 54,129, 35,205,189, 38,250, 89,202, 91, 49,177, 59,133,195, 5,187,204, 36,192,113,169,
-230,108, 38,165,170,169, 76,119, 18,189,222, 96, 74,146,160,138,144,107,240,149,255, 0, 86,219,180,249,139,184, 89, 56,120,192,
- 61,163, 60, 61, 61, 56, 42,197,198,202,233,154, 73,104,245, 97,135, 74,160,156,205,232, 15,151,236, 18,157,115, 30,151,106,205,
- 49, 9,234,105, 48,239,182, 57, 5,242, 23, 32,169, 37,167,218, 80, 11,105, 69, 32,148,146, 40,106, 5,119,116,214,165,182,249,
-153, 99,117, 21, 93, 86,201, 67, 86,159,184,170, 38,225,203,210,185,250, 70, 93,120, 21,239,145, 48, 27,134, 83, 27, 22,198, 31,
-109, 81, 89,179, 91, 99, 70,144,133, 36,130, 3, 8, 75, 97, 32,127,164,170,147,244,123,245, 74,189,230,127, 26, 71, 61,190,165,
-109,217,121,108, 88, 64,117, 28, 92,106, 87,188, 11,208,213,195, 40,150,212,171,108,168,113, 79,206,195, 97,191,152,123, 98, 10,
- 10,201, 82,197,105,184, 23, 9, 29,125,157,233, 93, 55,127, 59,253, 40,239,130,146,119, 47,196,247,212, 20,219,206,126,140,249,
- 23,138,174,119,185, 44,219,157,190,226,208,231, 76,139, 18,253,110,105, 82, 35,203,249, 34, 3,203,232, 9, 74, 27,221, 82,163,
-211,111,197,219,174,183, 94, 74,243, 30,203,125,138, 56,195,192,146,153, 31, 96,245,159,183, 5,229,158,126,242,166,247,111,146,
- 75,216,218, 93, 19,168,225,210, 42, 42,106, 56, 1,143,168,118,170, 97, 46,206, 82, 72, 83, 99,217,213, 58,213, 35,184,170,195,
-103,178, 45,224,154, 17,100, 75,175,182,143, 35,121, 90,194, 82,157,181,169, 39,166,148,124,224, 3, 82,154,178,204,185,192, 1,
-138, 56, 96, 60,116,111, 55, 40,232,184,199, 16,217,131, 33,135, 99,165, 73,162, 95, 88, 39,169, 29,148,146, 18, 64,247,251,181,
-231,175, 49,121,183,199,151,233,161,117, 88, 7,123,172,254,197,236,255, 0, 37, 60,188,254, 83,104,111,238,152, 4,206, 61,218,
-230,214,255, 0,250,190,197, 99,243, 76, 6, 26,177,230, 33,199, 97,182, 86,134,218, 88, 90, 17, 64,150,138,136, 7,220, 3, 97,
- 68,125, 90,204,173,119, 34,215, 98, 86,181,113, 30,183, 26, 5,204,174,116,192, 50, 6, 87, 62, 12, 38, 94, 75, 40,110, 75,242,
- 94,234,118, 48,135, 22,158,226,148,220,148,159,163, 90,159, 42,110, 81, 74,224,231, 28,120, 44,179,159,246,201,228,143, 75, 62,
- 92,202,169,246,239,150,182, 4,196,117, 62, 82,218, 3,122, 85,240,236,236, 64, 85,125,254,221,104,210, 48, 73,136,197,101, 54,
-146, 11,110,233,194,138,109, 18,246,218,209,229,182,226, 85,187,104,248, 71, 65, 78,221,123,157, 48,145,133,185,171, 69,165,232,
-118, 1, 76,173,155,156,216,163,214,189, 70,161,110,159,161, 90,172,206,170, 34, 85,146, 11,178, 54,165, 38,128, 83,169, 77, 58,
-234,189,113, 53, 21,134,222, 42,163,101,134,209, 26, 43, 33,233, 43,109,149, 52,157,235, 93, 70,224, 71, 80,145,253, 99,166, 76,
-144,202,104, 19,231, 48, 70, 49, 67, 60,243, 55, 76,217, 12,216,173,142,132,186,226,188,183,131, 41,222,227,108, 2, 42,181, 40,
-168,144, 64,232, 43,227,171, 30,223, 99, 37,217, 12, 0,170,103, 49,239,176,237, 49,185,238,112,193,107,133, 30,197, 18, 28,118,
- 16,211,129, 40, 72,221,186,170, 82,148,123,146, 64, 64, 36,251,128,214,175,181,237,174,176,140, 53,180,175, 19, 69,228,254,101,
-230, 19,190, 78, 94,250,233,224, 43,128, 29,130,139, 85,210, 44, 16,132,185, 13,218,131, 66, 81, 79,195,247,234,110, 18,225,154,
-170, 72,107,146,104,143, 29, 47, 60,150,214,176,128,163,248,143, 77, 41, 35,180,138,128,147,107,117, 26, 41,252, 28, 42, 35,136,
- 75,138,125, 14,238,161, 9, 73,175,125, 69,201,126,236,168,158, 50,220,113, 75,213, 97,130,195,162, 48,138,149, 5, 39,169, 35,
-195, 76,221,112,247, 28,209,131, 3, 77, 40,181, 59,109,131,109,109, 79, 38, 59, 41, 40, 4,133, 20,128, 70,186, 30,233, 48, 70,
- 49,181,138, 25,120,203,162, 68,109, 33,213, 54,106, 79,195, 65, 93, 46,216,201, 77,165,153,172, 24,161,205,199, 47, 51,194,211,
- 28,182,203, 96,145, 93,160, 18, 52,225,177, 81, 66,207,124, 92,104,213, 17,155,112,101, 41,243, 3,129,107, 31,138,186, 55,134,
- 83, 93,117,205, 66,111, 89, 11, 41,111,112, 90, 80,186,116,167,252,250, 81,177, 81,115, 82,128, 73,201, 28,125, 73, 66, 22, 60,
-202,138, 40,120,105,118,178,137, 55, 26,175,207,239, 27,209,255, 0,122,250,138,169,226,107,253, 58, 4,116, 34, 1, 84,130, 94,
- 94,167,155,242,131,191, 26,190, 17, 95,249,244, 82, 52,174,181,152,168,125,209,115, 93, 9,234,165,133,158,165, 38,162,135, 66,
- 41, 26,243,154, 81,178, 2,104,189, 91,241,245, 22,156,121, 72,161, 34,181, 34,189,180,169,184, 13,112, 0,165, 91, 78,149, 35,
-132,218, 85, 31,201,252, 46, 50,170, 36,210,155,169,254,109, 51,150, 99, 12,195,247, 74,111, 35,203, 30, 58, 10,114,135,111, 43,
-123,115,237,215,226,233, 81, 94,218,127, 28,173,144, 96,156,196,225, 34, 34,179,101, 98, 83, 45,108,109, 41, 91,100, 17,211, 69,
-145,225,153,148,187,232,208,165,113,172, 40,253,155,138,105, 33,105, 3,174,222,166,154, 32, 58,133, 81,218,202,133,249,114,182,
-121,196, 48,221, 20,178, 63, 8,234, 1,211, 57,195, 31,135, 20,147,154,218,225,154,111,143,143, 63, 30, 11,203,148,146,133, 45,
-195,180, 40, 16, 72, 30,205, 85, 36, 96,117,206,158,128,154, 73, 21,115, 94, 5,186,111,203,169,205,139,249, 80,250, 27,174,223,
-135,168, 87, 95,187, 78,190,145,180,175, 26,161,224, 54,139,162, 56, 71, 16,112, 46, 79, 0,198,155,205,140,187, 41,180, 85,245,
-198,183,209,148,158,189,212, 94,254,141,121, 67,116,230, 93,222,197,245,101,150, 7,164,254,197,130,201, 53,213,191,120,197,130,
- 62,225,126,158,120,159,228, 91,103, 17,229, 8,171,218,229, 23, 49, 37, 81,150,229, 9,247, 44, 18,125,186,142,119, 52,223,195,
- 40,154,246,208,150,116,102,152, 51,114,158, 9, 68,179, 66, 75,122, 20,231, 45,244,189,117,151,142,205,111, 18,200,173,183, 57,
-206, 68,113,184,254,100,212, 62,226,220, 88,160, 52,220,149, 87,234,214,133,180,121,231,101,111,220,150,221,204, 3,160, 81,104,
- 54,126, 98,219, 22,232, 49,105, 84,223,135, 61, 5,243,102, 13,112,203, 50,220,182,206,151, 23,113,157, 33,216,174,180,149,130,
-166, 73, 33, 52, 11, 3,245, 71,129,213,150, 31, 62,246, 73,165, 17,181,228, 18,157,199,206, 54,208, 59, 83,178, 42, 71,149,224,
-185, 5,148,185, 26,101,178, 99, 11, 21, 9, 90,152, 90, 19, 81,236, 52,166,181,157,147,154,108,183,166,135, 65, 43, 79, 85, 69,
- 85,206,195,116,131,113,104, 49, 56, 20, 61, 16,110,241, 26, 63, 51, 25,221,169, 38,138,218, 72,166,172,236,145,175,200,169,102,
-176,140,210, 38,100, 72,101,210,224, 82,219,169,238,133, 20,145,250, 52,185,140, 63, 48,187,160, 21, 44,181,101,247,216,207, 6,
-225,221, 46, 45,109,165, 41, 41,106, 71,216, 73, 26, 99,113,179,219, 92,255, 0,153, 19, 79,168, 34,155,118, 63, 54,133, 32,187,
- 95, 47, 89, 3, 13,162,234,248,145,229,143,133,101,189,171, 63, 73, 20, 26, 37,142,207, 6,218, 73,133,180,170, 82, 56, 27, 22,
- 65, 70, 23, 4, 39,186, 77, 79, 98,117, 45, 84,186,195, 4,129, 82,147,244,245,208,170, 26, 87,131, 15,220,126,243,174,213, 10,
- 47, 98, 26,148, 0,216,107,225,208,235,153, 46,209,126,136, 46,164,213, 33, 73, 62,209, 80,116, 10, 0, 81,109, 75, 18, 80, 20,
- 2,215, 69,244, 85,122,147,162,144, 10, 48,170, 74,171,106,148, 73, 85,126,205, 26,180, 92,162,246,139,112, 30, 7,252,250,229,
- 87,104,146, 75,142,175,195, 77,138, 61, 2,200, 33, 10,255, 0, 91,217,244,253,190,221, 22,180, 74, 6,235,195,138,106, 54,199,
-138,136,116, 41, 36,117, 35,220,125,158, 4, 17,216,235,134, 65,152, 70, 17, 16,104, 83,141,190,201,231,188,134,194, 22,173,234,
- 0, 20,130,162, 9,247,117,174,160,247,189,226, 61,166, 23, 77, 33, 0, 15, 82,184,114,151, 44, 75,204,183, 76,182,137,164,146,
-115, 2,180, 29, 42,196,225,156,118, 0, 30, 99, 10, 81, 90, 66,183,174,165, 52,167,226, 73,165, 83,244,107,203,124,219,207,179,
-239, 14,160, 58, 90, 50, 3,239,233, 94,242,228, 47, 43,173, 57, 90, 49, 65,169,231, 55, 59,238, 28, 7,161, 86, 39, 25,193, 81,
- 21,198, 92, 84,122,165, 36,121,135,109, 66,144,123,212, 15, 2, 60,107,172,186,238,249,211,230, 86,189, 4, 44,183,200, 34,108,
-124, 98,220,196,166,196,117,159,151,117, 33,108, 56, 5, 84,194,197, 62, 21, 86,149, 9, 61, 43,222,157, 60, 43,168,199, 72, 92,
- 19,166,191, 79, 4,150,225,104,142,216,248, 84, 26, 90,156, 59, 16,175,235,143, 97,246, 43,192,123,107,236, 58, 35,106,228,229,
-179, 6,224, 82, 31,154,157, 1, 8, 74,100, 62,201,243, 89,118, 42,210,162, 66, 93, 35,173, 42, 63, 89, 0,133, 3,167, 80,176,
- 56,226,154,220,188, 57,164,133, 7,188,230,115, 26,113,104, 75,238,121,190,115,101, 69, 43, 33, 32,245, 86,224, 15, 84,144, 20,
-122,120, 29, 75, 68,214,244, 38,126, 25,161, 41,223, 10,245, 31,148, 98, 51,154, 67,210,215, 54,216,234,158, 67,240,100, 40,170,
- 59,205,133, 41,194,141,166,169, 20, 86,240, 15,211,167,175,218,155, 48,171,112, 42, 34,229,172,150,173,112,197, 93,232, 24,246,
- 23,206,246,243,147,216,163,162, 46, 78,195, 9, 14, 71, 97, 32,162,228,220,100, 35,115,219, 64,168, 53, 27,182,246, 36,170,190,
- 20,138,123,159,105,129, 10, 10, 77, 86,100, 49,206,252,179,199,163,211,224,167, 45,250, 74,228,236,171, 16,114,247,199,143, 72,
-104,219,155,146,213,218, 10, 73,101,248,147, 35, 5, 56,212,134,170, 71,153, 29,228,133,121,149, 32,160,146,122,164, 0, 79, 4,
-173,188, 7, 83,107, 69, 3,123,205, 16,242,245,203, 99,149,216,156,143, 3, 94, 29, 69, 72,184,154,249,157, 97,150,203,214, 19,
-203,248,179,151,155, 52,198,126, 89,216,119, 38, 22,167,144,101, 45,134, 94,162, 92, 1,117,163,234, 37, 42,167, 65, 67,210,163,
- 85,221,193,174,219,229, 19, 90, 56,181,195,136, 87, 54, 58,219,152,227,107,152,241, 95, 81, 4, 80,224,120, 16,114,251, 21, 35,
-245, 59,233, 75,134, 45, 87, 59,214,103,136, 78,157, 26,221, 49,210,212, 60, 90, 11,200,112,219,211, 5, 12,182, 93,113,110,124,
-103,230,142,245,130,122, 3, 95, 10, 13,105,156,179,231,126,231, 20, 77,182,149,141,115,218, 77, 94,107, 82, 42,105,151, 66,162,
- 94,121, 13,181,239,178,155,153,181,198, 75, 27,131, 40, 25, 90, 99, 74,212,240,233,204,170, 9,112, 78, 47, 46,125,166,219,139,
- 98,205,219,162,193,156,209,151,117,125,197,203,159, 51,202,219,190,132,128,132,133, 37, 39,176,241,212,221,199, 60,110, 55,109,
- 62, 44,199, 30, 3, 1,157, 84,221,143,149,123, 54,214, 65,134,221,181,109,123,199, 19,149, 62,196,113,196,112, 25,146,109,203,
-200, 60,149,181, 25,136,241, 45,208,216, 78,229,109, 43,144,227,238,184, 85, 78,205,182,176,132,215,169, 43, 72, 29,141, 42,114,
- 92, 25, 78, 56,149, 59,115, 51, 45, 15,134,220, 6,126,234,122,118, 35, 36,251, 43, 87,118,163, 91,210,218, 19, 32,180,202, 29,
-243, 20, 18,134,154,109, 33, 52, 81,240, 9,235,212,248,117,250, 26,212,131, 80,161, 60, 86,183, 18,171,183, 36,241,171, 75,137,
- 45,233, 44,121,130,115,106, 66,137, 69, 55, 48,160, 20, 7,106,252, 73,162,190,186, 30,186,153,218,119, 23, 90,188, 16,114, 93,
-220,109,163,220,163,115, 58, 87, 17,185,235, 6,151,136,231, 83, 27, 13,184, 33,220, 95,114, 76, 69, 54, 9, 11,105, 84, 89,168,
-167,116,135, 18, 53,233, 14, 92,190,110,225,108, 15, 16, 49,244,245, 47, 44,115,126,222,237,182,236,142, 14, 56, 40,182, 57, 9,
-197,173,186,165, 64,133, 14,132, 26,212,247,174,156,222, 60, 53, 27,104,107,164,162,178,120,174, 58,185,158, 82,157,222, 27, 20,
-169, 3,232,247,234,157,127,114, 24,181, 61,178,216,144, 42,138, 75, 93,175, 30, 74, 84,218,211,230, 37, 61, 74, 85, 74, 83,196,
-154,211, 85,253, 14,185,118, 25, 43, 11,166,101,168,235, 67, 28,147,145,230, 93,102,255, 0, 4,199,218, 47, 79,124,109,220,149,
-209,182, 91, 38,133,110, 47,178, 64,246, 87,174,173, 27, 86,196,233,156, 40, 21, 11,152,249,202, 45,185,142, 46,118, 41, 93,139,
- 25, 54,182,150,244,135,157,147, 58, 73, 14,202,125,194, 70,247, 21,223,165, 79, 65,225,173, 99,106,218,153, 96,220, 51, 94, 95,
-230, 94,103,155,125,144,234, 52,109,112, 9,244,177,238,253, 58,155, 10,160,229,229, 49,219, 85,119,212,123, 41,162,188,187,240,
-162, 12, 82,101, 70, 0,146, 42, 40,122, 30,218, 82,168, 47,104,184, 78,140, 43, 30, 74,234,142,187, 73, 39,160,210,110,133,175,
-204, 35, 7,145,146, 86,206, 85,113,124, 18, 84, 60,196,138, 18, 73,174,146, 54,108, 70, 18,149, 29,190, 92,238,210,227,184,148,
- 60, 66,136, 61, 42,122,233, 70, 91,181,188, 17, 95, 35,156, 21,104,191, 93, 47,172,220, 29, 68,196, 58,164, 32,171,105, 27,136,
-160,215,100, 45,137, 66, 93, 23, 19,138,140,185,148,180,210, 21,185,197, 5, 15,213, 36,142,186, 54,130,113, 77, 64, 81,201, 89,
-139,142,110, 67,106, 63, 23, 64,106,117,221, 40,222, 31, 21, 29,147, 57,217, 73, 42,113,210,144, 1,232, 84, 78,142, 27, 68, 82,
-113,193, 55,162,107, 45, 31, 48, 21, 40,143, 96, 36,232,186, 80, 33, 53,207,159, 42, 66,183, 51, 29,245,129,236, 73,209,131, 23,
- 90,210,152,182, 93, 36, 73, 78,216,111,167,168,238,146, 6,186, 99,170, 56,105,162, 36, 88,172,215,215, 91, 43,113,175, 49, 41,
- 72, 81, 14, 3,240,164,125, 90,137,187,139,233,127, 52,123, 19,105, 32, 48,159, 16, 41, 56,151, 18, 42, 22,202,156, 10,124,165,
- 85,107,178,106,158,227,219,168,137,110, 29,116, 65,140, 80,166,205,156,206,238,235, 72, 77,104,187,218, 21,103,184,220, 88,124,
- 34, 93,181,197,249,145,150,104,178,104,122,123,251,105, 99, 36,147,197, 66, 59,193, 72, 1,174, 60,115, 9,254,221,146, 64,118,
-205, 13,244,141,247, 25,123, 85,229, 36, 84,182, 8,255, 0,151,125, 41, 97,174, 22, 80,230, 87,109,135,128,220, 51, 41,231,251,
-251,110,178, 33,166,220, 2, 68,183, 84, 18,150,155, 59,200, 81,240,247,232,183,119, 63, 77,143,204,228,131,222, 99, 53, 56,148,
- 81,178, 92,231,222, 34, 7,212,216,140,135, 82, 10, 65,232,173,167, 81,205, 55,183,231, 61, 45, 72, 23, 92,221,154, 14,235, 81,
-239,136,241,190, 50,151,113, 18, 57, 22,251, 46,223, 5,147,185, 73,142,224,109,110, 10,246, 31, 10,148,107,238,211,109,234, 91,
-205,186, 42, 89, 48, 61,231,137, 74,208,217,142,238, 37, 95,187, 78,109,232, 95, 21,143, 21, 42,194, 47,121, 92,150,192,253,163,
-237, 21, 33,106, 30,245,251,126,141, 97,187,143, 47,115,150,233, 35,158,217,217, 16, 41,180,210,207, 39, 64, 69, 17,234,127,210,
- 23,240, 85, 91,135,167,207,253, 28, 86,144,167, 40,159, 59,120, 4, 3, 77,158,202,234,183,255, 0,140,249,187, 87,137,252,200,
-106,232, 76,181, 79,251,203,128,120,255, 0, 17,103,152,117,179,228,217,179,149, 45,212,255, 0,188,200,106, 90, 28,116,138,117,
-253,110,167, 90,189,239, 51,217,110, 47,212, 95,150, 66,133, 83,223,112,219,151,106, 37, 88,254, 47,198,179,203,124, 4, 62, 21,
-116,179, 64,106,139, 82,215, 33,104, 43, 53,254,181,118,245,240,166,150,135, 97, 28,203,137,123, 75, 61, 74, 82, 13,160,238, 67,
- 18, 40,157,189, 65,114,142,127,198,156,122,213,226,203,153,222, 34, 93, 36, 72, 13, 68, 80,146, 93,169, 20, 2,155,234,123,159,
- 13, 89,182,255, 0, 45,118,200, 27, 71,196, 28,122,212,143,252, 86,214,221,181, 45, 4,171,165,233,175,213, 79, 54,219,248,171,
- 25,126,251,145, 46,248,183,153, 67,142, 55, 63,113, 14, 32, 1,208,215,114,122,159,118,171,155,167,145,219, 22,230,231, 59,193,
- 13,113,226, 18,206,229, 59, 59,168,192, 45,162,189,184,239,172, 46, 58,202, 45,168,178,242,111, 27, 90, 86, 84,128,133,220,163,
- 68, 74, 30,175,109,219,155, 29,126,177,172,154,255, 0,244,239,184,108,179,125, 78,205,122,246,154,212, 52,156, 61,133, 8,249,
- 93,150, 67,253,185, 45, 33, 50, 94,113, 46, 2,206, 80,252,204, 54,247, 30, 3,206, 37, 71,248,108,165, 0,144,165,120, 82,130,
-159,102,173, 59, 78,253,204,124,174, 68,123,164, 37,237, 31,136, 41, 43,125,214,230,199,187,112,205, 77,233, 85,115, 46,225,123,
-124, 87,156,113,183, 35,180,209,113, 73, 75,236,186, 22,202,211,245,118,250,245,183,242,255, 0, 51,179,119, 96, 44, 56,241, 7,
- 48,172, 86,215,112, 95, 10,176,227,208,161,171,227,156,126,214,201,113, 55, 36,189, 35,109,118,165, 99,241,123, 59,106,204,219,
-137, 30,114,193, 59,208,209,197, 50, 11, 72, 73,160, 64, 32, 86,149, 61, 41,246,105,226, 34, 67, 38,220, 60,212, 32,182, 74, 79,
-138,124, 15,211, 77,117,114,171,103,240,167, 87, 68,165, 31, 8,233,215, 66,168,213, 94,211,100, 53,234,143,249,125,154, 21, 66,
-171,127,240,176,145,248,116, 42,186, 10,243,252, 54,191,171,162,160,180,187,109, 88, 21, 13,147,174,174,164, 42,130,161,248,133,
- 61,196,107,168, 45,237,219, 84,175,194, 19, 79,167,252,218, 41, 40,193,108, 85,144,184, 40,164, 5,104,133,244, 74,181,160,175,
-213, 90, 3, 45,165,183, 27,109,105, 53, 8,105,193,237,254,169,232,164,245,234,104,117, 89,230, 13,250, 29,146, 35, 44,142,161,
-224, 56,146,175,188,147,202, 23, 92,221,114,216, 33,109, 88, 8,212,226, 48,104,237,195, 30,170,138,162,102, 25,135,194,113,109,
- 60,184,242, 91, 89, 32,133,109, 15, 51, 95,245,192, 74,190,173,186,242,191, 52,115, 77,198,245, 33,116,175,168,224, 56, 14,192,
-189,239,201,220,149,103,202,144, 54, 59,120,192,195, 19,196,158,146,120,250, 81, 90, 60,115, 28, 75, 77,163,108,114,154, 80,160,
- 41, 36,178,179,237, 11, 77, 10, 21,238, 35,174,179,233,223,171,138,190,178,109, 56, 82,136,129, 26, 27,140, 84,151, 72, 8,170,
-219, 90, 84, 80,227,103,175, 74, 13,162,148,237,247,215, 76,203, 66, 84,206, 74,107,151, 39,229,220, 91,228,176,231,154,218,144,
-234, 66, 54,161, 64,215,105,165, 1,233, 83, 95, 29, 2,193, 74, 4,118, 74, 93,154,133,221,174,143,161,143, 45, 14, 16,223,152,
- 22,213, 77, 86,217, 79, 90, 37, 68, 84, 16,122,233,104,226,198,169, 83, 39, 2,162, 55, 11,227,235,138,211, 14,186, 54,130,118,
-146,119, 80,160,215,167, 66,105,255, 0, 54,142,232,200,117, 66, 90, 23,183, 77, 10, 23, 94, 36,130,227,174,133,133, 18, 71,197,
- 90,208,212,248,118,238,116,246, 58,148, 82, 67, 69, 56, 32,125,246,250,168,179, 95,140,226,246,182,250,214,243, 71,119,224,120,
-164, 5, 0,123,246, 52, 31, 73,213,199,109,103,136,197, 85,220, 95,225, 62,170,219,250, 59,231,185,152,198, 79,102,101,249,127,
-179,102, 82, 28,113, 5,117, 11, 68,101, 37, 46,162,158, 32,179,230,244,211, 13,239,110,195, 80, 76,223,166,254, 39, 70,238, 32,
-175,167, 94, 22,202,109, 88,165,255, 0, 25,201, 87, 56, 61,135,103,174, 57, 5,136,233,113,104,137, 10,242,160,211,142,164,109,
- 42, 79,237, 99,188,135, 2,136,167,194,160, 0,166,227, 87,183,107, 98,145,146, 83, 10,208,172,111,155, 45,100,221,173,102,183,
-167,231, 68, 3,129,166, 37,184,211,216, 65, 30,177, 94,133,227,213,212, 24, 80,174, 17,239,176, 96,161, 72, 97,216,111,197, 91,
-106, 5, 44,199,242,157,168,113, 35,177, 73, 66,150,130, 8, 65,218,123,157,212,105,190,219,233,144,185,131,186,114, 71,242,146,
-240,200,195, 4,174,161,198,190,209,241,167, 78, 61,139,230,187,156,179,247, 50,158, 77,190, 91,226, 73, 84, 88,233,118, 67, 77,
-183, 25,101,182,140,117, 80, 37, 10, 79, 90, 16,145,181, 71,198,132,233,229,134,216, 35,132, 75, 76, 87,165, 25,126,109,233, 9,
-199, 0,134,120,253,178,199, 6,226,132, 73,121, 65,177, 82, 85,184,110, 42, 82, 72,248, 71,115, 90,246, 26,121,165,249,148,222,
-234,243, 83, 72,106,182,124,106,220, 11,196, 49,110, 47, 33,150,247, 56,236, 86,220, 39,202,109, 29, 6,228,166,148,220,186,109,
- 39,216, 41, 74, 10,105,104,222, 27,154,206,247,198, 73, 93, 97, 44,206,173,195, 23,149,229, 66, 9, 72,118,142,186,239,150, 28,
- 43, 90,187, 2,173,160, 0,144, 58,248,123,186, 87, 69,146,112, 50, 74,108,246, 70,241,181,122, 12,223,178, 38,110,204, 72,101,
-217, 12,173, 12,160,151,222,121, 95,179, 52, 35,183, 67, 90,170,158, 63, 69,116,102, 72, 48,166,106,109,155,105,128,245, 42,101,
-202,124,127,141,101,114,252,187,172, 70, 92,125,244, 37,182, 30, 66, 1,145, 25,180, 44, 45, 69, 53,235, 67,215,189, 62,206,250,
- 79, 41,239,239,219,240, 39,187,208,179,110,119,229,102,238,160, 61,131,188, 21,118,103,133,224, 90,100,161,230, 24, 75,204,173,
-199, 28, 65, 11,243, 16,150,146,162, 0,168, 21, 81,233,219,199,235,160,210,238, 46,254,173,154,163, 53, 89, 62,222, 78,221, 39,
-135, 51,116,154,166, 28,143, 33,182,227, 44,186,195, 14, 69,101,109,239,109, 97, 36, 10, 17,223,175,110,132,117,233,168, 72,172,
- 93, 57, 86,231,238,173,183,109,107, 64,131,209, 94,203, 57, 38, 90,217,199,246, 49,105,109,123, 37,222, 30,116, 33, 29, 13, 10,
- 89, 71,119, 21,239,165, 7,183,195, 86,221,183, 98, 7, 53,156,243, 31, 59,120, 2,141, 40,233,141,224, 48,177,216,169,106, 44,
- 84,153, 11, 1, 82,165,173,106,117,249, 14,248,169, 74, 85, 73,169,213,242,206,217,150,130,141, 24,172, 67,116,220, 38,221, 31,
-170, 66,105,192, 39,201, 54,199,155, 65, 41,110,170,247,245,212,139,100, 80,175,128,132,222, 97,173, 40, 73,113,179,184,157, 42,
- 29, 84,213,204,162,244,155, 98, 86, 58,157,149,250,186,125,154, 5,196,100,137,164, 47, 82,172,209,208,197, 91,120, 45, 68,117,
- 77,107,253, 26,227, 94, 78, 97, 7, 48, 81, 69,219,182, 37,135, 28,248,170,165, 26,208,157, 42, 18, 45,109, 18,117,198,109,131,
-185, 45,144,165,170,135,167,183, 64, 26,174,130, 22,183,153, 65,248,122,110,165, 64,241, 58, 21, 64,144,152, 37, 88, 98,220,146,
-226, 87, 25, 14, 57, 66,147, 84,212,245,215, 28,208,236,210,110, 96,126,104,126,231, 22, 90,229,184,242,101, 64, 0, 18, 72, 82,
-106, 63,163, 71, 14,162, 68, 91,142, 33, 52, 57,194,246, 20, 44,173, 45, 44,119, 61,244,109, 75,134,217,171, 63,194,171, 34, 62,
- 19, 24,171,167,137,240,251, 53,192,252, 81, 27,110,208,114, 94,127,195,123, 27, 2,137,130,217, 3,250,221,127,163, 70,212,148,
-240, 90, 56, 47, 11,197, 45,113, 64, 8,134,194, 69,105, 82,128, 71,232,208,212,135,134, 2,252,153,142, 91, 99,182,133,165,136,
-231,114,106, 10, 82, 1, 31,118,138,215,234, 64,176, 4,216,152,200, 74, 86,211, 97, 41, 74,210, 80, 66,122, 29,170,250, 52, 30,
-208,225, 66,147, 45, 8, 13,157, 98,243, 44,201,126,114,101, 4, 60, 20, 94,139,241,124, 78,166,189,137,241,175,109, 85, 93,124,
- 12,198, 24,197,105,197, 67, 11,182,153, 12,108, 25, 42,147,116,190,220,149,114,146,235, 14, 56,202, 94, 94,217, 45, 2, 66, 86,
-227,117, 21, 35, 79,203,197, 58,209,158,229, 63,195,114,107,179,114, 19, 29,105, 46,124,218, 68,102,213, 66,162,222,254,212,160,
-175, 83,168,219,155,195, 19, 78,140,194, 66, 73,221, 11, 73, 8,237,135,113,189,212, 93, 23,117,188, 7, 95, 73,163,145, 18,249,
- 37, 71,119, 90, 80,208, 10,106, 58, 59,175,168,110,179,154,108,203,175, 29,181,200,171, 11, 2,223,127, 42, 66, 26,101,196, 39,
-225, 67,109,182,142,180,236, 40, 5,107,245,105, 79,230, 14, 96,204, 0,144,146,249,209,228, 85,178,227,111, 78,252,173,200, 95,
- 39, 27, 30,194,175,247, 55, 36, 37, 27, 30, 16, 92,109,144, 84,123,238, 90, 70,170,251,191, 59, 90,109, 32,186,105,216, 41,158,
- 42, 46,231,119,240,241, 46, 11,166,188, 77,249, 77,243,110, 93, 26, 52,156,174, 51, 88,188, 62,138, 82,164,169, 40, 88, 73,247,
-185, 65,247,107, 39,223,255, 0, 81,187, 70,216, 11, 98,118,183,117, 40,203,174,112,130, 6,231,138,186, 35,242,138,192,134, 46,
-171, 49,207,217,254,246,169, 72,121, 63,239,168,242,194, 80,149, 5, 14,219, 63, 18,134,178,175,254,232, 38,250,141, 94, 7,228,
-246, 42,199,252,249,158, 45, 48,162,249,224,245, 27,249,118,122,241,225, 70,159,157,111,153,118,203, 45, 76,161, 78,252,205,189,
-194,167, 20,132, 10,154, 10, 45, 11,251,117,163,242, 95,156, 92,167,205, 4, 53,205,108,111, 60, 10,177,218,221, 91, 56,208,208,
- 37,152, 45,199, 60,181,241,254, 43,140,102,208,174, 16,111,242, 94, 64,152,205,194, 33,140,250,118,208,117,232, 1,235, 83,211,
- 94,139,217, 45,108, 92, 4,182,110, 5,167,160,212, 43,125,155, 98,160, 44, 42,188,122,212,186, 53, 62, 87, 30,226,113, 73, 80,
-118,225, 12, 56,132,254,176, 74,183, 26,143,120, 26,183, 51, 4,250,225,245,160, 87, 95, 12,183, 24,120, 46, 51,110,142,203,136,
-249,123, 84, 80, 66, 91, 35,226, 82, 65,240,250,116, 81, 35, 99,249,156, 61,169,215,140,198, 52, 84,128,166, 80,163, 93, 22,224,
-109, 22,249,110,209, 35,168,100,154,253,218, 65,219,141,187, 48, 50, 55,218, 17, 63,152, 66,220, 11,219,237, 91,100, 71,187, 52,
-231,192,203,241,156, 72,239, 69, 50,177,245,244, 35, 78,152,232,174, 91,129, 14,111,168,132,229,143,108,195, 2, 8, 72,164, 79,
-203,220,108, 54, 46,114,223, 97,179,251,135,157, 43, 80, 79,178,167,169,250, 14,153,179,101,130,222, 79, 22, 22,134,184,244, 38,
-226,201,177, 59, 92,120, 20,178, 45,202,224,150,129,117, 10, 11,232, 20, 15, 90,125,186,149, 17,151,209, 63, 99,201, 24,162, 14,
- 61, 10, 28,230, 23, 38,227, 49, 44, 39,176, 73, 61,116,222,226, 87, 70,104,208,158,194,208,225,222, 41,138,234,244,104,179,212,
-204, 71,126, 97,160,122, 40, 10,233,204, 53,123,106,224,147,146,141, 56, 37,112,220, 91,148, 37,186, 3,226, 70,148, 45,162, 32,
-114,144,181, 5,110,143,133, 0,215,221,162,209, 27, 85, 82,163,104, 87, 64, 91,175,188, 14,223,118,184,133, 87,224,179,182, 58,
-158,135,222, 63,205,174, 16,187,169,106, 93,181, 6,163,165, 71,180, 10, 29,113,119, 82, 70,229,153,151, 58,157,164,251, 53,213,
-218,173,137,178,182,210, 18,180,245, 61, 62, 26, 15,249,244,155,157, 92, 18,141, 90,103,165,136,113,252,231, 90, 41, 61, 16,218,
- 18, 6,247, 92, 87,100,141, 67,110,251,156,123, 68, 46,154, 67,128,247,158,133,106,229,110, 93,159,154,110,217,105,110, 59,206,
- 56,158, 0,113, 39,211, 20,229,140,226,114,238,178, 4,183,209, 85,173, 65, 84, 82, 42, 26, 79,130, 70,240, 7, 79,118,188,167,
-205,156,205, 46,241, 51,164,121,160,224, 43,128, 29, 11,232, 63, 35,114,117,183, 41,218, 50,222, 17, 82, 49,115,169,139,143, 18,
-125, 48, 86, 71, 29,198, 76,117, 50,141,161,178, 2,106,160,128,144,125,253, 6,179,137,229,212, 86,136, 29,164,102,138,219,154,
-128,197, 65, 27,144, 8, 46,167,106, 65, 30,250, 19,247,233, 38,176,189, 49,124,184,212, 40,141,194,252,208,222, 18,225,168,169,
-170, 40,149, 40,251, 43,218,191, 78,151, 22,132,160,219,176,213, 3,189,228,140,237, 43, 75,196, 36,142,187,136,174,234,125, 67,
- 78, 34,179,115,142, 75,142,189, 12,227,138, 19,221,243, 88,237, 56, 27, 91,169, 34,167,109, 85,240,170,158, 30,226, 53, 32,205,
-188,156,130, 68,238, 45, 28, 84, 18,118,104,210,210, 54,186, 54,165, 93, 40,161, 80,107,208,251,125,218,112,221,180,138,224,184,
- 55, 65, 80, 65, 76, 18,114, 36, 62,211,159, 24, 82,232,107,212,117,167,101,123,255, 0,205,162,125, 17,105, 79, 25,184, 7, 12,
-208, 27, 56,184,133,200,243, 66,214,131,188, 81, 85, 0,182,180,246, 35,220, 71,249, 53,101,218,163,208, 20, 30,233, 62,180,221,
-129,100,114,172, 89, 52, 41, 44, 58,164, 36, 74,110, 66, 58,209, 32, 57,209,104,250, 8, 4, 31,175, 82,119,144,137, 99, 32,244,
- 40,187, 89,139, 30,190,138,120,111,156, 47, 19,120,235, 24,181, 67,154,242,157,183,204,183,220,226,164,157,225,153,209,146, 90,
- 11,219, 81,209, 76, 41, 72, 52,247, 3,224,117,151, 92, 69,224,189,192,244,165,239,182,184,230,121,148,140, 75, 72, 61, 96,227,
-246,226,172, 79, 56,250,134,155, 59, 2,140,205,254,216,185,146,154, 98, 75, 50, 95,108, 35,206,242, 92, 67,129, 43, 21, 73,218,
- 2,214, 84, 58,244,162, 73,232, 8,211,200, 34,109,200,210, 85, 11,108,216,255, 0,149,221, 58, 72, 93, 64,125,158,159,181,124,
-209,114, 22, 65,113, 99, 46,114,116,121, 79,184,211,178, 66,156,121, 36,165, 59,214, 58,129,240,254,162,148, 71,213,171,157,181,
-171, 93, 22,158,165,166, 27,183,151,130,229, 35,181,101,237,191,228, 46,116,167,155, 14, 23,213,248, 80,226,210, 2,148,128, 15,
-112,159,136,117, 10, 21,236,123, 16,117, 19,113, 98,230,100, 20,237,188,204,151, 50,174, 95,167,235,217,127, 33,132,182, 37,135,
-146,141,173,186, 95, 97, 43,105, 45, 2, 58,167,225,218,131, 74,117,232, 71,134,160,231,110,140, 40,163,119,168, 67,163,170,182,
-124,198,136,226, 31,158,233,109, 13,150, 2,210, 18,208, 83, 65, 10,246,116,173, 77, 41,208,125,116,212, 68,210,227, 65,154,109,
-202,240,212,227,151,106,231, 78,115, 17,230,217,109,216, 27,213,231, 17,189,192,241, 66, 55, 18, 72,175,197, 68,208,128, 85,180,
-208, 80, 10, 86,186,146,176,126,167,119,184, 43,157,211, 26, 27,135, 20, 28, 78, 31,125,200,166, 55, 1,183,138,238, 15,169,196,
- 20,197, 82,155,101,168,201, 80, 10,112,168, 10, 0, 5,123,159,166,154,179,219,220, 54, 44, 70, 74,167,127, 24,252, 67, 36,166,
-201,196, 55, 25,202,109, 12,221, 46,140, 60,167, 18,135, 27, 50, 64,140,134,210, 65,232,129,230, 41, 69, 70,131,235, 62,243,169,
-118,115, 28,150,162,141, 56, 42,181,223, 45,218,222,144,100,101, 74,143,101,126,145,236,247,169,169,122,112,126, 86,231, 11,146,
- 24,243,150,152,192,164,246,115, 97, 1, 84, 3,168, 39,194,157, 73, 36,169, 23, 60, 92,193,131, 92, 61,129, 33, 55, 33,216,223,
- 15,204, 97, 35,180,143,179,211,218,167,120,191, 2, 65,177,178,197,174, 33, 17, 98,180,200,216,196, 88,200,142,210, 84, 65, 32,
- 36, 4,158,131,105, 36,248,120, 84,233,127,252,157,127, 0,160,120,167, 96, 81,143,242,103,101,188,113,113,132,151,127,105,212,
- 30,170,211,238,233, 86,183,143,189, 25, 71,205,162,186,236,203,243,150, 55, 3, 78,124,185, 84,116,190,211,242,220, 77, 90, 65,
- 59,129, 72,169, 1, 68, 3,237,235,210,189, 62,123,207,102,224,217, 34,107,133, 70, 68,138, 14, 61,167,211,178, 10,247,244,239,
-183, 61,181,138, 89, 24,113,232, 61,157,128,123,126,248, 31, 35,122, 37,229, 92, 37,153, 83,217,180,175, 33,182, 69, 50, 22,185,
-246,166, 75,169,249,102, 0, 37,210,128, 10,146,158,163,241, 80,247, 59,118,141,199, 79,229,239, 54,246,189,236,181,158, 32, 99,
-205, 48,119, 73,225, 94,159, 74,215, 5,143,115, 23,146,123,142,212,215, 73, 8, 18,176, 87,229,206,131,142,158,142, 29, 57,225,
- 65, 85, 81,238, 24,187,177,148,166,157, 97,109,184,130, 66,144,182,246, 45, 10, 30, 4, 17, 81,173, 90, 27,145, 32,168, 43, 16,
-189,176,116, 4,135, 2, 8, 81,199,172,171, 79,100, 31,179,252,218,124,215, 85, 66, 72,205, 41,185,118,162, 43,240,117,250, 52,
-173, 83, 98,154, 31,176,165,111, 37,237,196, 20,247, 77, 41,174,162,164,211, 45, 41,242,136, 1, 33,100,138, 18, 6,133, 23, 10,
-103, 24,154,139,129,245, 58,165, 31,234,142,218, 25,162,105,169, 75, 35,216,220,137, 41, 50, 27, 72, 82,122,111, 73, 2,134,159,
-110,138,230,234,193, 40, 13, 19,194,225,197,150, 74, 92,105, 44,251, 84, 0,255, 0, 38,147,210, 88,143, 80,229, 27,184, 89,219,
-106,170,104,151, 82, 15,116,128,127, 70,148,107,137,205, 38,226, 1, 81, 11,188,119,163,160, 45,150, 20,186,245,232, 59,105, 64,
- 42,138, 84, 97,192,234,208,119,167,106,143,234,145,212,104,217, 34, 85, 71,167,194,145, 33,162,148,166,134,181, 7, 93,173, 17,
- 28,106,162,215, 40,242, 88, 96, 36,149, 21, 0, 69,126,173,115, 80, 73, 57,212, 80,111, 62, 99, 18,131,138,222,164, 37, 64,148,
-251, 64,211,121,231,107, 26, 73, 52, 20, 76,166,184, 12, 4,147,130,135,242, 43,232,188, 66,109,196,180,176,252, 81, 65, 65,221,
- 10,239,225, 78,157,245, 85,180,187,136, 23,104, 28,115, 80,208,221, 68,202,150, 42,241, 3, 28,182, 94,103,174,219, 34, 11,226,
-100,167, 71,146,228,118, 11,139, 47, 43,167, 64,144, 85,212,251,180,199,112,190,250,114, 94, 14, 9,165,206,227,164, 97,154,191,
- 62,158,255, 0, 45,175, 82,252,161,121,180,206,196, 56,238,243, 54,214,235,141, 46, 52,233,208, 28,139, 29, 72, 81,232, 84,146,
-154,159,171, 89,142,241,230,166,209,180, 7,125, 68,237, 14, 28, 43, 85, 22,221,224, 79,133, 8, 95, 71,126,158,127, 33,238, 64,
-202, 99, 91,238,124,211,145,219,113, 86, 27, 75,101, 80,155, 82, 80,226, 91,160,232, 71, 87, 15,217,175, 55,115,119,234,162,195,
-102, 46,101,139, 76,135,211,212,141, 3, 68,142, 36,188, 6,174,186,113,151,229, 85,233, 35,135, 35, 48,236,246, 32,229,183, 56,
-233, 66,148,244,136,232, 82, 86,227,126,245,238, 81,235,175, 53,243, 15,234,131,120,221,156, 67, 28, 88,211,208,126, 9,166,225,
-108,220,116, 73, 84,118,157, 99,198,176,166, 17, 3,141,176,219, 53,189, 44,167,203,101,112,237,232, 14,165, 35,183,196, 18, 78,
-179,211,230, 36,219,177, 46,186,149,231,180,172,215,118,177,185,144,254, 89, 65,156,131, 31,231,188,186, 75,140, 91,152,152,212,
- 99, 95,194, 84,144, 1,255, 0, 87, 82,246,188,215,182, 64,218,200,236, 85, 82, 78, 89,220, 46,157, 70,180,148,199,255, 0,232,
-189,205,223, 47,252,100,207,127,248,144, 32,136,254, 97,243, 11,103,169, 52,174,238,224,105,223,254, 64,219,235,167, 73,211,210,
-149,255, 0,128,110, 26,117, 83, 30,133,241,173,194,159,158, 95, 63, 97,177,227, 90, 57, 62, 4, 44,234,194,181, 33, 50,144,227,
- 73,112,173,147,248,170,211,187,129,233,236, 86,190,138,243, 31,233,127,103,220, 73,146,206,177, 73,194,159, 16,182,171,205,134,
- 59,140,176, 43,175,124, 71,234, 95,209,119,172,219, 76, 41, 23,139, 84, 44, 39, 38,125,160, 16,218,146,150,154,102, 66,254, 16,
- 75, 75, 33,105,234,123,164,157,101,179,242,255, 0, 54,121, 77, 39,137,109, 41,150, 38,240,234,237, 80,186, 46,182, 71,213,143,
-212,222,133, 93,253, 78,126, 94,145,173, 55,171,119, 38,227,109,163, 54,176, 64, 63, 49, 7,228, 92, 18,144,208,167, 74, 41, 53,
- 41, 59, 79,225, 80,213,239,151,124,249,184,230, 55, 11, 57,199,131, 46, 88,224,144,190,230, 43,203,215, 6, 48,105, 40, 41,106,
-203,165, 91,202, 45,230,202,136,170,135,178, 50,152,144,218,146,182,124,161, 74, 16,105,236,214,185, 15, 39,238,123,187, 68,142,
-185,238,158,132,163, 57, 99,115,220, 70,167,207, 64,122, 17, 46,223,200, 51, 25, 45,169,184,144,146, 64, 21, 5,148,170,163,239,
-210,204,242,150, 73,113,150,233,254,213, 33, 23,151,143,118, 50, 92, 58,189,170, 96,213,250, 22, 88,147, 10, 69,181,166,164,184,
- 40,151,216, 69, 0, 62,218, 13, 57,111, 44,238,124,167,249,150,211, 25, 24, 51,105, 82,182,251, 29,254,201,141,188,133,237,232,
- 41,178,111, 19,228, 54,248,203,184,194,144,220,232,202, 42,112,178, 69, 92, 74,123,244,233,215, 86, 61,143,159,173,239,159,224,
- 92, 15, 14, 65,134, 57, 43, 70,221,188,139,158,228,163, 75,250, 20, 65,187, 91,206,168,182,243, 1,181, 5, 20,168, 20,208,130,
- 60, 53,162, 49,225,226,160,224,167, 42,164,144,241,189,232,161, 14,108, 62, 2,160,107,180, 70, 14,162, 86,172, 70, 50,126, 32,
-209,221,222,187,106, 73,209,181, 33,169,126, 35, 27,150, 93, 72, 77, 82,216, 35,245, 79,109, 26,168,106, 83,123,125,160,176,128,
- 60,178,163, 78,164,131,164,221,138,232,114, 94,109,207, 44,244, 70,223, 96,218,122,253,218, 42, 54,165,228,227,238, 56, 55, 46,
-163,234, 52,208,173, 23,117, 45, 14, 99,169, 20,220, 79,212, 58,232, 85,119, 82,111,122,202,211, 68,154,171,167, 94,218,232, 67,
- 82, 32,241, 54, 3,104,228, 75,212,171, 83,183,134,160, 46, 35,107,113,105, 61, 20, 66, 59,247,254,141, 27,193, 36, 84,228,154,
-220,238, 31, 78, 67, 90, 42, 74,107,200,184,254,222,140,174, 69,190,215, 33, 55,107,117,173,213, 50,153,133,194,150, 93,146, 13,
- 21,178,137, 27,130,123, 19,175, 52,249,159,205,109,184,151,233, 97,117, 90,220,200,233, 94,239,242, 31,145,159,180,217, 11,251,
-166, 22,203, 40,192, 28, 40,222, 24,117,231,217, 68, 82,199,177,102, 45,241,218, 20, 8, 7,168,161, 77,107,236, 5, 74, 38,149,
-214, 21,113, 57,148,212,175, 69,234,240,240, 31,122,155,124,179, 49,211,189,212,164,182, 8,169, 46, 4, 40, 1,244, 15,103,187,
- 77, 79,121, 33,226,209, 69,114,123,252, 54, 35,146,135,147,179,105, 73, 74, 58, 16, 64,241, 42, 72,220, 62,141, 61,182,132,146,
-144,145,252, 85, 81,203, 57, 21,155,114,100,149,190,209, 75,106, 33, 64, 14,164, 30,212, 39,160,233,237, 58,181,217,237,158, 53,
- 48, 85,203,173,195,233,201,199, 5, 83,115, 47, 83,150, 27, 79,154,216,154,219,135,227,109,109,186, 2, 29, 73, 29, 13, 20, 20,
-174,222,253, 91,108,185, 66, 89,169,221, 84,253,195,158, 96,181, 6,175, 85,250,103,169, 88,151, 55, 86,150, 93, 36, 19,240,213,
- 95,170, 61,227,199,223,171, 12,124,154,230, 12, 66,170,201,230, 60, 78, 61,210,182, 67,230, 95,154,115,113,116, 31,131,114,129,
- 63,137, 42, 52, 63, 95, 99,244,233, 41,185,104,198, 50, 78,173,185,217,179, 28,209, 38,203,200,108,203, 8, 42,113, 36, 20,142,
-194,189,253,223, 72,175,215,168, 27,173,148,177, 91,172, 57,148, 73,197, 39,191, 92,145, 53,218,213, 37, 11,219, 69, 82,169, 87,
- 65, 78,221, 69,124, 52,218, 27, 67, 0, 83, 39,113, 23, 41,211, 23,138,204,135, 24,169, 1,230,158, 65, 67,157,197,107,208, 31,
-117, 58,143,179,217,164,174, 36, 45, 10, 66,214, 48,236, 87, 88,184, 31, 32, 22, 75,125,182, 60,230,221,125,133, 22, 27,105, 1,
-176,226,227,173,127,133, 72, 85, 10,146,104, 41, 80, 58,129, 94,160,157, 80, 55, 8,252,119, 26,102,167,100,238,179, 20,123,245,
- 1,157,186,206, 33, 22,212,202,158,112, 78, 72, 66,148,218,128,114, 74,163,161,106, 66, 92, 80, 9, 43, 27,137, 80, 74,205, 1,
- 3, 77,237, 93,225,102,162,118,237,184, 92,202, 92, 41,135,167,236, 92,140,201,153,147, 46,123,197, 75, 33,215,158, 72, 32,163,
- 99, 11, 10, 61, 55, 83,104, 20,168,240,213,174,214,228, 48, 10, 43, 11,236, 43,154,139,198,142,226, 93, 95,157, 77,166,142,184,
-234, 2,118,186,133, 4,170,138, 85, 78,210, 8, 52,251,143, 93, 59,150, 80,252, 66, 60, 22,230, 60, 10,180,252, 5,117,109,140,
-154,221,251, 22,131,160,245, 45,186, 91, 40,100,138, 83,204,170,106,124, 58, 87,199,235,175,238, 44,210,210,185,118,223, 17,132,
- 46,144,242,172,232,114,113,104,205,152,105,109, 43,143, 29, 82,151,231, 23, 36, 56, 89, 66,146,154, 30,137, 72, 74, 87, 64, 0,
-233,214,164,244,213, 62, 76, 95,130,111,176, 52,196,227, 82,104, 62,245,206,124,150,227, 21,135, 38, 45, 73,105,150,219, 9, 90,
- 84,239,225, 27, 77, 18,128, 8,234, 73,167, 82, 43,219,221,171, 5,156, 52, 3,167,211, 21, 53,113, 57,125,107,146, 31,181,158,
-195,101, 50,139, 9,113,175, 55,122, 12,170,144,252,148, 40,126, 1,236, 65,220, 59,119,212,184,179,112,165, 79,169, 69,248,204,
-125, 64, 10, 89,141,231,209,153,101, 15, 7, 25, 71,149, 33,110,169,110, 40, 56,181, 44,141,128,128, 72,175, 80, 72, 21,234, 79,
- 94,157,141, 45,163,156, 40,146, 5,160,213, 19, 33,102,240,102,165,198, 66, 18,162,226,188,194, 84,179,181, 77, 32, 80,147,216,
-208, 83,175,182,190,205, 69,207,104,232,133, 83,216, 36,107,205, 42,138, 56,100, 35,123, 89,184, 46, 57, 5,111, 48,148, 7, 18,
- 18,167, 0, 27,143, 64, 40,132,164, 37, 35,104,240, 32,123, 53, 90,220,103, 49,224, 21,138,198,220, 54,138,224, 99, 18,198, 58,
-212,102,210,226, 93,125,146,151, 13, 58,182,218,202,129, 42, 62,238,148,250, 43, 77, 84,100,121,144,169, 9, 33, 18,133, 99, 44,
-217,152,156,211,109, 74, 89, 82, 86,130,211,161,105, 72, 42, 10, 72, 33, 41, 20, 52,218, 59,159, 3,237,166,145,137,230, 19,168,
-112, 80,151, 27,120, 21,162,167, 62,164,253, 43,194,191, 91,164,231,184, 12, 52,124,219, 37,247,174,150,116,148,165, 78, 71,108,
- 84,173,189,197, 78,190,177, 66, 84,181,119, 36,212,146, 69,125, 43,229,119,154,101,142, 22, 87,206,192,208, 53,221,125,124, 0,
-251, 58, 40,188,229,230,159,149,195,121, 97,187,178,104, 19, 52, 85,205, 24,106, 29, 63,218,247,149,203,105,246, 38, 24, 82,208,
-227, 69, 11, 65, 33, 72, 90, 74, 84, 8,240,161,235,175, 83,193, 62,176, 8, 56, 47, 24,223,217,186, 23, 16,225, 66,162,146,173,
-113,199,102,197,106,124, 41,211, 82, 13, 53, 80, 18, 54,137,141,235, 99, 59,186, 55,223,216, 52,178, 64,148,153,251, 51, 33, 27,
-148,217, 35,161,252, 53,166,130, 45, 82, 99,107, 82,246,134, 88, 82,129,237,181, 21,166,129, 32,102,187, 85,177, 22, 57, 8, 80,
- 18, 33,189,177, 95,132,249,102,154, 69,242, 1,145, 71,107, 74, 77, 46,196,182, 83,230, 22,194, 80, 79, 64,122,170,154, 12,148,
- 61,117,192,132,198,213,177, 12,186,226,220, 62, 98, 22, 15,192, 71, 65,165, 28, 42,145,112,170,106,147,102, 75,203, 89, 74, 82,
- 19,215,225,167,183, 93,201, 29, 70,102, 97,193,210,165, 54,154, 30,166,148,233,174, 25, 40,136,229, 24,151,139, 74, 97, 11, 82,
-154,170, 82, 9,232,147,225,166,230,125, 41,155,165, 45,205, 68,100, 99,226,110,230,252,162, 84, 9, 20, 9,169,174,154,203,121,
-165, 71,205,116, 50, 83,204, 7,210,183, 41,242,141,197,136, 56,126, 15,119,185,124,194,210,148, 73, 84, 55, 26,138,119,116,174,
-226,154,145,244, 13,103,252,217,206,118, 59, 68, 71,234, 39,107,122,113,197, 87,247, 25,252, 70,233,170,235,191,167,191,200,219,
- 48,202,227, 34,227,204,243, 96, 98,246,119, 82,149,170, 50, 71,146,249,109, 93, 72,248,129, 89, 63, 64,215,147,121,223,245, 37,
-103,182, 31, 15,110, 37,206, 10,165,120,116,140, 36,210,186,111,198, 31,149,223,160,175, 79,206, 51,115,149,139,181,152, 95,216,
- 40,113,111,205,161,105,111, 55,215,199,114,148, 43,244,107,207, 28,195,231,175, 48,115, 37, 88,215,232,111, 82,139,151,125,142,
-217,180,174,162,174, 68, 14, 85,176, 98, 16, 27,176,241,134, 21,111,177,193,142,128,196,100, 91,160,132,109, 74,122, 15,138,133,
- 95,126,178,187,166,220,110, 46, 50, 93, 74, 92, 78,117, 42,187,115,204, 82, 72, 78,129, 69,173, 25,111, 37, 94,137,145, 58,114,
-109,112,201, 37, 75,146,240,142,132,167,222, 84, 64,212, 69,197,132, 46,193,162,167,169, 54,134,242,230, 67,153, 77,183, 30,111,
-226,124, 28,132,103,156,157, 98, 67,232,170,156,140,212,244, 72,118,169,238, 58, 40, 15,191, 72, 91,249,121,127,188,187,253,180,
- 14,199,169, 88, 45, 36,148,208, 60,170,231,201,159,155,175,163,254, 32,135, 37, 80,196,140,170,229, 20,150,210,211, 78,164,165,
-110,142,223, 10, 42,122,253, 58,181,109, 63,167,125,231,116,147, 68,157,192,172,214, 87, 16, 87, 78,146, 92,185,255, 0,154,255,
- 0, 48, 54, 75,144,202, 93,159,136,248,254, 5,145,183, 10,146,153,178,155, 74, 28, 74, 59, 3, 83,185, 90,218, 57,111,244,157,
- 27,228,104,184,144,184,169, 9,175,165,111,118, 38, 0, 74,175,231,243,103,245, 58,114,164,100,223,222,136,123,208,195,141,127,
- 13,161,249, 99,230, 41, 10,239, 95, 13,180,237,175, 71, 15,210,238,194, 54,227,105,163,243, 51,175, 28,143,197, 56,250, 89,188,
- 58,234,252,204,215,199, 36,152,117,153, 9,162, 54,183,229, 33,107,240, 7,174,189,159, 43, 52, 5, 39, 56,208, 42,174,199, 9,
- 90,158,172, 43,135,205, 59, 10, 44, 82,135, 24, 92,119,139, 43,243, 17,216,130,146, 13,117, 20, 54, 97,124,107, 40,168,232, 41,
-132, 59,103,212, 59, 84,138,232,112,231,230, 7,205,220, 91,205,145, 49, 22,114, 23,114, 60, 29,198, 60,153,150, 91,178,254,109,
- 42,103,118,218,124, 95, 10,250,120, 40,125,122,162,243, 95,147,123, 79, 51, 10,136,196,114,240,115,112,197, 43,117,179, 67,113,
-133, 40,122, 66,233, 54,119,149,112,151, 56, 88,223,203, 49,231, 98,225,249,163, 44, 23,167, 91, 91, 30, 75, 50, 30,165, 79,236,
-205, 58, 21,123, 53, 13,202, 91,110,247,200,147, 11, 73,201,154,216,158,233, 56,144, 59, 81,109, 35,159,108,112, 97,239, 49, 85,
- 24, 23, 21,135, 84,209, 90, 84, 91, 82,155, 37, 42,168, 86,211, 74,143,167, 91,235, 0,112, 5, 90, 26,234,138,162, 13,150,241,
-112,183, 58,153, 80,148, 2,250,119, 21,209, 37,183,108,162,133, 45, 28,134, 60, 66, 48,219,249, 7, 38, 83, 77, 37,166, 55, 57,
- 81,189, 63,245,110, 39,198,163, 84,253,223,145,237, 55, 90,151, 10, 59,131,134,105,181,245,172, 87,194,174,109, 29,210, 20,186,
- 69,186, 53,253, 12,220, 3, 38, 4,229, 37, 38, 66, 2,118,165,106,241,168,165, 15,211,168, 61,177,215,252,170,255, 0, 6,122,
-201, 7, 3,208,162,153, 52,219,121,163,241,103, 74,118, 69,189, 16,227, 38,163,121, 29,212, 58,141,104,118,215, 44,187,110,184,
-205, 66,152,138, 97, 40,171, 78, 9, 3,146, 27,118,137,111,111, 67, 67, 78,253, 52,236, 53, 43,170,169,242, 10, 90,113, 41, 74,
-154, 7,165, 42, 70,184, 90,187,169, 63, 33, 13, 52,144, 60,180,211,232,215, 52,163, 7, 47,197, 76,134,218,168,180, 37, 39,219,
- 79,243,104,104, 93,214,149, 48,244, 23,206,212,148,253,186,230,146, 16,214,156, 81,104, 98, 71, 84,148,212,246, 21,239,174,100,
-187,169,109, 24,187, 14, 29,170,109, 43, 42,240, 7, 68,115,168,142,211, 84,205, 63, 16, 24,203, 51,111, 86,230,158,182,202,144,
-216,140, 29,108,150,254, 97, 79,212,109,173, 58, 84,119, 35,182,170,252,211,189, 13,182,202, 71,151,112,167,181,104,126, 90,242,
-233,230, 13,226,222, 32,192,104,237, 70,185, 0, 49,169, 82, 60, 27, 23, 40, 66, 95,152,167,159, 88, 72, 82,220, 71,198,119, 44,
-141,192, 39,160, 72, 30,193,175, 25,110,151,166,119,147,149, 74,250, 75, 4, 34,217,129,160,214,129, 21, 35,197,102, 45,118,149,
- 54,154,175,175,146, 59,251, 15,214, 58,146,117, 17, 66,236, 17, 36,150,184,148, 41,228, 60,238,211, 98,139, 32, 73,117,182,252,
-164,144, 66,214,134,208, 64,247,133,129, 81,169, 91, 45,181,243,144, 0, 81,211,222, 54, 17,168,154,118,174,107,242,143,170,120,
- 16,164,127, 10,179, 56,253,234,232,235,138,102, 53,166,220,202,165,203,121,197, 84, 36, 54,150,193, 89,169,167,134,180,253,147,
-147, 31, 32,215, 39,117,189, 39, 0,179, 78, 96,231,216,173,157,225, 69,223,121,201,173, 21, 39,216,129,145,120, 67,213, 87, 60,
- 76, 84,181,219,255, 0,184, 86, 9,161, 75, 96,220, 92,255, 0,210,138,101, 93,130,152, 65,243, 17,240,255, 0, 90,135,221,171,
- 39,243,141,159, 96, 26, 90,124, 87,142,140,189,185, 42,251, 57,107,152,249,179,188,224, 32,136,244,252,212,235, 25,143, 90,155,
- 55,249, 82,103, 19, 25, 18,230,228,151, 43,139,219, 66,156, 82,208, 18,130,181,119,239, 74,117,247,157, 41, 23,153, 17,188,209,
-177, 80,118, 37,207,145,148, 21,150,228,151,118,132, 48,203,191, 47, 44,227, 11, 42, 83,105,150,243, 91, 85,177,210,159,217,170,
-131,181, 71, 79, 13, 78, 89,115,164, 23, 38,143,193, 66,223,249, 59, 45,176,172, 47,212,171,205,243,133,179,108, 89,110, 5,195,
-152,159, 47,117, 84, 1,113, 6,157,105,210,190,205, 79,182,234, 27,191,144,130,169,183,124,175,121,181, 30,251, 72, 3,138,110,
-178, 93, 46,246,121, 72,102,104,113, 32, 47,203, 36,212, 1,218,189,245, 25,125,183,182, 64,104, 18,251,118,227, 45,179,128,113,
- 42,193,217, 22,245,213,166, 75,100,184,118,209,101, 39,125,104,124, 69, 53, 70,220,109,252, 5,170,236, 87,223, 85, 76, 81,231,
- 13,180,184,220,134, 67,204,132, 39,112,163,155, 84,160, 65,167, 69, 36, 10,253,227, 84,187,217, 43,146,212,108, 26, 90, 40, 66,
-232, 79, 14,218,231,183, 58,218, 94, 90,220,132,219,125, 16,191, 49,178, 91, 34,161, 32,130,129,220, 84, 84,255, 0,147, 85, 89,
-222,215, 87,165, 59,187, 46,104,193, 73,121,243, 33,117,225,110,182,196,253,179,140,121,106,125, 74, 86,253,169, 10, 0,246, 20,
- 53,221, 74,253, 52,212,124, 76, 15,113,169, 82, 91, 60, 70, 54,151, 83, 53, 82, 39,218, 88, 83,168,126,171, 19, 74,210,164,149,
-182, 40, 19, 78,191, 8, 43,241, 21, 29, 7,211,211, 79,153, 41,111, 28, 21,137,173,175, 12, 84, 70,225,105,113, 10, 90,222,140,
-202, 3,136,113,191, 48, 15,196,189,194,181, 61,118,245,241, 63, 95,125, 59,130,230,156, 80,150, 12, 49, 10, 85,198, 6, 80,200,
- 88,242,156, 84, 54,219,121,178, 28, 79, 70,138,193,221, 67, 80,164,208,129,218,158, 26,230,225, 32, 12,199, 18,152,120,117,168,
-224,186,159,200, 97,165,241,204, 25,123,153,249,181, 69,105,196,146,161,178, 58, 20,146, 84,147, 65, 83, 67,214,132,119,233,238,
-213, 18,181,148, 36, 54,160, 90,231, 14, 11,147,220,131,115,146,244,167,144, 10, 22,165, 56,224,109, 46, 29,172,163, 97,234,165,
- 87,189, 40,107,236,233,227,211, 87,237,186, 16,214,130,137,123, 54,162, 64, 85,230,235,126,121,169, 14,182,137, 37,228,178,154,
-151, 84, 74, 67,207,146, 1, 32,116,162, 19,209, 40, 79,115,208,116, 29, 53,101,130, 13, 66,164,122,124, 84, 28,179,232,192, 21,
-162, 21,218,114, 95, 67, 40,125, 94,106, 2, 20,250,138,234, 27, 89,170,169, 78,222,202,125, 58,119,225, 53,162,180, 76,157, 49,
-121,160, 40,253,134,221,203, 91, 86,227,238, 33,166, 98, 35,206,117, 75,171,206,110, 80, 38,158,223,197,212,234, 34,245,130, 70,
-145, 69, 33,108,227, 27,135,106,188, 60,123,150,180,245,174, 59,105,253,130, 91,109,123, 71, 82,124,215, 8, 10, 90,136,235,185,
- 64, 0, 62,143, 3, 90,102,123,165,145, 14,245,173, 2,198,232, 60, 87,169, 29, 70, 78,235, 12,255, 0,186,172, 14,137, 1, 36,
-213, 91,192,175,210, 77, 79, 83,219,195,167, 65,170,249,180,170,146,108,227,138, 93,105,228, 11,148, 73, 13, 45,110, 41, 32, 26,
- 1,191,227, 0,247, 80, 29, 40, 72,169, 7,195,190,131,172,193, 93, 58,100,193, 90, 62, 62,228,200,242, 20,210,102,124,187,177,
- 29, 1,185, 76, 56,194, 37, 71, 91,100,128, 16,160,229, 91, 95, 78,166,160,247,235,219, 77, 68, 78,128,234,109, 65, 25, 21, 11,
-184,217, 9, 90, 64, 64,175, 84,126,146,237,146, 45, 82,185,139,139, 92,138,229,174, 66,215, 35, 37,197, 27,113, 66, 69,173,103,
-169,145, 25, 59, 54,134,212,107, 86,202,235, 94,137, 4,144, 53,234, 31, 41,188,203,117,238,157,186,248,141, 96, 81,142,233,234,
- 61,125,126,213,227,191, 54,188,184, 0,201,125,104,194, 28, 49,123,120, 17,251,205,235,233, 30,204,112, 92,205,155,139, 58, 13,
- 66, 15,249,117,233, 56,101,170,242,165,220, 52, 81,249, 56,252,132,117, 12,245, 4,233,243, 93, 85, 12,241, 68,149, 86,199, 80,
-130, 93,106,160,119, 4, 87, 71, 72,151, 81, 99,108, 60,216, 10,105,148,162,158, 59, 43,253, 26,227,152, 10,232,125, 22,153, 55,
-153,177, 42,151, 90,109,212,154,128, 11, 98,169,251,180,221,246,141,126, 41, 86,221, 22,168,219,241, 87, 49, 74,121,101,116,115,
-226,242,235, 68,138,251,180,179, 35, 12, 24, 34,248,133,201,166, 69,173,221,167,203, 71,106,232,235,149, 76, 10,129, 45,181, 43,
-114,104, 9,233, 93, 2,138, 94,149,219,161, 79,151, 41,168,113, 97, 63, 50, 67,203, 13,180,203, 13, 23, 92, 90,143, 64, 2, 82,
- 9, 58,101,113, 35, 98, 5,206, 32, 0,155,203, 54,149,120,120,135,208, 55, 47,242,242,227, 63, 34,192,254, 61,100,119,106,157,
-155, 61, 1,149, 6,149,220,209, 84, 9,233,237,214, 33,206,254,115,237, 60,164,210, 29, 40,123,199, 0,171,219,134,239, 28, 3,
- 23, 46,161,241, 15,229,173,233,163,137,203, 23,124,237,209,151,223,218,216,243,145, 74,196,150, 82,242,122,144, 77, 10, 7, 95,
- 96,215,142,185,211,245, 41,187,111, 46,116,118, 3,195,103, 78, 69, 82,111,121,161,141, 39, 78, 42,232,199,206,184,247,142,160,
-136, 24, 46, 49,138, 98,177,227,163,203,110, 82,154,101,169, 33, 41,241, 42, 53, 95,217,172, 2,246,109,219,153,164, 46,158, 73,
-100, 39,128,173, 21,106,227,124,184,186,193,128,160,166,107,234,119, 15,132, 28,123, 39,228,168, 76,161, 32,147, 30, 28,145, 95,
-162,164,234,107,106,242,187,119,220,205, 33,180,127,105, 9,131,118,219,187,211,136, 42,167,102, 62,191,120, 59, 30, 46,166,222,
-219,249, 52,164,110,218,227,139,114, 66, 20,161,254,168, 9,214,175,177,254,153,247,205,198,134,111,203,106,150,182,228,249,101,
-249,130,164,156,189,249,164,242, 92,104, 47,142, 48,198,109, 54,166,208, 20, 60,247, 25, 72,113,182,255, 0,173, 65, 85,154,107,
- 88,219,255, 0, 74,214,150,109, 18, 93, 72,231,145,152, 83, 13,228,225, 11,117, 46, 76,250,128,252,198,253, 80,101,214, 25,161,
-238, 71,151,108, 45,169,123,218,180,188, 88, 45,147,225, 82, 73,161,214,153,178,121, 53,176, 89, 0, 35,183, 26,135, 72, 79,109,
-246,104, 94, 40, 6, 43,153,150,126,122,203,114, 92,168, 93,243,204,243, 33,154,211, 11, 47, 47,231,174,174,173, 14,168,147, 94,
-133, 91,104, 61,195, 90, 0,229, 72,108, 35,211,107, 11, 65,225, 64, 19,137,118,162,198,126, 80,197, 69,179, 78,116,254, 35,123,
-146,136, 79, 45,118,247, 20, 75, 69, 74, 52, 80, 29,143, 95,110,156, 89,242,133, 27,226, 72, 59,233,222,223,183, 24, 59,210, 1,
-169, 72,120,231,148, 46, 15, 73,144,150,158,110, 42, 73, 9, 92,199,151,181, 45,143, 96, 39,169, 63, 70,167,108, 54, 49,105,139,
- 6, 37, 74, 67,108,117, 86,136,253,254, 35, 90,254, 87,229,133,237,100,109,170,238,222, 98,188,164,206,253, 84, 86,148,161, 27,
-190,205, 76,255, 0, 41,109, 43, 94,242,123,244, 45,249,171,138,230,245,246,234,146,177,228,158,173, 54, 26, 10, 79,142,172,146,
-141,102,137,163,219,226, 57, 91, 46, 52,202,127,135,227, 86,244, 60, 84, 84, 80, 43,215,175, 93, 72, 71, 30, 24, 41, 8,192, 1,
- 70, 49,123,196,119,249,163,231,157,113, 73,105, 45,119, 39,181, 84,116,140,157,195, 82,136, 75, 90,234,156,149,252,180, 95, 33,
-184, 27,114, 60,165,142,163,168, 81, 6,154,138,155,126,130, 19,164,226, 83, 73,183,120, 24,104, 49, 69,251, 21,205,183, 11, 65,
-144,226,202,138,106,170,212,125,218,236, 27,215,212, 26, 53,133, 8,247, 47, 20,247, 90, 85,133,197, 98,124,200, 72,113, 67,192,
-208,208,157, 77,131, 81, 85, 40,215, 84, 35,173,150,222,203, 73, 79, 98,174,155,122, 14,250, 33,197,118,170,111,110,125,196,184,
- 88,144,205, 26,236,149,246, 26, 69,240,137, 69, 28, 42, 17, 77, 29,129, 79,223, 44,222,224,148,172, 45,167, 5, 22,147,214,149,
-253, 58,140,139,108,250, 71,234,136,208,116, 38,173,183,240, 93, 86,100,144,187,141,199,109,207, 49,130, 70,243,187,111,191,232,
- 26,153,106,122, 10,113, 98,208,242, 83,240,182,179, 65, 90,129,254,109,116,154, 33,169, 61, 71,199,223,144,216, 94,229, 34,158,
- 4,117,209, 67,151, 67,151,234,241, 55, 13, 84,180, 41,193,254,174,187, 84, 42,178, 62, 21, 57,245,159,146,109,218,208,157,169,
- 79, 77,113,210, 6,230,186, 42,114, 74, 98, 97,121,107,146, 10, 34,179, 33,208,133, 81, 65, 9,252, 58, 78, 91,136,227, 21,113,
- 71,100,110,147, 0, 21,157,193, 56,229,104,132,203,243,227,173,201,159, 10,148,149,163,177, 31,126,170, 87,251,139,222,226, 25,
-146,158,179,181,104, 3, 86,106, 45,207,209,144,137, 24, 46, 38,211, 40,140,243,210, 37, 94,230,165, 13,138,252,164, 68,249, 77,
-149,116,162,129,113, 68,208,251, 5,123,235, 31,243, 2,253,205,128, 48,147,137, 94,163,253, 63,237, 53,158,123,178, 48,107, 67,
- 71,105,196,253,201,170,204,211,112, 27, 45,133,121, 73, 82, 40, 92, 90,186,169, 35,219, 95,139,175,178,191, 71,179, 88, 12,248,
-154,175, 85,185,245, 8,111,203,220,149,141,241,230, 53, 46,245,115,184, 70,134,136,236, 62, 80,176,202, 80,167,148,208,240, 37,
- 74,169,175,143,142,165,182, 61,174, 77,206, 64,198, 10,146, 84, 22,237,186, 51,107,140,201, 43,168,208, 42,106, 87, 55,172,184,
- 63, 47,250,178,187,170,230, 37,202,192,248,209,111, 45,227,114,125,165, 38,239,117,132,217,234,166, 91, 88,109, 13, 33, 73,255,
- 0,173, 90,182,142,244, 58,212,124,123, 94, 90,164, 49,179,198,185,166, 66,154, 90,127,172,122,186, 22,118,203, 59,238,115,252,
-215, 63,233,236,235,243, 26,235,120,254,168, 60, 15, 78, 42,233, 96,120, 47,165,127, 79,204, 53, 10, 28, 8, 87,140,129,202, 55,
- 33,219, 76,115,118,200,238,143,154, 2,151,174, 47, 7, 30, 86,229,118, 67, 64,167,217,166, 15,177,191,222,221,226, 94, 74, 75,
-120, 52,119, 88, 61, 67,237, 83,113,110,123, 63, 39,183, 69,156, 77, 15,226,227,222,121,237, 38,167,213, 90,116, 5,103, 44, 57,
-143, 39,221, 35,131,197, 94,145, 51,203,164,103, 14,232,151,107,134, 49, 58, 43, 18,144,127, 88, 72,125, 17, 35,185,238, 58,239,
-242,235,107,108, 29, 36, 99,223,241, 80, 23,190,109, 64,195, 71, 75,234,168, 30,236,211,148,245,122,252, 9,243, 88,244,172,166,
- 33,133, 45,126, 82,155,182, 41,194,131,224, 66,167, 23, 58, 14,212,235,174,135, 91, 51, 41,135,179,246, 40,193,230,230,222, 78,
- 47, 39,251,197, 3,115,206, 77,245, 17,138,178,233,228,175, 75,121, 20, 59,120, 27,165, 75,143,142, 76,122, 26, 18,154,124, 74,
-118, 26,159,101, 20,167, 66,163,163,198,250,159,203,146, 55,117, 28,254,229, 49,101,230, 78,221,121,221,241, 8, 63,218, 7,220,
-113, 85,113,238, 83,226, 28,221,231,152,118, 1,198,229,188, 84,211,145, 39,178,153,176,154,112,147, 84,254, 20,186,208, 74,186,
-244,173, 61,154,149,130,243,233,143,230, 70, 91,253,102,159,185, 79,182,254, 29,209,180,134, 70,191,250,174,195,222,171, 47, 48,
-122,113, 98,125,190, 69,231, 27,142,149, 5,161,115, 26, 92, 93,175, 65,144,132,245, 82,154,117, 0,164,211,196, 26, 40,120,141,
- 92,172,247, 32,230,130, 92, 28,222,158,142,209,193, 80,247,158, 92,109,193, 38, 38,150, 72, 51,105,227,216,120,170,223,196,203,
-145, 11, 34, 56,237,193, 10,109,230,156, 74, 22,130,138,109, 70,234,118,167,183,221, 93, 71,243, 29,187, 93, 15,136,213, 29,202,
-146,190,222,231,194,126, 97,117, 59, 8,226,134,238, 2, 26,145, 17, 78,148,161,151, 10,148,154, 36,117,234, 84,124, 41, 66, 71,
-142,176,123,219,231, 49,196, 2,189, 25,106, 35,208, 9, 87, 6,201,142,167, 24,180, 73,146,127, 26, 35,236, 65,242,234,219,117,
- 30, 29, 15, 80, 62,207,118,171,175,115,184,163,190,102, 92,188, 52,100,170,246,103, 44,205,184,200,113,194,183, 92,169,216, 91,
- 70,229, 2,107, 74,119,246,248,105, 88, 42,173, 86,208,180, 52, 10, 33, 99,172, 41, 83, 17,243, 40, 81, 82,128,105,166,212,224,
-222, 21,237,160,169, 29, 7,142,159,214,141,193, 58, 99,123,193, 47,184, 89,226, 77,134,255, 0,154,186, 81, 10,105,150,146, 41,
-181,123,217, 21, 21, 36,154, 7, 1,239, 94,154, 44,110, 44, 53, 8, 74,250,247, 86,140, 46,218, 45,151, 68,161,214,183,149,184,
-218, 91, 81, 64,163,123, 9,169, 87,135,126,159, 95,176,107,151,111,214,212,197,216, 18,186, 21,124,113, 23, 12, 30, 21,180, 60,
-162, 19,110, 5, 37, 20, 67,138,109,164,252, 65, 98,138, 85, 16,175,103,135, 77, 65, 70,206,254,165, 7, 28,190, 19,221,214, 87,
- 41,121,138, 35, 54,183,165,111,113,198, 35, 33,110, 21,200,144, 82, 36, 78,116, 31,192,148,164,116, 74,127,170,145,211,237,214,
-129,181, 3, 37, 58, 83, 59,233,116,130, 74,166, 23, 43,235,105,151,185, 6,155, 85,189, 8, 32, 40, 37,209,248, 86,160, 58, 18,
-138,213, 41,173, 43,220,211, 87, 72, 96,160, 85, 57,238,234, 84,211, 18,140,252,208,210,201, 63,239, 11, 90,192, 90,170, 84, 5,
- 42, 73,241, 0,116,255, 0,159,164,125,244,162, 58,133, 39, 96,195, 38, 39,212,172, 5,134, 43, 76,161,181, 62,165, 24,234,121,
- 43, 95, 64,149,205,113, 36, 16,144, 43, 77,169,167, 65,246,158,218,175, 75, 57,113,162,159,100, 32, 10,171, 47,133, 92,211, 22,
- 48, 83,174, 41, 5, 78,121,197, 2,133, 67,250,160, 10, 10, 80, 26, 39,167, 78,230,157,245, 1,123, 24,149, 74, 91,200,230, 96,
-142, 48, 47,111, 61, 29, 42, 74,144,192,119,227, 52,162,148,128,124, 43,227,211,195,244,245,213,126, 72, 40, 84,187, 37, 95,143,
- 92,215,181, 68, 44,132,171,161, 82,151, 77,228,248,147,212,168,159,103,244,105,185,143, 20,253,146,212, 41, 62, 55,153, 73,132,
-243, 49, 80,241, 8, 74,130,148, 73, 81,169, 7,193, 41, 35,183,113,215,233, 39, 68,146, 0,236, 81,129, 5,116, 95,130,249, 42,
-211,114,138,113,203,202, 25,149,111,185, 71,114, 12,232,110,252, 45,188,195,192,161, 68,169, 93, 43, 66,105,214,163,195, 81,129,
-210, 88,202,217, 99, 36, 57,166,160,246, 42,190,255, 0,182,253, 75, 9, 25,211,208, 42,125,234, 35,211,156,222, 50,204, 66, 45,
- 78,166,126, 37,145,135,110, 56,237,192, 13,254, 83, 43, 85, 87, 25,213,109, 74, 74,216,175,113,220, 83,223,175,108,121,117,206,
-204,230,171, 32,247, 97, 43, 40, 30, 58,248, 17,212,126,213,243,243,204,190, 76, 60,185,117,170, 32, 76, 50, 18, 91,134, 45, 60,
- 90,123, 51, 7,136, 35,173, 4, 85,196, 51,156,142,100, 38,108, 87, 20, 70,224,213, 69,122,248,120,235, 68,102,227,141, 52,149,
-145, 92, 90,233,226, 20,187, 19,225, 20, 74, 96,189,116,136,151,106, 58,109, 70,224,126,221, 53,188,220,157, 90, 49, 37, 21,184,
-226,163,124,147,196, 86,203, 44, 15, 62, 35, 74,142,234,143, 68,249, 96, 3,165,246,251,231,204,237, 37, 39,115, 11, 88,218,170,
-211, 47, 12, 46,168, 7, 73, 65, 73,232, 74, 69, 15,219,169,199, 58,156, 20,120, 33,201,178, 78, 33,117, 74, 82,220, 56,134, 66,
-123,110,108, 84,129,162,125, 67, 7,204,104,142, 26, 78, 73,202,203,197,153, 29,249, 74,109,182, 75, 69,190,170,221,223, 77,231,
-220, 34,131, 18, 82,209,192,233, 19,125,251,136,178,104,175,132,170, 19,202, 67,103,170,219, 69, 65, 3,199,182,187, 21,244, 82,
-228, 81, 36,129,236,224,172,207,166,124,167,142, 56,122,100,171,222,101,137, 38,255, 0,122,106,191, 38,137, 17,194,144,219,128,
-252, 53, 36, 26, 1,227,172,219,204, 62, 93,220,185,146, 49, 13,148,218, 24,115, 85,141,226,218,226,228,105,136,209, 90,220,183,
-243, 11,189, 72,142,168,120,253,136, 91, 97,161, 37, 12,198,140,132,176,210, 18, 59,116,233,172, 33,191,166,113,118,253,119,115,
-234, 62,213, 83, 60,162,249,141,101,146,170,165,102,158,176,185, 70,242, 94, 49,231, 42, 10, 21,186,159,182, 83,138, 21,247, 13,
-163, 87, 61,163,244,237,178,237,244, 47,102,179,216,159, 65,202, 54,241, 98, 69, 85, 93,202, 57,111,147, 47,232,121,217,153, 21,
-233,246,149, 82,164,179, 33, 77, 55, 67,254,169, 7,239,214,149,183,249,125,181,109, 64, 8,173,216, 15, 88, 10,106, 29,146, 40,
-199,117,129, 87, 43,238, 97, 45,110, 57,243,210, 36,184,224,221, 85, 72,117, 78, 42,191,237, 18,117,111,183,218,153, 8,238, 52,
- 1,212, 19,214, 90, 6,112, 66,219,182,112,219, 37, 91,159, 9, 2,189,212, 6,158,139, 70,179, 52,175,134, 27,154, 23,222, 57,
- 50,220,128,227,110,205, 70,213, 2,149, 37, 70,169, 41, 61,252, 52,163, 97, 97, 71,104,105, 85,206, 70, 53,102,202,178,176,164,
-221,163,179,142,190, 20,245,209, 11,116, 20,162,167,240,237,241, 7,190,171,252,196,195, 97,108,233, 32,102,167,156,168,163, 55,
- 74,219, 68,231,196,218,185, 86, 78,113,200,176, 27,124,247, 49,252, 22, 34, 36, 49, 8,169,167,174, 32, 0, 29, 90,122, 19, 90,
-117, 36,142,218,172,242,182,219,125, 39,231, 94,186,132,228,213, 21,178,217, 92,185,190, 44,230,149,224,171, 3,211, 10,157, 75,
-193, 70,148,237,236,214,128,214, 97,165, 88,132, 41,218, 45,234,224,235, 6, 12,119,156,101,165, 31,143,202, 81, 74,220,247,116,
-235,215, 64,143, 8, 97,154, 83,195,170,154, 3,127,254,239, 56,207,158,175,149,249,150,171, 26,159,181, 43,218,186, 43,117,123,
-129, 94,154, 75,189, 85,223, 4,209, 31, 56,243,136,177, 57, 81,210,246,101,116, 13,169,101, 42,242, 27, 88, 4, 15,166,186,175,
-110,155,253,204, 85, 22,209, 87,172,170,164,247,210, 71,132,109, 86,101,140, 91,136, 45, 54,230,227, 66,243, 95, 91,109,237,109,
- 68,151,126, 47,169, 73, 26,130,183,222,247,151,186,175,193,190,196,156,119,183, 36,213,216, 4, 7,179, 99, 56,250,121, 6, 83,
-204,220, 16,128, 82, 84,150,206,212,169, 41,169,255, 0, 72,253,154,187, 67,119, 53,224, 1,236, 42, 67, 83,174, 62, 97,130,179,
-118,215, 34, 68, 75, 77, 71, 95,154, 42,144, 20, 8, 85,117, 49,107, 99, 16, 21, 49,208,167,112,218, 70,223,194,172, 53,145,207,
-149,183, 69,122,164,149, 4,147,211, 73, 90,204, 12,206, 96,201, 60, 32, 55, 36,117,227,251,226,165, 60,164, 40,208, 35,183,129,
-212,217, 9, 74,171, 29,102,186, 33,199, 80,210, 92, 5, 85, 2,149, 26, 73,216, 46, 23, 81, 26,109, 54,119,110, 94, 75, 44,133,
-188,234,246,128,148, 10,158,191, 70,147,124,130, 49, 82,140,214,151,154, 4, 90,137,198,151,196,178,151,191,135,184, 91, 74,119,
- 41, 74, 73,232, 52,203,249,148, 85,165, 83,143,164,146,149,162,252,106,199, 25,135,233, 45,178, 3,102,138, 79,178,159, 70,156,
-185,228,182,173, 77,201,210,113, 75,228,170,214,217, 75,113, 25,246, 3, 95, 31,191, 66, 32,226, 42,228, 28,224,114, 79,214,219,
- 12,201,129, 42, 76, 82,150,137, 31, 30,209, 64, 52, 12,205, 6,149,197, 24, 49,199, 26, 41,132,140, 29,192, 35,183, 26, 74, 29,
-113,224, 42,159,133, 59, 73,250, 14,131,101, 20,169, 64,179,161, 79,236,124, 73,118,106, 27,179, 76,168,141, 4,180, 85, 66,180,
-169, 68,125,103, 76,100,188, 99,156, 5, 9, 78,153,110,240, 9,173, 20,102, 60, 92,130,207, 42, 66, 33,186,210, 82,165,168, 56,
-181, 32, 26,245,240,211,153,109, 35,184,161,112, 72, 50,233,240,156, 20,250,201,148, 92,109, 77,168,190,150,165, 58,163, 93,219,
- 69, 1,212,124,187, 99, 56,100,158,195,184, 56,102,171, 86,125,144,207,204, 57,125,225, 32, 54,132, 90,109, 22,200, 8, 8, 29,
- 66,164, 85,229,245,233, 78,138, 72,167,187,223,175, 59,249,166, 67, 46, 68, 99, 32,209,239, 94,229,242, 22,220, 67,178,248,199,
- 55,189,196,158,204, 61,212,246,164,249,221,201,156,126,222,150,130,144,149,148, 87,104, 87,150, 9, 3,169, 82,128, 42,251, 6,
-177,177, 9,148,209,109,208, 78, 9,212,114, 92,244,181,216,100,250,145,228,219,133,203, 32,119,103, 23,241,180,183, 26, 44, 56,
-222,235, 93,218,237, 19,172,135,100,133, 26, 56,136,235,163,109,179,250,238, 84, 18, 18,133,107, 75,177,129,219, 37,187, 96,135,
- 9,229, 21,115,184,181,167, 32, 58,221,211,192,118,170, 44,205,143,152,238,164,186,185,198,214, 7,105,107,120, 72,241,153, 63,
-213,110, 84,226,123, 23, 75,125, 60,250,110,228,159, 86,151, 68,217,112,230,228,241,215, 8,218, 95,110, 37,199, 47,110, 18, 87,
- 59, 33, 92, 51,177,198, 33, 15,217,161,213,166,132, 23, 8,242,219,236, 18, 72,219,163,207, 61,183, 45,176, 52, 0,233,143, 14,
-138,241,113,244, 43, 49,231,159, 50,157, 14,168,227, 56,100, 0,232,251,135,219,195,165,125, 0,122,113,252,185,248, 3,133, 89,
-141, 47, 27,193,162, 78,200,131, 73, 76,156,187, 32, 6,247,146,201, 89, 20, 81,249,151,247,169,144,191, 20, 50, 16,143,244,117,
- 24,199,222,111,103,243, 28,116,244, 12, 2,243,126,243,205,151, 23,196,234,121,161,224, 48, 31,183,215, 85,208, 11,103, 21,217,
- 34,180,132, 53,109, 97, 33, 32, 0, 18,202, 69, 6,172, 54,156,172, 8,196, 42,140,155,139,157,197, 44,155,198,182,197,182, 71,
-200,181,219,254,204,105,212,220,170, 0,201, 38,203,247, 14, 40, 25,156,241, 13,146, 99, 14,165,251, 92,119, 82,164,144, 66,152,
- 73, 20, 63, 86,170, 91,142,200,235,108, 90,165,109,119, 55, 2,184,133,235, 51,242,209,226, 30, 86,106,239,144, 89,172,136,196,
- 51,175, 37,231, 99,100,214, 6, 68, 89, 78,201, 77, 74, 76,166,147,181,169, 96,158,138,243, 6,234,116, 10, 79,125, 49,178,222,
-230,177, 58, 30,106,206,130,180,174, 93,230,201,236, 75,104,234,180,112, 63,113,225,246,117, 46, 2, 98,139,205, 56, 19,148,102,
-113, 7, 44,219, 85, 42,210,102,252,163,161,246,246,195,185,219,148,178,211,115, 97,169, 95,132,129,215,253, 19, 84,171,198,182,
- 83,121,244,237, 19,192,123,135, 48,189, 83,202,187,180, 92,215, 0,105, 61,240, 59,167,136, 61, 7,239,246,142, 8, 51,207, 92,
- 95,107,226,223, 82, 88,212,187,107,129,220,103, 39,110, 29,198,223, 33, 72, 9,110, 84,119, 66, 92, 69, 54,147,184,138,245, 30,
-208,117,109,181,185,254, 99,100,246,140,104, 42, 59, 8, 85,253,222,219,249,125,236,114,145, 77, 85, 14, 29, 96,250, 21,214, 78,
- 57,176,214,193, 18,236,210, 22,168,239,132,133, 42,155, 18,235,212, 9, 41, 77, 69, 8,110,135,113,247, 80,107, 19,190,183,211,
- 33, 11, 67,143,116,214,192, 43,193, 62,230,215,150,225,219,141,190,222,152,239, 62,148,144,243,142, 4,173,191, 53, 64, 10, 32,
- 40,252, 52, 3,219, 95,210, 33,110,218, 26,104,167,118, 54, 25,157,168,228,170,181,214, 3,207, 60,119, 6, 83,185, 74,113,215,
- 20,118, 49, 83, 83, 90,116,220,125,234,211,120,222, 1, 90, 60,108,210,202,161, 21,208, 54,212,227,177,231, 20,150,150, 65,112,
- 55,176, 42,157,182,131,246, 13, 73,179, 16,155,190,114,210,147,166,228,226,188,134,214,202,136,111,122,144,176, 1, 81, 6,157,
-125,228, 17,165, 67,104, 18,126, 40,125, 74,149, 91,146,194,228, 52,242, 13, 9, 74, 69, 64,162,183, 3,215,165,123,215,184,211,
-121, 1, 34,137, 9, 8,105, 86, 14,229, 45,249, 24,188,119,190,105,216, 81,227, 52,218, 94, 92,102,214,235,138, 79, 96, 78,199,
- 19, 81,211,168, 80,167,182,186,111,108,220,105, 74,168, 43,142,227,205, 10,230, 95, 61,222, 99, 41,233, 66, 57,118, 74,247,168,
- 25,111,148,164,128,138,138, 32,110, 36,251,124, 41,224, 53,160,108, 80, 28, 42,171,251,189,198,150,170, 60,171,164,116,206,255,
- 0,122,113, 10, 78,240, 27, 11, 62, 82, 20,123,248,210,190,250,159,175, 87,159,166,113,111,116, 42, 3,183, 22,181,253,226,172,
-102, 29,124,135, 26, 51, 46,186, 89, 45,186,216, 66, 20,226,135,237, 82,145, 77,169, 73, 20, 72,247,248,125, 61, 69, 82,254,209,
-206, 36, 43,174,221,185, 52, 52, 28, 17, 90, 6, 83, 9,110,135, 86,226, 72,108,237, 69, 20,146, 63,213, 72,161, 72, 3,199, 80,
-239,178,112, 20,162,154,110,226,215, 26,213, 23, 49,251,210,222, 75, 74, 74,138, 18,241, 74,183, 42,159,132,123, 6,234,154,251,
-255, 0,203,168,171,136, 52,224,164,237,238,117,119,138, 54,218,111, 96,182,219, 78, 56,104, 83,248,201,236,131, 78,137,165, 79,
-197,227,211, 81, 18,219,169, 22, 92,116, 41, 19,183, 86,151, 66,202,214,163,217, 39,112, 90,235,226, 79,130, 0,247, 13, 50,117,
-186,127, 21,206, 9,108, 43,148,118,210,149, 41,137, 37, 98,155,151,243,137,101, 10, 53,240, 1,146,175,191,235,209, 60, 49,208,
-148,241, 94,114, 35,217,251, 81,175,142,115,229, 91,238, 49, 82,192, 12, 45, 11, 73, 74,214,234,151, 64, 15,189, 67,237,219,166,
- 87, 54,192,138,209, 41, 83, 32,163,143,216,186, 77, 61, 45,114,215, 14, 77,182, 24,241,165,222, 44, 43,106,249,107, 46,124,111,
-213,128, 67,173,161, 91,142,223, 49,181, 30,157,137,165,125,186,181,249, 97,191,127,199,247, 70,235, 36, 70,254,233,245,228,105,
-219,235, 88,119,155, 60,165,252,242,194, 88,227, 0,190,154,155, 95,222,110, 57,244,145, 80,168,138,225,150, 38,135, 3, 46, 33,
-182,215, 69,177, 93,189, 82,122,244,174,189,181, 8, 18,183,183,138,249,237,122,211, 11,136, 34,132, 26, 17,216,138,214,158, 67,
-182, 91, 99, 8,234,181, 16, 82,141,187,136,253, 97,166,143,217,221, 33,173, 83, 49,126, 25,193, 9,179,140,129,252,157,213, 36,
-176,148, 70, 73, 37,180,237,234, 1,212,157,158,222,219, 92,120,166,151, 23,134,110,196, 62,183,225,177, 47, 82, 81, 21,229, 8,
-233, 90,130,119,168, 0, 5,126,157, 57,158, 67, 8,168, 21, 73, 68, 4,134,137,125,243,141, 98, 98,238,178,220, 91,235,101, 79,
-144, 0,220,149, 4,149,123,141,117, 29, 28,166,243, 23, 51, 36,253,205, 22,249, 57, 16,184,243,138,231,151, 92,156,155,170, 38,
- 33,209, 85, 33, 27,104, 43,244,105,141,241,107,187,186,104,156,219,146,222,245,106,139,235,227,148,166,170,146,150,220, 73, 29,
- 82,180,130, 8,211, 12, 27,136, 78, 11,203,240, 65,156,243,134,172, 79, 50,245,193,181,166, 9, 66, 74,151,182,137, 6,159, 94,
-158,219,223, 61,167, 78,105,132,214,192,226,169,182, 69, 99, 98, 20,151, 91,136,233,125,180,149, 13,213,175,109, 79, 70,194,241,
- 82, 20, 99,216, 1,160, 67, 59,157,185,211,184,121,100,142,190, 26, 84, 66, 23, 3, 86,200, 50, 34,124,139,182,247, 96, 4,168,
- 54,173,206,148,142,218,143,184,180,112,118,160, 83,232, 92, 41, 69, 79,249, 88,165,185, 14,183,106,136,165, 16, 87,189,192,158,
-198,190,209,169, 27,104, 31, 76, 83,105,128, 57, 42,115,148,200,187, 52,167, 75,145,157, 53,221,219,160,211,145,100,211,137,197,
- 50,250,113,153, 85,250,251,123,117,162,234,100, 64, 90,135, 80, 77, 77, 71,223,165, 62,145,188, 2, 56,107, 91,193, 3,114,108,
-138, 92, 86,223, 85,189, 83, 35,121,169, 82, 22,148,172,128,164,159,120,209, 29,108, 14, 5, 17,238, 10,190, 1, 46,125,197,108,
- 37, 11, 83,178, 92, 85, 1, 21, 82,148,173, 49,186,140, 68, 53, 28,130, 40,152, 48, 18,114, 73, 46,118,233,150,153, 10,137, 45,
- 5,183, 65,234,146, 40, 70,145,183,149,151, 35, 83,114, 66, 41, 68,162,173,201, 56, 89, 84, 26,112, 56, 83, 85, 15,194, 41,216,
-233, 66,218,228, 42,151,213,165, 23,196,134, 63,187,139,122,191,239,127, 50,209,252, 61,134,213,244,209, 60, 7,106,165, 56, 34,
-120,248,245, 34,133,173,167,145, 71, 22,181,169, 99,174,229, 18, 72,167,210,117, 33, 21,155, 92, 42,241,234, 81,173,136, 28, 74,
-144,219, 93,126,235, 41,108, 52,181,171,203, 29, 84, 84, 72, 20,211, 31, 11,234,102,210, 0, 13, 9, 17, 73, 95, 65,144, 78,246,
-140, 53,246,175,106,185,161, 31,181, 41,218,165, 1, 67, 77, 78,134,134,228,159, 0, 2,178,120,253,145,246,162,177, 33,208, 20,
- 66,146,118,171,169,233,166, 2,224,201, 33,101, 48, 70, 71,139,109,205,165,199, 97,149,163,111,150,128, 8,219,211, 72, 90,109,
-134,222, 71, 72, 78,107,138,119,137, 93, 91,110,122,210,202,182, 39,198,157, 63,167, 82,161,168, 43, 73,199,210,109, 11,152,133,
-220,101,121,105, 43, 73, 42,173, 52,214,228, 61,163,184, 17,227, 13, 39,188,175,198, 19,156,241,205,141,136,193, 14,182,236,164,
-160, 85,100, 84,215,235, 58,172,221, 90, 92,220, 28,114, 82,144, 92, 67, 10,113,201,125, 65,209,245, 67,180,186, 18,193, 73, 65,
- 29, 6,228,233,205,158,200, 0,171,243, 72,207,185,151, 30,234,128, 43, 49,126,121, 83,232,109,110, 41,211,185, 69, 41,175, 85,
-106,122, 56, 3, 5, 20, 99,159,168,213, 98, 63,143, 92,104, 97,176,231,152,163,240,138, 83,175,134,149,160,110,104,149,170, 37,
-227, 67, 60,182,199, 44, 78, 10,242,220,234,148,173, 53, 27,126,173, 51,250,104,164,118,161,154,112,235,137, 24, 40,114, 71,108,
- 90,248,184,236, 6,223,181,165,114,118,254,251,104, 10,220, 71,183,190,144,146,197,207, 63, 54, 8,209,222, 6, 12,177, 79, 12,
-191,118,150,251,202, 83,178, 90, 66,201,163, 97,210, 19, 79,168,233,219, 45,154,193,146, 65,247, 46,119, 20,164, 66,117,103,106,
-210, 8, 63,136,158,164,157, 42, 90,146, 14, 74, 12, 8,173, 15,137, 35,119,125, 54,145,169,204, 78,232, 84,241, 23, 22, 36,115,
- 62,110,183, 20,134, 97, 89,164, 49,231,146, 54,164, 22,163, 53,220,251,104, 42,125,192, 83, 94, 91,243, 36, 58,107,233, 15, 88,
- 3,212, 23,208, 95, 41,218,219, 62, 94,181,107, 78,109, 36,246,151, 19,251, 59, 21, 71,231,190,107, 85,202,233,145,219, 44,145,
- 93,158,245,146,211, 54,105,142,218, 74,216,136, 26, 74,131, 74,146,164,159,133, 79, 58, 82,219, 77,147, 74,154,252, 68, 26, 87,
-118, 93,144, 55, 67,229, 52, 14,112, 29,189, 52,236, 24,146,172,219,190,242,232,163,123, 34, 26,158,214,147, 78,142,138,246,154,
- 0, 58,213,140,244,207,233,238,249,149,193,226, 94, 10,178,162, 83, 47,229, 41,141,148,242, 61,196,124, 82, 34, 90, 37, 20,186,
-249, 91,148, 4, 45, 72,119, 96, 4,116,113,106, 52,234,117, 41,117,185,182,220, 75,120,236,235, 70,142,190, 30,160, 61,192, 42,
-119, 56,110, 99,150,172, 25,108, 15,202,204,113,205,199, 19,237, 53, 39,170,171,235,255, 0,131,248,151, 29,192, 49,108,123, 20,
-198,237, 48,237, 86,139, 45,186, 36, 8,113, 34,178, 27,109,150, 35,164, 36, 14,157,201,238, 73,234, 79, 83,170,150,215,108,253,
-194, 93,111,196,147, 82, 87,145, 55,157,201,247, 15,115,220,106, 73, 87, 6,207,105,109,150,208, 2, 18, 58,123, 41,173,159,101,
-218, 3, 0,193, 83,229,148,184,172,202,115,108, 3,143, 97,179, 59, 59,204,113,108, 62, 27,229, 72,142,254, 75,124,141,101, 68,
-165,167,169, 75, 95, 48,227,101,210, 7,130, 42,117,109,146, 75, 93,173,161,215, 18, 49,131,250,196, 15,181, 54, 21,126, 3, 21,
- 36,176, 92,177,236,190,193, 3, 38,197,174,214,188,135, 30,186,199, 50,109,183,155, 60,198,238, 22,233,209,194,138, 74,218,121,
-165, 41, 11, 1, 73, 41, 52, 61,193, 26,151,130,214, 45,198, 15, 30, 2,215,198,107, 71, 2, 8,192,208,251, 14, 7,173, 20, 73,
- 67, 78, 57, 40, 38, 89,110,108,182,191,133, 61,143,134,168,123,238,220, 5,112, 78,162,125, 21, 29,229, 59,107,104, 18, 73, 74,
-104, 82,191, 13, 98,251,197,160,141,199, 5,105,219, 39,201,124,224,126,104, 60, 93,108,151,142, 64,228, 27,124, 86,154,189, 98,
-247,118,100, 25, 77, 35, 99,170,133, 45,105,105,228,149, 14,165, 52, 33,116,246,164,107,187, 52,132,181,209, 28,168,183,255, 0,
- 43,183,119, 89,223,177,149,238,191, 15, 88,196, 31,180,122,215, 51,185,182,211, 35, 47,227,255, 0, 77,247,255, 0, 45,249,147,
-154,191, 74,199,118, 54, 9, 89, 75, 78,238, 73, 37, 63, 29, 2, 92,161, 32,246,175,187, 87, 78, 82,144,182, 57, 24, 78, 77, 63,
-111,237, 91,119,152, 32, 7,181,227,139,154,125,163, 31,177,116, 57,140,166, 53,159, 19,198,241,160,194, 63,137, 49,108,107,116,
- 86, 20,148, 52,211,174,165, 59, 17,183,112, 80, 13,160,117,233,222,164,245, 36,234,151,184,195, 71,184,132,223,100, 99,167,239,
- 19,130, 26,228,241,114,116,133,201,242, 89,242, 29,169,107,246,187,219,247,129,176,184, 9, 62, 37,123,125,222,234,156,241,177,
-199,188, 74,213,246,186,176, 13, 8, 49,122,123, 34, 69, 66, 83, 24,169,196,148,213,109,213, 67,165, 59,133, 80,143,126,144,101,
-188, 68,215, 21,102,117,236,172,109, 48, 66,139,178,167, 48,149,252,245,189, 14,169,104,220,212,136,219,134,210, 79,128,168,235,
-167,173, 99, 79,202, 83, 39, 92,184,226,224,162,170,186, 50,151,210,118, 61, 29, 41, 32,180,243,205, 16,217, 35,191,141,126,147,
-165,227,129,244,174,107,175,188,140,101,130,159, 99,202, 76,241,185,167,219, 32, 40, 0,164, 43,114, 74,188, 5, 71, 65,238,210,
- 50, 48,198,113, 9,188,183, 65,195, 58,163,148,199, 28, 78, 34,238,215, 18,151, 91,103,106,170, 73,109,193,225,186,134,148, 81,
-232,126,159,110,133,172, 21,117, 84, 12,215,128,190,133,115, 35,155, 15,206, 38,107,107,109,104, 45,135, 86,162, 79, 68,171,189,
- 73, 2,164, 83,173, 77,126,158,244,208,118, 54, 80,138, 42,238,249, 40,240,205, 87, 50,179, 11,215,240,137,207, 54,135, 86, 74,
- 13, 80,216, 86,240, 20, 58,212, 83,244,107, 93,219,172, 77,195, 69, 66,243,222,255, 0,188,139, 9, 8, 5, 55,194,230, 73,177,
- 18,132, 81,211,229,167, 98, 73,220, 64, 3,216,154,132,143,179, 75,205,203, 2, 76, 84,117,175,152, 46,136, 83, 20, 73,198,121,
-226,146, 26,249,199, 75,109,183,180, 39,114,118, 32, 31, 10, 1, 81, 64,124, 62,221, 68, 94,114,137,161,210, 21,163,109,243, 29,
-174,112, 15, 52, 10,212,225,220,253,103,124, 54,210,167,164, 57,181, 37, 84,118,138,123,219, 82, 84, 41,244, 13, 83,239,121, 74,
- 86, 99,165,104,187,119, 61,193, 56,166,176,172, 86, 61,202,214,249, 69,183, 28,155, 29,176,190,187, 55,252, 36,116,160, 21, 85,
- 72,213,118,227,151,100,103,225, 42,213,111,205, 49, 63,241, 4, 89,133,159, 66,146, 27,102, 60,132,187,190,149, 75, 53, 89,160,
-247, 14,135,232,212, 28,251, 43,163,197,193, 78,219,111,205,154,129,166,168,157, 99,187,182,234, 3,171, 93, 1, 72,234,224, 1,
- 93,125,129, 85,251,181, 1,115,106, 91,128, 86, 43,123,192,225, 82,166, 86,251,144,110, 67,107,101,208,146, 22,146,118,144, 9,
-161,247, 83, 76,140, 29, 42, 69,183, 64,174,141,122,103,228, 69,194,184,194, 68,165, 57, 46, 62,244,161,214,246, 36,165, 77,171,
-162,146,119,116,234, 61,163, 81,146,219,150, 59, 80,192,168,141,225,191, 81, 17, 0,226,143,188,137,195,216,212,108,133,111, 70,
-117,198,163,228, 97,119,139,107, 69,178,132, 50,220,197, 21,249, 65, 85, 33,126, 93,105, 95,187, 94,178,228, 30,106,147,116,177,
-101,113,115, 0,105,245, 12,215,128,252,210,229,102,237,183,238,149,191, 36,181,119, 97,174, 33, 68, 36,241,133,138,205,105,125,
- 87,118, 83,183,105, 40,126,157, 71,179, 90, 4,123,140,147, 60,105, 89, 44,246, 76,137,166,168, 6, 32,216, 96,220,157,222,200,
-153, 16, 40,132, 13,181,241,212,252,140,146, 86, 96,104, 84, 3, 30,200,221,142, 33, 44,184,206,177, 22,139, 80, 44,237,180,179,
-209, 46, 4,128,160,163,239,211, 56,236,101, 6,174,122,112,251,198, 17, 64,212,247,104,226,107, 78, 83, 13, 19, 46, 87, 6,155,
-125, 67,115,109, 41,254,160,248,105, 57, 46,223,108,234, 1,130, 86, 56, 4,226,164,226,136,120, 7, 27, 79,196,174, 18, 86,236,
-196,185,111, 80, 59, 18, 85, 80, 7,219,166, 55,151,173,185, 2,131, 20,246,214,213,208,230,112, 72,243,236,186,209,103,125, 76,
-161,239, 53,212, 84, 20, 54,106, 42, 62,141, 35, 30,219, 37,206, 35, 36,105, 47, 89, 6, 7, 53, 88, 51,140,241,203,212, 69, 66,
-101,183, 25, 79, 98, 82,146, 10,135,219,169,155, 45,171,233,141, 78, 42, 58,226,255, 0,197, 20, 10,190,205,128, 23, 82, 89, 85,
- 13,122,237,175,125, 75,233, 76,131,212,102, 85,136, 61, 93,140,168,253, 13,147,161,146, 48,114,135,220,177,215,155, 14,121,104,
- 83,101, 64,131,240, 17,223,233,208,160,114, 48,121, 8, 33,145, 96, 37,245,184,165,181, 85, 47,113,234,154,146, 78,149,107,168,
-133, 85,124,203,184,189,229,249,191,238,149, 79, 95,139,203,233,165, 90,245,194, 85, 99,202, 56,141,213,151,105, 12, 30,167,245,
- 52,160, 40,168, 1,147,113, 43,165,167, 27,254, 31,224,161,187,203,209, 8, 69,117, 16, 74, 15, 18,203,133,148, 91,101,124,175,
-236,218,154,217, 93, 80,105,180,157, 50,220,226,241,224,123, 70,100, 40,251,168, 76,172,115, 71, 20,151, 63,226, 27,157,211, 41,
-157, 49,168,228,178,226, 89, 45,237, 73,218, 58,117,251,245, 27,177,219,139,107,118,177,217,226,145,177,133,214,209,134,149, 22,
- 99,135,174,241, 84, 10,162,172,138,244, 59, 15, 77, 76, 55, 75,114, 78,205, 92,165, 63,225,228,255, 0,146, 49,254, 89,123,170,
- 63, 80,248, 3,165, 53,163,211, 5, 63, 97,187,116, 40,198,109,197, 11,249, 81,248,146,158,138, 35,199, 81,151,183,115, 75, 25,
- 48,138,117,149, 25,113, 51,220,210, 88,142,216, 62, 63,198,243,237, 8,155, 13, 51,162,203,144,157,196,168, 41, 32,168,245,247,
-141, 86,246,246,110,246,238, 46, 33,174,105, 81,182,130,234, 60, 72, 4, 41,131, 56,236, 40, 65,107,138, 92,126,191,128, 19,215,
-244, 13, 91,173,230,184,127,206,208, 20,204,114, 61,223, 48, 68, 44,118,198,236,182,144, 28, 66,209,212, 80, 84,211, 82, 13,104,
-110, 52, 78, 43, 68, 77,135,139,134, 91, 43, 35,160, 78,140, 77, 87, 53, 41, 62, 49,142, 16,242,228,159,192,165, 80, 87,167,232,
-209, 64,210,139, 90, 35, 5,182, 9,136, 18,164,170,190, 62,221, 27,230, 67, 82,150,179, 46,115, 20,113, 27,146, 64,248, 71, 94,
-186, 5,161, 20,185, 59,218,211,120,144,250,166, 72, 75,165, 21,162, 82, 42, 78,147, 56, 36,203,168,172,246, 19, 13,247, 32,178,
-167, 82, 80,149, 16,104,164,245,215, 40,134,164, 98,182, 45,246,220, 67, 81, 77, 22, 8,161, 3,181, 62,253, 20,178,185,161,170,
-133, 18,109, 80,111, 87, 73, 76, 53, 40, 62,229, 72, 74, 74, 16, 64, 72,247,246,210, 36,199, 0, 37, 42, 11,230, 52, 87, 15, 4,
-227,235, 52, 72,141,170,106, 67,242,222,108, 40, 37,116,160, 81, 29,143, 93, 87, 46,119, 25, 36,117, 25,146,152,182,180, 99, 71,
-123, 52,146,255, 0,128,220, 99, 61, 34,224,212,100,162, 50, 9, 41,109,190,164,167,234,212,173,181,243, 40, 26, 78, 41,149,197,
-147,234, 92, 6, 10, 2,227, 11, 0,238, 97,198,205, 72,248,129, 26,147, 4, 59, 34,152, 16, 91,152, 90, 90,129,231, 41, 33,208,
-160,146,161, 90,127, 87, 72,205,128, 74,196,113,197,115, 95,156,175,173,225,220,183,202,118,171, 34, 84,135,102, 68,180, 78,105,
-107, 3,112,126, 92, 22,106,170, 26,130, 2,147,184, 18, 40,123,145, 74,235,206, 60,239,107,226, 94,234,127, 26, 47,121,249, 83,
-117,227,108, 16,134,227,167, 80,245,212,250,117, 42,201,196,216, 43,121,100,136, 22, 22,153, 13,219,178,124,178,202,237,226,115,
-242, 3,179,111,140, 69,158,204,169, 78,171,122,124,197,163,202,136,176, 22,149, 20,245, 2,170, 53, 81,165,238, 23,133,179,130,
- 78, 45,105, 0,112, 21,105, 3,171,143,244, 45, 39,107,219,199,133,151,116,184, 56,158, 46,210,117, 99, 92, 72,238,211,227,154,
-250, 74,252,183,184,253,137,183,142, 67,228,217,108, 39,230, 46, 87,182,113,219, 89, 41,160, 98,219,100, 31, 16, 71,245, 66,159,
-113, 85,167,176,106,181,191, 75, 87, 69,110, 50,107,106,123, 79,236,162,243,159,155, 59,169,158,231,195, 7, 1, 83,247,125,213,
-245,174,247, 97,177, 80,150,219, 52,240, 72, 26,183,114,189,168,192,175, 58,223,201, 82,138, 23, 59,213,179, 23,176, 94,114, 75,
-187,226, 45,167, 31,180,220,111,119, 73, 68, 84, 71,183, 90,153, 91,239,184, 71,142,198,155, 39, 91, 45,161,109,180, 69,231, 32,
- 43,236, 10, 21,238, 95, 49,124,245,207,118,203,204,118,253, 64,243, 13,226, 36, 97,202,121,206, 57,199,152,140,171,149,217, 54,
-188, 91, 25,149,124, 75,210, 35,198,126, 67,137,120, 66,182,216,173,232, 38,123,237,161, 74, 43,220,224,109,215, 29,166,188,145,
-103,101,184,249,195,190,207,226, 72, 99,133,142,112,104, 57, 53,141, 58,107,215, 83, 71,122,250,147, 22,220,185,146, 17, 90, 1,
-239, 93,110,225,143,204, 99,131, 51,123,111,166, 92, 11,129,241, 92,150, 78, 37,201,111,179,134, 88,103,100,113, 24,199, 21,104,
-198,177,216,243,162,165,246,226, 55, 34, 83,206, 41, 78, 91,129, 1,123,126, 2, 84,175,139,166,189, 65,109,230, 21,173,133,236,
- 60,185, 99, 11,255, 0, 41,161,142,123,169, 77, 45, 0, 84, 80,154,146, 72, 36,186,156,112, 36,224,148, 46,113,120,107, 71,116,
- 98, 73,204,158,206,178,106, 73,246, 99, 81,123, 50,153, 77,134, 86, 84,161, 90, 31, 29, 62,223, 30, 8, 42, 93,138,133,243, 5,
-230, 58, 4,148,249,128, 80, 44,119,214, 43,189, 55, 83,138,177,237,163, 16,184, 95,249,128, 78,139, 47,135, 51, 52,238, 74,148,
-168, 18, 18,216,173,127,106,174,137, 31,110,163,182,152, 79,136,182, 62, 71, 36, 95,193, 79,223, 11,158, 92,119,129,228,220,157,
-129,113, 70, 21,136,219, 31,159,116,180, 95,174, 55,155,132,148,199,115,202,132,167,246, 37,164, 7, 83, 80, 84, 64,220, 81,180,
-244,238, 40,117,101,219, 92,108,131,220, 70,117,167,197,122, 31,156,247, 24, 30,230,181,207, 29,208,218,245, 82,184,123,215, 70,
-236,158,133,178, 92, 42, 16,200,175,176,175,114,174,115, 26, 68,137,146,110,237,188, 29, 66,158,162,182,209,106,101, 10, 77,104,
- 65, 74, 72, 30, 32, 30,154,131,220,156, 72, 58,176, 30,197, 89,218,185,198, 9,228, 17,197, 76, 48, 20,199,236, 66, 92,139,132,
-110, 87, 41, 23, 24,236, 72, 95,204,161, 71,203,136,204,230,132,133,168,246,242,216,113, 97,107, 35,182,209,183,220, 15, 74,231,
- 87, 87,172,133,212, 43,208,123, 53,223,137, 19, 92,122, 21,100,201,120,254,245, 97, 80, 76,163, 42,173, 40,249,173, 72,100,180,
-235,109,168,244, 93, 9, 4, 15, 98,187, 29, 41, 20,209,200, 84,172,243,187, 78, 8, 79,116,177, 75, 83,206,165,230,202,144, 10,
-182, 83,166,244, 47,199,199,199,169,174,156,181,162,149,106, 98,110,200, 36, 56, 21, 11,145,109,130,234, 75, 46, 48, 16,145, 95,
- 53, 37, 59, 91, 39,218,107,223,235,211,166,135,179, 16, 82, 6,102,203,193, 59, 89, 49,152, 49,214, 31,135, 53,208,165, 15,137,
-128,148, 20, 41, 35,245,104, 82,106, 15,179,238,210,158, 55,137,131,194, 74, 72,139, 69, 90, 81, 54, 52,168, 51,173, 23, 11, 53,
- 31,102,226, 33,186, 99,249,204,186,150, 28,121,170, 40, 35,204, 82, 66, 72, 52,246,244,240,212,165,157,184, 25, 16, 85, 67,113,
-146, 72, 30, 28, 70, 11,156, 60,246, 26,105,137, 97,177,181,111, 45,109, 33, 36,213,109,184,149, 40,160, 17,244, 40,164,143,118,
-175, 91, 21,173, 30, 42,160,119,189,192, 62, 19, 67,138,163,216,247,166,124,207,147,238,207,187,105,181,201,148,135, 29, 39,113,
-220, 26, 66, 20,105, 64,105, 78,154,213, 25,186, 71, 98,192, 9, 11, 29,255, 0,134,205,189, 74, 94, 65,165, 87, 73,184,147,242,
-183,180,222,108,173, 59,152, 41,184,179, 10, 20,165,197,109, 31, 49, 33,106, 85,104, 10, 65,220,146, 21, 78,227,174,160, 47,185,
-180,180,159, 12,173, 19,105,242,190,212, 48,120,173,169, 70,231,255, 0, 40,252, 34, 91, 21,183, 69,117, 8, 75,104, 78,247,155,
-113,149,184, 59,212, 13,181,234,123, 29, 66,203,206, 87, 12, 21,170,178, 51,203, 61,177,212, 5,131,212,153, 95,252,163,113, 22,
- 14,229, 38,241, 12, 39,169, 92, 57, 14, 38,167,181, 79, 85,126,128, 61,154,133,155,204, 43,168,142, 2,189,161, 73, 51,202,125,
-166, 97,128, 35,177,197, 70,110,223,150, 60, 11,114, 20,156,123, 55,200,173,146, 27, 74,138, 17, 32,183, 45,162,224,237,184, 41,
- 41, 85, 43,239,211,113,230, 76,181,164,176,180,143, 88, 74, 59,201,187, 96, 43, 4,242, 52,250,138, 27, 31, 74,188,245,199,139,
-117,232,110, 88,114,168,204,168, 22,144,220,195, 22,122,208,223,141, 30, 66, 27, 4,143, 13,228,104,211,243, 54,223,184,224,240,
-246, 30,202,143,119,193, 37, 7, 37,110,155, 57, 38, 55, 50, 65,218, 65,247,138,123,214,216,217, 78, 79,142, 78,110,215,152, 89,
-231, 89, 39,168, 15, 45,135, 28, 73,109,221,189, 78,210, 14,213,208,119,219, 81,168,217,118,232,110,129,124, 15, 14, 9,251, 47,
-238, 44,136,101,195, 11, 79,181, 26, 49, 60,198, 45,197,104, 72, 90,212,122,127, 89, 66,190,234,128, 62,237, 87, 46,246,211, 17,
- 86, 11, 93,200, 72, 21,208,226, 12,133,112,174, 49,139, 78, 41, 9, 43, 73, 63, 29, 15,217,227,244,106, 42, 91, 77, 67, 16,141,
-113,120, 28, 41, 85,214, 89,183,196, 92, 56,194,201,146,252,186,100,200,177, 58,212, 39,159, 75, 65,111, 70,106, 89, 5,151, 20,
-160, 66,146,130,186,160,133, 85, 53, 34,130,189,117,165,121, 79, 46,139,167,218,151, 83, 80,168, 21,206,153,128, 50,173, 49,194,
-135, 14,133,230,239, 57,109,152,109, 12,197,181,210,112, 32,101, 90, 12, 78, 24, 87, 14, 35, 28,171, 66,128, 57, 22,103, 47, 33,
- 74,152,125,192,219, 10, 20, 45,143,102,189, 59,103,183, 54, 12,120,175, 29, 94,223, 58, 92, 10, 29,174,209, 26,132,132,244, 39,
-175, 93, 75,105, 42, 28,189, 32, 93,186, 32, 39,106,133,125,133, 90, 26, 87, 53, 44,105, 23, 22, 86,133,197,125,104, 8, 32,164,
- 7, 13, 58,123,171,162, 62, 22,188, 80,132,118,204, 89,145, 83,225,144, 93, 36, 90, 28, 66,238,101,167,208,146,144,222,227, 85,
- 13, 68, 29,189,172,147, 6,224,164,133,251,156,204,241, 65,219,133,153,251,147,203,113,245,169,110, 41, 68,149,169, 93,235,169,
- 96, 4, 66,129, 71, 23,153, 13, 74,141, 63,140, 54,157,201, 90,106,107, 78,245,215, 74, 26,148,130,199,199, 86, 9, 43,109,119,
- 59,130, 24,108,245, 83,106,167, 81,246,234, 38,238,242, 70, 96,198,213, 63,130, 22,187,230, 52, 70, 24, 88,175, 21,194,142, 26,
- 43,140,226,146,158,171, 80, 29, 72,212, 27,205,212,166,164, 21, 42,207, 5,162,149, 85,167,147,113,171, 27,183, 71, 23, 98,109,
- 42,141, 95,212, 31, 15, 79,187, 83,219,112,120,109, 31,154,141,187,123,107,220, 85,250,243,137,121,180,218,216, 75,128,244, 36,
-116,212,152, 77, 67,148, 34,229,128, 63, 52,150,254, 95,206,220,146, 54,161, 53, 85, 78,184, 92, 25,137, 74, 2, 92,134, 55,174,
- 33, 0,169,183,162, 41,167, 21,217, 43, 69, 14,140, 37, 14,196, 21,195,130, 28,185,233,234,225,145, 74,249, 27,109,162, 68,215,
- 86,104, 19, 29,130,225,235,237, 61,134,153,222,110,112,237,236, 47,153,225,160,113, 38,137, 55,188, 55, 18,136, 86, 15,203, 75,
-145, 50,128,153, 9,180,197,181,161,106, 10, 14, 78,112, 37, 64,123,104, 40, 62,253,100,251,255, 0,158, 91, 22,200, 75, 93, 46,
-178, 56, 52, 85, 69, 79,186,195, 14,101, 25,173, 31,148,140,151, 82,219,151,220,226,193, 5,197, 1,189, 6, 67, 1, 73, 62,207,
-137,100,235, 41,220, 63, 84,246, 48, 18, 32,180,149,223,221, 63, 5, 28,237,254, 50,112, 5, 40,187,126, 82,118,160, 54, 65,228,
- 75, 19,238, 82,161, 63, 53, 28,245,251, 70,162,162,253, 89,194, 49,146,198, 80, 63,178,239,130, 41,230, 6, 55, 54,148, 41,255,
- 0,254, 87, 95,255, 0,142,136, 63,222,107, 15,201,124, 64,202,243, 26,232,106, 0, 21,243, 54,117, 21,213,131,255, 0,186,157,
-171,192,241, 60, 9, 53,116, 80,252, 42,185,255, 0, 39,183,203, 26,244, 47,156,171,252,199, 39,162, 44, 4, 32,161,165,186,159,
- 56,142,193, 36,245,251,181,235, 9,225,171, 67, 89,146,153,124,122,128, 3, 36,121,199,231, 64,182, 91, 97, 50,210,208, 67,109,
- 32, 80, 17, 93,222, 58,115, 16,210, 41, 68,184,143, 72, 69,107, 21,237,135,118,212, 5, 39,223,165,244,162,228,140, 54,107,228,
-100, 37, 9, 66, 82, 59,117,168,215, 52,174, 34, 92, 27,186, 28, 66, 18, 16, 28,220, 0,218, 58,214,186, 26, 23, 42,137,216,221,
-178, 77,195, 98, 91,132,180,182, 79,112,154, 87, 73, 77, 86,140, 18, 79,125, 2,181,248,111, 24, 90,101,219,147, 34,224,181,161,
-250, 2, 27,168,239,250,116,208, 78,241,133, 17,227, 0,182,164,162, 61,151,140, 45, 46, 58, 60,216,158, 99,105, 35,105, 35,184,
-211,157, 68,132,145, 40,138,140, 18,217, 17, 40,110, 37,169,181,142,149,220,128,105,160, 42,115, 69, 37, 19,108,216,148,102,226,
-182, 17, 8, 37, 84,252, 33, 52, 3, 70,162, 45, 84,170,223, 96,126, 19,169,113,155,115,107, 80, 32,213, 73, 26,228,140,214, 40,
-128,126,146,166, 76,201,200, 74,210,220, 72, 12,199, 32, 83,120,106,167, 77, 89,182,179, 50, 73, 75,182,241,205,201, 74,237,242,
-243, 22, 10,119,203, 90,118,157,192,132, 80,143,119,125, 42, 44, 34,232, 92,250,199,214,181, 82,103, 57, 7, 34,109,147,111,117,
-107,124,169, 59, 74,148,157,195, 73, 29,182, 42,228,151, 27,156,128, 81, 70, 35,205,188, 77,184, 33, 47,148,150,212,177, 68,121,
- 91, 7, 95,175, 75, 11,118,197,136, 72,153,221, 41,197, 92,252, 43, 0,198,110, 22, 54, 38, 94,140, 40,206,121, 97,101,107,113,
- 40, 52, 3,185,213,106,238,226, 77, 68, 54,180, 86,139, 59, 88,156,193,170,149, 92, 14,245, 69, 2,205,146,122,129,230, 73,216,
-203,209,101,218, 24,151, 18,193, 29,248,128,186,212,199, 45, 49, 90,105,241,240,143,139,107,129, 72, 80, 39,218, 41,216,235, 4,
-231,125,203,253,221, 56,133,238,207, 41,182, 83,111,178, 68, 28, 41, 90,154,117, 18, 72, 67,159, 78, 88,229,210,221,201,150,211,
-113, 68,212,162, 75, 55, 71, 99,137,110,134,193,113,168, 82,118, 81,148,138,162,132,138, 29,234,233, 65,210,154,161, 75,116,203,
-151,128,218, 97,241, 28,127, 98,212, 91,102,251,104,164,113,175,202,125, 40,190,155,125, 2, 71,143,111,226, 27, 81,109, 33, 46,
- 75,185,222, 38, 63, 95,196, 94,145, 41,226,107,227,238,212, 22,234,253,119,143,175, 10, 15, 96, 11,196,222, 98,184,186,254, 95,
- 87,216, 23, 89,177, 41,105,242,155, 21,240, 30, 58,209, 57,102, 64,208, 22, 47,123,153, 83, 12,198,193, 27, 57,193,179, 12, 42,
- 92,135, 34,197,204, 49, 92,135, 22,147, 37,159,222,199,143,127,136,244, 69,173, 52, 32,213, 9,120,145,215, 90,171, 7,212,192,
-248,255, 0,121,164,123, 69, 20, 75,241, 95, 49, 92,159,101,226,233,156,101,118,244,179,234,199, 12,121,121, 14, 3,145,218, 47,
-141,219,110, 55,169, 88,100,149,228, 56,210,164,196,143,115,180,220,139,155,231, 67,188, 91,221, 82, 1, 65, 41, 45,184, 72,216,
-234, 66,135,137,222,238,101,242,167,120,184,250, 72, 75,237,229,113,208,224,221, 69,160,226, 65, 26, 72, 2,167, 42, 82,173, 4,
- 40, 3, 4,194, 67, 79,148,145,219, 95,130,188, 30,128,253, 50, 71,135,157,216,121,192, 99,115, 48,174, 41,227,188, 85,171, 7,
- 11, 98,147,226,189, 5,119, 41,210,162, 61, 17, 87, 52, 55, 35,107,174,199,143, 10, 83,201, 68,151, 81,189,247, 92, 46, 5, 20,
-160, 87,109,242,167,100,220,102,146, 77,227,120, 97,108,238, 39, 77,105, 83,171, 50,125,153,101,208, 51, 82,182, 97,205, 20,112,
-161, 7,218,186,115,159,102, 40,140,195,191,181, 3,161,253, 97,173, 39,121,190,173, 84,180, 12,212, 87, 47,249,199,148,224,192,
- 76,231, 36,204,105,148, 54,151, 20,165, 45,208,144, 0,250,252, 53,156, 93, 48,220,186,129, 91,118,200, 42, 66,227,213,226,237,
- 63,213,214,107,254, 29,227, 74,113, 56, 12, 43,136, 25, 70, 68,219,136,111,248,151,144,176, 76,104,101,207,132,212,167,171,135,
-167,128,246,234,106,215,109, 27,115,117,201,243, 17,151, 71,106,215, 54, 75, 83,181,134,221, 63, 7, 15,148,125,235,191,158,148,
-125, 50,241, 63, 13, 98, 54,212,216,236,208,190,116,199,108,252,205,193,108, 92,110,239,184,154, 19,188,173, 45,167,184,173, 18,
-131, 79,187, 70,133,226, 67,169,228,118, 97,247,170,206,255, 0,189,220, 95,188,130,227, 79, 88, 10,123,234, 66,233,183, 13,184,
-150,173,233,138, 99,176,164,165, 42,109, 8, 75,221, 63, 18, 74, 11,109,212,142,255, 0,163,199, 85,206,105,154,177,147, 74, 80,
-122,116, 41,255, 0, 46, 33,215,124,198,147, 90,159, 78,149,197, 7,231, 77,254, 48,249,114,228,166, 80,167, 22,130,162,225, 14,
-121,110,254, 29,165, 65,205,244,247, 1,211,173,125,152,109,220,218,170, 64, 94,247,219, 45, 67, 34, 0, 10,224,135, 60,150,203,
-119, 54,210, 93, 90,222,156,194, 23,189,126, 74,158, 19, 16,232,216, 20,149,144, 2,141, 13, 84,154, 10,126,146,217,220, 81, 72,
-253, 17,118, 67, 5, 86,167,218, 11, 65,253,237,160,109, 74,130, 93, 85, 8, 9, 30,206,190, 35,221,171, 4, 87, 41,180,246, 0,
-228, 49, 66,155,173,133, 82,222, 87,151, 17,110, 41, 9, 82,193, 36, 54,146,175,105,168,248,190,138,125,218,146,183,189,224, 83,
-119,237, 69,152,168, 67,105,149, 29,229,178,166,220, 14,249,129, 45,182,132,133, 41, 84,237,184,244,219, 79,102,221, 75,199,162,
- 76,147, 57, 26,232, 43, 92, 66, 51, 98,188, 91,123,207, 33, 59,229, 54,228,105, 77,163,246, 59, 16,230,226,180,138,142,131,111,
-179,217,169,189,189,134, 18, 15, 5, 64,230, 61,218, 54,130,210,169,183, 45,112,222, 70,239, 35, 90, 45,121, 52, 67, 6, 59,178,
-214, 28,146,182, 76,102, 37,173,163, 77,195,122,148,147, 80, 79, 99,222,167,199,166,131, 97, 43, 91, 17, 44,205, 82,109, 67, 46,
-101, 26,221,221, 24,171,239,196, 12,240,119, 24, 90,162,219,165,202,178,174, 96, 66, 12,169,178,166, 34, 53,174, 58,148, 63, 8,
- 34,138,121, 67,198,166,159, 70,146,150, 9,231,117, 72, 42,206,203,248,173,197, 24, 64, 30,170,159,130,189, 56, 95, 53,250, 98,
-105,152,172, 73,228, 76,113,167,170,133, 42, 36, 41, 49,152,104, 0, 1,254,178,138,136, 53,238,170,253, 26,110,251, 41, 27,155,
- 74, 64,110,147, 74, 79,133,164,246,186,191,122,180,184,231, 38,122,122,144,219, 74,182,231, 54, 9, 42,216,130,226,100,184,194,
-247, 5, 84, 0,149,109, 66,137, 20, 21, 63,209, 77, 48,158, 48,204,194, 59, 78,225,113,255, 0, 76,250,137,248,149, 35,189,185,
-130, 94,226,137,150, 57,182, 41,173,148, 23, 43, 14, 75, 37, 97, 74, 29, 14,212,149,111,173, 8, 62, 35,167, 77, 46, 33,134,118,
-212,129, 84,255, 0,111,185,185,182,118,137, 67,135,109,125, 2, 14,221,120,214,201,122,138,227,137,134,219,165, 97, 64,144,132,
- 7, 21,215,184,232, 43,227,227,168,233,172, 33, 39, 0, 21,218,223,123,116, 36, 2, 80, 74,245,193,165, 74,125, 49, 88,113,224,
- 83,181, 12,175,106, 84, 8, 29, 64, 42,234,126,189, 49,151,101,109,206, 65, 78, 13,253,142,104, 46, 33, 80, 47, 80,222,159,216,
-185, 65,122, 37,210,208,227, 43,109, 46, 41,185, 13, 39,203,151, 26,163,241, 33,104,162,146, 71,114, 43,215,161,165, 53,200,236,
-102,217,143,137, 17,237, 25,132,218,238, 43,125,241,154, 29,143, 88,192,250,138,162, 56,118, 53,124,198,238, 18, 44, 87, 71, 36,
-205, 97,149,147,108,190, 45, 8,136,169, 44,130, 54,182,226, 82,225, 59,197,105, 94,149,250,244,250,230,120, 55, 6,120,177,138,
- 59,241, 55,225,212,168,198,198,227,102,121,138, 83,169,159,133,216, 99,219,142,106,226,113,146,158, 76,134, 74, 22,181,121,107,
- 27,130,154, 53, 77, 61,229, 74,212, 73,131, 87, 4,218,234,235, 71, 21,214, 62, 21,200,163, 63, 96,184,227,215, 37, 7,109,247,
- 56, 5,137, 13, 44,213, 41, 4, 84, 42,159,111,252,134,167,121, 82,213,209,110, 48,185,184, 29, 65,103, 60,241, 59,100,219,174,
- 75,133, 71,134,234,245,138, 34,202,189, 53, 91, 47,204,162,109,146,232, 2, 86,144,189,129, 64,144, 15,133, 53,234, 59,125,193,
-236, 20,112,197,120,138,125,181,178,226,215, 96,160, 89,159, 1,220,113, 72, 66, 80,117,217,136,236,164,161, 27,191, 70,165, 45,
-111, 68,230,132, 81, 67, 93,216,155,113, 80,106,130, 82, 49, 80, 9,171, 78, 33, 64,144,106, 40, 71,223,167,228, 40,218,164, 98,
-200,168,228,116, 89, 30,255, 0, 13, 16,133,221, 73, 91, 54,136,239, 44, 7,151,229,164,143,197,227,164,159, 80, 48, 74, 48,130,
-113, 77, 83,108,225,167, 84, 35, 56,165,164, 86,138, 31,229,208, 96, 46, 24,132, 30,224,211,129, 76,206,219, 86,144,119,182, 73,
-175,122,117,209,139, 87, 3,211, 76,139, 67,146,123, 37,105, 3,196,116, 63,209,162,232, 1, 27,196, 37, 72, 45, 24,109,132,198,
- 50,110,243,157, 71, 79,221, 37,116, 63,167, 81,119, 82,202,215,105, 99, 84,141,187, 35,112,171,220,145, 61,140,217,228,124,195,
- 80,252,197, 70, 77,118, 43, 97, 89,208, 46,123, 40, 93,154,232, 13,121, 32,100,161,208,240,200, 14, 93,219, 69,209,167, 5,188,
- 47,170,202, 41, 81,244,233,119,200, 92,206,238,105, 54, 0, 29,222,201, 20,101,113,239, 25,184,202, 28,129, 47,229, 37, 37, 35,
-226, 88, 73, 27,190,209,168,151,153,206, 98,161, 74, 55,193,224, 80, 27, 60,193,173,162, 64, 49,231, 55, 53, 85, 20, 82, 16, 58,
-125,250,123,101,168, 10, 17, 68,206,228,138,224,106,153, 45,119, 11,254, 19, 24,255, 0, 5,141, 4, 58,170,159,152,122, 63,152,
-180,159,112,213,119,126,229, 11,126,100, 52,184, 46,211,208, 13, 20,117,204, 2,227, 50,155,174, 92,131,201, 23,144,160,246, 69,
- 57,128, 42, 60,184,202,242, 27, 77,124, 2, 71, 77, 65, 91,121, 77,177,218, 98, 45,154,227,210,113, 76,219,182, 66, 63, 10,135,
-185,114,203,220, 37, 79,100, 55, 69, 30,191,249,201, 26,151,103, 34,109, 49,124,182,177,251, 18,237,179,137,185, 52, 38,225,114,
-202, 82,225, 82, 47,183, 77,224, 83,172,130,127, 79, 77,114, 78, 69,218,165, 20,117,172,116,254,202,233,179,137,217,180, 36,223,
- 61,150,121,222,111,241,139,158,253,219,183,121,189, 55,123,125,154,105,255, 0,142, 54,106,215,233, 99,246, 38,223,201,109,181,
-107,208, 42,190, 75,160, 58,227,202,163,160,169,117,241, 26,213,218, 0,192, 39,163, 5, 58,182,165,244,169, 38,139,160,165, 1,
-237,163,210,136, 34,221,141, 50,148,200, 90, 85,176, 39,175, 94,244,210,111,117, 16,211,169, 19,172, 74,154,242,155, 66,106, 6,
-224, 10,180,179, 91, 64,147, 56, 43, 85,128,227,238, 44,176,243,160,184, 72, 73,234, 9,235,160, 82, 78,122,185, 56,125,185, 72,
- 75, 65, 49,169, 77,189,118,105, 23, 53, 36, 93, 85,102,113,136,146, 84, 26,108,160, 33,181, 20,133, 18, 59, 13, 34,230, 85,112,
- 62,138,225, 98,120, 38, 31, 38,214,211,239,221, 80,220,191, 46,170,105, 68,143,139,237,212, 84,179, 78,215, 80, 12, 20,156, 80,
- 66,246,212,187, 20,156,227,109,162,106,219,142,180, 45,148,146, 18,160, 59,141, 74, 66, 73,110, 42, 50, 80, 26,104, 50, 83,251,
- 94, 62, 54, 32, 81, 30, 30, 20,254,157, 44,147, 83, 72,248,170, 22, 18,105,214,181,232, 58, 29,117, 10, 85, 73, 35,227,141,164,
- 38,141, 38,163,167,109, 25,116, 4,228,187, 22,230,202, 82, 18, 21, 74, 87,110,184, 87, 67,106,144, 70,198, 20,202,156,113,244,
- 50,170,212,238, 82, 7, 65,164, 92,250, 35, 50, 50, 84, 91, 36,201,120,255, 0, 13,109,115,178, 76,130,207,109, 67, 8, 82,212,
-149,188,146,245, 19,215,162, 18, 74,143,217,168,203,205,210, 27, 65, 89, 30, 2,179,109, 28,171,127,189, 58,150,208,185,221,116,
-160,246,156, 23, 60,253, 68,122,220,145,119,182,204,195,120,110,225, 53,180, 60,219,177,101,228,100,185, 21, 13,180,224, 41, 82,
- 25, 20, 10,169, 31,173, 74,107, 53,223,249,214, 38,180,178, 10,246,252, 23,164, 57, 3,201, 41, 98,123,110, 55, 45, 38,152,134,
- 3, 81,235, 52,167,169, 4, 56, 95, 30,151, 31, 30, 84,187,138, 60,215,230,111,113,114,228, 81, 78,190,226,201, 82,138, 65, 94,
-245, 18,163,226, 69, 61,250,243,103, 51,110,127, 83, 41, 32,175,100,236,219,104,181,141,172,166, 1, 18,176,235,107,144, 57, 95,
- 18,155,229,186,150, 4,199,216,113,215,119, 20,132, 75,101,198,199,128, 77, 20,165, 14,195,237,212, 54,213,115,223,161, 83, 87,
-150,190, 44, 79, 3,247, 79,167,185,118,215,209, 70,111, 22, 22, 37, 39, 30,147, 33,182,102, 90, 47,151, 72,206,178,163, 69, 36,
- 41,229,168,116, 38,189,142,157,239, 17, 22, 92, 23,140,136, 7,220, 23,132, 60,203,219,221, 29,244,132,140,233,246, 83,237, 5,
-117,103, 15,203, 24, 33,180,249,232,236, 60,127,207,171, 30,197,122, 34, 32, 21,134, 95,219,144, 74, 55, 66,201, 35,150,193, 47,
- 39,183,183,252,250,213,118,253,204, 83, 53, 4,248,202,103,190, 93,241,249,170, 97,219,140, 59, 84,231, 97,175,205,136,236,232,
-109, 75,114, 43,131,174,230,212,226, 84, 91, 62,244,234, 81,247,177,191, 23, 0, 74, 79,194, 37, 12, 50,238, 77,182, 91,163,188,
-183,238, 44,182,148, 5, 84,151, 0,160, 31, 94,163,110,247, 76, 48, 78,162,128,149,203,239, 81,254,178, 48,252, 69, 11,132,205,
-225, 19,110,210, 10,218,135,108,131, 89,115,165, 60, 63, 85,182,155,220,181,159,160,106,183, 59, 29,113,222,121,210,222,147,130,
-182,108, 92,187,117,188,201,225,218,196,233, 29,208,209, 90,118,156,128,235, 52, 11,133,252,223,200, 92,183,206,249,155, 88, 74,
- 28,119, 29,182,220, 11, 78, 94, 98, 25, 69, 19,216,128,242,170,150,164,121, 69, 69,149, 60,142,165,160,119, 4,245, 85, 43, 77,
- 58,177,100, 80,180,189,130,189,100,103,216,182,139, 62, 70, 28,186,214,186,240,131, 45, 43,160, 26,134,255, 0,104,241, 61, 89,
- 14,181,214,255, 0, 73,124, 69, 27,142,177,107, 84, 24,214,232, 12, 53, 29,150, 2, 84,139,115,106, 66,148, 0,170,183, 58, 74,
-201, 39,173, 74, 70,160,183, 27,191, 17,217,162, 95,202,100,192,174,163, 89, 50,102, 45,118,228, 7,229,132,178,148, 13,201,117,
- 72, 40, 77, 58,211,106, 10, 82, 15, 79,102,162,141,217, 98,171,187,110, 55, 14,192, 98,135,188,175,159, 66,200, 49,121,214,232,
-117,156,135,227,173,166,212,220,127,152, 64,119,160, 9, 59, 0,167, 90,116, 35, 80,219,181,215,213,176,180,171,167, 39,236,178,
- 88, 93,178, 67,133, 13,115,162,228,117,219, 30,189, 92, 46,114,201,185,166,217, 45, 14,148, 38, 57, 11, 62,106, 10,141, 82,177,
- 84,213, 59,123,164,142,253, 40,123,140,186,226,199, 73, 43,219,219, 85,227,124, 38,144,194,225, 76,211, 29,199,141, 50, 21, 70,
- 83,174,161,169, 96, 21, 17, 37,176,160,133, 56,210, 84,165, 21,110,160, 27, 18, 1, 59,135,106,117,233,168, 73, 88,232, 93, 64,
- 21,174,219,112,129,227, 28, 58,189, 58,208, 11, 35,179, 60,236,131, 29, 81,136, 81,117, 97,215,147, 69,165,107,253, 98, 77, 9,
- 85, 61,195,166,158, 70,100, 41,249,142, 22, 10,212, 33, 61,243, 20,148,135, 84,152,238,149,182,173,159,136, 4, 37, 97, 67,194,
-167,174,165,109,228, 45,205, 68,220,185,142, 28, 20,203,141,248, 2,251,158, 79,142,204, 59, 99,135,115,137, 14,203, 83, 74, 44,
-128, 79, 94,167,225, 87,212, 78,172, 54, 58,230, 52, 25, 44,231,154, 57,130,223,103,140,186, 71, 10,244, 46,213,240, 39,164,251,
-118, 49,103,138,197,217,167,155, 47, 33, 41, 88,134,135, 27, 66,148, 69, 10,150, 85,176,215,218, 41,245,235, 67,219,109,244,128,
- 10,241,239, 56,115,179,183, 25, 73,136,229,210,161,126,171,255, 0, 45,171,134, 93,139,221, 50, 76, 73,152, 55,149, 6, 28,150,
-184,229,135, 35, 93,142,212,244,216,178,133, 37, 91, 7, 98,181,144, 7,134,172,140,183,146,206,146, 10,233, 77,185,123,158, 26,
-231, 8,167,192,229, 94, 11,134,124, 53,233, 75,211,203, 28,163,114,193, 57,251, 4,149, 43, 55,114,107,174,219, 37,102,247, 41,
-119,171, 13,209,141,221, 27,102, 50,221, 16, 88, 40, 29, 2, 67, 61, 71, 93,199, 87, 75,109,230, 87,196, 60, 50, 48,232, 2,170,
- 31,158, 44, 46, 99, 63, 83, 12,142, 49,158,179,135,167,160, 86, 11,243, 22,252,190,184, 71, 24,244,169,111,228,206, 27,225,220,
- 2,205,112,192, 51,123, 13,211, 49,149,136,226,112,108,247, 89, 56, 77,201,167,225,188,183, 94,139, 20, 60,243,108, 76,122, 50,
-148, 20,170, 1, 85,146, 2,107,163, 77,185, 78,248,234, 30,106,163,188,176,220,162,126,232, 33,190, 58,152,246,144, 3,142, 26,
-129, 7,136, 56,145, 84, 31,244,185,149,254, 92, 30,159,120,230,229,151,250,152,244,177,118,231, 12,122,255, 0, 99,177, 70,184,
- 51,193,119,235,134, 67,201,216, 21,234,216,228,167, 12,199,225,255, 0,122,237,104, 98, 60,214, 22,132,200,114, 36,244, 45, 42,
- 74, 2,163,237, 81, 41, 75,149,183,184,110,174, 31, 5,248, 14, 4, 97,172, 1, 66, 15, 12, 6,125,103,130,216,188,195,229,189,
-214,194, 1,113,177,190, 88,200,125, 70,154,144,230,144, 48, 28,106,211,141, 52,241, 56,174,120,103, 94,162,239,158,168,125, 89,
-217,241, 79,203, 79,134,249,183,211,103, 13,155, 92, 75,114,241,156,239,145,174,220,153,120,121,248, 79,201, 84,155,244,215, 50,
- 11,165,197,187,122, 92,141,229,131, 1,169,238, 37, 42, 66,200,117, 91,168,153,174,100,219,246,107, 56,204,174,107, 27,208, 1,
-161, 39,213,138,135,228,126,104,230,119,157, 55, 51, 74,230,180,247,228,123, 6,150,131,144,239, 0, 9,174, 67, 2,125, 74,222,
-122,114,230, 47, 94,153, 79, 55, 89,120, 3, 28,184,226, 92,147,145, 92,156,200,196,117,100, 12,202,195, 86,182,241, 88,114,102,
-190, 95, 88,102, 98, 27,243, 90,138,164,180,189,133, 5, 69, 63, 24, 6,162,133, 6,221,103,126, 9,136,189,135,172,135, 15,184,
-173, 91,152,249,210,227,147,160, 23, 55,237,138, 88,240,174,144, 88,241, 82, 0,192,212, 28,215, 68,238,190,160,185, 27,136,158,
- 22,207, 83,188, 69,157,240,226,188,228, 70, 86, 91, 62, 3,119,174, 63,117,245,168, 37, 63,250,118,212,236,187, 91, 94,101,126,
- 4, 72,113,181, 17,250,181, 4, 4, 37,218,103,136,254, 81,107,250,129,199,216,104,125,137,190,199,230,174,203,190,144,216,229,
-208,227,248, 95,135,191, 36,167, 40,203,113,190, 66,181,181,113,180,221,109,153, 45,182, 75, 91,155,145,111,117, 15,189,177, 97,
- 32, 42,137, 86,215, 5, 59,208,233,137,148,154,178, 70,144,122, 10,213,182,171,182, 17,170, 51,135,110, 30,162,185,161,201,246,
-246,176,188,213, 40, 0, 42, 12,181, 38,100, 39,210, 2, 27, 41, 87,113, 66, 64,220,147,208,129,170,109,245,191,210, 74, 94,223,
-148,171,108,237, 27,148, 26, 78,106, 95,130,223,226,200,117,199,235,181,194,165, 44, 46, 67,197,245, 19,222,181, 20, 31,102,165,
-182,246,137,133, 66,197,185,154,218, 75, 7,233, 56, 43,161,193,151,185,185, 13,250, 69,166,222, 20,228,134,217,113,149, 4, 18,
-180,124, 98,163,168, 52,233, 67, 79,171,182,175,252,177,100,223,172,137,196,100,107,236, 89, 79, 58, 92, 62, 13,170,224,244,176,
-180,122,240,251, 74,234,207, 22, 88,165,216, 98, 52,237,198, 83,161,213,160, 85,149, 40,144,154,235,108,154, 95, 28,247, 87,148,
-173,161, 48, 12, 81,106,237, 46,196, 98,171,248,146,227,169,130, 14,224,253, 41,215,233,209, 90,210,220,146,143,112,167,123, 37,
- 84,185, 35, 21,199,101, 37,219,157,138, 84, 17, 64,165, 56,210, 28, 2,132,123,171,169, 11,107,194,211,165,224,168, 75,219, 54,
-187,190,194, 21, 98,149, 46, 35,107,113,181, 41, 59,146, 74, 79, 94,157, 53, 45,158, 42, 14,180,193, 53, 42, 76, 18, 73, 43, 79,
-219,174, 82,171,154,151,164,174, 59,221, 26, 1,116,254,168,174,142,216,203,184, 20,155,167,107,112, 36, 47, 37,150, 73,162,146,
- 1,254,170,133, 63, 78,138, 90, 66, 80, 60, 59, 37,225, 80, 90,113, 63, 8, 72,175,176,104,180, 70, 5, 54,201,179, 41, 64,144,
-144,160,124, 41,162,209, 26,169,101,138, 21,194, 58,156,249,118,152,218,132,147, 71,147,222,154, 97,123, 27, 31,131,170,158,218,
- 74,230,229, 68,177, 89, 50, 27,124, 51,115,181,198,113,164,168,165, 69, 13,138,138,125,250,100,237,173,192, 86, 55, 20,245,155,
-147, 73,163,218, 18, 75,250,241,187,196, 84,162,217, 0, 51, 40,247, 52,160,169,209,109,227,154, 3,249,135, 4,121,229,134,113,
-220, 24,160,237,210,214,236, 55,138, 20,210, 87,215,184, 21,166,165, 88,225, 32,168, 81,206, 5,134,133, 71, 31,138,149, 31,219,
- 36, 37, 29,126, 18, 61,186, 49, 98, 46,164,255, 0,110,227,216,247,120,226, 67, 50,162, 48, 85,250,171, 80, 73, 63,126,152,207,
-114, 33, 52, 32,167,113, 65,226,140, 10,104,190,113,155,214,134,139,238,187, 25,214,213,217, 77,184, 9,251,142,132, 87, 13,155,
- 37,201, 33, 49,102,160, 18, 49,132, 44, 18,128, 1, 21,234, 6,156,233, 73,130,154,191,187,242,235,229,126,174,234,238,167,134,
-134,144,187, 85,242,199,106,226,137,161,228, 56,164,154, 40,130, 7, 93, 74, 7, 98,144,200, 35, 29,163,138, 29, 82, 18, 92,104,
-208, 0, 65,210,196,162,106,162,127,255, 0, 14,229,182,180, 53, 21, 10, 82,137, 3,104,169,215,106,185,169, 28,177, 14, 32,187,
-162, 35, 83, 31,138,233, 72, 41, 81, 1, 39,182,186,194, 30,234, 85, 54,158, 95, 13,164,174,141,240, 79, 30, 97,114, 45, 78,202,
-190,182,180,152,113, 86,226,194,147,213, 42, 64,246, 18, 53, 55, 30,220,202, 98, 85, 54,235,123,151, 85, 26, 20,215, 23,132,197,
-214,229, 52, 90,162, 45,187,123, 18, 10, 25, 82,197, 55, 36, 19,219, 80,151,172, 16, 62,129, 88,236,165,116,241,135, 59, 53,101,
-241,204,101,229, 33,164,161, 33, 42, 20,173,116,193,210, 81, 58,162, 41, 64,176, 57, 27,111,154,232, 6,131,162, 85,160, 36, 5,
- 0, 20,202, 11, 62, 73, 6,169, 35,218, 85, 74,107,190, 32, 70, 12, 39, 37, 52,133, 58, 19, 91,124,249,240,227,211,169, 47, 73,
- 66, 40, 7,210, 70,184,102, 1, 42,219,103,191, 38,148,252,222, 95,140, 69, 0,189,148, 89, 27, 74,122, 26,220, 27,232,126,165,
-104,134,237,131, 50, 19,184,246,155,153, 62, 88,220,125, 69,111, 95, 44,241,204, 1,254,251,154, 88, 89, 32, 86,142,207, 67,100,
-143,111,196, 70,145,118,229, 19, 51,120,246,169, 24,121, 98,254,127,150, 7,158,192, 74,136,223,189, 80,240,230, 60,202,222,145,
-152, 88,223, 74, 82,162,147, 30,234,195,197, 91,125,129, 46, 18,116,198,125,246, 8,133,117, 15,106,176,109,254, 93,110,119,164,
- 15, 5,205,237, 4,125,170,162,114,103,230, 11,139,166, 44,155,126, 23, 29,119, 9, 14, 5, 54,219,197, 41, 13, 40,158,157, 20,
- 36, 36,143,171, 85, 13,211,156, 90,192, 67, 2,215,249, 99,201, 55,234,107,238,156, 59, 1,248,174,118,101,217,142, 79,203,119,
- 69, 77,200, 46, 10,105,133, 56, 84,136,109,201,113,214,144, 20,107,213, 30, 99,180,250,117,148,239, 28,204,249, 73, 53,244,245,
-175, 77,114,239, 39, 65,182, 52, 49,128, 10,122,112, 82,220,119, 5,179, 50,211, 40, 90,156,146,229, 80, 67, 44,161,100, 45, 71,
-181,118,165, 39,237, 80,214,105,184,239, 79,144,149,168,109,251, 75, 34, 3,225,241, 86,243, 3,196,165, 34, 52,121,110, 63,229,
- 52,219, 84, 75,106, 65, 64, 66, 19,217, 32, 26, 83,233,173,125,231,174,169, 27,141,239, 74,154,142, 33, 90, 4,245, 38, 40,143,
-120,143, 47,114, 55,198,121,183,155,117, 85, 4, 56,218,129, 73, 0, 14,189,123,234, 55,111,190,209, 40, 37, 77, 27, 90, 71,128,
- 71,156, 78,233,122,146,239,247,167,141,239, 80,237, 87,151,220,255, 0,210,182,203,128, 90,225, 73,150,223, 69, 21,108, 90, 20,
- 9, 35,161, 7, 90,173,171, 25,121, 16,212, 42,176,126,114,228,171, 93,226, 66,219,154,181,220, 28, 51,254,142,175,101, 21,154,
-199, 57,247,212,118, 60,210, 21, 59, 5,179,221,144,215, 64,253,159, 39, 4,190,145,216,134,159,105, 5, 53,246,111, 63, 78,156,
- 65,182,177,134,184,133,136,110,158, 73,178,115,249, 23, 67,177,205, 35,222, 9,251, 17, 69,175, 89, 28,206,136,161, 63,225, 77,
-201,165,254, 16,183,175,176,219,110,191, 72,125, 71,238,212,196, 51, 54, 14, 46,246, 42,203,188,129,188,115,191,238, 33,167,247,
-191,133, 64, 50,111, 85,254,160,102, 33, 73, 99, 28,197,172,137,112, 80, 59,117,203, 75,142, 53, 95, 31, 41,136,235,173, 7,134,
-241,167,127,204,157,248, 98,121,245,128,164,109, 63, 79,162,191,238, 47,154, 7, 16,214, 18,125,165,193, 84,126, 70,229,174, 78,
-191,249,168,204,121,126, 5,178,218,238,224,244, 76, 50, 2,227, 74, 41, 87,226, 65,147, 53,199,118,244,233,185, 8, 7, 93, 6,
-250,224,209,141, 99, 7, 78, 46, 62,252, 21,223,106,242,127,151,182,170, 62,111, 26,119, 14, 14, 33,173,246, 55, 26,117, 18,168,
-238, 71,207, 92, 99,129,207,157,103,192, 19, 55, 50,207, 46,111,124,172,155,187,175,174,235, 42, 33, 32,146,101,221, 93, 10, 67,
- 97, 29, 74,155,100,149,142,219, 64,234, 29,218,236, 71, 81,146,229,229,206,235,251,135, 5,115,185,221,173,246,152, 68, 54, 80,
-182, 54, 14, 12, 20, 21,235, 60, 79,180,162,127,165,188, 70, 77,207, 49, 93,246,250,243,179, 46,119, 41,138,157, 46, 82,144, 10,
-150,242,190, 37,165,180,149,149, 54,148, 10, 37, 32, 18, 0,167,115,212,175,184, 78, 24,221, 45,202,139, 50,220,164,117,203,139,
-221,153, 43,188,214, 5, 64,176, 90,227,198,135, 21,200,175,199,142,195,142,133,188,151, 74,119,164, 20,213, 65, 32,168,170,163,
-165, 43,238,213, 34,105,241,169, 85,118,218, 58,233,216,156,207, 66,154, 64,195,167,228,182, 41,217, 86, 81, 44,163, 27,128, 12,
-150, 96,197, 73, 50, 37, 33,130,119, 37,107, 27, 66,119,154, 1,227, 74,159,102,152,198, 13,243,180,183, 37, 53,108,230, 88,204,
-219,120,135,230,187, 2, 78, 66,188,105,212,171,213,243,145,163,100,174,166,201, 22,114, 45, 54,102, 20,234, 90,180, 91, 28, 76,
- 70,146,148, 2, 42,234,211,241,186, 86,165, 81, 64,154,123, 6,173, 49,114,224, 0, 23, 45,171, 97,229,235,125,180,137, 40, 31,
- 41,205,206,199,216, 50, 20,225,197, 62,225,248,206, 56,245,198, 12, 41, 54,152,174, 60,235,107, 83, 41, 91,129,223, 49,134, 6,
-234,149,138,126, 34,122,125, 94,205, 47,255, 0, 28,182,120,239, 52, 31, 82,181, 94,110,179,193, 19,158,199,144, 7, 71, 79, 98,
-176,105,227, 44, 38,241,104, 49,157,182,182,195,210, 25, 86,246, 99, 60,166,145, 25,195,208, 40,144, 71,196, 71, 67,166,242,242,
- 69,149,201,249, 64, 85, 47,249,117,253,156,186,131,234,208,120,138,147,251, 21, 21,229, 79, 79, 80,161, 75,126, 85,150, 84,136,
-141,161,247,246,121,159,181, 5, 45,170,171, 40, 29, 65,169, 29,245, 21,115,200, 48, 52,126, 89,167,189,106,219, 79, 57, 13,194,
- 48, 38,104, 38,131, 36, 4,183,241,201,129,114,143,253,226,143,243,112, 20,243,101, 82,226, 50, 74,146,133, 31,196,164,133, 10,
-128, 0,174,223,167,169,213, 62,243,150, 37,178, 53, 34,161, 45,186,203,245, 17, 56,218,186,142,166, 68,253,135,226,186, 95,194,
- 82, 48,251, 29,190, 52, 40,150,166, 88,101, 97, 63, 45, 50, 43, 4, 50,240, 72, 31, 18, 93, 8, 5, 68,215,168,239,220, 30,218,
-117,182,200,200,176,162,242, 79, 61, 88, 94, 92,200,227, 35,141,120,130,113, 30,170,171,143, 26,235, 1, 1,146,133, 23, 71,192,
- 64, 74, 18, 40, 13, 58, 84,130, 70,174,118,247, 0,128,177,137,108,220,210, 65, 86,139, 20,186, 68,185, 90,227,195,184, 50, 82,
-210,144, 2, 81,231,121,110, 20,145, 74,237,168, 74,133, 15,106,106,247,181,221, 71, 51, 4,114,142,239,109, 15,192,170,213,220,
- 15,137,218,163, 56,174, 64,126,102, 95,151,159,248,133,106,111,153, 56, 93,167,198, 83, 98,116, 74,188,218, 97,167,202,152, 26,
-104, 21,166, 92, 96,144, 11,133,146,154,169, 41, 53, 9,169, 2,128,233, 75,171, 38,237, 63,157,110,237, 81,241, 4, 80,183,226,
- 62,206,142,141, 3,147,249,164, 95, 3, 97,126, 0,168,238,158, 7,168,244, 30,138,252, 23, 51,184, 75,214,180, 60,118, 4,238,
- 43,245, 3, 98, 49,218, 13,202,195,242, 49,125,135,243,120,205,250, 36,166,252,135, 99,201, 82,129,105,191,152,105,116, 45,189,
- 64,160,161,180,170,181,210,240,220,195,114, 64,107,128, 36,100,120,246,124, 51, 81,188,195,229,253,246,210, 77,229,163, 75,225,
-105,174,166,252,204, 35, 28, 64,199, 12,234, 48,226,104,130,247,159, 65, 87, 43, 30, 86,255, 0, 32,250, 44,229, 60, 86,231,142,
- 92,156,117,197,241, 55, 34,202, 76, 27,141,166, 13,193,196, 56,244, 56, 55, 50,135, 97,220, 89, 9, 73, 67, 40,154,150,138, 1,
-234,183, 20, 84,163, 9,186,236, 45,184, 6,149, 14,244,162,209,185, 59,207, 79,165, 99, 45,183,104,203,163,105,249,154, 61, 85,
-160,161, 6,157, 21,199,161, 58, 98,254,155,125,127, 94,111,147, 24, 87, 15,217,177,228,189, 50,224,194,174,204,114, 6, 47,101,
-181,170,215,122,119,230, 28,253,180, 11,155,175, 31,148,148, 80,236,112,150,149,183,101, 2, 72, 37, 38,175, 47, 44,220,205, 70,
-185,216,103,159,171,167,160, 45, 68,121,221,202,150, 17,151, 70, 28,226, 0, 1,165,175, 53, 34,184,226,218, 3,137, 6,185,133,
-214,159, 64, 62,131,177, 79, 74,215, 59,239, 46,114, 62, 73,105,206,121,219, 43,183,202,181, 61, 54,204,149,140, 87, 16,180, 79,
- 90, 28,144,212, 15, 61, 13,188,244,153,133,180,252,204,146,148, 10, 13,136, 72, 77, 74,173,187,125,187, 54,168,232, 77, 77, 61,
-159, 21,230, 31, 52,124,203,147,159,103,211, 19, 12,112, 3, 90, 28,220,122, 72, 24, 1,212, 9,199, 19,194,151,147,146,109,248,
-166, 79,105,159, 6,225, 22, 28,184,243, 24,121,135,227,200,109, 47, 50,243, 78,164,165, 73, 82, 84, 8, 80, 80, 52, 32,141, 87,
- 55,123,253, 56,180,226,179,107, 22,185,174, 20, 95, 57,126,174, 61, 21, 59,197,179,239, 28,181,233, 90,225, 23, 3,200, 89, 46,
- 92,110,220,113, 82,207, 26,230, 69,160, 84,180, 38, 26, 10, 91,180,201,118,159, 11,241,130, 80, 77,124,196, 18,162,224, 71,110,
-230,150, 92,145, 13,232,212,220,131,191, 19,125,124, 71, 81,245,116, 45,223,146, 57,186,251,101, 32, 68,250,183,139, 78, 32,252,
- 15, 88, 92,167,202,249,206,213,205,184, 61,151, 38,110, 27,246,108,130,215,123,249, 28,134,211, 35,251, 69,174,230,138,181, 33,
-149,131, 78,206, 1,255, 0, 61,116,166,249,180,155, 55, 56, 28, 90, 69, 65,233, 29, 43,216,156,163,205, 76,223,173,153, 35, 48,
- 32,208,131,152, 61, 8,145,131, 57,242,214, 25,114,146,135, 30, 75,205,109, 14, 3,189, 40, 85, 59,158,167,165,104, 8,175,179,
-182,161, 54,121, 4, 46,161,201, 33,206,150,159, 92, 90, 91,154,237,103,161,142, 28,180, 99,252, 85,105,229, 11,228,165, 11,142,
- 84,100, 77,109,167, 85,230, 38, 43, 13, 58,226, 27, 72, 87, 95,196,218, 82,122,154,235,105,229, 83,111, 48,212,199, 7, 60,102,
- 1, 21, 30,174, 11,202, 94,105,222, 93, 90,191,233, 93, 27,155, 22, 4, 18, 13, 29,135, 79,174,158,165,114, 46, 25,101,174, 42,
- 84,166,164,160,132,123, 61,131, 90, 20, 97,220, 2,193,166,123, 71, 21, 92,249, 87,145, 12,216,169,135, 1,247,104,107,230, 41,
- 10, 32,253,218,152,219,224, 32,234,114,175,110, 87, 26,198,150,170,204,238,103, 38, 2, 94,109,199, 37, 56, 22, 8, 0,184, 72,
-235,244,234, 78, 72,131,242,162,137,100,142,102, 8, 83,144,102,239,168,168,182,210,145,212,245, 6,164,232,204,102,148,147,187,
-200, 23,156,242,133,242,213, 1, 78,192, 14, 21, 5,124,103,173, 66,117, 35, 97, 19, 36,120, 15,201, 49,190, 47,100,100,179, 53,
- 18,180,122,181,179, 97, 48, 12,220,130,225,230,186,132,146, 99, 37, 42,222, 84,145,219,174,173,194, 40,152, 40, 0, 84, 87, 90,
-220,220,187, 50,153,241, 95, 93,151,110, 71,205,161,217,108,216,148,134,108,142, 61,181,203,138,219, 40, 78,192, 64,175,197,215,
-182,162,183, 43,120,116, 18, 51, 86, 77,174,210,123,115,223, 53, 10,255, 0, 89,242,248,178,218, 66,139,128, 21, 0, 72, 42,234,
- 43,170,145, 20, 86, 32,165, 77, 95, 98, 17, 79, 49, 62,218, 87, 69, 70,170, 43,225, 47, 99, 23,182,204, 41, 63, 12,202,124, 52,
- 94,221,231, 81, 27,131,228,135,188, 50, 82,246, 12,100,162,135, 53, 37,187,225, 56,242,155,115,230, 45,142,163,106, 73, 15, 33,
- 85,175,191, 76,224,186,127, 7, 39,147, 91,176, 96, 90, 80, 14,237,107,137, 14, 99,205,194, 90,195,105, 81,218, 55,124, 67,236,
-212,220,125,246,213,202, 17,231, 65,193, 71, 95,130,135,107, 80, 84,125,164,146,107,165, 41, 68, 93, 85, 76,146, 49,246, 29,174,
-234,130,123, 10,211,174,184,187, 84,212,237,153,232,180, 75, 79,173, 8,175, 96,178, 40, 52, 82,208,236,194, 56,121, 25, 20,201,
-112,133, 49, 84,105,217,239, 20,119, 9, 91,149, 79,223,162,136,218,220,130, 49,148,156,202,142,184,203,209,138,144,179,186,181,
-161, 29,127,167, 70, 33, 13, 73, 47,241,143,135,229, 62, 88,121,155,182,110,250,116, 79, 11, 26,213, 31,196, 92, 47,180,226, 77,
-173,228, 32,197, 9,161, 29, 72, 3, 79,157, 40,106,224,183,123,184, 35, 53,167, 13,180, 6,146, 36,149, 38,137, 21, 9, 3,244,
-233,163,239, 90,212,226, 61,182, 89, 50, 9,237,139, 54, 33,101,144,153, 78, 52,151,246,144,104,227,130,159,163, 77,223,185,181,
-169,244,124,187, 60,217, 4, 90,131,204, 92,111,103,132,152,242,225,197, 37, 40,218,166,131,200, 77,105,254,182,221, 51,126,236,
-198,241, 82, 17,242, 77,204,220, 61,201,189, 94,167,248,246,204,211,236,193,182, 45, 45,186, 8, 90, 25,147, 24,238, 7,221,231,
- 87,238,209,135, 50, 24,240,212,156, 71,229,108,147, 26,144, 61,255, 0, 4,215, 31,214,206, 51, 99,111,202,181,227, 82,197, 9,
- 52,105,200,224,169, 71,196,157,142,105,148,220,194,215, 26,146,167,237,188,173,150,128, 84,123, 10, 71, 47,243, 14,188,181,185,
- 54,219, 13,210, 49, 29, 16, 68,136,107,233,244, 24, 21,251,244,205,219,251, 84,204, 62, 85,211,230,161,245, 31,226, 80, 91,159,
-230, 3,202, 18,138,190, 81,203,140, 98,170,237, 42, 68, 85, 20,143,246, 98, 13, 55,119, 48,211, 34,166,173,252,176,129,185,179,
-237,248,168, 13,195,214,151, 51,220, 74,146, 50, 75,195, 1, 95,170,150,153, 52,251, 26, 26,106,254, 97, 61, 42,114,219,203,155,
-102,127,210, 30,245, 23,127,212, 55, 44,222, 84, 75,249, 45,245,253,253,255, 0,100,223,143,251, 35, 76, 37,230, 32, 51, 42,193,
-107,200, 81,183,229,140, 36,199, 56,228, 91,178,129,126,237,149, 57, 81, 79,130, 89, 96, 0,123,211,105, 0,106, 54,110,102,104,
-226, 21,146,215,145,195,127, 7,185, 47,139, 11, 33,184, 83,231, 36, 95, 92, 7,184,122,224,175,190,132,106, 26,227,154,186, 40,
-172,214,124,150,209,158,165, 43,183, 98, 17, 86,164,153, 77,203, 90,188, 74,238, 69, 66,190,240, 58,253,255, 0, 86,171,247,124,
-209, 35,178,112,246, 43, 61,167, 42, 67, 31,225, 39,180,162, 61,171, 17,101,148,133,193,180, 50,242,128,174,244,169,114,148, 0,
-246,128,218,212, 62,177,170,189,230,242,249,126,103,171, 85,158,213, 28, 57, 49, 17,109, 86, 27,255, 0,194,166,173,114, 16,145,
-226,220, 71,131, 67,235, 83, 91, 71,217,170,189,221,235, 93,155,149,158,210,223, 78, 64, 35, 94, 47,105, 92, 96,219,151, 53, 41,
- 14, 26, 16,195,143,150, 26, 71,211, 82, 43,244, 1,170,213,221,192, 53,162,176, 65, 17, 56, 81, 27,226,102,172, 90, 97, 6, 33,
- 33,185,178, 2,118,249,139,120, 37,180,159, 98, 69, 13, 62,221, 87, 39, 6, 99,208, 20,148, 54, 96, 26,149, 14,185,100, 57,197,
-217,213, 8, 54,155,109, 23, 80, 28,147,112, 32, 26,251,131,125,117,219,123, 72, 24,106,247,159, 80,253,169,211,231,124, 66,141,
- 96,246,166, 91, 85,227,154, 49, 25, 14, 73,131,103,181,220,218,113,210,235,145, 99, 75,126, 2,150, 43,250,164,178,243,117,167,
-180,143,171, 87,157,179,123,183,181, 1,186,157, 78,176, 15,222, 21, 95,118,178,147,112,196,177,181,234, 36,125,197, 78, 81,207,
-252,227, 29,180, 38, 47, 29,101, 65, 73, 79, 86,205,214, 0, 96,255, 0,170,167, 36,124, 93,125,137,213,194, 14,102,219,233,223,
-147,216, 10,165,220,114,245,201,119,114, 47,105, 31, 20,193,117,245, 55,206,146, 92,249, 72,124,119, 54, 68,132, 36, 87,231, 50,
- 22, 34,176,218,255, 0,170, 92,101,137, 41,235,238, 6,158, 58, 95,254, 81,182, 70, 42, 92,125,159, 18,138,222, 84,191,126, 76,
-104,237,119,192, 21, 10,254,249,122,156,204,223,117, 82, 99,227, 88,180, 85,133,165,104, 83,178, 50, 7,146,147,226,151,119, 64,
- 66,105, 94,149,108,215,217,166,211,243,221,148, 3,242,152, 92,122,205, 61,192,125,233,120,121, 46,229,199,243,158,198,246, 2,
- 79,180,145,246, 33, 46,127,199,119,127,151,145,117,228, 76,186,243,144,136,228,188,221,181,201, 6, 29,158, 58,135, 94,177,153,
-216,135,136,240, 14,110, 35,221,164,109,249,202,227,114,112,142, 16, 24, 15, 70,126,220,209,174,185, 94,207,111,105,146, 98, 94,
- 70, 64,229,236, 24, 31, 90,136,113,189,138, 19,225,219,176,142,212,118, 74,195,112,153,111,107, 62, 76,116, 43,224, 66, 72, 20,
- 74,156, 35,114,138,122,158,131,232,188, 91,176,193, 24, 7, 23, 28,214, 43,190,222,253,108,230,152, 52,100, 6, 1,118, 59,210,
-198, 52,150,161,195,187, 58,200,110,175,236,136,240,142,146, 80, 83, 74,124,103,117, 78,242, 72, 0, 87,196,247,233, 91,221,238,
-244,146,208,171,243, 91,235,111,169,117, 59, 30,183,177, 37, 48, 26,117,165,172,190,243, 79, 62, 93,112,130,186,117, 73, 1, 36,
- 18, 87, 95,111,217, 77, 83,110,110, 42, 40,162,217, 9,136,151, 14, 2,129, 94, 92, 38,199, 6, 86, 61, 22,206,244, 69, 38, 3,
-140,238,118, 49, 63,238,234,109,228, 2,166,128, 36, 18, 9, 36,144, 71, 74,253, 90,115,182,130,226, 0, 36, 5, 68,221,238,157,
- 12,174,149,167,189,211,199, 60,208,175, 59,244, 53,197,121, 84, 41,183, 11, 5,177,204, 86,250,166,214,228, 91,142, 62,231,200,
-173,185, 71,226, 10, 82, 19,251, 39,104,127, 85,105, 35, 90, 29,131,230,140, 10, 56,145,208,113, 68,218,252,199,220, 54,105, 65,
- 18, 85,181,196, 28,143,167, 78,106,143, 88,217,201, 56,247, 51,119,142,249, 1, 42,182, 94, 45,139,242,217,152,227,101,152, 55,
-187, 82,212, 67, 83,152,117, 73, 85, 91,116, 32,131,241, 29,170,220,133,124, 64,234,121,208,135,183, 83,120,251,151,166,246,126,
- 98,131,153,236,133,204, 6,166,152,183,139, 93,196, 83,210,163, 20,114,228, 62, 75,227, 62, 57,199, 18,236, 60,140, 61,116, 75,
- 13,151,227, 7, 80,184,173, 56,229, 86,165, 37,212,144,165, 18,122, 40, 31,179, 65,176,151, 80, 10,168,125,178, 11,237,194,119,
- 58,229,141,108, 92, 14, 71, 14,144,169,216,186,243,231, 58, 92, 68,142, 57,192,230,200,128,166,196,120,249, 21,229, 75,181, 89,
- 31,102,167,171, 41, 90, 84,227,201,234,104,164,160,131,237, 58,109,113,115, 5,159,117,238,171,186, 6, 39,224,165, 47,249,191,
-109,229,134,152,245,130,115,160,206,189,106,111,101,244,133,234,173,201,112,164,223,159,197, 27,136, 29, 66,223,105, 37, 74,121,
-182,136, 59,182,146,180, 10,237,173, 58,106,187,184,110, 81,185,166,145,187,215, 69, 92,103,156,118,111,117, 41, 65,235, 86,125,
-222, 47, 86, 39, 96,183,198,152,250,163,202,111,122, 94,123, 98, 18,218,148, 72, 73, 74, 83, 85, 4,130,174,235, 77,105,172,222,
-246, 86,151, 7, 52, 80,168,107,174, 99,110,249, 51,158,214,130, 61,126,158,162,166,216, 85,222, 76, 97, 21,181, 57,243,109,180,
-230,209,230, 47,204,113, 20,234, 65, 73,241, 73,232,105,247,234, 86,198,239, 1,138,207,247,205,184, 57,206, 32, 81, 30,228,103,
-170, 98, 16, 49,221,145, 25,216,237, 37,244,249, 73, 91, 72,117,180,248,144, 8, 4, 87,161,161, 20,239,225,171, 52,123,145,166,
- 6,138,156, 54,154,187, 17, 90,167, 76, 3,155, 24,201,228,203,177, 93,219,162,130, 72, 90, 29, 94,229, 44, 10,124, 72,160, 74,
-171, 66, 20, 8, 4,248,165, 71, 82, 48,111,142,197,146, 98,211,233,233,197, 11,254, 91, 54,192, 75, 30, 99,211,211,222,190,118,
- 63, 54,207, 76,183,110, 61,205,211,205,184, 43,114,153,198,111,202, 45,229, 45,219,105,242,236,165,245,209, 47, 56,214,197, 71,
-146,194,202,232,224,113, 4, 37, 95,235, 10,163,111, 56,239,192,104, 78,108,174, 53,253,189,139,103,228, 61,232,206,198, 7,184,
-130, 59,174,161,225,215,211, 78,131,152, 92,176,198,100,115, 22, 50,134,110, 92,111,154, 73,181, 54,164,161,198,225, 4,173,251,
- 72, 29,194, 83, 27,204, 75, 44,131,236,101, 40,211,104,185,230, 77,184,232,153,186,154, 56, 28,125,249,251,214,145,188,121, 47,
-180,115, 99, 76,161,162, 57, 14, 58,152, 52,154,245,129,221, 62,182,171, 65,134,122,188,245,117,134,182,203, 23,123, 60, 44,162,
- 58, 40, 76,155,100,215, 33,184,177,211,160,101,224,176, 15,254, 87, 82, 44,231,205,178,239,252,198,185,135,168,212,125,203, 40,
-221,191, 76,183,112,146,109, 46, 88,241,208,246,208,251, 69,126,197, 99,177,239,204,131,146, 24, 83, 76,222,248,195, 57,105,244,
-237, 75,191, 36,196,105,237,215,198,129, 18,203,135,223, 68,104,147,111, 91,116,194,173,184,167,104, 35,226,169,146,249, 5,190,
-192, 79,229, 49,223,217,120,199,219, 68,109,183,250,234,187,228,145,148,166,241,140,201,165, 4,209,108,200,197,167,180,226, 9,
-250, 88,161,250,137,213,110,242, 75,105,143,118,226, 51,253,224, 62,212,217,190, 83,110,182, 6,178, 90, 73,234, 26,191,248,106,
-171,183, 50,122,169,185,222,237,243,109, 49,172, 55,231,230, 58,210,145,242,198,203, 41, 46,238, 88,160,168, 83, 98,157, 79,142,
-155,219,236,110,185, 33,204, 32,142,154,138,123, 85,147,106,229, 27,139,115, 67, 19,193,235, 4, 46, 47, 78,225,108,171, 3, 77,
-234,235,144, 67,254, 31, 47,145, 51, 91,150, 86,205,177, 43,221,242,144,166,190,243,224,168, 80,109, 42, 83,189,189,218,178,243,
- 6,232, 4,108,134,181,208,208,218,244,208,126,197,233, 79, 46,185, 97,214, 17, 57,206,226, 65,167, 66,189, 60, 73,196,247, 76,
-139, 9,184, 76,179, 45,183,229, 67, 97, 10,151, 3,205, 72,117,216,199,187,129, 36, 5, 40, 38,157,192, 85, 59,154, 83, 89,251,
-119, 47, 1,196,171,158,245, 12,101,236, 99,240,169,192,240,175, 66,232,151,166,123,206, 67,128,227, 81,177,201,146,111,130,215,
- 21,110,161, 12, 7,146,251, 49,144,181, 18,164, 6,212, 85,176,110, 38,160, 17,246,234, 55,254, 76,251,105,252, 72,156, 3,147,
-109,215,151,227,186,136, 49,205,107,133, 56,143,176,171, 67, 58,101,166,250, 20, 90,121,242,235,157,144,227, 1,194, 73,247, 29,
-165, 63, 85,117,176,242,207,155,230, 45, 49,220,180,118,131,246,230,188,237,205,190, 70,219,238, 90,164,183,118,135, 28,104,104,
- 71,171, 47,122,132,220,176, 25,142, 33, 79,155,100,133, 50,107,251, 95, 32,165,178, 62,154, 83, 91,126,213,207, 22, 27,155, 71,
-135, 51,107,209,197,121,167,127,242,179,116,217,158, 65,132,185,189, 34,132,123,138, 25,221, 48, 38,158, 43, 6, 58, 82,174,160,
-142,149, 7, 86,118,110, 44,120,168,112,162,161,207,177,207, 1,210,232,220, 15, 69, 16,186,245,198,168, 59,192,140, 73,234,122,
- 10,255, 0, 70,150, 23,173, 60, 66,100,237,186, 70,102,211,236, 40, 51,127,227, 54, 94, 75,140,189, 8,184,133, 2, 20,149, 34,
-160,253,218, 81,183,116,200,164, 93,104,120,133, 94,178, 63, 79,216,156,151,212,236,171, 18, 29, 33, 69, 91, 87, 85, 39,236, 58,
-116, 55, 71,129, 77, 72,141,178, 3,130,252,178, 96,246, 76, 88,132,218,236,113,161,148,116, 11,109,128, 23,211,223, 74,232,142,
-188, 50,102, 87,126,150,156, 17, 70,203, 54,226, 87,177,136,147, 95, 72, 20, 72,141, 29,199,190, 33,225, 68,164,233, 9, 46, 67,
- 56,132,164,123,123,229, 61,214,147,216, 9, 83, 56, 87,123,203, 33,198,164, 88,238,105, 95, 93,138,126, 42,216, 32,123,126, 48,
-154, 13, 34,110,154,104, 67,199,181, 57, 27, 60,249, 24,157, 94,194, 20,130,213,124,201,237,143, 34, 99, 16,231, 53, 67,185, 47,
-108, 81,108, 15,245,135,195,247,232,178, 94, 65, 32,163,156, 61,168,241,108, 87,141, 53,108, 79,246, 34, 27,156,215,151, 53, 12,
-198,146,243, 97, 42, 73, 77, 94,121, 33,116,255, 0, 84,157,255, 0,118,163,124, 27, 82,234,135, 5, 32,118,251,240,220, 99,117,
- 59, 61, 10, 31,189,154, 76,121,245,188,252,166,130,156, 36,208,149, 29,213,246, 81, 39, 82,108,186,140, 10, 52,168,217,118, 75,
-150,154,189,132,118,131,240, 95,136,204,220,170,128,126,180, 29,138, 15, 95,211,165, 68,237, 60, 83,119,109,146,179,240,149,233,
- 57, 76,137, 43, 74, 91, 88, 42, 53,232, 72, 26, 55,136,209,197, 34,235, 71,142, 5, 99,215,105, 79, 40,176,226,182, 43,193, 64,
-251,126,237, 25,174, 7, 20,139,163, 44,192,173,105, 75,206, 2,135,215,230,127, 81, 85,234, 53,210,104,138,182, 22, 27, 91, 59,
- 84,131,230, 15,194,162, 58, 29, 38, 93, 68, 42,152,127,135, 39,230, 60,223, 43,226,173, 43, 79,191,236,210,126, 46, 43,154,149,
- 28,147,192,127, 35, 27,204,142, 31, 67,196, 31,139,204,218, 5, 63,219,174,170,215, 59,185, 7, 19,130,211, 44,172,153, 65,128,
-175, 96, 67, 11,254, 24, 44, 13,186,102, 93,100, 54,160, 13, 82,149,200, 29,189,232,233,168, 43,141,204,200,123,181, 87,125,186,
-193,130,149,104,247, 32, 6, 65, 46, 26, 20,180,181,116, 42,234, 65,171,207,149,125,171,107,175,219,168,233, 47, 36,226, 74,185,
- 90, 88, 68,114, 99,125,136,119, 41,184, 82,137,243,238,196, 2,122, 52, 10, 78,239,117, 92,105, 71,236, 35, 76,223,122,241,151,
-167,189, 88,109,246,232,248,183,220, 62, 9, 15,247,102, 20,138,132, 71, 74,146,175,214,125,212,161, 96,123, 82, 20,234,210,126,
-177,245,105,148,187,140,131, 50,167,173,182,184,143,225,251, 23,134,240,235, 33, 86,199, 11,138, 88,173, 82,162,195,255, 0, 96,
-102, 50,105,255, 0, 75, 76, 37,220,229,225,247,253,255, 0, 5, 57,111,180,194,115,251, 7,221,241, 78,241,176,187, 64,234, 45,
-207, 41,186,245, 91, 49, 2, 58,125, 43,154,223,232, 26,143,151,115,147,247,189, 61,138,102, 13,166, 33,248, 61,159,254,228,251,
- 27, 24,198,208, 64,217, 45, 32, 80, 20, 7, 74, 72, 63, 70,249, 3,236, 86,163,228,220,102, 60, 71,167,177, 75,195,182, 64, 56,
- 31, 79,106,149, 66,199,241,212, 80, 37,155,169, 30, 1, 77, 33,214,254,197,163,113,251, 53, 27, 45,244,167,161, 74,197, 97, 8,
-224,125, 59, 84,182, 29,131, 26, 33, 62, 96, 35,198,143, 89, 82,225, 31, 90, 99,167,244,233,132,151,178,250, 31,218,164, 35,179,
-139,208, 15,130,144,179,102,197,154, 77, 74,109,180, 29,119, 24,206, 71, 89,250,146,224,253, 26,100,251,201,143, 19,233,234, 79,
- 25,105, 16,224, 61, 61,105, 91,108,227, 77,138,182, 34,168,143,100,183, 27, 31, 97,109, 95,167, 77,223,113, 41,204,167,108,181,
-139,128, 74, 17, 58,206,193, 30, 91, 76,116, 63,246,233,116,127,225, 4,157, 54,124,175, 57,148,233,150,236, 28, 19,172, 92,177,
-152,106, 74,163, 56, 24, 90, 8, 41,117,173,136, 82, 72,246, 20,144,116,206, 70,151,102, 83,216,226,104,224,159,219,228, 2,239,
-246,201, 66, 98,105,212, 60,128, 23, 95,111,152,219,205,184,163,254,177, 63, 70,153, 62, 14,164,242, 56,192,200,145,233,236, 78,
- 81,178,187, 59,132, 86,227,114,137,225, 66,203, 51, 80,170,251,194,154, 82, 0,250,244,206, 75,122,240, 79,227,115,155,208,125,
-223, 21, 50,179, 92,227, 72,113, 62, 85,238, 19,198,160,124,107,148,208,250,194,153, 74, 71,219,166, 18, 91, 81, 61,108,167,247,
- 79,187,226,141, 22,107,187, 49,219, 75,111, 92, 44,238,110,233,229,162,236,194, 20,162, 63,209, 91,205,145,245,141, 50,117,169,
- 57, 32,249, 7, 67,189,132,253,202,115, 14,242,181,172, 54,143,224,224, 16, 10, 16,155,188, 55,228, 0, 60, 66, 68,133,255, 0,
-151, 69, 22,133, 55,124,236,110,122,191,194,239,130,247,116, 85,208,178, 84,155,109,204, 51, 77,202, 41, 66,220, 67,132,248,132,
- 54,146, 18, 41,237,239,162,253, 33, 71,138,238, 33,248,135,187,239, 81,133, 58,236,116,131, 46,213, 50, 10, 22,162, 18,185, 49,
- 28,101, 75,168,169,238,143,183,174,131,173,139,115, 75,182,229,178,252,142, 7,178,138, 81,103, 84,118,219, 15, 58,173,137,113,
- 59,194, 2,107,208,246,218,144, 43,223,196,142,190, 21,208,100, 85,193, 50,188,148,130,171,175, 59,178,155,236, 69,176,195,143,
- 6, 84,191, 35,105,240, 64,161,112,212, 29,181, 32, 16, 85,219,192,120, 87, 66,229, 11, 96, 36, 4,133,154,243,141,241,138, 18,
- 43,154, 22, 96,240,218,118,239, 99,178, 40, 45,166, 20,226, 19,229,176, 54,133, 54,223,116,164,251,232, 1, 34,163,185, 39,166,
-181,105,137,100,101,221, 75, 10,194, 87,149,220,126, 13,105, 13,219,172,204,165, 95, 47, 29,182,246,136,225, 0, 37, 11,219,182,
-137, 5, 41,169, 29, 78,225, 65,226,105,215, 89,182,229, 45, 73, 78,229,183,206,131,250, 21,226,199, 46, 80,208,148, 59, 32,110,
- 63,179,242,146, 15,198, 86,143,196,170,238,160, 77, 69, 42,126,202,234,177,113, 45, 83, 3,102,225,131, 85,190,192,179, 24, 11,
- 73, 99,205, 73, 8,121,166,155,248,186,165, 64,154,252, 84, 53, 74, 77, 13,106,123,211,195, 79, 44, 46,195, 10,207,183,205,161,
-237,198,156, 21,179,198, 46,177,230, 50,130, 29,109,109, 19,181, 43,222,149,133,110,167, 81,214,166,186,212, 54, 75,214,200, 5,
- 78, 11, 41,221, 45, 29, 17, 56, 98,171, 15,173, 14, 22,199, 57, 47, 0,254, 34,153,166,201,148, 99,101,217,246, 11,252, 61,141,
-206,136,181,237, 15, 50, 86, 82,119,181, 32, 4,249,141,158,149, 9, 61, 10, 65,213,154,107,166,218, 16,230,226, 14, 99,211,138,
-178,121,115,191,220,108,215,160, 48,157, 14,193,195,129,232, 52,234,225,235, 84, 79,211, 79,162,120,121,133,229, 25, 79, 35,223,
- 36,230, 13,194,117, 14,199,135,113, 41,118,214,202, 27, 80,216,164,199,248,146, 87, 80, 78,229,214,131,168,161,236,198,231,115,
-117,227,188, 24, 70,145,196,241, 90,223, 60,243,227,236, 99, 12,136,157, 71,220,186,232, 45,216,222, 29,107,143,111,182,177, 6,
- 24,142,132,165,148, 54,218, 27, 94,212,244,168,160,235,218,186,133,191,150, 43, 6,208, 17,171,222,176, 88,204,219,156,133,239,
-169,174,104,111,145,114, 37,186, 4,103,220, 83,227,202, 0,188,220,129, 85,160,129, 93,192,160, 38,181,168,161,173,126,173, 84,
- 47,119,144, 65, 3,218,172,219,126,193, 36,174, 2,152,229, 69, 79,243, 78, 75,143,121,114,106, 20,211,142,109,112,134,144,226,
- 18, 34,172,211,111,192,150,148,149,124, 73, 42, 82, 84,107, 66,106,160, 71,106,116,215, 6,103, 18, 86,179,181,236, 14,179,107,
-104, 70, 94,191, 93, 71, 96,251, 10,138,218,175,136,136,211,101, 14, 5,169,237,203, 45,249, 84, 91,172,110, 34,149, 31,133, 73,
- 61,200,234, 41, 83,215,174,159, 91,205,161, 11,235, 19, 41, 56, 43, 31,134, 50,187,133,186, 67,239, 17,114,128,166,211,185,165,
-169, 34, 67, 59, 69, 20,166,193,232, 20,145,213, 67,199,184,237,210,102,218,224,186,188, 66,164,238, 54,226, 23, 0, 59,174,175,
-171,214,132, 28,162,145,129,229, 22,156,190,215, 54, 28,203, 67, 79, 71,135, 61,230,137,109,223, 45,196,169,109, 41,228,129, 81,
- 69, 40, 52,231,250,202, 33, 85, 52,212,151,136, 1,210,210, 15, 71,167,218,164, 54,200,141,252, 38, 55,130, 29,143,195, 15,180,
-122,148,191,146,173,152,231,168, 30, 24,201, 49, 21, 34, 20,201, 19,173, 50, 83, 18, 53,192, 37,214,230,173, 45,154, 41, 10,160,
- 83,107,216,118,149, 34,132, 16, 15, 99, 80,137,185,200,131, 71, 52,215,211,236,244,193, 61,181,175,217, 46,154,247,142,233,192,
-211,133,126,238, 63,180, 99,242,205,142,226, 55,174, 58,228, 91,255, 0, 28,223, 34,200,138,204, 11,131,237, 66, 47,160,126,206,
- 63,152, 82,144,161, 79,212, 61, 42,154,251,170, 41, 86,187,253,187, 46,216, 38,103, 28,215,167,185,107,116, 45,140, 54,181, 28,
- 59, 21,157, 99, 26,101,182,247, 0,217, 45, 39,122,146,164,128, 86,145,222,149, 5, 39,216,122, 14,189, 13, 14,179,215,196, 65,
- 87,136,239,139,192,232, 78, 22,139,198, 55,106,148,151,228,249, 13,109, 59, 80,189,128,199, 82,199, 77,171, 4,252, 63, 72,175,
-208, 60, 27,201, 11,158, 19,176, 92,236,177, 71, 28, 75,155,112,235,116,193, 28,177, 12, 40,109, 11, 44,148, 37,105,112,116,248,
-129, 72, 29,252,105,215,219,227,168,153,246,215,191,165,114,109,185,215, 12,204,163,179,124,213,128, 56,150,141,202,209, 99,153,
-209, 42, 67,243, 33, 50,243,236,147,226, 3,141,184, 62,177, 95,118,144,109,188,182,255, 0, 43,136,236, 37, 64,191,150, 31, 41,
-171, 73, 77,249, 30,101,196, 57,140, 37,194,188, 97, 86,105,108, 62,159, 41,187,140, 39,162,249,141,142,213,216,227,107,103,167,
-138,122, 31, 10,142,250, 47,139, 36,121,147,237, 79,108,118, 11,219, 39,107,138, 98, 63,170, 90,105,238, 53,245,170,193,112,227,
-172, 79, 19,188, 42,247,130,220,164, 88, 34,185,185,107, 77,173,167, 45,106, 36,247, 42,109,165,148,158,135,169, 65,167,191,184,
-211,200, 55, 71,183,186,250,158,213,108, 54,242,110, 17,233,153,141, 39,219,233,235, 10, 86,196,140,106,101,188,188, 47,204,170,
-228,128,107, 41,152, 42,134,251,142, 36,126, 21, 22,155,144,149, 31,165,186,233, 57, 42,227,171,130, 69,177,203, 9,208, 91,135,
-109,126,218,125,168,113,112,205,110, 54, 89, 10, 74, 38,133,161, 42,162, 94,117, 69, 0,143,121, 49, 99,233,236, 19, 81, 60, 59,
-107,103, 24,183,236,248,149, 32,180,115, 69,214, 13, 28,114,109,181, 8, 29,221,121,230,227, 16,127,215,112,211, 82, 17,220,184,
-124,164,251, 84,108,251, 19, 31,133, 15,168, 41,219, 28,251,231, 36, 9, 23,107,115,228,126,175,241,192,226,123,118,163,109,154,
-125,186,148,183,223,110,109, 62, 71, 17,235, 63, 21, 9,115,202, 81, 92, 96,224,127,194, 62,240,177,238,112,180, 56, 54,184,139,
- 27,254,224,251,146, 20,127,240,117, 51, 15, 60,238, 48,229, 51,253,170, 2,227,203, 27, 27,159,154, 22, 30,214, 55,224,153, 36,
-115,110, 40,208, 37,219, 29,129,211,214,161,216,137,124,171,234,112, 42,154,145,103,152,155,159,254,243,253,191,177, 69, 63,201,
-141,182, 76,224,143,252, 1, 71,229,250,130,193,227,147,255, 0,169,120, 99,206, 14,203,145,105,142,178, 8,241,162,155,254,141,
- 46, 57,255, 0,116,127,253,103,255, 0,136,253,201, 31,252, 37,181,102, 98,103,248, 25,240, 77,227,212,123,142,164,162,199,131,
- 99, 32, 1,240,191,106,197,146,235,227,253,182, 27, 73, 58,231,252,187,114,155, 57, 95,237, 63,125, 82,237,242,163,103,179,196,
-181,163,252, 33, 70,110,220,237,148, 73, 10, 23, 8, 54,214, 0, 4, 37, 19,237,241, 45,139, 74, 69,123,124,192, 73, 32,123,198,
-148,143,152,111,220,127,205,127,180,253,201,201,228, 93,161,131,252,182,159, 85, 84, 38, 87, 56, 76, 74, 10, 29,144,193,108,147,
- 68, 38, 72,117,143,160,124,152,113,180,211,234,211,182,110,183,143, 53,116,142,245,146,136,121, 95,110,136, 81,145,180,118, 52,
-124, 20, 78, 95, 50,217,220, 82,215, 41,203,107,138,173, 74,188,207,152, 88, 87,254, 91, 98,137,212,156, 23,215,103,241, 31,106,
-139,185,217,172,217,134,129,236,248, 96,163, 82,121,139, 24, 70,226,147,108, 83,134,181, 34, 58,119,245,255, 0, 97,105,251,245,
- 61,107,123,116,127, 25, 30,213, 86,189,218,109, 5,127, 46,190,166,255, 0, 74,138,205,230, 27, 66,170,152,210, 27,143, 90,213,
- 40, 74, 99,131, 95,110,205,160,253,154,180,216,207, 59,233,169,196,250,117,170,102,225, 97,111, 21, 67, 98,104,247,125,129, 68,
-102,114,132,103,149,253,181,194, 9,173, 16,189,200,250,122,129,171,174,223,226, 58,153,159, 79, 90,204,119,198, 67, 24, 53, 13,
- 30,157,116, 91, 32,114, 51, 45,186,141,146, 10,212, 79, 77,163,227,255, 0,241, 17,247,106,219,111, 27,136,197,100,155,163,163,
-175,116,131,216, 0,248,162, 4, 78, 70,138, 22,132,203,243,144, 86, 1, 74,212, 41, 90,253, 90,144,141,181, 24, 42,133,206, 7,
- 26,162,133,131, 46,181,169, 31, 52,228,150, 93, 64, 31,186, 82,129, 95,223,166,211, 74, 65,211, 68,128, 96, 3, 81, 83, 24, 55,
-232, 55,105, 40,102, 26, 16,181,184,173,168,101, 32, 21,149, 31,101, 52,202,238,237,150, 81,153, 37,117, 26, 51, 37, 48,154,229,
-172, 5,199, 0,140, 31,225,253, 44,255, 0, 54, 92,111,248,178,145,243, 73,129, 81,188,197, 71, 69, 26,119,232, 84, 53,231,227,
-231,254,223,252,232,109,255, 0,244,104, 65,127, 13, 85, 20,251,213, 59,254, 99, 7,213,248, 60, 58,122,213, 87,245, 3,234,115,
-133,113, 24, 15,195, 97,216, 42, 82, 27, 93, 18,155,143,155, 66, 7,245, 74,105,246,235, 72,101,140,183, 57, 2,182,235,109,216,
-196,107, 95,114,226,151, 42,250,176,196,178, 9,146, 24,176, 90, 17,112,117,110, 45, 41, 13, 71, 66,147,214,190, 40, 72,212,164,
- 28,187, 38,100,149, 97,181,230,130,195, 67,167,211,214,130,176,178, 75,222, 70,225,119,251,180,211, 12,172,146, 11,177,159, 32,
-131,254,218, 81,247,232,151, 27, 35,227,202,170,233,183,115, 84, 47,193,196,123, 10,150,181,106,121, 40, 75,146, 44,144,106,174,
-191, 11,178, 35, 47,167,189, 46, 44,106,189,115,104,246, 26, 26,251, 42,175,219,118,231, 20,160, 22,187,223, 69,250, 24,136,131,
-255, 0, 9,144,231,130,144,205,205, 65,144,125,138, 46, 51, 68,127,180, 70,161,166,132,140,233,236, 87, 43, 59,173, 89, 56,251,
-126, 41,122,102,181, 25,180,182,155, 93,254, 32,238, 17, 22,227, 30, 98, 58,120,249,104, 96, 46,158,250,234, 58, 75,122,241, 30,
-255, 0,138,159,130,228,142, 31,252, 39,238, 91,211,121,180,183,181,199,154,189, 48,191, 25, 15,217, 27,116,238,247,171,204,104,
-159,183, 81,242,219, 59,164,123, 84,196, 23, 67,163,221,251, 66,116,141,146, 90,186, 3,119, 13, 36,248, 58,212,136,223,106, 82,
-227,232, 31, 80,211, 9, 45, 29,209,233,238, 83, 16,222,180,103,246,255, 0, 74,120, 98,235, 9,229, 5, 71,184,218,214,175,106,
-228,173, 4,253,111,195,111,238, 94,152,190, 7, 14,159, 79, 90,147,138,118, 59, 47,143,220, 19,160,156,248, 70,244,249, 18, 82,
-159, 6, 37,181, 32, 15,161, 41,152,149, 15,250, 58,104,232,207,167,244, 39,236,123,125, 63,165, 37, 93,237,214,234,167, 33, 58,
-132,248,173, 81, 22, 17,255, 0, 75,106,255, 0, 78,146,116, 4,167,109,123,115, 72, 23,147,199,241, 72, 29,250,159, 48,138,253,
-192,105, 51,108, 82,205,145,165,126, 39, 37,104,255, 0,214, 10,125, 43, 3,244,157, 34,235, 90,167, 13,152, 4,189,139,219,110,
-145,229,184,210,148,127, 85, 78, 41,175,189, 84, 31,126,144,117,177, 9,195, 38,111, 82,123,102, 68,199,135,236, 35, 7, 85, 79,
-194,205,193, 46,175,254,130, 55,172,253,154, 64,219,211, 63,177, 57,108,237,244, 41,107, 10,184,184,226, 80,184, 10,166,224, 20,
-100,169,196, 37, 4,255, 0,164,166,219,219,246,233, 51, 0, 9,118, 76,222, 20, 70, 60, 86,211, 17,255, 0, 41, 43,200,173,208,
- 36, 26,127,187, 72,121,167, 66,107,215,246,110, 48,178,133, 30,157,151,180,248, 0, 78,163,231,132,116, 39,241, 93, 57,191,132,
-145,213,240, 82, 41,243, 32,219,158,242, 92,147,118,149, 33, 62, 2, 51,177,194,125,134,142, 52,158,254,227,166, 6,220,158,133,
- 42,201,195,198, 21, 78,118, 59,251,177, 86, 37, 22, 18,160, 87,248,205, 28,153, 79, 14,169, 46, 22,143,188,145,162, 58, 10,224,
-139, 33, 20,197, 73, 38,229,162, 66,211,231,173, 79, 41, 40, 9,105,128,104,211, 32,211,245,137,173,125,222,222,253, 52, 95,164,
- 41, 38,191, 12,147,141,139, 59,147,108,146, 4, 87,166, 55, 44,111, 80, 76,119,140,100, 26,118, 4, 39, 98,143, 90,245, 36,126,
-141, 34,235, 98,187, 35, 25, 40,239, 0,123,113, 68, 43, 62,127,114,154, 29, 76,183, 90,145, 38, 66,156, 11,144,251, 45,188, 89,
- 20,235, 69, 20,149, 81, 41,232, 77,122,123, 70,147,240,244,168,235,155, 70, 12, 90, 41,235, 42, 33,151,165,185, 54,247,166, 56,
- 82, 80,194,100,187, 29, 7,112, 66, 82,194, 9, 91,206, 80,158,170, 0, 37,182,199, 85,117, 87, 68,138,170,251,202,163,190, 22,
- 61,207, 78, 45,109, 6, 34,184,252, 7,223,209,128,196,229, 91,248,103, 45, 55, 46, 77, 47,169, 99,204, 97, 65, 13, 37,212,121,
-129, 85,232, 16,132, 2,133, 1,183,167, 66, 58,116,237, 93,105, 59,172, 70, 56, 51, 89,101,142,151,191, 37,218,158, 55,202, 37,
- 66,113, 94,100,184,173, 48,194,188,175,133,133,180,242,157,117, 33, 64, 43,204,117, 97, 85, 73, 36,246,165, 53,146,223,247,137,
- 87, 24,236,195,154, 56,224,173, 77,191,145, 60,136,241,148,196,134, 84,151, 25, 65, 91,134,163,202, 67,223, 14,224, 40, 5, 84,
-160, 79,252,134,160, 36,106,231,242,192,236,194, 34, 99, 28,180, 32,203, 97,196, 72,114,177,155,218, 91, 21,249,116, 29,202, 74,
-193,247,168, 19, 74,119,250,180,148,125,210,163,119, 29,136, 92, 48,130, 6, 62,222,165,109,248,251,158, 92,140,195,129,215,183,
-176,216,109,166,136,252, 40,174,210,162,132,130,127, 0,119,168, 30, 0,159, 1, 89,171, 45,198, 75,124,138,203,119,254, 82,108,
-132, 80, 98,113, 62,158,175,120, 80, 15, 84, 94,165,222,107, 2,158,150,182,180, 30, 2, 50,205, 73,163,129, 33, 68, 4,144, 14,
-210, 43,212,253, 30, 58,186,109,155,140,155,140,160, 57, 65,108,156,176,219, 9,195,201,200,215,223, 79,106, 32,122, 82,229, 56,
-182,238, 36,182,221,165,255, 0,196,238,209, 17,112, 75, 59, 54, 37, 12, 23, 20,218, 82, 73, 74, 80, 20,181,118, 1, 85, 61,187,
-232,183,123,168,176,149,244,249,151, 57,179,105,126,229,118, 26, 62, 70,225,235,165,123,104, 19,143, 38,243, 67,171,147, 58, 27,
- 74, 66,218,222, 18, 91,162,138, 16,182,106,149, 33,123,170, 7,152,234, 14,210, 9,232, 72,239, 67,170,126,227,124,251,151, 26,
-228,165,249,115,150,154,214,181,231, 63,143, 17,216, 14, 61, 99,163, 5, 87,114,190, 88, 47, 7, 98, 54,225,102,140, 56,197, 20,
-163,177,108, 56, 40, 67,117,161, 29,201,165,117, 18,224, 92,180, 45,191,100, 17,209,196, 84,214,190,177,210,132,174,242, 27, 40,
- 40,142,202,234,235, 14, 44, 59,212, 83,109, 18, 18,170,118,233, 81, 94,221,192,209, 68, 84, 86, 1,100, 93,137,226,153,229,115,
- 69,174, 28,118, 37,200,148, 33,136,146, 8,117,227,241, 37, 1, 74,242,234,190,221, 86,126, 19,237,233,219,197,211, 35, 39, 36,
- 87,108,245,113,235, 8,197, 96,245, 73,102,135, 18, 64,141,121,183,169,194,216,101, 72,110,112, 74, 94,163,102,139,109, 67,117,
- 20, 42,122,128,122, 18, 8,169, 35, 78, 35,141,237, 56, 96,171,215, 92,174, 38, 34,163,173, 65, 57, 91,212, 62, 45, 62,196,178,
-110, 9, 54,217,200, 49,174, 97, 41, 3,228,223,127,106,216,144, 60,165, 16, 91, 67,169, 30,105, 71,225, 31, 16,173, 58,203, 88,
-194,233, 29,214,147,131,100,117,158, 36,101,146, 18,241, 95,172,139, 77,166,123, 88,255, 0,204, 38, 84, 65, 58, 59,113,228, 37,
-221,142,124,187,162,161,183, 40, 72, 74,219,115,114, 82,224,173, 69, 18,123, 39, 82,151, 59, 83,142, 35, 4,218,243,109,108,224,
-184,230,130, 62,171,151,138,255, 0,124, 98,103,216,252,182,100,179,120, 45, 74, 41, 65, 10,242, 77,197, 37,192,166, 84, 58, 4,
- 72, 74, 10,139,117,162, 86, 15,109,230,177,114,181,226, 50,195,152, 87, 94, 77,121, 32, 71, 39, 12, 21, 89, 60,131,116,101,199,
-254, 91,204,114,222, 80, 22,151, 24,110,173,178,162,144, 14,240,122, 32, 40,116, 61,105, 94,154,171, 75,110, 73,201,108, 86,209,
- 70,214,140,113, 64,156,135,150,131, 83, 36,199, 64,100, 60,226,212,135,144,129,242,232,126,157, 8, 83, 74, 20, 7,219,183,238,
-237,165, 27,101, 81, 85, 49, 1, 13,166, 41, 13,135, 59,122, 92,164,148,182, 82, 80,160,149,160,185,251, 70, 18,123, 20,164,132,
-144, 40,126,141,113,246,129,185,169, 70, 85,195, 2,143,145,249,138,221,107,183, 49, 22,229, 10, 58,222,104, 81, 15,124, 69,151,
- 83, 74, 18, 54,148, 45,181, 17,220,164,148, 26, 83,101,123,199,203, 98, 30,186,200, 95,170,161,222,159, 15, 74,164,200,230, 91,
-111,157,231, 91,238, 15, 52,218,182,169,216,105, 32, 76,105, 42,238, 81,240,252,188,196,143,244,118,171,196,128,158,186, 97, 38,
-214, 84,196, 46,194,142, 2,189, 60, 62, 35,211, 20,244,231, 51, 6,162,174, 75, 50, 20,252, 84,127,106, 49,216,249,105,140,182,
- 71, 85,184,197, 86,133,163,175,226, 66,200, 61, 77,104, 14,155,127, 40, 47, 78, 89, 59, 24,104,225, 67,237, 30,212, 46,189,114,
-149,166, 99,255, 0, 57, 6,235, 25, 42, 7,227, 9, 90,119,163,196,111,232,146,131,237, 27,105,239, 58,121, 6,214,248,240, 33,
- 47, 44,236,112,193,126,197,229,119, 18, 18,126,106,224,170,129, 82,192,105, 8, 88,255, 0, 93, 14, 37, 71, 75, 29,187,177, 49,
-115,155,208,146, 76,228,203,122, 79,154, 33,196, 67,223,172,228,182, 67,171, 80,255, 0,198, 45, 78, 83,254,142,151,142,192,244,
-251, 18, 15,149, 70,228,243, 25, 36,179, 29, 59,251,169, 40,100, 0, 82,125,137, 9, 13,182,161,244,167, 78,155,183, 83, 52,213,
-211,132,136,242, 77,250, 90, 65,121,130,204,119, 58,214, 76,149,193,143, 95,126,229, 71, 74, 79,190,186, 93,182,140,110, 66,190,
-244,147,229, 39,141, 23,131,201, 17, 33,141,207,195,128,242,197,106,149, 68,122,230,176,161,226, 80,234,219, 10, 7,218,135, 20,
- 52,229,144, 14, 1, 50,150,167,241, 59,236, 73,222,245, 1, 62,218, 10,109, 22, 27, 44, 71,145, 85,121,201,137,228, 56, 15,130,
-208, 26, 89, 29, 0, 21, 10, 7, 78,227,181, 5, 71,203,110, 29,243, 23, 31, 95,244,168, 45,243,212,110,123,112,253,156,139,187,
- 74, 74, 43,176, 51, 9,162,164,138,118, 43,218,149, 32,208,245,170,181, 33, 21,163,120,166, 70, 8,226,249, 69, 16,174,233,205,
- 57,124,130,164, 27,188,147, 74,157,140, 2,234,147, 83,255, 0,228,164, 55,255, 0, 73, 71, 82,112,218,183,163,238,251, 83, 9,
-156,214,228, 7,219,246,124, 84, 62,103, 35,228,239,154,187,113,151,215,176,122, 88,104,172, 31, 99,109, 16, 73,250,206,164,225,
-129,163,130,139,184,113,112,248,252, 18, 38, 50, 28,174,228,224,109,133,190,183, 9, 0, 15, 45,205,228, 31,244, 22, 10,190,179,
-246,234,126,206,192,204,104,214,215,211,167, 37, 87,220,239, 89,102,210,101,120, 0,122,189,192, 85, 25,240,126, 38,228, 28,193,
-207,219, 62,236, 54,128,220, 85, 41,211, 25, 9, 7,222,216,112,125,101, 67, 86,219, 77,134, 76, 9, 20, 89, 78,247,207, 86,150,
-192,134, 56,184,245,101,246,162,155, 62,157,114,120,203, 59,229, 45,123, 13, 15,151, 29, 78, 5,123,252,195, 64,107,237, 26,190,
-237,156,188,214,128, 93, 90,172, 47,152,124,203,115,201,108, 97,160,123,125,216,173,239,113, 28,235,114, 84,167,139,165,105,253,
-101, 0, 58,253, 66,186,182, 67, 97, 28,124, 22, 93,123,205, 19,221, 19,222,167,102, 10, 56,113, 91,228,121,105, 68,102, 87, 32,
-214,168,160, 82,251,125, 58,127,225,177,163,161, 65, 62,237,242,156, 73, 42, 71,115,118,228,136,141, 53,113,182,188,204,166, 17,
- 68,173, 40, 34,180,250, 52,197,145,232,113, 45, 56, 46,205, 56,112,239,102,162,177, 47,247,134, 31, 66, 91, 68,138,149,132,165,
- 0, 26,168,147, 64, 41,239,209,110,101,108, 96,151,112, 81,114, 75,164, 46,140,240,150, 38,246, 57,142,171,144, 51, 36,150,214,
- 91,255, 0,209,208,156, 20, 82,148, 69, 71, 67,247,157,120,111,207, 95, 55,157,121, 33,218,118,215, 97,248,156, 22, 89,205,188,
-203,167,242, 98, 61,169,195,252, 79,189,156,152,100,159, 23,200,161,195, 8, 49,183,246, 95, 42,233, 4,138,118,253, 65,175, 49,
-125, 35,116,233,175,127,230,175, 26,172,179,196, 58,171, 92, 87,204,220, 14, 26,188,223,214,155,143, 34,229,147,167,188, 72, 81,
-136, 37,157,135,221,180, 26,125,186,251, 32,203, 86,179, 32,189,100,110,136,201, 19,172,248, 54, 63,105, 83,113, 49,236,122, 51,
-207,116, 66, 95,117,160,243,132,251,122,138,107,178,233,133,186,157,146,231,142, 79, 21, 56,111, 12,202,203,201, 97,118,242,202,
- 86, 42,148,165,157,137,167,213, 65,164,109,165,138,237,186,155, 66,142, 46,139, 50, 39,218,167,246, 46, 32,200,103,244, 37,198,
- 82,186, 5, 4, 38,135,174,139, 53,132, 82,230,209,236, 82, 54,252,193, 61,175,200,247, 15, 89, 68, 8, 94,151,238,243,200, 82,
- 74,220, 90,133,122,249, 72, 39,233, 5,165,149,125,103, 81, 55, 27, 20, 18,126, 16,173, 27,127,152, 55,150,199,252,199,122,234,
-126,212,221,123,244,199,154, 89,216, 83,177,219,144,145,220,109,183, 54,227,106,255, 0,160, 16, 84,126,147,170,205,231, 42,196,
-236,129, 90, 86,205,230,172,230,129,238, 7,182,138,191, 95,113,236,171, 23,146,235,114, 45, 86,121, 97, 10, 80,113,110, 50,243,
- 82,129, 79,112, 18, 36, 21, 36,251,190,237, 86, 46,249,103, 77,104, 79,181,106, 91, 87, 63,139,128, 9, 3,217,240, 80,227,147,
-192, 75,158, 77,214,202,235,105,173, 10, 69,196, 52,216, 63,248,167,226, 80,253, 37,205, 86,174,118, 73, 35,173, 43,236,253,170,
-251, 99,204,177,207, 79,150,157,180,247, 20,239, 25, 56,149,197, 20,105, 42,105,107,161, 13, 27,115, 42, 34,190, 10,121,130,173,
-190,226,122, 29, 65, 79,109, 44, 94,133, 90,109,111, 98,147,135,216,151,166,193,105,165, 99,186,138, 87,111,195, 53,123,183,123,
- 18,133,186,216, 39,253, 84,157, 71, 72, 94, 51, 10,110, 23,198,238,159,122,220, 49,183,210,170,197,147, 51,204, 52, 33, 13,172,
-169, 97, 63,233,126,205,210, 62,178, 52,209,207,233, 9,251, 30,209,147,150,243, 96,190,208,237,113,247,219,241,243, 97, 56,177,
- 95,122,130, 86,208,250,206,144, 46, 3,130,118,217,135, 23, 4,152,218,165, 54,175,218, 49, 8,172, 31,137, 40, 83, 1,117,247,
-165, 33, 71,238,210,101,201,195, 92, 15, 66, 95, 25, 47,178,160, 62, 77,186,120,255, 0,184,180,232, 35,235, 74, 15,216,116,147,
-146,192,131,196,169, 19, 15, 90,210,159,247,187, 20, 26,210,190,112,121,108,185, 95,161,217,174, 33, 63, 82,116,137,199,138, 80,
- 18, 50, 63, 98, 66,236,235, 34, 31, 5, 12, 6,192, 52, 13,181,114, 97,224, 85,236, 9, 91,109,147,245,104,120, 46, 41,102, 93,
-105, 56,169,108, 76,170,213, 17,144, 23,109,156,129,212,111,126, 82, 33, 54,174,148, 4,134, 25,109, 70,158,194,179,166,114, 91,
- 21, 39, 5,200,119, 17,233,235, 74, 98,228,225, 71,253,205,150, 67,100,144,219, 36,149, 52, 1,239,181,199, 84, 94, 73, 39,189,
- 23,215, 77,221, 7, 74,125,227, 12,198,106, 87, 2,252, 92, 33,183,252,246,186,164,184,203, 73,109, 77, 36, 10,116,168, 82, 86,
-107,218,149, 39,223,162,253, 56, 9, 39,220,158,213,238,100,215,100,200, 91,236,165,216,237,160,109,105, 75, 71,148, 58,116, 2,
-165,237,160,147,254,149,116,111, 4, 1,138, 77,183, 14,175,167,193, 51, 34,234, 91,124, 71, 68,221,234,168, 11, 12,165,181,182,
-133, 30,224, 81,202,146, 61,189,116,140,144, 2, 50, 78, 89, 59,171,195,211,212,138,182, 27,219, 41,142, 0, 14,186,144,154, 58,
-248,125, 8,114,160, 3,176,126,204,132,212,247,169, 52,239, 74,244,212, 60,144,209,201,204,242,157, 56, 17, 95, 78,180,225,145,
-229,202,155,101,145, 13,184,109, 55, 18, 4,117,149,209,215, 42,228,133,164, 41, 74, 52, 34,137, 73, 77, 27, 29,255, 0, 88,245,
- 89,213,179,151, 59,146, 14,181,145,115,125,190,182, 57,199, 21, 76,248,215,145,211,140,242,163,165,171,116,104,238, 54, 86,180,
- 45, 79,184, 3, 45,133, 39,113, 81, 46,116,220,154,214,157,251, 26,246, 58,246,225,107,227,219, 12, 86, 43,101, 40,109,193, 97,
- 93, 82,196,121, 95,248,139, 45, 21,148,237, 93, 37,173,208,242,194,148,231, 90, 3,212,149,117, 61, 62,159,126,178,171,251, 77,
- 39, 37,164,217, 82,152, 20,117,179,114,203,237,178, 86,225, 9,216,133, 5, 36, 62, 84,148, 37,190,128,128, 71, 82,170, 10,127,
-155, 85,217,160,167, 5, 50,219,109,121, 59,220,164,246,190, 75,146, 29,222,242,212,146,146,221, 82, 30,170,148, 54,246, 42, 29,
-125,154,143,115, 40, 83,151,217,106, 20, 71,140, 87,147,102, 54, 91,113,185,169, 15,182,132, 6,127,108, 66, 66,139,106, 65, 86,
-202,208,147, 90, 26,251,188, 52,164, 64,147, 85, 87,220,246,230, 16, 90, 70, 7, 63,104,226,132, 62,169, 57, 61,211,131, 34, 51,
-215, 18,235,229,213, 50,138,172, 44,186,242,130,146,163,186,157,118,161,180,142,189,117,122,229,118,126,101,122, 1, 84, 59,219,
- 33, 27,234,214,208, 23, 15,180, 31,125, 74,187, 28,109,200, 50,177,222, 53,199,172,107, 66, 28,140,187, 85,185,144,202,157, 45,
- 58, 80,148,238,120,182,160, 79,196,133,245,160, 73, 53, 53,246,234,189,186, 60,248,142,175, 74,106,221,173,183,211,153,154,104,
-224, 73,175, 14,170,246,143, 82, 20,101, 60,155, 37,115, 30,112,203, 89,116,184, 28, 90,139,169, 91,205,135, 9, 27, 86, 0, 21,
-165,105,184,143, 15, 17,215, 80,199, 53,123,177,218,195, 24, 5, 5, 50,254,132, 13,202,185, 79,201,142,202, 11,239, 0, 20,168,
-231, 96, 90,214,193, 80, 37, 42, 5, 53,162, 72,168,210,140,139, 82,153,138,207, 70, 52, 67, 91,143, 36,201, 67, 49,103,124,246,
-192,242, 54, 21,182,231,154,221, 66,141, 10, 21, 90,246,219,211,234,211,152,224,175, 4,232,194,209,128, 80,187,215, 40,164, 35,
-203, 18, 54,169, 13,186,169,104, 65, 37, 79, 38,131,114,234, 58,244,252, 67,169,236, 61,131, 79, 34,180, 92, 45, 8, 99,114,231,
- 89,118,200,129, 77,189,243, 49,154,144,223,204,239, 90,148, 18, 8, 53,216, 79, 98, 69,107, 79,127,191, 82,214,251,118,163, 68,
-194,103,180, 98, 85, 87,229, 31, 82, 50, 31, 19, 96,218, 38,150, 82,230,199, 42, 28,216,162,158,164, 85, 41, 9, 29, 82,174,180,
-241, 21,232, 58,106,219,182,109, 32, 98,224,171,155,133,224,102, 0,160,149,135,155,238,246,235,147,115, 25,186, 61,231, 50,176,
-248,171,138, 80, 77, 8, 80, 85, 60, 64, 32,110, 79,136,166,167, 31, 98,215, 10, 81, 66, 25,181, 35,171, 60,215,125,201, 35, 51,
- 13,251,139,175,219,155, 5,159, 32,184,167,156,136,194,246, 40, 36,119, 37, 41, 82, 7,225,233, 81,184,124, 70,186,171,110,214,
- 33,130,160, 43, 87, 47, 60, 7,117,169, 53,187, 59,153,105, 89, 92, 25, 46,200, 81,109, 33,212,183, 37, 73,112, 33,195,251,198,
-214,217, 74,146,161,221, 42,237,221, 36, 20,169, 73, 53, 23,217,137, 51, 90, 27, 46, 42, 40,228, 42,189,100,119, 59,188,201, 43,
-145, 18, 74,100,151, 10,129,101,211, 29,165, 80,211,114, 18, 20, 2, 2,207,116,143,132, 30,221, 40, 53,211,108, 35, 24, 41, 43,
- 75,128, 74, 69, 7, 39,191,197,148,131, 26,100,132, 22, 65, 79,203,190,242,252,230,233,248,144, 82,234,149,186,148,246,246,240,
-210, 46,183,105,224,166, 99,185,225,130, 81,115,205,228,221, 16,166,222,113,164, 60,133,157,229,194, 40,107,226, 21, 69, 1,239,
-246,120,215,160,211,119, 91, 6,149, 39, 12,250,194,142, 59,150,169,184,175, 70, 84,199, 82,164, 41, 84, 74, 93,248,153, 81,235,
-208, 14,134,167,194,148,237,162, 27,122,154,209, 61,100,224,102,161,168,228, 91,205,162, 74,156, 68,215,194, 83, 83,230,180,233,
- 42, 9, 87,114,164, 40,154,131,226, 60,125,180,211,182, 88,181,252, 18, 50,223, 22,138, 28,147, 21,199,145, 99,202,145,231, 25,
- 11,138,243,132,149,184,210,119, 48,167, 15,115,229,146,130, 43,254,138,190,170,233,243, 54,236, 50, 81,178,110,160, 97, 85,182,
- 30,113, 37, 59, 75,115,226,245, 21, 42,109,199, 24, 95,255, 0,179,167,254, 30,147,147,111, 29, 11,177,238, 61, 99,222,164,109,
-103, 50, 28, 74, 82,251,201,117, 62,247, 4,132,143,162,180,211, 83, 99,167, 36,227,235, 67,179, 78,204,231,138,109,176,150, 37,
- 41, 32, 26,236, 66,148,132, 87,222, 54,208,125, 26, 39,209, 99,136, 69, 55,116,249, 87,179,200, 47,212,146,255, 0, 83,248,202,
- 82, 66,148,125,229, 69, 32,255, 0,209,209,190,132, 20, 95,171, 62,158,159,114,111,123, 53, 47, 85, 33, 97, 67,189, 11,155,232,
-127,212, 70,212,159,174,186, 89,182,148,224,146,117,197,120,166,119,239,114,165, 13,169, 93, 82, 79,224, 0, 37,160,125,189,170,
-147,227,248,116,233,144,209, 53,123,245, 38,199,228,182, 13,100,203,165, 0,248,124,194,178, 65,175,116, 0, 65,251, 6,157,199,
- 11,157,144, 77, 37,115, 71,204, 87,134, 64,154,234, 24,137, 9,249, 78, 42,155, 21, 44,169,148, 40, 31, 4, 36, 20,169, 94,224,
- 21,169,139, 77,181,242,154,125,152,168, 75,253,210, 43, 70,151, 83,214, 77, 7,188,163,198, 11,193,217,126, 88,227,102, 61,174,
- 82, 90, 81, 70,253,177,132, 38,130, 21,223,113, 72,113,245,125, 99, 87,205,171,148,228,150,132,179,252, 95, 5,140,243, 79,154,
- 86,155,112,112,241,129, 61, 12,199,255, 0, 81,253,171,161,124, 83,233, 50, 28, 4, 69,147,118, 82,131,148, 69, 81, 29,180,237,
- 71, 95, 31, 49, 42, 53,247,237, 4,107, 75,219,185,109,144, 1,168,251, 48, 11,204,188,203,230,148,183,196,136, 88, 0,233,117,
- 92,126, 30,229,118,113,254, 35,197,172,172,182, 24,131,185,105, 2,139,117,229, 45, 85,251,118,143,168,106,209, 13,147, 98, 24,
- 5,148, 95,111,115,223, 26,189,228,167,185,216,133,169, 8,167,203, 51,216,244, 35,121,169,251,116,236, 71, 69, 14,233, 73, 67,
-187,223, 29,194,158,219,168,110, 34,119, 44, 29,169, 66, 43, 83,246,104,212,210,147,173, 80,224,113, 67,214,183, 27, 46, 65,242,
-214,235,187, 80, 93, 69, 8, 4,251,198,145,146, 70,184, 35, 0,230,149, 35,191,112, 26, 81,109, 23, 89,254, 74,210,235, 91,208,
-216,218, 77, 8,247, 10,234, 24,223, 2,237, 45, 9,205,197,187,163,110,167, 21, 25,227,175, 79, 54,135,239, 39, 38,189, 71, 67,
-118, 91, 90,140,144, 30, 0, 33,106,107,175,136,235,238,215,155, 60,248,243, 92,114,221,171,172,109, 28, 12,239,195, 14, 21, 89,
-215, 52,111,130,198, 50,198,158,241, 78,217,238, 66,238, 97,120, 98,193,101,107,203,180,194, 34, 59, 17,163,141,168,218,147, 65,
-208,123,124,117,225,136, 24,232, 67,167,152,213,238,196,146,177, 89,231, 51, 59, 81,204,162,144,225,248,163, 4, 84, 99,229,255,
- 0, 30,112, 34,230,136, 85, 30,121,132,202, 84,149, 42,157,250, 41,196,234, 15,235,166, 50,125, 70,147,225, 3,167, 87, 10,156,
- 71,216, 82,255, 0, 64,239, 7,196,167, 21, 66, 51, 79,202, 71,146,160,121,147,176,156,158, 29,242, 34, 18, 86,152,235,115,122,
-213, 79, 1,215,118,190,200, 90,115,140, 82,225, 32,162,245,116,155,107,135,202, 80, 44,122, 60,229,252, 2,110,251,254, 47, 53,
- 40,140,175,138, 68,118, 11,205,252, 30, 61,171,169,246,223, 91,223,182,128,131, 85, 25, 44, 79,135, 48,137,118, 94, 59,126, 82,
-144,153, 77, 20, 58,138, 36,135, 89,216,164,211,220, 70,143, 13,187, 45,197, 24, 40, 19,127, 17, 28,241,158, 48,109,128,218,203,
-105, 81,233,211,104,235,165,179, 93,212,143, 22, 60, 24, 81, 9, 17, 82,145, 65, 83,176, 31,232,208,210,128,114, 40,192,227,171,
-116,134,246, 75, 97,165,161, 66,138, 74,155, 20, 80,246, 30,157,117,195, 21, 82,204,153,204,200,168,214, 95,233,119,141,243, 40,
-171, 68,235, 76,125,234, 66,146, 62, 13,141, 36,145,220,237,163,138,247,124, 90,105, 45,139,101,204, 41,219, 30, 97,158,200,247,
- 92, 87, 63,185,107,242,203,131, 53, 50,102, 98, 87,181, 67, 53, 82,218,143,242,105, 88, 81, 62, 3,203, 86,224, 61,149, 35, 80,
- 23,123, 43, 29,146,208,118,159, 51,157,110, 64,144,123,232,185,181,201, 62,141,249,123,142, 22,252,132, 48,171,156, 54,234, 75,
-251, 26, 65,160,240, 1,197, 47,175, 79, 5,106,181,125,203,135,161,107, 59, 23,152,208,220, 82,142, 32,251, 85,126, 85,215, 42,
-199, 94, 49,231,179, 58, 42,155,248, 8,105,210,164,146,158,134,169,125, 18,217, 61,191, 84, 15,179, 84,219,238, 95,211, 92, 61,
- 61, 84, 90,190,217,205,141,152, 12,125, 61,117, 82, 40, 28,139, 31,225, 19,109,200, 89,168,222,225,181, 70, 62,103,210, 88,110,
- 40,169,241, 34,135, 85, 75,173,157,204,203,237, 87,107, 61,241,178, 12,202,152,181,157, 99,110, 0,164,217, 2,150, 83,219,229,
- 84,194, 1,246,130,169, 18, 15,217,246,106, 18, 75, 39,179,138,176,195,122, 36,226,125,137,103,247,206, 43,227, 99, 72,157, 17,
- 32, 0, 18,195,201,116, 26,123,150,210, 72,211, 55, 91,150,167,236,146,171, 83,185, 36, 66,221, 22,221,224,154,126, 47,226,173,
-176, 15,210,145, 19,250,116,151,132, 83,150,184, 40,188,187,168, 37, 74, 96, 76, 74, 85, 90,249,146,252,234,253, 96,160,125,218,
- 80, 51,165, 28, 59,161, 70, 39, 92,101,117,163,143,164, 43,185, 32,138, 15,119, 90,159,183, 74,177,128,174,153, 72, 94, 33, 94,
- 37, 71, 79, 73,243, 81,224, 82,220,197,179,187,233, 27, 71,233,215, 29, 16, 57, 0,150,100,253, 37, 75, 44,217, 85,193,167,146,
-219, 47,161,167, 87, 80,151,254, 89, 51, 38, 83,222,165,162,163,233, 7, 77,164,133,167, 52,229,179,156,134, 30,180, 86,177, 74,
-184, 73, 32,200,148,151, 26, 61, 92,157, 33,192,157,139, 3,226,166,208, 80, 40, 15,234,159,164, 87,187, 73, 3, 90,156, 49,196,
-231, 95,106,121,184, 78, 88,109,198,216,146, 11,203, 66, 82, 31, 8, 79,152, 26, 39,105,218,146, 21,177, 53, 85, 7, 80,123,244,
-215, 40, 56,174, 52,145,151,218,134,178,110,115,209, 55,107, 42, 91,168, 64,162,144,168,233,121,213,212,117, 63,132,168,110,247,
-159,176,105, 66, 26,236,215, 42,225,149,125,165, 20,112,219,200,249,119, 29,152,211,170, 81, 40, 75, 45, 15,138,133, 95,133, 39,
-161, 66, 7, 74,252, 41,169,240,241,164,109,205,184, 39, 10, 35, 58,229,225,184,146,141,208,108,207, 92,173,146, 71,152,131, 86,
-157, 83,160,199, 37, 1,231, 7,198,175,197, 83,229, 2, 58,251,189,218,113,181,184, 68,240,104,170,155,255, 0,230, 50,149,173,
- 87, 54, 57,122, 44,140, 31,145, 35,220,195,101,134,151, 37, 81, 74, 66, 9,248, 79,180,251,135,127,179,219,173,159,105,156, 94,
-219,150,117, 44, 51,123,128,216, 92, 54, 94, 4,209, 91,190, 57,206, 29,122, 52, 67,243,110, 10, 33,151, 22,217, 73, 74, 94, 69,
- 1,160, 81, 27, 77, 21, 90,117,233,223, 84,237,202,216, 2, 66,186,237,179,235, 0,245, 43, 59, 3, 43, 50,159,109,214, 92,242,
- 90,152,182,207,149, 90,249, 36, 80, 80,251,106, 15,183,244,106,159,115, 8, 10,221,107, 82, 58,209, 46,211,145, 56,243,237,161,
- 50, 77, 55, 36,173,212,141,219,204,116,245,240,246, 54, 53, 5, 60,116, 83, 81,138,132,105,199,242, 71,218, 75,106, 11,248, 86,
-221, 20,186,238,222, 73,218,107,225,210,162,135,233,211, 65, 80, 83, 27,155,118,184, 98,131,158,167,114,119, 87, 98,199, 45,197,
- 94, 98, 38,221,109,204, 33, 33,192, 64,249,135, 54,168, 0,107,208,212,138,107, 68,229, 65,139,143, 67, 10,204,119,152, 64,125,
- 71,239,171,201,101,191,110,194,227, 33,199,234, 99,177,103, 16,156,113, 97,111, 4, 80,212, 3,227, 80, 62, 46,190,239, 19,170,
-126,229,139,220,122,211,253,178, 26, 57,180, 25,135, 87,211,211,165, 5,242,204,185, 45,174, 66, 43,180, 58,241, 42, 85, 11,110,
- 36, 55,218,135,168, 29, 9,173,126,173, 48, 96,247,171,148, 22,196,129,212, 61,190,156, 21,122,201,115, 79, 45, 69,164,186,250,
- 93, 14, 85,179,224, 64, 37,123,171,212, 0, 82,175,135,223,169, 40, 33, 75,150,209, 9,175,185,124,244, 66,253,130, 82, 91, 15,
- 45,231,130,222, 44,169, 41, 64, 79,106, 2,146,146,146, 69, 9,241,250,245, 39, 4, 34,184,166,178,132, 53,186,231, 51,154,113,
- 15, 45,199, 99,169,192, 23,230,184,160,166,234,201, 41, 82, 71, 94,181,222, 9, 73,212,196, 22,192,168,169,164, 33, 9, 51, 12,
-218, 99, 48, 11, 81, 93,102, 80,154,208,113,214, 90,125, 43, 90, 29,222, 66,104, 58, 41, 91, 71,122,120, 26,106,122,206,220, 19,
-138,129,187,184, 45,174, 42,176,207, 93,230,237, 41,113,255, 0,135, 78,249,151,205, 90, 18, 26, 40,124,161, 38,187, 82,173,180,
- 87, 69,119,255, 0,155, 86, 70,189,144,182,160,133, 91, 45,117,203,232, 83,211,216, 77,242,223,229, 9, 14,249, 5,149,180,239,
-205, 33,123,148, 89, 86,197, 5, 0,146,122, 40, 18, 8, 52,234, 59,246, 58, 96,253,213,180,238,138,149, 49, 22,209, 83, 87, 26,
- 5, 58,176,242, 6, 25,131,180,182, 62,110,125,202,242,226,130, 22,244,104,222,100, 84,111,248, 78,239, 48,169, 95, 8, 61, 42,
-132,143,121, 20,212, 77,205,173,206,227,141, 0,106,145,135,114,178,219, 8,109, 73,119, 98,154, 94,243,118,230,170,205,118,180,
- 58,243, 81,238, 48, 75, 19, 89, 74, 60,160,137, 97, 69, 14, 80, 1,208, 44, 39,112, 3,218,117, 90, 54,142,133,197,174,224,174,
-150,215,204,184, 96,112, 79,255, 0,222,197,206,183, 71,142,234, 84,185,145,227, 41,214,229,237, 62, 96, 43, 5, 65, 39,167, 93,
-201, 88,168, 62,207,110,144,146, 26, 98,164,237,228, 0,208, 21, 17,186, 95, 38, 57,251,112,162,130,157,168,113,135, 58, 36, 32,
-208, 29,164,138,209, 11, 31, 9,238, 1,241,165, 2, 30, 29, 20,204, 82, 12, 13, 83, 89,185, 46,107, 41,113,135,219, 18,218, 89,
- 66,171, 37,176,242, 72,254,177,221,241,130, 13, 15,212,124, 73,210, 46,101, 48, 57, 41, 88,164, 4, 84,102,153, 46,203,148,144,
-151, 30, 64, 96,168, 20,238, 15, 35,200,112, 38,149, 41, 53,232, 64, 34,169,253, 3,166,143, 27, 42,131,174, 20, 62, 67,171, 52,
-164,166,220, 0,212,183,184,173,212,110,241, 65, 72, 36,255, 0,178,122,248,233,244,108,233, 76,101,156,156,147, 44,152,209,214,
-175,218, 58,164,212,212, 45, 9, 36, 1,237, 53, 64, 61, 60, 77, 62,189, 60,104, 33, 70,190, 64,252,210, 93,178, 35,245, 67,190,
-107,126, 7,171,106, 62,207,196, 61,158,253,116,128,228, 80,242,196,169,171,171,141,157,171, 75,137, 52,238, 21, 81,245,145,211,
- 73,186, 26,167, 12,185,162,115,110,231,188, 3,243, 73, 29, 63, 10,223, 82, 72,251, 8,210,126, 13, 56, 37,126,166,188, 82,214,
-238, 44, 10, 21,201,100, 82,149, 27, 67,180,250, 10,138,244,113, 1, 60, 23, 13,200, 25,148,164,223,162, 50,158,142,173, 84,241,
- 89,223, 67,238, 0, 4,141, 57,138,196,191,130,109, 38,226,216,248,175, 12,223,102,220, 29, 17,109,177, 39,207,121, 71,106, 90,
-134,202,156, 11, 39,195,107,105, 63,118,166,237, 57,122, 91,131,221,105,246, 42,230,229,205,246,187,120, 38, 89, 26, 59, 72, 8,
-185,133,241, 39, 33,101,242, 89,109, 54,249, 22,164, 60,177,229,160,177,181,253,181,234, 13, 79,156,107,226, 41,245,234,239,182,
-114, 51,158, 65,144, 44,119,153,124,234,183,179, 4, 64, 65, 61, 35,227,146,232, 23, 19,122, 83,118,216, 89,153,123, 76,229, 56,
- 10, 75,161, 81,155,132, 55,159, 16,161, 85,147,254,199,219,173, 19,110,229,136,173, 6, 66,171,206, 60,207,230,165,214,236, 72,
- 14, 52,237, 39,211,218,186, 37,132,113,149,178,205, 18, 58, 98,198, 3,203, 74, 54,170, 72, 50,220, 27,127,210, 90, 81,247, 13,
- 89,162,180,108, 98,128, 44,162,243,117,150,233,196,185,199, 20,114,182,218,102,180, 19, 70,193,106,128,116, 77, 0,167,232,211,
-182,198, 2,139,115,201, 68,107,102, 19,119,186,197, 91,236, 54,162,132, 2,105, 74,147, 77, 55,150,237,144, 16, 10,115, 13,155,
-231, 26,130,140, 72,177,191, 21, 79,137, 44,188,149,178,162,149,111, 71,195,211, 78, 90,240,241,130,108,232,203, 14, 33, 71,211,
-145,199,176, 73, 15, 24,168,125, 64,209, 40, 80, 29,254,195,164,166,139,197, 20,170,236, 83,120, 38,180, 73,231, 94, 35,229, 15,
-249,210,219, 76, 82,158,168, 66, 82, 18, 5, 58,251, 52,193,209, 8, 5, 2, 52,151, 62, 49,169, 91,109, 86,233,183,137,200,128,
-151, 87, 38, 10, 8,222,165,157,201,109, 31,243,107, 47,243, 23,157,109,249, 38,197,243,200, 64,125, 14,145,214,161, 55,141,220,
- 89, 70, 75,143, 98,129,243, 30,105, 26,223, 25, 56,110, 62,164,164,130, 27,144,166, 8, 27,215,216,214,158,195,175,154,183,215,
-211,115, 45,228,151,247, 36,157, 68,145, 94, 1, 96, 91,182,226,111,164, 46, 37, 49, 96, 56,220, 12, 62,210,246, 99,145,165, 1,
- 77,161, 78, 68, 97,208, 55,186,179,212, 26, 31,126,141,180,108, 23, 92,239,122,219, 27, 64, 72,175,120,142, 1, 43,178,237, 79,
-220,164, 20, 24, 33, 58,185,186,238,121, 45,171,233, 82,188,132, 71,145, 13, 16, 55,143,248,107,142, 54, 84,118,253, 41, 79,134,
-189,172, 60,147,176, 27, 1,217,232,223, 20,128,250,241,212, 1, 31,122,215, 63,145,199,224,125, 62, 26,169, 85,105, 56,239,159,
- 99,130,205,169,247, 31,113,101, 97, 42,146, 20, 41,215,232, 38,186,191,178, 23, 55,230, 90,191,212, 12,193, 86,174,215,147, 99,
-247,232,202, 98, 98,225,220,153,121, 52, 91, 82,153, 75,138, 9, 87,133,123,142,250,148,134,228,195,242,166,238,252,195,138,134,
-101, 92, 27,198,249, 19, 95, 49, 22,222,221,182, 75,149, 82, 95,142, 62, 29,199,175,116,245, 31, 94,166,109, 55,217,225,235, 9,
- 25,108, 98,120,235, 80,248,252, 3,106,179, 49,230,169,215,159,105,176, 85,185, 40, 42,248, 71,191,199, 82, 45,230, 41, 36, 56,
- 4,172, 59,100, 36,119,138,129, 75,110,213,110,184, 46, 36, 87, 85,177,181,109,218,180,237, 80, 35, 87, 11, 25, 93, 51, 3,156,
-160,174,218,216,158, 67, 78, 10, 71, 26,124, 22,155,220, 85, 94,158, 58,144, 1, 54,213, 68,241, 26,116, 71,146,130,146,165, 21,
- 40, 36, 4,138,232,218, 80,214,167, 81,172, 17,101, 50,133, 45,162,160,164,131, 66, 59, 87,234,210, 46,183, 5, 28, 52, 21,226,
-225,128,227,247, 24,110, 71,151,107,105,244, 41, 36, 41, 75,100, 59, 64,125,197, 42,175,253, 29, 36,251,112, 66,125,111,112, 96,
- 53,105, 92,229,245, 31,232, 47, 9,207, 26,151,115,177,216,227, 70,186, 41, 46,184,159,144,112,192,146,227,148,173, 10, 20, 29,
- 65,167,127,137, 34,189,186,106, 18,247,105,100,195, 37,162,242,247, 58,207, 96, 64, 46, 52, 92, 34,229,207, 77, 25, 71, 28, 92,
-231,199, 92, 57,187, 98, 56,176,182,229,193, 16,228, 33, 3,177,166,237,170, 29, 59,143,179, 84, 13,207, 99, 45,174, 11,208,124,
-187,206, 45,187, 13,196, 99,214,171,161,129, 50, 34,202, 92,133, 37,162, 15, 85, 24,170, 74,107,244,237, 3, 84,123,205,184,181,
-106,155,126,238, 31, 74, 39, 22,204,148,237, 11, 64, 64,238, 3,195,203,233,238,221,183, 85,233,172,232,173, 86,247,225,195, 48,
-151,137,113,154, 21,120,198, 73, 20,248, 84,226, 93,175,253, 20,171,238,212,123,237,143, 10,169,120,239, 27,196,133,249,252, 74,
- 19,134,141,180, 82,127,172,195, 66,132,253, 42, 72,210, 14,183, 35, 52,241,151,141, 57, 47,199,149,230,166,136, 83, 77,214,180,
-243,221, 67,117,250,104,122,253,154, 32,102,148,231,197,212, 51, 90,226, 88,190,108,146,150,162, 33,125,212,247,204,164, 52, 62,
-159,215, 3,253,157, 9, 30, 90,187, 21, 30,114, 78,241,173,255, 0, 42,232, 30, 99, 82, 10, 18,167, 22,136,224,166, 59,109,163,
-250,238, 80, 30,254,192, 73,240,166,153,189,245, 82, 76, 97, 10, 97, 26,255, 0,241,180,220,138, 20, 71, 9,109,182, 80, 54,178,
-134,199, 90, 4,142,149, 81, 52,169,250, 79,183, 72, 24,186, 18,190, 33, 82,152,215, 84,190,101, 33,105, 1,114, 16,180, 34, 65,
-233,229,166,160, 31, 14,149, 42, 87,214, 52, 60, 35,130,239,140, 49, 28, 86,155,115,107, 83,146, 96,184,210, 18,228,228, 44, 23,
- 43,181, 73,220, 16,224,161,236, 40,215,109, 22,104,240,175, 66, 52,115,240,233, 68,171, 83,112,194,218,128, 18, 80,229,189,111,
-121,169, 64, 30, 81,149,181, 36, 19,216,144, 15, 83, 83,250,117, 20,242,106,187, 33, 14, 10,199,218,110,173, 69,128,184, 86,136,
-204,169, 81, 80,175, 61,247,213,188, 72, 80,234, 13, 7,227, 33,207,137, 41, 53, 4,128,105, 94,234,195, 88,187,206, 85,155,214,
- 11,151, 80, 84,174,127,250,159,132, 46,201,129, 39,203, 73,145, 29, 70,128, 52, 2,150, 82,126, 34,104,107,210,190, 35,191, 93,
-104,156,169,184, 22,146, 56, 21,159,115,142,212,215, 70, 58, 70, 52, 73,248,165,217,142,218, 33,121,166,136,138, 27,105,208, 7,
-194, 84, 18, 0, 79, 64,107, 74, 84,253,154,113,188,150,135, 26, 38,251, 11, 28, 88, 42,173,101,142, 74,130, 91,119,112, 42,108,
- 54,210,129, 73, 53, 86,228,130,175,252, 33, 79,118,169, 55,101, 94,109, 89, 76, 17, 62,197, 57,214, 92,171,109, 18,209, 59,201,
- 35,175,225,234,144,125,138, 42,212, 5,205, 10,156,133,132, 4,124,199,164,173,224,210, 27, 36, 33, 38,181,240, 0, 10,119,175,
-186,154, 96,198,211, 19,210,155, 94, 30,174, 30,244, 27,245, 3, 37,110, 79,227,232,221, 54,202,203, 44,168, 80, 40,248, 82,148,
-190,215,126,148, 35,175,134,180, 46, 91,104,107, 36,112,253,194,179,125,213,165,242, 6,145,248,253, 62,229,122, 35,188, 98,216,
-224,199, 82,128, 66, 26,101,109,146,146,122,134,201, 74, 72,236, 42, 77, 69, 71,142,168,215,175,171,207,106,154,219,225,168, 36,
- 14, 31,122, 0,101,183, 83,189,105, 82, 87,230, 40,212,188,163,184,173, 68,124, 42,234, 58, 18,118,244, 3,182,155,194,117, 43,
- 91, 33,208, 48, 85,235, 35,124,190,226,165,168, 45, 44,161,176,143,216, 54, 77, 16,181, 37,117, 20,246, 42,189,125,250,156,132,
-211, 4,221,205, 60, 16,250,241,118,249,184,113, 89, 75, 42, 66,233, 41,133,170,133,104, 95,151,240,251, 13, 69, 85,247,234, 78,
- 22,128, 83, 9, 88, 66, 18,100, 50,156, 45,183, 29, 77, 48,241,136,181,200,109, 46,160, 45,109,165,224,144, 80,146, 83,215,162,
-106, 8,239,169,155, 98,162,174, 34,169, 65,123,140, 27,166, 65, 45,152,171,218, 35,151, 82,151, 22,175,132, 54, 31, 33, 33, 93,
-136,160,160, 36, 13, 79,199,114,203,118,215,138,129,154,201,215, 46,234, 79,211,113, 37,241,234,219, 83,178, 38,135, 10, 80,235,
- 44,148,135,108,242, 0, 3,106,208, 20, 84,219,190,208,180,138,119,241,211, 99,126,111, 78,145,146, 85,182, 12,181,110,179,154,
- 12,228, 89,125,247, 46,185, 23, 37, 41, 98,211,107,171,115,110, 17,165, 59, 2, 76,199,146,104,164,254,205,126, 64, 0, 82,128,
- 50,122,116,165,117, 55,244,209,237,209, 52,211,190,243,135, 80,233, 85,215, 54,109,214, 71, 59, 81, 17, 51,222, 86,235, 51, 22,
-155,156, 37, 6, 90,184, 70, 44,149, 56, 31,113,104,154,181,164, 36,238, 36,143,150, 9, 10, 2,191,129, 84,246,211, 72, 75, 57,
-131, 19, 68, 72,172,126,160,208, 2,146,204,249,196, 76,141, 10, 45,196, 56,132,186,154,199,145,189,181,182,181,110, 1, 1, 74,
- 72,110,161, 36,214,170, 29,123, 14,154,136,146,147,146,105,154,182,218, 7, 89,180, 10,224, 17,174,223, 5, 76, 68, 98, 25,218,
-169, 44,188,228,119, 92,109, 73,121,103,207, 8,248,137, 73, 53,218,190,222,234,106, 22,226, 60, 85,154,198,238,162,189,106, 55,
-116, 66,148,137, 13, 16, 90,145, 31,204, 75,137, 90,104, 23,177, 73, 53, 73,255, 0, 73, 4, 83,232, 35,199, 76, 75,104, 85,162,
- 9, 3,155,130,142, 51, 41,216, 78, 9, 36,146,209, 41, 46, 4,244,113,167, 18,104,124, 62,191,163,220, 70,136,230, 87, 4,254,
- 41,169,138,147,220,242,104, 47, 91, 11,101,180,188,210,188,176,246,209, 71,163,188,216, 32, 21, 14,129,105,161, 37,181,130,149,
- 38,165, 36,169, 21, 10, 17, 65,138, 66,230, 93, 38,160,161,146,228, 33, 43, 91,145,164,146,157,253,252,133, 60,193,175,138,246,
-130, 69,125,187, 65,251,245, 34,200,171,154,140,146,242,139,203,153, 34, 67,101,151,252,167, 40, 41,240, 32,148,244,237,209, 73,
- 74,197, 60, 0, 58, 93,182,253, 9,163,239,131,243, 76, 98,251, 34, 35,133,200,143, 81,181, 18, 10, 8,222,209, 7,184, 82, 77,
-122, 31, 26,253,122, 84, 91,106,205, 54, 55,218,120,224,151,167, 43,140,226, 3,119, 91, 66, 36, 71, 38,165,232, 36, 52,176,125,
-201, 82, 92,100,125, 73, 26, 59,108,201,200,164,223,184, 1,141, 22,135,101,226,242, 13, 98,203,184, 71,113, 85,163, 75,128,165,
- 0,124, 7,236,158, 36,253, 59, 6,158, 67, 96,247,102, 19, 9,183,134,199,199,211,212,165,120,206, 7,117,203, 31, 67,118,137,
-147, 26, 65, 35,115,162, 51,254, 71, 94,213, 82,163,183,182,191,235,106,195,101,177,153,127, 8, 85, 13,223,156, 91,102, 13,100,
- 35,214, 63, 97, 87, 91,137, 61, 10,223,179, 9,108, 57, 62, 91,110, 37, 93,126, 43,235, 79, 41, 53,236, 84,219, 44,202, 90, 63,
-218, 3,216,117,122,219,185,105,173,196,128,177,142, 98,243, 61,205,168,105,113,245, 31,190,139,166,220, 87,249,121,218,172, 13,
- 50,253,193,112,119,252, 11, 86,216,206, 78,220, 62,135, 67, 45,167,223, 65,245,106,233,103,181, 54, 17,146,197, 55,158,119,150,
-249,199,230,246,209, 93,220, 99,211,254, 37,140,182,203, 76,199, 72, 20, 66, 93,105, 8, 34, 51,129, 61, 40, 80,189,255, 0,118,
-166, 35,128, 53, 81,238, 55, 7,204,106, 81,134,219,128,216,219,218,204, 56, 72, 36,244,218,145,254, 77, 45, 77, 24,148,202,166,
- 66,143, 88, 23, 22, 88,174, 13,173,187,140, 34,193, 73, 27,104,222,208,117, 23,125,120,232,126, 82,165,246,253,189,179,252,225,
- 17,175, 60, 77,143, 34,216,182, 96, 55,229, 58,132,252, 46, 17, 93, 68,183,115,146, 39, 85,216,133, 47, 46,209, 19,219,165,184,
- 20,201,143,219, 19, 97,138,228, 87,214,151, 13, 72, 31, 15,134,152,223,223,125, 65,212, 18,214, 86,102,213,186, 78, 41, 37,214,
-211,103,186, 70,148,210,163,180, 30,113, 10,163,155, 40,119, 17,162, 91, 94, 75, 25, 6,184, 46,220, 88,199, 43, 78, 24,170, 95,
-200, 88,143,240, 41, 33,249, 46,160,180, 93,171,105, 21,232, 60, 59, 83, 86,155,109,196, 92, 10, 42,109,245,145,181,196,161,183,
-206,166, 84,150, 33,196,108,170, 67,171, 75,109,132, 14,167, 81,187,190,231, 30,219, 11,230,148,209,173, 21, 42, 26,121,132, 64,
-146,138, 57, 29,210, 55, 25, 97,228,154, 42,247,114, 97, 74, 53, 31, 27,123,199,219,175,153,222,106,243,220,190, 96,110,142, 99,
- 79,228, 70,104, 58, 13, 22, 59,205, 59,187,174, 94, 88,220,149,110,195,241,149, 93,230,202,204,114, 85,148, 91,216, 82,164,171,
-205,233,230, 41, 38,161, 34,191,126,169, 80, 91,203,186,204,203, 11, 65, 87,184,211, 14, 29,106,171,183,237,239,220, 36, 13, 1,
- 4,253, 64,250,132,180, 90, 96, 60,241,117, 45,219,160, 37, 77,195,134,130, 7,158,180,116, 29, 63, 70,189,181,200,124,153,107,
-229,133,144,115,128,117,203,198, 61, 85, 90,245,180, 81,114,228, 63,215, 43,150,191,227,118,116,172,188,114, 47,202,188, 49,182,
- 94, 85,179,228,246, 26, 42, 60,149, 5,239,237,225,229,119,247,234,111,235,238,181,253, 94, 57,168,159,172,159, 95,212, 99,154,
-170,216, 95,173, 62, 93,195,214,211, 55,105, 19,210,226, 72,171,143, 54, 85, 74,125, 52, 86,183,155,142, 93, 99,178, 11, 95, 15,
- 5, 95, 14, 29,252,202, 47,113,165,198, 23,139,155, 78,174,160, 22,214,229, 20,174,221, 62, 42,106, 18,126, 94, 13, 61,208,148,
- 50,144, 48, 93,103,226, 63,204, 19, 10,201, 35,179, 30,244,251,113,156, 81, 1, 42, 42, 9, 21, 63, 65,211, 57,246,215, 66, 48,
- 9,171, 46,141,113, 87,239, 10,245, 15,131,229, 17,155,102, 4,248, 50,188,208, 16,164, 40,165, 71,226, 30,194,117, 9, 51, 93,
- 17,201, 75, 67,114, 28, 40, 82,252,147, 12,197,111, 46, 38,239, 13,168,229,197, 40, 56,164, 50, 71, 90,245,246,234, 74,203,122,
-146,216, 82,184, 36,102,182,100,166,180, 66, 44,210,221, 18,216,227, 0, 91,220, 98, 55, 77,206,165, 6,180,247,211,191,213,171,
-158,211,185, 11,161,139,177, 81,183,241, 6,252,173,162,149,226, 13, 91,102,178,209,137, 16,190, 17, 79,136, 38,163, 83,198,102,
-179, 50,154,199, 9,126, 65, 23,161, 42, 50, 64,108,160, 33, 73,232, 80, 69, 8,166,150, 14, 4, 85,116,247,112, 42,109, 3, 27,
-153, 61,159, 61,136,171, 83,116,174,237,158, 26, 65,247, 81,180,208,148,230, 59, 87,200, 42, 2,107,185, 89,216, 70,248,179,162,
-160,146, 40,164, 56,158,132,125, 30, 58,238, 18,138,132, 59,208,154, 28, 10,171,156,193,192,248,143, 32, 91,100, 64,122, 51, 45,
-169,212,168,182,159,194,194, 29, 35,162,130, 0, 83, 34,135,191,236, 73, 62,209,166,115,216,182, 97,136, 83,123,103, 48, 75,183,
- 56, 22,185,113,115,158,255, 0, 47,140,162, 11,146,230,226,209, 81, 33,194, 86,235, 73,255, 0,116,216,180, 3, 83, 70,148,132,
-200, 81, 39,183, 65,170,158,225,203,173,147, 16, 61,235,100,229,223, 50, 52, 80, 72,104, 59, 62,245,203,204,251,132,121, 51, 13,
-152,252,107,181,130,227, 11,203,174,229,179,109,113,166,214,132,215,226, 5, 44, 32,125,167, 84,139,221,132,199, 94,233, 91, 30,
-209,206, 17, 94, 0, 89, 40,247,124, 80, 38,108, 73,112,220, 41,146, 86, 20,158,132, 57,209, 95, 93, 15, 77, 85,238,118,226,206,
- 10,243,105,187,135,211,189, 84,222,153,233,108,254, 52,251,232,170,159,180,171,250, 53, 13, 45,153,232, 83,208,110,173,233, 78,
-209,111, 73, 52, 31, 17, 20,165, 66,202,212,145, 79, 5, 84, 1,168,249, 45, 72,205, 77, 91,238, 65,235,107,183, 7,183, 18,210,
-154, 91, 66,138, 80,109,127, 48,225,250, 77,118,163, 72, 58, 42, 41, 56,238,189,137,238, 28,185,178, 82,132,238, 13,249,174,161,
-150, 89,175,196,235,202, 32, 15,122,233, 94,231,166,153, 62, 32, 20,155, 46,117, 10,156, 20,182,200,152,115,238,139, 90,151, 91,
-123, 14, 53, 29, 46, 5, 80,190,150, 65, 82,148,145,226, 86,150,212,226,186,244,162,143,122, 2,147,152, 90, 17,196,213, 53, 78,
-242,166, 41,210,129, 27,246,126,115,137, 67, 91, 1, 9,222,122,132,247,253, 98,163, 77, 43, 20, 88, 98,144,158,228,106,193, 76,
- 45,243, 18,203, 80, 31, 77, 29, 89, 82, 86,224, 63, 18,210,182, 84, 91,160,250, 80,223, 79,118,145,154, 44,215, 89,115, 90, 83,
- 53, 53,143, 45,108,249,103,104, 6, 67,206,124,194,136,170,156, 45,249,106,173, 79,176,171,175,249,181, 0,241,223, 82,224,248,
-145,213, 77, 83,156, 72,181, 33, 45,196,140,205, 36, 71,242, 67,139, 27,150,164,165, 98,170,167,122,210,131,254, 66,146, 12,178,
-250,134,226, 85, 90,226,239,233,158, 59, 85, 77,228,153,247, 71,242,233,104,155,185,105,122, 35,114, 35, 23, 42,180,132, 44,170,
-170, 2,164,118,160, 61, 7,134,174, 91, 75, 88,203, 96, 88, 49, 6,133, 82,247,121, 95, 37,229, 30,106,210,218,142,132, 82,226,
-232, 32, 68, 83, 64,211,162,148,134,194, 42, 22, 86, 19, 90,247,174,225, 90,234, 43,115,186, 46, 56,169,173,186,200, 54,148, 86,
- 30, 4,111, 36,151, 62, 53,169, 9, 82,203, 65, 53, 82, 31, 95, 80,122,119, 2,190,221, 85,230,158,170,207, 13,176, 68,156,118,
- 42, 95,108,168, 29,235, 11, 90,202,191, 84, 16, 54,154, 87,218,138, 43, 81, 55, 15, 53,162,127, 27, 0, 10,194, 98,150,221,206,
-182,144,218, 70,226,146, 2, 7, 90, 30,170, 30,207,113, 26,107, 27,170, 84,118,224,116,180,159, 90, 24,115,125,129,215,115,206,
- 36,138,170,184, 29,202,237,235, 13,211,104, 40,142,235, 42, 90,128,241,169,168,213,251,151,222, 91, 4,238, 57, 6, 42, 21,235,
- 91, 52,141, 0, 99, 82,126, 10,241,101, 22, 19, 26,215, 21, 45, 44, 7,140, 68, 53,176,130,216, 87,236,210, 18, 69,124, 8, 2,
-157, 61,221,206,168,247,111, 15,126, 41,254,205, 33, 0,208, 97, 95, 64,170, 54, 87, 14, 66,228,190,165,108,218,210, 28,105,213,
-210,149, 82,200, 77, 83, 79, 16, 77,126,145,164,152,224, 50, 87,136,104, 91, 67,154, 15, 93,227, 74,109,127, 47, 64, 2, 10,138,
-182, 38,165,208,216,252, 61,104, 73, 21,160,247,105,252, 51, 35, 62, 22,144,160,179,162,178,218,159, 99,104,105,216,236,170, 91,
- 98,132, 43,106, 72, 10, 59,189,133, 52,168,247,215,196,234, 82, 57,141, 19, 7,193, 83,212,134,215, 40,112,101, 5,165,106, 79,
-158, 9, 66, 84, 7,130, 8, 52, 61,234,126, 26,244,255, 0,157,236,119, 78,102, 73,180,150, 33,217,161,109,242,124, 11,119,157,
- 21,230, 24,105,242,133, 38,155,147,229,184,147,241,111, 66,203,129, 64,215,175, 90,143, 17,169, 43,114,249,241, 5, 71,220, 53,
-144, 12, 66, 8, 92, 50, 43,138,221,121, 51,221,117,216,225, 10, 76, 85, 51, 43,206,144,151,151,240,182, 60,192,225,232,163, 67,
-219,234,233,171,118,221,100, 28, 71,189, 81,119,107,215,184,233, 30,165, 10,205,157, 93,153,118, 44, 46, 2,219, 92,185, 80, 25,
-185,221,203,138,243, 30,107,231, 85,240,149, 26,212, 16,145, 90,253, 30, 29,229,167,104,153,230, 83,147, 69, 7,106,109,122,243,
-103, 28,118, 76,249,156, 42,238,206,180, 84,198, 95,139,107,133, 36,174, 51, 18,210,182, 25, 97, 1,109,160,165, 11,120,117, 82,
-168, 65,236, 13, 7, 79,232,213, 54,246, 83, 43,176, 86,157,186,204, 66,209, 84,223, 49,136,207,188, 82,211, 8, 67,193,213, 56,
-226,207,225, 41,100, 21,172,143,115,123,194,143,180, 3,161,106,226,220,202,115,124,192,224, 40, 48, 82,155, 20,135, 35, 71, 14,
-200, 62,112,113,239,132, 56, 58, 85, 96, 57, 80,123,167,168,167, 67,174, 92, 13, 73, 59, 83,165, 55, 95,101,176,226, 21,229, 59,
- 34, 43,201,105, 72, 93, 0,121, 47,118, 9,234, 11,100,117, 29, 40, 15,142,163,244,211, 53,100,138, 66, 64, 34,136,117,243,175,
- 35,224, 19, 99,200, 66,182,168,161,199,188,133, 52,161,208, 16, 95,242,210,106, 5, 8, 7,173, 7,176,104,120, 58,147,166, 94,
-104,205, 52, 74, 68,196,173,110,131,186, 50,210, 65,113,129,231, 54, 1,240, 37,164,172,125,159,102,156,197, 23,181, 54,185,188,
- 25,131,130,137,190, 97, 54,240, 82,164, 18,162, 73,162,219,117, 2,190,224, 80, 14,164,227,133,212,201, 87,166,188, 97, 56, 21,
-233,201,113,118,141,165,244,208, 10, 84,165,228, 31,183,203, 41,250, 52,179,109,201, 41,179,175,116,140, 82, 69,121, 15,168,108,
-117,196, 57, 78,149, 77, 17,255, 0,226,233,169, 8,108,220,120, 38, 18,223,179,247,168, 83,197,191, 31,187,200,112,121, 1, 74,
-169,252, 72, 59,106, 15, 99, 94,157, 62,163,169, 88, 54,210,252,194,135,184,221,188, 44,157,138,180,124, 83,233,175, 37,206,158,
- 97,213,198, 92,116, 56,227, 97, 14,168,174, 18,215,191,173, 82,177, 25,196, 57,211,177, 4,106,106,219,104,211,138,170,238,156,
-210, 35, 4, 28,125, 61, 75,171,220, 21,232, 22,240,155,157,189,119, 59,140,255, 0, 36,184,209,249,119,147,243,110,161, 0,215,
-186, 80, 64,250,119,143,160,118,213,195,109,219,154, 27,169, 98,188,201,206, 46,169,141,163, 62,209,247,175,160, 14, 21,244,153,
-137, 97,118, 72,206,202,101,114,156, 44, 32,164,186,170,169,181, 83,176, 34,132, 15,117,116,229,247,133,134,141, 84, 25, 99,250,
-174,243,206,105,191, 49,181,183, 96,189, 61, 10, 11, 40, 17,146,163,180, 4,246, 26,179,237,239,241,227, 4,170,102,224,207, 2,
- 66, 2,135,184,252,116,154, 73,216,154,246,240,166,164,131, 84,121,114,120,199, 36,196,114,236,195, 76, 62,134, 86,165, 1,185,
- 95,135, 72,221, 81,172, 36,167, 54,131, 91,192, 5, 92, 11, 66,161, 91,109,205, 57, 41,246, 15,192, 10,156, 20, 3,182,168,247,
- 18,235,121,162,188, 64,193, 19,113, 77, 55,140,211, 25,140,195,138,114,226,197, 18, 13, 82, 20, 9,233,162,182, 9, 37,192, 52,
-174, 73,119, 20, 66,164,170,247,144,242,182, 31, 29,247, 10, 39, 14,129, 71,167, 81, 81,165,142,213, 47, 16,154, 29,222, 35,197,
- 9,110,220,233,103,142, 23,242, 65,111, 40, 87,226, 3,167,233,210,195,104,144,142,132,201,251,219, 27,146,170,153,247, 37,220,
-114,123,146,138,202,211, 25, 42,248, 82,123, 1,246,233,244, 54,194,205,167,165, 86,119, 11,243,116,122,145, 67,136,177,196, 67,
-141, 47, 56,200, 82,148, 67,136,209, 48,210,239, 77,234,240,160, 62,221,120,215,245, 33,230,113,129,131,105,179,127,125,223, 53,
- 22,125,204,123,152,129,186, 65,197, 15,239,207, 77,228,252,189,249, 43, 90,147,103,132,247,196,181,116,101, 13, 32,248,120,118,
- 29, 53,228, 59, 72,159, 11, 91, 27, 1,116,175, 56, 14, 36,149,149, 8,157,125, 37, 6,100,170,253,234, 71,151, 45,152,157,145,
-203, 61,174, 98, 98, 91,109,237,249,110, 33,165,109, 50, 92, 64, 35,104,167,122,145,215, 94,201,242,171,144, 99,228,155, 81,184,
-222,180, 27,151,138,180, 28,197,120,173, 58,198,194, 61,130, 16,247,124,228, 96,185, 97, 27, 31,202,249,150,252,111, 55,132,200,
-111, 29,142,233, 49,216,114,169, 67,160, 30,157, 59,107, 94,218,118, 89,249,130, 95, 26,106,233,235, 70,176,219,165,221,228,241,
- 36,201, 30, 63,184, 80, 63,133,255, 0, 3,249, 22,190, 76,181,176,181,229,116, 36, 10, 87,233,235,173, 75,249, 29,191,211,248,
- 26,112,251,250, 85,227,249, 92, 94, 23,133, 76, 22,158, 71,244, 85, 99,185, 45,101,171,122, 18, 0, 53, 30, 80,235,245,211, 87,
- 22,200, 81,132,164, 42, 95,154,250, 39,143, 28, 60, 45, 49,101, 67,152,130, 75, 79,181,248, 66,135,111, 17,163,211, 89,197, 56,
-109,205, 5, 16, 14,227,197, 28,241,198, 43,249,171,107,146,110, 48,154, 36,165, 27,149,187,106,125,213,208,125,156,115, 46, 9,
- 26, 81, 19,143,189,106,114, 71, 20, 76, 97,188,134,209,113,101,182,150,132,186,225, 43, 82, 0, 71,222, 41,168,155,174, 94,100,
-227,173, 24, 19,192,174,172,240, 71,230,123,105,186, 57, 21,139,148,221,172,186,148, 5,249,174,238, 40, 61,188, 77,117, 85,187,
-229,183,199,139, 83,134,206, 90,186, 73,141,250,153,193,249, 37,132, 48,213,206, 12,132,184,221, 82,217,116, 5, 2,125,157,107,
-168, 25, 45, 39,180,117, 64, 33, 59,138,118,188,119,149,132,227,188,211, 30,138,143, 46, 35,209,212, 10,232,161,187,181,117, 37,
- 5,212,178,124,228,213, 62,183,186,142, 28, 40, 40,173,190, 27,135,218, 50, 4, 38,238,147,230,165, 84, 89, 74, 77, 64,212,177,
-220, 37, 3, 79, 4,233,150, 16,220, 29,106,194,219, 98,193,183,196, 12, 54,218, 27,109, 9,241,233,219, 69, 99, 76,216,149, 32,
- 67, 97, 20, 25, 42,181,158,200, 51, 50, 25, 33,133,132,180,133, 20,130,131,223, 87, 77,186, 15, 14, 49, 85, 74,220,231,241, 37,
- 52, 80,121, 16,216, 91, 91, 28,170,141,106, 87, 94,160,233,233,141, 48,212,181,173,152,139,140, 98, 72,140,196,214, 21,248,153,
-146,210, 95,105, 95, 74, 84, 8, 58,110,251,125, 73,120,231, 49,226,210,171,255, 0, 35,122,112,225,188,250, 52,147,123,227,203,
- 59,207, 58,149,169,107,182,194, 98, 51,229,103,245,129, 40,162, 13,122,213, 52, 62,253, 70,207, 96,199,230, 21,135,111,230, 27,
-171, 66, 52, 74,225,218, 74,226,103,170, 79, 68,124,111,141, 11,133,203, 25,176,229, 16,194, 84,225, 75, 76,124,179,236,238,161,
-238,167,101,165,213, 87,219,170,174,227,178,178,132,134,250,123, 86,177,203,220,231,113, 41, 2, 73, 1,245,145,255, 0,202,184,
-191,150,225,178,177,251,155,241,195, 18, 98,161,181,185,180,201,113,180, 40,164, 19,223,246,202, 2,158,226,117, 71,190,218,244,
-240,247,127, 74,217,182,189,243,196, 0,234, 30,223,232, 81, 79,147,220, 19,230, 79,101, 35,199,108,166,220,219,238, 59,119, 40,
-234,181, 53,137, 31,133, 92,173,247, 80, 70, 47, 74,227,178,162,118,110,144,176, 79,194,233, 45,148, 37, 35,186,146,149, 41, 5,
-116, 30, 0,125, 90,141,146,201, 78,219,239, 26, 83,138, 81, 37,149,108,132, 36,200, 37,165,165, 82,157, 65, 97, 52,112, 16,173,
-160,138,164, 4,158,186, 99, 37,157, 51, 83, 86,251,177, 34,138, 71,100, 84,244,148, 53,179,107, 33, 42, 66,149,184,132,128,233,
- 27,136,161, 52, 42, 0, 36,159, 17, 93, 50,154, 0,165, 32,191,170, 44, 90,225, 46, 90, 91,147, 69, 24,240,147,243, 65,213,160,
-161, 14,203,162, 66, 54,138,212,164, 4, 0,145,227,212,246,173, 26,187,242,240, 74,153,188, 90,169, 69,142,214,238,248,165,209,
-241,167,113, 86,211, 84,182, 20, 74,137,239, 69, 42,167,244,234, 62,230, 68,250,212, 85, 17,221,128,135,227,178, 90, 9, 50, 15,
-156,134, 90, 95, 70,148,190,173,158,189, 41, 85, 26,142,158,253, 64,200,243, 90,171, 20, 13, 20,211, 84,224,214, 46,155,205,173,
-115, 89, 88, 73, 20,105, 43,243, 64, 75, 18,156,162,118,251,122,244, 32,125, 58,144,219,174,244, 16, 10,171,243, 5,181, 9, 45,
-206,158,133, 86,126, 97, 97,216,147, 44, 19, 94, 67,140,170, 18,100,219, 93,114,165, 94,112,112, 5,166,162,148,166,212,248,123,
-117,125,218, 98, 5,146, 6,228,104, 86,103,184,221, 17, 36, 69,217,138,143,109, 62, 8,157,198,115, 19, 50,219, 20, 48,146, 10,
- 28, 66,193,223,241, 16,144,104, 73, 7,217, 93, 85,247, 72,244, 56,171,238,211, 48,123, 1, 86, 82, 19,161, 10,139,229, 37, 11,
- 92,197, 54,166, 16,217, 53, 35,171, 98,189,107,210,132,211, 85, 89,184,171, 60, 40,137,139, 68,116, 45, 97, 41, 73, 75,139, 69,
- 73,116,164, 39,230, 91, 9, 39,216, 40,176,161,211,250, 52,202, 87,131, 68,163,134,145, 90,171, 99,199,209, 3,235,103,105, 77,
-105,181, 68, 19, 69, 40, 83,175,249,116,215, 78,156,179, 80,123,140,194,157,252,148,115,147,237, 77,204,231, 14, 27,142,164, 5,
- 37,153,183, 57,139, 64, 93, 62, 20, 6, 72,162, 72,170,190, 33, 65,171,166,207, 33,101,133,201,234, 30,242,169,146, 1,226, 2,
-222, 0,251,135,194,138,233,103,104,140,228, 68,180,150, 9,101,182, 89, 90, 36, 54,162,147,213,176, 71,122,116, 61, 43,211, 84,
-169,142,163,138, 87,101,213, 29, 13,113, 53,192,246,170, 65,200, 8, 75, 74,125,107, 65,108, 42,142, 52,162,141,164,109, 52, 41,
- 62, 30,194,146,126,141, 37, 19,136, 43, 69,181,141,175,104, 40, 17, 54, 83,178, 89,146,210,188,178,244,114,226,154, 11,220,149,
- 45, 13,244, 52, 34,189, 82,149,120, 87,218, 61,207,227,166, 9,196,140,162, 24,221,158,104, 62,101, 41,123, 36, 54, 20, 92, 90,
-206,228,187, 21,212,144,164,159,213, 52,216, 59, 83,160,247,117,146,136, 20,209,238,110, 72, 87, 54,117,181, 44,207, 97,233, 11,
-133, 37,108,255, 0,185, 41,193, 68,173, 9,220, 2, 74,138,135,198, 9,233, 94,227,196,116,172,132, 80,151, 16,155,207,113,160,
- 85, 84,236,218,232,185,170, 84,103, 18,242,100, 52, 74, 75,232, 93, 82,161,220, 16,107, 66, 8,247, 3, 79,110,174, 27,101,166,
-147, 80,169, 91,213,240, 45, 32,168,214, 15, 99,190,230, 87,248,172, 70,105,199, 44,214,117,133, 75,125, 14,111,106, 67,192,130,
-106, 64, 0,132,143,233,213,201,225,187,124, 37,206,249,157,146,170,236, 54,210,111, 23, 90,199,200,223,121, 80,121,116,200,185,
- 35, 49,191, 20,175,201, 55,151,109,240,156, 75,159, 2, 96, 90,148,152,204,237, 29, 41,189, 45,133, 83,235,211,123,183,120, 48,
-181,189, 85,245,148,218, 51,245,215,243, 75,253,109, 35,177,184,125,200,199, 13, 17,163, 56,146,202,148, 82,166, 66, 99,121,238,
-249,168,113,234,111,220, 73, 2,189, 79,127,109,122,251,106, 19,227, 85,122,180, 24, 12, 86,155,179, 75,143, 84, 33, 10, 46, 33,
-231,219,121,194,170,111, 19,148, 77, 71,216, 41,244,104,144,147,154,113, 59, 6, 74, 69, 21, 74,143,108, 65,115,227, 66, 25, 99,
-168,236, 28, 27,144, 15,187,168,235,244,104,242, 26,148,198, 32, 2,143, 95, 24,243,155, 75,145,221, 38,161,205,136, 81, 34,136,
- 81, 43, 8, 63, 82,201, 7,216,105,224,116,214,152,226,165,162,126, 24, 33,228,168,197,196,148,189, 86,214,158,251,253,191,242,
-246,233,220, 80,147,146, 74, 91,192, 5, 9, 81,231,109, 82, 2,137, 68,133, 20, 30,197, 43, 32, 80,251,193, 41,251,245, 47, 12,
- 21,224,160, 46,175, 41,136,118, 9, 26,172,110,147, 84,174,165, 93, 77, 28, 81, 36,123,234, 41,247,234, 86, 11, 66,120, 42,245,
-213,240,111, 31,122,150, 99,120, 5,203, 33,148,212,102,160,121,197, 68, 36, 41,129,229,169, 65, 95,214,248, 66, 79,211, 81,169,
-171,109,172,189, 86,239,119,193, 0, 56,174,143,240, 7,160,251,110,103, 38, 19,183,185,251, 27, 81, 67,143, 71,106, 86,199, 18,
- 15,112,161,185, 97, 84, 30, 41,167,211,171,101,134,198,211,243, 44,203,126,231,153, 45,235,225,253,235,177,124, 99,249,110,122,
-115,183,196,102, 84,182,239, 11,188,165, 9, 75, 75,134,219, 44, 51,187,192,173,164,164, 50,234,129,236,165, 36,234,117,155, 32,
- 97,168, 24, 44,246,227,204, 59,153, 1,105, 53,246,255, 0, 74,232, 71, 12,250,107,226, 44, 5,108, 51, 42,218,226,202, 86, 22,
-195,147,172,214,164,154, 18, 77, 66,145, 0, 44,119,239,187, 74, 75,182,212,119,104,162,155,205, 50,220, 97, 37, 71,172,253,229,
- 92,185, 56, 54, 25, 54, 51,106,179,177, 17,185, 17,210,146,200,101, 8,111,240,246,232,132,164,125,218,103, 16,125,174, 28, 19,
-123,128,203,190,245,106, 82,121,215, 59,157,142,208,251,111,176,226, 18,218, 20,150,212,146, 79,109, 42,203, 81, 43,197, 10, 65,
-247, 38, 22, 26,133, 74, 50,219,212,201, 55, 87,221,121,213,141,238, 43,105, 36,212, 84,234,231,109, 8,137,128, 5, 74,185,152,
-202,242, 74,107,151,108,148,213,164, 93,157, 62,107, 61,233,187,226,235,162, 11,166,151,232, 25,163,186,209,193,154,206, 74, 31,
- 26,225, 37,201, 8,118, 29, 80,164,172,109, 86,238,160,233, 89,105, 67, 84,218, 58,212, 81, 88, 75, 58,239,247, 72, 81, 88,151,
- 57, 98, 57, 66, 65, 74, 84,107,180,253,122,166,220, 95, 69, 3,141, 27,138,184, 65,103, 45,195, 5, 93,130,109,207, 49,203, 69,
-162,217,243, 47,202,121, 11, 82,107,241,172,209, 74, 58, 78,199,118,146,121, 40, 0,162,230,225,181, 71, 3, 42, 78, 42,167,228,
- 46,219, 93, 67,129, 31, 18,147, 90, 31, 18, 63, 78,173,129,228,170,147,154, 16,158, 84,166, 26, 82,209, 69,128, 73,250,180,140,
-175,162, 69,201,195, 6,198,145,152,100, 76, 90,146,218,148,215,152,135, 36, 59,250,168,105, 38,180,250,245,150,249,151,206,113,
-114,118,219, 45,203,207,122,132, 52,117,168,173,194,232, 91, 48,184,162,247, 44,100, 12,182,139,119, 30, 99, 10,248, 25, 72, 68,
-135, 27, 52, 21, 29, 20, 77, 62,141,124,190,185,189,155,152, 46,164,191,184,196,184,224, 62,197,141,110,215,166,242, 74, 4, 30,
-203,242,107, 87, 31,226,111,197, 76,180, 50,182,227, 56,236,249, 33, 84, 82,151, 78,160,123,207,134,189, 59,228,247,150, 77,137,
-191,206,119, 22,225,155, 26, 85,199,151,118,118,217, 71,245, 19,122,151, 50,156,176, 93,185,187, 43,118,245,120, 83,145, 49, 8,
- 18, 74,216,105,100,143,154,242,207, 66, 65,239, 93,122, 63,109,217,228,223,102,241,229,194, 49,144, 83, 54,187,123,247,137,124,
- 89, 48,103, 4, 95,153, 59, 28,198, 34, 38, 4, 38, 2, 27,142,128,132, 33,180,129,248,122,117,214,171,105,104,216, 26, 26,193,
- 64,175, 16,194,216, 70,150,133, 11,254,248,197,243,124,255, 0,150,115,203,223,183,177,174,223,110,158,248,105,122, 47,160,190,
- 99,244,109,114,194, 44, 50, 47,226, 99, 83, 35, 71, 66,148,240, 41, 71, 77,162,189,199,183, 78,227,148, 60,209, 69,190, 34,193,
- 85, 67,165,113, 76, 27,181, 84,136,109,184, 21,214,161,176,122,157, 58,211, 68,152, 53, 76, 23, 79, 79, 86,185,177, 84,137, 86,
-182,220, 77, 59, 41,144,123,235,132,233, 93, 56, 32, 7, 34,250, 18,196,115, 43, 67,168, 56,236, 84,184,180,174,142,166, 50, 66,
-234, 71,180, 0,116,171, 37, 33, 24, 18, 49, 11,153,156,139,249,107,100,120,228,247,103, 97,211, 39, 91,150, 28,220,150, 66, 8,
- 69,124, 59,116,211,166,185,143, 29,228, 99,112, 66, 36,113, 15,162, 95, 86,209,146,221,203, 30,157, 49,230,218, 80,248,131,107,
-112, 16, 59, 87,106,129,212,101,209,182, 7, 75,130,121, 5,187,238, 6,166,174,152,240,239,167,127, 87,150,242,199,241,152,238,
-148, 5, 33, 43,117,108,185, 93,190, 38,165, 95,167, 80,147, 67,108,211, 86,165,159,183,204,240,187,157,233,231, 17,200,240, 60,
- 44, 28,186, 79,206, 78,113,189,203,101, 93, 54, 18,107,218,166,148,211, 71, 66,217,157, 70,169,173,189,142,178,143,188,106,167,
-153, 14, 84, 36, 71,118, 60, 72,202, 97,197,213, 27,135, 78,154,148,181,219,116,154,164, 46,247, 50, 90, 64, 8, 52,237,137,111,
- 58,183,221, 82,150,183, 20, 84,162, 72, 36,147,245,234,196,202, 52, 81, 87, 92,210,227, 82,181,156,116, 43,165, 52,109, 72,190,
- 26,214,113, 84,138,171,173,116, 82,250,174,136,232,155, 38, 99,197,190,169,221,227,208,104,164, 85, 26,148, 66, 46, 64,226,184,
- 89,125,178, 84, 57, 47,220,163, 45,230,212,128,228, 93,206,168, 21, 15, 96, 10,211, 57, 34,212,159, 90,220,152, 8, 33,113, 7,
-213, 15,229,185,146,223,213, 42,237,143,223, 50, 59,171,128,173,109,196,115, 30,122, 91,157,201, 0, 45, 72,109, 20, 30,205,218,
-132,187,219, 27, 42,209,118, 94,111, 54,244, 4, 1,235, 92,117,207,125, 44,114,222, 3, 61,200,143,225,247,249, 37, 11, 90, 80,
- 91,177,200, 15, 60, 82,124, 16,134,156,251,149,170,245,198,196, 15, 5,164, 88,115,115,100, 0,235, 3,215,251, 16,142,227,136,
-231, 86, 16,163,121,196,239,150,198,209,227,114,182, 73,131,186,157,246,133,236, 42,167,143,179, 80,243,108, 29, 74,203,111,205,
- 65,223,140, 31, 90,100,102,240,200,115,201,117,169, 17,214,147, 69,144,146,128, 15,188,169,195, 79,175, 80,183, 91, 11,155,193,
- 88,236,185,161,174, 63, 50,159,216,228, 91,220, 27,158,187, 70, 97,176,104, 82,236,181, 41,213, 14,255, 0,128,127,200,234,169,
-123,182, 58, 51,145, 87,125,191,122,108,180,197, 20, 97,100,144,190, 92, 68,136, 86,249,168, 73, 81, 39,111,197,211,167, 80, 6,
-239, 96,251,124, 53, 93,154,196,140, 72, 86,184,119, 22,145, 64,106, 84,168, 92,100, 48,211, 5,131,181,196,213, 68,145, 82, 87,
-237, 3,167, 65, 90, 36,123,105, 77, 68,207,107, 85, 53,107,122, 27, 76, 84,202,207, 37,247,237,206,165,213,236,114, 45, 93,108,
- 42,133, 74, 69, 82, 0,169, 61, 40,181,166,191, 77, 60, 53, 9,113, 6,146,172,150,215, 33,194,169,246,223,116,126, 51,110, 64,
- 73, 45, 55, 34, 68, 87,220,104, 44, 20, 20,164,148,133,248, 15,134,181,251, 52,156, 48,208,164,119, 9, 4,162,188,104,130,254,
-162,154, 97, 22,232,114, 24, 90,157, 72,150, 24, 75,200, 61, 65,114,155,130,186,245, 72, 21, 2,190,237, 95,249, 97,250,156, 90,
-122, 22, 71,205,113,120, 77, 15,111, 74,102,226,169,243, 88,181,121,171,147, 6, 59, 73, 90, 18,132,124,211,106,148,162, 40, 41,
-229,133, 21,138,143,118,155,239,118,160, 56,138, 41, 62, 95,220, 53,181,189,138,219,227,179,210,227,208,126, 93,239, 53, 98,137,
- 67,142,132,182, 58, 0,144, 82, 7,138,137,175, 83,236,213, 18,230, 28,214,129, 5,198, 8,231,138,178,147, 33,180,176, 60,229,
-121,148,232,104,193, 66, 11, 41, 69,107,211,162, 82,174,255, 0, 95,142,162, 37,101, 49, 78,159, 53, 66,180,184, 86,200,229, 41,
-105,207,217,182,234,246,110, 27, 2,208,133, 40,110,221,236, 3,175,109, 34,214,146,160,119, 7,214,184, 87, 63, 79, 98, 11,242,
- 94, 88,219,124,251,129, 76,101,244, 59, 15, 31,249, 38,166,188,149,130,219,111, 94,147, 41,164, 2, 18,170,133, 18,134,105, 94,
-225, 96,251, 53,126,219,173,233,181, 76, 56,184,143, 96, 42, 34,218,216,201, 28,178, 83, 0, 64,246,214,190,242,173,245,215, 38,
- 77,210, 43,116, 89, 45,164, 20,160,147,185, 14,165, 93, 83,236, 41,248, 85, 84,147,225,211,160,213, 2, 88,205,104,149,178, 99,
- 97, 26,191,164,122,113,246,170,241,152,196,243,154, 88, 43, 68,136,206, 2,190,137,220, 81,187,227, 63, 64, 39,174,139, 28, 68,
-149,103,130,236, 48, 87, 46, 10,177,228,114, 62, 86, 91,140, 54,166,194,124,149,183,231,162,129,178, 17, 83,251, 68,146, 8, 33,
- 95,173, 90,208,234, 78, 24, 41,154,114,110,181,138,132, 23,186, 76,242,196,134,228, 44,121,106, 74,213,181,165,151,130, 84,154,
- 16, 18,105,184, 2, 62, 33, 83,169, 88,226,174, 73,155,165, 13,197, 2,114,105,123,153,112,149,133, 54, 18, 91,104, 23, 3,101,
-109,248,119, 87,116,210,157,198,172, 22, 54,250,136,162,129,220, 47, 12, 96,213, 87,233,165, 83,239, 44,217, 45, 45, 31,226,243,
-214, 27, 67, 20, 47,236, 67,191, 9, 36, 40,168, 86,135,165, 70,180, 61,171,109, 33,190, 35,199,116, 44,211,113,189,117,228,158,
- 12,121,159,114,189,118,252, 42, 7,167,238, 11,189,228,215, 6,217,249,169,150,121,146,209,243, 32, 37,212,207, 8, 37, 8, 21,
-235, 87, 28, 33, 32,123, 77, 52,202,233,231,121,184, 17,140,170,175,123,120,103, 45, 88,190, 83,129,107, 73,237,244, 43,150,152,
-245,205,200,172, 49, 40, 45, 74, 82,208,126,105, 7,241, 23,130, 66, 74,129,239, 82,158,189,117, 57,127,183,153, 77, 0,193,101,
- 59, 54,230,216,154, 28, 78, 60, 84,181,156,156,151, 35,161,167,148, 27,101, 40, 0, 19, 82,215, 90,154,123,147, 94,154,132,155,
-101,113,198,138,223,109,204, 12, 20, 21, 82,167,242,165,184,148,151,127,104,224, 75, 42, 95, 80,119,150, 8, 6,159, 72,251,136,
-211,102,236,174, 28, 19,231,239,173,119, 20,243,109,202, 67,232,114, 18,233,229,186,218,131, 36,145,211,112, 42, 31, 98,201,254,
-157, 39, 54,210,225,193, 8,119, 86, 56,230,189,191, 37, 75,104, 58,217, 41, 72, 1, 42, 79,112,217,246, 16,125,135,199,252,186,
- 66, 61,172,184,208,132,230, 77,212, 49,181, 5, 41,177,226, 57,102, 99, 53,168, 54, 27, 12,203,131,175, 40, 33, 14,180,193, 17,
-129, 61, 58,169, 91,118,146,123, 10,253, 26,179,237,252,188, 94,169, 91,191, 55, 50,219,230, 32, 43,229,197,191,149,239,168,206,
- 72, 92, 85,183,109,137,101,102, 83,105,116, 46,106,138, 84,132, 42,134,142,182, 64,117,186,215,161, 82,105,237, 32,117,213,162,
- 46, 94, 17,138,184, 44,226,243,204,104,181, 16,215,123, 61, 40,175, 70, 25,249, 27,114, 83,101,185, 25,108,181, 45,165, 20,172,
- 61,142,191, 30,226,225, 6,132,133,180,183,152,160,235,225, 94,189,171,167, 12,177, 99, 14, 74, 10,231,157, 76,192,233, 42,220,
-225,127,148,246, 49,199,108, 55, 62,235, 29,217,202,104,165,106,249,168,108,162, 95, 78,189,131,106, 66, 79,182,139, 87,211,171,
- 29,141,180, 78,160,162,161,111, 28,205,116,234,144,112,245,252, 85,171,197,248,114,195,136,199,106, 53,182, 47,203,180,194, 66,
- 80,217,101, 9, 35,111,189, 27, 1,251, 53,101,138,216, 55, 37, 64,185,220,228,184, 53,113, 68,184,141,127, 15, 83,106,104,124,
- 77,144, 83,240,128, 62,193,167, 98, 16, 69, 20,105,152,131, 85, 40,155,147, 77,185, 54,203,110,132,167,202, 72, 74, 74, 6,213,
-116,209, 98,179,108, 68,144,143, 45,219,165, 24,173,150,220,142,237,109,116, 59, 30, 83,169, 35,176, 43, 52, 58,228,214,140,151,
- 2, 23, 98,187,146, 35, 80, 83,181,227,144, 50, 11,148,111,150,125,212,148, 17, 67, 81, 90,215, 77,163,219, 35,140,234, 9,196,
-187,172,146,138, 20, 25,187, 50,235,174, 45,111, 51,230, 37, 68,168,168, 39,199, 82, 64, 80, 40,183, 18, 74,139,205,184,169,198,
- 77,185,199,220,106, 63, 96,133,116, 78,146,240, 26, 14,160, 49, 74,153,220, 91,164,156, 20, 57,104,114,220,181,174, 59,233, 82,
- 79,196, 15, 66,127, 78,132,135, 12,146,109, 29,104,153,136,242, 98, 32,193,114, 61,197,176,183, 90,175,148,190,128,154,106,167,
-186,237, 6,103,234, 98,179,237,123,184,129,154, 94,133,156,131,203,151,123,195,206, 67, 92,112,152,136, 52,111,119, 74,129,165,
-236, 54, 97,108, 42, 78, 41,174,225,188, 58,235, 0, 48, 85,218,239,144, 72, 91,234, 82, 93, 74, 21, 67,240, 19,223,239,212,189,
- 3, 2,131,123,203,148, 75,251,205,185,255, 0, 37,230,210,165,173, 97, 9, 72,161, 42, 82,186,116,250,116,194,234, 80,192, 73,
- 56, 4,217,238,162,180,246,119, 33,113,142, 4,238, 64,235,105, 77,246,246,201, 68, 68, 30,142,164,188, 58, 83,199,167,134,190,
-117,121,231,206,175,230,253,200,216, 66,239,201,140,227, 76,176, 89,135, 53,110,245, 37,141, 42,183,221,115,120,152,226, 36, 92,
-110, 50,155,123, 33,185,149, 41, 1,197,141,204,161, 70,190,222,148,211,223, 40,124,177,119, 51,220,182,121,218, 69,188,126,244,
-203,149,182, 35,122,255, 0, 22, 65,128, 85, 43,145, 50, 57, 89,141,201,168, 83,167, 41,187, 66, 23,230,202,218,191,223,158,230,
-189,122,215,176, 26,246,191,252,120, 73,162, 22,141, 49, 48, 96, 2,210,165,219,205,203,154,204,152, 20,122,102,121,105,179, 65,
- 69,186,213,229,198,139, 29, 1, 8, 66, 8, 21, 3,196,211,185, 58,184, 91, 89,182, 6,134,180, 80, 5, 59, 12, 66, 38,134,180,
- 80, 33,157,215,144,173,229, 11, 90,188,181,172,214,165, 74, 7,174,159, 54, 52,176, 8,125,254, 40,197,249,192,198,214,182,245,
- 52,233, 78,227,223,163,248,104,212, 95, 80,222,171,253,112,227,252,141,101,103,142,120,133, 55, 11,189,198,229, 40, 51, 58,107,
- 44, 40,176,219, 74,160, 31, 23, 96, 58,159, 29, 77,218,109, 70, 46,252,152, 5, 91,184,191, 19,247, 88,161, 28,121,141, 72,254,
- 29, 14, 60,150,252,201, 77, 71,104, 62,162,146,106,237, 6,238,191, 78,146,144, 84,154, 39, 48,138,138, 35, 52, 92, 40, 75, 82,
- 91,118, 58, 72, 85, 5, 10,124, 78,153,185,164, 26,156,146,237,136,184,162, 11,124, 56,240,132,151,213, 25,164,199,219,184, 2,
- 43,211, 77, 77,251, 53,105,226,165, 70,214,253, 58,184, 33, 77,251,141, 44, 51, 36,252,171,240, 90, 95,197, 69, 31, 46,163,166,
-159,176,146, 42,163,164,140, 86,136,139,138, 64,178, 97,150,245, 67,131,111,100, 19,214,161,177, 77, 48,155,110,241,221,168,149,
- 43,109,126, 45, 91,164, 4,241, 55, 36,185, 76,142,182, 45,224, 68, 61, 64, 41, 78,223,209,174,183,106,111, 20, 73,183, 71,188,
- 81,184, 37, 86,219,165,253, 49,144,196,137, 46, 46,128, 86,149,235,167,145,217,178, 60,130,103,245,114, 56, 80,148,191,115,238,
- 16,167, 66,148,126,142,218,114,214, 1,146, 73,207, 46,205, 42,105, 61, 58,130, 52,106, 46, 85, 40,216, 60, 19,247,104, 46,213,
-104, 83, 79, 31,194, 58, 15,110,130,230, 43, 81,135,191,170,210, 61,253, 53,197,218, 85,120, 54,232,231,193, 53,246, 83,252,250,
- 33, 21, 71, 24, 36,175,218, 99,184,130,151, 25,101,212,145, 66,149,182, 22, 62,195, 93, 34,232,234,148, 15,162,135,220,112, 76,
-106,122, 93,110, 78, 57,103,146,135,129, 14,161,251,123,110,161,192,124, 10, 74, 72, 58, 72,192, 10, 85,183, 47,110, 68,160,237,
-251,211,199, 20,221, 86,166, 31,226,236, 49,214, 28,168,116, 12,110, 39,150,176,122,146,164,150,138, 9,246, 42,149, 30, 7, 73,
- 58,216,116, 37,134,233, 59, 78, 15,119,180,170,179,204,255, 0,151, 79, 0,231,182,105, 45, 67,227,252,126,221,119,117,181,134,
-174, 42,132, 94, 92, 93,223,213, 78,224,183, 15,176, 41,123, 71,122,123, 90,203,100,215,140, 66,150,179,230, 75,139,114, 9,121,
-167, 66,224,119,169,207,203,131, 35,225,251,140,137,184,107,151, 27,165,185, 39,115,112, 19, 31,204,144,183, 20, 73, 63,186, 13,
-180,132, 1, 94,148, 36, 26,119, 73, 10, 53,157,203,101, 18, 14,232, 90,239, 42,115,207,139,132,166,138,141,139, 6, 79,142, 70,
- 67,210,109,115, 98, 15,131,108,151,227, 56, 80,162,225, 33, 41,110,137, 59,138,207, 68,237,234,122,246,213, 18,235,151,156,243,
-146,218,173,121,174, 24,219,243, 10,175,203,102, 90,255, 0,207,167,231,222,113,176,217, 0, 54,182,202, 86,216, 71,137, 73,235,
-187,199,183, 78,148,169,232, 97,174,185,113,237, 24, 53, 78, 89,243, 84, 79,112,239, 4,117,179, 95,226, 72,101,104,109,208, 55,
- 54,153, 14,147, 74,186,225, 33, 72, 71,112, 40,144, 62,179, 83,218,154,168,221,236,143,105,169,106,189,217,111,145,189,180,107,
-150,183,114,120,139,116, 37,199,208,181,164, 41, 59,144,161,229,180,194,104,128, 73, 7,168, 40, 65, 39,223, 95,102,154,127, 41,
-115, 56, 39, 15,221,219, 46, 69, 10,179,187,236,123,245,170, 77,189, 83,145, 85, 52, 67, 42,117,117, 20,117, 37, 38,170, 4,143,
-137, 72, 63, 69,125,154,154,218,173,221,107, 32, 52, 85,125,246, 70, 93,196, 69, 80, 87,142, 50,119,162,228, 17, 34, 79,148,211,
- 81,222,121, 77,179,187,163,105, 81, 21,168, 21, 0, 5,117,167,191,217, 74,234,197,187,216, 11,136,139,154, 49,162,165,108, 91,
-147,172,230, 12,113,192,149,210, 76, 37, 18, 94,118,218,250,139, 69,135,147, 88,205,126, 48,134,170, 58,128,147, 78,181, 58,203,
- 46,173,244,146, 22,185, 5,238,166,138, 21,108, 49, 75,121,105, 97,164,173, 65,160,226, 93,243, 54,129,209, 74, 5, 40, 81,236,
- 58,146, 41,225,168, 87,193, 92, 82,147, 95,105, 20,224,136,121,111, 35,227, 24, 29,157,183, 36, 77, 6,226,166,150,219, 17,210,
- 82,185, 18,101, 16, 74,182,128, 20, 79, 79, 10, 83,191,211,165,109,118,183,220,190,141, 10, 30, 93,196, 0, 92,231, 0,223,185,
- 84, 52,228,214,123,252, 44,130, 85,242,101,224,222,111, 83, 81, 61,155,148, 75, 84,183, 13,181,216,229, 10,100, 33,196,178, 82,
- 3, 11,105, 37, 21,233,238,239, 93, 30,222,218, 59,120,219, 21, 91, 74, 80,226, 49,174,105,236, 92,197,101, 20, 38, 7, 60, 81,
-222,239,232, 40,209,196,220,253,111,157, 25, 88,214, 89, 41, 17, 47, 80,182,180,196,153,109,170, 44, 11,162, 42, 0, 45, 23,104,
-104,175, 20,119, 4,211,175, 66,106, 59,174,192, 98, 37,204,197,188, 41,143,181, 64,179,117,143, 93, 24,240, 69,113,167,218, 61,
- 48, 70, 43,171,137,146,141,232, 41,122, 59,137, 62, 98,161,184, 84,164, 82,165, 42, 2,166,157, 15, 78,189,134,161, 99,179,224,
- 70, 42, 79,249,157, 49,174, 29,104, 37,146, 90,139,190, 98,194, 18,244,144, 92, 89,119,202, 82, 75,169, 72, 6,165, 6,180, 52,
- 61,125,191, 78,164, 34,180, 74,127, 54,160,165, 85,122,188,226,210,164, 45,229,182,228,102, 30, 43, 90,124,157,202, 66,192, 71,
-112, 16, 43, 79,209,169, 75,123, 50,120, 46, 77,188,180, 5, 82, 57, 10,236,251, 23,103, 49,171,114,214,237,233,245, 37,191,150,
-109, 97,104,140, 42, 6,226,146,130,106,160,122, 0, 65,246,235, 70,229,254, 94,241, 0,150, 65, 70, 15,127, 82,166,110,123,195,
-174,223,224,196,113, 62,229, 98, 56, 79,211,196, 28, 81,168,124,141,148,132, 37,228,169,185, 96, 73, 89, 82,200, 87,196,107,184,
-215, 83,187,141,217,184, 30, 12, 67, 12,176, 83,252,187,177,199, 96,226,249,136,173, 43,138, 53,115,167,166,191, 85,158,168,161,
-217, 49,254, 43,227, 27,177,193,145,242,119,117, 93, 47, 14,183, 96,137,120,108,167,246, 38, 63,204,169,178,235, 73, 7,205, 42,
-165, 21,240,237,175,140,191, 46,114,193,181, 6, 89, 7,120,172,171,204,223, 50,236,222,239,161,130, 80, 90,211,223, 35, 17, 81,
-147,112,232,227,215,216,162,120,143,228,185,234,226,232,225,141,118,182, 98, 24,200, 70,207,247,153, 87,225, 45,151, 91, 52,169,
- 71,144,135, 42, 69,127, 10,130,125,132,246,173,163,249, 64, 43, 34,255, 0,156,219, 66, 48, 46, 62,165, 98, 90,252,131,185, 45,
- 45,196,146,190,103,195,131,174,182,218,165,197,254, 9, 49,149, 69,112,143,137, 33,123,220, 74,194,123, 3, 65, 95, 96,210,159,
-201,218,120, 4,205,190, 98,181,167,229,119,180, 41,195, 31,144,245,195,229, 66,151,205, 9,106,106, 26, 32, 50,155, 55,153, 20,
-188, 0,162,130,247,110, 41, 61, 65, 65, 72, 35,250,199,190,138,118, 56,207, 5,223,252,154,240,112, 97,246,168,188,175,201, 3,
- 51,134,162, 97,114, 92, 55,157,105, 36,164, 57, 5, 72,218,250, 77, 82,122, 31,141, 11,233, 94,160,142,163,226,165, 74, 46,216,
- 35,114,113, 31,153,238,105,174,147,237, 77,214, 31,202,199, 59,198,111, 49, 87,127, 76,123,164, 70,166, 52,137,177,212, 20,166,
- 92, 98,160, 42,138, 77, 9, 77, 43, 82, 40,104,122, 16, 64,222,212,114,219, 1,173, 20,185,243, 59,198, 97, 0,144, 72, 93,120,
-244,217,233, 75, 14,227, 59, 66, 82,205,146, 43,114, 67,149, 41,126, 58, 86,135, 80,170, 84, 58,213, 60,180,185, 65,241, 45, 0,
- 26,244,252, 32, 3, 63,105,183,182, 1, 64, 22,101,191,115, 12,155,140,149, 46,195,211,220,175,245,190,209,108,182, 65,104, 91,
-217,106, 35,173,129,181, 17,219, 13, 37, 7,220, 5, 0,211,193, 1,113,161, 24, 42,209,155,136, 56,163, 78, 6,237,197,208, 29,
-122,228,130,218,122, 22,157, 85, 13, 62,189, 69, 95, 68,216,240, 13, 82,251,124,143,147, 18,236, 18, 14, 73,190, 62,177,242, 13,
- 45,178,210,146, 65, 40, 34,135, 74,237,118,193,221,226,147,221,110, 11,123,160,170,237, 46, 11,164,170,128, 80,248,253, 58,178,
- 53,160, 42,219,170,152,221,138, 90,175,152, 43,244,141, 42, 17, 50, 72,150, 16, 65,218,144, 15,183, 64,162,169, 38, 61,132, 93,
-114, 20,169,113, 86, 54,142,192,247, 58, 97,119,126,203, 92, 10,144,180,219,159,119,139, 84,177,238, 21,204, 25, 72,113,216,143,
- 33, 10,166,194,243, 11,108, 47,232, 42, 2,181,211, 81,187, 71,198,169, 99,180,188,100,106,152, 39,241,182, 79, 21, 4,170, 9,
- 88, 72, 53, 1, 53, 29, 52,118,238, 81, 56,230,147,118,221, 43,120, 33,149,235, 15, 90,146,180,204,130,182,213,214,167,203, 34,
-135, 78,219, 56,118, 69, 52,125,185,110, 97, 9,175, 56,163,145,210,179, 27,119,143,194,170,244,250,180,166,170,164, 12,116, 67,
-121, 49, 46,145, 86, 71,149, 64,146,104, 64,240,209, 29, 69,192, 8, 81, 92,129,183,101,178, 68,141,168, 90, 71, 69,118, 61, 52,
-218,154, 81,201,170, 1,100,177,220, 14,111, 75,197, 42, 69,104, 66,169, 95,179, 72,189,201, 39, 43, 49,195,190,154,240,204,143,
- 31,193,249, 11, 46,229, 11,221,158,118, 67, 26,237,123,137,142, 69,227,180, 94,108, 81,224,217,238,179,237,105, 84,171,168,190,
-177, 33, 42,113,219,122,214, 80,221,189,116, 73, 29, 73,233,170, 31, 60,206, 91, 97, 36,108,152, 70,247,130, 1, 32,159,179, 31,
-101, 79, 82,175,111,123,164, 59,123,116,200,226, 9, 21, 20, 21, 25,145,211, 94, 29, 9,191,159,160,222,172,153,139,182,169,243,
-109,178,237, 48,173, 22,203,158, 57, 50,212,250,222,182, 92,173, 55, 54, 67,145,164, 54, 29,109,135,219, 46, 36,245, 67,205, 33,
-105, 53,170, 70,188, 53,178,121, 91,122,119, 83,107,117,165,196,144,247, 61,164,150,185,174,196, 16, 72, 6,132,112, 32, 30,144,
-168, 27,127, 47, 77,189, 93,211, 2,204, 13, 69,104, 65,203, 58, 31,104, 5,115, 23,150,133,230, 52,151,175,114,238,104, 80, 53,
-162, 18,231, 70,219,175, 68,142,186,247,111, 44,109,150,251, 52, 12,182,129,180, 0,123, 79, 74,216,173,246,111,160, 96,107,114,
- 10,175,206,228, 66, 55,161,114, 73, 32,144, 9, 85,122,253,186,185,178, 36,187, 88,132,249, 22,115, 32,173, 69, 15, 18, 15,136,
- 63,231,211,134,181, 46, 26,133, 87, 60,230, 96,220, 11,202, 35,175,142,148, 1, 28, 54,138, 23,253,243,145,243,129,207, 53, 85,
-161, 29,253,227, 93,162, 54,149,247,125, 99,226, 28, 7, 28, 62,101,174,197, 14, 59,164,245,123,203, 5,210,126,147,219, 79,223,
- 51,228,204,168, 86,219,178, 60,130,159, 66,178,219, 97, 10,198, 97, 40, 39,185, 26, 78,133, 40, 26, 27,146,145, 91, 75, 12,200,
- 66,159, 77, 91, 73,169,219,236,210, 83, 48,185,180, 9,120, 94, 26,234,148, 67,185,228,208,141,185, 49,225,249,133, 91, 54,109,
- 36,244,233,168,120,118,199, 7,234,114,154,155,117,105,143, 75, 80,161,230,124,213,169,197,160,110, 82,137, 39,185,235,169,230,
-182,138,190,227, 82,155, 94,183, 21, 43,184,161,210,129, 16,138,165, 12, 70,102, 56, 29,170, 61,250, 4, 85,116, 96,156,154,119,
-240,236, 72,167,183, 92,210,133, 83,179, 75, 77, 62, 32, 53,202, 35, 85,123, 82,145, 90, 36,164,125,122, 11,139, 18, 9,241, 7,
-244,104, 81, 5,190,157, 40,125,148,215, 16, 94, 11,125,250,253,186, 8, 38, 23,226, 75,122,106, 20,211,155, 26, 73, 27,133,105,
- 81,163,130, 40,147, 32,147,130,120, 75, 73, 29, 20,170,211,165,125,186, 37, 18,185, 37, 40, 97,165, 15, 15,183, 68,162, 48, 41,
- 59,241, 90,251,117,205, 43,164,166, 41, 80, 27, 80, 52, 26,225,101, 87, 42,132,185,223, 30,216,114,235,124,203,125,202, 27, 78,
-137,145,222,134,181,148,130,164, 49, 40,108,114,149, 29,212,130, 69,126,131,225,164, 93, 0, 41,205,189,209,128,130, 56, 26,160,
- 53,207,209,223, 26,228,139,117,179,101,134,137, 18, 90, 84, 72,174, 54,194, 18,236, 8,206,167,203, 88, 97, 91,119, 54,162,213,
- 91, 74,193,170, 82,104,146, 52,205,246,173,104, 56, 41,104,247,187,135, 56, 81,197, 10,243, 15,202, 87,130,103, 89, 86,193,197,
-162,217,149, 45,196, 63, 50,241, 17, 33, 19,246,182, 62, 20, 54,122, 16, 7,114, 9,161, 36,146, 9, 59,132,113,142, 41,123,160,
- 41,216,183,251,219, 94,251,156,170,158,113,249, 41,224,249, 29,174, 90, 56,175, 52,202, 49,251,170, 27, 82, 91,106, 84,182,166,
-197,147, 33, 29,119,186, 92,242, 64, 11, 52,223,180,244, 20,218, 9, 21, 44, 47, 54,187,118, 98,230,226,172, 27, 95,152, 87,213,
-210, 72,211,236, 92,178,230,239,202,135,213,143, 22, 38, 67,118, 7, 45,249,218, 16,219,138,152,187, 49,249, 87,131,105, 20, 80,
- 74, 20,178,165,154, 3, 83,222,134,131,185,212,113,229,184,110, 70,166,133,112,181,243, 75,194,238, 60,145,233,233,251, 23, 47,
-179,174, 58,229, 62, 62,148,168, 25,214, 39,125,176, 62,160,160,211,119, 22, 84,210,100,134, 73, 5,196, 16,104,226, 55,146, 55,
- 39,165,106, 43, 80,117, 31, 47, 44,248,103, 5,105,183,231,102,222,182,161,213, 66,127,153,147, 21,216,207, 33,146,135, 18,242,
- 28, 46,148, 21, 29,205, 41, 74, 9, 77,126,145,208,107,135,105, 32, 81, 54,126,240, 53, 84,103, 85,118, 56,123,158,173,182,136,
-237,199,202,203,209,166, 70, 75, 72,109, 77,183, 84,190,134,210, 64,221,180,149, 36,141,162,163,167,127, 13, 81, 55,126, 80,124,
-142,213, 16,193,104, 27, 63, 58, 71,160, 50,115, 66, 56,174,145,226, 49,185, 87,145,241,168, 87,140, 35, 31,254, 25,143, 92,144,
-212,216,119,155,144,243, 92,155, 14, 98, 55,161,230, 90, 65,161, 73, 20, 35,114,135,126,213, 26,172,142, 85,250,119,126,113,199,
-160, 36,247, 79, 50,173, 96,238, 70,117, 56,123, 20,163, 11,244,135,157,228,119,131,115,191, 61, 58,227, 54, 67,219,156,149, 41,
- 69,197, 37, 53,232,148,248, 36, 1, 65, 65,167,147,196,200, 27,165,130,138,141,113,207, 2,103,106,115,149,239,199,253, 34, 73,
-137,110,102, 59,145, 74,138,146,148, 42,169,241, 35, 85,121, 96,115,221, 84,220,243,172,125, 40,121,157,250, 18,157,116, 66,203,
- 48, 11,237, 60, 74, 86,223,151, 94,138,212,157,137,115, 51, 73,158,117,143,165, 64, 45,190,137,249,118,206,194,173,184,230, 69,
-119,183, 50, 74,131, 81,174,136, 55,104, 0, 42,128, 38,139, 82, 93, 74, 66,106, 0, 75,130,131,183, 97,169, 55, 90,197, 55,121,
-205, 21,234,193, 47, 23,152,194, 0, 5,106, 7, 74, 71,200,126,156, 61, 64, 97,120,133,251, 39,190,189,134, 55, 96,197,109, 50,
-175, 51, 39, 56,101,192,117,139,124, 6, 11,146, 87, 68,135,146,118, 33, 10, 88, 30, 61,180,239,110,216, 35,187,120, 99, 73,169,
- 41,201,243, 82,221,206, 3, 73, 46, 38,148, 7,143, 5,199,123,207, 57,103,249,115,172,218,241,252,118, 53,189,217,136, 44,184,
-164,133,220,166,185, 81, 79,128, 36, 37, 85,235, 81, 64,117,162,216,114, 44, 86,230,178, 56,149, 45, 55, 52,201,112, 59,173,210,
- 58,202,179,254,156,253, 6,250,128,207,174,145, 50,102,120,214,254,132, 56, 68,149,228, 25,189,113,107, 97,243, 83,185, 43, 73,
-154, 19, 41,244, 47,245, 84,195, 43, 26,178, 75,181,190, 86,136,216, 3, 90,153, 69,207,219, 95, 46,180,190, 89,117,203,208,222,
-241,246,228, 61,100, 46,230,112,143,162, 11, 38, 30,229,158,253,202,179, 90,206, 47,214,223, 46, 84, 59, 10, 99,134,176,203, 44,
-192, 1, 10, 12, 47,114,231,184,201,252, 14, 61, 68,131, 69, 6,194,130, 84, 36, 54,238, 94,138,207,189,155,186,214, 85,206, 94,
-112,223,243, 16,116, 48,126, 84, 39, 12, 15,121,195,172,240, 7,136, 29,149,162,232,188, 51,111,110, 58, 25,108, 37, 5, 9, 9,
- 74, 83,208, 36, 15, 1,225,169,230,219,172,140,207, 84,251, 5,231, 80,164,164, 0, 91,240, 36,212,233, 79, 4, 34, 9, 74,144,
-249,105,121, 61,122,107,130, 42, 35,107,170, 76,243, 10, 64,248, 10,127,166,186,239,134,185,173, 39,143,105,157,115,120, 53, 25,
-173,238, 43,165, 64,168,210,114, 6,198, 42, 82,177, 53,210,154, 53, 74, 33,113, 61,206,115,163,248,129, 67,109, 16, 66,170, 58,
-237, 61,245, 29, 45,243, 25,150,106, 82, 45,178, 71,124,198,129, 59, 93,241,124, 99, 21,135,229,173,101,114,215,185, 66,157,138,
-148, 73,253, 39, 69,182,154, 75,131,134, 72,215, 80, 69,108,220,115, 66,215,167, 4, 40,236, 79,193, 83, 79,163, 83,141,141, 65,
- 25, 22,180, 95, 36, 70,175,146,242,219, 7,184, 74,200,254,157,113,208, 7,102, 23, 91, 59,153,145, 77,242,175,234,125, 95,182,
- 90,156, 62,213, 42,186, 51, 97, 12,200, 46, 58, 98,252,211, 51,183, 37, 26,150,136, 87,180, 87, 74,104, 68, 47, 72, 23, 37, 18,
- 71,237, 82, 82, 71,122,107,186,104,185, 90,169,254, 29,111,198,217,177,228,249, 12,251, 52,108,138,125,154, 69,129,171,125,182,
-231, 46, 67, 54,132,199,185,153, 72,125,247,219,136,236,119,222, 83,110, 54,200,109, 62,114, 83,241, 29,193, 93, 0,224, 5,238,
- 13,173, 19, 13,202,232,217, 69,173,128, 19, 80, 49,245,169,189,159,147, 29,130,204, 72,182, 91, 93,175, 14, 94,199, 5,206,126,
- 52,151, 33, 75,185,172,168,132,126,209, 78, 45,200,232, 67, 68, 36,182,210,192, 81,170,151, 83, 77,169,205,100, 43,168, 98, 84,
- 19,119,249,165,104, 99,157, 65,213,133,123, 84,154, 39, 33,207,130,225,122, 46, 73,114, 66,150,127,106,133,205,113,230,100, 10,
-215,107,173,173, 74,109,212,147,221, 43, 4, 31, 17,166,142,183, 46, 20, 35, 4,164,119,198, 19,169,143, 32,245, 21, 55,145,158,
- 99,215, 27, 10,242, 5, 54,196, 71, 98, 75, 98,221,123,137, 28,127,187, 55, 34, 82, 22,166, 36, 54,146, 73,109, 18, 60,167, 2,
-144, 42, 18,164,244, 32, 45, 41, 16, 23,219, 83,152,224, 88, 48, 43, 65,216, 57,133,183,172, 45,148,247,155,199,164,116,160,214,
- 79,158,226,239, 69,146,184,118,165,220, 75, 73, 42,121,198, 99,151, 16,200,161, 53, 81, 72, 33, 61, 1,239,164,237,246,249,137,
-196,209, 73,220,238, 48,129,128,170,168,249, 85,242, 52,215, 92,145, 29,148, 48,217,169, 8,173, 41,171, 12, 49,152,133, 9,170,
-173,207, 40,144,212, 10, 32,157,242,234, 6,229, 33,105,233, 90,138,245,210,133, 33, 84, 36,187,207,254, 33, 88,232, 11, 47,184,
-160,219, 77,180, 10,150,227,139, 52, 74, 82, 7, 82, 73, 61, 0,210, 14,193,113, 71, 50, 94, 11,231,118,237,206,220,207, 15,242,
-167,240,196,176, 37,170,226,188, 2,236,136, 77,195, 81,232,242,157, 49, 54, 37,179,253,114,105,239,211, 89, 93, 65, 83,146, 35,
-130,181,246,183,209,137,240, 47, 12,219, 36, 44, 53, 60,227, 57, 68,105, 37, 93, 22,143, 59, 34,188, 74, 32,248,138,124,207, 93,
- 98,251,140,207,230,201, 89,225, 14,232,123,199,177,212, 89, 79, 55, 56,223,220, 70,198,126,237, 63,245, 21, 78, 61,103,231, 8,
-182,230,150, 8, 44, 76,109, 33,142, 42,226,183, 54,111,162,149,243,118, 72,143, 87,191,143,153, 93, 89,217,176,182,202,114,224,
-222,246,134, 2,127,178,208, 22,189,202,214, 81,217,218, 71, 79,155, 72, 30,204, 23, 53,178,187,243, 23,216,142,162, 83,233, 82,
- 84, 79, 66,238,167, 96,107,161, 56, 43, 9,104,118,106,167,102,150,232, 49, 18,235,241,223, 21,170,142,208,170,255, 0, 78,167,
-173,110, 30,236, 10,107, 52, 13,110, 33, 3, 37, 77, 83,170, 41, 81, 59,107, 74,215, 82,156, 19, 58, 10,168,221,196, 54, 18,173,
-160,174,160,245,175,109,112, 18, 81,205, 2,138,108, 30,118,250,123,169,163,162,175,232,141, 49,244,202,116,173,164,121,105, 61,
-146, 52,246, 56,244, 10, 21, 21, 44,154,205, 64, 94, 90, 33, 3,226, 39, 74, 81, 39, 85,176,202, 71,100,104,105, 67, 82,253,249,
-196,167,241,172, 31,117,117,205, 43,161,212, 81,219,158, 70,220,103, 80,211,105,222,181, 40, 10, 39,169,235,163,181,149, 73, 62,
-106, 39,102, 93,114, 82, 18,160,157,187,128,233,219,190,185,146, 80,119,151,165,194,112,157,203,112,132,120,142,154,238,165,194,
- 18,232,173, 5,166,141,158,131,223,162,146,186,220,114, 78, 97,146,145, 67,220,235,149, 70,162,212,168,142, 41, 64,130, 64,250,
-117,208,229,205, 41, 82, 90, 41, 29,254,221, 22,171,180,162,242,225, 35,196,247,215, 80,201, 40,102, 59,239,182,167, 19,241, 37,
- 53,175, 94,189, 52,147,165, 13, 52, 74,178, 18,241, 80,147,239,218, 79,112, 65,161,210,131, 20,150, 75,243,122, 23,227, 67,174,
-160,113, 88,119,164, 18,149, 29, 5,204,151,226, 86,165,126, 35,245,147,174, 81, 0, 87,133,134,252, 72, 31, 94,133, 42,186,155,
-100, 50,194,253,135, 92,162, 21, 90,237,174, 8, 19, 90,146,150,139,129,165, 5, 80,245, 29, 52,156,177,120,141,162, 82, 25,124,
- 39, 7, 41, 86, 81,150,170,245, 17,184,129,178,194, 0,162,136, 20,211, 27,125,188, 68,106,159,221,238, 70,118,209, 68, 33,177,
- 50, 51,100,195,117,104, 75,128,213, 72,241,174,156, 75,110,201, 51, 9,164, 83, 58, 63,148,166,201,182,103, 36,239, 50, 17,243,
- 5,117,222, 28, 72, 82, 85, 95,104, 61, 14,184, 33, 13, 20, 11,134, 66, 77, 74, 8,114, 31,167, 46, 55,228,216,206, 68,203,240,
-155, 37,213,135,186, 63,230, 91,155, 67,178, 16,122, 20, 41,192,144,230,210, 59,132,168,105, 55, 66, 10,117, 5,252,214,230,172,
-113, 10,141,103,127,148, 79,165,220,194, 67,242,219,196, 28,178,203,120, 4,182,229,185,245, 68,137, 5,177,216, 52,203, 42,111,
-117, 42,127, 18,171,237, 81,237,164, 29,108,211,193, 76,195,204,215, 81,102,234,160,221,235,242, 76,244,236,236,118,227, 89,174,
-153,101,174, 74,212,132,191,116,122,224,153,138,141, 26,163,127,146,192, 67,104, 91,138, 29, 1, 89, 9, 20, 7,105,248,130,154,
- 73, 98,211,193, 61,111, 56,220, 3, 83, 69,209, 62, 9,244,189,132,112,150, 17,103,226,187, 98,230,222,172,216,253,185, 10,179,
- 78,189,169, 18,110,106,129, 49,231,149,229,186,180, 4,164,249, 78,133,165, 0, 1, 68,109, 26,202,185,182,208,193, 61, 70, 68,
- 40,251,173,206, 75,135,248,149,207, 28, 21,148,199,248,243, 28,183,200, 67,108,219, 24, 64, 61,136,108,127,147, 84,151, 69,172,
-226,144,117,243,207, 20, 68,127, 26,179,198, 17,210, 34, 55,241,190,132,143,132,116,174,186,219, 70,164, 77,243,250, 84,226,211,
-134, 90, 22,222,247, 33, 52,160,122,128,164, 2, 52,238, 59, 38,158, 8,159, 88,243,197, 59,127,113,236,206, 40,168, 91,152,248,
-122,131,229,138,244,211,184,236,155,208,136,235,167, 30, 40, 29,203,184,173,150,116,120,118, 9, 22,200,114,225, 76,121,110, 79,
-135, 38, 50, 36, 71,147, 18, 58,107,177,196, 44, 20, 41, 42,112,160, 20,145,212, 87, 87, 94, 85,219,195,231,213, 76, 26, 43,247,
- 38,134,229,205, 53, 7, 20, 26,183,113,237,138,200,148, 34,203, 97,179,218, 25,109, 5,166,219,182,218,216,130,132, 52,123,164,
- 6,144,154, 3,236,214,163, 28, 32, 32,251,135,203,243, 56,159, 90,151, 69,130,243, 20, 9,248,135,106,120,105,113, 16, 68,214,
- 82,167,109,146,100,131, 79,131,232, 26, 85,173, 13, 69,113, 46, 77,203,132,109,231,115,128,171,175,115,255, 0, 46,154, 88, 10,
-164,200,210,150,177,113, 78,228,248, 14,157, 43,236,215,116, 32, 30,164,236, 74, 90,210,146,142,128,251,252, 52,153,109, 18,129,
-213, 75, 2, 20,177, 85,168,235,135, 4,124,212,203, 27,185,191,101,172,134, 89,105,209,223,227,239,166, 55, 49, 9,176, 42, 70,
-210, 99, 6, 32, 41, 59,220,164,148,133, 37,216,155, 92, 2,130,157,171,166, 31,202,171,197, 73,127, 56,233, 8, 87,146, 95, 94,
-191, 63,231, 56,128,148, 39,240,143,112,212,149,181,176,128, 96,161,238,238, 77,201,169, 81, 23, 82,216, 79,226,161,246,123,244,
-241, 52,162,104,125,143, 48, 31, 45, 70,190,239, 29,118,168,180,170,108, 49, 22, 21,251, 66, 79,191, 93,170,230,149,225,200,161,
-191,141, 36,143,190,186,229, 87,116,173, 97, 53,252, 98,163,183, 65,160,186, 2,158, 97,201, 64,180,242, 4,122,212, 63,136, 71,
-113,148,154,208, 63, 18,243,105,119,117, 7,136,104, 56, 58,251, 78,131, 79,125,189,191,113, 81,219,195, 1,182,127,171,237, 9,
- 38, 63,102, 55,219,154, 96,252,219, 54,248,237, 69,157,114,184,220, 31, 5, 77, 91,237,118,166, 87, 34, 75,197, 41,248,156, 40,
-101,181,108, 66,122,169, 84, 72,234, 70,156,202,255, 0, 12, 85, 83, 45, 45,157,119, 32,141,185,159, 66,157, 89, 99, 9,191,170,
- 85,179, 28,157,145,197,189, 55, 26, 84,139, 90,111,173,198, 84, 59,241,132,133,186,182,135,144,173,208,157,113,164, 18,210, 9,
-116, 41, 84, 65, 80,168, 86,155, 54,115, 94,240, 20, 83,215, 91, 8,138, 50,230, 60,146, 5,104, 70,126,158,180,213,137,222, 17,
- 1,219,187, 50,109, 81, 47,240, 46,246,177,111,145,107,159, 33,200,241, 22,235, 18, 99,204, 97,197,169,149, 33,210, 27,145, 21,
- 5, 73, 66,146, 84,157,200,220, 2,142,141,115,164,140,122, 84, 86,221,112,251, 87,151, 50,152,130, 19,181,206,111, 50,191,111,
-151,146,194,149,152,139, 13,156,149,185, 39, 27,106, 85,179, 25,176, 37, 61, 66, 90,110, 8,106, 20, 36,162,191,133, 9, 72, 21,
-210, 81,201, 17,192, 0,148,159,234,164,172,133,206, 52,226, 43, 65,236,192, 33, 21,234, 85,155,148,161, 72, 70, 87,144,218,241,
- 92,170,206, 24,146,156,194,108, 71,157, 94, 77,102,222, 27,145, 18, 91, 48,218,113,201,179,155,243, 18,228, 87,148, 18, 86, 2,
-208,243,155,124,181, 55,201,160,166, 44, 30,165, 33,182,239, 52, 5,179,187, 33,129,204,246,117,245, 31,105, 67, 43,231, 7,225,
-151,248,175, 39, 12,228,188,138, 29,236, 40,136, 41,206,241, 8,246, 60,114,236, 40, 58, 42,100, 27,173,197,203,122,214,170,132,
- 7, 89, 83,125, 65, 91,173,138,168, 51,146,172,232, 42, 82, 13,214, 41, 77, 8,112, 29, 36, 97,238, 63, 20,202,205,151, 32,244,
-247,108, 69,165, 81, 26,135,203,119,168, 70,102, 85,144,180,166,166,207,195, 45, 51,201, 92, 43,101,166, 83, 69,196, 70,114, 84,
- 63, 46, 84,169,145,215,189, 73,117, 12, 33, 73, 66, 93,243, 79,108,214,201,222,119,177, 48,222,239,223, 17,240,162, 56, 83, 18,
- 58,248, 15, 86,125, 57, 32,130,178,251,149,190,240,197,211,230,165,162,107, 18,190,104, 75, 68,133,183, 45, 50, 1, 39,127,152,
- 8, 88, 85,122,214,181,211,139,136,204,172, 33,167, 18, 21, 73,224,211, 3,138,245,201,188,203,149,114,108,139, 79,247,158,224,
-103,174,203, 1,235,116, 73,206,180,129,114,146,195,206,173,245, 42, 91,224, 7, 37,185,230, 56,175,219, 58, 84,178, 40, 10,136,
- 2,144,251,126,204,219, 49,169,212, 47,199, 26, 15,127, 73,235, 56,162,198,199,202, 67,166, 58,156, 5, 1, 57,210,181,196,241,
-207, 51,138, 17,115,151, 22,122,127,228, 92,134,197,153,101, 89,231, 41,228, 23,105, 92,113,198,184,244,172, 91,143, 26,129,137,
-219,113,105, 56,181,142, 13,189,239,152,186,221,162,221, 21,113,121,111,176,181, 41,150, 33, 54,132,141,191,239, 10, 81, 82, 80,
-251,232,188, 87, 23, 26, 5,114,135,125,101,156, 76, 99, 65,113, 3, 28,104, 62,245,204,175, 83, 94,159, 46,124, 74,155, 6, 95,
-199, 89, 77,223,144, 56,151, 48,151, 50,213,107,188, 93,109, 72,178,101, 88,182, 83,110,105,183,164,217,175,112,216,145, 41,134,
-221, 12,186, 30,137, 41,151, 75, 82, 90,220,164,236,117,183,216,101, 25, 96,108, 31, 48, 10,201,183,223,141,193,186,153, 90,140,
-199, 16,168,254, 65,108,191,165, 59,230, 55, 37, 45,175,169,222,146, 7,223,162,198,232,201,238,167,238,212, 51, 80, 39,224, 56,
-129,248, 79,180,233,194, 73, 49,202,101,123, 72, 82, 9, 29,124, 52, 40,186,152,254, 81, 94,101,118, 43,111,126,222, 58,237, 16,
-170,254,131,104, 67,228,252, 36,129, 95, 29, 73, 40, 76, 86,245,173,109, 13,206, 44,109, 3,173, 78,185, 84, 99,130, 76,228,180,
-169, 63, 0, 6,181,234,157,116, 5,202,166, 89, 46, 58,162, 74,119,127, 70,142, 17, 14, 41,161, 75, 75, 78,135, 36, 34,164, 83,
-105, 34,167, 70, 68,200,226,164,112,167, 58,162,148,183,185, 65, 93,146,145,212,253, 90, 77,192, 12,210,172, 36,228,164,149, 43,
- 72, 75,233, 90, 10,135,235, 10,105, 54,144,114, 74,185,132,102,151,196, 67, 17,209, 68,175,161,235,212,232, 28, 87, 3, 64, 75,
-126, 97,163, 64,149,117,215, 40,187, 85,181, 47,148,143,110,185, 69,213,169,201,105, 30,237,118,139,133,203, 79,156,133,131, 83,
-215,191, 77,118,139,149,170,196, 58,180,212, 54,242,146, 15,112, 14,138, 90, 14, 97, 25,174, 45,200,175, 52, 90,122,159,136, 31,
-172,232,203,139,198,194, 77,127, 14,186,139, 68,169, 40, 41,167, 90,232,164,213,118,139, 91,160,168,211,168,233,223, 93, 8, 20,
-133,200,171, 95,103, 40, 61,149,209,170,138, 90,180,249, 62, 73,248,148, 87,247,232, 86,168, 82,137,115, 84, 35,240,211,219,162,
-144,142, 10,199, 18,210,129, 73, 64, 80,246, 31, 13,114,136, 21,185,146, 27, 64, 72, 31, 8,236, 61,154,225, 11,160,209, 41, 18,
- 27,255, 0, 71, 92,210,141,173,106, 91,205,247,233,162,232, 93,214,155,222,144,129, 95,132, 29, 20,177, 13,105,169,201, 81,170,
-119, 32, 87,232, 30, 58, 65,236, 67, 88, 76,107,146,202,114, 11, 61, 9, 2, 67,114,225, 20,237, 36, 18,118,184,138,154, 80,109,
-216,186,117,241,213, 7,157, 45,117,194,217, 7, 3, 79,111,244, 37, 88,244, 85,141, 20, 33,198,220,165, 41,172,164,182,133, 40,
- 77, 83,147,237,121,238,195, 38,155, 68,166,187,159,110,140,193, 82,136, 74, 43,219, 27, 65,109, 13,138, 26, 0, 53, 37, 11, 81,
-106,159,188,148,180,131,219,177, 39,234,211,230, 49,118,170,179,102, 15,179, 63, 32,184, 60, 87,251, 56, 74, 76, 22,187,126, 48,
- 60,199, 8,247, 18,164,143,164,107, 73,229,107, 95, 14, 34,242, 62, 99,238, 9,171,136, 42, 34,181, 71, 34,133, 93, 61,212,213,
-197,141, 70,168,162,110,112,138,254,192,253, 64,105,112,213,194,228,162, 50,228, 87,227,208, 32, 46,180,149,170,228,200,125,174,
-189,254,142,186, 13,193,117,216,168,128,107,202,119,168, 61,254,173, 41,154, 70,138, 77, 22, 66, 91,108, 18,118,244,246,233, 34,
-150,105, 74,133,230, 50,122, 23,122,142,253,117,205, 40,250,194,240,171,234, 17,209, 14,168, 39,216, 21, 65,174,104,170, 30, 34,
- 76,229,229,135, 63, 18,170,125,167,219,161,161, 15, 18,169,166, 69,217, 85,163,106,220,159, 96,166,186, 26,184, 92,180, 53, 37,
-114, 78,208,218,214,163,224,145, 93, 3,221, 64, 85,202, 87, 3, 21,189,206,111,204,102, 11,190, 95,122,237,166,154, 62,242, 56,
-243, 41,236,118, 82, 60, 84, 4,217,113,182, 73,183,172,181, 41,165, 52,177,224,164,233, 72,230,108,152,180,164,100,137,209,154,
- 16,152, 92,113, 33, 36, 40,130,116,162, 79, 52,195, 38,122,216, 36,208, 20,138,246,166,186, 23, 43, 69, 44,193, 46,159, 51, 39,
- 35, 97,191,196,238, 27,145, 23, 5,122, 22,226,180, 31, 63,103,149, 93, 1,131,135,106, 99,186, 29, 86,239,236,251,194,243,140,
-228,144,172,215,101, 59,114,101,233, 22,155,133,182,239, 98,187, 55, 24,143,155, 69,186,249, 21,216,174, 58,200, 82,146,146,236,
-127, 55,205,105, 42, 80, 5, 73, 0,154, 19,167,115, 55,196,109, 21, 50,198,235,232,229,108,148,168, 25,246, 28, 18, 27, 84, 11,
- 38, 25,118, 70, 84,238,121,100,200, 63,135, 71,158,253,138,209,100,133,114,106,235, 34,236,243, 14,183, 17,114,126,114, 4, 88,
-209,155,140,242,210,227,192, 60,178,118,237, 64, 80, 86,240,204, 68,231, 26, 17, 69,101,186,222, 97,240,206,135, 85,196, 26, 10,
- 30, 61, 53,195, 4, 51, 93,249,216,138, 42,105,229, 36,143,234,170,154,118,230,135,102,169,237,121,110, 74,199, 75,202, 68,187,
-156, 44,166,197,142,242,205,226,195,108,152,216,196, 46,119, 76,138,223,198, 24, 76, 43, 69,180,128,152,141,162, 76, 59,132,121,
-155,208, 41, 41,102, 96,243,138,148,167, 27, 5,194, 53, 10,235, 38,234,212,231, 0,229,118,139,122,144,196, 34,130, 23, 57,148,
-165, 78, 0,244,215, 2, 61,232, 8,223, 25,228,185,174, 77,114,155,103, 70, 19,141, 99,242, 47,111, 72, 44, 61,201,214, 11,138,
-177,203, 76,231,212,164, 54,150,209,113, 19, 38,252,179, 71,106, 67, 76,149,174,157, 19, 83, 77, 63, 55, 76,104,165,106,171,237,
-217,174, 38,113, 45,101, 5,120,145,128,251,232,161, 8,203,159,200,230,102, 24,196, 46, 35,228,206, 58,127, 30,181,222,239,216,
-158, 65,147, 9,143,193,201,108,216,210, 86,244,150,110, 77,200,183, 68,110, 44,135,160, 54,228,150, 94, 97, 97, 27,145,228,249,
-103,120,113, 44,152, 68,142, 26,169,138,152,190,219, 5,188, 69,241,147, 86,244,241,247, 33,125,171, 36,114,241,144,216,237,153,
- 3,198, 37,174,227,120,181, 91,238, 23, 39,186,139,125,186, 75,205,180,227,196,168, 80, 6, 90, 37, 95, 86,156,186,212,102, 10,
-174,178,224,184,128,236,149, 70,205,125, 74,250,136,103,158,238, 24,141,150,217,116,110,211,111,207,100, 97, 49,189, 54, 24, 74,
-127, 12,184,178,196,227, 5, 54, 71,172,233, 65, 68,153, 79, 37, 33,147, 63,105,150, 92, 62,114, 94, 15, 81,122,142, 99,156,204,
-201,170,208, 13,148, 37,154, 3, 6,158,143, 78, 61,121,163,239, 40,226, 17, 45,152,238, 59,124,141,196,220,145,196,115,174,121,
-151, 32, 99,235,176,242, 30, 89, 11, 52,122,245,106,199, 35, 88, 36,197,185,219,166,219,173,118,216,110, 70, 91,183,105, 17,129,
-105, 79,130,182, 85,251, 98,173,201, 76,165,188,134, 74,234,224,169,123,165,140,118,101,190, 25, 36, 26,241, 7, 46,196,212,197,
-155, 12, 71, 33,241,239, 8, 61,130,222, 46, 23,206, 66,193,109,183,217, 28,154,238, 76,184,238, 89, 51, 12,182, 3,179,108,208,
-225, 90, 91, 96, 69, 84, 54,220,242, 35,205, 84,135, 22,234,247,169,198,148,206,192,133,176,155,116, 16,202, 35,235, 82,246,188,
-190,217,237, 12,213, 58,180,147,213,135, 5,230,241,199,214,235,183,167, 63, 80,150,217,237, 49, 33, 56,229,163,141,249, 18,222,
-219,205,111, 12,223,237,121, 69,179, 31, 67,237,154,209, 43, 76, 12,158, 99,117,167,225, 90,135,142,163,247,121,245,196, 93,209,
- 68,243,148,199,135,112, 91,192,180,251,168,185,107,148,241,212,107,188, 23, 35,150,218, 10,218,173,170, 13,128, 65,167,209,170,
-212, 23, 70, 55, 84, 21,161,201, 0,144, 81, 83, 76,139,143,151,108,184, 63, 13, 96,146,133,157,164, 14,154,183,219, 92,120,237,
- 5, 87,230,140,196,234, 40,155,152, 59,157, 74, 81,184, 87,182,207,111,213,167, 26,146, 85, 90, 63,184,202,216, 71,144,124,205,
-226,131,103, 77,189,122,246,209,117, 26,245, 35,212, 81,125,205,198,154,196,150,247,167,162, 79,186,154,150, 34,138, 24, 56, 57,
-106,113,131, 55,115, 77, 5, 43,161, 38,158,237, 54,184,186,109,168,171,144,211,175, 36,200,227, 78, 68,171,116, 35,105,165, 15,
-126,154,113, 28,130, 81,168,100,147,166,149,250,212,149,175,225,242,119, 31,109, 43,215, 74, 81, 24, 21,142,197, 75,157, 93,100,
-123, 69, 83,219, 64, 32, 69, 82,171, 43,141,218,103,137,143, 53,243, 9, 79,224,104,167,225, 20,210, 23, 49, 25,219,164, 26, 37,
-237, 37, 22,238,212, 69, 83,165,223, 33, 23, 9, 1,208,194, 24, 64,236,148,138,116, 26, 45,181,183,128, 41, 84,123,187,191,169,
-117,105, 68,219,252, 85, 31,214,211,157, 41,166,165,233, 23,100,120,125,186, 5,168,106, 91,133,241, 35,166,238,222,237,115, 66,
-238,181,233, 55, 48,241,168, 63,118,134,154, 33,170,169, 75, 18, 22,235,169,109, 0,169, 74, 61, 0, 29, 78,138,227,164, 85, 25,
-160,184,208, 41, 33,182,207,105, 41,113,198, 22, 18, 69,107,180,246,211,113,112,215, 26, 2,156,186,217,237, 21, 33,123,109, 73,
-165, 21,220,119, 4,105, 84,142, 73, 83, 45, 9, 10,216,208, 78,239,105,209, 92,253, 57,163,177,154,206, 11,203,209,203, 42,218,
-163,215,220,117,208,250,174, 61,154, 51, 94,118,110, 27, 71,218,116, 42,185, 69,134, 50,169,212,253,199, 67, 85, 87,116,164, 15,
-130,223, 64,138,211,219,163, 2,136, 66, 72, 30, 88, 61, 69, 7,209, 77, 26,136,181, 91,170,149,129, 85, 83, 92, 93,205,120, 82,
-195, 99,162,171,174,132, 50, 73, 92,152, 18, 59,232, 81,112,185, 35, 92,181, 30,218,225,193, 12,214,131, 33, 74,168, 39,175,209,
-164, 30,240, 18,173,109, 85,124,245, 7,207,152, 87, 0, 96,247,108,215, 49,148,243,112,109,209, 29,146, 68, 64,211,178, 1,109,
- 36,245, 67,142, 54, 0, 52,232,107,223,167, 83, 65,166,165,250,240, 79, 32,181, 51, 26, 5,243,154,223,231, 85,146,103,190,170,
-248, 73, 86,219, 92, 43, 23, 19, 90,121, 46,203,109,190, 7,227, 37,153,211, 49,252,137,195,108,150,243,155,156,124,160, 70, 98,
- 90,164, 37, 33,125, 84,129,216,106, 23,125,180, 23, 54,210, 71,196,138,250,198, 33, 72, 62,196, 66,211,196,175,176,120,210, 26,
-118, 43, 15,160,130,151, 26, 74,193, 30,197, 13, 96,238,114,142, 33, 43, 69, 23,242,228, 0,127,222, 90,165,124, 58,232,209,148,
- 66, 17, 82,200,138,120,246, 21,212,173,176,170, 37, 18,219,228,145, 18,223, 42, 73, 52, 12,178,226,207,208,145, 93, 73,198,205,
- 69, 21,238,160, 85, 2, 99,147, 42,165, 74,109,105,114, 82,221,150,160, 83, 66,149, 75, 81,112,143,168,174,154,216,118,168,132,
- 80,177,163,128, 9,179,218,232,205, 8, 72,217, 91, 68,148, 57, 80,126,141, 76, 0,186,218, 37, 64, 50,142,173,141,223, 86,186,
-143,128,201, 40,170, 74,106,144,106, 7, 81,174, 35,102,145,173,224, 65, 73, 30,222,135, 66,136, 85, 51, 61,176, 40,149, 36, 10,
- 30,228,107,168,169,166, 91,128, 32,159, 48,129,225, 65,236,215, 80, 42, 42,101,254,213, 73,173,122,253,103, 71, 73,165,205,169,
-107,237,219, 68, 40,192, 47, 43, 74,234, 69,116, 42,187, 69,229, 59,144,107,225,161,154,232, 10, 67,100,191, 55,106,148,153, 11,
-142,151,194, 72, 59, 20, 42, 13, 52,222,120, 76,162,149, 78,109,231, 16,154,145, 84,107,182,243, 60, 70, 88, 12,170, 19,108,171,
-176, 9, 72, 29, 53, 16,253,171,173, 78, 51,121, 20,201, 43,147,150, 98, 89, 70,196, 74, 97,180,201, 89, 9, 36, 80,117, 86,154,
-155,121,109,126, 92,146,166,226, 27,191,155, 53, 15,204,112,168, 81, 45,142, 92, 45,170, 36,132, 23, 54, 82,189, 59,232,182,219,
-179,181,233,122, 74,231,107,104,110,166, 42,181,113,188,165, 42,117,167, 21,181, 73, 42, 4, 30,148, 35, 86, 16,107,138,174,147,
- 76, 20,163,135,100,202,185,230, 23,123, 92, 6,100, 79,153, 51, 4,228, 6,226,194,132,194,228,202,146,242,109, 50,150, 18,219,
-104, 5,107, 39,111, 64, 6,134,170, 17,218, 19, 75,230,151,194,240, 49,238,148, 69, 86, 51, 43, 20,227,236,211, 33,228,158, 59,
-228, 43, 77,190,219, 51, 20,147, 19, 38, 77,137,251, 83,150,152,115, 94,126, 27,251, 17, 57,150, 98,207, 14,200,149, 23,246, 5,
-230,212,105,185, 46, 38,138, 10, 90, 91,141, 36,105, 32,245, 42,214,223,181,155,128,230,202,215, 55, 0, 65,161,251,243,173, 71,
-177, 87,235,199, 37,112,189,145,179, 53, 87,252,211, 46, 90, 65,113,140,126, 30, 50,206, 44, 36,168,117, 13,203,184, 61, 62,104,
-136, 61,165,136,239,248,128, 71,226,209, 29,116, 78, 65, 59,143,151,168,123,239,195,168, 99,251, 61,235,198,117, 38,210,236,139,
-110, 79,136,160,127,115,115,107,115, 57, 30, 56,134,156, 91,232,181,137, 66,147, 45, 75, 90,212,181,151,108,243, 67,145, 23,189,
- 69, 74, 8, 75,157, 82,226, 73, 90, 25, 60, 70,227,159, 21, 17,185, 90,125, 28,165,160,119, 78, 35,179,246,100,135,124,165,199,
- 14,115, 38, 86,156,250, 31, 42, 98, 54, 36, 95,217,183,140,162,211,157,203,186, 34,237,138, 79,132,195,109, 73, 84,100,198,183,
-204, 76,232,111, 56,133, 59, 17,184,202, 46, 33, 42,242,148,216,216, 22,182, 47,129,192,154, 10,171, 45,166,239, 11,163, 26,221,
- 71, 1, 66, 49,225,209, 64,164,144,239, 44, 68,137,136,241,110, 43,153,223, 44,184, 6, 57, 29,155, 19, 23, 59,140,199,236,145,
- 46,247, 11,164,199,164,220, 47,151, 8,113, 93,125, 12,249,210,101,172,165, 35,204, 91,113,208,211, 69, 75, 40,169, 80, 70, 98,
-110, 2,165, 66, 94, 95, 11,249, 51, 33,153, 15,137,244,203, 4, 66,131,103,114, 11,156,139, 99,151,141,115,101,142,219,141,180,
-109, 86,220,211, 47,190, 34,197,141,114, 21,241,233, 76, 50,152, 80, 44,194,222,255, 0,205, 54,236, 55, 28,152, 93,106,232,234,
- 3, 41, 10, 81,253,171, 97, 77,132,207,159,133, 20,133,230,223, 14,219, 22,179, 33, 36,210,157, 7,179,212,164, 14,241, 6, 63,
-114,193,173, 51, 26,125, 16,179, 43,165,194,248, 32,218,238, 37, 49, 45,153, 4, 40, 63, 40,132,196,133, 37,123, 90, 19,218,113,
-197, 56, 35,184,160, 93, 66,210, 27,171,128, 33,198,178, 76,232, 94, 26,227,159,177, 35,109, 96, 47, 96, 50,197,137, 4,138,113,
-200,100,130,119, 91,159, 46, 71,156,238, 46,139, 84,166,111,141, 69, 56,216,185,187,199,176, 71, 39,179,107,242,254, 91,248,112,
-191, 42,219,253,228, 67, 30, 71,236, 62, 88, 75, 8,242,255, 0,103,183,103,195,169, 86, 70,218,107, 35, 20,193,215,179,134,248,
- 58,141, 50,167, 30,206,159, 82,215, 35,133,114, 44, 58, 21,165,121,117,165,235,106,174,127, 61, 34, 37,174,106,194, 39,196, 92,
-101, 33,167,188,248,181, 46,196,112,168, 36, 20, 58,148,172,128, 9, 78,221,164,179,150,231, 89,163, 82,205,178,116, 0,107, 4,
- 84, 84, 85, 73,110, 88,204, 40,190,161,253, 53, 95, 12, 95, 45, 51, 49, 78, 63,184, 33,234,124, 62, 70, 51, 50,225,111, 89, 7,
-216,147,108, 90, 79,208,117, 90,187,111,251,166,158,176,180, 13,177,255, 0,255, 0, 92,122,154,239,189, 68, 38,216,158,115,134,
-125, 77, 50,211, 46,167,230,120,139, 26,112, 2,217, 3,100, 94, 64,194, 29, 81,237,250,169, 73, 36,233,230,224,223,201,119,171,
-237, 10, 15,150, 78,155,159,238,159,185,114,198,234,184, 54,165,249, 47,144,243,171, 52, 75, 96,248,157, 64,195,107,226,100,180,
- 9, 46,180, 96,171,214,109,140,170, 85,203,231, 62, 87,201, 67,164, 30,162,189, 15,213,171, 30,223,220,110,149, 9,118, 75,141,
- 84,110, 30, 44,144, 72, 91, 1,104, 62,196,245, 26,145, 41,158,164,249,253,205,103,202,243,190, 91,221,248, 77,104,126,173, 21,
- 13, 75,234,222, 52, 23, 90, 77, 58, 0, 60, 1,233,169,162,229, 22, 27, 68,241, 14,123,214,245, 40,183, 28, 45, 68, 82,164, 87,
-191,213,168,189,195,109, 27,128,163,138, 81,146,104, 80,235,245,194, 72,146,149,150, 85, 87, 85,248, 80, 9, 0, 19,167,214, 86,
-162,217,154, 1, 72,202,243, 90,167, 24,242, 3, 12, 37,197, 55,241, 20,133,109,167, 90,233,114, 42,140, 29, 64,189, 66,184,189,
- 49,107, 14, 69,216,129,248, 79,180,125,154, 5,180, 65,175,213,193, 47, 90, 42, 40, 26, 20, 62,237,113, 24,166,215, 97,133,154,
-171,160, 62, 26, 54,170, 34, 22,213, 36, 48, 90, 77, 77,122,125, 58,237, 87, 52,164, 82, 18,210, 1,162,210,159,125,105,174,133,
-195, 68,145, 17,212,231,196,149, 84,123,141, 70,187, 84, 90, 85, 63,217,212,212,103,191,222,144, 92,108,138,105,181,195, 92,241,
-221, 41,213,179,219, 25,239, 12, 19,148,105,194, 21,209, 50, 88, 96,169,148,170,187, 72,168,209, 12,101,236,161, 56,163,137,132,
-114,106,104,193, 26,227,103,182,137, 16,188,185,113,144, 22, 27,219, 77,180,235, 79,163, 80,167,109,123, 93, 80, 85,128,110,177,
- 61,148,112, 66,107,165,221,151, 38, 58,184,224, 33,162,162, 82, 7, 78,154,156,134, 50,214,208,170,236,242, 7, 58,161,126, 68,
-190, 33,179,248,138, 79,180, 42,154, 59,163,170, 35,100,210,157,145,115, 75,230,163,226, 39,198,181, 58, 41,109, 17,245,234, 82,
- 91, 85,190,101,205,105,110, 51, 10, 90,143,106, 13, 53,154,118,196, 49, 41,196, 16, 58,115, 70,133, 33,147,134, 95, 88, 70,243,
- 25,106, 20,175, 65,219, 77, 27,185, 70,120,167,142,219, 37,104,201, 67, 46, 22,217,241,220, 45,190,210,155, 87,177, 66,154,125,
- 20,237,144, 96,152, 75, 11,163, 52, 33, 50, 57, 18, 74,122,169, 53, 26,112, 28, 18, 5,165,105,216,176, 40, 69, 7,191, 70, 92,
-165, 23,238,212, 1, 69,119,208, 92, 90,254, 89,133, 84,147,245, 87, 68, 46,162, 48,104, 41,178, 98,216,140,133,173, 74, 66, 16,
-132,169, 75, 90,148, 18,148, 37, 61, 73, 36,246, 0,105,187,228,162, 93,177,213,113, 71,215, 7,230,161, 23,133, 47, 23, 78, 52,
-225,187,124, 75,222,115, 21,130,153,119,219,139, 63, 51,105,182, 60,179, 74,180,144, 20,219,165,190,164,239, 52,240,167,142,161,
- 55, 29,205,150, 77,171,138,210,121, 67,144,102,230, 23, 7, 56, 16,207, 79, 98,249, 76,245,117,207, 92,253,206,247,213,101, 92,
-175,149,203,202, 84,219,143,187, 13, 13, 69,110, 5,186, 10, 94,240,102, 60,102,153,109, 32, 10, 10,169, 53,246,147,168,123, 62,
-103,138,224,150,212, 2,180, 13,231,203,185, 54, 72,245, 68,195,167,167, 18,168,253,186,249, 33,185, 41, 59,212,133, 37, 85, 20,
- 36, 41, 42, 7,191,186,154,115, 45,222,190, 43, 60,184,219,206, 84, 95,208,163,242,238,252,197,248,139,212,167,167,222, 57, 98,
-231,200,120,236,110, 99,179,227, 54,171, 22,125,134,221,110,173, 65,201, 63,188,150,134, 16,204,153,140,198,117,105,118, 68,121,
-171,108,190,211,173,133, 38,138,218, 72, 90, 84,145,143,239, 27,108,150,146,184,134,157, 4,212, 30, 20,253,138,167,119,100,251,
-119, 26,131, 78,149,211, 11,102,125,143,165,168,143, 75,188,219, 99, 50,245,194, 4, 54, 29,126, 99,109, 33,217,115,220, 75, 76,
-180,146,162, 1, 83,174,173, 40, 66,123,146, 64, 29, 78,162,224,212, 77, 40, 83, 35, 26, 57,194,202,236,150,230,139,146,238,144,
-154,220, 40,128,185, 41, 10, 87, 74,244, 21,169,232, 53, 96,179,141,210, 96, 1, 37, 54,112, 81,252,135, 41, 55,214,255, 0,134,
-194,142,240,183, 60,105, 58, 91,233, 49,252,216,255, 0,172,219, 72, 80, 14, 18,224,233,186,128, 0, 73, 4,158,154,187,237, 27,
- 20,146, 56, 62, 65, 65,215,159,177, 35,137,112,168,193, 68,111, 73, 55, 39,150,251,141,161, 37, 68,244, 72,160,235,245,106,255,
- 0,105, 8,183, 20, 9,107,137, 13,193,212, 84, 65,118,198, 89, 81, 90,208, 69,123, 87,182,164, 3,234,155,104,162,210,166,155,
- 72, 81,109, 73, 3,217, 94,180,215,106,133, 18, 1, 49, 44,168,138, 5, 87,167,125,118,139,129,212, 73,164, 54,235,135,207,104,
-123,233, 94,250, 21, 93, 35,138,107,125, 72, 89,253,170,118,145,220, 87,217,174,174, 38,135,204,101,133, 38,180, 62, 26, 21, 67,
- 5, 29, 92, 97,231,110, 66, 9,240,174,143, 84, 74, 37,108,238, 77, 52, 68,112,156,130, 27, 41, 10, 93, 61,253,117,196, 96,188,
- 58,195, 69, 33, 77,120,248,123,244, 16,160, 72, 86,135, 54,148,134,250,142,190,253, 4, 19, 60,167, 84, 62, 21,164,160,138,245,
-241,215, 40,185, 84,192,253,201,113, 28, 75,205, 60,226, 92, 66,183, 2, 20, 71, 81,162, 57,186,176, 64, 59, 73,168, 69,203, 31,
- 40,197,145,108, 16,239, 47,160, 39,203,242,138,150,170, 84,118,241,213,110,247,109, 37,213,106,178,217,238, 96,183, 75,208,115,
-144,113,235, 52,182, 36, 94,172,183, 38,137, 1, 75, 83, 72,116, 10,215,221,163, 90, 94, 73, 1, 12,120, 77, 47, 45, 35,144, 23,
-176,170,171, 54,237, 37, 14,173, 41,144,182,212,157,237,149, 54,225, 74,138, 15, 66, 42, 60, 8,239,171, 5, 42, 42,160, 53, 83,
- 5,238,221,101,106,232,203,207,174,224, 16,180, 36,168, 33,107,252, 68,106, 62,226,224,194,105, 68,254,222,220, 74, 43, 85, 26,
-126,212, 29, 90,218,117, 37, 73, 66,136, 10,165, 65,210,161,218,133, 82, 46, 26, 74, 37, 96, 25,204,172, 38, 28,156,118,117,158,
- 14, 89,132,206,159,252, 82,102, 49,117,125,216,134, 45,209, 77,165,149, 77,183, 76, 96,135,224, 73, 83, 40, 74, 20,161,185,183,
- 2, 80, 30,105,208,218, 2, 64,115,152,106, 19,123,155, 88,238,219,166, 65, 81,239, 29,158,148, 83, 43,159, 36,240,132, 0,244,
-184,152, 7, 38, 93, 37,109, 82,162,216,238, 89,189,182, 29,173,151,141,118,135,231, 71,179,153, 18, 80,147, 77,201,109,150, 84,
-161,217, 72, 61,116,169,186,121,232, 81, 99,151,225, 6,165,206,167, 70, 31,109, 62,229, 11,143,204, 24,158, 97, 18, 69,171,144,
-113,168,120, 18,161, 72, 82,240,252,131,142,113,223,156,133,109,183, 60, 42,229,182,237, 22, 76,207,159,184, 52, 29,253,179, 83,
-213, 37,217, 40, 42,113, 10, 75,205,150,146,199, 34,184,115, 14, 56,163,222,108,177,204,208, 35,163, 72,247,246,241,245,250,186,
- 40, 85,226,252,211,132,236,247, 22,153,200,249, 78, 94, 86,218, 82,150, 34,196,197,241,171,156,105, 17, 27, 89, 63, 10,157,191,
- 71,182, 52,194, 91,174,250, 52,151, 55, 31,132,109,174,244,175, 36,245, 29,209,237, 85,201, 54, 23, 49,255, 0,154,254,239,245,
-106,126,218, 15, 79, 90,184, 18,185, 11,136,236,184, 29,219, 30,145,156, 72,157,142,231, 11,131,101,200,158,117, 2,223,110,181,
- 99,179, 94, 75, 82,229, 38, 40,118, 88,114, 95,202,173,105, 67,165, 7,202, 73, 81, 70,245, 20,169, 12,238, 30,102,195, 74,147,
-218,173,134,219, 95,204, 38,166,148, 24, 10,116,211,137,251, 58,248, 81,139, 95, 39, 55,103,196,159,139,148,114, 86, 81,105,183,
- 69,131,149, 53, 39,138,240,142,108,191,229,248, 74,236,176,175,120,148,123, 91,209,163, 68,204,155,105,217, 82,160,204,189,180,
-168,130,227,181, 45, 71,109,245, 52,148,245, 90, 47,104, 24, 43,100, 47, 36, 2, 84,195,143,189, 68, 65,226,235, 86, 9,109,197,
- 51, 59,157,155, 1,118,223,147,228, 55,123, 12, 62, 69, 68, 27,223,241, 20,192,188,202, 98, 28,135, 35,228,110,188,196,137, 14,
-197,136,209, 34,206,202, 75,133, 0, 45, 91,194, 92,139,154,216,183, 22,146, 58,129, 42, 74, 25,195,176,112, 7,180, 5,179, 36,
-229,156, 90,103, 49,225,185, 46, 75,202,151,140,202, 37,139,143, 39, 94,219,204,162,231,210,155,200, 88,157, 18,211,117,184,194,
-106, 28,193, 52, 63,108,150,102, 41,157,176,146,234, 74, 31, 89,105, 72,220,165, 36,194, 72, 31,226,141, 68,154, 12,235,212, 84,
-176,211,225,154, 83, 60,148, 67, 59,230,118,114,156, 65,252,102, 47, 59,228,156,181, 38, 70, 53,101,129,123,199,249, 11,157,178,
- 43, 38, 13,151,200, 23,107,146,174, 87, 23, 98,221, 47,118,125,139,138,166, 32, 53, 10, 19,133,162,182, 21,243, 37,165, 45, 42,
- 80,146,100, 50, 22,210,181,237, 39, 21, 30,233, 89, 94,133, 90,174,124,101,233,210,110, 83, 26,249, 10,225, 5,219, 4, 44,237,
-190, 57,147, 99,151,152, 72,243,110, 42,159,146,177, 33,188,147,206, 47, 48,240,183, 53,138,187, 46, 34,222,109, 65, 2, 67, 13,
- 58,176, 4,128,157, 73, 67, 24,104,161, 9,156,146, 84,212, 21, 3,229,126, 53,192,219,197, 49, 23,176,214, 44, 50,166, 73, 82,
-127,140, 76,133,125, 69,214,235,231,151,238, 73,242,221, 65,201,230, 58,132,121, 77,178,122,217,153, 3,225, 62,113,221, 71, 22,
- 99, 3, 50, 9, 55,188,187, 50,163, 24,167, 1,203,189, 70, 15,180,150, 17,219,224, 82,192, 87,223,166,211, 95,182, 19, 66, 19,
-168, 44, 95,112, 42, 17,120,122, 91,145,252, 9, 82,183,181,243, 1,196, 36, 55,189, 59,104, 66,191,201,166,255, 0,205, 69,114,
-193, 59,254, 80,237, 53,174, 43,177, 13,127,183,245,234,222,171, 1, 46,240, 61,180, 68,112,152,166,254,249,191,236,253,199,239,
-123,253, 90, 56, 73, 59,212,180,191,217, 63,187,209,154,131,146,168,189,135,238,254,174,218,225, 93, 9,196,246,240,250,251,107,
-136,201, 11,255, 0,236,248,232, 5,194,153,101,118, 87,244,104,225, 36, 84,114,127,238, 85,251,191,246,180,112,146,118, 73,202,
-203,253,144,126,235,191,235,104,174,205, 30, 60,147,243, 63,139,255, 0, 55,250,244, 66,149, 9,221, 29,191,243, 95,233,210,101,
- 25,107,119,177,253,215,251, 29,181,208,130,142,191,251,195,248,127,218,210,161, 36,228,145,127,137, 63, 95,225,209,130, 42,145,
- 90,251,143,197,220,118,239,164,100, 75, 49, 89,222, 47,236,127,179,118,253,127,222,106,177,186,171, 94,207,151, 4,112,119,240,
-143,220,246, 63,188,212, 2,176, 4, 23,207,127,122, 63,225,157,143,225,253,230,167,246,204,184,170,246,235,159, 4, 28,147,217,
- 95,131,199,232,213,129,138,186, 84,125,238,255, 0, 95,135,109, 46, 18, 37, 33, 95,143,255, 0,173,160,184, 22,132,246, 63, 87,
-109, 34,244,172,104, 75,205,255, 0,252,169,207,255, 0,226,255, 0,247,102,235,255, 0,119,255, 0,227, 63,187, 87,246,127,244,
-189,154,143,149, 73,216,255, 0,152,220,179, 25,228,190, 19,175,159,138,231,253,167,254, 39, 51,251, 95,246,191,222,171,247,255,
- 0,254,119,253,167,250, 85,214, 63,204, 95,231, 59,231,207,138,247,135, 40,255, 0,218, 71,254, 95,202, 62, 95, 79, 98, 25,228,
-191,217,135,252, 63,247, 8,254,219,253,135,177,252,126,239,235,106,154,207,159,241,103,195, 53,111,191,255, 0, 36,252,153,113,
-203,250, 21, 57,203,191,226, 19, 63,238,167,227, 87,252, 39,247,191,243,251,117,160,109,153, 15,243, 63,188,188,231,205, 95, 59,
-191,237,255, 0,185,159,244,169, 22, 29,253,162,219,253,183,251, 92, 79,248,127,246,207,198, 63,115,254,159,245, 61,250,155, 11,
- 54,184,245, 46,164,207,255, 0,185,184,111,255, 0,237,207,253,228,177,255, 0,223,127,251,143,217, 95,240,143,255, 0,124,255,
- 0,176,211, 88, 62, 99,242,101,195, 63, 95, 82,141,103,207,255, 0, 79, 46, 25,250,215,208,239,229,163,255, 0,123, 83,255, 0,
-204,207,248, 19,191,252,218,255, 0,188,221,217,252, 30,239,235,123,180,134,223,255, 0,124,222,195,150, 94,175, 76,170,173, 55,
-223,255, 0,133, 47,249, 92, 62, 76,255, 0,189,233,157, 23,114,252, 71,226,240,255, 0,144,214,143, 18,196, 28,148, 55,251,196,
-118,238, 63,121,219,235,211,151,100,143, 30, 97, 32,202, 63,118,215,238,127, 8,253,215,215,223, 92,180,204,230,148,188,200,100,
-134,174,254, 35,251,207,171, 82, 10, 56,164,209,255, 0,180, 15,195,223,254,187,240,104,143,201, 25,153,169, 60,143,236, 95,249,
-159,135,238, 63, 30,154, 55,230,226,159, 73,242,240, 80, 57,223,140,233,224, 76, 74,100,255, 0,174, 31,131,241, 15,197,248,126,
-189, 25,217, 46, 55, 52,188,119, 87,246,110,222, 26, 73,153,113, 74,191, 62, 9,173,207,222,159,195,248,143,224,210,195, 36,146,
-221,250,159, 80,239,219, 69, 93, 9, 68, 94,222, 30, 63, 78,184, 81,154,188,171,247,199,183,213,160, 87, 70,105,150,225,217, 95,
-186,241,252,125,244, 17, 74,132,205,236,191,220,118, 58,225, 92, 80, 75,143,246,103, 63,214, 63,131,250, 52,153,205,119,130,143,
-183,255, 0, 13,147,253,191,177,253,231,246,111,175, 76,230,249,198, 73, 70,252,135,230,245, 33, 61,231,183,255, 0,194,127, 18,
-191,113,251,255, 0, 30,250,154,118, 67, 37, 13, 30,103,230,245,173, 86,207, 15,163,254,175,183,215,168,217,189, 74, 78, 47, 90,
-148, 69,236,127,178,127,229, 52,138, 88, 44,147,248, 85,255, 0, 12,236,123,254, 47,171, 68, 62,180,113,234, 80,185,157,149,253,
-143,199,190,186, 81, 20,105,207,214,254,197,254,215,109, 20,174,168,172,239,223, 15,236, 94, 63,217,191,123,227,165,152,155, 92,
-101,195,214,191,110,223,240,164,127,199,255, 0, 8,253,247,246, 79, 31,187, 71,114,137,143,230,252, 42, 34,215,246, 83,251,206,
-199,240,254,239, 76,228, 83,236,201, 70,229,118, 87,238,187,159,199,223,234,210, 46, 75, 4,208,143,196,127,180,248,254, 15,193,
-219, 77,164,254,234,116,207, 90, 65, 23,251, 74,191,179,126, 35,251,207,197,167, 13,201, 32,252,212,246,223,216,127, 98,237,250,
-223,135, 70, 40,138, 75, 11,241,143,236, 94, 31,187,208, 93, 8,197,137,254,175,252, 67,191,254,107,248, 52,210,124,255, 0, 10,
-121,109,253,239, 82,177,131,254,234, 47,254, 39,253,161,175,252,111,225, 94,163, 63, 31, 5, 57,255, 0, 75,241,125,235,255,217,
+255,216,255,224,
+ 0, 16, 74, 70, 73, 70, 0, 1, 2, 0, 0,100, 0,100, 0, 0,255,236, 0, 17, 68,117, 99,107,121, 0, 1, 0, 4, 0, 0, 0,
+ 85, 0, 0,255,238, 0, 14, 65,100,111, 98,101, 0,100,192, 0, 0, 0, 1,255,219, 0,132, 0, 2, 1, 1, 1, 1, 1, 2, 1,
+ 1, 2, 3, 2, 1, 2, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 4, 4, 4, 4, 3, 5, 5, 5, 6, 6,
+ 6, 5, 5, 7, 7, 8, 8, 7, 7, 10, 10, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 2, 2, 2, 4, 3, 4, 7,
+ 5, 5, 7, 10, 8, 7, 8, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,255,192, 0, 17, 8, 1, 26,
+ 1,245, 3, 1, 17, 0, 2, 17, 1, 3, 17, 1,255,196, 0,213, 0, 0, 2, 2, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5, 6, 4, 7, 0, 3, 8, 2, 9, 1, 1, 0, 1, 5, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2,
+ 4, 5, 6, 7, 8, 9, 16, 0, 1, 3, 3, 3, 2, 3, 4, 6, 6, 6, 6, 6, 6, 8, 7, 1, 2, 3, 4, 17, 5, 6, 0, 33,
+ 18, 49, 7, 65, 19, 8, 81, 97, 34, 20,113,129,145, 50, 35, 9,161,177, 66, 51, 36, 21,193, 82, 98,114, 52, 22,209,225,130,115,
+ 53, 54,240,146, 67, 83, 23, 55,162,131, 68,116, 37, 10,241,178,194, 84,132,148,180, 25, 99,147,100,212, 69,213, 56, 17, 0, 1,
+ 4, 1, 2, 3, 5, 5, 6, 3, 6, 3, 6, 7, 1, 0, 1, 0, 17, 2, 3, 4, 33, 18, 49, 65, 5, 81, 97,113, 19, 6,129,145,
+ 34, 50, 7,240,161,177,193,210, 20,209, 66, 35,225, 82,146, 51, 21, 23,114,178, 67,241, 98,130, 83, 99, 52,162, 36, 68, 84, 37,
+ 22, 8,115,255,218, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0,251,245,164,146,205, 36,148,123,178,174, 73,181,201, 85,152,
+ 33, 87,112,211,134, 42, 95, 36, 54, 94,224,120, 5,148,239,199,149, 43, 77, 10,253,251, 37,177,183, 49,103,224,252,159,185, 22,
+141,155,227,189,246,184,118,226,220,219,189,114,126, 3,235,143,186, 93,174,238, 44,204, 7,213, 60, 34,150, 60,213, 1, 50, 60,
+100, 52,228, 64, 79,194, 82,134, 64, 75,172,211,162,133, 85,239, 58,241, 94,153,245, 19, 55,166,229,203, 27,171, 69,181,249,128,
+102,246, 15,154, 61,227, 95, 21,237,221, 79,233,198, 23, 83,196,142, 79, 72,147,233,242,146,239,237, 63, 44,187,142,158, 11,170,
+241,236,138,197,150, 89,216,200, 49,169,109, 78,178,201, 72,113,137, 49,150,149,182,180,159, 97, 78,189,163, 27, 38,188,136, 11,
+ 43,144,148,101,168, 35, 80, 87,137,228,226,217,143, 97,174,200,152,202, 58, 16, 67, 16,166,232,232, 11, 52,146, 89,164,146,205,
+ 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210,
+ 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,
+150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,
+102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,
+105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,230,239, 83,144, 61,109,201,238, 67,139,237, 12,178,207,
+111,124,166,132, 36,219,220,142,218,130,184, 15, 51,206,243,135, 34,174,117,165, 54,165, 61,250,242,207, 86, 97,250,146,220,178,
+112,166, 5, 44, 25,140, 65,239,119,213,223,216,203,213,189, 37,153,233,170,113, 0,205,129, 55, 57,119, 18, 35,185,155, 70,111,
+107,170, 3, 63,239,223,171,190,217,222, 63,203,217,118, 89, 33,155,226, 69, 93,138,212,136,175, 56,213, 69, 71,152, 26, 7,137,
+ 32,244, 59,235,203,122,207,168,186,247, 75,179,202,187, 36,239,230, 4,162, 72,241,110, 11,213, 58, 55,167, 58, 7, 84,175,205,
+163, 27,224,228, 76,101, 16,124, 31,138,136,246, 41,234,175,212,188, 8,215, 43,179, 18,175, 48, 26,170,226, 74,154,150, 26, 52,
+ 80,161,224,181, 4,168,131,246,105,199, 70,245, 7,168,170,140,231, 25, 78, 3, 88,153,109,143,184,150, 45,247, 37,254,179,233,
+239, 78, 91, 40, 66, 81,132,206,146, 17,221, 47,120, 14, 31,239, 68, 59,117,220, 79, 80,158,139, 50, 38,153,200,173,207,183,136,
+204,114,178, 45,115, 13, 98,200,167,222, 83, 46, 39,146, 82,224, 30, 35,235, 7, 68,233,157, 75,171,250, 62,208, 46,172,249, 82,
+ 58,196,252,167,254, 18, 28, 3,246, 33, 11,170,116,222,145,235, 26,137,166,193,230,196,105, 33,164,135,252, 64,177, 35,236, 10,
+237, 44, 63,212, 22, 7,155,246,118,103,121,236, 42,113,235, 13,186, 36,153,243,226, 32, 39,230, 89, 84, 54, 11,238,178, 82,162,
+ 19,204, 1,182,244, 59,111, 77,125, 27,233,238,173, 79, 89,166, 22,208,116,145,109,121, 30, 96,248, 47,155,125, 71,210, 46,232,
+183, 78,171,198,176, 15,167, 49,200,143, 31,236, 41,111,209,183,173,190,197,250,234,237,163,189,210,236, 84,137,110, 89, 98,200,
+ 54,233,241,174,177, 85, 18, 76,105, 73,105, 14,169,181,164,149, 37, 84, 74,199,196,133, 41, 62,253,116,253, 91,163,221,211,173,
+242,237,103,103, 12, 95, 69,202,244,110,183, 71, 84,171,205,164,150, 5,139,134, 32,167, 62,246,119,167,183, 62,158, 59, 97,118,
+239, 31,118,167,155,103,111,108,141,161,251,148,224,203,207,150,144,183, 82,202, 79,151, 29, 43, 89,170,148, 6,195, 85, 48,240,
+236,202,176, 87, 88,121, 75,128, 87, 51,179,107,196,170, 86,218, 90, 49,226, 86,190,197,119,215,182, 30,164,251, 95,108,239, 39,
+103, 46, 63,205,123,123,119, 14,170, 4,226,203,209,203,129,151,215, 25,117,110, 66, 80,226,104,182,212, 55, 2,189,122,105,243,
+112,236,196,180,213, 96,105, 71,136,251,210,193,206,171, 50,168,219, 81,120, 75,129,246,183, 52,221,170,170,218,205, 36,150,105,
+ 36,179, 73, 37, 73,246, 47,215,231,167,239, 81,157,255, 0,205,189, 57,118,185,233,210,179,108, 1,107,141,144, 73,147, 17, 81,
+225,166, 75, 82,215, 9,214, 25, 91,170, 11, 90,144,227,102,164, 35,137, 29, 9,214,190,119, 68,191, 18,138,238,177,132,108,225,
+174,172,206,235, 23,167,245,252,124,204,139, 40,173,204,171,249,180, 96,238,204,174,205,100, 45,165,154, 73, 33, 57,246,117,138,
+246,195, 7,188,119, 35, 58,152,155,126, 23, 96,133, 38,241,118,156,224, 82,146,196, 72,108,170, 67,206, 20,160, 21, 30, 40, 73,
+ 52, 0,147,224, 43,162,209, 76,174,156, 97, 0,242,145, 0, 14,242,131,145,124, 40,174, 86, 76,180, 98, 9, 39,184,113, 95, 58,
+151,249,245,119,191,186,119, 25,215,239, 73,222,155,178, 44,215,180, 22,231,150,202,175,174, 61, 45, 47, 72,225, 66,164,134,173,
+208,165, 52,218,248,239,196, 58,225, 21, 21, 3,161,239, 15,162,168,160, 8,228,229, 66, 19, 60,180,252,200,252, 2,243,177,235,
+204,140,130,101,139,137, 59, 43, 28,245,215,221, 18, 62,242,186, 63,242,243,252,209,187, 57,249,128,192,186, 89,108,118,217, 88,
+175,120,108, 20, 55,204, 74,238,164,184,235, 77,149,249,126,115, 15, 37, 40, 14,182, 28,248, 21, 84, 33, 73, 86,202, 72, 5, 36,
+224,117,239, 78, 93,210,204, 76,136,148, 37,194, 67,243,236, 62,255, 0, 21,210,122,119,213, 20,245, 97, 33, 16, 97,100,120,196,
+254, 32,243, 28,185, 30,238, 11,167, 53,206,174,153,102,146, 74,131,245,151,249,132,246,127,209,174, 77,131,246,239, 38,109,119,
+142,233,103,183,120, 22, 91, 77,134, 19,200,109,214, 98, 75,152,136,142,220,100, 41, 65, 92, 25,108,170,137,218,174, 43,225, 78,
+193, 74, 78,223, 73,232, 86,231,194,201,199, 72, 87, 18, 73,239, 1,216,119,254, 30,229,129,214,125, 67, 79, 79,157,117,203,226,
+157,146, 0, 1,216, 75, 57,238, 31,121,246,178,127,230, 65,249,160, 91,191, 47,119,240, 8, 74,194, 37,230,183, 28,249, 87, 86,
+161, 71,183,206, 76, 71, 25,114,218,168, 72, 8, 8, 44, 62,167, 20,233,152, 2, 64, 0,212,120,215, 86,189, 61,233,195,213, 5,
+135,204, 16, 21,179,184,126, 47,222, 25,153, 84,245, 55,169,199, 72, 53, 15, 44,216,108,118, 98,220, 27,184,187,186,163, 7,231,
+209,222, 66, 42, 61, 44,102,148,254,252,239,255, 0,213,235,103,255, 0,210,232,255, 0,239, 43,251,191, 82,195,255, 0,247,188,
+143,254,202,223,191,244,174,254,237, 62,116,255, 0,115, 59,107, 98,207,229,219,158,180, 76,188,219,225,220,222,181, 75,175,159,
+ 13,201, 81,208,250,163,185,201, 40, 60,155, 42,226,106,145,184,232, 53,195,228, 84, 42,178, 80, 5,216,144,253,172,120,174,255,
+ 0, 26,227,109,113,153, 12,100, 1, 99,201,195,183,177, 48,232, 40,235, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154,
+ 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,
+146,205, 36,148, 75,158, 65, 97,178, 41, 9,188,205,143, 17, 78, 84,182, 37, 60,219, 69, 64,117,167, 50, 43, 74,234, 81,129,151,
+ 0,233,137,101,170, 46, 91,138,206,200, 31,196,161, 92,226, 61,149, 69,105,185,114,173,141, 72,101,114,217, 97,223,221,186,227,
+ 41, 81, 90, 80,175, 5, 17, 67,167, 53,200, 71,113, 5,187,121, 36,225,217, 16,212, 19,168, 25, 30, 87,139,225,240, 81,116,203,
+110, 81,109,118,215, 29,110, 43,114, 46, 50, 25,140,210,158,116,241,109,176,183,148,148,149, 40,236, 5,106,124, 53, 56, 87, 41,
+150,136, 36,247, 38, 36, 14, 42,126,160,157, 66,155,145,227,214,217,105,183,220,103,198,143, 61,116, 40, 97,247,218, 67,138, 10,
+ 52, 20, 74,136, 38,167,166,166, 33, 34, 28, 2,153,194,155,168, 39, 89,164,146,140,187,213,157,187,195,120,235,146,217, 78, 64,
+243, 46, 77,106, 9,117, 2, 66,227,178,180, 52,227,169,104,158,101, 9, 91,136, 74,148, 5, 1, 80, 7,168,212,182, 22,118,209,
+ 51,173,210,100,198,133, 29,114,230, 56,150,162,182, 10,220,117,213, 4,161, 41, 27,146, 84,173,128,211, 0,233,215,189, 50, 75,
+ 52,146, 89,164,146, 83,238, 15,119,177, 92, 6,209, 38,235,113,144,134,224,196, 81,110,109,194, 71, 52, 64,133,197, 60,214,169,
+ 50, 0, 41, 72, 74, 65, 36,117,240, 52,174,156, 7, 73,113,223,121,191, 53, 59, 98,175, 82, 48,142,193, 88,110,249,166, 82, 21,
+242,204,223,100,201,151,102,181,121,165, 92, 20,235, 49,162, 22,223,113,148, 26,145,200,130, 64,251,221, 9,219,167,162,157,187,
+172, 45,236,251,126,106,148,243, 3,180, 67,169,142,254,100, 12,219,108,145, 45, 95,201,228,223,175, 44, 71,100, 76,187,179,145,
+ 76,102, 43,239,134,135,152,182,126, 77,180, 5, 55,202,180, 62, 61,119,235,171, 21,244, 13,218,153,105,225,253,168,114,207,110,
+ 74,252,244,105,234,154,219,234,106,193,123,145, 18, 60,136,242,236,178, 25,142,234,100, 41, 15,160, 7,217,231, 68, 73,108, 36,
+ 57,197,105, 90,126, 36,133, 10,111, 94,186,202,207,192, 56,196,106,224,171, 84, 95,230, 14, 10,232,213, 4,117,229,247,216,138,
+194,228,201, 90, 91,140,218, 74,220,113,194, 18,148,165, 34,164,146,118, 0, 13, 70, 82, 17, 4,146,192, 41, 70, 38, 68, 0, 28,
+149,201,254,168,125,125,121, 78,191,219,158,193, 57,231, 92, 20, 85, 22, 86, 64,216,230, 2,143,192, 81, 12,111,200,255, 0,252,
+ 79,250,190,221,120,151,172,190,167, 23, 56,221, 60,188,142,134, 99, 95,100, 59,124,125,221,171,220,125, 25,244,191, 65,149,212,
+ 67, 68,106, 32,116,239,121,246,120,123,251, 23, 52,246,163, 31, 25,199,121,237, 22, 12,181, 75,117, 83,167,132, 79,249,146,162,
+226,215,200,169, 97,101, 91,213, 68, 80,215, 94, 87,233,156, 17,155,213,106,171, 33,206,233,252, 79,196,179,146, 15,137, 12, 87,
+171,250,163, 56,225,116,155,173,199, 97,182, 31, 11,112, 14,192, 17,224, 11,133,199,223,156,239,171,191, 81,110,250,203,201,187,
+ 11,110,188, 92,113,126,212, 97, 46, 49,105,178, 88,109, 82, 31,130,203,205,252,171,111,124,235,161,146,143, 49, 79, 21,114, 73,
+ 53, 1, 52, 3, 95,166,126,138,232,152,181, 96,194, 98, 49, 50,144,212,176,211,147, 14,198, 95,150,222,188,235,217,118,245, 11,
+ 43, 51,148, 99, 19,160,114, 31,155,158,210, 85,235,249, 38,122,135,239, 15,169,222,216,119, 63,211, 79,125,238, 50,242, 94,222,
+ 88,109, 41,200, 49,251,205,225,197,201,126,211, 49, 60,192,101, 50, 30,170,248, 43,143, 52,164,171,110, 42,166,196,235,206,254,
+181,122, 99, 10,236, 9, 19, 17, 19, 40,203,134,154,196, 56,151,136, 63,138,244,159,161,126,170,206,167,168, 68,110, 50, 17,148,
+ 89,245,210, 69,140,124, 8,224, 57, 50,232, 31, 74,185,213,202,205, 96,238, 30, 21,230, 40,217,174,120,197,226, 66,154,169,226,
+ 30, 98, 19,137, 10,167, 64, 74, 84, 65, 62,225,175,149,126,135,245, 25,195,168,203, 29,254, 25, 52,189,162, 64,125,224,253,193,
+125,111,245,215,167, 66,125, 52,100, 55,197, 23,143,178, 81, 39,238, 35,239, 43,141, 63, 39,175, 68,254,164, 61, 95,246,115, 34,
+103, 7,238,253,227,183, 29,171,181, 92,214,150,224, 99, 11, 91,110,202,185,185, 21,165, 56,252,133, 50,235, 36,161, 40, 8, 9,
+ 73, 38,187,211,143,143,220,158,174,235, 84, 96, 95, 23,162, 54, 76,199,140,185, 7, 58, 13, 15,122,248, 43,209,125, 11, 39,168,
+227,207,110, 68,170,172, 75,132,121,150, 26,157, 71,119,246, 40,249,247,171, 47, 85,125,188,237,215,168,191,203, 75,212,190, 82,
+238,117, 19, 31,182,190,171, 69,254, 98,212,252,150, 94,182, 93, 34, 40,143, 57,202,186, 90,121,149,242,226,226,137, 66,133, 1,
+220,232,180,244,204,107,108,197,206,162, 27, 55, 29, 71, 45, 65,251,193,236,226,133,127, 86,203,170,172,190,159,145, 63, 51,108,
+116,151, 61, 8,251,136,237,224,144, 17,235,155,189,152,231,167,174,201,122, 56,193,239,247,156, 87,180,203,128,229,227, 40,153,
+133,165,195,124,184, 25,183,233,192,180,207,148,164, 41, 73,109,150,193, 74, 2,128, 82,137,229, 90, 10, 92, 29, 22,153, 95,145,
+149, 40,198, 83,118,136,151,202, 26, 49,227,237, 84, 79, 94,190, 56,248,184,144,148,161, 94,215,145,143,204, 94, 82,225,224, 57,
+118,167,107,103,170,206,235,122, 89,239, 62, 35,220,111, 69,215,222,234, 95,177, 52,188, 27,204,241,206,230, 91,229,200,135, 41,
+130,226, 2,131, 97, 42,113, 7,154, 10,247,226, 20,130, 1, 7, 84,143, 78,175, 50,153,195, 40, 83, 25,127, 41,129, 0,143,183,
+222,175, 14,169,110, 13,245,217,134,111,148, 95,226,141,128,144, 71,219,220,175, 46,213,247, 83,243, 5,252,196, 61,108,247,159,
+210,197,163,188,119, 44, 67,177, 54, 11,205,216,147,106,141, 17,171,139, 16, 24,187,187, 26, 36, 56,207,178,134,158, 64,225,178,
+212, 87, 90, 36, 3, 93, 98,229,211,131,210,176,177,242, 60,129, 59, 39, 17,196,150,118, 4,147,196, 45,220, 59,250,135, 88,207,
+201,198,253,193,133, 80,145,224, 3,182,226, 0, 7, 67,227,170, 87,192, 61, 74,122,169,252,170,253,109,119, 79,211,214, 79,157,
+ 92,123,149,128, 88,177,105,249, 28, 22, 50, 89, 18, 95, 74,165, 34,214,139,148, 39, 56,186,227,138,109, 65,107,242,220,224,160,
+ 20,154,157,182,165,188,142,159,141,214,112,169,184, 86, 43,148,166, 34,118,246, 59, 31,226, 21, 60,110,165,149,208,243,175,162,
+ 86, 27, 97, 26,204,134,231,226,206, 60, 59, 11, 35,158,134,125, 56,250,254,252,205,176, 59,151,171,140,195,212, 54, 67,139, 94,
+ 37,206,148,213,138, 5,149,247,211, 13,151, 34,174,149, 84,118, 31,101,166,219, 11,248, 67,105, 71,221, 21, 39,125, 87,235,125,
+ 79, 11,164, 90, 49,161,141, 25, 0, 3,147,199, 94,246, 62,245,103,160,116,172,254,181, 81,203,179, 42,112, 36,157,160,112,211,
+185,192, 3,185,115,119,100,125, 79,250,129,244, 83,115,245, 55,220, 69, 92, 91,127,212,179,151, 54,113, 41,183,246, 80,203,173,
+183,120,151,121,150, 38,207,109, 60, 3,100,213,151, 74, 62, 26,114, 32,211,195, 93, 22,119, 77,163,168,156, 72, 55,244,182,153,
+ 55,112, 1,135,222, 23, 51,211,250,174, 71, 76, 25,179,119,183,112,137, 61,230, 69,207,220, 89,121,198,123,175,123,191,246, 53,
+ 93,203,149,220, 46,244, 63,234,241,246,156,185, 64,184, 91,154,156,245,129,114,124,194,182,153,243, 3,254, 97,109, 73, 0, 21,
+167,161, 53, 9, 32, 80,181,184,226, 57, 27, 60,188,113, 64, 44, 65,109,205,238,227,221,247,167,171, 36,207, 27,204,243, 50, 78,
+ 65, 14, 8, 7,107,242, 28,120,119,253,202,205,238,159,230,197,249,144,223,187,113,217, 27, 6, 49,145,205,196,187,183,119,114,
+227,139,223, 85, 38,221, 25,175,230,178,217,184, 69, 98, 28,199, 81, 54, 58,136,228,219,224, 44,160, 0, 84, 9,213, 12, 95, 77,
+116,232,217,145, 41, 68, 78, 17,105, 6, 60, 3, 18, 70,135,185,104,229,250,175,169,206,188,104,198, 70, 22, 73,226, 92, 13, 75,
+128, 14,163,189,125, 78,252,190,253, 44,119, 51,211, 87,102,174,184,151,121,179,153,221,197,201,178, 75,139,217, 21,194,233,124,
+230,181,161,217,112,163,198,118, 58, 3,206, 58,124,160, 88, 42, 0,159,218, 59, 13,121,151, 90,234,112,205,184, 78,186,197,113,
+136, 96, 7,113, 37,249,107,170,245,126,131,210,103,129, 73,133,150, 27,101, 41,110, 36,247,128, 27,158,154,125,234,220,193,251,
+ 87,219, 62,211, 98,172,226,248, 69,166, 29,151, 13,183,182,164,198,131, 9,150,163, 69,140,208, 37,197, 4, 33, 0, 37, 41,169,
+ 36,253,186,204,182,233,221, 51, 41,147, 41, 30,103, 82, 86,181, 52,215, 68, 4, 32, 4, 98, 56, 1,160, 11,229,143,229, 69, 29,
+190,253,126,110,189,240,245, 77,219, 6,252,174,204, 37,235,196, 40,178,227, 2,150,102, 42,233,118,109,200,235, 29, 1,243, 91,
+138,183,212, 60, 9, 77,122,141,122, 79,170,143,237,122, 86, 62, 52,255, 0,204,208,248, 48, 47,238,118, 94, 91,232,241,251,190,
+177,149,149, 95,249,122,135,237,121, 6,247,128, 74,250,231,175, 49, 94,176,169,191, 93, 30,181,187, 91,232, 71,176,243,251,203,
+220,119, 3,247, 19, 88, 56,237,137,165,132,200,187, 92,214,217, 83, 81,219, 52, 60, 82, 40, 84,226,200,162, 18, 9,220,208, 29,
+110,139,209,237,234, 87,138,161,226, 79, 96,237,254, 3,154,198,235,221,110,174,151,142,109,179,143, 0, 57,147,217,252, 79, 32,
+190, 44,247,183,183,126,166,238,126,165, 59, 27,235, 27,213,140,181,142,231,119,139, 45,106,227, 26,198,182,212,216,181, 90,173,
+151, 43, 95,201, 50,148, 41, 74, 45,164,183, 46,137,104,252, 72, 74, 71, 50, 86,165, 83,214,176,242,241,191,109,147,141,142, 62,
+ 10, 96,207,218, 72,147,248,240,227,207,150,140,188, 99, 55, 15, 43,247, 88,185,121, 71,227,190,199,219,253,216,131, 22,240,227,
+195,144,227,171,174,182,255, 0,230, 12,202,173,184, 47,117, 61, 43,102,247,164, 56,229,158,205,118,190, 93,101,183, 25, 33,111,
+ 41,152,147,172, 50, 28, 13,164,144, 10,138, 82,104, 42, 42,117,203,250, 14,147,109, 25,112, 28,101, 24,143,120,152, 93,119,212,
+ 75,133, 57, 24, 83, 60, 35, 41, 19,236, 48, 41,215, 8,255, 0,230, 10,244,177, 27, 54,133,132,119,135,183,153, 70, 21,100,150,
+164, 34, 61,238,239, 22, 58,210,219,107, 95, 16,252,136,232, 88,121, 45,143, 18,208,112,251,142,169, 89,232, 28,143, 44,202,171,
+ 33, 50, 57, 3,247, 3,195,222,202,253, 95, 81,177,188,193, 11,107,178,176,121,145,247,145,197,188, 29,125, 16,198, 47,120,246,
+ 75,143,195,200,177, 73, 44,204,198,231,178,220,200, 51, 33,173, 46,176,251, 15, 32, 56,219,141,173, 4,165, 73, 82, 72, 32,131,
+ 66, 53,195, 78, 6, 4,196,134, 35,138,244, 24, 76, 78, 34, 81, 46, 14,160,169,250,138,146,205, 36,150,105, 36,179, 73, 37,154,
+ 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,
+146,205, 36,150,105, 36,179, 73, 37,243,203,243,157,237, 93,255, 0,184,221,243,237, 99,173,219, 39, 72,195,153,179,102, 17,110,
+ 55, 56, 56,204,220,161,168,111, 73,128,150,226,133,196,135,199,241, 22,247, 16,218,202,135,150,170, 57, 67,194,154,237, 61, 47,
+144, 43,166,221, 67,188, 88,110, 17,125,117,212,253,253,188, 57,172,236,216, 60,163,237,228,234,140,195,172,126,189,251,111,133,
+139,231,110,177, 28,147, 27,203, 19,138, 96,246, 28,149, 80, 33, 78, 93,213,155, 20, 59,132,246,228, 46, 42,148,203,142,166, 66,
+155, 76,119, 22,134,208, 92,101, 11, 34,128, 39, 90,214,207, 14,217, 52,231, 25, 13,211, 35, 80,206, 64,103,215,135, 30,226,171,
+196, 89, 17,160, 35, 64,157,251,111,115,252,193, 59,157,113,187,225,151,188,243, 62,135,133, 90, 49,124,170,253, 98,189, 64,182,
+ 92,237,146, 39, 75,183,150,223,183, 68,122, 69,226, 3, 79,200, 81,113,197,182, 84,148, 33,110, 4,241, 77, 41,170,183,199, 10,
+160, 36, 33, 89, 38, 81, 4, 56, 44, 15, 18,192,176,252,145, 34,108,150,142,120, 20, 3, 55,200,189, 92,247,162,219,101,133,223,
+166,179,249,153,171,115,123,103, 62,197, 99,143,100,156,222, 54,236, 20, 69,140,245,218,124,239, 34, 55, 15,153, 76,206,124,202,
+212,146,149, 18, 0,166,201, 53, 80,198,160,147, 87,150, 3, 88,229,198,231,213,128,215,131, 40,200,206, 95, 51,242,240, 81,178,
+ 14,239,254,106,214,102,178, 59,157,214,235,153,196,238,185, 23,134,175,120,244,123, 29,230, 84, 22,120, 63,230,194,145,107,113,
+168, 63, 32,195, 67,138, 16,149, 54,242,203,129, 84,167,197,187,195, 27,167, 75,104, 2, 6, 58, 49,112, 15,120, 58,185, 62,205,
+ 19, 25,219,175, 23, 93, 35,143,122, 89,239,139,189,226,207, 50, 87,110,141,101,249,188, 12, 71, 20,185, 91, 47, 29,200,197,237,
+247,105, 19,238,107,118,247, 44, 66,133, 36,152,140, 69, 44,175,203, 66,184, 54,170, 5, 32,168,108, 43,137, 62,161, 87,149, 0,
+219, 98,103, 32, 68,100, 67, 15,132, 57, 26,146,255, 0,197, 90, 21, 75,113,230, 88,113, 30, 43, 71,111, 59,193,223, 28, 27,187,
+216, 46, 72, 38,247, 6,237,233,225,166,237,237,247, 37,204,150,195,124,149, 37,140,138, 77,130,246,137, 17,218,141,242, 66, 81,
+104, 76, 16,249,134, 27, 83, 13,185,192, 36,142, 68, 23,191, 26,171, 42,152,106,197,154,237, 98, 62, 87,142,174,236,236,252,117,
+ 33,211, 70,114, 4,113,110,126, 44, 86,156, 63, 32,245,109,148,224,211,179,219,213,223, 47,137,147,227,214,126,222, 93, 44,208,
+ 3,114,163,183, 46,117,203, 41,184, 49,119, 76,184,171,102,178, 8,134,211, 65,198,214, 8, 66, 72, 36, 3, 66, 30,216, 99, 66,
+ 98, 32, 65,164,102, 15,112, 17, 12,199,150,174,197, 40,153,144,250,232,223,138, 77, 86, 81,223, 84,229, 86,108,250,237, 23, 54,
+159,221,249, 24,141,206,199,220, 9,242, 99,100,208, 98, 99,215, 41,121,189,139,230, 5,189,112,161,172,252,187, 76,178,226,138,
+ 32, 5, 41,108,128,174, 66,188,245,107,203,167,105,136, 48, 16,222, 12,126, 82,100, 4, 36,206,231,139,255, 0,123,129,247, 40,
+ 60,157,245,118,215,142,154,143,182,136, 62, 77,110,239,182, 77,137,100,217, 78,118,114,203,221,237, 88, 94,123,139,226,139,145,
+ 98,189,169,139,154,162,222, 83, 50, 4,105,177, 39,198,117,242, 23, 25,194,180, 38,105,171,129,180,133, 21, 20,144, 73, 92,169,
+140,163, 24,236, 3,124, 9,212,105,163, 18, 8, 45,199,179,131,168,145, 34, 9, 47,192,171, 3, 60,204, 61, 92, 56,219,204, 98,
+183, 60,225,142,236,189,114,188,196,238, 20, 83, 2,106,109, 54,171,114,178,102,152,180, 57,102,117,216,198, 39, 35, 21, 73,242,
+213, 25,110, 21,181,230, 41,218,144, 72,167, 77, 88,223,204, 33,181,134,221, 67,147,183, 93,218,191, 30,214,213,153, 18, 82,159,
+ 39,126,126,253, 25,116,247,165, 72,249,221,153,238,227, 97,185,140,203,173,194,201, 98,203,164, 91,177,121,153, 35,143,200,148,
+237,165,203, 21,178,112,227, 38, 64,230,243, 98, 83,239,165, 42,169,165, 10,107,240,208, 96,117, 19, 9,121,114,136, 0,152, 57,
+110,215, 35,135, 45, 0, 86,170,112,224,246,167,126,232,228,179, 49,124, 69,233,150,214, 36, 74,185,186,164, 50,212,123,115, 97,
+217, 75, 73, 85, 94, 44,160,169, 32,173, 45, 5,168, 84,210,163, 89,200,201, 11,183, 88,219,157,221,201,102,228,153,132, 36,198,
+194, 44, 50, 36,217,108,120,203,233, 74,208,215,225,121,111,201,146,146, 84,135, 30,121, 14, 40, 87,112, 27, 85, 1, 37,107,169,
+223,103, 14, 42, 44,233,197,188, 75,182,189,162,198,213,111,194,172, 16, 32, 38, 64,249, 88,208, 45,241, 99,177,243, 46, 44,113,
+ 74, 21,196, 10,131,227, 95, 13, 70,203,167, 97,121, 18,124, 82,140, 4,120, 6, 92, 5,234, 15,178, 94,153,109, 93,213,184,183,
+105,181, 73,184, 92,144,180,155,139, 81,230,165,155, 67, 87, 0, 74,159, 76, 72,233,105, 95, 0, 81,166,197, 59,131,174,171, 0,
+218,107, 27,136,246,241,252, 86,101,226, 59,139, 43,175,242,233,238, 62, 27,139,101, 83,187, 23,140,218, 88,180,192,184, 52,237,
+241,166, 98, 41,229, 36, 62,200, 67, 74,175,154,165,144, 92, 64, 36, 1, 65,240, 18, 5,107, 92,238,177,143, 45, 38,239,249, 35,
+226, 76,112,101,216, 26,193, 87,149, 23,235,191, 10,239, 78,121,219,203,125,143,181, 28,222,180,173,247, 5,246, 20,119, 3,110,
+190,217, 74, 75, 53, 36,128, 91, 74,130,185, 38,187,154,123, 53,231, 95, 81,250, 87, 81,234, 24,176,175, 15, 80, 73,222, 1, 98,
+ 70,141,197,180, 26,184,240, 94,143,244,219,170,244,222,159,149, 59,115, 52,144, 3, 97, 33,192, 58,191, 7,212,232,199,197, 46,
+122, 86,244, 67,110,193, 67, 57,167,113,144,153, 89, 86,203,105,146, 42,220,122,142,137, 7,169,246,171,236,208,189, 21,244,246,
+158,144, 5,215, 52,239,251,163,225,223,223,238, 70,245,191,212, 75,186,185, 52,208,240,163,239,151,143,119,119,189, 80,126,172,
+251, 83,145,246, 3,190,239,100, 86, 48,182, 44,147,228,170,245, 99,154,132,252, 40,112,185,230,173,160,119, 28,155, 89,233,236,
+167,183, 94, 67,235,142,141,127, 67,234,134,250,220, 70, 82,223, 9,118, 23,114, 60, 65,251,153,123, 7,161,122,205, 29,119,165,
+ 10, 44, 99, 40, 71,100,227,218, 25,129,240, 35,239,116, 59,189,182, 95,203,243,215, 90, 96,100,158,176, 49, 41,112,187,185,111,
+142,220, 21,100,120,242,222,105,114, 89,107,116,165,102, 58,210,162, 1, 38,129,105, 87, 26,236,117,236,158,146,255, 0,250, 3,
+246,116,236,183,117,114,230,195,116, 73,237, 28,199,219, 85,226,190,176,255, 0,249,220,103, 93,190,177, 27, 7, 34, 73,140,128,
+236, 60,139,125,130,131, 3, 34,244,225,233,223,181, 23, 14,197,250, 50,198, 92,176,226,247,131, 75,229,238,113, 42,157, 57, 28,
+120, 20,149, 45,110, 56,121, 39,225, 37,106,216, 84, 0, 43,174, 55,234, 39,214, 75,186,245,114,166,173,205, 32,198, 69,134,156,
+196, 64,224, 15, 51,197,118,191, 77,254,139, 83,233,249,198,235, 4, 94, 37,196, 98,231,226,228,101, 35,196,142, 67,130,181,125,
+ 17,122,119,188,230,152,174, 79,145,206, 63, 39, 26,245,108,155, 97,183, 72,113, 5, 92, 68,166, 20,210,158,227, 81, 84,242, 34,
+148, 59,208,235, 67,232,215, 67,158, 43,231,216, 62,102, 17, 28,200, 4, 18,124, 9, 0, 15, 2,168,125,105,235,176,203, 3,167,
+214,126, 87, 50, 60,129, 32,128, 60, 64, 36,159, 16,169, 14,197,254, 75, 63,152, 39,163,187, 61,197, 62,148,251,244,205,150,227,
+119, 93, 46,177, 28,182, 17, 9,244, 33, 60, 90,117, 40,116,200, 9,117, 53, 80,228, 19, 90, 83,125,125, 89,157,235, 12, 44,249,
+ 3,145,141,184, 14, 26,235,249,104,190, 71,192,244, 70,127, 78,137, 24,217, 91, 76,184,141,186,126,122,163,157,188,252,132,114,
+ 38, 59, 83,220,233, 29,211,207, 77,251,212,199,114,163, 42, 36,188,186,116,119, 30, 68,111, 58,115,115,228,171,130,221,243, 28,
+ 91,206, 55,241, 45, 74, 7,165, 0,222,160,191,214,251,174,171,101,123,106,168,184,136, 60,116, 97,203, 70,236, 86, 49,253, 3,
+182,139,188,203,119, 93,104, 99, 34, 56,106, 9,230,229,200,212,175, 87,223,200, 50,241,255, 0,130,221,183, 95,111,179,180,227,
+222,170,123,104,151,163, 65,203, 98,196, 95,202,207,142,110, 79,220,163,165,214, 11,133, 72, 83, 43,125, 65, 42, 4,212, 18, 8,
+ 34,148,106,253,109,253,107,188,202,247, 83,111, 24,191, 13, 0, 58,183, 54, 74,223, 64,255, 0, 70,159, 46,221,183, 85,160,144,
+ 26, 29, 73, 26, 63, 39, 86, 15, 96,253, 5,254, 99,140,119,242,197,221,207, 83, 61,242, 85,207, 30,176,161, 81,198, 59,141, 66,
+102, 28, 27,131, 42, 33, 74, 68,182,203, 72,105, 65, 74, 72,228,124,162,186, 15,133, 73,235,172,236,238,179,128,104,149, 84, 99,
+ 8,153,127, 52,139,145,225,207,239,110,229,167,211,250, 23, 81, 25, 17,183, 35, 40,200, 71,249, 98, 24, 31, 30, 95,115,247,132,
+229,232,223,242,217,201,189, 44,250,207,238,199,169,185,217, 35, 23,107, 39,114, 39, 78,185,199,182, 51, 17,113,215, 4, 76,185,
+187,112, 13,169,106,113, 97,124, 67,156,106, 0,173, 43,170,253, 95,175,140,220, 90,104, 16,111, 40, 0,239,197,128, 10,207, 69,
+244,217,192,204,191, 32,207,119,154, 73,102,102,114, 79,110,168, 23,119,255, 0, 41, 81,222, 47,204, 46,245,234,235, 48,190,199,
+153,218,252,142,202,238, 47,117,196,204,103, 16,250,163,191,103, 22,151, 8,146, 28,160, 52,170,133, 17,182,143, 71,170, 13, 56,
+ 17,198,132, 90, 81,144,144,147,246, 23,224,129,145,233, 33,127, 81,150, 84,228, 12, 37, 19, 19, 22,228, 98,220, 93, 83,253,186,
+252,159,127, 48,175, 74, 50,238,248, 7,163,206,254,155, 15, 98,239, 18, 87, 37,113, 37,193, 14, 76, 96, 57,240, 21,160, 20,173,
+176,239, 0, 1, 91,101,186,144, 13, 6,218,214,201,245,102, 14, 99, 79, 39, 27,117,128,113, 7, 67,253,158,245,141,139,232,222,
+161,130,240,197,202,219, 81, 60, 8,212,127,111,120,101, 35,211,255, 0,255, 0, 47,196, 76, 43, 29,238,119,111,251,207,154, 43,
+ 35,197, 59,129, 17,134,163, 78, 98, 41,102,227, 2,116, 73,106,152,196,210,183, 92,117, 43,112, 45, 95, 22,223, 21, 72,232,117,
+ 12,239, 93, 74,217,211, 58,235,218,107, 39,155,130, 8, 98, 57,104,137,211,254,158,194,152, 93, 93,182,111,141,160,106,204, 65,
+ 5,193,226,117, 80, 44,223,149,111,230, 85,217,254,217, 35,177, 24,175,168,152,182, 95, 78,144, 20, 11, 51,154,131,242,183, 56,
+145,131,222,104,109,185, 68,135, 27, 79, 46,128, 72, 3,195,166,218,149,158,165,233,247,219,231, 75, 23,117,167,189,193, 62, 31,
+216,161, 95,165,122,158, 61, 94, 76,115, 54,210, 59,152,129,227,203,222,172,255, 0, 86, 31,148,119,113,189, 72,102, 29,150,206,
+ 95,207,195,215,190,215, 33,132, 92,229,221,224,165,217,151,167, 26,158,204,213, 60,227,145,150,211,104, 82,188,162, 62,225,235,
+227,172,238,151,234,136, 98, 87,124, 5, 95,230,187, 49, 97, 29, 8,230,253,171, 83,171,250, 74,121,182,227,216,109,214,150,114,
+ 67,153, 49, 7,147,118, 46,234,183,176,184,208, 89,142,191,190,132, 37, 38,158,208, 41,174, 61,118,203,231,255, 0,231,131,235,
+111, 40,197,241,187,103,160, 15, 78, 37,115,253, 69,247, 64, 55,110,185,181, 1, 85,126, 13,154, 98,254, 95,201,168,160, 67,147,
+ 13, 81, 82,126, 22,130,212,105, 84,171, 93,215,163,186, 60, 37, 35,153,126,149, 85,168,126,100,127, 15,197,151,158,250,227,173,
+206, 49,142, 14, 62,182,219,161,110, 81, 58,127,241,125,193,251,151, 65,126, 91,222,139,113,127, 69, 62,156,173, 29,179,181, 4,
+189,146, 41, 63, 63,127,185, 4,241, 84,219,155,232, 79,158,246,251,132,138, 4, 32,120, 33, 34,181, 53, 39,157,235,189, 94,125,
+ 71, 38, 86,203,135, 0, 59, 7, 33,249,158,245,211,250,127,162,195,165,226,198,152,234,120,200,246,200,241, 63,144,238, 93, 8,
+163,196, 21, 30,131,125, 99,173,181,240,243,185,189,236,245,111,223,255, 0, 92,173,122,166,245, 59,233,203,184, 25, 47,111,177,
+133, 41, 24, 7,111,155,178,222,162,194,182, 37, 14,133,180,236,146,236, 23, 67,174,213, 33,199, 40,144, 22,224, 77,126, 4, 37,
+ 26,246, 10,177, 49, 49,176,191,111, 70, 85, 80,148,190,121,238,137, 39,184,106, 27,176,118, 14,242,235,196,110,204,205,202,207,
+ 25, 57, 24,118,206, 16,249, 33,182, 64, 14,194,126, 18,231,153,237, 61,193,144,223,204,175,215, 55,116,189, 65,119,115,176,249,
+ 22, 83,216,236,155,183,179,176,139,196,201,246,171, 78, 64,212,196, 72,200, 93,122,117,173,227, 30, 16,126, 19, 4,173, 38, 50,
+ 80,120,165,102,174, 39,110,149, 47,167, 58, 37, 56,180,100, 70, 25, 16,176, 78, 32, 18, 25,163,164,181, 58,158,222,238, 5, 11,
+213, 29,122,252,188,140,105, 79, 26,117,152, 72,144, 36, 11,203, 88,232, 30, 35,179,191,136, 95, 89,251, 18,222, 27,235, 3,180,
+248, 47,125,251,199,219,143,242,247,114,173,137,151, 46,213,106,202,161,165,203,189,133,231, 30, 84, 87, 60,181,202,101,167, 90,
+ 83,168,101, 11, 52, 74,106, 56,245,160, 58,242,220,193, 44, 59, 44,166,187,119, 64,176, 38, 39, 73,115,228, 72, 44,235,215,112,
+140,115,171,174,251,105,219, 48,228, 9, 15,138, 60,185,128, 67,183,224,169,159,207, 83,179, 29,179,201,127, 46, 12,207, 44,190,
+194, 97, 57, 14, 44,187, 93,210,197,112,113, 40, 14,198,146,237,218, 52, 21, 37,181,171,113,230,182,242,155, 34,187,212,120,129,
+173,175, 68,228, 78,190,163, 92, 98,116,147,130, 59, 67, 19,247, 51,172, 47, 94,226,215,111, 76,178, 82, 1,224,196, 30,194,224,
+125,224,178, 7,249, 73,250,173,193,251,119,232, 23,177,248, 79,119, 46,197, 61,192,203,100, 77,198, 49,155, 98, 65,118, 83,205,
+ 49,121,153, 30, 59,133, 21,170, 24,110, 59, 72, 5,197, 81, 35,100,141,200, 4,190,167,233,179,183, 63, 34, 85,143,134, 13, 34,
+121,107, 16, 79,180,147,193, 11,210,125, 86, 21,116,236, 88, 91, 47,142,111, 24,142,122, 74, 64,123, 0, 28, 87, 92, 98,254,161,
+ 59,115,155,119,118,253,217,124, 69,215,238, 25, 54, 46,211, 11,200,102, 71, 97, 70,223, 2, 76,148,165,214, 96,185, 36,209, 42,
+146,166,150, 29, 45,163,151, 20,238,190, 36,164, 30, 98,220, 43, 43,170, 54,201,128,151, 14,210, 7, 54,236,125, 31,220,186,186,
+179,235,182,233, 85, 23, 38, 31, 49,228, 9,228,253,173,171,114, 28, 81, 94,226,119, 79, 21,237,130,172, 45,100,223, 50,169, 25,
+ 45,222, 30, 45,105,102, 4, 71,229,184,228,233,169,113,196,115, 76,116,168,161,164, 54,210,220,113,197, 81, 40, 66, 74,148, 64,
+ 4,234, 24,248,210,187,118,214,248, 98,100, 92,182,131,243,228, 7, 50,137,147,151, 10, 54,238,127,138, 66, 33,131,234,127, 45,
+ 28,158, 65, 87, 16,125,122,118, 70,255, 0,101,179, 93,112,120, 57, 22, 73, 58,245,106,107, 43,110,211,143,227,151, 89,151, 24,
+150,105, 14, 45,184,243,102, 71, 67, 65, 76,162, 65,109,101,132,171,227,124, 2, 90, 74,192, 36,104, 75,162, 93, 19, 33, 51, 24,
+177,218,230, 64, 2,121,128,121,183, 62, 67,155, 44,216,245,250, 39, 24,152, 9,200,202, 59,152, 68,146, 34,120, 18, 27, 71,229,
+204,242, 5, 92, 81,238,214,233, 43,101,148, 58, 19, 46, 67, 66, 75, 81,222, 5,167,203,123,124, 69,151, 66, 92, 20,168, 4, 20,
+130, 14,199,125,100,152,144,182, 68,193,246,173,127,230, 44,127,130,220,249,232,254, 91,126, 80,113, 94,115,116, 73,124, 5, 53,
+200,215,110, 96,130,159,111,134,159,203,151, 97, 77,230, 71,180, 45,203,185, 91,154,152, 45,206,200,109, 55, 2,130,248, 97, 75,
+ 72,112,182, 13, 10,248,147, 94, 32,248,244,212,118,150,116,251,131,179,234,180, 55,146, 99,175, 41, 40,106,124,101, 45,106,105,
+180, 4,190,209, 42, 83,232,243, 90, 72,161,220,173, 31, 18, 71,136,220,106, 94, 92,187, 10, 97,108,123, 66, 64,201,125, 88,246,
+167, 19,238,155,157,159,188, 55,116, 25,123, 87, 60,127, 31, 90,154,181, 77,118, 47,204,100,241,229,200,183,184, 36, 33, 5,178,
+201,249, 39, 80,227,128,241,109,116, 10,165, 70,175, 87,210,237,157, 94, 96,109,173, 35,196, 63,194,207,167,110,161,135, 49,193,
+103,219,213,234,174,223, 40,238,220,241, 28, 11, 60,129,109,123, 52, 32,158, 71,138,179, 53,156,180,214,105, 36,179, 73, 37,154,
+ 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 74,188,245, 11,234,
+ 63, 19,244,221,107,181, 95,115,104, 82,228, 88,174,142, 92, 98,166, 84, 20,182,176,212,136, 22, 73,119,180, 52,164,169, 73, 81,
+ 83,232,134,182,154, 9, 6,174, 20,143, 29, 93,194,193,150, 73, 34, 36, 56,111,188,129,247, 59,158,228, 59, 45, 16,226,170,137,
+255, 0,154,111, 99, 45,246, 73, 57, 43,150,123,203,150, 22, 97,137,209,222,102, 51, 78, 57, 41,244,198,177, 74,126, 27, 76,161,
+101,210,251, 9,191,181,230, 32,164,113, 45, 59,253, 77,244, 71,167,238, 36, 7, 14,255, 0,171, 95, 3,180,183,136, 65,253,220,
+126,222,207,226,167, 73,252,203,187, 49,111,190, 34,217,115,181,221, 26,180,204,186, 53,102,179,221, 80,136,239, 69,184, 50,114,
+ 11,141,130, 76,230, 75, 78, 21,124,188,115,108,118, 67,138,165,124,146, 20, 7, 80, 32, 58, 21,164, 56, 33,192,114, 59, 62, 16,
+ 64,241, 46, 7,138,127,221, 71,237,226,202,118, 77,234,231, 49,188, 89,187, 51,155,118,123, 28,114,231,103,238,101,198,123, 31,
+201,102, 57, 22, 60,199,160, 53,142,220, 46,177,157,106, 67,174,134, 27, 10, 49,155,120,146, 85, 86,234, 0, 42, 32,106, 21,244,
+216,196,221, 27, 36,198,176, 53,228,251,128, 58,113,230,222, 41,205,199,225, 32,113,254, 10,171,176,126,110,118, 31,230,153, 18,
+239,152,236,149,182,153,171, 69,142,208,227,176,173,239,197,141,108,198,237,115,174,172, 73,149, 41,239, 37,233, 41,184, 78, 45,
+ 52,134,190,248,161,216, 10,157, 25,250,108,180, 90, 67,134,167, 83,198, 82, 1,135, 16, 24, 57,116, 33,152, 53,211,236,193, 57,
+ 55,249,159,225,107,199,218,206,156,194,111,141,246,234,227, 42,253,101,199,238, 43,118,216, 36, 92,174,150, 39,254, 95,229,147,
+ 19,207,243, 26, 15,174,169,109, 78,241,162,129, 10, 9, 20, 81,171,254,129, 61,219,119,199,112, 0,145,174,128,243,118,213,187,
+148,255, 0,116, 56,177,100, 2,249,249,157, 94,187, 83,220, 92,215, 7,239, 46, 30,228,107,245,150,106,156,183,217, 33,220, 45,
+129,230, 45,145, 49,219, 77,206, 66, 85, 41,215,210,212,169, 78,189,113, 5,150,154, 2,169,216,144, 83, 82,104,116, 17,116, 33,
+ 42,231,161, 26,150, 60, 76,164, 56, 54,128, 54,164,168,156,173,164,130, 62,204, 21,141,108,245,221,101,190,246,242,243,220,235,
+ 30, 25,121,123, 20,135,125,255, 0, 35,216, 30,117,219, 83, 74,191, 94,220,200, 6, 56,203, 17,155, 50, 75,173, 33,114, 20,146,
+ 87, 33, 8,226,154,236,104, 43, 74, 93, 32,198, 98, 6, 97,204,119, 30, 58, 13,187,181,211,179,177,209, 6, 67,135,110,109,247,
+178, 94,151,249,149, 89, 96, 93,178,140,102, 87,111,111,202,202,112,150, 26,119, 43,140,196,139, 42,154,133, 34, 77,210, 69,162,
+ 44,100, 56,228,180, 23,149, 33,230, 80, 91, 40, 73, 79, 23, 1, 89, 69, 8,209,135, 66, 36, 68,249,145,105,240,227,174,128,147,
+195, 70, 28,124, 20,127,117,199, 67,162,182,251, 33,222,249,189,218,185,229,120,197,255, 0, 30,145,141,102,152,117,194, 53,154,
+241,111,149, 38, 44,196,121,178,237,113,239, 12,173,167,226, 41, 73, 82, 75, 18,155,175, 66, 13, 71,134,179,114,241, 5, 34, 50,
+ 18,220, 36, 28, 29, 71, 2, 71, 62,240,141, 93,155,159, 70,101, 15,212,150, 96,238, 21,103,133,115, 73, 92,102, 31, 76,136, 43,
+185, 2,176,220, 98,234,153, 85, 20,164,236,146,176,130,144,163, 74,110, 1,169,212, 49, 34, 37, 61, 83,216, 88, 42,107,181, 61,
+235, 70, 45,100,157,148,228, 83, 46, 45, 99,247,233, 6, 85,138, 5,171,229,208,227,241,155,108, 48,101,190,185, 73, 43, 72,121,
+ 73,170, 56, 83,110,181, 53,165,235, 48,205,242,120,232,130, 45,216, 53, 90,115,223, 80, 70,251,103,144,206, 4,101,217,242,159,
+ 37,104,137,118,186,220, 28,152, 67,138, 79, 14, 60, 93, 10, 8, 43, 73, 40,170, 72,251,213,251,193, 36, 56,233,222, 83, 72,252,
+ 77,201, 49,191,118,131, 69,207, 22,222,221,119,143, 32,201,158,195,236,184,164,227,146, 69, 89,102,115, 15, 39,145, 97,193,178,
+129,249,127, 50,180, 62, 42, 41, 7,173,117,190,114, 96, 34, 36, 72, 0,170, 62, 89,118, 93,121,232,127,210,221,239,179, 48,110,
+ 25,223,113,144, 7,113,110,164,178,150,127, 12,252,180, 96, 65,160,242,202,128, 42,160, 20,169,160, 27,238, 78,185,238,165,154,
+ 45,104,196,233,249,171,216,244,237,212,241, 93, 3,172,149,105,101, 43,177,233,164,146,205, 36,144, 30,227,118,207, 11,238,182,
+ 54,238, 41,156,193,110,109,165,221,192, 88,162,219, 85, 40, 22,218,197, 20,149, 15,104, 53,214,127, 83,233, 88,253, 66,163, 85,
+240, 19,137,237,252, 65,226, 15,120, 90, 29, 47,170,228,116,235,133,212, 76,194, 99,152,252, 8,224, 71,113, 92,211,150,254, 87,
+246,199,231, 41,236, 51, 35,114, 52, 5, 18, 82,204,198, 18,250,146, 61,129,105, 91,127,164,107,202,115,126,141, 99, 78, 79, 77,
+242,128,236, 49, 18,251,222, 43,214,176,190,180,100,215, 22,186,136,204,246,137, 24,253,205, 36, 87,182,255, 0,150,206, 33,143,
+220, 90,184,230,247, 5,221,139, 74, 11, 12,113, 13, 50,162, 13,126, 36, 2, 73,250, 9,166,180,186, 55,210,108, 12, 73,137,221,
+ 35,113, 28,142,145,246,128,239,237, 44,178,250,215,213,204,252,184, 24, 83, 17, 72, 60,198,178,246, 18,205,236, 14,186, 74,193,
+143, 90,113,155, 99,118,139, 51, 41, 98, 11, 73, 8, 66, 16, 0, 20, 2,131, 97,175, 82,132, 4, 0, 0, 48, 11,202,231, 51, 50,
+ 73, 46, 74,155,169, 40,172,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,149, 5,234,219,182,126,168,114,174,228, 98, 19,251,
+ 9,144,202,182,118,254,236,164,227,189,193,101,153,166, 58,224, 91, 89,156,205,225, 55, 27,120,168, 41,148,227,113,223,183,169,
+ 72,170,169, 37, 43,232,213, 70,215, 77,201,198,174,185,249,177, 6, 67, 88,105,196,177, 12,123,181, 18,255, 0,194, 71, 53,133,
+213,113,114,172,182,191, 38,100, 64,233, 61, 89,131,137,110, 29,229,140,116,254,240, 60,151, 57, 79,236,247,230,163,117,186,230,
+ 76, 92,242, 91,251, 50,230, 92,225, 54,217,182, 76,182,198,129, 46,220,238,115, 2, 90,164, 90, 37,255, 0, 56, 83,209, 12, 91,
+ 27,111,182,182,204, 8,254, 96, 81, 73,243, 92,162,149,184, 51,122,108, 68, 26, 17,208, 30, 32,146, 15,151, 32,210, 27, 24,188,
+216,131,186, 77,220, 23, 62,112, 58,172,141,143, 57,107, 33,192,128, 8,243, 34, 94, 39,123,134,131,130, 54, 69,251,207, 19,221,
+244,236,135,173, 43,158, 65,220,126,223,224, 76,228,215,190,218, 92,108, 48, 99,227, 55, 28,131, 34,134,150,218,159, 1,235, 99,
+173,199,132,133, 92,157, 83,233,119,200,125, 79, 59, 54, 51, 14,215,154, 75,175, 33,192, 18, 12, 44,236, 72,198,169,207,100,102,
+ 36,119, 1, 19,192,238,212,252, 58, 51,134, 17, 36,112,210, 36,106,124,254,159,155, 41, 93, 10,196,229, 3, 17,180,153, 14, 35,
+110,131,226, 46,236, 92,200, 68,241,214, 64,233,179,188, 24, 55,230, 75, 55, 54,207,215,219,169, 23,180,203,155, 11, 52, 77,150,
+226,213,238,214,205,141,232, 18,177,119, 99, 99, 48,109,112,213, 33, 15,197,185, 49,116, 44,184,236,135, 90,109, 63, 10,207,156,
+164,168, 37, 45,137,145,211,196, 43,222, 35,161,131,141,167,115,137, 13,230, 69,152,196,197,192, 0,158, 90, 41,102,227,117, 41,
+ 89,111,150,101,168,177,142,225,181,140, 8,128,136,119, 18, 18, 98, 73, 0,113,248,139,171, 95,211,213,183,213,119,102, 49, 78,
+232, 51,149,195,187,102,191, 34,236,123,159,109,237,247,187,196, 25, 19,174, 69,120,196, 39,101, 68,249,233, 47, 15, 41, 6,239,
+243, 8, 73,144,160, 16, 55, 77, 81,198,185,185,182, 99,100, 78,173,164, 65,193, 19, 32, 22, 31, 17, 98,192,107,240,183, 14, 62,
+ 43, 83, 2,188,172,104, 93,184, 74,108, 65,128, 50, 4,159,130, 46, 28,157, 62, 55, 26,240,229,163, 47,153,152,119,165,223,206,
+187, 9,245, 97,123,245,149, 47,181,144, 47,189,243,188,185, 41,213,203,200, 46,120,244,182, 33,153, 52, 65, 17, 91,110,234,216,
+ 64, 67, 32, 50,141,207, 22,254, 17,175, 68,200,234,189, 22,220, 88,226,249,198, 53,197,180, 2, 65,219,183,225,237,212,247,175,
+ 51,197,233, 29,122,156,201,101,249, 17,149,146,125,101, 40, 22,126,207,140, 54,154, 14,237, 23, 76,224, 93,250,255, 0,230, 20,
+190,229, 48,113,236,191,183, 88,197,143, 22,150,179, 22, 85,221, 6,208,231,200,161,196, 20, 9, 28, 25,187, 72, 90,131,106, 33,
+ 68, 37,165,147, 79,186,122,107,157,191, 27,160, 66, 4,194,217,200,142, 3,226,215,187,229, 31,136, 93, 54, 62, 95,169, 39, 49,
+ 25,213, 8,196,241, 47, 29, 59,254,115,195,192,167, 47,201,227, 6,252,207, 48,108,175, 58, 71,174,187,165,206,110, 41, 45,214,
+ 77,154, 62, 75,116,106,237, 36, 77, 75,139, 50, 29,136,227,110,189,229, 70, 40, 41, 1, 1, 65, 53,167, 20,141,235, 83,213,153,
+ 61, 54,209, 95,237, 0, 4,113, 96,193,185, 63, 7, 63, 98, 85,207, 70,226,245, 74, 77,191,189,145, 32,157, 28,238, 47,204,141,
+ 75, 14,239,112, 93,228,187,101,189,197, 21,184,202, 74,143, 82, 70,184,197,221, 46, 20,252,223, 61, 30,119,239,212, 79,125, 61,
+ 59,102,157,141,198,191,156, 98,248, 69,246,117,199, 43,146,220,203,116, 79,146,142,245,194,206,251,107, 40,154,251, 75,114,168,
+138,233,163, 73, 81, 28,122, 84,138,246, 94,151,234,216,248,152,249, 80,182, 76,108,136, 17,208,151, 45, 46,192, 91,136,226,184,
+111, 87,116,124,156,220,156, 73,211, 29,209,174,100,203, 80, 24, 60, 15, 50, 31,129,224,234,192,252,193, 99,126,100,184,204, 76,
+ 27, 58,252,191, 19,107,152,205,144,206, 57, 94, 47,116, 83, 9, 93,223,230, 18,210, 99,164,137,106,101,162,219, 97, 43, 39,139,
+237,185, 82, 40, 72,168,213, 14,128,122,113, 19,134,102,225,185,182,200,114,226,252, 28,235,224, 66,209,245, 24,234, 96,215, 60,
+ 29,167,107,238,137,111,137,217,184,176, 97,175, 48, 87, 34,247,251, 6,252,232,127, 52, 27,109,171,177, 29,238,195,172,253,173,
+236, 91,115, 88,157,123,145, 17,198,201,148,227, 6,169, 83,141,137,146,228, 59,229,130, 84,219,105, 8, 65, 93, 10,149, 80, 10,
+122,172, 44,190,143,209,137,182,153,202,219, 25,135,119,220, 0,239, 58,150,224, 23, 33,159,133,215, 58,224,141, 55, 66, 52,212,
+238, 75,241,251,201, 61,195, 64,252, 79,103,101,100,126,141,229,118,231,180, 61,145,237, 87,103, 45,134, 85,147, 1,202, 44, 51,
+110, 46,169,216,237, 60,221,174,221,110,154,195,178, 92, 46,169, 5,197, 23, 95, 10, 82, 81, 85, 21, 44,144,154, 87, 92,133, 93,
+ 83,205,179, 34,203, 78,182, 66, 77,226, 72,211,220, 62,229,218,221,210, 60,170,177,170,164, 60,106,156, 95,135, 0, 8,126,253,
+ 79,222,171,222,196,250, 88,245, 1,217,255, 0, 81,240,103,217,109,183,168, 45, 43, 49,203,178,204,207, 49,145,145, 34, 78, 61,
+144,216,111,139,159, 38, 20, 54,172,198,107,142, 34, 91,110,200,139,205, 74,136,218, 80,166,150,164,184,190,116, 55,243,186,157,
+ 23,227,144, 76, 79,244,225, 24,199,107, 74, 50,142,208, 78,230,225,161,254, 98,238, 52, 12,179,176, 58, 86, 70, 62, 72, 32, 72,
+127, 82,114,148,183, 60,101, 25,110, 32,109,221,243, 2, 99,252,161,152,234, 93,118,212,235, 53,170,240, 34,185,119,140,220,135,
+ 97,186,137,177, 75,200, 74,203, 50, 16,146,132,184,138,244, 80, 10, 34,163,192,157,114,145,153,139,177,226,187, 25, 64, 73,156,
+ 59,106,185,179, 58,237, 63,121, 59, 45,220,174,225,205,236,182, 25,112,191,118,251,184,118,123, 28, 59, 92,140, 30,233, 98,179,
+221, 49,187,149,138, 3,150,182,217, 41,189,201,134,215,201,169,160,202,208,182, 84,181,161, 69,193,229,144, 65,215, 67, 78, 85,
+ 57, 21,214, 45,152,140,171,148,159,112,145, 18, 18, 47,252,160,235,199,139, 3,166,171,153,191, 18,236,107,109, 53, 86,101, 27,
+ 35, 22,218, 99, 19, 19, 16,223,204, 64,218,205,193,200,215, 69, 80,200,244,183,235, 94,235,222,222,217,119, 7,184, 56,239,243,
+ 44,215, 18,145,219,137, 23, 92,190,196, 48,166,254,125,152, 86,136,240,114,117,220,174,115,148,221,249,217, 31, 52,185, 28, 25,
+ 99,132,101,199,220,243,117, 92, 53,172, 58,158, 28,105,182, 16,147, 70, 98,198,137,223,163,146, 96,192,124, 0, 51,106, 94, 66,
+ 93,131, 85,142,122, 86,116,175,166,115,139,202, 6,167,144,217,171, 0, 39,186, 71,227, 37,221,128,104,152,246,157, 22,190,213,
+126, 89, 14, 91,240, 28, 2,205,158,118,174,198,187,180, 30,205,228, 24,174, 80,137, 12, 88, 31, 81,205,223,122,215,252,188,186,
+180,173, 65,217, 9,109, 51, 2, 36,130,164,160, 21, 15, 49, 60,133, 86, 87,168,222,203, 12, 45,147, 27,227, 40,252,223, 39,196,
+254, 3,229,211,159,102,137,177, 61, 46,213,212, 39, 76, 92, 99,202, 50,249,127,204,248, 91,196,252,205, 46, 90,235,170,135,217,
+255, 0, 64,221,247,110,251,110,119,191,118, 60,134,225,220,214,101,218,114, 72,121,229,162,127,111,214,196,116, 65,177, 71,105,
+ 22,153,211,103, 52,230, 67,197, 14, 52,168, 78,181, 25,213, 48,235,106, 82,130,211,201, 90,158, 95, 92,163,105,242,101, 17, 6,
+ 35,105, 22,115,145,248,128, 31, 7,253,224, 72,112,116,109, 16,240,253, 63,145,184,121,209,153,155,137,111, 6,189, 26, 35,225,
+ 36,143, 51,150,210, 1,218, 70,175,170, 31,221,143,203,187,188, 42,244,157,219,110,205,118,227,182, 86,216,121,108,126,220, 57,
+106,200,110, 88,252, 44, 17, 87,168,217,226,173,112,155, 65,184, 92,239,229, 74, 68, 79,152,109,107, 92,139,106,151, 39,204, 66,
+ 74, 22,132,132,171, 68,197,235,245,126,234,219,103,105, 35,205,112, 9,155, 24, 57,224, 35,205,185, 73,162,199, 80, 84, 50,253,
+ 57,119,237, 42,170,186, 64,144,169,137, 2,189,194,198, 28,101, 46, 79,196,193,228,227, 66, 56,174,247,196, 48,219, 51,182,123,
+ 86, 69,145,217, 35,179,158,148, 68,185,206,126, 83, 17, 28,154,221,205, 54,209,111, 91,174, 62,201,112, 41,228,178, 84,193,113,
+ 43, 87,193, 84,133, 20,235,135,182,226,230, 49,145,219,168,230,204,239,195,177,245,110,213,223,211, 76, 90, 50,148, 70,237, 9,
+224,238,205,199,181,180,119,225,220,153, 53, 93, 89, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75,
+ 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 37,158,233,246,127,183,221,232,179, 91,241,254,227,192, 23, 11, 69,
+178,231,110,200,226, 50,165, 45, 33, 51,173,114, 83, 42, 58,207, 2, 57, 36, 45, 52, 82, 78,202, 4,130, 40,116,124,124,153,208,
+ 73,129, 98, 65, 30,195,197, 70,112, 18,226,149,109,254,141,125, 58, 91,101,218,229,199,199,155, 81,179, 94,239,121,132, 6,157,
+113,215, 26, 69,203, 32,105,214, 39, 44,182,181, 20,169, 10, 67,196, 37, 4,113, 69, 19,196, 14, 35, 86,101,213, 47, 32,252, 92,
+ 98, 35,236,143, 5, 1, 76,123, 57,191,189, 68,111,208,223,166,134,241,171, 30, 39,254, 95,229,102,199,113,251,190, 11,107, 75,
+146, 36, 45,104,180, 95, 16,148, 77,109, 75, 82,138,148,181,132,236,181, 30, 73, 42, 85, 8,169,212,191,213,175,221, 41,110,214,
+ 82, 18, 62, 35,130,111, 34, 44, 3,112, 12,183, 95,189, 26,246, 98,251, 18,209, 13, 42,188, 91,145,143,174, 35,150, 21,217,175,
+183,107,123,150,211, 10,204,171, 3, 98, 34,226, 60,133, 52,147, 13,106, 66,194, 8, 11,169, 42,169, 39, 77, 14,167,108, 73,224,
+119, 59,184, 5,220,238,213,199,106, 70,136,159,103,253,136, 93,175,242,255, 0,244,205,142, 56,153,120, 93,182,225,143,222, 80,
+164,169,171,166, 61,124,188, 91,103,182,143,229,145,109, 14, 54, 37,196,144,135,138, 29, 98, 27, 37,192,165, 30,110, 36, 56,127,
+ 19,226,212,229,214,111,151,204, 68,135, 97, 0,142, 36,240, 35,145, 37,187,180,224,152, 99,196,112,209, 77,149,232,111,211,108,
+236, 38, 47,110,231, 89, 94,127, 17,135, 42,249,115,143, 25,235,132,247, 22,153, 57, 17,116,206,115,207, 91,165,226,162,167, 84,
+164, 40,175,146, 21, 66,146, 8, 7, 81, 29, 90,241, 51, 48,117, 32, 14, 3,249,120, 39,242, 34,205,246,213, 70,143,232, 63,176,
+208,238,114,114, 56, 78,228, 76,102,147, 93,122, 68,220,133,140,175, 35,106,239, 32, 73,135, 22, 11,237, 59, 57,185, 97,245, 54,
+182,225, 49,240, 21, 81, 37, 9, 41,226, 64,212,143, 87,184,128, 62, 22, 28,182,197,184,147,193,155,153,247,166,253,188,123,253,
+229, 79, 71,162,222,193, 35, 22,155,132,136, 51,191,202,211,156,153, 45,200,127,205,238,128, 55, 46,109,233, 57, 10,165,180,160,
+240, 90, 36, 55, 53, 33,198,221, 74,185,162,148, 6,149, 26,135,250,165,219,132,156, 56,110, 67,128, 27, 91,135, 6,226, 19,249,
+ 17,102,251,118,161,119, 47, 66,253,148,131,133,102, 22, 76, 58,220, 14, 79,152, 90,191,147, 93, 39,228, 83, 46,215, 49, 49,198,
+231,201,186,181, 34, 98,254,105,169, 75,116, 75,148,181,151, 16,242, 86, 62, 16,149, 0,148,128, 72,245,107, 76,224,100,116,137,
+112,192, 6,208, 6, 26, 55, 1,193,153, 49,162, 44, 91,154, 39,233, 75,211,125,223,211,221,171, 38,149,149,223,220,200,179,108,
+182,234,155,237,206,107,139,184, 56,134,203, 54,248,246,198, 90, 67,151, 89, 83, 37, 47,139, 81,210, 74,156,120,238,104,144,148,
+132,164, 15,168,231, 12,131, 29,177,219, 24,134, 28, 59, 73,228, 0,231,216,158,154,182, 59,151,117,104, 92,173,118,235,196, 69,
+ 64,186,176,137, 16,151,247,155,121, 33, 73, 62,250, 31, 29, 80,140,140, 75,132, 82, 29,115,111,125,189, 35,247, 5,236,176,223,
+ 59, 60, 89,145,141,201, 72,173,170, 87, 0, 96,173, 63,120, 50,183, 30,104,121, 74, 63, 16, 73,169, 4,154,109, 74,108, 98,117,
+ 8,198, 45, 34,202,181,180,146,116, 66,123, 95,232,167,184,151,156,177,137,221,227,242,163,227, 17, 20, 31, 76, 88,165,170,184,
+161,208,126, 27,175, 30, 95,218, 42, 20, 29, 5,119, 4,191,169, 68, 71,225, 46, 84, 97, 65,125, 87, 85, 67,133, 14,223, 29, 17,
+ 32,182,150,163, 33, 41, 66, 16,128, 0, 9, 74, 66, 82, 62,160, 41,172, 34, 73,226,174, 50,219,166, 73,102,146, 75,231, 46, 63,
+249,187,122,158,185,249,159, 59, 96,198, 83,197, 37, 73,242,225,221, 5,104, 43,227, 60,235,197,170,250,143,155, 63,229,175,221,
+ 47,212,131, 57,144,180,221,127, 55,239, 84, 13,217,127,152, 90,241,252,100,201, 73, 1, 65,232, 87, 85, 39,236, 76,240,127, 78,
+166,126,162,230, 3,242,215,238,151,234, 79,188,173, 80, 63, 55,127, 87, 55, 8,168,125,172,119, 22,230,170, 2, 62, 70,239,250,
+ 63,248,142,133, 63,169, 89,145,254, 90,253,210,253, 73, 70, 68,162, 81,255, 0, 53,159, 87,101,250, 72,199, 49,159,151,240, 40,
+133,118, 7,167,190,224,117, 84,253, 82,204,254,229,126,233,126,164, 64,232,196, 79,205, 51,212,106,156,109,169,150, 60,121, 43,
+ 80,170,169, 14,230, 62,138, 86,105,208, 39,245, 83, 60,127, 37, 94,233,126,180,218,169,183, 95,205, 3,191,182,242, 11,118, 91,
+ 10,155, 62,216,183, 26,236,105,225, 51, 67,135,213,110,163, 47,228,171,221, 47,214,164, 10,214,159,205, 15,212, 2,225,153, 73,
+179, 88, 43, 83,196,124,165,203,244,255, 0, 27,162, 15,170,125, 69,219,101, 94,233,126,180,150,184,255, 0,154, 31,169, 7,149,
+229,155, 5,128,184,122,113,135,114,255, 0,251,221, 41,253, 85,207,143,242, 85,238,151,235, 73, 23,133,249,139,250,155,144,217,
+113,220,126,196, 18, 0, 87,195, 14,228, 63, 92,211,160, 31,171, 89,238,219, 41,247, 75,245,169, 70, 46, 20,156,107,243, 12,245,
+ 41,120, 83,142, 75,176,216,209, 21,181,240, 42, 68, 75,136, 52,229, 79,218,152,116,174,250,179,212, 34,205, 10,125,210,253,106,
+117,213,184,169,240,255, 0, 48, 46,253, 79,121, 41, 98,209,100, 13, 82,171, 81,141, 60,211,236,151,164, 62,171,245, 34, 88, 87,
+ 81, 63,240,203,245,171, 7, 20, 33, 23,207,204,127,212, 29,154,236,237,189,118,156,124,182,157,144, 76, 91,141,107, 90,111,252,
+102,141, 71,213, 62,163,103,242, 85,238,151,235, 66,149, 12,129,187,249,154,250,170, 68,192,215,242,108, 99,229,137, 52, 38, 21,
+215,149, 60, 63,246,253, 91, 31, 84, 51, 27, 88, 87,238,151,234, 66, 48, 71,237,127,152,111,168,169,240, 85, 57,251,126, 50,130,
+145,208, 66,185,117,167,254,253,172,252,159,171,121,213,159,134,186,253,210,253,105,196, 7, 52, 58, 71,230, 91,234, 29,190, 78,
+ 34,217,141, 20, 32,241, 36,195,185,125, 31,253,251, 76, 62,173,103,145,254, 93, 94,233,126,180,132, 66,158,159,204,111,191,207,
+ 33, 14,179,106,199,150,159,218,164, 75,143, 74, 87,111,227,117, 40,253, 88,234, 18,255, 0,167, 87,186, 95,173, 64,179,168, 25,
+ 15,230,133,222,187, 26, 18,143,229, 22, 19, 36,141,210, 98,220, 41,211,221, 48,104,227,234,135, 82, 63,201, 87,186, 95,173, 49,
+ 75,147,127, 55, 14,250,166, 90, 97,194,177, 99,190,122,129, 63,137, 18,226,124, 61,211, 70,141,254,229,245, 22,125,149,123,165,
+250,211, 2,165, 65,252,214,251,252,227, 11, 84,171, 6, 60, 31, 29, 56, 68,184,129,250,102,147,161,127,186, 29, 67,251,149,123,
+165,250,212,128, 90, 46,191,155, 31,168,168,173, 3,108,177, 99,102, 81, 52, 33,112,238,100, 83,253,153,195, 69,143,212,236,254,
+112,171,221, 47,214,162, 65, 81,162,126,107,126,174,222, 99,230, 28,199,113,143, 47,246,105, 6,237,191,219,112,212,101,245, 75,
+ 55,148, 42,247, 75,245, 41,109, 41,135, 31,252,208,253, 65, 92, 35,242,187,217,113,244,189,236,110, 29,200, 10,255, 0,181, 52,
+234,142, 71,213,142,165, 14, 21,213,238,151,235, 68,141, 96,135, 40,244, 31,204,159,187,146,225,115,114,217,100, 18, 9,160, 31,
+ 43, 63,143,217,243,122,174,126,174,245, 63,252,186,125,211,253,104,158, 92, 89, 25,123,243, 7,206,161, 65, 68,135, 96, 89,211,
+ 49, 95,120, 8,242,192,255, 0,245, 53,253, 58, 20,126,175,245, 82,127,203,167,252, 51,253,105,121,112,239, 81, 99,254, 98, 61,
+216,185, 7, 4, 8, 54, 62,104, 21, 72, 92,105,198,166,190,233, 99, 69,255, 0,119, 58,160,227, 85, 94,233,254,181, 63, 34, 39,
+130, 84,185,254,100,254,170, 34, 42, 66,162,216,177,183, 80,201, 88, 74,132, 11,169,217, 29, 73,164,239, 15, 29,108,226,125, 79,
+206,184, 57,174,191,116,191, 82, 9,164,190,156, 20,120,191,154, 31,169,119,203, 73, 85,151, 27,243, 86,160,149, 36, 67,185,248,
+164, 40,211,248,253, 18,223,169,153,177, 26, 66,191,116,191, 82,128,129, 76,150,207,204,135,189,171, 83,137,187, 91, 44, 77,169,
+ 9, 10, 1,184,215, 1,191,251, 83, 14,179,109,250,171,212,128,210,186,189,210,253,105,128, 76,120,207,175, 30,237,100, 22,183,
+167,166, 13,148, 45,170,236,152,243,105,183,211, 43, 84, 44,250,193,212,225,198,186,127,195, 63,214,165,180, 47,199,253,122,119,
+102, 27, 2, 68,155,125,156,182,118,170, 99,205,254,153, 90,171, 47,173, 61, 76, 22,242,233,255, 0, 12,255, 0, 90, 32,174, 40,
+ 92,207,204, 55,188,173,188,132,197,183,216,212,202,235,186,163, 79, 39,165,124, 37,234,205,127, 88,250,148,134,181,213,238,159,
+235, 81,242,194, 29,145,254,100, 61,243,180, 50, 36, 69,182,216, 20,215,237,121,145,110, 7,245, 76, 26,181, 71,213,206,161, 51,
+173,117,123,165,250,211,121, 97, 13,183,126,105, 61,225,185,173,108,181,108,176,165,212, 3, 94, 81,167,210,191,254,115, 87,127,
+221, 46,161,253,202,189,210,253,105,140, 16,135,127, 53, 63, 81,233,184, 57, 25,187, 70, 52,166, 82,118,254, 18,231,202,149,255,
+ 0,223,181, 33,245, 71, 63,251,149,123,165,250,211, 8, 58,144,159,205, 31,212,131,197,191, 42,207,141,132,168,144,162,168,151,
+ 63, 15,255, 0, 29,165,254,232,231,255, 0,114,175,116,191, 90, 91, 10,203,239,230,143,234, 62,214,105, 30,207,142, 56,125,241,
+ 46,103,195,221, 56,106, 31,238,143, 81,254,229, 94,233,126,180,230, 0, 47,199,255, 0, 52,159, 82, 95, 34,212,136,246, 76,119,
+205, 81,163,156,162, 92,200, 30, 59, 82,112,210,255, 0,116,122,139,235, 10,191,195, 47,214,163, 32,200,153,252,208, 59,208,213,
+184,202,126,217, 97, 75,225, 60,136,249,107,133, 43,255, 0,231, 52, 57,253, 85,234, 35,254,157, 94,233,126,180,128, 90,113,159,
+205, 51,188,183,103,146,212,251,101,129, 33, 70,137, 45, 70,184, 15,254,180,195,160,207,234,199, 82,229, 93, 95,225,159,235, 82,
+ 17,143, 52,114,251,249,144,119,122,210,210, 95,110,223, 99, 83, 52, 5, 85,141, 62,180, 39,221, 47, 64,255, 0,119, 58,167,254,
+ 85, 95,225,159,235, 77,240,160,115,255, 0, 53, 30,239, 70,105, 78, 51,109,176,146, 5, 82, 21, 26,224,127, 84,193,169, 15,171,
+ 93, 83,255, 0, 46,175,240,207,245,164, 54,161,209, 63, 53,254,250,186,190, 79,218,113,224,198,244,164, 91,136, 59,125, 51,117,
+108,125, 84,234, 95,249,117,123,165,250,212, 75, 34, 22,159,205, 7,191,183, 69,184,164, 89,108, 38, 58,126,234,147, 22,227,244,
+239,252,102,165, 47,170,153,241, 26,194,175,116,191, 90, 76, 74,253,147,249,152,250,153,104,169,230,172, 24,250,162, 36,138,159,
+148,185, 86,135,255, 0,198,234, 7,234,206,112,254, 90,189,210,253,106, 91, 10,241, 7,243, 65,245, 13, 48,184, 6, 63, 99,248,
+ 83,201, 39,229,110, 52, 39,255, 0,206,104,176,250,167,158,127,150,175,116,191, 90,139, 20, 45,191,205,103,212,171, 83,147, 18,
+125,131, 30, 64, 89,160,164, 75,152, 61,125,243,181, 41,125, 81,234, 0, 56,133, 94,233,126,181, 33, 2, 83, 53,163,243, 37,245,
+ 5,113,228,181, 89,172, 33,164,210,188, 98,220,107,250,102,106,145,250,181,212, 71,253, 58,189,210,253,104,166,144, 2,252,202,
+ 63, 51,174,239, 99,176,154,116,218,236,134, 83,132, 14, 42,143, 62,155,154,120, 75,174,139, 31,170,125, 76,143,146,159,240,207,
+245,168,236,138,220,223,230,111,221, 71,162,165, 77, 90,236,198, 74,129, 81, 31, 47, 59,143,135,255, 0,213, 87, 72,125, 82,234,
+135,254,157, 63,225,159,235, 81, 34, 33, 3,185,126,107,125,228,183,220,211, 7,249, 77,132,182, 77, 9, 49,174, 21,255, 0,245,
+154, 48,250,161,212,191,242,234,255, 0, 12,191, 90,139, 4,102,229,249,150,119,181,171, 31,243, 91,117,170,196,183, 41, 80,149,
+198,184, 17,250, 38, 13, 71,253,209,234, 96,235, 93, 95,225,151,235, 73,180, 74, 71,243, 94,245, 48, 94, 33, 22, 60,111,200, 29,
+ 73,135,116,175, 74,255, 0,247,253, 16,253, 80,234, 3,249, 42,247, 75,245,168,162,182, 95,205, 27,212, 37,218, 56,150, 45, 24,
+239,146, 15, 21,113,137,114,168,251,102,234, 51,250,165,212, 34, 91,101, 94,233,126,181, 49, 20,106,245,249,143,247,250, 4, 38,
+167, 68,180,216, 84,210,233,203,156, 91,129,161, 35,194,147, 6,170, 67,234,231, 80, 50,219,178,175,116,191, 90, 39,148,162,255,
+ 0,251,152,119,253, 54,181, 73, 54,107, 9,152, 55, 74, 68, 91,143, 19,245,124,229,127, 78,154,127, 87,115,227, 38,217, 87,186,
+ 95,173, 35, 80, 73,185, 95,230,245,234, 67, 24,113,128,230, 63,142,169, 14, 40, 37, 99,228,238,149, 0,251, 41, 59, 86,241,254,
+169,117, 27,120, 66,175,116,191, 90, 28,162,203,100, 31,206, 15,190,111,201, 74, 36, 88,172, 9, 96,245, 41,139,114, 7,244,204,
+212,238,250,153,213, 33,252,148,255, 0,134,127,173, 65,194,131,148,254,114,157,255, 0,179, 73,242, 45,246, 28,117,196,248, 23,
+ 34, 92,201,167,251, 51,134,137, 95,212,190,165, 32,251, 42,255, 0, 12,191, 90,144, 1,104,179,254,114,254,163,103,147,243, 88,
+254, 54,129, 66, 83,198, 37,208,116,250,103, 29, 47,247, 47,169,127,114,175,240,203,245,165, 32, 2,252, 31,157, 15,127,188,245,
+ 70, 85,139, 28, 14,164,248,195,186,110, 7,179,248,237, 56,250,149,212,155,228,171,221, 47,214,162, 8, 41,131, 26,252,222,251,
+205,120,152,220,105,150,107, 10, 18,189,137, 68, 91,136,222,149,241,152,116,227,234, 79, 82, 35,228,171,221, 47,214,152,150, 70,
+191,253,212,123,197,230,150,205,162,198, 7, 36, 37, 63,195, 79,220, 43,169,255, 0, 23,170,255, 0,238,127, 83,118,217, 87,248,
+101,250,211,130,137,159,204,215,187,194,114, 97,255, 0, 42,178,212,176,167,255, 0,195, 79,234, 20, 5, 63,197,123,244,191,221,
+ 14,165,253,202,191,195, 47,214,153,215, 20, 91,109,151, 43, 85,201, 81,156, 28,152, 8,226,165,120, 87, 92, 6, 14, 64,144,116,
+211,138,101,198, 44,182, 91,141,165,230,228, 41, 36,133, 21, 41, 39,195,195, 81,200,182, 70, 90, 41, 16, 20,137,183,140, 83, 31,
+138,208,143,199,152,167,214, 65,213, 57,215,108,148, 92, 5, 38,209,220, 59, 68,136,107,113, 33, 42, 82, 85,176,167,191, 85,191,
+101, 53, 35,102,138, 67,247,184,215, 71, 17, 33,134,192, 80, 1, 52,165, 60,117, 90,112,144,209,245, 67,223,216,138,218,152,143,
+ 62,224,219, 83,144, 60,170, 37, 70,190,250,232, 96,152,196,234,165, 25, 45,238,204,199,161, 60,155,122,144, 10,212,118, 31, 94,
+152, 89, 57, 35, 70, 65, 26,181, 94,113,171, 13,254, 43, 87, 22,211,229,186, 7,222, 3,199, 84,114,161,108,195,133, 47, 48, 50,
+122,159,220, 76, 65,151,126, 94, 43,104,242, 72, 27,237, 79,103,134,170, 87,137,113,213, 60, 44, 26,163, 61,164, 54,158,226, 38,
+ 86, 49, 96, 91, 45,221, 82,133,204, 5,243, 70,212, 26, 32,169, 37, 93, 5,107,246, 87,232,215, 73,208,253, 59,147,212,111, 16,
+143, 47,183,225,170,183,137, 89,178, 65,149, 93,234,167,213,206, 45,233,176,175, 18,237, 76, 86, 36,229,206, 71,109,187,210, 37,
+150,164,195,113,185, 76, 20, 56, 26, 80, 1, 73, 88, 77, 22, 8, 88,234, 5, 43, 93,125, 43,233, 79, 66, 99, 98,192, 78,216,188,
+199,107, 16,235,168,175,167,136,128,227, 95,237, 76, 61,192,192,238,189,224,244,225, 97,245, 65,139, 69, 9,186, 34, 11, 3, 32,
+142,194, 64, 15,178,218, 72, 23, 4,129,212,211,136,112, 15,239,120, 29,115, 30,181,244,157, 80, 31,184,198,139, 8,252,195,223,
+241,126, 71,196, 44,158,167,141,178, 78, 57,253,202,152, 98,244,233, 64,149, 41, 91, 10,129,246,107,202,231, 88,224, 22, 20,160,
+ 93, 65,133,153,202, 50, 95,183,182,237, 26,166,194,186,171,109, 1,144,229, 21, 51, 20, 50,175, 48,229, 33,213, 18, 27, 82,149,
+ 95,170,163, 64, 34, 32,104,134, 3, 47,198, 59,133,252,174, 90, 96,242,252, 46, 69, 53, 39,216, 53, 58,107,125, 83,136,173, 89,
+ 44,248,119, 75,170, 11,148,162,147,201, 62,255, 0,134,186, 59, 16,144, 65,166, 68,180, 25,232,144, 54,113, 59,125,186,177, 93,
+135,129, 83,109, 17,123, 50, 98,132,188, 37, 15,189,186, 15,213, 67,160,203, 66,136, 2, 45, 15, 23,183,189, 29,187,139,192, 6,
+235, 67, 94,155, 43, 89,249, 57, 36, 6, 9,135, 20,236,226, 49, 56, 54,120,237,168, 38,135,142,244, 30,202,107,155, 55, 91,188,
+162, 27, 2,211, 14,193,143, 59,117, 12,161, 73,242, 92, 78,223, 81,209,229,125,140,152,200, 40,247,155,125,138,202,235, 45,249,
+137, 9, 43, 74, 78,254,221, 79, 30,203, 36, 89,148, 4,130,135,151,219,140,251,131, 12, 91, 22, 86,149, 39,144, 74, 42,106, 2,
+106,122,123,134,180,105, 5,142,136,155, 31, 64,174, 43,119,110,123, 91,233,115,181,223,248,143,222,245,252,254,113,115,138, 29,
+182,227,201, 52, 83, 1,207,197,252, 93,246, 82,135, 20,146,126,232,168, 21, 58,245,239, 77,122, 24,221, 92,108,188, 49, 35,135,
+ 96, 61,189,235,107,167, 98, 57,220, 70,157,255, 0,151,217,146,151,110,125, 83,118,174,126, 97,112,118,108, 24,198,216,228, 70,
+163,183, 20,181,193,183,228,189, 47,138,252,180,168,124, 41, 8, 41, 59,248, 39,125,206,187,250,125, 27,141, 92, 12, 0,226,182,
+ 37,141, 2, 11, 15,179,161,126,162,241,220, 67,183,253,250,123, 25,192,210, 21,140,195,106, 42,252,212,171,146, 93, 91,241, 83,
+ 39,154, 77, 78,220, 86,145,244,131,175, 33,245, 87, 77,142, 54, 84,171,135, 0,184,235,254, 18,204,202,171,203,115,175, 42,231,
+ 51,202, 87, 14, 2,148, 39,216, 53,207, 67, 20,201, 81,156,216,168,253,180,239,195,136,133, 54, 27, 14,111,241, 38,149,241,212,
+165,209,247,113, 80,149,200,237,207,186,147, 30,177,169, 60,170,158, 36,142,190,205, 97,221,211, 4,108, 83,132,220, 37,188, 91,
+185, 87, 57, 13,134,223, 81, 43, 4,132,141,253,180,213,200,244,248, 4, 51,105,117,249,151,228,121, 4,251,122,162,199, 39,205,
+ 63,119,232, 26, 37, 56,240,137, 69,137, 41, 78,219, 43, 44,182, 77, 42,117, 10, 5, 70,167,175, 74,107, 65,171,102, 9,245, 71,
+108, 41,155,112,186,169,101, 68, 40, 37, 32,138,251, 58,234,181,145, 3,130,148,100, 66,100, 72,118, 60, 21, 58, 72, 43,108,215,
+237, 59,232, 76,197, 56, 46, 87,236, 25,145,239,113,144,241, 32,254,201,175,211, 77, 25,152, 58, 69, 78,186, 22, 97, 69,114, 32,
+ 86,244,168,251, 53, 92,201,202,138, 82,184, 42,115,241,220, 42,119,240, 73, 41,235,245,105, 70,200,187, 20,220, 87,171,102, 61,
+ 42, 12, 52,207,101,234,132, 16,179, 67,245,232,224,192, 38,213, 79,188,223, 38, 92,224, 47,201, 89, 45, 37, 31, 22,245,241,174,
+137,228,198, 90,166, 33,146, 80,118, 92,249,172,196, 14, 42,139, 52,219,217,169,154,162, 20,132, 83,115,184, 36,232,173,199,117,
+194,124,133,129,184,175,142,179, 47,204,132, 75, 5, 40,214, 85,149,128,167, 31,199,112,185, 50,238, 52, 50,147,202,149,251, 53,
+205,229,217,101,146,209, 91,129, 17, 10,118, 53,149, 88,167, 90,188,137, 41, 0,186,163,185,246, 87, 66,149, 22,146, 19,121,193,
+122,191,100,152,181,168,152,208,194, 3,188,104, 72,166,137, 69, 87, 13, 74, 97, 96, 85,238, 73,144,219, 38,177,243, 45,148,135,
+153, 53,228, 58,143, 29,106,209, 27, 18, 51, 12,191,112,142,227, 72, 98, 74,154, 82,194,162, 42,169, 59,214,154,182,104,112,132,
+108, 80,243,123,140,107,197,195,203,117,127, 0, 33,198,253,149, 78,231, 87,107,129, 80, 50, 66,109,249, 75,237,203, 84,100, 40,
+121,109,130,145,239,213,216, 64, 5, 23,117,162, 76, 87,110,215, 36,204, 89, 32, 87,169,212, 37, 32,250, 41, 4,126,126, 90,205,
+162,208,109,104, 88, 91,132, 83,111,126,161, 52,130, 25, 62,236,151,236,129,168,128, 9,142,212, 10,117,169, 30, 26,106,196, 73,
+213, 49, 8,135,110, 68,203,101,109, 19, 77, 86,170, 44,215,216, 69,117, 87, 49,134,161, 40,185, 41,205,121, 4,105,176, 19,108,
+ 82,147,197, 20,169,215, 59,107,196,184, 87, 97, 20,215,140, 99,182,137,150,161, 45,245, 36,212,128, 5, 71,211,172,108,187,236,
+228,136, 32, 29, 40,119,139, 6,177,193, 75,115,150,132,173, 4, 2, 7,215,174,135,211,134,118, 30,197, 27, 42,113,162,172,127,
+150, 91,101, 91,228, 78,109, 60, 93, 65, 41,108, 15,236,141,117,163, 82,197, 80, 60, 82,250,113,231,175,243,154, 97,164,149,202,
+ 52,219,245,232, 54,216, 32, 20,226, 93, 50, 89,187, 63,146, 77,112,161,136,202, 10,103,225,115,111,118,169, 30,161, 8,243, 83,
+242, 73, 69,222,244,237, 53,199,155,187, 45,146,150,197, 66,199,215,190,171,203,173,196,104, 20,191,110, 83,172, 95, 79, 78,193,
+177, 55, 54,219, 28,173,213,144,106, 7,141, 41,170, 51,245, 29,100,176, 44, 81,134, 25, 33,214,169,157,180,153, 30,224,204, 89,
+109, 20, 56,120,245, 26, 23,250,177,150,160,168, 74,150, 91, 14, 57, 39,252,224,155, 71, 31,136,199, 81,229,238, 4,104,191,191,
+150,221,200, 91, 2,173, 49,235,234,229,201,118, 60,197,126, 35,128,138,251, 53,208,199, 31,202,224,128,181,227,232, 69,189, 51,
+191, 28,252, 68,237, 95, 15,102,172, 11,192,228,145,173,208,249, 54,203,125,233,246,193,112,209, 53, 61,116,199, 33,249, 38, 53,
+133, 47, 16,183,192,131, 49,196, 56, 74,152, 74,186, 31,112,208,238,176,144,163, 48, 2, 45, 47, 43,143,108,154, 17, 25, 4,180,
+ 56,210,154,206,150, 33,145,213, 13,215,155,143,118, 36,219,228, 41,213, 54,161,176, 9, 20,246, 13, 74,190,156, 9, 81,220, 80,
+136,253,196,149,114,188,176,249, 4, 36, 29,201,246,146, 52,106, 48, 3,145,216,141, 41, 48, 69,115,220,178, 93,206,225, 21,248,
+196,213,180,131, 81,208,104,223,181,140, 67, 20,163, 23, 91,172,153,101,214,231,111, 49, 1, 82,165, 45, 65, 9,226,119, 36,154,
+ 0, 62,179,167,174,136,141, 0,226, 81,163, 73, 60, 23,231,112, 61, 64,206,244,253,104,184,224, 48,102,214,226,225, 45, 92, 86,
+133, 17, 73, 1,176,149,160,116, 53,109, 69,104,247,235,232, 79, 76,122,112, 97,227, 68,144,211, 32, 19,226, 87,160,116,140,120,
+208, 35, 22,213,181,241, 92,147,158,247, 50,243,155,228, 9,185, 77, 89,112,173, 99, 99,224,146,173,133, 62,205,117,240,248, 70,
+139,166,141, 97,254,223,110,245,246,215,177,214, 91, 38, 13,232,127, 15,199,178, 8,192,219, 31,199,162,193,145, 24,214,170,110,
+ 92, 96,135,146, 64,161, 31,134,226,135,215,174,127,124,103,108,163, 45, 99, 45, 8, 92, 85,213,249,247,202, 35,128, 92, 61,158,
+118,198,255, 0, 96,201,238, 88,123,206, 85, 86,217, 50, 34, 7,147, 94, 46,134, 93, 40, 14, 38,190, 10, 0, 17,244,235,231,110,
+165, 87,236,178,167, 68,181, 48,145,137,246, 22, 92,229,173, 9, 17,222,201,103,255, 0, 11,239,204,129, 56, 56, 67,142, 18,145,
+244,248,106,149,217,176, 1,149, 9,151, 41,235, 30,193,238,216,253,151,205, 59,174, 66,104,173, 97,254,244, 58,130,171,243,139,
+ 29,210,198,167, 30, 88, 43,115,153, 80,167,211,173,124, 92,136,200, 39, 8,173,169,102,241, 13,137,136, 20,121,164,209, 64,245,
+233, 77, 89,180, 14, 73,192,117,230,237,105,146,203, 37,231, 15, 23,156, 39,128,253, 90,175, 18,164, 75, 39, 92, 50,194,205,234,
+ 36,117,205,162, 20,216, 60,253,251, 15,233,214, 94,126, 68,161,160, 77,189, 29,187,200,198,162,194, 77,153, 14, 14, 92,128,251,
+117,144, 77,135, 86, 75,112, 69,108,182,124, 99, 37,105,187, 19,235, 1,240,145,199,126,186,170,103, 96, 46,201,206,214, 82,178,
+ 44, 37,171, 85,153,225, 13,124,110, 44,212,182,175,235,120,131,246,107, 67, 10,215,151,197,193, 68, 7, 72,153, 6, 5,125,202,
+ 44,172,200,133, 32,252,210, 84, 15, 94,132,107, 71, 30,248, 70,210,227, 68, 79, 44,174,183,244,159,233,106,215,133,224, 49, 59,
+201,220, 23, 4,139,241,136,183,162, 71,119,100, 54, 93, 71,150, 43, 94,191, 9,167,215,175, 97,244,175,166,171,200,128,186,113,
+227,160, 11, 95, 18, 62, 84,163, 17,243, 30, 61,192,255, 0, 98,225, 47, 92, 30,166,111,157,199,238,220,235,116,119,202,172, 17,
+ 36, 62,142, 85,248, 85,229,184, 91,175, 74, 1, 65,244,211,111, 13,123, 52, 68, 97,240, 69,118, 17,163,225,126, 67,128, 84,254,
+ 17,159,121,174,190,251,235, 45, 58,213, 16,170, 42,189, 18, 9, 72,223,218,154,215, 70,226, 10, 1,142,210, 35,246,212,174,150,
+193, 51, 43,111,112,187, 62,197,245,136,143, 63,155,227,228, 34,124,180, 81, 72, 93,173,105, 8,109,111,120,242,109,194, 17, 90,
+253,210,159,102,222, 79,245, 11,165, 9, 8,100, 68,124, 92, 37,248,131,248,172, 78,185,129,177,167, 30, 10,172,207,225,220,175,
+183, 9, 15, 90,118, 91,156,137, 30,234,107,206,105,178, 49, 33,215, 47, 42, 73, 74,120, 54, 25,146,218,110,206,165,205,252,197,
+ 18,175,175,166,175, 89,155, 6,209, 87, 52, 50,126,130,242,213, 29,118,247, 1, 11, 2,128, 31,118,185,251,154,122,162, 68, 48,
+100, 61,153, 14, 89,238,201,109,198,200,100,147, 85, 83, 85,200, 50, 10, 39, 69,178, 78,109,230, 78, 83,188, 79,150,210,183,250,
+ 41,190,137, 86, 43,197,209, 1, 71,133,225,236,128,137,112, 88,168, 74, 40, 82, 7, 83, 65,161,154,152,241, 82, 18,101, 5, 83,
+151,107,150,135, 84,146,135,214, 77, 82, 71,191, 71, 96,201, 5, 38,217, 58,235,112,157, 33,133, 36,166, 47,137,223,233,208,167,
+ 16,144, 44, 84, 40,215, 85, 90,231, 11,115, 10, 37,178, 73, 63,175, 82, 46, 98,162,189,221,111, 50,238,114, 10, 99,172,151, 0,
+ 21, 27,244,166,131,160, 77,181,212,107,106, 46, 18,225, 62,203,202, 33,196,215,237,165,116,164, 34, 53, 78, 34, 66,217,108,255,
+ 0, 52, 65, 74, 35, 73, 39,228,158, 28, 69,126,154,234,212, 77,102, 61,232,127, 19,169, 54, 72, 51,224, 74,126, 60,181,131, 13,
+100,238,125,135, 66,187, 36, 66, 58, 35,194, 47,197, 54, 96,216, 70, 53, 61,228,188,162, 8,110,148, 39,174,177, 50, 51,172, 33,
+149,145, 24,133, 97, 93, 21,139,124,131,118,212, 41, 37,198, 71, 47, 15, 13,181,129,253, 89, 73,203,162, 78,216, 50,253,126,201,
+141, 77,196, 92,101, 10, 1,215, 42, 7,188,245,211,215,101,155,147, 60, 87,235,184,166, 45,111,177, 69,106, 50,199,205,132,239,
+ 79,163, 90, 53,217, 55,225,162, 20,163, 21, 94, 93,113,149,200, 14, 74, 46, 16, 84,178,145, 83,224, 85,254,141,107, 70,224,220,
+ 16, 77,104, 77,199,183,239, 71,182,188,146,239,196,232, 36,126,173, 30, 25, 64,114, 72, 65,106,176,118,252, 89,224, 32, 56,225,
+ 46, 47,145,175,186,154,144,191,114,159,148, 23,185,120,108,187,140,158, 17, 84, 84,180,236, 62,202,106, 99, 41,147, 26,194,137,
+ 35,183,115,173,146, 67,174,238,175, 16, 61,221,116,195, 51,114, 66,176,141,228,150, 84, 64,181,199,113, 35,138,148, 42,162, 61,
+180,211,194, 74, 81, 1, 36,197,252, 71,223,113,127, 18,146,162, 19, 93,246, 26, 36,138,114,193, 18,182,182,185,210,155,105,161,
+248,136,248,142,171,206, 91, 80,230, 2, 56,204, 73,161, 78, 72, 77,126,100,164,164, 31,163, 76,100, 8,213, 15,130, 68,189,228,
+121, 45,166,115,209,209,200,171,145, 41, 3,223,162, 67, 18, 19,226,156, 88, 93, 88,221,173,205, 47,210, 88,141,111,156, 74, 82,
+163,241, 18,124, 56,234,134, 94, 4, 57, 39,223, 36,237,150, 24,179,173,165, 51,213,201,161, 78, 39, 84,168,145,171, 72,232,139,
+ 11,143,106, 93,180,227, 88,130,217,249,114,177,230, 45,102,181,246, 87,125, 28,100, 90,144,136, 42,124, 27, 38, 39,100,188, 42,
+229, 23,136,242, 5,118,166,231,254,131, 80,148,236,176, 50, 36, 76, 98,155,113,158,238,227,205, 45,242,219, 40,162,129,228, 64,
+ 21,165, 53,147,118, 5,132,241, 68, 57,128, 41,209,187,149,106,188,175,228,227, 37, 37,151, 5, 72,218,128,211, 76,122,108,130,
+ 29,153,125,138, 29,179,190,141,217, 94,118,202,178, 10, 26, 81, 72, 6,158, 27,141, 6,206,139,205, 22, 57,186, 45, 55, 62,236,
+217,242, 87, 28,117, 64, 38, 99, 35,146, 72,166,244,223, 71,171,167, 24,232,165,251,136,203,138, 70,255, 0,197,113,254, 98, 23,
+110, 31,143,187, 31, 87, 42,107, 95,246, 31, 11, 42,126,110,170,157,195, 45,183,251,197,245, 82, 56, 41, 9, 64, 37, 73, 80,167,
+ 94,154,236,137,139, 42,242,118, 94,231, 71,188,140,141,203,122, 42, 26, 83,156, 77, 43,208,237,170, 80, 96, 84,157, 30,110,205,
+ 18,208,223,146,242,255, 0, 16,128,165,123,129,220,234,173,132,182,136,102,197, 55, 26,183, 48,169,110,185,214, 42, 71, 51,250,
+244, 56,200,158, 41,188,192, 83, 54, 58,140, 78, 83, 42,144,250, 80,167, 57, 17,241,117,235, 77, 83,190,203, 4,152, 33, 27, 89,
+109,200,236,248,132,135,124,222, 8,242, 91, 20,247,109,171, 20,155, 25, 74, 54, 58, 7, 38,211,136,177, 5, 50, 26, 9, 74,143,
+136,167,142,173,195,120, 69,222, 17,139, 77,163, 24,147, 5, 75,124,167,131,137, 5, 4,253, 99, 84,238,149,142,152,204, 5, 94,
+101, 55, 72,152, 76, 89,247, 88,143,124, 17, 18, 86, 55, 27, 40,252, 40,235,253,181, 39, 94,137,232, 62,137, 44,219,133,147, 31,
+ 12, 8, 63,111,114,217,232,248,230,251, 1, 28,138,230, 46,238,103,215, 28,226,255, 0, 42,116,231, 73,184,203,117,201,139, 93,
+119, 43,113,126,105,175,188,147,175,161,108, 3,107, 14, 11,190,193,172,194, 78, 70,173,248,160,157,171,110,227,124,204,173,214,
+ 53, 0,228,233, 51,163,180,210, 23,176, 52,112, 26,106,145, 96, 8, 91,146,145,218, 36, 2,251,139,234, 75,184,145,108, 29,134,
+ 17,236, 77,169, 13,170, 15, 56,104, 52,252, 54,213, 24, 10, 26,108, 56,131, 79,167, 92,182, 49, 18,180,120,174,111, 19, 24,131,
+ 41,158, 39, 69,205,125,193,206,109,183,159,150,200,157,248,103, 77,139, 10, 82,171,247,137,122, 3, 78, 18,122, 86,164,235,199,
+ 62,160, 97, 24,245,139,219,153, 7,252, 81, 18,252, 74,224,122,188,133,119,200,119,254, 73, 70,103,114,237, 81, 97, 53, 10, 66,
+128,124,113, 88,233, 93,235,174, 42,204, 9, 72,184, 88,214,222,202, 96,239, 4, 73, 22, 6,216, 82,135, 47,186, 43,237,173,127,
+ 86,179,207, 79, 32,170,241,202, 33, 38,229,249, 18,100,203,109,199,192, 44, 57, 90, 86,157, 60, 53,115, 31, 28,196,171,181, 91,
+185, 66,125,153, 81,153, 76,168, 67,131, 70,133, 84,233,236, 58,215, 7, 77, 85,168, 69,121,201, 19,122,184,197,142,251, 10,168,
+107,138,182,247,111,161, 85,197, 41, 5,230, 63,113,174,150,166, 86,193,170, 29, 74, 8,219,232,209,127, 97, 27, 14,171, 54,217,
+145, 38, 85,163,253,208,203,110,249, 19,230, 48, 90,155,105,116, 36, 86,149, 26,189, 62,157, 92, 98,202, 95, 19, 43, 47,182,249,
+157,234, 77,238, 45,193,231, 20,217, 64, 21,174,221, 69, 70,177,115, 49, 33, 88, 68,140,137, 10,209,200,243,213, 75,142, 31,126,
+ 71,198,148,208,208,245, 61, 53,155,229,128,116, 10,221, 80, 40,143,100,161,220, 50,140,174, 5,145,165,149, 69,146,242, 75,131,
+216,223, 46, 74,251, 0,214,255, 0, 78,233,163, 34,248, 65,184,149,167,131, 71,153,100, 65,225,252, 23, 89,250,154,238, 28,206,
+223,246,112,197,178,130, 26,135,111,156, 83, 77,210,218,225, 65,118,107, 74, 52,241, 11,101, 39,234,215,209,254,159,162, 53,200,
+ 68, 15,146, 37,189,139,166,199,196,142,233, 72,142, 36,127, 5,241,235, 34,126, 67,151, 87, 36, 54, 60,218,211,204,113,123,239,
+ 78, 68,239,212,212,131,173,250,194,216,180,143, 4,173,106, 98,105, 67,241,218, 88, 68, 67, 90,240, 20, 87, 37,171,245,158,154,
+156,193,224, 57,168, 9, 65,220,190,139,168,125, 6,230, 86,235, 30, 70,254, 39,149, 57,195, 14,200, 98,200,199,111, 74,221, 69,
+ 16,230,163,202, 83,201,241,228,210,130, 93, 20,222,169,214, 87, 82,199,142, 68, 77,115, 31, 12,129, 7,193, 79, 35, 22, 57, 24,
+210,143, 19,196,119, 16,255, 0,199, 84, 99, 63,237,212,158,218,231,215, 60, 46,246,186, 76,129, 50, 77,184,186,118, 11, 68,103,
+ 75, 97,196,143, 20,184,126, 32,125,131,223,175,156,115,241,101,139,108,234,151, 24, 72,131,236, 44,188,234, 81,209, 70,106,200,
+212, 16,236,184,235,243, 61,159, 71, 77,103,249,133, 84,176, 50, 7, 50,230,218,238,173,166, 58,127, 18,160, 46,158,253,180, 45,
+165, 52, 98,141,101, 86,150, 3,108,150,219,171,188, 2,148, 41,253,154,233,156,197, 40,193,210,221,134, 20, 53, 23, 27,117,158,
+ 78, 45,100, 29,181, 45,242, 70, 21,133, 97, 99,139,181, 89,156,101,176,128,148,157,148, 8,246,234,189,162, 71,130, 20,244, 43,
+101,234,213,103,189,220,150,164,165, 35,129, 11, 73, 3,111,110,161, 8,205, 45,234, 93,158, 37,141,215,222,132, 2, 65, 82, 64,
+ 39,253,157, 33, 25,130,160, 75,160,242,112,123, 75, 51,229,202, 85, 57, 54,217, 82, 1, 63,217,213,208,100, 98,202, 60, 18, 75,
+ 23, 24, 54,247, 92,147, 78, 74, 4,133,125, 91,106, 21,214,100,164, 10,136,230, 73, 33, 82,139,176,209,248, 10, 34,167,233,235,
+169,203, 29,194,152,154, 34,214, 81, 42,107,205,169,224, 4,118,134,223,101, 53, 24,210,193, 62,224,129,231, 25, 53,214, 12,114,
+236,122,148, 57,208,167, 69,134, 48,151, 20, 57, 30,197,187,183,249,173,234,219,102,145, 50, 74,148,144, 71,194, 21,238, 21,241,
+209,165,211,226, 80,229, 34,203,123,157,192,187,186,215,206,135, 15,226, 2, 40, 61,231, 85,165,211,226, 16, 68,137, 41,146,203,
+159, 94,103,194,141, 31,145, 9, 70,228, 87,173, 53,156, 48,162, 29, 89, 94,243, 14,225,223, 96, 73,142,168,156,138, 18, 2, 72,
+250,181,163, 28, 72,237, 77,170,147, 55, 55,113,235, 83, 34,180,127,101, 47,234, 21,208,255, 0,104,200,132,150, 67, 14, 99, 62,
+230,201, 90, 87, 86,134,218, 25,160, 59, 38,114,182,222,114,185, 40,136,210, 34, 26,185, 74, 80,123,244, 74,232, 9,196,138,223,
+133,101,146,154,121, 78,201, 63,137, 95, 31,211,169, 75, 28, 20,198,101, 77,200,123,137,252, 71,150, 40, 64, 0,172,251,201,255,
+ 0, 78,165, 86, 18,136,185, 67,189,102,205, 94,224, 55,111, 10, 1,225,177,220,123, 55,212,109,164,192,128,141, 9,115, 42, 21,
+154,200,155,156,159,144, 96,132,186, 5, 84,107,239,174,165,176,128,161, 57,186,214,167,133,130,239,242,140,175,148,147,240,154,
+125, 59,233,252,131, 48,134, 78,137,170, 45,213,149,216, 87, 32, 40,121,200, 4, 19,227, 83,182,129, 44,111,137, 73,244, 73,151,
+ 22,147, 49,105,144,229, 57,169, 69, 74, 62,192, 14,175, 66,161, 16,134, 9, 68,160,200,159, 14, 75, 75, 96,128,193, 20, 65, 30,
+ 53,213,107, 32, 25, 17, 16,200,175,151, 9, 44, 34, 2, 94,226,242,104, 85,191,187, 84,170,199, 27,156,164,200, 1, 69,237,137,
+237,252,163,138, 83, 91,114, 80, 39,233,213,227, 76, 64, 72, 22, 70,204,153,159, 46,180,114, 42, 36,124, 71,115,211, 77, 93, 81,
+ 72,201,208, 7, 47,146,236,105,125, 72, 10,242,192, 80, 7,127, 1, 77, 16, 85, 25, 21, 18, 29,109,192,243,233, 48,155, 84,169,
+ 42, 32, 87,138, 65,235,190,165, 44,112,160,120,173,121, 19,183,197, 73,114,247, 20, 40,178,231,197, 81, 93,246,208,182, 68,150,
+ 82, 5, 64,176,222, 46,239,203,242,220, 82,146,225, 6,160,251,245, 35, 76, 66,111, 49,145, 79, 53, 5,144,175,218, 4,212,255,
+ 0,104,159,245,105,182, 39,222, 17,155,203,204,217,239, 63, 49,110,108, 33,135, 0,173, 7,184,234,196, 0, 33, 94, 41,110,248,
+228,212, 93, 90,184, 50,215,196,165,164,158,187,143, 29, 6, 1, 2,113, 67, 59,133,112,188, 37,223,152,101, 10,226,180,132,138,
+ 87,196, 29,104,215, 8, 51, 42,147,166, 74, 53,147, 36,188,196,182, 58,209, 74,131,139, 79,136,235,182,152,209, 4, 47, 42, 65,
+122,199,230,223, 27, 74, 82,178, 71, 35, 83,244,242, 39, 64,149, 80, 5,209,127,110,233,235, 29,176,221, 47, 88, 44,249, 79,147,
+243, 21,224,217, 61,122,127,175, 83,223, 0, 81, 99, 67, 4, 27, 36,193,242, 24, 24,163, 46,149, 31, 55,128, 63, 96,209,133,177,
+ 7, 85, 41,210,202, 0,187,221,218,197, 88, 2,161,109, 10, 84,215,192,232,103,100,164, 20, 14, 57, 33, 80,157,227,238, 29,206,
+109,198,101,144,186, 83, 13,181,182,251,232,168, 63,140,134,248,211,219, 80, 14,250,250, 43,211, 61, 42, 24, 24,145,139,107, 45,
+ 79,228,189, 3,211,125, 56,213, 3, 46, 10,160,189, 94,138,100, 42, 83, 67,146,197,104, 43, 90, 87,111,232,214,185,158,238, 11,
+179,142, 56,129, 46,117, 94, 48, 92,190,117,143, 50,183, 95, 98, 43,141,194, 44,150,100,164,170,160, 14, 46, 36,128,117, 33, 94,
+224,167, 99, 70, 44,190,185,247,143,186,206,229, 94,155, 44,183,214,138, 83,115,186,196,142,148, 52, 56,148,149,186,218, 92,113,
+ 2,164, 0, 2, 91, 36,109,225,239,215, 35,143, 29,183, 55, 97, 65, 21, 60, 10,230, 92,203,185,109,255, 0,151,177,103,203,160,
+169,251, 84, 96,105,237, 97,199, 34, 80,251,199,151,174, 71,215,152, 66,121,242,179,182, 48, 62,232, 68, 47, 35,245, 21, 77,147,
+ 63,103,224,171,110,225,247, 2,106,178,136,172, 68, 89, 41, 45,212,129, 95, 0,125,154,229, 40,193, 27, 87, 49,100, 10,141, 27,
+185, 23, 95,152, 17,199, 34,158, 72, 73, 27,239, 78,132,123,255, 0, 94,178,115, 48, 68, 71,138,141, 84,238, 41,203,187,185,162,
+160, 99, 22,153,172, 43,227, 90, 69, 74, 79, 90,157,103,226, 98,157,228, 17,193, 88,140, 76, 10,100,237,238,110, 50, 60,124,181,
+ 40,236, 17, 90,125, 84,213,203,113,196, 85,216, 88,232,157,166,226,152,240,158,125,213, 85,164, 3, 64,125,192,141, 81,149, 91,
+ 74, 46,231, 80, 33, 72,181,100,126,107,203,160,112,166,155,127,118,154,153, 50,137, 12,135,176, 2,160,227,118,187, 28, 37, 72,
+226,148,149,149,158,103,110,160,233, 89, 41, 73, 19, 68,196,136,182,248,237,173,200,128, 33,208,147, 74,109,176, 26,171,108, 76,
+131, 20, 35, 23, 42, 13,206,229, 42, 85,185, 65,165,124, 64,245,246,208,234,165, 20,185,215,146,211,172, 6,101,114,250, 81,189,
+ 46,215,148,166,123,231,247, 45,113, 66,186,209, 69, 99,250, 53,232, 62,148,197,123,141,135,249, 98, 87, 77,233,220, 93,215, 19,
+220, 85,171,235, 67, 63,254,103,130, 73,182, 64,124,121,191,202,111,142, 41, 9,241, 42,180, 62,209, 39,174,233, 74,149, 77,181,
+236, 93, 8, 29,230, 93,160,254, 11,160,186,177, 86,157,225,124,180,149,144, 60,103,161, 9, 81, 72, 82,131,123, 83,195,199,244,
+235,118, 33,138, 86,252,164,253,181, 88,212,135, 26,146,209,228, 67, 11,170,210, 19,215,144, 87, 83,183,133,125,186, 59, 42, 17,
+146,181,189, 63,220, 87,108,202, 25,146, 8, 87, 53,166,137,222,188, 8,223, 89, 57,238, 3,174,143,165, 84, 39,240,157, 2,232,
+223, 90,182,217,183, 56, 24, 71,114,237,200,226,253,206,220,229,182,230,162,162, 86,228,219, 83,137, 73,116,142,148, 83, 14,180,
+ 1,246,131,175, 42,245,150, 0, 18,133,224,124,193,143,136,255, 0,176,175, 60,245, 22, 31,147,149, 38,249, 73,209, 87, 24, 53,
+194,229, 54, 50,219,144, 42,162, 10,105,245,107,207,109,172, 21,205,217, 18,234,127,109,240,245,220, 50, 73,111, 92,118,101,181,
+ 2,154,143,234,171, 77,101, 96, 69, 68, 72,132,205,121, 84, 22, 38, 41,183, 72,170, 91,227, 83, 79,110,169,206,189,195, 68,226,
+214, 74,217, 5,194,219,141, 91, 17,113, 72, 21, 43, 53, 34,157, 73,213,184, 99,104,167,231, 45, 54,123,201,188, 66,118,226, 86,
+ 2, 82,158, 73, 26, 70,157,168, 68,186,142,238,122,136,138,110, 34, 79,241, 78,109, 95,171,142,138,106, 0, 38, 95,152,166,118,
+182,179, 86,173,175, 16, 80,224,170,141, 70,192,104,102,141, 29, 70, 65,107,206, 51,215, 90,204, 36,178,211,156, 98, 20,112, 2,
+187, 29, 26,186,244, 67,212,132,187,139,190,139,156,137,173, 47,226, 69, 73, 31, 89,210, 20,178,125,204,181,179,123, 97, 19,151,
+109,216, 33, 34,181,250, 79,183, 78, 43,116,241,154, 59,108,136,213,210, 55,150,193, 27,147, 82, 15,179, 77,229, 34, 41,173, 88,
+161, 92, 27,110,215, 34,133,105, 93, 20, 79,176,106,141,207, 19,162, 98, 87,230, 79, 14,201,110,179, 61, 29,176,144,150,182, 52,
+167,179, 70,166, 82,109, 84, 76,144, 12,101, 16, 39, 64,109,102,133, 33, 92, 71,208, 14,136, 65,100,225,145,136, 50, 89,102,235,
+229,197,161,105, 4, 3, 79,167, 84, 4, 52,213, 54,229, 38,229, 33,137, 19,138,151,247, 19,185, 31,160,232,241,212, 5, 33, 45,
+ 16, 27,133,222, 50,239,255, 0, 38,133,254, 3,136, 0, 13,182, 53,161,213,232,129,197, 33, 45,193, 28,181, 99,238, 70,177,249,
+172, 85, 96,172,214,155,237,170,214,134, 46,159,114,243, 55,229,224, 75, 67,242,104, 16,148, 21, 16,122,117, 27,104, 85, 3, 36,
+238,134, 61,120, 66,101,186, 99,236,133, 18, 80, 71,187, 71,217,180, 40, 18,225, 70,122, 66, 17,107,149, 33,229,254, 49,220,114,
+ 62,193, 81,162, 70,212, 33,161, 64,236, 23, 85,191,122, 4,172,148,167,166,254,193,162, 24, 3,197, 20,148,241, 22, 99,150,185,
+107,149, 29,202, 60,226, 2, 82, 1,241,165,116, 57,199, 69, 21,183, 22,180, 61,119,187,162,100,195,248,203,169, 21,246,232, 50,
+188, 13, 20,181, 68,231,217, 36,216, 97,203, 68,245,209,181,154,182, 61,213,168,213,115, 45,210,112,156,165,166,211, 34, 76, 7,
+ 86, 15,195,209,179,171, 17,159, 34,148, 84,236,114, 75,175, 51,202, 90,168,152,192, 40, 19,227,161,204, 4,139,168, 15, 93,205,
+219, 40, 80,105, 85,105, 73,240, 62, 58, 97, 16, 2,112,152,172,210, 35,218,225,186, 38, 40, 21,171,238, 3,239,213, 91,164, 72,
+ 78, 23,229,178,251, 13,135,190, 85, 68, 41,215,148, 0, 30,202,157, 14,161, 41, 4,164,193, 72,201, 87,143,198, 81,130,104, 86,
+ 18, 10,171, 78,167,127,215,162, 87, 92,129,116,201, 50,227, 18, 53, 88, 49,200, 72, 82,194,232, 15,191, 68,243, 75,164,201,237,
+119,219, 75,118, 1, 14, 64, 72, 80, 64, 9, 38,157, 71, 77, 68,213, 46, 40, 36,234,133, 95,216,181,219,162, 51,119,102,129, 75,
+ 27,145,239,209,163, 92,164,161, 61, 23,145, 1,175,242,242,174,127,246, 53, 75,188,189,251,143,215,162,121, 69,217, 15,147,175,
+ 87,185,237, 77, 96,240, 87,227, 35,136,160,240,213, 56,146, 22,225,144,100, 71, 33,141, 21, 24,181,190,234,208, 27, 0,151, 15,
+190,135, 79,171, 40, 62,168, 5,220,137,246,163, 33, 0, 40, 50,119, 61,124,117, 33, 34,236,156, 72, 40,119,179, 6, 53,181, 15,
+ 54, 0, 42,167,196, 62,144, 52, 93, 89, 62,232,148, 45,219,211,113,135,146,159,223,109, 74,104,226,178, 98,131, 41,178,183, 48,
+ 9,100,224, 77, 33,196,128,167, 8,113, 68,211,222,106,117, 1, 94,136, 18,183, 85, 43, 50,157, 30, 77,166,223, 28,210,142,252,
+ 31, 80, 6,154,115, 89, 10, 98,110, 93, 85,253,212,200,173,216, 63,108,110,185,139,173,243,131,108,121,134,222,105, 37, 33,107,
+ 75,206,165,181,112,175,136, 10, 42,250,181,214,122, 43,165,254,239,168, 86, 8,120,135, 39,192, 2, 71,222,193, 93,195,172,206,
+192, 59,215, 19, 74,203,100, 93,231, 63,115,152,170,200,148,227,146, 93,229,226,183, 22, 86,161,191,211,175,160,237,150,210,195,
+130,245, 92, 10,255, 0,167,160,102, 31,197,208,105,242,219, 50, 72,108,130, 20,106,147,236,222,186,141,112,218,116, 86, 39,118,
+248,187,241, 68, 59, 91,137,207,204,187,133, 26,201,109,108, 58,243,171,111,147, 70,181, 80, 42,162,130,105,236, 30,193,163, 89,
+ 49, 88, 37, 87,220,102, 25,125, 52,206,240,201, 56,127,165, 91, 29,189,228,184,227,214,118,203, 14,177, 33,101, 5,178, 91, 89,
+ 69, 84, 1, 73, 79, 32, 40,122, 82,131, 92, 97,183,118, 65, 35,154,208,199, 31, 1, 5,114,191,108,173, 87,174,228, 98,226, 12,
+149, 41, 74,199,164,170, 26, 84,176, 66,148, 36,214, 97, 77,127,178, 87,250,117,141,245, 22,193, 92,105,159, 51, 22,241,227,255,
+ 0, 98,243, 46,191, 80,156,221, 52, 66,237, 60,111,243, 99, 15, 92,147,201, 37, 52,170,136,216, 16, 71,142,188,182, 57,211,102,
+ 0,191,130,230,141, 8,236,254,210,217, 32,182,242,163,179,201,226,180, 22,200, 21,161, 7,151, 93, 44,140, 28,203, 64, 62, 92,
+136,240, 37, 76, 98,145,201, 5,238, 78, 61,141, 92,236,177,224,221,164,136,239,182, 2,138,125,148, 53,174,192,210,164, 83,233,
+250,245,208,116, 47, 74,231,102,105,229,152,247,144,195,239,251,143,228,156, 97,153,241, 8, 4,110,242,118,215,183, 22,183,109,
+143,190, 93,116,178,175, 45,224,146, 8, 90, 85,247, 86, 5, 72,168,251, 62,189,186,203,126,148,230,202, 64,198,200, 17,227,203,
+248,247, 38,158, 41,138,222,215,169, 46,208,221,176,194,166, 46,106,143,114, 40, 42, 91, 15, 52,224, 80, 59,147, 66,144, 66,128,
+241,166,177,242,254,153,245, 90, 38,194, 17,152,228, 65, 30,230, 40, 70,137,197, 6,196,251,147,108,139,113, 13, 49, 61,165,161,
+105, 82,209,197,193, 66,133, 30, 33, 94,224, 79, 74,235,159,201,244,214,102, 49,254,165, 50,143,179,236,232, 83, 18, 8,221,171,
+ 37,125,134,167,203,229, 95,197,230,154, 26,142, 42,232, 69, 53,155, 44, 93,120, 32,139, 8, 8,180, 14,224,187, 43, 39,102,222,
+237,124,183, 83, 66, 62,162,117, 8,226,130,234, 62,113, 82, 51, 28,177, 22, 40, 43, 76,115, 85,149, 5, 26,111,196, 42,157,124,
+ 62,173, 84,167, 9,230, 95,130,209,174,237, 21,129,233,207, 56,126,107, 46,203, 42,226,216, 82, 27, 10, 38,149, 41,221, 66,167,
+220,160,117,222,122, 90,141,176,182, 93,171,186,244,137, 54, 72,158,196,203,222,172,230, 69,226, 20,216, 41,124, 58, 63,149,221,
+ 89, 10,175, 94, 86,151,154,165, 71,133, 87,175, 78,232, 92,214,175, 84,248,108, 15,205,112,181,189,245,201,150,135, 92,235, 82,
+106,106, 55,234, 79,233,215, 64, 34, 10, 29,164,136,150,224,139, 64, 46, 75, 9,116,252, 45, 2, 27, 66,143, 80,147, 93,254,146,
+ 70,164, 98,234,157,101,164,202,210,236,176, 66,111, 16,162, 52, 79,158,217,111,205, 90,250,242, 94,224, 19,238, 26,200,234, 37,
+184, 46,159,164,142, 47,205,118, 95,117,109, 12,221,189, 49,133, 60,134,215, 46,215, 58, 20,182, 92, 45,149, 60,148, 72,105,200,
+174, 37, 42, 27, 37, 10, 81, 65, 85,122,144,157,121,231,170, 43, 54, 97,159,251,178, 7,241, 30,237, 87, 63,235, 26, 67, 70,206,
+223,204, 42,119,183,144,173,232, 97,201, 18, 77, 36,160,145,196,251, 43,175, 46,148, 93,112, 18,144, 83,109,183,200, 48,157,150,
+250, 22, 0,173, 54,250,105,160, 77,217, 85,153, 9, 63, 42,186, 95,103, 60,161, 8,242,113,210,174, 59,248, 40,106, 84,200, 13,
+ 10, 25,134,224,133,230,107,147, 39, 21, 76, 9, 70,146, 27, 36, 40, 30,181,173, 53,106, 86, 54,137,227, 20, 58,215,114,153, 14,
+206,171, 92, 90,249,203,216,125, 0, 83, 72, 37,181,215,171,141,154, 75,211,163,188,163, 69,148,210,163,218,116,206,157,145,171,
+110, 6,252, 75,227, 55, 82,162,165, 45, 39,226,246, 80, 83, 82, 36, 33,237, 41, 99, 63,179, 92,158,191, 25, 76, 87,203,169, 6,
+158,208, 52,160, 66, 91, 74,139,142,195,202,108, 16,158,148,251, 71,202,119,225,229, 67,236,212,173,156, 93, 68,196,160,175, 68,
+189, 54,137, 23, 67, 90, 80,145,237, 2,135, 79, 89,137, 81, 98, 17,238,208,102,139,122,210,242,159, 85, 95,111,150,223, 70,138,
+ 64,137, 76, 9, 40,149,183, 38,188, 63,112,115,201, 6,170, 89,223,127, 29, 81,148,225, 50,234,102, 37, 67,201, 45,217,125,232,
+188,148,114, 12, 56,118,235,236, 7, 77, 43,225, 29, 19, 10,202,204, 83, 24,200,173,145, 93,140,225, 37, 73, 4,167,175,142,250,
+107, 50, 34, 20,132, 17, 76, 73,153,113,238,174,196,184,168,135, 92, 5,202,159, 13,245, 31,134, 65, 75,104, 69,185,134,224,186,
+243,194,166,156, 74,190,131, 77, 3,107, 37,181, 44,197,129, 25, 55, 69, 92,121,115, 2,165, 59,253,122, 60,166,120, 34, 8, 58,
+109,178,229,207, 65,179,252,176, 77, 89, 89,160, 81,251,116, 43,102, 8,101, 17, 4,175,146, 79,155,114, 91,136, 46,113, 20,246,
+251,119,219, 82,140,246,104,201, 16,143, 98,216,252, 89,209,163,115, 80, 83,193, 36,171,244,104, 22,100, 18, 83, 16, 0, 81,243,
+ 44, 72, 8,138, 83,107,224,215,197, 93,253,130,186, 53,115, 96,233,182,165,251, 28, 8,118, 88, 10,152,241, 10,121,102,155,245,
+212,231, 97, 60, 20,163, 16, 19,222, 45,103,106,242,194,101,172,209,134,144, 9, 81, 62,234,234,173,150,201, 45, 22,203, 21,204,
+ 55,112,114, 99, 42, 30, 67, 42,242,219, 3,161, 61, 6,128,204, 18, 91,251,153,145, 41,232,105, 71, 46, 75,162,121,111,210,163,
+ 70,174,173, 18, 66,110, 50,154,131, 97,107,229,135,197,196, 21,159,125, 43,167,218, 93, 74, 43,198, 7, 14, 70, 73, 30, 91, 64,
+ 20,182, 18,119,222,155,244,210,156, 74,114, 2, 7,106,177, 94,224,101, 47,176, 62,234,106, 81, 83,225,255, 0,209,171, 85,152,
+144,161, 40,149, 38,228, 47, 14,172,173, 68,134,144,119, 30,250,211,245,106, 22,136,144,193, 49, 5,107,181,217,114, 23, 37, 51,
+118, 74, 73, 64, 81, 41, 30,255, 0, 13, 42,118, 71, 68,138, 89,206,238,153,164,108,171,131,168, 87,146,162, 43, 74,236, 58,106,
+236, 99, 2, 10, 28,201, 10, 67, 87, 27,220,165,130,148, 41, 69, 0, 0, 7,182,154,203, 17, 27,212,181,101,178, 76,156,174,230,
+ 91, 77, 20,150,154, 21, 95, 95, 1,173, 41,152,136,160,135,116, 82,229, 58,235,123,176, 53, 9,178,106,143,128,253, 91,106, 56,
+243,142,210,149,160,190,136,152,187,223, 63,240,241, 88,233, 73,249,222,105, 72, 59,215,143, 19, 95,211, 77, 19,204,135, 30,229,
+ 29,133,144,167, 50,198, 17,120, 44,169, 91, 26, 84,125, 85,214,116,104, 44, 10,186,108,209, 31,201,114,146,206, 0,166,210,170,
+167,144, 41,247,111,169,198,151, 81, 18,117, 3, 14,157, 42,243,219,219,156,180,110,227,102,164, 15,175, 66,157,109, 96, 72, 88,
+235,197,198, 29,198,243,133, 38, 84, 38,202,148,154, 3, 65, 93,193,247,106,208,136, 72, 73, 45, 51, 14,224,187,145, 92,160, 82,
+218, 91,216, 31,111,253, 6,172, 0, 25, 41, 18,172,251, 62, 76,229,175, 24, 68, 71, 21,199,205,103,240,190,193,183,233,209,170,
+168, 21, 74,195, 39, 67,174,249,179,211,110, 86,219, 58, 9, 46, 69,108,184,189,252, 77,122,233,237,172, 69, 26,178, 85, 43,234,
+243, 37,189, 35,180, 83, 35,182, 20, 45,174,206,142, 38, 81, 43,226, 83,200,148,213,105, 52, 7,144,241, 26,244,223,166,213, 1,
+ 57,200,142, 32,177,211,248,191,220,183,250, 59,139, 1,239, 92,163, 26,238,165,184, 2,213,183, 77,245,233,209,134,233, 47, 69,
+ 57, 27, 32,235,241,249,203, 83,192, 21, 80,131,176,220,245,209,101, 6, 40,117, 93,186, 62, 10,229,244,153,107,150,223,114,109,
+247,166, 88, 14,165,183, 26,121,206, 73, 37, 73, 8,115,226, 80, 41, 5, 67,168, 32,141, 83,206, 47, 2, 21,188, 82,250,242, 95,
+ 68,253, 89,101, 82,110,158,158,226,222,108,107, 66, 67,145, 20,196,148,238, 16,243, 43,110,138, 74,131,117, 41,226,174, 42, 73,
+ 29, 55,167, 74,107,146,194,164,249,172, 85,171,174, 16,129, 61,171,147,187,127,119,149,131,225,151,108,145,153,113,219, 19,223,
+101,192,216, 62,105, 65, 67,124, 10,148,164,108, 79, 26, 3, 67,225, 95,118,181,186,223, 68,163,169,249,112,180, 22,137,125, 52,
+126, 58,118,113, 61,133,113, 25, 85,139,184,242, 65,167,247,166,226,250,150,203,215, 86,214,166,213,243, 45, 7, 22,186,240, 73,
+169, 69, 82, 41,191,128, 35,221,173, 92, 62,155,141,141, 16, 42,172, 15,102,191,128, 89,147, 2, 37, 14,202,251,151, 62,122,129,
+129,121, 49,194,195,106, 75, 37, 42,117, 13,168,138, 40, 18, 14,219,244,223,221, 77,104,198,198,228, 2,137, 61,139,205,130,251,
+103, 93,201,219,117,214, 67, 82, 82,251,128,184,219,224, 20,115,227,200,148, 5,148,240,175,176, 16, 61,213,211, 74,201, 18,225,
+ 60,102, 6,133, 87,125,233,236,205,165,155,130,110, 56,180,163,242,139, 10, 90, 25, 66,214,226, 77,106, 83,192, 44,169, 65, 52,
+240, 81,168,213,170,178, 73, 12, 80,229, 0,171,100,203,187,226, 76, 61, 26,109, 23, 8, 20,165,198,214,223, 34, 90, 66,234,165,
+ 26, 42,155,110, 13, 5, 52, 97,105,228,134,204, 23,140,179, 44,183,220, 98,176,221,144, 5,176,210, 80,180, 58,129,202,187, 4,
+144, 69,107, 78,170, 3,195,245, 30,171,228, 56,148, 59, 0, 60, 23,172, 27,189, 89,142, 47, 36, 38, 12,133, 44,185,196, 45, 15,
+ 56,162,133, 83, 96, 22,149, 29,192,216, 10, 17, 77, 80,234,125, 23, 11, 62, 6, 54,214, 59,136, 0, 17,238, 84,229, 72,151, 37,
+209, 93,186,239, 13,155, 33,186,183,121,189,197, 48,156, 40, 75, 65,198,255, 0, 21, 32,154, 2,161, 68,208, 18,125,166,131,175,
+134,254, 79,213,190,157,221,140,101, 58, 37,230, 68,106, 1, 12,124, 57,187,123,202, 12,176,149,207,103,197,241, 78,225, 91,151,
+ 6, 52,216,238, 44, 2,190, 13, 60,219,138, 6,191,181, 69, 19, 83,239,215,152,223, 70, 70, 57, 50,182, 18, 29,228, 17,238,112,
+134, 98,151,114,252,178, 39,105, 27,131,131,195,119,201,185, 75, 87,204,149, 2, 65,226, 84, 17,212,127,100,107,208,189, 43,142,
+101,131,230, 31,230,252,139, 47, 72,244,139, 87, 91,255, 0,121,108,177,102,174,220,190,114,109,229, 5, 54,248, 54,201, 41, 88,
+ 53, 87,154,226,218, 80, 27, 13,190, 53,171,166,189, 15,164, 87,161, 79,214, 44, 62,116, 66,161, 45,238, 56,243,171,120,245, 65,
+ 59, 18, 5, 55,165, 7, 79, 19, 77,106, 19,170, 52,100, 54,183,106, 47,107,100,178, 20,146,121, 60,181, 37, 3,217, 94, 32,114,
+175,210, 78,156, 29, 18,136, 14, 11,104, 53,251,202,182,123, 29, 0,156,149,190, 42, 10, 66,150,146, 87,202,187,141,171,183,217,
+172,140,229,189,211, 72, 1,118,245,246, 44,145,233,162,253,112, 67,126,115,205,252,132, 68, 37, 47,161,151,120,184, 92,113,197,
+ 36, 57, 94, 97, 33, 9,170, 18, 9, 32,248,107,132,245, 4,141,120, 22, 22,226, 64,239,237,127,187,177, 97,122,206,248,237,140,
+ 7, 29, 79,185, 81, 16, 68, 8,209,151,113, 67,148, 82,211,247,125,228, 83, 94, 77, 25,149,230,178,213, 47, 76,242, 69,201, 49,
+ 24, 86,210, 13, 85,191,141,107,161,202,221, 89, 2, 81, 70,172, 22,184,235,185, 37,114,126,235, 73,167,184,211, 67,144,116,162,
+ 8, 8, 14,125, 97, 84,151,144,243, 95,185,125,116, 32, 31,237, 31,244,104,149,105,197, 73,148, 41,177, 90,180,200, 41,109,170,
+136,205,142, 71,111, 16, 63,215,169,151,226,155,114, 21, 19, 36,249,251,162, 90, 90, 72,109, 59,133, 83,110,181,211,194, 36,148,
+210,179,181, 48, 92,115,230,236,147, 89,183,172,143, 55,134,213,250, 53, 96,208, 83,121,168, 12,172,162, 60,136, 34, 77, 65,116,
+185,191,215,215,245,104, 70,178, 20, 60,224, 74,107,129,148, 90,110, 61,185,146,185, 44,165, 75, 36,165, 4, 15, 18,105,253, 26,
+ 13,180, 18, 93,212,227, 32, 80,171,197,186,213, 19, 1,155, 53,196,143, 51,203, 33, 3,199,238,234, 24,178, 50, 46,165, 32,171,
+206,214, 64,110, 4,180,195,121, 6,143,146,181,127,180,107,171,153, 51,113,162,140, 67, 43, 2,211,109,139, 14,242,166, 56,241,
+ 73, 53, 79, 77,197, 14,177,235,119,101, 34,156,156, 77,170, 38, 55,230, 60, 0,113, 41,169, 86,221,104, 71,244,104,115,150,227,
+224,131, 41, 23, 80, 49,117,198,155, 96,145,118,112, 14, 9,168,173, 61,244,210,147,168,204,151, 64,173,205,162,239,127,126, 98,
+ 69, 25,101, 42, 82,136,219,225,165,117,111, 24,148,162, 75,173,136, 72,188,218,102, 51,111, 79, 37, 41, 42, 74, 0,246,131, 79,
+215,162, 89, 47,140, 4, 66,233,111, 9,192,242,123,179,142, 14, 10, 72, 99,225,114,181,241,248, 78,172,202,200, 69, 56, 37,214,
+236,138,201,144, 91,236, 95, 45, 24,126, 59, 46,209, 99,220, 70,133, 27, 32, 74,125, 80, 73,216,230, 71,113,118, 60,184,234, 33,
+162, 0, 88,220,245, 58, 54,248, 20,128, 36, 39, 44, 31, 29,190, 89,239,237,177,112, 37, 80, 84, 6,254,192,119,213,121, 8,238,
+ 67,178, 37, 66,239,246, 66,171, 12, 2,204, 58,144,165,124, 60,122,238,106,118,213,184,214, 36, 64, 80, 50, 32, 42, 90,127,114,
+174,134, 92, 91, 97, 73, 10, 42, 28,146,107,215,174,175, 28, 32, 2, 81,180,149,104, 61,221, 79,242,183,111, 22, 80, 72,158,226,
+119, 30, 61, 53, 67,246,160,201, 41, 72,146,134,246,215, 63,126, 77,141, 82,229,214,133, 69,195, 90,239,212,233, 89,136, 55,132,
+198,122,169, 55,220,186,109,198,202,212,213,215,148,137, 9, 72,175,130,121, 83,245,104,194,144, 17,119,232,157, 35, 64,145,125,
+199,219,105,148,254, 27,128, 2,175,102,213, 58,205,182,192, 9,100, 65,162,120,198,109,182,108, 79, 10, 89,104, 15,159, 85,121,
+145,214,180, 26, 0,153,146, 78,171,247, 47, 18, 95,202, 20,243, 91,175,113, 79,104, 3, 86, 54,104,166, 39,162,215,113,191, 37,
+ 73, 91,142,167,138, 66,136, 88,253, 7, 83,141, 74, 41,155, 8,200, 98, 77,142,136,160, 2,144,161,199,233,213, 91, 98,197,148,
+ 93,121,207, 97,219, 98, 78, 55, 89, 8, 74,163,146, 16,118, 27, 84,255, 0,175, 82,216, 83,186,137,134, 91,225,200,154,244, 38,
+ 80,146,226,135,152,131, 74,251,244,198,178, 20,244, 68,174,150, 6, 27,182,159, 33, 32, 60,237, 82,178, 7, 77, 51, 30, 9,152,
+ 37,113, 13,120,250,218,113, 96, 41, 5,101, 36, 30,149, 42,210,216,145,138, 36, 30,144,110, 5, 94, 80,160, 72,114,158,227, 95,
+244,104,111,162,139, 42,114,221, 37,203,238, 72,194, 83, 80, 22, 40, 72,254,238,186, 31, 36, 70, 58,170, 59,137, 1, 63, 42,195,
+ 54, 69,181,203, 60,138,169,130,161,199,232,214,101,151, 0, 88, 43,245, 82, 89, 59,118,123, 25, 98,215, 99,157,109,150,154, 33,
+ 96,138, 43,198,163, 84,109,183,113,112,167, 26,245, 79, 88, 38, 37,107,139,137, 46, 28,148, 10,149, 26, 84,120, 84,143,233,210,
+149,146, 68,140, 0, 74, 93,195,193,237,177,228,166, 84, 84,132,199, 9,240,218,189,116,133,242,100,251, 65, 40, 13,234, 0, 74,
+173,145, 15,221,165, 65,254,206,218,181, 86, 73, 3,193, 52,234, 14,183, 79,198,173,240,175, 2,232,208,252, 87, 82, 27, 26,108,
+156,195, 56,232,148,105, 0,164,191, 84, 61,188,178,228, 93,177,149,100,147, 33,200,197,198,148,235,110,199,228,178, 93, 79,198,
+ 7,150,144,121, 84,128, 79, 78,149,174,187, 79, 64,117,139,113,179, 35, 0, 6,201, 22,147,191, 2, 27,139,176,237,252,149,186,
+108,242,164, 8, 92, 16,214, 61, 53,169,138,134,235,110, 9, 8, 87, 5, 0,154, 17, 77,183, 73,233,175,163,227,140, 14,160,174,
+146, 29, 72,202, 41,130,211,218,220,198,247, 33, 44, 91,224, 63, 33,178, 43,201, 13, 44,168, 14,189, 18, 43,183,186,186, 29,241,
+ 17, 10,214, 53,196,151, 11,161,253, 53,246,251, 35,199,153,114, 98,237,242,221,122, 58,144,239, 40,136, 90,164,182,148,237,205,
+ 8, 69, 92,174,221, 66, 78,222, 26,192,202,176,153, 50,233,168, 48, 21,187,177, 86, 71,127,253, 64, 91,114, 75, 3, 56, 5,190,
+100,241,108,141, 73, 82,143, 4,177, 71, 0, 53, 71, 5,167,204, 74,201,221, 84, 66,106,116,248,248,123, 37,187,154,192,203,204,
+243, 6,213,206, 25, 62,107, 38,254,219,168,132, 30,136,132,133, 37,106,153, 32,185,205, 41,173, 62, 6,155,170, 65,254,246,181,
+106,165,203,149,129,118, 67,104, 18,101,218,101,253,229,162, 68,194,164, 67, 66,146,227, 74, 87, 53, 36,131,247,130,121, 29,171,
+212, 29, 93,133, 65,150,116,237, 46,152,237, 55, 81,114,181,162, 81,121, 46, 60,214,201, 91,206,135, 28, 27, 80,208,148, 3, 79,
+113, 58, 9,164, 58,113, 97, 80,231,223,203,137, 15, 49, 33, 65,228, 20,182,243,133, 11, 20,226, 62, 26, 18, 0,240,209, 99, 80,
+ 81, 54, 39,142,207, 95,162,221,231, 42,220,250,188,201,193, 1,182,212, 20, 57, 30, 68, 55, 68,146, 64,162, 71, 77, 6,200, 54,
+168,181, 77,210,215,122, 49,111,228,179,110,152,187,207, 45,198, 82,234, 20,177, 68,128,177, 66,180, 16, 8,235,241, 26,239,227,
+165, 76,212,172, 28,149, 64, 49, 11,245,154,228,171, 57, 74,215, 21, 91,149, 0,160, 74,200,169, 78,227,168, 4,138,106,208,177,
+ 3,105, 26, 45,234,199, 28,110,226,155,106,199, 21,157,157, 60,146,158, 28,182, 9, 62,102,195,235,211,139, 10,111, 45, 88,118,
+216,119,235, 53,169, 6,204,182,150,194, 20, 86, 22,132,182,149,171,144, 0, 32,114, 82,185, 36, 83,197, 26, 25,176, 58, 52, 70,
+139, 94, 23,146,101, 81,114, 17, 63, 25, 97,216,153, 31, 18, 67,144, 29,109,161, 67,177, 42,105, 52,228,107,239, 3, 80,190,154,
+178, 33,182,216,137, 14,240,232,114,168, 30, 72,159,115, 59,177,146,223, 50,155, 92,188,201,106, 55,168,136, 68, 68, 62, 91, 82,
+ 3,220, 87,205, 60,184,169, 98,190, 4,130, 53,146,122, 5, 56,216,230, 52, 6,139,146,218, 54,164,147,248,173,126,145,159,228,
+ 89, 24, 30, 31,197, 93, 88,124,213,220,241,139,147, 16,148, 0, 48, 66,222,124,144,132,178,148,138,169, 41, 53,253,162,106, 78,
+155,165, 85,240,151, 90, 93, 94,207,235,130, 15, 32,170, 75, 36,201, 13, 7,192, 9, 92,102,212, 28, 21,219,110,116,173, 9,241,
+165, 6,173, 69,209, 4,128, 26,113, 70, 45,178, 92,184, 5,203,113,207, 41,166,194, 82,223,130, 81,182,202, 53,241,161,160,212,
+228, 9, 14,137, 93,162,178, 34, 53,237, 87, 39,166,116, 71,159,126,110, 45,172, 46, 83,109, 58,134,252,228, 2, 66,156, 38,128,
+ 36,117, 38,167,111,209,172,108,154,223, 78, 43,160,199,188,199, 83,162,234,142,250,102,179,152,198, 96,246,162,198,243,114, 33,
+148,137, 55,165,178,220,103,129,184, 21, 87,224,125, 60,156, 79, 4, 81,178, 2,130, 77, 42, 69,117,228,126,179,234,162,100, 99,
+194, 64,198, 39, 86,110, 62, 60, 87,155,245,188,179,147,121, 35,130,166,228,219, 47, 44,199,114,156,144,210, 10, 80, 18,161, 78,
+158, 58,225,231,116, 34,177,132, 9, 11,202, 49,233,110, 95, 35, 44,172,143, 48,164, 2, 60, 14,170, 78,224, 82,140, 19, 85,226,
+204,237,161,196,192,117, 92, 36, 43,170,188,119, 26, 7,156, 81, 4, 2,135,124,118, 44,118,163,193,121, 92,159, 73,248,125,253,
+116,171,188,186,127, 40, 45, 22,232, 76, 75,146,252,121, 66,175, 61, 64, 71,187, 79, 60,130,116, 10, 63,183,209,101,203,182, 81,
+ 93,182, 25, 54,202, 7,218, 60,151, 78,180,241,209,106,200,218,135, 60,103, 72, 25, 86, 7,116,187, 94,219,187, 54,178, 89, 80,
+ 8,167,179,254,149,214,135,250,136, 32,168,126,213,150,219,159,111,223,128,227,112,119, 8,224, 86,125,228,141, 12,228,104,232,
+ 39, 27, 84,110,211,139,200,180,217,216,128,106,168,178, 8, 82,135,178,134,186, 17,200,220, 17,124,157,165,126, 95,218,106,100,
+ 68,219, 93,170, 35, 41,105, 65, 73,232, 64,235,182,154,175,128,104,150,199, 58,161,115,227, 91,172, 87, 52,184,216, 9, 9, 72,
+ 32,255, 0,119, 82, 36,201, 70,205, 20, 43, 94, 81, 38,237,125,117,244,254,237, 2,136, 62, 26,140,233, 16, 14, 80, 98, 73, 42,
+ 79,115,178,249,240,177,120,241, 98,146, 93,124,248,117, 53,213,108, 10, 55,146, 74, 86, 22, 94, 49,172,233,246,123, 97, 58, 27,
+ 64,170, 67, 71,226,250,119, 63,211,171,211,198, 26, 4, 25, 79, 84,115,183,211, 31,147,133, 23, 18,209,249,217,202,242,138,252,
+104,118,210,156, 5, 72,245,141, 17, 44, 22, 36,156, 94,242,228,121, 20, 80, 79, 45,143, 77,197,107,170, 54,203, 87, 71, 21,167,
+204, 10,116, 88,208,101,121,233, 72,126, 66,213,184, 27,237,176,213, 57,185, 41,205,101, 47, 92, 96,139,237,213,216,204,167,225,
+ 82,137, 32,123,180,183, 24,135, 72, 86, 81,155,119,111, 91, 45, 71, 97,180, 15, 57, 91,145, 79,163, 74,171, 73,213, 48,129, 83,
+220,180,197,135,118,106, 11,212,249,128,133, 41, 64,251,180, 83, 39, 75,105, 85,254,121,143, 91,110, 51,147,252,197, 1,109,135,
+ 56,164, 30,149, 39,109, 88,141,178, 18,209, 71,106, 66,185,246,142,195, 31, 41, 55, 87, 18,146, 18, 63, 9, 30,253,107,126,240,
+178,136,136, 69, 91,237,125,166,231,106,114,229, 50,139,134, 15, 26, 30,128,245,166,170,207, 32,130,164, 34, 22,182, 48,251, 53,
+190,206,166,216, 1, 12, 10,128, 7,141,116,142, 73,220,155,203, 5, 7,185,198,132,184,241,173,204,236,134,213,205, 53,246,214,
+163, 79, 27,228,120,164, 43,213, 91,120, 43, 45,219,240,212, 46, 77, 42,173,211, 95,160, 29,101, 93, 18, 45,117, 46, 40, 60,236,
+173,147, 33,216,124,255, 0, 9, 64,212,123,250, 87, 87, 43,173,148,118,175, 61,191,194,164, 95, 39, 59,121, 7,240, 80, 84,164,
+251,197, 53, 9,204,196,164,129,101,205,197,110,236,182,212, 66, 91,113,101, 4,123,198,218, 52, 37, 34, 17, 97, 16, 87,238, 36,
+226,109,151, 37, 41,181,127, 10,149, 4,159, 96, 36, 17,168, 90, 29,138,129,142,169,159, 41,109,139,237,157,232,104, 80, 60,207,
+ 48,107,211,106,232,209,147, 4,194, 11,243, 6,110, 61,158,224,137,202, 85, 80,144, 26, 62, 58,148, 62, 32,156, 7, 68,111,207,
+205,182, 73,118, 42,197, 89, 90,188,214,143,182,187,106, 70, 17, 36, 40,149, 89,102,153, 44,200,239,182,218, 1, 40, 76,132,115,
+167,176,171,125, 18,117,197,146, 4,171, 45, 66, 55, 36,206,219,129,128,167, 72,254,208, 41,166,178, 20,119,104,171, 60, 39, 27,
+105,171,250,228, 74,103,203, 67, 42,224,216,161,233,211, 90,211,201,209, 76,212, 19,107,225, 49,178,102,227,160,255, 0, 15, 84,
+144, 7,176,235, 46,113, 36,186,176, 44, 96,201,138,225,124,102,219,118, 85,189, 0, 36,134,195,155,120,232,120,213,153,161,217,
+ 61, 81,198,115, 38, 23,101,141, 38, 50,197, 43,193, 64,120,158,159,209,163,206, 59,100,201,226, 73, 8, 93,218,246,139,162, 29,
+ 74,212, 20,134,234, 69, 60, 52, 19, 23, 68, 35, 68, 14,232,243,115,226,183, 57,161,180, 97,192, 29, 56,208, 50,158,140,165,187,
+ 33,183,152,101,199, 55,229, 64,157,189,189, 52, 21, 48, 66,211,147,121, 14, 56,150, 93,169, 82, 0, 74,210, 9, 27, 31,160,215,
+ 69,162,217, 87, 45,195,138,112,197, 80,157,251,244,150,235, 63, 51,220, 30,220, 72,144,171,217,252, 85, 68, 33,151, 80,186,212,
+148,165, 10, 77,106,126,147,175,110,244,143,212, 81,165, 25, 0, 55, 34, 63, 53, 98,191,135,130, 87,244,251,234,102,217,129,102,
+236, 98,189,194,199, 82,153,173,150,210,250, 94, 74,152,146, 84, 13, 1, 9, 65, 28,171,224, 55,215,168,100, 84, 50,161,186,185,
+184, 62, 11,160,193,207,140, 15,196, 23, 96,247,155,214, 94, 13,143,118,105,201,125,186,132,252, 91,252,150, 82,134,248, 63,229,
+ 42, 59,171, 65,163,128, 56,216, 93, 1, 21, 62,223,110,176,232,233,114, 19,121, 45,108,174,171, 25, 71,225, 95, 61,178,188,179,
+ 44,202, 47,207,190,212,246,213, 50, 81,114, 93,205,247, 75, 78, 5, 40,142,101, 68, 52, 84,175, 48,154,159, 3,174,134, 49,137,
+ 92,197,150, 21, 14,208,197,237,114, 87, 22, 4,180,195,183,121,137,229, 33,212,186,154,182,164,141,184,146, 16, 15, 65,190,143,
+ 29, 21, 41,241, 76,177, 49,108, 94, 57,117, 78, 60,143,230,139,226,176, 67,136, 14, 56,179,224,164,113, 85, 54,175,179,233,212,
+101, 97, 9,180, 40,109,217,219, 69,160,150,221,248, 94,111,241, 24, 44,180,177,211,115,205, 60, 73, 59,120,214,154,136,176,168,
+146, 16,116,183,252,246, 89,139,110, 82,158,101,105,171,143, 52,219,137, 72, 42,241, 9, 88, 10,229,169,249,189,168, 64, 57, 93,
+ 23,233,187,211,124,139,108, 35,151, 93, 88, 76, 88,204,121, 74, 75, 79,209,165,186,207, 34,165,175,115,200,141,136,175,178,190,
+202,235, 59, 39, 60, 56, 11, 75, 31, 20,170, 59,212,151,112,161,220,243,185,247, 27,120, 66, 22,243,252,208,145,247, 19,197, 97,
+ 41, 41, 6,187, 4,164,109,171,244, 65,160,171,219, 55,146, 19,113,202, 33, 93, 88,136,234, 79, 55, 35,165,182,155, 91,102,129,
+213,114, 43,243, 20, 18, 41,202,139,160,250, 43,227,169, 68, 40,202, 97, 17, 98, 38, 59,111,120, 73,152,133, 25, 73,162,252,197,
+172, 44,112, 29, 70,251,113,175,133, 55,212,228,234, 34, 65, 16,191,247, 34,222,109, 14, 88,237, 37,182,152, 5, 38, 68,132,169,
+199, 22,162,234,232,148, 2,176, 64, 28,169,176,160,210,174,135, 46,161,102, 78,212,177, 96,115,231,174,239, 79,121,231, 68,120,
+252,154, 83,229,104,142,210,202, 9, 85, 10,148, 66,149,211,194,160, 83, 70,149, 69, 2, 25, 40,141,231, 60,139,121,129, 38, 44,
+104,145,230, 70, 74, 1, 5,106, 83,156, 55,218,170,124,241, 81, 7,112, 64, 52,212,170,139,104,121,163,249,175,170, 98,237,223,
+113,209,255, 0,135, 55,196,161, 72, 85,217, 49,214,148, 64, 75,116, 82, 16,131,183, 22,197,106,107,226,118, 29, 72,211, 28, 47,
+ 41,246,240, 42,228, 51, 13,146, 4,242,209, 32,218,123,131, 42,115, 10,109, 6,143,127,237, 43,229, 82, 18, 9, 60, 42,126,195,
+191,134,171,138, 73, 28, 22,151,157, 16,123, 83, 85,146,237, 35, 49,151, 26,207,143, 52, 95,100, 16,216, 75, 97, 92, 66,137,216,
+154,237,183,215,168, 89, 0, 2, 61, 51,109, 79, 53,220,158,145,113, 88,189,148,198, 25,205,242, 48,129,127, 45,151, 45, 81, 84,
+194,220,242, 86,107,252, 75,161,189,194,252, 16, 15, 78,180,173, 41,200,117,254,187, 71, 78,131,203,231, 60, 3, 63,181, 7, 59,
+168,233,182, 39,218,153, 31,188,204,191, 78, 55, 41,191,141,113,125,222,106, 81, 9, 78,213,167, 68,132,254,173,124,233,155,153,
+ 44,139,140,201,117,129, 57, 58,211,157, 24,145,173,143,200,101, 28,120,129, 81,253,173,101,137, 25,204,170,243,147, 4,161,137,
+ 92, 92,185,228,176,154, 88, 37, 10,226,174,157, 40,117,110,117, 0, 21, 67, 50,153,251,174,235,238,100, 12, 73,108,252, 41, 77,
+ 22, 62,132,106, 94, 72, 33, 48,153,116,141,122, 85,210, 83,176,164,178,146,165,169,101, 59,125, 58,170, 3, 20,104,204,186, 58,
+226,151, 14, 84, 71, 80, 9,154,126, 23, 52,204,136, 36, 81, 11,102, 72, 90,185, 63, 9, 68,132,185, 81,238,209,197, 97,212,183,
+148, 55, 31,150,204,229,204,183, 42,138,122, 58,138,146, 7,211,254,173, 52,226,201,141,139,213,152,200,203,178, 33,106, 80,252,
+ 85, 37, 73, 36,143,186, 6,250, 41, 31, 10,136,154,201,207,139,100,150,236,203,251,236,146, 9, 62, 20, 86,245,208,246,169,198,
+ 97,104,187, 88, 29,145,112, 76,132, 30, 81, 80,144,225, 35,165,104, 52,109,237,162, 26, 81,201,226, 73,154,243,142,161, 4,176,
+154,163,149, 58,106, 66,196, 9,135, 43,222, 41,136,162, 51,106,156,107,193,193,196, 15,110,250,161,153,150, 72,100, 90,234,230,
+ 83,165,231, 3,182,171, 27,102,116,230,194,159, 41,226,192,235,198,191,234,209,177,175, 53,196, 40,249, 78, 84,107, 47,110,108,
+246, 14,223, 73, 15,128,185,210,221,169, 7,173, 9,233,171, 51,203, 50, 82, 24,224, 20, 86,207, 18,221,143, 90, 35,169,105, 8,
+132,200, 43, 53,233,207,168,208,103, 97,154, 32,128, 5, 40, 72,205,210,185,210, 93, 86,238,184,162, 16,125,131,167,234,211,138,
+157, 66,114, 79, 56, 67,223, 59, 21,183,214,104,211, 77, 23,151,244,145, 81,161,202,164,254,102,137,135, 19,179,197,110, 43,215,
+ 73, 20, 15,186,190, 45, 15,113, 35,125, 82,176,238,208, 40, 25,128,136,219,111,241,160,101, 18, 22,234,135,203, 69,104,108,125,
+180,174,136, 70,208,164, 10,175,242, 12,205, 79,100,143,222,249,124, 38,173,182, 7,191,109, 88,170, 26, 58,107, 11, 4, 26,244,
+185,119,102, 35,188,210,170,242, 94, 10, 80,246,167,115,171, 52,176, 37,208,200,126, 10, 30, 97,111,150,139,188, 55, 98,142, 97,
+227, 66, 7,133,116, 99, 56,149, 2, 25,120,152,205,206,211,132, 92, 44, 41, 36,207, 75,222, 98, 71,137, 7, 69, 6, 37,144,136,
+ 40, 19, 49,239, 47, 72,102, 52,160, 67, 42,220,143,175, 76, 98, 29, 16, 58,133,123,182, 76,183, 54,185, 37, 39,201,109, 99,130,
+135,141, 14,167,183, 68,238,156,163,101, 78,205,197, 24,136,215,194,176,154, 10,125, 20,208,103, 72, 37,211, 18,202,190,200,110,
+147,237,178,100, 56,242, 84, 10,135,193,244,147,171, 53, 86, 20, 12,203, 43,159,181, 87, 73, 16, 49,136,145,194, 74, 95,125,174,
+ 84, 62, 53, 3, 84,111,135,196,134,102, 89, 83,189,204,188, 92, 78,106,155,122, 82, 79,150,249, 82,168, 61,164,127,167, 87,233,
+175, 69, 40,204,162,214, 84, 75,101,215, 96,187, 95, 49,215, 80,226, 79,246, 70,231, 66,156, 67, 41,130, 93, 18,141,115,185, 57,
+243, 9, 96, 19, 20,114, 72, 95,190,157, 52,251, 3, 50,144, 37, 67,199,110,215,153,178,154,181, 50, 21,230,149,239, 95,236,157,
+ 40,196, 4,209, 37, 58, 93,242, 39, 47,183,104,118,226, 40,166, 27, 9, 81, 61, 74,147,170,147,150,210,164, 18,182, 89,102, 97,
+167, 20,183,199,192,181,164,215,251, 85, 3, 68,140,204,194,103, 77, 5,226,111, 98,197,189, 68, 18, 15,210, 80, 20, 63, 86,151,
+145,201, 13,123,188,219, 99,201, 92,151,160,163,136, 69, 20, 8, 26,204,172, 21,162, 67,132, 24, 68,184,185,152,161, 46,213, 72,
+ 44,130,159,164,127,244,235, 70, 36, 72, 50,166, 67, 45, 25,149,235,201,186,198,186,168, 41, 33,228, 42, 58,182,216, 45, 58,142,
+ 20, 90, 68, 21, 27, 11,128,161,196,201, 23,111,197,144,219,234,163,190, 97,216,251,207,191, 74,248,188,244, 68,140,246,169, 22,
+236,148, 35, 18,157, 49,197,126, 47,153,196, 26,244, 7, 82,242, 24, 4,241,155,175,113,223,148,213,134, 52,119,149, 79,153, 95,
+153, 90,254,205,107,161, 74,181, 35,102,136,188,107,135,157,193,212, 10,199,102,148,246, 84,109,170,222, 91,148,222, 98,139, 50,
+236,221,194,236,153,149, 4, 57, 68,172,120, 87,174,136,106,209, 78, 54,178, 49, 6,242,212,124,157, 22,201, 4,112, 80, 10, 74,
+ 79,141, 55,219, 80,148, 8, 70, 23, 5, 79,122,225,237, 54, 31, 53,230,123,149, 98,137, 37,155,234,214,212, 87,166, 48,220,132,
+ 86,134,156, 11,143, 4, 54,145, 77,128, 73, 39,216, 60, 71,178,125, 51,234,121, 6,195, 76,166,240, 1,192,248,127, 45,126,228,
+122,239,213,146, 38, 82,152,142, 96,172,219, 32,221,211, 33,128, 4,110, 11, 64, 74,249,113, 0,132,186,167, 28,113, 74,223,170,
+146, 40, 58, 84,235,215, 76,137,151, 5,171, 18, 54,165,188,115,183, 86,166, 33,190,212,177,231, 78, 82, 66, 20,219,165,107,220,
+124, 68,142, 42, 64,241, 59,145, 95, 96,246, 20,241, 85,228,154, 59, 79,217,233, 93,200,200,153,237,220,117, 46, 92,247, 22,137,
+ 83, 29,217, 44,197,101, 79, 2,149, 41, 69, 60,170,118,232,127, 78,129,145,144, 42,137,145,209, 14,186, 13,178, 97,197, 89,125,
+204,238,215,162,143, 79,247,129,219, 28, 58,201, 39,185, 29,233,140,133, 42, 77,171, 26, 64, 83, 17, 31,105, 94, 83,136,126, 65,
+ 95,148,223, 21,144, 23,196, 45,105, 38,138, 0,144, 15, 55, 60,219,110, 46, 52,143,105, 93, 93, 61, 51, 31, 28, 53,174,102,121,
+ 14, 41, 34,127,106, 61, 71,122,149,192,207,119, 59,109,217, 27, 85,207, 10, 89, 91, 11, 93,131, 54,132,187,131, 14, 52, 65, 91,
+ 46, 53, 58, 52,100, 37,196,215,116, 41, 96,253,186,140,122,196,106,150,217, 75, 94,240,179,172,197,133,129,196, 8, 31,241, 7,
+247, 16,168,188, 55,185,110,246,179,184,238, 97,121,118, 51, 42,195,147,197, 83,110,203,177,101,241, 12, 41,205,182,181,249,105,
+144,149, 18, 82,243,100,138,115,108,241,250,122,235, 90, 25, 49,186, 47, 18,168,156,113, 29, 98,253,224,232, 71,241, 93, 11,221,
+ 31, 84,152, 15,109,123,111, 50,238,250,208,237,230,228,202,237,232,102, 50,197, 82, 22,128,144,144, 28, 42, 52, 9,220,236,145,
+ 79,168,105,168,195,157,147,213, 18,204,152,194, 58, 46, 16,191,119, 50,110,109,148, 57,144, 60,178,166, 95,112,172, 54,221, 56,
+182,223, 34,174, 32, 36, 1,176,160,215, 72, 43,218, 25, 96, 27, 92,186,219,110,204, 46, 49, 50, 38, 33,201, 10,105,150,221,109,
+148,114,253,170, 30, 32,208,109, 64,145,166,218,145,155, 43, 35,186, 55,246,173,248,148,124,142,206,201, 44,173,142, 46,202,108,
+ 84,166,169, 4, 4,143,235, 10, 18, 73,233, 95,177, 66, 42, 54, 77,152,170, 94, 78,125, 54,252, 27, 93,180,169,199,144, 60,198,
+221,104, 26,252, 35,226, 88,165,122, 31, 17,163, 87,161, 85,231, 39, 71, 45,185,101,198, 53,193,153, 23, 40,200, 90, 16, 18,151,
+ 8,117, 77, 6,214, 71, 21, 5, 22,182, 73,166,195,150,250, 58,174, 74,127,129,151,220,219,182,201,138,218, 27,101, 97, 42, 64,
+137, 40,169,228, 58,210,252, 67,139, 32,164,251, 15, 29, 12,192, 34, 70,194,132,225,147,215,111,186, 34, 67,124, 86,235, 74, 10,
+ 83, 65,124,131,136, 38,165,165, 43,159, 5, 37, 67,110, 38,186,177, 92,219, 66,137, 11, 72, 46,175,204, 15,183, 93,139,153, 5,
+171,244, 21, 58,228,185,132, 60,228, 55,144, 94, 91,110, 44,241, 41, 80, 77, 17, 65, 77,128, 20, 30,205, 81,183,120, 37,184, 45,
+ 72,229,196, 55,106,185,123, 91,140,227,118, 11,131, 87,152, 54,196,162,209, 12,164, 54, 22,195,117, 83,132,212,249,156,141,104,
+105,224,154,123,107,174, 35,212,158,164,175,166,192,185,121,145,160, 68,191, 60,136,171, 86,255, 0,220, 57,121, 89, 76,251,146,
+144,150, 99,169, 45, 52,219, 96, 32, 1, 90,211,225,160, 63,102,190,122,235, 93, 90,236,235, 65,176,147,247,170, 39, 36,148, 86,
+235,114, 78, 61,110,143, 62,180,145, 34,139, 4,248, 0,157, 99, 87,163,133, 8,218,232, 30, 73,148, 42,225,142,165,181,174,174,
+200, 95, 65,227,184, 26,175, 94,147, 42, 50,150,228,103,183, 86,184, 34,106, 28,113, 32, 45,182,146,162,175, 97,235,163, 74, 69,
+ 32, 66,153,220,233, 17,221,186, 48,211, 10, 28, 30, 79,196,175,102,135,143,113, 32,167,248, 89, 9,105,219,101,189, 49, 99, 26,
+121,168, 93, 83, 90, 86,149,211,234, 67,165,188, 5, 19, 34,151, 17, 16, 93,184,199, 88,230,194,185,245,247, 29, 24, 7, 9,163,
+ 32,135,192,158,137,141,155,130, 8, 4, 54,167, 73,250,191,213,162, 10,200, 42, 70,206, 74, 71,110,217,142,155,192,186, 83,147,
+111,165,194,175,126,158,196, 57, 7, 76, 24, 21,145,111, 94,100,100,241,126, 22, 24,119,227,227,236,161, 4,126,157, 79,112, 17,
+100, 55, 64,187,149, 45,135, 50,105, 51,161,236,133, 40,165, 63,237,117,208,145,107, 29,169,183, 18, 98, 36,140, 80,249,233,171,
+206,160, 54, 20,127,172,122,104, 18, 58,163,237, 5, 15,200,236,118,187, 68, 85, 88,222, 74, 76,151, 80, 20, 78,219, 26,106, 17,
+145, 67, 49, 65, 23, 29,136,150, 72,108,160,254, 58, 30,242,214,125,213,235,166,242,220,185, 86, 8, 0, 35, 63,205, 89,153,107,
+126,223, 94, 66, 58,128, 30,225, 65,163, 8, 32,146, 0, 64,231,220,230, 75,142,210, 91,168,101,167, 56,113,246,154,237,254,157,
+ 24, 86,193, 71,115,168,189,200,187, 45, 48, 90,180,180,170, 6, 80, 22,224, 29, 74,136,211,152,136,186, 24,147,149, 86, 64,188,
+201,185,228,191,202,227, 10,172, 16,143,168,157,245,126,184,124, 14,133, 62, 37, 95, 56,251,236,219, 49, 5,199, 64,163,239,173,
+ 12, 5,127,100, 1, 93, 84,200,210, 42, 60, 81, 43,214, 64,213,154, 48, 90,149,248, 77, 34,169, 3,250,196,106,181,116,104,253,
+168, 70,101,210, 83,185,111,159, 1,217, 74,112,252,219,202, 37, 64, 31,217,212,103, 91,201,149,136,203, 68,159, 43, 34, 84,251,
+203, 48,153, 63,135, 90,171,232, 27,235, 90, 20,180, 80,229, 55, 40,237,178,243,228,171,229, 1, 6, 82,149, 81,238, 77, 53, 94,
+234,152, 58, 85,216,153, 45,247, 8, 47, 92,225, 9, 52, 86,252, 77,124, 8,255, 0, 94,170,236, 36, 34,111, 82, 27, 68, 37,222,
+ 31,184, 62,223, 38, 2,168, 82, 71, 90, 10,141, 41, 56,100,196,232,162,101,130,214,202, 33, 94,225,129,197,229,148, 41, 61, 8,
+166,218, 35,151, 68,143, 4, 62,250,237,166,229, 21,171, 52,112, 15, 26,188,226,136,240, 34,191,175, 71, 23, 48, 81, 17, 66,177,
+132,195,114, 35,150,183, 8, 4, 57,248,106, 39,160, 6,186, 47,152,218,166,219,201, 19,202,108,150, 91,163,177, 24,117,170,200,
+ 31, 18,168, 54,162,124,127, 70,163, 43,187, 20,188,176,139,193,201, 45,140,203, 12,180, 66, 92,134,208, 75, 65, 62, 39,166,171,
+137,147, 36,165, 86,136,124,172, 82,207,119,156,230, 65, 53, 0, 60, 18, 72, 39,196,145, 93, 26, 89, 6, 37, 12,197,150,140,118,
+ 20, 43,189,194, 83,241,192, 63, 35, 29, 85,167,183,125, 57,158,137, 73,111, 77,157,136,214, 6, 99,162,137,113,247,133, 85,244,
+157, 11,204, 58,148,162, 59, 84,102,226,198,176,102, 77, 37, 27, 44, 40, 54,170, 83,170,182,212, 68,204,131,164,203, 47, 79, 71,
+182,103, 38, 58, 77, 3, 99,154,143,188,138,233,228,116, 72,112, 90,114,197,183,118,185,219,161,116,106, 67,168, 82,191,235, 3,
+162,213, 45,169,132, 29, 31, 75, 44,127,156, 87,119,175,240,254, 98, 45,181,219,254,237, 67, 68,243,121,168,237,228,137,219, 90,
+110, 69,178, 67,108,145,243, 8, 85, 40,105,189,124, 53,142, 74,210,218,188,217,225, 71, 50, 37, 93, 37, 80, 62,192, 13,239, 77,
+143,179, 82,140,200,213, 14,113, 5, 47,247, 2, 36, 7,173,255, 0, 39, 65, 84,185,231, 36,248,133, 31,102,167, 92,200,147,164,
+ 40, 4, 36, 44,174, 43,239, 33,168,145,119, 90,143, 58, 15, 0, 55,213,234, 38,250,149, 94,250,214,204, 86,203, 54,247,140,220,
+ 45,138, 37, 42, 43, 10, 73,247,167,255, 0,163, 86,229, 33, 19,170,140, 99,162,105, 77,177,249,137,139,104, 86,207,178,205, 83,
+244,210,154, 5,210, 3, 85, 22, 68, 49,187, 76,150,138,172,215, 4, 16, 93,170, 78,222,250, 3,160, 68,129,170,144,172,160,247,
+235, 36,252, 86,234,211, 18, 18,124,133,172,148,168,251, 58,141, 18, 50, 18, 42, 70, 12, 20, 94,229,100, 44, 98,119,219, 62, 95,
+ 45,208,205,171,128, 47, 56, 73,167, 20,129, 93,128, 36,154,120, 1, 93,104, 99, 96,203, 34, 66, 48,137,148,137, 96, 7, 51,249,
+ 32, 18,120, 5, 89,247, 55, 55,190,119,154,252,111,236,182,235, 56,108, 37, 31,229, 81, 29, 41, 65, 10, 90, 2, 84,243,129, 71,
+136, 91,148,160, 31,120, 13,190,245,117,239,190,152,244,212, 58, 69, 44,117,178, 95, 49,252,135,114,217,196,199,218, 28,241, 94,
+109,157,164,187,202,182, 68,137, 54, 48, 10,152,181, 41, 84,120, 7, 74,212, 41,201,192, 40, 18, 19, 80, 79, 77,181,210, 74,206,
+ 37,105, 70, 4,128, 22,235,247, 96,114,204,125,232,246,120,149, 92, 71, 72,113,167,219,114, 43,172,190,154,208, 26,161,103,127,
+167,125, 66, 25, 49,144,117, 41,227,144,152, 59,178,140,155,211, 55,164,140,165,252, 89, 50, 99,119,123, 45,121,139, 36, 41,212,
+113,135,227,198, 9, 66, 74,154,147,199,144, 41, 14, 45, 65,104, 63, 9, 0,138, 83, 88,153,247,249,146, 3,147,173,190,147,143,
+183,116,184, 24,135,252,191, 55, 92,249,150, 71,239,159,167,107,102, 43,219,127, 69,214,134,151,110,190, 64,110,118,103,220,137,
+ 81,226,202,254,105, 53,199, 7,155, 29,249, 82,249,183, 18, 43, 28, 18, 82,208, 41,216,215,226, 81, 82,149, 80,221, 89, 7,119,
+ 46, 74,190, 77,121, 53,204, 10, 70,135, 83, 46,247,231,220, 63, 53,246, 67,242,185,244,105,221,142,201,224,253,194,190,247,214,
+212,213,141,204,134, 92, 24,214,251, 19, 75, 97,214,193,182, 48,227,111,207, 73,142,183, 91,227, 33,199,104,130, 20, 73, 74, 1,
+232, 70,179, 51,250,124,252,157,243,208,131,162,161,155,213, 99,101,209, 21,123, 87, 37,126,118, 61,134,192,178,126,213,221, 47,
+ 41, 97,166,243, 44,105,185, 23,251, 28,244,128, 30,101,216,109, 42, 67,140,133, 36,138,182,243,105, 40, 82, 79,194, 73, 10, 34,
+169, 20, 93, 32,201,149,239, 48,110, 4,246,133,241,251,188,153,157,223,228, 27,179, 2,227,241, 89, 89, 83,143,168, 18,165, 84,
+ 81, 94,222, 59,147, 81,227,227,190,189, 27,167,135,139,174,111, 59,225, 36, 4,173,133,100, 81,146,164,176,232, 0,211,141,119,
+ 7,226,216,244,246,141,104, 77,102, 87, 32,155,162,201,141,117, 71,206,202,119,132,160,164,148, 84,142, 66,130,131,199,250,163,
+199, 67, 8,178, 42,220,236,143,112,177,233,246, 59,158, 3,144, 15,155, 19,152,226,174, 72, 75,156, 18, 27,226,146,147,213, 37,
+ 33, 53,168,223,233,208,236,129,119, 10, 2, 79,162,161, 47,114,226,195,187,220,225,246,242,220,253,214,205, 13, 14, 57,231,199,
+109, 68, 68, 75,138, 28, 93, 83,159, 15, 20,149,158, 6,187, 84,145, 90,212,106,169,201,218, 81,191,100, 76, 93, 77,145,220, 89,
+ 88,223,149,117,189,219,164,193,109,198, 16, 46,141,206,105,213, 68,228,177,177, 83,169, 5,170, 42,129, 73, 80, 62, 62,221, 89,
+142,104,224, 85, 51,143, 33,201, 49, 90,187,181, 18,253, 38, 44, 91, 36,166,121, 44, 37, 15,180,226, 93, 42, 73, 41,173, 40,121,
+124, 42, 78,227, 98, 43,211,221,106,187, 68,248, 33,202, 6, 39, 84,235, 14,235, 98,182,135, 2,219,109,219,146, 82,159,154, 67,
+ 64, 22,195, 78, 14, 68,164, 41, 72, 38,158,193, 66, 61,157, 52, 70, 72, 73, 92, 62,142, 21,142,231,119, 71,240,155,123,143,177,
+ 42, 58,140,176,203,143, 41,178,164,172, 84,128,186,252, 67,106,143,175,174,178,189, 67,212, 63,101,133, 59,128,115, 22,238,226,
+ 81,234, 27,164,186,141,118,105,176,173,235,179,197, 28, 27, 72, 10,240,216, 15,120,215,202,125, 83,172, 89,159,116,173,176,243,
+ 86, 44,168,146,139,218,241,116,170,223,111,135,200,149, 62,239,152,178,124, 64,222,186,199,141,155,164,170,236, 42, 95,120,238,
+107, 69,170, 50,163,159,194,105, 62, 90,105,210,160, 1,167, 17,123, 60, 83, 1,162, 85,180,203,113,251,108, 89,207, 18, 90, 74,
+248,160,120,114, 29,117, 9, 86,214, 20,252, 0, 86, 94, 48,251,237, 88, 94,187,199, 77, 66,168,130,161,236,216, 29, 66,109,180,
+ 39,218, 74, 31,127,121, 55, 89, 72, 90, 85,240,183,239,247,106,172, 32, 64, 79, 48, 64, 65,111,145,110, 75,150,155,146,129, 1,
+180,130,144, 58, 83,254,135, 87, 4,128, 9,132, 9, 8,102, 64, 95, 85,129,198, 65, 33, 75, 73,113, 71,127,126,141, 89, 5, 72,
+ 67, 68, 19, 4,188,202,145,103,149, 13,245, 20,188,134,138, 91, 39,161, 7,111,233,213,241, 16,132, 83, 54, 47,116, 54,139, 50,
+121,170,146, 91,162, 18, 61,198,162,186,169,145, 80,100,206,159,240,187,162, 98,224, 51, 80,193,254, 53,199, 60,211,237, 32,141,
+ 86,152,112, 8, 74, 39, 84,142,202, 21,145,229, 95,201,222, 39,154,249, 45, 7,218, 70,250,148,131,106,172, 70, 65, 49, 51,147,
+185, 97,198,149, 15,144, 11,101,208,163,254,202,169,253, 26, 20, 43,220,167,230,104,129,230,249, 79,157,112, 85,211,204,168, 91,
+ 97, 98,167,221,162,202,157,186, 40,139, 28,173, 86, 75,219, 55,140,122, 65, 89, 0,130,149,165,126,197, 2, 52, 72,212,158, 86,
+ 21,150,107,151,151,121,118, 35,171,226,212,196, 36, 34,167,246,128,174,159,104, 37, 6, 82, 82, 38, 72, 97,139, 12,169,168, 63,
+ 20,117,130,176, 60, 8,241,253, 26,148, 99,171, 40, 9,178, 86,206,110, 15, 25,106,144,149,114, 14,182,151, 6,253, 69, 52, 50,
+ 52, 61,201, 70, 76,146,241,119,154,137,148,155,162, 72,243, 86, 66, 0,254,209, 59,106,237, 35,224, 1, 41, 23, 42,227,181, 94,
+ 31, 92,115, 20,255, 0,216, 36, 41, 34,191,182,105, 93, 85,202,142,224, 2,104,201, 9,206,242,151,228, 77, 24,237, 56,190,211,
+ 97,210,124, 85, 81, 81,162,157, 25, 54,213, 5,219, 67,145, 89,138, 18, 9, 15, 50,167, 28, 62, 3, 81,132, 6,231, 69,150,129,
+146,125,157,213, 53,117,114,232,248, 33,181,184, 89,110,189, 40,157,181,165, 25,196, 29,188,208, 8,208,173, 22,220,170,106,243,
+ 66, 29,248, 90,113, 74,160,246, 37, 35,109, 44,186,218, 40, 84,133, 97,227,243,153,135, 10, 29,254,112, 42, 74,159, 90, 83,244,
+212,234,140,106, 96,200,132,151, 77,248,250, 25,184,216, 36, 93,158, 32, 37, 79,154, 15,160,109,250,181, 90,216,106,166,250, 36,
+ 62,224, 94,158,128,250, 34,127,217, 36,169,196,143,101, 78,152, 71,146, 53,101, 10,177, 92,228, 75,151,205,106, 41,243,126, 4,
+143,104,166,139,100, 24, 38, 5,120,118,225,252,138, 91,172, 19, 71, 2,171, 66,119,223, 81,144, 44,164,116, 86, 47,146, 39, 49,
+ 10,236,206,233, 17,234,170,120,242, 21,208,226, 84,156,148,164,235, 75,254, 99,231,180,126, 53, 43,141, 62,179,167,140,117,117,
+ 39, 70,178,203,193,131, 10, 60, 52, 26, 56, 19,197, 64, 29,206,212,208,229, 2,232,114,208,161, 29,165,187,124,188,251,227,110,
+ 42,190, 96, 9, 0,159,117,124,117,114,218,254, 4, 18,117, 68,111,183,132,166, 59, 44,133,209,109,168, 57, 74,244, 32,234,179,
+ 16,139, 18,131, 92,111,235,115, 49,140,250,205, 66,214, 29,246,253,221,247,209,235,175, 69, 19,168, 67,110,247,247,174,185, 5,
+206,238, 87,251,181,132,253, 92,105,167,148, 62, 20,137, 12,180, 94,243, 49, 14, 69,169,197, 44,121,137, 88, 53,175,128, 58, 45,
+ 84,186, 99, 45, 22,244,247, 60,213,103,204, 20,249,228, 57, 90,254,215, 5,105,121, 90,168,186,123,182, 95, 23, 24, 71,136,149,
+126, 36,167,146, 79, 94,131, 89,178,165,145, 69,234, 52,252,164,199,155, 45,144,170, 23,100, 82,155,251, 70,139, 28,100,198,212,
+ 23, 53,191,169, 76,161,210,173,214,231, 17,185,240, 26,151,146,218, 41,249,186, 45,118,150,216,149,104,110,254,104, 84,128,177,
+241,116, 32,105, 74, 59,116,237, 77, 25,191, 20,127,182,238,219,222,177,205,154,132,128,219,166,180,246, 30,186, 21,242, 32,163,
+ 86,200,232,139, 16,221, 35,220, 2,128,100, 36, 36,251,232, 52, 35,105, 60, 83,136, 34,147,101, 68,249,230,221,104, 10,161, 53,
+ 73, 26,173, 43,153, 26, 92, 16,190,242, 42, 52,155, 69,190, 74, 85,252, 79, 2,227,148,218,159, 89,213,204, 82,100,116,231,246,
+225,196,161,104,203,154,111,157,216,151,223, 12,149,142,221,226, 37,165,227,246,135, 84,195,151, 37, 44, 41,151,159,175, 21,148,
+146, 1, 82, 27, 27, 0,145,185,222,180,166,190,138,244, 71,166, 70, 5, 63,184,184, 31, 50, 92, 1,226, 7,223,199,199,144, 75,
+ 22,145, 41, 58,185,216,197,240,190,217,216, 89,109, 18,151, 42,238, 9,125, 92, 99,169,227,178,104, 82,138,212,242,169,167,221,
+ 20, 6,128, 15, 30,166, 83, 50, 61,129,111,194, 2, 33, 46,185,220,185, 88,220,215,174,115, 17,230, 76, 89,243, 91, 98, 50, 74,
+248,165, 73, 4,115,175, 21, 36,238, 42, 1, 7,221,165, 32, 8,100,104,186,184,189, 61,119, 59,179,189,217,190,196,107,187, 63,
+ 20,198, 71,146,218, 28, 67,174,167,250,201,228,178,218,148, 10,105, 93,134,222,221,103,228,215, 42,135,194,174, 86, 68,147,255,
+ 0,170, 44, 91, 5,203, 32,217, 94,237, 12,200, 87, 60,175, 28,157, 30,247, 6, 52,183, 66, 96, 41,112,223, 68,196, 50,226,190,
+ 33,193,197, 55,229,184, 66, 43,197, 71, 99, 74,107, 14,248, 78,112, 35, 94, 43, 95, 2, 85,194,194, 38, 90, 50,137, 7,187, 77,
+ 62,246,246, 39,239, 79, 16,125, 15,118,222, 74, 59,139,112,237, 53,170,211,157,151, 90,152, 94,121,113,229,179, 22, 94,206,114,
+140,203,175, 59, 29,149, 37, 95,180,202, 18, 43,189,116, 12,121,219, 81,121, 68, 72,142,208,177, 51,177,108,177,227, 27, 26, 42,
+229,238,111,174,204,125, 22, 71,147,101, 97,231, 7, 15, 50,177,155, 83,245, 65, 21, 4, 22,121, 2, 41,239,209,239,202,158, 71,
+249,133,135,135,217,213, 44,110,139, 40,200,109, 14,124, 71,230,190,103,126, 97,217,223,115, 59,210,196,220, 82, 4, 99, 2,211,
+115,109,216,178, 38,188,235, 75,112,199,116, 6,221, 67, 13, 50,165, 30,106,109, 69, 60,151,192, 38,188,135, 35,182,174,224,237,
+254, 87, 42,253,253, 58,116,151,180,129,220, 8, 39,238,112,184, 47,185,254,159, 35, 48,151,217,106,174, 58,194,200, 66,156, 33,
+ 45,172,114, 42, 81, 35, 97,254,191, 13,118,216,115,216, 25,115,183,213,184,191, 53,205,153,205,177, 56,238, 72,184, 80,137,228,
+104,182,208,129, 82, 1, 87, 16, 54,233, 77, 91,222,235, 50, 84,152,148, 74,207,113,117,212,161, 14,149, 39,238,132,144,146, 55,
+ 62, 4,248,244,212, 29, 41, 2, 2,126,198, 45, 47, 42,212,252,168, 75, 9, 50, 16, 80,225, 4,161, 64,165, 10,219, 96,125,181,
+168,209, 12, 30, 37, 6, 5,164, 22,175, 76,140,122,172, 99, 1,204, 36, 89, 35, 91, 7,167,187, 4,171, 93,199, 56,141,113,122,
+211, 30, 83,204,222, 86,228, 56,207, 48, 29, 90,103, 74, 75, 37,142, 4, 49,204, 51,200, 21, 4,243, 36,224,201,163,175,122,215,
+167, 34,221,251, 71,202,126,220, 87,208,207, 74, 30,137,111,119,255, 0, 68,246,156,251,187, 86,127,148,255, 0, 48,189, 58, 69,
+158, 60,214, 60,181,189,102, 82,248, 48,181,182,232, 4,161,197, 5,169, 21, 27,160,131,208,235, 38,252,194, 38, 0, 86,140, 65,
+118, 92, 81,235,107,210, 28, 63, 78,217, 52, 46,228,224, 10,249, 44, 49,217,204, 69,145, 21, 0,134, 45,114,228, 57,229, 50,251,
+124,105,198, 43,142, 16,219,173, 86,129, 74, 74,147,190,218,215,198,180,176,144, 84,100,211,248, 15,177, 8,118,220,172,102, 56,
+155,122, 63, 41,112,146,219,127,128,133,149,172,162,149,171,107, 59, 26,111,240,174,181, 27, 3, 93,111,215, 51, 48,178,109,134,
+210,159,125, 34,229,127,229,158,250, 66,157, 62, 42,156,130,195,209,140,181, 21,243, 83, 8,125, 85, 81, 41, 60, 79,194,144,162,
+120,147,160,117, 76, 67,149,133,117, 67,140,163,248,107,249, 41, 85, 54, 43,189,174,119,148,177, 34,115, 84, 28, 41,229,239,177,
+ 2,167, 95, 26,228,213, 56, 19, 9,134,144, 37,244,213,193,247,171,210,177, 77,114,243, 21,152,176, 86,202,232,180, 52, 72, 35,
+223,182,171,194, 4, 20, 56,144, 74, 31,144, 92, 99, 94, 49, 70,150,250,170,166,221, 40, 62,250,157, 29,136,144, 61,138, 17, 8,
+ 43, 17,126, 79, 29, 67, 76,238, 4,128,164, 15,239, 43,125, 88,143,196, 93, 65,216, 43, 42,221, 61,184, 56, 84,200, 9, 60,121,
+ 80,166,189,106, 5, 78,169,202,174, 9, 70,105, 52, 95,221,106,216, 37, 0, 84,162,176,157,171,184, 38,154, 39,237,244, 79, 41,
+184, 77,178, 37,199,149,109, 98, 74,168, 90, 13, 4,172,123,233, 77, 82,144, 32,178,132,102,201,107, 52,133, 75,107,173,197, 35,
+226,108,175,233, 77, 55,166,172, 99,233, 34,136, 44,112,149,241,104,172, 42,195,193,103,139,171,229,193,126,211,214,154,210, 18,
+213, 13, 69,147,145,173, 72, 96,179,247,218, 95,146,242,125,180,218,186,105,143,132,160, 74, 93,137,206, 6, 88, 96, 65,139, 49,
+181,127, 15, 83,205, 35,161, 30,205, 83,119, 96,150,160,148,219, 22,221,102,135,145, 65,204, 24,160,132,235, 11,117, 64,120, 43,
+254,131, 70,148, 9, 12,151,152,171,188,166,248, 85,116,155,107, 89,161, 46,121,141,239,213, 42, 53,211,215, 78,210,154, 54, 57,
+100, 22,252,244,135,218,254, 94,209, 37,228, 36, 41, 53,241, 4,104,246, 67,154,144,119, 90,177,187,196,171,118, 53,115,138,160,
+ 75,201, 28,169,189, 71,191, 72, 0, 74, 36,138, 47, 10,106,110,201,182,201,136,175,199, 74, 3,202,247,142,132,104, 70, 35, 80,
+144,213, 16,185,174, 76,104,151, 27,106,137,242, 39,209, 77,171,174,231,253,122,156, 8,116, 41,196,186,129,150, 98,215,104,120,
+148, 75,146,129, 46, 54,124,146,124,120,158,154, 28,153,212,227, 20,153,145,227, 55, 11, 52, 91, 85,246, 56, 41, 76,135,130, 84,
+ 61,167,144, 35, 87, 41,218, 66,140,193, 77, 71, 36,187, 91,174,236,171,129,249, 87, 40, 85,214,181, 0, 84, 29, 67,104,146,136,
+ 12,136, 60,216,202,243,215, 46,172,143,133, 8, 66, 10,124, 54,213,108,147,180, 4,104,132,217, 34, 55,205,219,221,132,216, 6,
+105,163, 13, 36,120,114, 77, 54,213, 11,108, 98,145,119, 75,153, 31,111,223,129,136, 6, 2, 71,207,176,240, 10,160,241, 82,180,
+ 60,108,147, 44,159, 16,166, 71,194,145,101,226,147,155,203,222,148,132, 17, 21,148,161,176, 71,245,136,169,215, 69,109,187,224,
+ 2, 8,139, 43, 18,234, 91,182, 98, 16, 25,124, 1, 29,149,121,138,254,241, 26,171, 41,114, 9,194, 99,237,178,227,206,178,195,
+128,243,149, 98,115,235,168, 21,168,223,109, 86,151, 21, 38,116,159,222,203, 41,182,202, 66,159,162,127, 17,113,171,239,240, 58,
+106,156,201, 56,146, 3,139,249, 33,108,202,112,138, 48, 74, 15,211, 93, 91,156, 95, 68,219,146,198,127,146, 39,252,206, 28,108,
+209,181,128, 13, 61,218,120,210,193, 52,166, 21,195,219,155,210, 46, 24, 51,100, 42,170, 69, 27,169, 62, 27, 15, 29, 86,133, 90,
+148,230, 73, 91, 53,185, 11, 6, 87, 21,142, 95,130,245, 22, 41,181, 77, 70,139,229,104, 82,140,212,200,168,115, 42,184, 34, 98,
+ 62, 38, 26, 95,150,126,146, 54,235,168, 93, 29,177, 83, 39,113, 73, 76, 95,164,227, 57,252,139, 81, 60, 67,170, 28,147,211, 86,
+225,241, 86,171, 76,177, 83,110,183,231,110, 51,101, 70,140,170,200, 66,194, 83,244, 87, 65,149, 73, 70,213, 3, 52,187, 63, 98,
+184,196,124,253,244,162,132,239,212,232,244, 86,233,231, 99, 45, 13, 92, 87, 27, 17,122,115,191,226, 38, 44,172, 31, 26, 13, 78,
+200,114, 81,141,138,186,200,114, 91,131,207,199,220,144,218,142,254,202,157, 89,199,172, 37, 57,169, 13,222,157, 54, 87,156,228,
+124,209, 53,148,211,122,238,203,138,254,141, 63,146, 55,123, 16,252,197,107, 90,179, 69,171, 56,131,107,113,127,187,228,119,240,
+ 35, 84, 37, 67,242, 66,243, 86, 74,200,145, 43, 46, 68,102,213,205, 43,146, 85, 81,253,145,190,172,254,216,162, 9,160, 93,206,
+204, 16,197,205,184, 77,171,225,111,154,143,211,211, 80,141, 4,169, 74,205, 20,139, 14, 88,231,254, 16, 59, 33, 10,229, 32, 41,
+ 69, 32,120, 2, 78,135,101, 63, 27, 34,194,127, 10, 57,218,107,188,209,143, 34, 83,171,252, 37, 21, 7, 17,236,166,168,229,213,
+170, 61, 51, 78,215, 11,139,240,236,232,123,149, 25, 90,121,160,239, 83, 67,191,234,214,116, 66,178,235,197,163, 32,114,228,180,
+173,179,248,133, 35,138, 79,141, 58,232, 54,199,107,168,239,220, 21, 77,249,144,122,137,141,218, 30,207,198,182,192,115,134, 87,
+144,159,144,138,161, 90,179, 29, 32,169,247, 69, 63,104,138, 37, 62,243, 95, 13,122, 71,211, 31, 79,142,161,157, 27,103,173,117,
+252, 94, 36,112, 30,246, 39,193,144, 55,149, 77,122, 17,187,200,191,135,174, 18,130,156,186, 60,166,209,109,182, 64, 72,162, 91,
+ 4,133, 41, 84, 39,221,237, 63,105,215,209, 93, 70, 91, 64, 1,109,244,200,233,170,235, 12,249,251,126, 39,136,170,230,204,132,
+185,145,184,134,219,146,226,156, 73,116, 36,172,164, 54,146, 57, 44,168,124, 91, 84, 15,102,199, 92,253, 82,148,166,199,130,220,
+144, 17,142,138,162,185,187,112,185, 68,230,149,249, 77,186, 82, 18,130,242,150,225, 42,216, 41,102,129, 32,145,238,213,228, 39,
+ 44,138,226,119,203,222, 59, 14, 69,129,183,158,224, 40,217,107,204,116,138,208, 38,165, 32,211,106,127,171, 67,178, 2, 74, 80,
+155, 43, 3, 25,202,238,146,172, 74, 76,135,202, 80, 1,242, 5, 18, 21,197, 39,122, 5, 85, 3,115,237, 30,237, 87, 53,177,100,
+231, 80,163,220, 51,107,220,249, 2, 20,127, 55,229,121, 41,177,201, 74,115,226, 73,228,124,180,168,238, 64,216,145,250,116, 65,
+ 80, 10,188,164, 87,137, 93,217,206,241,203, 90,103,254, 58, 82,231,224,149, 16, 42, 27,248,147, 80,148, 16, 41,198,167,127,163,
+221,168, 28,120,205, 48,178, 81, 85,214,115,234, 4, 73,186,249,247,116,174, 74, 8,161, 46, 21,143,188,181, 86,167,160,232, 9,
+219, 86, 41,195, 0,104,135, 44,146,232, 44,238,212, 91, 59,151,107, 55, 23, 90, 82, 45,210, 26, 74,163,184,207,152, 27, 79, 45,
+146,106,107,202,160, 29,200, 27,251,246, 58,117, 93, 24,241, 65, 53, 25,234, 23, 39,119,239,210,110, 87, 96,190, 57,124,178, 50,
+244,203, 35,239, 17,230,113,252, 69, 45, 36,236,221,104,104,120,236,124, 53,100,218, 36,171,207, 28,141, 82, 5,179,182,185, 93,
+185,197, 71,186,194,121,164,172,121,169, 74,146, 56,144, 72,167, 2, 9,251,164,113,210,112,171, 89, 81,101,100, 88, 49, 41,120,
+206, 48, 92,185,178,182,227,189,184,243, 0, 11, 11, 34,128,128,163,210,159, 93, 53,110,160,235, 62,192, 2,181,125, 24,119,171,
+181, 62,159,179,148,231, 25,167,108, 49,108,241,228,201, 67,168,111, 43,182,137,171,101,198,135,239,163,242, 80, 74, 92, 4, 3,
+ 85,182,232,218,161, 32,212,235, 31, 63, 14,195, 45,213,173,156, 11,104,182, 2, 22, 19, 25,118,143,204, 46,209,238,135,230,203,
+110,245, 9,206,125,201, 38, 36,226, 3,127, 40,104, 3, 98,148, 9, 64, 79,128,233,184, 26,199, 29, 46,210, 94, 64,191,219,177,
+ 78,216, 70,176,213,202, 50,240,227,238, 43,144, 61,121,247, 42,201,155,246, 46,245,137,206, 41,254,109,123, 49,224,219,227, 59,
+251,197,188,101,180,232, 90, 83,214,141, 4,151, 9,232, 2,117,160, 42, 53,197,155,185, 84,197,132,167,104, 45,160,212,170,195,
+187,211, 49,187,189,147, 28,187, 72,142,133,150,109,205,196,150,202,144,242, 22,183,152, 71,148, 10,220,160, 77, 42, 73, 21,250,
+235,177,214,254, 53,100, 5,151,147, 32,100, 91,181, 42,118,179, 32, 98,199,122,145, 21,129,229,220,228, 2, 66, 9, 53,242,210,
+193, 79, 36, 56,149, 16, 21, 82,122,142,132,143,163, 67, 22, 77, 46, 10, 17, 93,191,218,174,226,207,238, 71,108,220,188, 73,228,
+111, 86,230,217,141,115,113,102,165,105, 41, 62, 83,196,138,253,240,157,207,183,233,215,128,253, 80,244,140,177,114,142,109,122,
+215,105,115,221, 46, 7,216, 78,190, 37, 76,157, 17,139, 78, 86,202,131, 42,125,207,195, 13,169, 41,223,221,175, 41, 20,235,193,
+ 68, 77, 69,103, 42,117,120,147,181, 63,134,100, 81,179,244, 29, 78, 84,178,113, 52,199,140,100,112,165,196,136, 31, 80,226, 93,
+ 8, 30,245,248,106, 38,162, 6,137,247, 39, 92,134,224,136,211, 83, 98,220, 60,166,249,173, 35,173, 84, 53, 90,209,180, 39,139,
+ 32,247,216,209,236,248,131, 40, 90, 72,113,194, 84,146,122,208,234, 66,110, 2, 48,136, 69, 49,233,129, 88,195,118,215, 5, 67,
+139, 73, 66,235,184, 30, 58, 20,225,205, 14,202,220,168,247, 73, 63, 55, 14, 77,172, 14, 75, 66, 20,210, 28, 30,218, 29, 6,161,
+168, 42, 32,106,148,237, 54,245,219,236,242, 99, 75, 85, 36, 33,196,174, 56,247, 43,195, 90, 51,144, 3, 69, 58,226,229,104, 56,
+131,236,207,106,224, 43,242,210,106,181,131,224,160, 52,226, 96,132, 41,195,226,116,211,140, 90, 62,125, 45,227,178, 83, 71,146,
+181, 58,158,155,208,244,251, 53,159,115, 68,186,150,212,238,171,123, 16, 44, 44, 89,222, 33, 79,113, 90, 17, 95,217, 10, 31,233,
+209, 99,120,116, 51, 91,232,171, 44,146, 19, 98,233, 6, 83,201,252, 84,185,242,206,159,104, 10,160,209,167,112, 60, 20, 97, 4,
+106,235,133,178,238, 82,204,152,123,199, 62, 90, 22, 61,196, 13, 70, 55,184, 32,162,236, 68, 50,142,222, 69,137,113,114,109,189,
+ 3,202, 45,252,180,132,143, 26,142, 85,253, 58,171, 27,136, 68,148, 18,237,134,207, 30, 19, 69,164, 30, 15, 70,251,190,244,158,
+163, 79, 59, 9, 41,227, 4,126,197, 1,121, 37,158, 82, 31, 64,243,173,197, 60,149,237, 21,174,154,118, 17,170,150,192,143,228,
+206, 70,157,106, 85,129, 9, 10,242,216, 67,181,247,129,160, 9,150, 78, 35,201, 47, 49,105,135,148,218,153,178,184,129,198, 58,
+131,173, 87,168, 82,119,209,171,180,136,161,200, 37,236,208,166, 60,164, 53,198,142,144, 64,254,240, 26, 62, 44,202,105, 0, 86,
+238,220, 92,154, 84,183,229, 44,129, 68,132, 43,233,211,228,130, 67, 41,104,157,112,247, 99, 74,191, 55, 37,197, 13,144,167, 5,
+ 79,237, 38,180,214,101,177, 46,152,234, 86,200, 87, 72,183,169, 47,197,124,142, 14, 72,173, 15,247,169,253, 26,157, 53,109,147,
+243, 80,153,209, 67,201,172,182,166, 62,126, 4, 2, 23, 55,205, 11,168,166,212, 4,235, 82, 18, 36,178,128, 41, 31,184,183,229,
+ 53,129, 45,182,126, 41, 33, 92, 20, 7,133, 13, 53, 26,139,204,164, 84, 28, 7, 63,118,215,126,178,193, 67,149,101,165, 85, 67,
+194,167, 70, 53,110, 41,110,100, 87,212,197,253,203,150, 28,197,238, 56,163,236,202, 10,118,158,202,245, 63, 81,212,177,169,105,
+145,218,170,249,175,193, 87, 29,190,201, 28,187,220,228, 65, 66,170,218,136, 80,223,196,141, 92,157, 91, 36, 19,139, 28, 36,172,
+250,246,251, 23,151, 18,239,239, 25, 90,144, 73,247, 29, 91, 20,252, 62, 42, 34,110,173,126,209,101,202, 61,189, 98, 75, 75,169,
+ 50, 18,147, 67,224,126,189, 80, 21, 49, 41,229, 50,142,247, 94,210,251,233,182,221,192,170,155,112,110, 63,169,215, 77, 1,241,
+ 49, 74, 18, 44,153,253, 60, 38, 53,239, 31,185,183, 34,133,228,203,252, 51,227,183,179, 67,207,171,108, 85,186, 75,133, 80,119,
+174, 4,203, 31,116,228, 95, 92, 4, 71, 47,165,134,192,241, 33, 34,186, 62, 32, 6, 13,220,133, 96,114,235, 87,110,228,201,151,
+150, 38, 68,228,145, 25,231, 20, 77,124, 64, 27,106, 54, 16,204,154, 48, 76, 93,194,182,179,113,101,135, 86, 42,143, 63,201,228,
+ 7,129,219, 66,170, 70, 37, 18, 80,112,160,100,113, 91, 22,104,246,148,117,140, 10, 62,145, 74,233,229, 61, 84, 60,190, 9, 35,
+ 60,181, 71,182, 99,104,152,194,127, 21,199, 18,149,171,250,191, 21, 0,213,156, 57,252, 73,172,142,136,138,112,212, 39, 7, 93,
+208, 39,248,181, 20, 74, 35,251,173, 41, 35,244, 43, 82,253,199,199,247, 40,121, 92,211, 41,193, 46,182,236,214, 85,233,202,170,
+ 56,105,197, 70, 80,241, 38,181,251, 52,254,104, 33, 87,157, 36, 2,162,118,227, 24,187,204,205, 99, 71,151, 94,104,230,250,138,
+186,208,146, 43,171, 50,190, 32, 34, 70,162,202, 46,107,219,139,141,214,227, 62,252,215, 35, 17,151,126, 93, 9, 3,175, 46,167,
+ 64, 25, 49,138, 36,168,117, 39, 23,192,239, 22, 92, 25,248,234, 5, 72, 43, 40, 35,233, 58,173,102, 76, 76,157, 19,202, 33, 74,
+194,226, 93,109,215, 68,217, 92,170, 82,162, 10,134,244,220,106,173,196, 29, 81,225, 21,110,103, 22, 25,104,197, 97,219,216, 79,
+227, 54,128,181,175,125,146,175,110,177,137,248,207, 98,156, 73, 0,160, 22, 56,143,192,200, 35,199, 64, 62, 91, 40, 42, 89,246,
+212,106, 50, 59,156, 40,151,128,117,243,163,243, 89,239,148,158,229,250,143,107, 3,183,186,218,236,248,170, 4, 48,219, 41,227,
+ 73, 43,252, 71,188,199, 22,126, 37, 10,164, 26, 0, 19,210,149,169,215,211,127, 76,122, 40,196,233,240,181,142,251, 53,227,201,
+249,118, 13, 61,170, 3, 85,110,250, 21, 98,233,129,246,253,172,158, 79, 52,202,152,225, 83, 62, 96,161,109,180, 0,157,193,241,
+ 81, 37, 66,187,237,174,183,168,252,114,101,209,244,209,178, 46,121,171,247,182,119, 75,101,229, 79,228, 25, 26,137, 97,181, 58,
+219,105,112,212,149,132,249,105,219,125,192, 85, 77,126,141,181,153,105, 49, 96, 22,149, 68, 16,229, 22,177,223,240,185,119, 48,
+194, 82,223, 22, 86,227,238, 44,208,161, 5,175,188,176,145, 80, 40, 79,135,143,188,234,102, 18,110, 41,133,145,117, 31, 33,205,
+ 49, 5, 66,126, 93,173,175, 45, 11, 5,196,147, 64,226,138,213,197, 1, 69, 39,225,223,115, 78,191,167, 74, 21,201,217, 41, 92,
+ 20,121,153,125,174, 4, 4, 77, 46,172,151,154, 66, 27,229,196, 81,197, 81, 35,143, 47,132, 82,132, 19, 67,191,219,167, 21,151,
+224,135, 43, 64, 8,124, 12,182, 68,104,102,229,114,144, 18,218, 42,134, 20,190,161, 53, 38,161, 32,237,241, 10,239,214,154, 33,
+172, 20, 19, 97, 81,102,103,173, 93, 35,183, 13,158, 44, 69, 90, 83, 85,184,173,139,109, 18, 86,120,131,176,240, 20, 30,222,186,
+ 66,160, 19, 27,221, 86, 29,250,191,219, 31, 74,213,109,224,153, 64, 81,110, 40, 26,124, 61, 82, 56,251, 0, 59,248,157, 89,162,
+ 61,168, 19,147,149,105,254, 95,183,184, 14,227, 19, 25,185, 48,252,155,187,109,190,136,136,124,188, 26,105, 9,230,181, 15,196,
+ 37, 6,139, 36, 0, 0,161,165, 65,213, 14,164, 36, 14,139, 91,167,109, 63, 50,189, 44,246,190,198,103,237,189,139,100, 73, 85,
+142,246,197, 20,152,115,148, 18, 84,164,163,135,154,144,138, 5, 15,136,210,149, 34,187,208,235, 23,247,215,215, 45, 66,244,106,
+186, 39, 78,190,128, 97, 45,199,155,113, 10,165,239,143,167, 12, 11, 18,181,252,205,162,231, 29, 86,244,176,168,233, 8, 74, 28,
+ 41, 66,136, 82,137, 11, 5, 66,165, 53,250, 78,181,241,122,156,143,204, 22, 6, 79,165, 41,176,252, 19, 35, 69,197,253,252,207,
+254,110, 98,221, 82,210, 98, 68, 74,227,161,109, 41, 62, 75,174,182, 82, 1, 77, 58,146, 55, 39,173,126,189,117,184,214,131, 23,
+ 11,202, 51,168, 48,153,137, 46,197, 42,224, 88, 78,117,144,218, 25,158,235,170,140,201, 65, 90,124, 18,121,124, 65, 38,180,220,
+251, 61,218, 28,236,114,158,186, 73,139,160,153,109,151, 40,180,220, 2,228,186,165,202, 88, 81, 83,123,146, 41,241, 83,245,248,
+232,177, 67,176, 16,135,179,220,188,250,200,223,200, 33, 78, 75,182, 0, 79,146, 66,157, 77, 41,184, 41, 80, 35, 68,112,126, 96,
+233, 70,249, 71,129, 70,229,231,215,204,205,134,173,242, 80,134, 20, 82, 27,113, 46,161,109,130, 62,233,220, 16, 70,194,157, 40,
+125,154,181, 92, 34, 70,133, 14, 71,114,151,130, 90,219,199,175,204, 74,187,254, 27, 92,138,146,166, 18,209, 9,169, 59, 7, 16,
+ 19, 80, 69, 69,119,209, 5,100, 20,192, 46,228,244,245,141, 51,157,227, 74,187, 96, 87, 36,198,201,196,111,229,147,109,237,144,
+ 12,200,138, 3,146,120,213, 73, 87,196, 43,197, 94, 52, 59, 29, 87,234, 24,208,204,162,116,217,194, 65,190,222, 5, 88,133, 98,
+ 65,148, 92,223, 7,205,176, 41, 79, 91,175, 44,112, 40, 0, 52,234, 2,146,149,242,233,240,171,116,157,183, 30,222,154,249,147,
+212, 94,159,151, 75,200, 21, 72, 14,208, 71, 2,168,217, 89,140,144,236,177,249, 86, 75, 13,166,220,215,220, 85, 29,127,220, 73,
+241,214, 47,146, 9, 80, 14,152,176,187,124,166,173, 16,148,146, 84,249,185, 51,196,127, 96,170,186, 83,164, 8,148,163, 37,100,
+127, 25,121,239,208,138,149,127, 8,211,109,182,176,127,181,215, 88, 89, 81,104, 35, 9, 58,113,238, 86, 30,213,202,243, 46,201,
+ 4, 19, 6,216,207,159,191,182,149,161,250,245, 70,169, 48, 70,140,146,139,127, 59, 11, 30,142,230,226, 65, 60,210, 63,179,162,
+206,108,139, 35,162,159, 98,108, 34, 18,231, 57,241, 56, 66,214,107,253,106,116,213, 83, 55, 80,100, 26,109,138,124,143, 38,123,
+167,240, 94,113, 59, 1, 77,130,180,111, 48, 50, 35, 50, 55,144, 54,164,227,162, 51, 32, 9,173,188,158, 32,117, 9, 59, 29, 66,
+ 51, 81,140, 73, 81,110,209,238,120,196,216,183, 86, 43,230,148, 7, 20,124, 57, 29, 52,134,229, 34, 22,203,174, 91, 46, 79,149,
+ 45,229,116, 4,168,123, 9, 53,208,219,146,113, 20, 26,239,112,106,124,184,104, 35,226, 92,134,220, 36,123,136, 58,156, 9,220,
+130,155,174, 23,102, 16,227, 15, 53, 64,227,138, 77, 64,247, 4,232,230, 28,209, 35,193, 54, 76,109, 46,192,113,110,117,146,223,
+154, 41,224, 80,154,127, 70,170,200,106,164,171,184,112, 85, 34,109,193,182,254,250, 91, 14,164,143,167, 79, 36,242, 44, 19,118,
+ 3, 5, 17, 98, 93, 88, 41, 60,230, 52,135, 5,125,201,210,155, 18,147, 50,142,182, 28, 91, 46, 75, 31,121, 77, 4,147,227, 64,
+105,168, 72, 48, 81, 28, 86,118,254,218,212,135,209, 37, 35,116,249,202,161,241, 34,187,104,213, 51,234,148,254, 84,135,158,162,
+109,203,205,122, 42,106,243, 79,158, 0,123, 2,168,117,106,150,130,174,163,246,246,197,114, 84,123,138,212,130, 28, 82,124,196,
+143, 10,141, 90, 44, 66, 76, 84,252, 85,219,138,209, 34, 81, 81, 72,137,178,143,211,190,168,221, 0, 36, 20,235, 14,234, 53,158,
+241, 45,188,136,121, 38,172, 21,249,138, 39,192,233, 8,135,116,242,142,137,186, 11, 15,202,201,164,160, 29,157,101, 75, 73, 62,
+ 42,166,165, 85,154,166,242,138,135, 59, 4,131, 34,207, 29,153,130,137,121, 78,169,100,244, 37, 53, 58,169,184,198, 68,132, 95,
+ 44, 50, 67,127,183, 83,109,235,114,248,221, 82,204,121, 8, 91,100, 86,156,107,173, 26,114, 53, 5, 10,117, 58,179,243, 14,220,
+ 69,201,240, 23,210, 5, 91,122, 63, 52,251,214, 83,165, 28,159,136, 30,194,129, 26, 54,146,169, 46,220,118,198,237,103,184, 38,
+224, 1, 13,151, 67,106,175,181, 10,165, 62,205, 91,187, 48, 73, 12, 80,193, 37,119,191, 17,153, 15, 36,154,208, 77, 28, 90,148,
+242, 64,175,141, 14,181, 49,110, 18,130, 82,169,111,244,213,117,149, 35, 30,151,102,144,126, 24,206,151, 0, 63,217,211,229,192,
+ 13, 80,182, 50,183, 50,252,183,206,237,136,186,210,175,199,230,105,227, 74,144, 53, 74,202,218,200,132,213,240, 37, 28,244,223,
+115,143,109,178,187, 53,215, 2, 90,113, 10,152,226, 65,232,163, 82, 6,163,159, 29,218, 43, 84,150, 9, 79,188,114,224,229,147,
+225,249, 84, 41, 92,174, 70,158, 63, 17,223, 85, 42,145,137, 40,140,191,110,240, 34, 68,202,237, 22,235,114, 66, 99,165,149, 45,
+ 92,124, 72, 27,147,165, 23, 47,226,144, 41,138,195,142, 39, 33,182,189,107,146, 15, 38,200,125, 39,251,101, 91,126,189, 14,226,
+199, 68,224, 58, 88,207,163, 53,104,154, 82,165,124, 77,159, 45, 95,102,148, 1, 41, 20, 2,125,141,156,146,210,184, 41, 80, 82,
+ 22,227, 74, 66,122,239,200,106,113,153,174, 78,159,110,228,240,108,144,197,180, 89,120,143, 44,180, 69,126,132,129,215,235,208,
+ 60,195,199,189, 65,147,109,142, 45,170, 77,213,248,114, 72, 89,109,154, 55, 90, 80,168,130, 21,250,180,210,180,141, 85,141,129,
+150,220,107, 23,183,183,112,157,127,105, 33, 42, 66,145, 13,175,160,157,207,219,161,221,144, 89, 74,170,244, 83,178, 59, 21,190,
+200,204,139, 18, 16, 11,132,135,157, 86,213,169, 3, 85,236,182, 69, 78,184,106,180,163, 30,134,222, 44,185,203, 72,230, 18,227,
+137,111,192,211,161,211, 69,202,150,208,232, 4, 11, 4,105,140, 69,190, 2, 3,169, 87,152,233,241, 60, 78,195, 86, 1,125, 18,
+ 0, 5,101, 73, 67, 23, 37,181, 17,208, 21,201,132,151, 41,189, 19, 74,211, 85,167, 91, 20, 50,201, 46, 20, 64, 23,115,187, 36,
+127,134,168, 77,106, 64, 72,218,167,136, 39, 79, 93,111, 33,226,154,208,241, 95, 27,187,211, 45,251,255, 0,169,140,167, 33,134,
+180,173,148, 92,222, 75, 47,169, 10, 74, 82, 67,198,170, 9, 59,142, 39, 97, 95,167,174,250,250,255, 0,211,180,121,125, 62,152,
+183,242, 15,193, 86,172, 49, 11,167,251, 55,153,255, 0,151,240, 24, 13,184,232,120,178,147,242,204,236, 19, 66,121, 56,226,234,
+107,236,255, 0,161,212,239,134,233, 46,139, 30,205,177, 70, 15,118,100, 41,137, 13, 52,178,134, 30,243, 93,109, 1, 84, 80, 73,
+ 71, 34, 71,179,199,221,166, 20,186, 94,105, 68, 45,153,124,215,144,211,112, 1, 72, 44,150,214, 82, 79,223, 36,148,167,109,213,
+184,229,185,210, 49, 77,184,175,217,125,201,135,102,113,134, 84, 20,124,162, 11,105, 81, 20, 90,248,113, 46,174,189, 72, 27, 15,
+163, 78, 41, 37, 49,181,138, 26,174,233,166,253,124,102, 85,201,197, 22, 34,175,204, 76,118, 1, 82,190, 2, 66, 84,178,162,132,
+129, 83, 94,163,217,182,167, 26,140, 66, 28,173,117,234,251,220,104,172, 72,109,164,165,247,165, 58, 73, 80,142,164,164,167,145,
+226,148, 10, 37,193, 82, 60, 6,250, 81,165, 52,172,101, 58,204,243,249, 92,245, 89,165,195,185, 67,157,229,143, 42, 58, 28,139,
+230,148, 36, 84, 16,137,102, 57, 52, 78,228,147, 79, 30,154, 28,154, 60,199,223,253,169, 2, 74, 27,158, 88,123, 85, 18, 63, 27,
+238,116,220, 23,194, 75, 72,128,152,223,204,228, 41,124, 2,120,133, 90,220,117,144,175,239, 56,157,252,116,245,219, 51,194, 46,
+ 61,195,239,215,238, 80,176, 1,198, 67,237,246,237, 87, 15,163,203,247,111,196, 6,113, 12, 55, 33,188, 92,103,150,203,234, 71,
+242, 4,182,136,237, 54,247,146,151, 20,148, 92, 28, 8, 73, 95,237, 43,175,137,213,108,136,216, 11,202, 35,223,253,138,254, 53,
+145,219,161,116,225,223, 88, 56, 12,232,225,135,165,155,149,185,130,159, 33,106, 73,143, 44, 33,179,201,106,109,232,206,147, 95,
+ 49, 95,126,187,248, 26,109,166,141, 70,200,180,226, 62,222,196,122,242,236,162,123,161, 34, 10, 78, 86, 33,140, 92,160, 38, 44,
+ 91,178,212,193, 72, 92,153,119,107,179, 97, 17,155, 82,210,130,162,103, 45,182,127,173, 67,200,154, 13,245, 60,108, 72,198, 78,
+223,218,167,159,215, 50, 44,134,217, 75, 79,114,161, 59,185,216, 62,214,220,242,251,109,130,235,158,183, 62,227, 25,215,190,102,
+ 14, 53,107,145,114,150,144,133, 9, 27,249,238,198, 97,127, 10,184,146,135, 8,168,214,209,178, 77,164, 91,196,174, 76,252, 69,
+201, 79, 88,170,253, 50, 71,181,181, 0,204,200,223,118, 50,214, 30, 90,227,219,162, 56,133,110,207,196,201, 91,224, 84,154, 83,
+204,241,213, 50, 44,126, 74,240,150,136, 14, 73,153,246, 94, 53,208,255, 0,148,236,104,118, 96, 43,142,185, 23,104, 14,189, 37,
+ 20, 36, 85,167, 19,113, 28, 9, 20,220, 14,186,177, 8,207,153,251,255, 0,177, 87,145,117, 75,101,136,135,116,187,159, 54, 39,
+152,226, 84, 90,120,187,243, 42,232, 2,146,161,230, 62,233,161, 73,246,234,208, 85,100,183, 68,198, 45, 65,176, 27,132,195, 78,
+113,170,219, 73,146, 10, 72,253,186,121,148, 33, 73, 62, 30, 58, 36,102, 66,138,247, 54, 19,137,113, 49, 88, 90, 80,144, 66, 31,
+ 66,138,156, 64, 81, 2,138, 73, 85,126, 21, 39,127,183, 87,171,185,248,164, 10,232, 63, 72,153, 77,211, 0,202,224,221,173, 92,
+ 25,184,132,161,185, 12,154, 56,218,130,200,242,156, 79, 32, 9,222,169, 53,175,215,163,109, 4, 35, 87, 38,213,118,237,213,184,
+157,230,129, 14, 29,234, 43, 79,200,121, 44, 74,136,254,193,228,164, 14, 78,165, 37, 32, 21, 36,114, 27, 43,122, 10,208,109,175,
+ 55,250,153,210,142, 70, 8,182, 48,221, 58,207, 30,108, 70,190, 58,142, 8,215,180,194,172,178, 30,202,180,111, 51,236,183, 52,
+254, 19, 1, 74,110,190, 28, 58,107,231, 8,230,179, 42,134, 44,191, 49,108, 35,229,242, 56, 81,153,255, 0, 4,148, 9, 73, 30,
+197,183,237,213,159,222,143, 44,191, 21, 3, 88,117,181, 18, 76, 94,238,155,164,132,249,111,173,214, 66,138, 77, 2,130, 77, 1,
+213, 27,166, 37, 22, 72, 65,149,133, 38,252, 73,201,110, 50, 69, 30,146,160,194, 9,234, 65, 78,218,171, 42,192, 98,154, 4,164,
+ 11,230, 89, 21,216,177, 99,161, 60, 75, 73,242, 56,123, 77,116,214, 86,225,209,183, 41,179,158, 22,236, 93, 18, 16, 77, 29,124,
+ 1, 79,234,145,170,245, 69,194, 97, 36,218, 45,145,215,135, 67,117, 34,175, 33,196, 82,130,181, 36,238, 53, 86, 37,236,218,173,
+158, 8, 5,202, 83, 98,238,182,194,122, 58, 2,171,211,125, 90,219,162,104, 22, 82,187,159, 46, 27,118,215, 80,205, 60,197,121,
+ 72,110,190, 0, 13,255, 0, 78,144, 96,162,101,197, 37,184,135,215,108,105,213,130, 82,174, 65, 95, 81, 52,212, 52,116,209,146,
+133,102, 66,231, 74, 51,218, 37, 76, 51, 84,148,255, 0, 85, 67, 96,116, 82, 26, 73,160,204,183,220,242, 98,205,214, 12,126,123,
+115,109, 39,125,183,165,117,116, 65,194, 25,147, 21, 97, 68,204,162,184,187,160,113, 85, 49, 16,132,178, 9, 62,205,233,170,118,
+ 86,197, 20, 76, 50, 31,219,169,241,110, 18,230, 75, 89,170, 86,213, 72,246, 83, 64,176, 22, 81, 50,209, 62, 63, 29,187, 83,176,
+210,148,208, 57, 25,101, 84,241,218,163, 66,142,165, 18, 50, 12,150, 98, 92, 26, 45, 41,149,109,230, 36,166,158,193,207, 69,188,
+ 50,103, 96,183,225,179,153,129,116,114, 57,217,182, 92, 86,254, 31, 16,169,208,251, 10,140, 75,130,135, 89,173, 17,111, 57, 60,
+216,136,253,215, 53, 60, 43,208,111, 93, 78,115, 41,226, 3, 39, 27, 62, 49,106,176, 95,225,197,121, 35,229, 93, 87,150,245, 7,
+138,197, 71,233,209, 43,184,152,169, 0,225, 34,221, 97,179,143,100, 25, 62, 62,164,241, 60,202, 26,175,188,114, 31,163, 70, 58,
+136,148, 58,248,144,150,176,139, 4,235,155, 87, 80, 83,248,172, 54,151, 27, 39,233,175,244,106, 82, 97, 23,228,144, 5, 60,150,
+191,151,196,139, 61,123, 72, 45,164, 87,233, 20, 58,163, 68,183, 76,163, 29, 2,253,153, 52, 93, 44,209,173,204,167,248,198,214,
+183, 0,241, 41, 59, 29, 28, 65,204,148, 39, 50,202, 10,159,105,120,220,187, 34,155,170,202,170, 42, 63,101, 39, 81, 49,218,150,
+231, 1, 53,226,247, 72,146,109,177,172,206, 10, 52,147,229,168,127,179, 93, 68,196,135, 42, 22, 73,248, 33,240,113, 6,217,254,
+ 99, 25, 45,252, 81,143,204,176,145,214,149,169,211, 88,238, 59,208,183,104,202,146,239,181,136,191,220,152,138,242,207,202,186,
+208, 27,244, 53, 7, 91,152,179,219, 6, 76, 75,164, 14,208, 90,151,143,222,114, 8,171, 20, 74,124,199, 19,244, 19, 93,107, 76,
+137, 49, 85,200, 36,163,243, 46,190,126, 46, 44, 47, 43,224, 91, 74,113, 73,246,239, 93, 6, 48,221, 99,170,242, 59, 87,172, 99,
+ 55,115, 21,237,211,174, 45, 92, 95,152,191, 33,173,255, 0,103,113,165,100, 55, 76,162,137,176, 65, 33,101, 10, 93,202, 27, 15,
+170,170, 75,156,134,250,173, 26, 82,243,139, 43, 41,171, 53,226,101,198, 45,249,214,202, 33, 33,131, 69,171,165, 58,255, 0, 70,
+148,107, 1, 42,237,116,225,219,233,237,182,204,137,107, 31, 8, 79,154, 79,182,134,137,213, 57,212,232,145,177, 84,221,227,157,
+115,114,234,176, 16, 67,143, 60, 72, 20, 61, 41,162,209, 21, 9, 76,234,162,226, 98,224,195, 48, 86,186,249,109, 40, 62,253,124,
+ 1, 86,218, 29,209,116,106,166, 74,182, 75,112,149,119, 3,255, 0,103, 76,114,162,105,253, 96, 20, 63,250,186,173,183,226,218,
+166,250, 32,223,207, 29,110,230,227,209,205, 86,147,197, 60,124,106,116, 59, 70,138,123,147,166, 37, 61, 50,146,108,207,213, 42,
+112,165,247, 20, 60, 56,158, 90,175, 92, 95,197, 28, 77, 66,201,243, 6,239,217, 28,215, 35,170,158,119,224,183,255, 0,171, 31,
+211,162,249,111,162,111, 53,148,236, 74,106,114,107,252,108, 69, 43,170, 85, 13,194,177, 95,218, 52,240,210,219,182, 42, 50,181,
+ 1,141,117,105,187,219,184,195, 27,165,151, 60,144, 7,245,129,167,235,211,192,104,233,183,234,156, 46, 87,132,227,113,139, 46,
+ 56, 12,181, 32,165,197,215, 96, 72,233,168,100,190,129, 60, 78,133,112,103,174, 47,204, 14,251,141,181,117,236,111,104,166,170,
+ 28,151,148,166,175, 87,136,110, 36,187, 78,133,150,150, 1,227,239, 41, 85,124, 53,239, 30,134,244, 21, 80,136,201,201, 2, 69,
+190, 24,158, 3,188,191,240, 80,149,132,174,100,236,142, 30,246,107, 53, 62, 77, 20,181,172,124, 11, 5, 75, 89, 39,175, 31, 19,
+237, 58,245,203,164, 33, 30,192,137,143, 94,249, 43,190, 28, 3,143,220,156,105,198, 15,203,180,144,133, 7, 5, 19,181,118, 0,
+144, 60, 55,214, 93,146,220,181,192,100,157,127,202, 34, 91,239,119, 15,147,120,188,133,213, 33,100,242,169, 85, 83,197, 62,192,
+ 1,254,141, 22, 32,178, 25,152, 5, 48,227,157,193,153, 28,121,150,167,121, 48, 92, 89,101, 78,113,168,110,137, 71, 21, 1, 95,
+136,154,215,221,246,105,252,176, 82,243, 59, 17, 40,208, 46,247,187,143,241,199,204,148,175,141,146, 55, 37,197, 40,130,120, 80,
+147, 68,212, 0,117, 45,194, 42, 1,228,181, 77,197, 94,180,180,155,147,114, 35,196,104,164,252,114,127, 17,250,162,170, 39,202,
+109, 46, 41, 39,217,204, 36, 29, 39, 37, 66, 81,100, 38,109,233,167, 96, 59, 25,165, 73,153, 85,164, 9, 19,158,118, 59,101, 52,
+ 28,136,143, 25,202,133, 87,196,186,164,211,110, 58,127, 44,248, 33, 25,251, 84,123,142, 75,153, 94,210,187, 29,185, 42, 92,153,
+ 8, 66, 83, 14, 19, 73, 97,142, 35,238,169, 77,176,150,219, 38,130,165,100, 87,196,159, 29, 74, 85,198, 33,202,143,152, 74,109,
+197, 59, 65,143,199, 84,105, 25, 74, 69,254,254,143, 49, 78,194,140,242,147,110,105,194,132, 4,121,178, 26,162,222, 32,214,168,
+ 96,161, 36, 80,135, 79, 77, 2,118,158, 3, 69, 40, 71,181, 23,200,175,221,200,176, 45,153,152,163, 47,252,149,181,149,187, 2,
+209, 99,105, 45, 70, 62, 84,119, 56, 1, 25,158, 40, 91,170, 36, 81,106, 5,100,154,146,118,213,123,108,132, 3,159,127, 18,181,
+ 48,105,178,233,109,128,114,135, 99,221,247,184, 95,155, 91,239,220, 57,200, 87,148,102, 71,116,240,117,146,211,129, 38, 42,218,
+112, 85,178, 7, 34,160,104,121, 31,102,130, 50, 98,120, 43, 6,131, 18,210,112, 71,114, 27,153,250,142,197,239,247,223,228, 44,
+220, 82,140,189, 77,134,132, 37, 19,229,182,137, 41, 82, 93, 81,242,209, 74,213, 3,198,162,160,208, 2, 53,119, 15, 32, 18,203,
+ 63, 54,141, 28, 23, 75,183, 56,121,157,162,247,111,204,242,103,158,127,230, 19, 34,224, 91,112,135, 89,161, 43, 4, 20, 56,158,
+ 34,169, 9, 32, 83, 98, 61,167, 86,188,193, 45, 22,118,194, 3,166, 11,111,117,238,147,218, 93,151, 47,106, 37,205,165,184,181,
+ 50, 93, 79, 37,213, 9, 46, 37, 44, 72,110,142, 33, 59, 38,129, 36, 36,251, 60, 52,226,174,245, 19, 61, 20,107,153,199, 92,243,
+ 47, 86,133, 57, 18,115,203, 67,170,109,254, 78,178,150,254,237, 82,235, 73,220,212,116, 40, 20, 29, 78,136, 34, 80,204,144,140,
+138,209, 38, 35,174,173,208, 12, 3, 85,124,210,126, 38,206,192, 18,151, 16, 74, 8, 73, 32,236, 79,244,104,142,132,232, 93,203,
+ 34,183,139, 75, 78, 52,178,155,211,116, 1,230,143, 54,212,129, 74, 86,149,246,131,167, 73, 2,183,228,143,205, 72, 18,104,151,
+146, 20,145,196, 26,146,147,176, 62,207,134,159,103,191, 70,137,100,149,173,219,108,132,218,236, 17,110,109,173,104,226, 18,182,
+ 92, 81, 53, 40, 43, 34,160,143,101, 6,175, 86, 75, 39,117,217, 30,153,187,213, 37,219,133,165, 23,103, 74, 45, 50,155, 75, 75,
+ 43, 52,226,132,169, 96,169, 36,214,132,111,168,117, 44, 24,102, 99,217, 68,254, 89,134, 40,149,201,244, 87, 86,104,216,121,217,
+215, 93,139,234, 81, 98,187, 86,131, 99, 90,107,226, 30,163,143, 44, 91, 37, 89,227, 18, 71,187,181, 13,181,100,150,196,159,229,
+151,251, 99, 75, 20, 75,137, 88,229,237, 73,213, 80, 73,138,115,162, 95,207,194, 99,231,209,219, 99,103,129, 73,175,215, 93, 72,
+ 19,181, 74, 33, 53, 94,165,170,245,112,126,197, 0,132,190,162,203,155,120,154, 10,215, 80,149,191, 10,109,136, 54,109,219,191,
+254, 56,203,136, 60, 27, 80, 11, 52,240,113, 61, 70,161, 94, 75, 64,132,251, 29, 19,201, 45,254, 69,174, 11, 42,111,248,101,132,
+ 21, 87,193, 64,141,244,209,155, 40,195,138, 32, 50,133, 69,198,141,184,241,167,156, 10,106,119, 0, 1, 67,250, 52, 26,225,241,
+186, 52,229,162, 89, 92,137, 13,203,112, 46,138,117,110, 9, 13,215,196,120,234,228, 75, 22, 81, 18, 91,114,185,137,190, 88,207,
+148, 65,146,148, 45, 65, 62, 60,135, 81,161,109,208,120,162,187,132, 59, 4,147, 26,245,111, 98, 28,149, 0, 27,115,202,112, 43,
+192, 29, 70,208, 65,117, 16,206,163,227, 80, 17,109,191,221,237,174,142, 36, 41, 71,143,129, 65,220, 40,125, 35, 86,164,117,140,
+144, 99, 38,209, 37,184,153, 73,201,146,212,143,136,199,125, 42, 29,119, 70,244, 58,191, 13, 84, 38, 83, 52, 91,202, 92,159, 60,
+ 48,186,249,169, 33,193, 95, 16, 42, 52, 11,126, 19,170, 81,147,169, 61,150,188, 56,234,231,182,163,241, 6,143, 31,162,180,211,
+ 91, 72, 42, 30,103, 37,107,119, 82,249,252,162,101,172, 36,241, 73,132, 84,163,225, 82, 41,170,162,141, 84,163,102,170,173,198,
+242,215,174, 55, 25,237,242,171,113, 26, 82,235, 95, 10,215, 69,186, 3, 78,245, 41, 72,144,136,193,203,218,139, 45,114, 22,177,
+193, 73, 75,138,223,218, 41,161,249, 90, 38,223,162,100,236,211,138,187,228, 23, 21,180,126, 58,126, 25,254,205,107,166, 48, 96,
+161,231,104,139, 74,201,214,238, 86,195, 75, 53,108,186,144, 15,128,224, 64,208,233,135,194,141, 93,156, 86,159, 81,204,194,181,
+102,237, 93,173,228, 40,221, 89,109,106, 66,119,170,210,154,104,210,137,224,137, 68,184,173, 93,183,141, 25,200,115,103,182,143,
+142, 65,106, 45, 0,216, 15,218,211, 73,216, 5,103, 69,231,185,147, 35, 65, 75,109,182,186, 71, 72,242,154, 9,241, 41,208, 43,
+172,196,184, 77, 50, 2,141,132, 20, 75,200, 27,184,201, 63,194, 50,148,165, 93,105, 90, 84,234,112,113, 36,206, 19, 5,190,201,
+ 14,226,151,167,172, 4,183, 38, 74,144,159,247,116,169,219, 76, 11,201, 65,150, 98, 48, 25,114,238, 25, 4, 7,196,147,196, 31,
+ 96, 26, 45,131,114,128, 26,166,139,162,217,180,229,237, 60,186,121,114,227,173,133,163,192, 21, 10, 15,174,186, 16,131,233,204,
+ 33,152,185, 85,110,117,132,162,255, 0,156,198,183, 13,220,138,142, 33, 94,210, 42,105,171, 66,237,170, 49,139,170,158,225,137,
+ 73,131,145, 60, 88, 28, 27,146,167, 97,184,174,149, 60,182,253, 90,212, 22,238,128, 80, 43, 85,199, 29, 76,139,106,165, 4,240,
+125, 46,124,138, 79,129,218,186, 63,157,229,203,185, 71,202, 18, 14,128,228,184,132,233, 24,116, 71,208,133,121, 17,229, 41, 1,
+ 59,252, 84, 36, 29, 40,100, 13,202, 18,172,112, 90, 15,110,174,163, 52,138,226, 9,254, 88,176,208, 65, 31,247,135,239, 15,171,
+ 74, 23, 3, 22, 79,228,133,115,222,140,152, 88,195,214,148, 19,241, 22,153,108, 87,165, 15,196,126,205, 82, 22,124, 78,150,198,
+ 9,163,183,214, 59,124,155,108,132,164,209, 12, 45,164, 62, 79, 66, 54, 52, 26, 5,150,180, 84,227, 88, 1,210,142, 69,138, 65,
+200,178,233,211,222, 0,196,142,178,150, 18, 63,172, 18, 55,253, 26,140, 45,104,167, 33,212,140, 59, 13,183, 57, 99,188,206,125,
+158, 49, 90,101, 9,100,245, 37,100,255, 0, 70,166,117,101, 24,150, 40,191,242,246,133,183,205, 8,252,115, 23,200, 35,246,168,
+ 5, 1,250,104, 78,153,254, 55, 82,228,201, 58,199,108, 90, 20,229,229,223,240,229, 94, 90, 43,244,245,251,116, 57, 65,194,145,
+237, 77, 45, 93,224,227,246, 11,197,205, 95,226, 18,218, 89,109, 71,175, 35,215, 77, 85,108, 82,220,171,152,185, 23,159,145,197,
+ 17,149,248,104, 37,199, 20,125,157, 78,143, 93, 46, 80,141,154,166,255, 0, 79,119,227, 51,186,151, 44,157,127, 13,182, 20,103,
+212,154,157,190, 20,215,245,234, 82,164, 51, 40,206,106, 47,107,163, 61,120,187, 28,157,241,248,151, 91,130,153,140, 61,169, 14,
+ 18,163,191,187, 67,216, 61,200,206,144,189,126,247,230, 71,104,240,217,242,236, 13,149,221,156,121,113, 34,184,231, 20,180,133,
+ 1,197, 74,248,143,196, 71, 94, 32, 19,238,215, 87,233,111, 77,142,167,153, 88, 37,163, 18, 9,239, 31,109, 31,146,104,201,194,
+249, 77,114,186,203,201,178, 39, 95,150, 84,236,151,157, 83,143, 62,225,161, 90,214,162,165, 40,129,225,236, 3, 95, 80, 68, 70,
+ 33,162, 52, 78,186, 71,209,254, 57, 5,203,147,114,219,125, 49,173,172,165, 38,108,165,166,135,143, 45,208,149, 43,161, 87, 67,
+ 78,131, 84, 51,102,118,178,212,193,135, 53,208, 57, 4, 59, 6, 85, 31,249,133,133,228, 27, 75,238,169,176, 29, 9,109,110,165,
+ 53, 66,120,214,138, 0,159, 15,139,109,102, 86,241,226, 53, 90, 83,105,112, 85,141,219,210,244,220,134,238,226,109,229, 75,101,
+ 78,126, 31,201,130,180,212,157,202,146,149, 2, 0, 52, 31,209,171, 95,187,136, 26,170,199, 24,201, 15, 95,105,239,125,189, 44,
+ 53,120,138,225, 66, 79, 52, 54, 17, 84, 4,244, 7,225, 0, 84,168, 84,147,189, 6,137, 27,227, 62, 9,188,131, 13, 10,155, 3,
+ 32,184, 59, 29,110,160, 41, 9, 75,161,214,151, 66, 43,193,202,129,176,222,181,210,112, 74,147,118, 40,162, 45,219, 45,146,139,
+124, 6,202, 91, 1, 74, 90,148, 43, 85, 36,114, 34,131,112, 18, 18, 52, 81, 96,142,168, 6,162, 84,137, 29,189,189, 76,101,181,
+ 58,215,150,149,172, 15,133, 60,148, 91, 69, 82, 13, 60, 54,212,127,113, 16,162,113,202,149,137, 96,215, 31,154, 84, 63, 44,114,
+ 42, 83,170, 6,159,136, 60,190, 92,150,161,186,184,210,160, 86,130,157, 55,211, 89,120, 67,242,153, 89, 56, 6, 60,234,165, 51,
+107,130,218,190,101,194, 67, 32, 2, 64, 37, 66,174, 29,170,122,236, 61,192,106,140,166,250,164, 32,228, 5,222, 62,153,127, 45,
+123,157,239, 5,133,124,117,170,221, 33, 72, 23, 55, 28, 88,175,157, 84, 81, 64,211,160,166,201, 10,165, 6,185, 62,165,212,140,
+165,182, 60, 23, 97,209,236,142, 28,132,228, 89,211, 95,168,159,202,195,208,215,122,109,105,188,119,119, 23,105,156,181, 60, 60,
+217,241,218,122, 28,197, 20, 14, 52, 84,168, 74, 67,133, 52,240, 42, 35, 85, 33,146, 64, 12, 72, 43,183,187, 43, 31, 40,255, 0,
+ 86,168, 74, 61,174,210,247,134, 63,122,226,159, 80,222,135,189, 47,246, 66,249,106,199, 59, 27,142, 49, 13,165,190,149, 73,152,
+231,157, 41,229,178,133, 5, 31, 49,233, 10, 91,138, 28,146, 58,171, 91,253, 54,102, 71,113,119, 11,151,245, 21,152,213,213,229,
+211, 24,197,251, 56,251,248,253,233, 7,188,157,178,145,114,176,166,222,252,118,209, 62,221,205, 13,183, 80, 20,228,117,149,121,
+106, 72, 32, 18, 66,118, 62,253,107, 71, 37,164,235,140,157, 78, 25,115,190,111, 98, 94, 61,123,122, 53,176, 4, 41, 0,150, 67,
+ 73,160, 80, 73,228, 80,164,138, 84,210,190,250, 82,154,216,166,123,128, 43, 46,234,246,173, 22,151,228, 48,133,189, 25,196,200,
+140, 88,243,156, 65,113, 65,104,228,119, 29,118, 32,166,135,109,252,122,234,194,172,130,187,220, 9,182,235, 89,143,107,150,181,
+ 91,138,130,100, 49,181, 23,205, 9,167,194,107, 90, 5, 83,137,168,253, 26,102,116,146,180,121,220,175,207, 52,195, 73, 49, 29,
+160, 79,151, 84, 5, 85, 69, 73, 60, 62,239, 79, 4,129,190,164, 2, 98, 81,123, 52, 64,227,222,100,149,121, 47, 46,165, 47, 20,
+172, 22,235, 80,174, 98,170, 27, 84,251, 58,104,160, 38, 37, 88, 56, 94, 83, 17,187, 57,176, 92, 30, 10, 82, 63, 21,135,145, 68,
+252, 41,226,162,129,239, 27,170,158,237, 91,174, 65,146, 26,171,155,178, 89,155,238,221,161, 69,134,164,252,160,243, 18, 16,190,
+ 74,223,239, 37, 41,167, 77,247,213,200, 23, 10, 97,118,109,166,246,153,214, 73,141,169, 1, 7,130, 21, 64,165, 16,162, 18, 62,
+ 33,200,158,181,250, 61,154,248,143,213,122,103,228, 0, 27,250,146,237,254,241, 72, 29, 84, 44,186, 60,119,114, 59, 84, 8,224,
+ 37,193, 24, 40,123,121, 84, 40,141, 99, 68, 52, 18,117,170,253,134, 27,213,202,101,194, 48,229, 57, 8, 14, 68,246,159, 41, 28,
+149, 77, 70, 51,224, 20,193, 98,160,216, 99, 93, 32,223,226, 95,148,138,161, 43, 66,164, 87,216, 60, 62,173, 86,175,230,144, 70,
+ 58, 4,195,155,228,208,100,221, 16, 24, 72, 74, 82,162,149,143, 97, 52, 35, 77, 85,127, 55, 98,128,146,215,145, 74, 77,194,199,
+252,169, 73,254, 37,149,133, 33, 94, 36, 40,109, 77, 16, 6, 1, 11,154, 64,186,189,114, 72,101,100,144,252,117, 40, 56, 61,161,
+ 39,253, 26,183, 16, 1,241, 77,169, 10, 68, 59,138, 29,129, 30,114,207,196,219,171, 64, 81,254,170,199, 77, 53,240, 32,104,161,
+ 92,220, 33, 50,175,111, 66,159,243,169,168,142,149, 41, 15, 39,217, 95, 29, 40, 2,116,237, 86, 1,209,120,183, 37,235, 13,217,
+ 78,199, 81, 85,158,119, 23, 25,115,122, 5, 19,186,126,157, 30, 85, 2, 21,121, 88, 68,147, 66,146,185,114,147,127, 64,254, 45,
+176, 35, 72, 72, 31,121, 42, 27, 29, 13,158, 32,118, 40, 74,205, 82,102, 81, 9,216,193, 87,150,198,236,184, 90, 89, 31,213,174,
+172, 85, 39,100, 87,112,132, 90, 25,186,177,150,188,134, 18, 87, 22, 83, 62, 98, 58,144, 84, 6,227, 71,201, 2,202,251,194, 29,
+113, 32,167,142,218, 89, 83, 8, 92,110, 73,217,159,149, 90,211,238, 88, 59,131,170,248,150,249,145, 99,196, 40,219, 86,169,187,
+188,247, 56,243,112, 88, 55,244, 26,173,112,208,211,103,222, 54,167,232,209,204,117, 85,193, 98,169, 12,110,245, 50,217, 34,232,
+130, 42,228,166,210,210,125,212, 21, 35, 70,182,160, 68, 74,181, 18, 74,223,112,153, 62, 28, 71, 31,126,160, 45,180, 4, 39,127,
+ 29, 52,107,213, 8, 59, 21,109,250,112,184,202, 51, 46, 75,105, 63, 28,120, 60,137, 61, 10,202,122,111,170,214, 86,132, 11, 13,
+ 80,139,230,102,109,205,176,227,191, 12,245, 56, 92, 80, 61,119, 61, 53, 8, 86,202,221, 71,159,106,131,147,101, 23, 12,134,249,
+ 9, 79,184, 92,117,161,201, 38,181,162,148, 40, 0,211,144,218,162, 66, 65,149,161,136,121, 24,254, 32,220,101,124,119, 5, 15,
+ 49, 67,216,165,253,209,170,224,110, 82, 22, 42,239,184, 89, 35,106,184, 55, 25,213,243, 48,194,138,192,232, 92, 89,160, 31, 86,
+141, 40, 48, 79, 41,186, 98,195, 93, 74, 45,140, 14, 84,248,121, 60,125,171, 86,244,213, 81, 6,114,152,205, 24,183, 94,156,102,
+226,197,177,213, 81,182,185, 73,113, 62,196,251,254,173, 60, 32,159,204,209,106,192,110,174, 79,203,229, 95, 66,138,109,172,173,
+ 74, 4, 86,132,141,205, 52,113, 29, 19, 25, 50,147,118,202,156,151, 61,119,103, 84, 75, 65,192, 25, 29,119, 42,219, 65, 33,181,
+ 77, 25,144,131, 74,202,213, 23,185,101, 42, 53, 45, 4,184,225,247, 41, 52, 58, 30,215,131,246,167, 18,100,181,156,185, 25,118,
+247, 87, 25, 35,230,155,150,167, 57, 10,116, 59,235, 66,191,132,109, 42, 0,169, 42,183, 64,149,133,198,147,194,146, 22,175,155,
+ 89, 63,214, 73,212,140,247, 58, 78,179, 33,143,110,143,111,249,116,182, 63,151, 37,191, 60, 5,116,243, 28,219,245,232, 85, 59,
+ 38,148,156,186, 93,145,113,182, 34, 93,190, 35, 31, 2, 99,172,243, 39,127,138,149,174,137, 45,206,158, 51, 68,114, 76,190, 59,
+209,235, 21, 53, 17,192, 91,135,250,196,154,105,246,188, 89, 64,241, 91,187,119,220, 97,111,122,227, 26, 75,149,130,150,139,197,
+ 53,175,199,225,166,242, 92, 0, 82,148,217,121,181, 95,227,179, 1,153, 79, 40,243,125,215, 30,122,157,104,170,208,104, 83,210,
+ 64, 36,250, 38,158,218,220, 24,188, 89, 23,109, 70,200,124,184, 72, 63,217, 86,195, 78,100,210, 66,226,189, 38, 74, 63,205,203,
+177,126,207, 36, 48, 15,254,173, 71, 76,220,212,183, 37,107,220,208,139, 76, 75,109,176,127, 15, 82,250,192, 31, 17, 0,237, 95,
+175, 86, 99, 29, 64, 41,237,249, 82, 94,125,149, 62,206, 36,251,110, 57, 71, 29,123,226,247,211, 86,171,168, 25,170,190, 99, 4,
+191, 21, 19,109, 24,172,139,212,138,166,227, 36, 37,166, 18,175, 15, 51,253, 90,182, 34, 4, 73, 74, 32,232,172, 46,215,199,122,
+217,219,235,204,200,130,146,164,182,220, 52,171,253,231,222,233,172,201,216,192,149,118, 53,185, 76, 86,199,173,248,163, 22,169,
+ 16, 71,154,171, 52, 55, 36,169,132,169, 40, 30, 98,200, 5,199, 22,175,133, 8, 21,169, 42,235,224, 10,168, 11, 98, 86,103, 31,
+ 31,179, 14,243,253,188, 18, 60, 89,124,200,245,169,221,171,159,118,123,175, 41,232,211,156,184,219,161,169,200,209,156,230,175,
+ 32,173,106,228,234,163, 55, 64, 16,217, 86,194,191, 17, 2,170, 36,239,175,166,125, 25,210,191, 97,131, 16, 99,182, 82,212,246,
+235,219,223,248,112, 83, 17, 84,196, 43,104,136,191, 63,133, 79, 34,165,169, 98,133, 70,155, 0, 20,122,123,117,213, 41, 0,202,
+219,237, 85,202,245,100,100, 50,228,215, 17, 1,208,135,223,102, 58, 90,224,164,175,227, 74, 84, 86, 43,191,142,199, 64,178, 59,
+149,218,100, 98, 21,163,134,228,178, 27,187, 25, 43,117, 1,197, 35,139, 97,117, 79,146, 9, 7,224,107,116, 18, 61,201, 26,132,
+171, 12,143, 27, 53, 86,166, 37,147,223,236,252, 92,199,102,182,167, 1, 42, 17,229,151, 90, 73,216, 2, 84, 2,208,119, 59,252,
+ 58,163,117, 81, 35,130,187, 81,144, 58, 21,112,218,153,178,103,152,180,104, 23,171,120, 18,219, 72,105,197,249, 18, 62, 53, 41,
+ 74, 89, 82, 23, 32, 4,134,192, 36,130, 9,253, 52,214, 60,160,107,145, 33,106,129,188,106,128, 93,189, 30,216,165, 60,155,245,
+184, 44, 41, 65,208, 26, 37,196,114,105,142, 43, 42,230,177, 94, 5, 75,222,130,190, 26,156,122,140,248, 21, 31,217, 68,168, 86,
+ 14,217, 59, 97,101,139,109,150, 10,155,138,162, 27,146,235,104,252, 69, 85, 37,197,110,104, 82, 14,196, 10,116,235, 93, 79,207,
+221,169,213, 55,237,155,130, 62,239,111, 46, 46, 48,234,147, 1,100,176, 82,130,174, 32, 40, 14, 59, 2, 87,176,169, 30, 62,237,
+180, 49,102,161,210, 56,250, 45, 24, 87,167, 12,178,249,115,100, 8,197, 45, 5, 37,181, 56,174, 67,136,116,113, 21, 36, 86,128,
+ 87,113,215, 70,187, 32, 68,119,170,159,180, 37,116, 87, 98,189, 45, 90,241,251,165,189,119, 40,193,198,220,113,180,191, 41,124,
+ 67,110,169,106, 42, 9,230,106,105,238, 3,235,214, 94, 70,105, 49, 40,213, 97,128, 67,175,169,253,146,193, 96,226,120, 44, 43,
+124,101, 5, 35,202, 77, 82,132,241,108, 87,127,133, 52, 31,167,125,102,244,236, 49,105, 50, 37,100,117, 92,163, 43, 25,153,145,
+252,143, 4,197, 50, 88,229,139,244, 54,164,180,161,196,165,196,131,215, 90, 57, 61, 54,184,135,118, 42,149, 25,214,215,242,146,
+185,207,212,239,161,238,215,229, 54,177,125,129, 21, 13,200,140,146, 26,111,203, 11,160,161,216, 29,141, 42,117,154, 50,103,142,
+ 88, 29, 22,198, 53,255, 0,185, 45, 49,170,249,215,234,103,181, 12, 67,150,245,145, 8,228,244,116,121,141,167,129, 63, 3,103,
+226, 64, 81,232,164,157,233,253, 26,214,162,211, 48,234,221,149,237,209,112,231,126,177,169, 23, 7,216,122, 50, 82,214, 65, 21,
+ 40, 42, 72, 4, 23, 60,186,132, 2,158,160,144,120,253, 90,232,112,167,162,199,204,130,161,110,243, 46,240, 36, 42,225,108,105,
+ 73,101,214, 40,161,184,248, 84,157,234, 0, 29, 64, 4,123,245,172, 36,178, 8, 74,206,192,191,161,196,183, 41,165, 54, 1, 33,
+ 69, 35,239, 4,149, 2, 77, 61,226,157,124, 61,218,155,178,101,180, 79,144,133, 37,207,151, 81,125, 52, 11, 65, 80, 90, 73, 79,
+ 34, 20,149, 87,122, 80, 83,253, 58,115, 36,204,137, 76,204,195,173, 41,181, 32,137,192,113, 90,233,247,130,192,165,124, 42, 52,
+132,153, 38, 94,237, 25,140,132,203, 67,145,208,164, 71, 85, 91, 75, 78, 14, 73, 85, 73, 10,235,184,240,240,209, 33, 36,220, 23,
+ 71,122, 93, 98,101,211, 37,142, 84,219,172, 50,148,165,194, 22,127, 14,158, 36,151, 57, 2, 62,158,154,185, 11,153, 22,184,185,
+ 93,175,219,220,219, 4,189, 92,127,201, 22,219,155,107,184,186,148, 22, 25,248, 18, 73, 78,202,108, 20,147,189,122, 3,245,107,
+199,126,165,122, 50, 89,245,156,204,120,189,177,249,135,247,135,110,173,168,211,159, 7,231,162,183, 44,112, 70,137,177,203, 11,
+146,114, 21, 92,100, 33, 72,126, 8, 82,144, 22,146,154,130,142, 52,223, 95, 61,100, 66,116,141,147, 12,123, 15,219, 95, 98,168,
+ 33,170,101,197,226,197,110,237,104,142,247,239, 3, 15,200,116,255, 0,124,113, 0,215,221,170, 33,221, 40,234, 86,252,115, 22,
+133,112,147, 46,214, 64, 46,199,125, 69,105, 52,175,150,164,109,250,117, 2, 8, 36,171, 58, 29, 18, 39,112, 49,246,224,221,164,
+ 72,173, 97, 21,182,133,120,113, 87, 16, 52,106, 78,224,156, 65,151,139,130,139, 55,178,218,235,195,202, 96,130,122, 29,182, 58,
+ 53,177,254,158,138, 16,139,113, 81,238,214,139,114,217,118,104, 2,174, 35,204,167,191,238,157, 14,162, 75, 30,196, 72,192, 7,
+ 73, 56,172,113, 41,235,134, 45, 33, 84,113,165,135, 89,254,234,183, 78,180, 50, 65,218, 36, 22,125, 81,109, 20,252,179, 15, 84,
+ 75,117,221,247, 5, 60,150, 90, 90,193,246,147, 74,232, 48,147,144,138,205,162, 71,199,178, 87,134, 52, 45,242,149,201, 37,242,
+ 88, 39,246, 84,147,225,173, 51, 4, 2, 53, 86,148, 52, 41,200, 13, 93, 34,142, 81,213, 21, 46, 58,145,226, 65,166,179,165,240,
+132,246, 85,170, 29,116,179,252,230, 45, 47,229,192, 91,242, 30, 66, 66, 79,133,126,241,251, 53, 26,230,210, 69, 17,209, 52,118,
+151,182,145,231,150,229,200, 64, 72,108,173, 13, 41, 67,168,225,211,125, 74,203, 8, 8,176,136, 65, 92,142, 44, 54,251,182, 47,
+108,169,121,228,184, 82,179,185, 41, 39,115,244,106, 84, 71,226,222,163, 54, 91,111,214, 39,239, 56, 77,174,202,181,213, 48,163,
+161,199,149,239,229, 82, 62,205,104, 59, 49, 89,230,179,185, 33, 90,112, 71,175, 25, 19,240,162,182, 75,252, 86,224,227,224, 86,
+ 54,174,148,236,208, 5,106, 35, 69, 63,188,152,164,139, 30,101, 97,192,163,163,148,245,195,105,249,101, 63,247,170, 20,167,213,
+169, 87, 39,121, 33, 74, 46, 25, 53, 98, 18,162, 97, 57, 92,156,117,135, 7,203, 64,143,243, 23,103, 73,251,203, 82,107,195, 80,
+144, 40, 86, 69,180, 84,198, 67,150,221,115,188,197,217,177, 63, 10,220,227,202, 76,100,143, 6,208,170,109,245,232,230,161, 1,
+170, 36, 74,126,196,237,200,106,122, 29,144,121,169,134,170, 74,191,173, 81, 82,126,189,103,201,228,236,160,100, 93,147, 30,107,
+220, 88,216,141,136, 56,135, 57,220, 87, 80,132,141,201, 89,216, 83,232, 26, 37, 84,104,167, 25,106,202,160,187,230, 78,221, 46,
+205, 70,106,170,125,215, 2,151,190,229,100,236, 53,103,200,209, 74, 83,213,149,194, 38,167, 26,110,215, 99,121, 64,206, 74, 18,
+252,148,255, 0,109, 99,149, 15,208, 53, 82, 85, 62,138,123,144,215,242, 73,108, 99,247, 12,177,229, 86,229,117,145,242, 48,135,
+177, 35,225, 37, 62,237, 76, 82,193, 39, 77,246,230,145,141, 96,144,227,180,104,235,169, 83,146, 20, 77, 54, 61, 73,208, 46, 60,
+130,121,142, 73,110,195,144, 38,234,183,230,201, 87, 27, 92,110,110,138,244, 33,190,154, 22, 68, 26, 0, 14, 42, 32,185, 73, 22,
+188,213,251,142, 67,116,188,185, 85, 59, 32, 43,202, 79,246, 65,219, 70, 56,255, 0, 4, 66,145,150,171, 91,247,217,158, 76,166,
+ 36, 40,213, 92, 84, 9,175,245,117,110,202,120, 21, 88, 76,137, 38,203,198, 67,228, 98,173,179, 31,102,252,132, 33, 52,241, 36,
+212,232,112,135, 20,140,245, 43,199,118, 46,206,199,237,226,209, 27,105, 76,180,203,142, 17,215,143, 93, 18,170,190, 32, 59, 84,
+ 68,221, 84,191,231, 9, 15, 50,110, 9, 63, 14,203, 42,175, 66, 5, 14,143, 58, 94, 76,167, 25, 40, 47,119, 77,113,109, 83,210,
+242,183, 91, 39,141,125,160,234,197,120,206, 83, 78,107, 87,111, 50,217,247,152,111,249, 39,227,125, 21, 82,189,192,239,163,156,
+112, 16,201,220,142,227,185,211,215,102, 31, 96, 18, 81, 29,222, 3,251,164,208, 29,102,229, 99,237, 46,137, 25,185, 79,152,118,
+108,172, 99, 34, 22,228, 43,240,211,193, 66,167,193,205,143,235,213, 99, 83,234,155,118,169,201,182,100, 43, 59,118,127, 35,228,
+ 33,109, 72,229,239, 91, 14, 46,159, 98,116,182,124, 41,110,213, 14,237,195,104,184,150,221,157,187,239,180,178,132,157,194, 25,
+ 66,126,247,214,116, 27,102,197,213,194, 52,100,155,124,195,134, 71,155, 65,178,253,235, 92,112,227,239,167,192,210,170, 4,234,
+223, 78,191,115,146,170,217, 79, 5,187, 57,199,221,145, 34,223,106, 41,227,200,124,225,246, 83,142,212,253, 90, 44,239,248, 76,
+ 81, 68, 0, 78, 93,177,179,202,186,217,191,203,237,158, 17,213,206, 91,228, 16, 10, 80,216,226, 9, 59,208,106,149,146, 4, 34,
+192,234,169,175, 90,157,212,186,118,231,180, 18,236,248,161, 75, 2,226,240,183, 45,218,173, 46, 62,165, 87,154,170, 13, 74, 82,
+158,181,235, 79,234,212, 43,187,244, 7, 77,142, 94,116,119,235,182, 36,247, 14, 31,111,237,100,226, 58,174, 5,139,106,151,126,
+186,189, 49,180,131, 17,189,156,125,123, 37, 9, 42,227,201, 68,144, 1, 81, 27, 10,212,235,232,162, 91, 64,143, 16,234, 38, 85,
+108,142,137,129,166, 92,242,210,146, 79,156,177,247,129,223,109,171,211,175, 77, 60, 74,140,194, 35, 99,153, 54, 43,160, 66, 88,
+ 75,169, 33,106, 88, 60, 73, 59,159,216,232, 71,215,167,100,226, 69, 60,226, 25, 11,182,214, 75,183,143,198,158,170, 20,114, 10,
+168,166,252,184, 5, 38,170, 63, 70,162, 98,234,197, 82,237, 87,111, 99,174, 44,230, 23, 22,224,194, 92,175,230, 2,129,111,240,
+142,160,138,251, 75,138,175, 31,109, 21,211,192,235, 43, 44,109, 91, 24,165,202,250,149,232,187,211, 68, 70,112,200, 25, 62, 90,
+ 32,200,152,166,212,164,221, 2,213,231, 41,181,184, 20, 91, 12,134, 5, 42,221, 64,161,226, 79,183, 92,142,102, 80, 50, 96,235,
+ 98, 47, 17,222,173,165,118, 35, 9,184,201,254, 83,103,101,182,218,142,163, 20,147, 21, 62,106, 68,129,201,214,234,148,168,165,
+ 42, 41,168,174,255, 0, 71, 77, 87, 54,144, 53, 68, 19,101, 34,127,162,238,222, 8,110, 72,141,198, 58,231, 60,167, 84, 80,130,
+ 62, 42, 42,158, 41, 36, 80,210,148, 31, 70,130, 50,230, 19,139, 65, 44,200, 77,159,209,238, 43,100,140,252,119, 82,153, 41,146,
+165, 21,198, 64,122,142, 43,204, 9,231,178,193,228, 42, 0,169, 32, 3,211,218,231, 54, 74, 68,197, 74,199, 61, 48,192,178, 67,
+126,222,244, 46, 44, 54, 80,219, 41, 41, 33,106,109, 0, 41, 41,234, 77,118,161,216,116,208,236,203,151, 30,105,124, 37, 66,204,
+ 48, 73,150,194,133, 91,217, 91, 11,130, 27,119,229,208,148,249,137, 72,113, 36,185,182,201,173, 13, 43,184,247,233,161,107,241,
+213,211,109,236, 87, 87,106,125, 83, 99,239,217,226,217,175, 15,161,187,209, 75, 73, 17,247,228,149, 20, 37, 75, 36,253,221,138,
+169, 74,254,173, 74,187, 44,171, 64,178, 51, 58,100,109,150,225,196,241, 86, 60, 62,238, 99,151, 84,173,200,143, 5, 70, 66, 74,
+202,129,173, 18, 15, 30, 70,158,221, 18, 89,114,151,204,179,127,210,164, 18, 55,115,187,180,155,123, 82,146, 28, 66,225, 22,194,
+185,114,221, 5, 68,129, 90,234, 59, 68,202,210,199,198, 21,248,174, 8,245,105,150,219,111,153,100, 59,181,149, 1,114, 80, 86,
+ 36,160, 29,184, 41, 60, 87,204, 39,122, 19,202,149,214,214, 38, 62,133, 26,219, 25,115,231,125,123, 21,137,100,214,225,147, 33,
+174, 18, 36, 4,172,200,106,129, 74,109, 73, 36, 10,141,141, 20,106,118,235,171,248,119, 24,157,170,174, 85, 27,131,174,102,202,
+123, 49,136,218, 46,201, 74,137,110, 40,115,247, 15, 37, 77,144,150,213,205, 20, 36,116,232, 62,173,116, 21,146, 66,193,182, 12,
+ 82,106,251, 69,110,152, 60,169, 79, 52, 74, 18,165,208, 84,158, 94, 95, 50, 5, 71, 66,181, 42,187,215,122,232,193,208, 76, 66,
+136, 61, 62,170,241, 58, 52, 88,204,241,226, 67,203, 84,100, 14,102,131,192,109,189, 72,174,219,211,232,210, 54, 55, 20,133, 6,
+ 92, 23,236, 63, 73,119,151, 82,183,158,101,201, 72,113,192,162,181,182,148,166,133, 59, 80,159,103, 34, 58,105,188,225,218,138,
+ 49, 10,177, 59, 27,232,251, 16,141,116, 98,102, 65,107, 14, 73,109, 97,208, 29,146,149,164,211,127,221,165,178, 0, 32,120,154,
+234,189,247,202, 33,129, 86,104,196,143,243, 46,131,201, 59, 71,142,195,198,184, 89,236,101,166, 84,128,143, 62,205, 23, 96,144,
+118, 73,113,176,170,154,143,218, 26,169, 70, 77,128,235, 39,241, 43, 70,120,245,182,145,101, 78,222, 44, 89, 94, 27,116, 76,247,
+ 30,117, 49,138,184, 69,118, 74, 28, 82,146,160,106, 42,164,132,208,253, 71,232,214,237, 57, 59,130,207,148, 12, 75,174,157,244,
+251,222, 25,121,189,137,252,119, 39,144,217,200,221, 74, 20,212,151,129, 74, 36, 20, 39,143,150,104,148,241, 81, 78,193, 85, 31,
+ 78,188,163,215,190,135, 25, 82, 57, 52, 2,228,124, 81, 0, 16, 88,104, 72,112,207,193,198,186,113, 66,200,173,195,132,223,105,
+200, 34, 51,153,205,109,231, 22,204,168, 97, 16,148,195,136,170,144, 80, 62, 33, 94, 67,199,221,175, 6,191, 14, 48,147, 18, 65,
+ 28, 65, 3,248,172,232,150,116,115, 16,203, 32,198,238, 68,245, 37,194,166, 93,183,169,231, 10,146, 18, 2,208,120,142,138, 86,
+171, 79, 28,109, 36, 31,187,251, 84,140,217,138, 85,206, 36,139,165,182,105,111,103, 36,187,243, 42, 31,213, 9, 77, 6,171,225,
+ 86,196,130,172, 78,122, 58, 3,113,186, 46,241,133, 69,189,176,170, 92,216, 96,177, 41, 3,239, 81,181, 85, 11,250, 41,171, 77,
+240,144,161, 57,234,180, 93,239,234,107, 25,141,112,167, 36, 56,164,161, 95,250,193,254,157, 54, 13, 79, 19,226,152,218,150,108,
+138,110, 85,233,219,228,115,198, 64,109, 77, 45, 63,218,105, 85,213,198,113,180,170,228,182,170,208,203, 45, 76,221, 93,118, 18,
+ 71, 20,221, 45,109, 42,158,213,240,255, 0, 78,171, 70,189,179, 8,126,118,139,153,100,179, 38,209,141,159, 63,103, 88,150,232,
+ 62,208, 82,170, 87, 91, 7, 82, 20,201,209,213,139,219,220,237,228,227,174,195,144, 69, 88, 1,183, 1,241,109,225, 64,126,163,
+172,252,154, 81, 55,184, 78,178,100,197,139,142, 53, 63, 97, 21, 40, 14,169, 94,213, 26, 38,154, 0,165,202,104,201, 62, 98,153,
+ 52,107, 54, 40,242,211,254, 37, 12, 4,178,159, 16,167,198,234,251, 52,178, 96,208, 36, 34, 86, 92,178, 65,179,170, 21,199, 39,
+126, 99,139, 41,140,218, 62, 81, 69, 93, 8,221,100,234,116, 68,236, 3,185, 52,198,171,212, 9,235,147,104,147, 13,162, 74,164,
+185, 84,211,193,164,171,141, 52,113, 39, 74,113, 0, 38, 12, 34,221, 6,201,127,152,251,200, 9,113, 46, 48, 86,124, 74, 82,158,
+ 92,126,221, 85,184,157, 20, 15, 5, 19, 39,106, 37,223, 47,147,154,202, 64, 47, 71, 74,150,149,145, 90, 33,191,138,131,235,213,
+152, 89,182, 44,152, 5, 95, 99,152,245,234,255, 0,141,222,239, 50,171,252,202,241, 37,231, 10,252, 67, 41, 77, 71,213, 77, 75,
+ 39, 36, 68,196, 40,237,116, 15, 22,193, 99,218,238, 48,217, 79,196,211,108, 56,226,213,253,162,106, 6,139,101,226,101, 74, 53,
+178,118,129,142, 61, 34, 28,133,176, 13, 29, 91, 44,169,105,247,252,103,245,105,160,200, 70,191,137, 87, 22,203,117,195, 57,151,
+124,190,206, 10,249, 43, 59, 79, 56,132,170,180, 73, 74,138, 19,245,154,106,252,154, 44, 2, 85,214,202,119,100,187, 88,139,194,
+221,205, 46, 71,149,186,218,224,158,239, 33,212, 20,158, 35,237,212,204,128, 32, 40,206, 58,166, 73, 16,238, 87, 43,138,242,151,
+235,252, 91, 15, 62,200, 62, 5,103,130, 71,212, 53, 82,168,130, 83,148, 49, 49,229, 77,185,217,109,178, 7,255, 0, 13,130,201,
+121, 0,116, 83,165,116,174,158,233,129,162,156, 66,115,201,103, 63, 60,181,143,180,174, 44, 60, 2, 2,135,136, 9,255, 0, 78,
+179,156, 72,186, 39, 20, 30,101,177, 17,237,169,176, 67,248, 95,152,219,173,109,237, 66,107,250,117, 10,190, 50,231,146,114, 25,
+ 40, 97,216,231,201,223,214,220,189,144,148,241,226,124, 20, 78,250,186, 44, 28, 20, 64, 70,123,165,141, 69,136,184, 73,182,208,
+ 33,104,226,225, 31,182,177,169,202,231, 12,135, 58,223, 84,207,103,197,227, 93,112,203,127,205, 15,139,205,249,115,244, 1, 93,
+ 85,149,187, 53, 76, 43, 82, 51,252, 37, 87, 56,115,224,179, 95,150,117,182,218, 65, 63,212,109, 28,206,167, 12,151, 46,154, 53,
+106,170,187,111,103,165,201,130,227,105, 71, 27, 75, 40, 87, 37, 83,239,184,191, 15,171, 86, 70, 83, 57,230,159, 98, 11,147,118,
+ 13,215, 95,108, 13,163, 52,194, 82,177,189, 20,235,138,216,106,205, 25,193, 47, 40, 20,115,183,157,149, 86, 53,143, 75, 97,223,
+134, 73,254, 28, 43,217,207,115,170,121,125, 65,230, 25, 60,106, 70,251,119,233,253,171,108,167,163, 56,174,102, 65, 67,197, 35,
+246, 80,216, 36,143,183, 67,202,205,222,124, 2, 94, 91, 40, 89, 70, 29, 42, 22, 91, 26, 52, 74,151, 19,248,178, 92, 30,222, 95,
+ 10,126,161,161, 67, 32, 8, 38, 21,186,188, 6, 47, 27,228,213,103, 64, 63,206,127,151,166,115,138,253,175, 55,201, 41, 66,127,
+254, 95, 45, 80,253,225,103,228,155, 96,116,135, 96,121, 54, 86,174, 1,147, 67, 21,161, 21, 39,217, 84,238, 62,189, 60,200,153,
+101,116,214, 80,251, 36,182, 89,182,127,152,221, 80, 15,188,227,177,146, 63,105, 72,165, 13, 53,114,152,249,113,110,106, 22, 71,
+ 84, 42, 69,226, 77,238,107,210,102, 42,169,142, 26,140,221,127,101,180,158,159,102,167,102,131,189, 12,171, 75,177,236, 70, 24,
+156,171,228,128,159,152,156,181, 70,104,175,163,108, 55, 85, 45, 95, 70,218,167,100,182,104,165, 18,184, 39,214,239,118,109,185,
+207,112, 29,182, 70, 80,114,201,106, 91,200,105,178,104,133,184,163, 69, 41, 64, 31, 0, 41,246,253, 26,250, 55,233,231,166,207,
+ 79,198,243, 39,243,216, 3,142,193,197,191, 4,106,227,205, 85, 24,150, 31, 34,239, 29, 87,135,220,227, 25, 35,204,105, 41, 72,
+ 13,165, 36,208, 0, 18, 0, 21,175, 65,174,238,235, 0, 42,237, 85,184,116, 3, 34,198,210,226,214,134,202,148,134,198,206, 40,
+ 84,124, 70,160, 82,189,104, 70,139, 81,112,171,219, 21, 14,212, 80,218,203,107, 80,242,105,192, 45, 20,228,181,248, 20,138,211,
+167, 78,186, 40, 66,224, 20,103,174,159, 39, 32,165,189,170,162,128,133, 18,107,190,230,136,235,169,152,232,161, 25,106,186, 71,
+209,253,234,215,109,188,195,185, 93, 0, 48,138,208,162,243,172, 50,144, 56,147, 74, 41,224,164,141,246, 31,134, 78,179,178,232,
+ 50,142,156, 86,230, 45,192, 21,245, 47,179,158,167,145, 38,202, 45,136,156,164,196, 33,190, 41, 73,112,164,165,163,189, 20,191,
+105, 29,104, 62,141,114,215,224, 16, 93,150,213,119,137,112, 87,159,111,251,209, 98,113, 42,189, 72,105, 79,184,232, 42,230,211,
+142, 46, 64,112, 40, 13,254, 34, 13, 27, 42,233,239,250,179, 47,199, 60,145,120,171, 91, 24,191,218, 51,155, 90, 17, 99,112, 22,
+ 93, 75,111,182,183,169, 84,186,164,171,194,180, 32,142, 53,160,167,214, 53, 66, 64,196,178,129, 27, 75,168, 57, 23,243, 43, 14,
+ 67, 2, 51, 6,136, 75, 95, 50,182, 82, 42,158, 64,130,178, 15, 95,133, 94, 21,246,141, 76, 64, 72, 58,156, 38, 36, 10,117,130,
+242, 94,152,196,181,214, 75, 77, 5,186,181, 54, 72,169, 53, 66,185, 17,236,118,160,141, 0,197, 84,155,109, 32,105,246,254, 9,
+103, 55,198,173, 81,242, 54, 89,150,145, 42, 43,129,181, 4,186, 10,144,138,252, 65,183, 56, 40,114, 32,159, 29,137,211, 8,171,
+ 24,215,153,215,168,230,127,130, 11, 35,210,214, 37,125, 97,219,197,190, 47,203, 78,243, 60,213, 37,148,134,208,165,157,254,238,
+199,165, 5, 9, 61, 61,250,144,178, 65, 70,121,113,140,128,146, 89,201,187, 37,220,236, 66,222,244,108, 66,121, 31, 52,149,198,
+ 74, 92, 11,251,138,108, 21, 21, 80, 80, 10,131, 77,182, 58,113, 99,241, 8,144,178, 19,224, 82, 62, 77,216, 30,249,230, 81,159,
+102, 21,201,134, 99,178, 91, 76,170,121,161,245,150,218, 40, 71, 20,241, 80, 41,226, 2,190, 35, 82,117,102,172,170,226, 93,138,
+148,224, 56, 58, 90,198,253, 37,199,198,236,178, 50, 44,149,196,220,174,110, 21,170,174, 32,171,128, 63, 17,226, 9, 6,162,191,
+102,172,217,212, 37, 54, 17,209, 60, 49,163, 19,174,170,157,239,156,235, 54, 63, 21,219, 61, 16,134,144, 56,164,164, 33, 13,168,
+236, 65, 52,166,231, 96, 71,187,219,171,216, 85, 74,122,148, 28,137,136,133,198,253,227,189,166,229,118, 13, 71,101, 41,144,131,
+200,133,243, 35,219,183, 42,154,125, 52,215, 97,137, 81,136, 92,190,101,128,148,163,105,182,194,126,158,115, 64,172,168,114,227,
+ 95,133, 84, 30, 34,155,251, 14,174,237, 84,163, 48,156, 48,132, 67,133,120, 12,202,108,170, 47, 34, 80,130, 86, 40,144, 62, 32,
+ 40,124,107, 93,142,129,109,123,149,154,236,101,111, 97, 16,113,213,201,249,184, 42, 79,157,195,128, 15,242, 13,186, 20,154,148,
+ 41, 67,122,245, 0,235, 58,200, 16,175, 9,186,177,113,108, 46,199, 57,182,153,148,133,180,225, 42,242,212,144,151, 27, 82, 82,
+118, 4,157,197, 0,165, 82, 70,218,165,101,146,138, 52, 64, 71,174,248, 34,229,180,227, 50, 31, 44,195,251,222,122, 2,100, 37,
+105, 6,148, 80,120, 26, 80,232, 49,150,175,197, 24,203, 86,224,149, 59,165,233,214, 85,199, 15,114, 67, 95, 42,243,209,210, 93,
+109,214, 86,219,110, 4,141,247, 67,169,228, 62,165, 1,239,209,232,203, 17,152, 10, 19,134,232,170, 27, 19,181,163, 16,200,154,
+152,251,101, 60, 28, 1, 14, 54,175, 52,245,169, 33, 64, 19,255, 0,165,174,158,155, 4,130,167, 18,202,243,159,108,135, 33,136,
+153,181,186, 91,210, 17, 45,104, 76,181,190, 18,126, 93,196,164, 4,161,106, 70,252, 72,160, 73, 35,110,149,166,188, 83,234, 95,
+165,161,140, 70, 69,111,182, 68,191, 96,231,199,240,117,159,151, 64,131, 17,205, 47, 12,170, 84, 28,149,198,210,225, 75,238, 39,
+202, 89, 59, 30, 53,173, 53,227,176,173,156, 21, 82,193,193, 75,139,126,147, 44,220,223,121, 95,128,212,117, 43,174,223,116,129,
+160,211, 91, 74, 73,132,180, 74, 24, 62, 88,235, 51, 35, 67,144,121, 67,153, 25,113, 22,159,122,137, 3, 86, 12, 24, 21, 9, 79,
+177, 49,201,142,134,177,244, 88,221, 38,173,171,204,229,236, 13,170,187,253, 90, 22, 33, 12, 71,122,105,104,171,135, 50,101, 90,
+ 46,247, 8,205,168,249, 77,200, 87, 78,148, 88, 6,154,212,149, 95, 16,239, 67, 18,119, 10,245,190,228,169,114,215,137,100, 80,
+199,240,242, 34, 37,128, 71,181, 7,112,126,173, 2,202, 90, 74,177, 58, 21,206,185,237,208, 62, 47, 48,120,241, 82,102,172,132,
+251,150,170,234,212,107,105, 5,102, 50,248, 71,122, 31,136,222,231, 63,122, 92,116,147,242,206, 71, 90, 92, 30,246,141, 65,211,
+223, 88,218,234, 64, 18,173, 89,179,238, 47,246,166, 44, 26,147, 53,197, 37,197,164,245,242,146, 65, 21,213, 17, 16, 36,197, 79,
+ 80, 21,235,106,244,189,234,111,184, 22,168,151,172, 31, 13,186,200,181,201,130,193, 75,206, 70, 84,118,150,164,166,149, 74,228,
+240, 10,250,142,180, 15,167,179,178,107,122,233,145, 7,185,191, 22, 86, 33,161, 66,103,122, 65,245, 71,133, 50,234,242,204, 38,
+237, 22,222,176,183,228, 77,110, 42,164, 50,208,109, 28,135, 55, 35,115, 74,107,239, 35, 82,159,167,179,177,224,246, 83, 32, 27,
+139, 63,224,233, 18,229, 47,250,122,178,255, 0,155,178,198,173,203, 73, 83, 45, 44, 50,229,125,137, 62, 98,171,246,107, 31,229,
+ 9, 89, 39, 8,235,240,100,204,202,238,240, 98,143,196, 19, 84,202, 71,246, 81, 82, 79,217,170, 89, 32,128, 16,193, 80,178,167,
+ 88, 89,184,121, 84, 68, 0,134,160,177, 79,218, 52,170,207,219,161,202, 70, 62,228,224,169, 54,232,214,251, 22, 5, 53,210, 2,
+ 94,110, 41, 40, 30, 53, 89,227,250,181, 74, 82, 54,106, 82,125, 85, 91,112,184,181, 17,210,227, 63,119,229,202,234, 61,251,106,
+205, 19, 59,145,137,209, 57,224, 87, 85,189,218,249,207, 55,188,240,224, 83, 96,141,232,164, 17, 95,171, 90, 82,150,210, 16, 74,
+203, 54, 31, 18, 47,105,114,119, 88, 64, 18,174, 70, 48, 0,108,106, 82,121,126,157,244,213,229,188,246,246, 36,189,118,110,216,
+199,249, 54,237,138, 16, 3, 69,134, 67,171, 63,217, 30,221, 44,188,205,182, 69, 68,135, 81,187,138,136,246, 41, 81,109,113,254,
+ 22, 35,183,229, 45, 35,216, 17, 81,250,244,104, 88, 68,138,104, 33, 12, 90, 98, 69,110,205, 52,185,248,105,142,243,203,223,169,
+230, 72, 26,141,182, 19, 36,137, 68, 93,182, 59, 42,209,106,190,196,170,149, 29, 74, 46,145,185,226,179,177,208, 12, 90, 41,110,
+209, 71,102,142,100,102, 99,195,225,134, 86,175,119,197,190,158,161,183, 69, 53,213, 93,135,238,222,107,218, 63, 73, 54, 92,147,
+181,114,218,182, 92,110,249, 5,245, 51,100,136,112,164, 56,235, 76,177, 21, 77,160,170, 83, 78,108,146,163,211, 94,183,233,108,
+137, 81,211,163, 40,104, 76,228,229,135, 96, 84, 51,175,149, 96,109, 44,235, 85,219,189,118,238,236,195,106, 55,127,113, 11, 30,
+ 99, 9,193,201,114, 92,132,213,178,230,129,226, 88,155,109, 13, 45, 7,233, 4,123,181,127, 34, 85,100,134,190,168,207,189,154,
+ 94,240,197, 82,135, 80,156, 78,186,170,235,212,175,107,112,158,202,247, 33,142,217,224,139,146,188,120,174, 13,213,132, 92, 86,
+135, 36, 50,139,132, 70,229,249, 74, 91,105, 72, 87, 15, 51,136, 52,173, 58,215,174,188,195,213, 93, 54,188, 12,163, 85,110, 98,
+192,235,199, 80,235, 92,205,192, 40,119,120, 27,131,138,218,225, 71, 77, 5,194,117, 82,148,142,161, 42, 32,126,173,115,244,135,
+ 83, 28, 18,198, 69, 99, 70, 45,138,188,169, 95, 2,150,158, 73, 73,219,117, 29, 16,234, 11, 37, 18,145,103, 93,218, 49, 35,186,
+237, 56,184,164, 1,239, 45,154,233,226,241, 10, 71,130, 46,244,180,162,203, 17,245, 80, 42,115,138,118,135,197, 64,209, 41,208,
+ 68, 53,116,194, 90, 35,118,199,191,148,135, 60,149, 3, 53,109,134, 83,238, 39,169,208,203,142, 41, 21,169,156, 78, 50,101, 42,
+229, 62,132, 37,105, 42, 81,241,161,228, 70,250,168, 38, 73, 33, 52,142,136,160,190, 56,139,153,191,212,124,203,142, 7,184,215,
+254,193,182,203, 28,126,197,234, 60,153, 50,141,155,118, 55, 42,197, 24,114,229, 30, 59,175,218,100, 60,228,201,110,210,170, 73,
+ 41, 60, 83, 64, 55, 72,246,235,175,204,232,226,169, 25,213,168,110, 31,195,181,118,249,253, 6,117,107, 0,225, 87,145,109,222,
+108,132,197, 97, 36,181, 13, 44,178,218, 60, 11,178, 20, 1,247,107, 46,118, 57, 11,157,158, 58, 30,237,173,113,141,198,222,159,
+138, 66,100, 20, 40,143,113, 52,253, 58,140,172,224,171,154,121,167,123,197,237, 88, 7,111,222,198,152,113, 49,229, 51, 13,201,
+ 18,102,184,126, 8,204,173, 3,146,206,196, 19,191,194,159,218, 86,221, 42,117, 44, 28,127,220,228, 7, 4,135, 12, 7, 51,249,
+120,161, 8,176, 95, 49,123,131, 49, 23,155,212,149,199,169,101,215, 22,176,227,212,228, 82, 85,178,143,212, 54, 31, 71,211,175,
+175,113, 43,242,235,140, 72,224, 7,224,142, 6,128, 43, 86,204,221,130,201,218,216,241,212,121, 73,100, 5, 56,225,216,184, 2,
+107,193,180,251,214, 8, 39, 84,229,172,214,156, 64, 16, 84,222, 93,146,137,146,159,124, 16,219, 15,168,169, 0, 84, 0, 84,147,
+ 80,144, 41,225,176,214,173,113, 96,179, 45,155,165,185, 89, 60, 24,235, 83, 76, 26, 57,200,161, 1,190,136, 20,175, 47, 10,157,
+ 16, 32, 74, 64,168,234,125,239,153, 67, 45, 10, 62,104, 18,144, 42, 41,215,236,174,231,219,162,136,186, 31, 5,208, 93,141,184,
+ 69,181, 51, 30,243,125,123,230, 46, 43, 37, 44, 52,234,199, 4,165, 35,175,197, 95, 15, 0, 62,221, 35, 82,177, 27,153,116, 70,
+ 9,222,115,111, 44,190,191, 44, 62,165, 81,178, 1, 73, 74, 58, 18, 2,118,165, 14,213,213, 43,177,119, 43,212,229,178,186,112,
+ 79, 80,178, 36,165, 76,153, 42, 49,138,120,164,242,160, 53, 59,128, 41,184,166,219,253,154,199,200,192, 3,146,213,163, 45,215,
+ 97,122, 69,239, 37,149,251,139, 78,201,124, 60,211, 12,209, 9,111,145, 73,116,173, 75,224,144,104, 73, 34,181,219,160, 79,191,
+ 92,198,125, 6, 28,190,204,180, 28, 89, 22, 93, 35, 29, 76, 93,242,166, 23,112,101, 10,136, 45,111,173, 43, 82,170, 22,181,188,
+149, 22,250, 83,112,125,187,212,107, 55,132, 80,108, 6, 3, 78,213, 54, 22, 75, 30, 30, 4,196,155, 98,120, 37,123,151,200, 10,
+ 42,105, 44,151,149, 83,225, 71,104, 20, 79,191,174,165,181,203, 32, 26,183, 90, 79, 16, 63, 30, 31,130, 31,101,204,172,249, 84,
+ 52, 94, 28,101,196,197, 67,210, 62,103,205, 71,196,164,176, 3,105,113, 97, 93, 18, 22,160, 70,164,107, 49, 69,156, 12, 56,119,
+ 34,183, 28,138, 61,146, 0, 74,164,135, 26,142,162,195,133,191,139,116,169, 72, 81,160,167, 74, 82,158,221,142,135,229, 58,132,
+107,222, 93,184,169, 23,216,246,235,132, 38, 97,190,235,137,142,251,126, 99,124, 57,161, 84,160, 95, 20, 26,146, 9, 77, 71,143,
+ 67,165,179, 85, 26,137, 5,217, 87, 23,181,228,152,156,167, 77,164, 33,203,107,132, 74, 13, 41, 75, 39,143, 18, 9, 80, 36,158,
+131,109,188, 62,141, 76, 66, 51, 90,113, 47,197, 40,119, 70, 96,157,105,101,248,142, 41, 1,103,227,143, 90,210,162,161, 73, 35,
+101, 3,237,235,171, 88,240,213,146, 43,151,251,245,136, 34,244,211,229,144, 21, 44,167,101, 40,164,132,252, 53, 21, 7,221, 94,
+186,220,195,158,214, 84,242, 32,224,174, 63,238, 7,106, 38,196,186, 8, 74,170, 28, 21, 40, 94,225, 38,167,161, 62,239,104,166,
+186,204,123,196,131,142, 75,152,200,169,139, 37,137,120, 92,219,114,213,205,163,230, 55,247,128, 32,154,123,189,191,110,173, 9,
+134, 84, 72,101,186,208,204,240,251,114, 34, 40, 21,141,184,171,168,222,157, 53, 9, 50,148,100,201,243, 9,157, 58, 27,234,243,
+ 65,171,148, 46,183,251, 53, 7,114, 41,208,248,143,110,170,219, 29, 21,168, 88,172,187, 86, 87,116,177, 33,165,176,190, 80,137,
+ 14,132,171,112, 15,137,216,238, 41,236,214,100,232,220, 85,200,218,193, 93,253,178,204,236, 23,150,146,151,146,150,166, 45, 32,
+ 6,215,186, 66,129,174,202, 80,232,126,205,100,228,211, 40, 43,117,216, 38,154,102, 73,198,175, 73,118, 27, 37, 77, 74, 1,105,
+242,218,162,146,160, 19,186, 77,122, 26,248, 26,214,180,211, 64, 72, 51,132,251,187, 23, 30,119,186,219,105,178,229, 83,237,236,
+ 71, 9,184,178,178, 67,109,149,165, 42, 61, 65, 9, 81,165, 15,187, 93, 71, 77, 4,197,213, 11,239, 17, 42, 47,104,187,157, 18,
+224, 46, 88,164,112, 85, 14,100,122,160, 18, 63, 13,214,126, 52,146,151, 1,219, 99, 90, 29, 47, 87,226, 11,250,101,145,211,128,
+ 58,240, 85,108,183,116, 72, 80,110,115, 93,135,152,249, 47, 86,137, 43, 61,127,100,108, 63,213,175,146, 68, 26, 37, 80, 33,207,
+177, 20,135, 62, 73,182, 73,183, 64, 30,108,233,192, 52,202, 71, 82,159, 29, 66,184,252, 74, 50,142,138,110, 23,131, 49, 14,242,
+235,210, 42,166, 97, 37,167, 16,147,253,115, 95,212,117, 71, 39, 36,142, 8,144,169,147, 55,201, 49,114,139,114, 90, 79,227,165,
+167,120,255, 0,120,167, 65,170,102, 37, 16,192, 20,153, 31,183,209, 46,182,167, 46,206,128, 37, 58,215, 7, 54,234,234, 42, 1,
+250,245,118,204,194,225, 15,201, 98, 83,162, 33,166, 6, 25, 96,198,164, 44,121,150,214, 83, 33, 68,157,234,170,212,105, 89,150,
+100, 73, 77,228, 4,177,233,103,211, 75, 30,173,123,213,148, 99,215, 59,226, 49,220, 90,207, 14,126, 73,112,184, 46, 43,147, 22,
+ 98,219,148,223,154,134, 88,109, 72,230,231, 23, 10,128, 42, 27, 3,227,182,186,158,137,210,206,117,130,189,219, 90, 38, 68,179,
+232, 27,128,237, 80, 44, 1, 39,128, 87,230, 57,216,175, 64,221,188,109, 77, 65,198, 50,108,193,214,219, 33,233,215,187,204,123,
+ 66, 87,203,117,121,108, 91, 88,112,165, 39,195,146,201,246,235,174,143, 68,233,240, 12, 68,231,226, 91,240, 10,140,186,136, 28,
+ 34,172,182,175,126,158,187, 5, 63,159,165,107,107,115,178, 11,141, 38, 28,159, 34, 97, 51, 36,218,144,226,249, 53,111,130,212,
+180,169,180, 22, 17, 68,173,210, 20,165, 26,239, 74,106,221, 56, 88,152, 4,154, 35,186, 71, 93,210,212,199,176, 7,224,221,188,
+ 74,134, 79, 80,229, 4, 26,233,221,142,229,101,115, 37, 43, 46,200, 46, 19,164,182,146, 71,204,203,121, 73, 30, 63, 10, 57,113,
+ 72,175,128, 3, 79,118, 93,179,212,200,251,214,116,237,148,184,146, 84, 14,216,247, 95,185,216,221,216, 76,199,242, 11,132, 69,
+ 54, 22, 84,219, 50,223, 13,170,162,163,146, 57,113, 80,175,129, 26,157, 89, 86,192,184,145,247,165, 27,101, 30, 4,133,100,118,
+187, 50,193, 59,227,123, 75, 29,201,133, 14,207,221,201, 14, 45,152, 57,157,181,134,162, 34, 99,234,248, 82,139,163, 12, 4,182,
+190,100,129,231, 36, 5, 39,106,237, 93, 83,234, 29, 47, 31,170, 6,152, 16,183,148,198,142,127,239, 14,111,219,196, 45, 12,124,
+253,223, 12,253,234,146,206, 49, 76,135,181, 93,208,191, 88,114,184,198, 46, 65, 29,217,107,121,133,110, 42, 83,240,173, 36,108,
+ 82,164,144,164,145,212, 26,235,203, 58,142, 21,152,215, 74,171, 3, 74, 39, 85,160, 92, 42,103, 43,204, 92,147,113,129, 99, 70,
+201,113, 94,105, 35,170,148,179, 77,245, 78,117,238,137, 81,148,152,128,152,114,107,193,151,110,185,217,152, 63,143,229,182,218,
+ 71,185, 13,212,254,157, 6,140,125, 28,165,189,206,138,157,189, 95,132, 72,178,213, 95,220,196, 74, 79,184,147,169, 87, 64, 50,
+ 30, 40,219,222, 37, 51,118,155, 59,109,203,112,142, 21,252, 57,108, 54,177,239, 59,106,206,109, 91, 65, 42, 17,151, 5,103,219,
+230, 54,140,110,100,122,255, 0, 14, 16,183,192,254,226, 13, 53,207,209, 97,253,203,119,127, 4,112, 52,116,183,136,222, 13,175,
+ 18,186, 78,109, 84, 92,148, 39,236, 78,137,212,220, 89, 95,121, 31,138,106,139,146,179,191,224, 51, 6,213,144,178,161, 73,144,
+ 91, 90,255, 0,188, 18, 5,117,183, 40,234,171,214,126, 20,176,237,221,169,184,133,166, 66, 21, 66, 10,163,172,131,225,185, 26,
+121, 69,202,144, 42,197,236, 10, 88,201,109,159,203,230,111, 29,244,190,206,251,253,221,129,250,142,161,100, 8,138, 91,131, 37,
+ 60,206,228,213,138, 77,234, 35,103,241, 80,202, 25,229,237, 85, 74, 73,253, 26,120, 7, 14,164, 36,234,242,237, 5,225, 50, 63,
+ 47,219, 20,194,106,227, 25, 85,242, 18, 73,246,185, 6, 19,159,211,175, 82,244,232,126,154, 59,172,151,224, 22,103, 84, 58, 5,
+ 7, 28,184, 7,110,209,172,136,221,230,218,113, 74,167,183,168, 26,210, 17,209,214, 56,146, 57,235, 70, 50,165,250,249,149,142,
+ 43,226,136,196, 75, 5, 83,253, 84,162,205, 24,154,253,154,226, 61,107, 94,238,165, 62,225, 31,249, 66,232,172,147, 48, 85,119,
+116,175,207,230, 93,222,199,160, 51, 83, 11,231, 92,168,234, 60,166,104, 53,205, 26, 26, 39,189, 79,126,137,123,213, 47,114, 25,
+115, 39, 78, 49, 5, 64, 52,133,115, 80, 79,130, 64,162, 70,134, 42,104, 34,137, 42,190, 46, 82,139,173,254, 37,165, 31,185,142,
+104,119,216,158,167, 79, 58,200,139,118,166,156,217, 62,101,183, 6,142, 79,138,227, 45, 31,134, 51,107,153, 32, 15, 10,157,171,
+162,126,223,108, 2,104,203, 69, 63, 14,190,183,121,203,156,113,103,148,102,185,185, 74,237, 80,104,157, 84,190,166,138,121, 77,
+ 50,247,114,251, 26,208, 98, 90, 99, 14, 9, 82, 91,230, 69, 42, 84,231,196,163,172,186,234,121, 20,219,131,164,213,102, 13,127,
+ 56, 75,124,191, 0, 54,166,233,253,146,180,141, 16,212,120, 41,242, 95, 71, 59,113, 99,176, 93,237,173, 65,190,176,219,133, 67,
+130,219,116, 38,132, 17,225, 93,119, 19,158,171,219,115, 37, 40,130,202,180,239,159,161,188, 81, 19, 92,206,187, 83,193, 18,208,
+232,155, 46,208, 74, 66, 93, 83,105, 52,225,236, 59,253,122,163,147,136, 45,212,105, 46,222, 94,208,185,124,140, 15,220, 7, 3,
+108,190,227,252, 23, 6, 94,127,204, 56,182, 77,125,131,149, 68,118, 13,204, 41, 69,198,159, 4, 81, 69,205,136, 34,128,143,122,
+ 78,178,103, 65,135,194, 70,171,152,203,170, 85, 72,198, 65,138, 9,222, 92,145,233,221,186,200, 38,161, 65, 79,174, 55,146, 8,
+216, 36,113,162,138, 83,208, 26, 10,114, 53, 32,116,246,107,162,244,141, 95,252,228, 1,224,227,241,251,104,179, 76,151,206,252,
+131, 49, 14,100, 13, 91,246, 81, 11,228,170,120,113,251,160,253,157, 60, 53,245, 24, 12, 20,183,185, 77, 19,187,143, 52,219, 62,
+ 79,114,250, 82,150, 18, 71, 68,165, 36, 13,135, 77,186,157, 0, 83,171,171, 70,214,139, 42,222,225,112,122,224,120, 54, 72, 74,
+ 79, 20,170,187,210,170, 31,171, 86,149, 25, 21, 46,203,143, 71, 80,249,169, 41, 89,117,123, 0, 9,167,135,196,163,224, 6,255,
+ 0, 80,212,196, 84, 56,169,174,182, 98,205,243,150,144, 31,170,146,128, 64,169, 74, 77, 42,117, 98,181, 2,143,216,115, 75,156,
+ 7,252,213,164,249, 68,134, 27, 74,183, 27,209, 85, 62,239,118,136, 82,116,231,140,247, 82,109,190,113, 92,151,124,192,162, 42,
+154,144,154,141,184,245,161,167,179,244,106, 18, 9, 9, 43,111, 0,239,124, 65, 37,149, 58, 84,164,168,141,146, 74,121, 26,239,
+ 64,124, 0, 30,202, 13, 84,178,167, 87,168,185,151, 87,118, 31,190,171, 77,214,214,220,119, 84,197,181, 69, 9,121,182, 28,252,
+ 84,178, 86, 1, 9, 82,104, 2,143, 90,214,191, 70,185,236,236, 64, 65, 91,184,215,240, 11,184, 49, 30,247,205,154, 6, 73, 49,
+224,181,177,206,216,211, 10, 80, 45, 82, 91, 46, 72,109, 59,208, 16, 56,164, 10,145,225,237,215, 45, 44,102,209,106, 59,167,124,
+139,185, 10,189, 99, 54,139,117,145, 75, 50,209, 45,203,100,196,164,212, 37, 14,184,158, 42,113, 11, 59,165,101, 41, 4, 17, 81,
+ 95, 97,208,225, 94,217, 23,236, 81, 16,212,158,213,178,249,108,200, 24,187, 51,115,128,144,254, 38,243, 50, 31,125,180,236,228,
+135, 66, 11,172, 50, 77,106, 56,171,226,161, 27,145,190,165, 25, 2, 59,221, 73, 3,196, 59,137,152,162,209,106,159,127,140, 34,
+218,146, 83, 14, 67,201, 88,117, 94,114,154, 84,133,173,194, 77, 79,152,165,114,232,106, 41,227,169,206,161,171, 20,153, 31, 29,
+246,182,222,103,221, 44,247, 87, 22,136,176,252,137,177,212,202, 15, 36, 3, 69,144,221, 9, 10, 28, 19, 81, 81,237,246,211, 81,
+242, 8, 0,168, 70,160, 31,189, 25,187,231, 48,238, 23, 38, 33,202,108, 5, 33, 33, 49,110,105, 0,182,226, 92,227, 84, 37, 71,
+196,145,200,117,233, 79,118,129,229, 17,170,156, 98, 2, 94,238, 75, 22,211, 26, 60, 83, 29, 77, 37,106, 47, 7, 27,221, 41, 95,
+ 34, 28, 5, 35,238,143,186,170, 13,186,232,148,184,213, 59,170, 87, 59,195, 90,122,232,228, 57, 95,133, 61,104, 9,110, 64,167,
+ 7, 43, 94, 36,145,246, 87, 90,180,216,193, 10,192,235,159,123,155,132,179,110,152,204,233, 40, 30,111, 37, 52,251,110, 14, 35,
+144,170, 72, 80, 21, 2,190,209,181, 40,117,177,141,113, 98,203, 38,250,195,234,171,124,167, 10, 97,199,252,230, 91, 74, 90,235,
+ 68, 15, 5,110, 58,107, 90,155,244, 0,172,139,234, 74,114,241, 54,226,191,230, 51,178, 84,106,170,138,143,245, 29, 90, 18,117,
+ 80,197,138, 35, 6, 33,109,134, 86,217,224,242, 79, 23, 42, 15,221, 63,116,253, 26, 25, 82, 69,237,247, 43,131,113,156,180,190,
+162,149,164,243, 96,157,194, 86, 55, 52, 61,104, 65,208, 76,117,117, 33, 34,204,139,192,206,239, 24,180, 51, 60,177,206, 58, 65,
+228, 80, 78,212, 59,148,169, 63,116,212,116, 58, 28,233, 18, 83,174,227, 20,173,105,245,133, 54,221,119,126, 42,223, 43, 0, 56,
+243, 75, 74,184,172, 80,138,130,157,193, 28,126, 33, 81, 74,106, 83,193, 12,158, 57, 68, 23, 73, 25,151,115,239, 29,200,205, 83,
+ 57,135,144,165, 37, 10, 5,214,208, 82, 84,146,158, 96, 40,110, 65,219,110,189, 60, 70,175,224,208, 33,162, 29,214,111, 41,131,
+ 3,149,118,115, 38, 90, 99,136,235,228,195,178, 4,142, 13,180,165, 33, 77,154,133,145,240,215,168,175,180,251,245, 95,214, 25,
+ 34,158,155,105, 60,192, 31,103,211,237,218,133, 34,192,166,199,113,166,110, 22,152,153, 75,187, 58,235, 12,196,112,116, 33,106,
+ 36,131,191,191, 95, 34,217, 99, 6,236, 66,130,247,143, 71, 78, 63,156, 71,145, 51,255, 0,103, 37, 41, 77, 60, 84,144,116, 29,
+206, 29, 22, 45,205, 60,221, 88,141,107,191, 77, 68, 98, 10, 37,180,153, 44,129,226, 22, 43,250, 14,168, 93, 81,119, 76, 37,170,
+ 19, 46,107,118, 28,181,112, 10,169, 10, 75, 77,145,236,228,240,161, 31,110,155,102,232,247,165,185,181, 67,242,123,153,179, 89,
+ 26,131, 24, 81, 69,213, 45, 84,235, 64,170, 87, 84,163,102,203,128, 60, 17,221,226,131,119, 11, 42,144,211,241,230,199, 89,242,
+ 29,109, 45,212,120,120,142,159, 70,180,168,171, 67,226,129,185, 91,191,150,130, 99, 91,253, 77, 99,184,251, 68, 6,114,232,185,
+ 5,166,105,175,132,187, 84,132,160, 31,253, 98, 81,174,219,210, 23,255, 0,249, 10,199, 34, 37, 31,124, 79,230,202, 22, 13,192,
+142,212,192,137, 9,117,187,139, 64, 80,180,149, 10, 30,180, 78,187, 53,203,175, 80,208,168,246,102,166, 36,127, 81,105,255, 0,
+105, 90, 25, 42, 37, 78,112,186,244,151,103, 39,247,114, 27, 9, 3,251, 71,175,234,212,100,116, 72, 40, 54, 25, 14, 64,147, 41,
+ 67, 98,166,156,250,188, 53, 40,157, 20,147, 23,110, 98,249, 50,216, 46, 31,133,164, 57, 33,127, 80,219,245,232, 98,122,168,166,
+238,240, 50,231,122,251, 9, 15,185,174,213,220,251, 12,125, 24,229,229,254,171,147,103,184, 5, 38, 3,206,168,238, 84,203,227,
+202,175,136, 80,169,214, 71,171,177, 63,115,139, 28,145,243,214, 68,101,223, 19,192,159, 3,167,181,109, 96,219,230, 69,143, 37,
+202,157,183,236,231,113,187,185,221,139,109,143, 7,178,205,187,205,136, 20,228,180, 64,142,227,193,164, 54,104, 20,226,144, 40,
+128, 85,176, 42, 32,107,135,193,193,187, 40, 24,213, 3, 35,220, 29, 88,144, 36,247,171,170, 95,160,143, 84,233, 90,231,170,195,
+ 25,171,212,183, 22,217,129, 38,247, 99,106, 64,109, 93, 63, 13,201, 64,242,247,117,215, 69, 95,163,122,135,150,198,182, 61,155,
+162,255, 0,138,132, 99,180,241, 11,149,189, 87,118, 59,189,158,157,173,183, 69,247,103, 25,184, 88,153,156,249,143, 10, 76,200,
+235, 17,158, 13,167,149, 26,144,138,178,191,246, 84,117, 72,244, 92,140, 67, 17,116, 12,124, 70,158,254, 8,128, 16, 11,164, 14,
+202,100,238, 57,102,144,250,201, 21, 88,227, 95,236,234,175, 84,172, 8,160,215, 45, 66,232,156,122,232, 39, 99, 79,190,181, 80,
+ 8,202,229,191,181, 52,215, 31,139, 83,228, 18,174, 74, 77, 4,175,104,185, 45, 86, 57, 22,142, 91,240, 82, 70,254,227,166,234,
+207,230,214,123, 8, 79,137,168, 37,120,239,182, 74,243, 61,142,199, 36, 72, 87,241,141, 52, 99, 44,248,236, 43,174,170,186,183,
+151, 64,145,218, 17, 63, 77,158,153,187,229,234, 71,181,133,254,223, 91, 66, 45, 17, 37,165, 83,175,247,119,155,129,106,134,142,
+ 53, 81,118, 92,130, 17,176, 34,169, 71, 37,111,211, 90, 56, 29, 11, 39, 54,210, 43,143,194, 56,200,233, 17,237,252,134,169,162,
+126, 21,212, 29,142,244,141,218,142,219,185, 18,223,151,119,138,208,253,249,135, 92, 75,145,236, 54,187,149,202, 50,150,190,169,
+ 76,164,249,105, 59,248,241,215, 80,125, 21, 2, 26,121, 17, 7,186, 36,253,238, 21,115,149, 88,211,119,226,148,251,157,249,122,
+228,217,173,206,233,116,236, 86,103,100,205, 31,121,247, 28, 85,141,151,149,109,187,210,132,209,184,211,248,165,124,119,173, 23,
+ 95, 96, 58,163,145,232,171,162, 30,153,198,206,225,161,247, 31,226,143, 85,208,159,202, 65, 95,157,173,194,179, 46,221,122, 22,
+127, 7,238, 45,182, 77,171, 43,180,247, 26,231, 21,232, 87, 6, 92, 97,228, 37,120,244, 7,146, 74, 29, 0,208,131, 80,122, 30,
+163, 91,253, 22,137,211,128, 97, 56,152,145,105,208,232,126, 80,169,245, 17,240,143, 20, 59,182, 72, 68,174,231, 0, 15,192, 57,
+ 86,190,194,157, 95,144,248, 86, 34,105,245,177, 49, 22,159, 93, 93,199,200,151,255, 0,248,232,118, 86,154, 39,218,172,122, 26,
+255, 0,167, 92,167,170,171,126,163,111,254, 31,249, 98,186, 11,143,199,246,236, 84,196, 55,209,105, 97,172,234,225,247,153,109,
+210,202,143, 94, 78,124, 71,174,185,249, 84,225,144,196,151, 57,247, 23,184,105,202,123,131, 38,122, 28, 36,149,240, 21,254,200,
+212,109,165,130,179, 2,229,111,237, 3, 43,159,125, 76,201, 74,248, 25,113,210,234,137,240, 73,174,131,180, 25,129,224,167, 56,
+232,153,153,204,211,113,190, 94,179,103,143,240,241,155, 48,226,154,237,182,219,106,237,212, 59, 4, 17, 52, 99,179,151,210, 60,
+215,214,127, 21,213, 36,110,124, 43, 83,172,142,165, 13,177, 41,188,199, 43,103,116,115,117, 77,200,210,149, 57,200, 55, 83, 82,
+124, 18, 40, 53, 71, 11, 24,136, 57,226, 83, 89, 99,200, 4,155,254,101,123,151,243, 10,159, 36,175,128,223,246, 70,150,207,234,
+183,114,190,218, 47,161,152,127,168, 40,179,108,237,249,174,143, 49, 32, 41, 11, 6,138, 30, 61,117,218, 91,137, 32,116, 94,240,
+ 12,101,170, 90,238, 87,171,107,205,154, 89, 44, 62, 71,129,223,217,183,129,213,204,110,158, 39,197, 87,182,232,214, 21, 61,220,
+126,227,226, 93,229,140,184,249,100, 64,227,171, 20, 18,153, 60, 31, 65,173, 65, 74,254,159, 3,171,243,232,177,156, 24,253,188,
+ 59, 23, 63,157, 58,178,162, 99, 48,253,253,158, 11,154,189, 82, 99,217, 6, 25,218,235,204,139, 3,174, 92, 49,183, 17, 71,215,
+ 25, 10, 50, 27, 71, 46,142,160,110, 18, 7, 85, 1, 79,109, 6,218,185,233, 94,129, 26,115, 68,166, 67, 13, 71, 47,177, 92,102,
+ 95, 74,149, 82,221, 19,186, 63,122,249,245,143, 91, 21,125,187, 72,190, 58,160,136,161,197,121,117,246,114,216, 15,171, 94,225,
+ 32,203, 50, 1,245, 83,239, 23, 24,177,228,173,166, 20, 84,148,143, 45, 70,190, 34,164,159,172,254,173, 52, 66,156,164,165,226,
+248,146,111, 79, 39,146, 74,220,125,206, 72,225, 93,207, 42,127,167, 83, 67, 3,114,113,155, 6,219,219,235, 42, 36,222, 79,154,
+ 8, 80, 13,161, 37, 37,105, 64,167, 83,176,169,160,250,244,194, 78,167,177,134,169, 18, 22, 79, 10,235, 57,114,164, 33, 41,243,
+ 2,170,148,212, 37, 8, 73, 53, 2,187,248, 29,245,102,185,104,171,158, 43,107,247,187,114,227,161,165, 43,138, 10,139,131,143,
+222, 32, 10,255, 0, 72,209,137, 5, 66, 75,211, 18,145,113,150,151, 32,168,212, 38,141,183, 80,126, 45,183,253, 58,150,215, 80,
+224,136,219,178,139,206, 55,118, 9,223,138, 64,162,150, 84,160,125,158, 62, 58, 20,226,141, 25, 46,149,244,177,234, 1,184,247,
+104,144,178,119,208,227,174, 40,124, 42, 72,160,230,120, 39, 99, 82,126, 34, 0, 27,120,147,211, 89,121,148,110,142,139, 95, 18,
+246,103, 95, 67,187, 7, 53, 23,251, 12,171,180,135, 84,234,101,127, 19,228, 56,126, 10,184,215,150, 8, 73,165, 10, 81, 68,215,
+192,141,114, 89,101,139, 5,208,211,168,117,110,246,159, 36,153, 38,246,227,210, 28, 13,188,203,233, 41,243,133, 10,202,152, 68,
+ 98, 1, 59, 26,150,133, 61,251,117, 27,211,184, 6, 71, 87,197,171, 34,114,100, 31,151, 42, 66,200, 41,125, 0,138, 0,182,151,
+176, 32,215,175,196, 53,156, 99,183, 84,251, 80, 76,154,219, 42,210,227,113, 45,209,145, 43, 27, 33, 34, 69,180, 1,248,140,114,
+ 31,112, 42,137, 37, 1, 68,129,226,157,189,154, 61,115, 5, 50,131,111,197,173, 88,228, 23,230,198,105, 10, 83, 74, 13,201,226,
+ 63, 24, 6,194, 64, 53,241, 87, 17,201, 53, 7,167,191, 79,230, 18,146, 0, 38,220, 39, 93,164,219,225, 76, 15,218,201,243, 98,
+133,143,129, 52, 32,167,142,251, 5, 0,118,222,132, 15, 96,169,244,109, 82, 76,217, 68,137, 19,237, 73,112, 1,243,124, 57,241,
+235, 66, 90, 73, 59, 30,169, 10,228, 8,246,104, 48, 0, 20,146, 38, 77, 45,153,241, 3,202, 28,141, 2, 18, 79,222, 77,105, 64,
+ 65, 29, 66,169,245,106,212, 80,166, 85, 11,234, 18, 11,171,185, 49, 34, 25,226,149,254, 27,141, 40, 87,112, 64, 1, 84,240,223,
+ 91, 24, 39,181,101,228,151, 85,179,118,240,251,200,143,196, 37, 95, 19,117, 61, 66,121,168,128,105,236,233,173, 29,205,170,206,
+150,169, 99, 45,180,182,195,106,117,176, 10, 9, 63, 79,188,141, 91,166, 78,169,216, 25, 8,181,178,182,166, 37, 46,143,192, 41,
+ 91,106,175, 74,116,167,233,174,143, 34,130, 22,185,206,203,180, 6,203, 42, 5,198,143, 14,149, 0, 2, 83,227,236, 26,140, 53,
+ 76, 82,238, 81,159, 53,104,129, 41,199,148,182, 31, 44,151, 10, 82,161,197, 96, 10, 40,138,212, 40,110, 42, 8,173, 61,190, 19,
+216,160,185,126,237,155,174, 21,237, 87, 66,178,220,159, 48,150, 74,133, 19,197, 69, 73, 82, 84,127,170, 82,165, 15,175, 87, 76,
+ 62, 21, 16, 85,149,219,204,219, 25,254,105, 14,232,193, 8,243, 17,229,187,208,161, 36, 36,171,130,169,226, 55, 35, 74, 17, 32,
+186, 44, 72,230,174,126,212,228,248,110, 73,109,186,192, 66,146,222, 68,219, 78, 22, 2,126, 32,182, 0,248,209,246,142, 64,142,
+189, 53,205,125, 69,194,179, 43,165,203,103, 24,145, 47, 17,192,254, 42, 22,135,142,137,134, 77,237,155, 94, 28,171, 84,147, 84,
+189, 21,135, 26, 80,253,151, 91,115, 99, 79,160,235,229, 73,234, 75, 40, 67, 64, 23,235,242, 85,118,154,171,146, 55,144, 16,135,
+194, 71,137, 64,162,135,217,167,174, 44, 19,137, 38, 88,119,131,113,131,110,159,214, 68,117,152,206,147,226,217,221, 63,102,161,
+ 96,112,128,101,241, 32, 29,209,158,183, 84,155,188,113, 73, 13, 43,203, 52,246,162,139, 31,165, 58,133, 49,109, 17,206,161, 18,
+189,249, 55,232, 16,238, 76, 39,240, 93,139,230,167,222, 78,228,107, 35,168, 84,100,224,113,226, 17, 49,202, 1,125,199,196,204,
+ 94, 68, 52,144,101, 53, 64,213,122,133, 36,114, 31,160,234,246, 5,198, 85, 70, 71,143, 52,167, 22, 37, 59,122, 36,200, 23,140,
+122,156,237,125,237, 71,139,127,207,109,176, 95,169,251,159, 53, 49,184,203, 63,245, 86,117,208,250,110,253,153,180,159,253, 72,
+253,229,148, 85,205,150, 99,139,199,187,133,148, 89,220, 79, 20, 71,186, 78,129,199,216,150,230, 56,207,244,107,211,179, 14,203,
+ 8,239, 43,150,156, 90, 68, 45, 70, 26, 30,181,196,128,157,151,204,176, 71,189, 42,219, 84, 37, 38, 76, 19,238, 33,217, 16,112,
+209,152,247, 66,253,111,195,112,231,220,243, 45,178,111, 42, 90,164,205, 75, 71,227, 92,104,140,130,234,208,158,133, 84, 3,125,
+171,163,200, 87, 85, 98,203,236,141,113, 60, 31,137,240, 28, 74,183, 78, 20,236,215,128, 94,147,233,234,197,152, 49,112,184,118,
+ 55, 48,182,102,207, 71, 66,213, 42,213,110, 15, 70,186, 54,223,222, 46, 34, 28,144, 22,226, 19,181, 74, 42,119,233,169,227,154,
+ 50, 65,253,181,177,176,142, 67, 73,123,142,170,118,224, 78, 1,198,169, 82,210,210,161,169,228, 16, 82,250, 89, 45, 16,122,131,
+226, 63, 70,170, 2,203, 60,132,239,216, 28,147, 14,198,174, 23, 59, 71,113,210,227,157,190,191,218, 38, 65,184,181, 31,247,165,
+ 77, 82, 75, 62, 95, 80, 28,243, 91, 72, 73, 59, 2,106,118,213,204, 99, 85,144,157,119,124,147,137, 5,189,225,187,223,130,183,
+139,112,170, 78,120, 50, 19,144,247,247, 36,186, 71, 94, 23,128, 70,107, 17,237, 99,104,121, 12, 88, 44, 85, 97,181, 44, 16, 60,
+201,111, 38,142, 72,117, 64, 14, 74,112,154,157,232, 52, 90,242, 4, 43,242,233,136,174, 3,128,142,158,243,196,158,242,163,126,
+ 84,236,238, 9, 26,103, 57, 16,161, 17,191,150,226,156, 63,211,161,137,104,171,144,167, 64,239, 22,103,139, 71,123, 17,185, 54,
+206, 73,218, 43,147, 75,102,241,135,100, 8, 19, 45, 51,152, 82,129, 40, 44,189,200, 54,189,170,149,162,138, 4, 3,238,213,234,
+178,204, 96, 35, 47,138, 39, 66, 15, 4,106, 47,149,103, 67,167, 98,167,251,195,249,122, 72,197,239,118,140,167,210,149,190,125,
+243,179,185,211,162, 70, 59,108,104, 46,100,251, 92,176,163,243,150,153, 5, 60,148,163, 29, 66,169,113, 95,121,189,201, 60, 84,
+163,197,250,155,162, 78, 54, 67,200,137,148, 44,224, 6,164, 30, 96,248,126, 30, 11,106,160, 38, 55, 69, 89,216,215,229,231,222,
+ 56, 24,195,246,204,191, 39,196, 49,204,153,230, 11, 74,178,222,242, 40,237,206,109,207,234, 45, 49,146,243, 96,251, 71, 61,181,
+159,133,232, 76,184,147, 41,202,184,203,176,203, 95,184, 17,247,166,178, 65,155,112, 30,213, 82,103, 30,148,253, 66,246, 42,240,
+155,175,114,236, 15, 53,134, 56, 0,143,127,183,173,185,246,153, 1, 71,138, 74, 38, 68, 43,104, 21, 30,137, 81, 10,247,107,155,
+245, 79, 64,202,195, 0,217, 2, 34, 72,248,134,177,227,218, 52, 70,193,137,136, 46,155,123, 69,233,131, 18,239,221,150,102, 97,
+222, 73, 47, 65,244,245,132,150,174, 55,195, 24,148, 72,186, 60,231,248,123, 84, 69,237,197,199,212, 40,165, 3, 84, 39,125,137,
+ 4,117,190,148,233, 3, 46, 82,149,154, 87, 14, 61,253,193, 6,217, 0, 12,143, 4,245,220,222,237,100, 25,204, 56,152,227, 81,
+217,178,118,206,218, 26, 99, 31,197, 45, 41, 12,219,173,209,210,126, 20,161,180, 0, 22,189,234,167, 20, 57, 40,251,182,215,113,
+109,198, 76, 34, 26, 35,132, 71, 0,176,111,200,149,135, 94, 29,138, 22, 59, 43,249, 93,222, 51,205,116, 15,165, 75, 7,194,187,
+ 29, 2, 22, 60,152,246, 33, 24,232,167,153, 11,102,255, 0, 45, 0,209,213,200, 46, 54, 69, 65, 4, 16,161, 66, 52, 57, 30, 97,
+ 60,116, 70, 59,191,222,238,225,230, 88,245,171,181,217,116,211,113,198,224,202, 76,200,174,202, 5,114, 89, 80,101,108, 22,252,
+226,106,164, 16,190,138,169, 20, 20, 32,109,171,115,205,178,202,246, 72,187, 31,106, 60,174,148,162, 34, 75,164, 44, 53,135,172,
+185,212,169, 8, 53,226,221, 83,244, 87, 80,148,192,130,175,179,146,189,253, 94,122, 73,204, 59,141,234, 51, 60,207,178, 75,205,
+187, 14,237,125,203,249, 48,141,124,191, 60, 65,152, 99, 88,225,176,242, 97,198,103,147,175, 20, 41, 36, 29,128,173, 69,106, 14,
+170,117,126,129,118, 86,117,182, 18, 33, 15,133,137,231,240,142, 3,137, 93, 21,194, 32,188,139, 42,239,186,222,136,172, 89,183,
+110,145,137,246, 83,186, 22, 75,142, 94,138,185, 10,223,120, 98,101,145, 18,214, 81, 64,203, 82, 37,114,111,154,142,201, 10,160,
+ 39,196,117,213, 56,250, 83,251,151, 70, 71,176,130, 16, 55,215, 61, 35, 32,254,229,243,195, 44,236,191,115,251, 73,220, 55,177,
+ 14,235,217,165, 89, 51, 72,174,186,220,251,116,246,203,110,182,226, 79, 32, 65,221, 42, 66,210, 65, 74,146, 74, 84, 55, 4,141,
+115, 29, 70,169, 83, 41, 66, 97,136, 60, 10,179, 26,153, 73,193,111, 11,178, 34,239, 29, 38,171,113, 79,134,233,215,145,240,213,
+ 65, 91,204, 20, 78, 33,148, 91,189,233,235, 94, 25,109,177,180, 41, 34,124,132,135,189,191,122,166,191,102,181,205, 96,234,169,
+236, 46,155,176,108,137,171, 72, 89, 42,221,176,105, 67,227,172, 44,186,124,201, 42,228,144, 82,206, 73,149,189,115,189, 41, 12,
+158, 79, 56,175, 41, 35,233, 59,234,112,164, 66, 58,169, 87, 18,100,191, 21,123,134,111, 72,197,194,254, 20,197, 89, 81,175,253,
+162,156, 77, 15,232, 58,199, 21,151, 54,119,143,118,171, 99,185, 89, 24,215,118,178,172, 70,150,251,130,139,177, 5, 18,151, 21,
+253, 58,245,235, 48,227, 35,193,122,148, 51, 37, 1,218, 20,139,255, 0,113,191,204,109,146,165, 30,103,198,181,209, 40,197,216,
+133,126,102,224,135, 90,239, 82, 34, 57, 85, 42,173,214,160,141, 94,216,179, 76,209, 73, 23,113, 61, 41, 33, 68, 19,209, 64,154,
+131,244,141, 10, 81,229,201, 78, 18, 84,103,122,125, 34, 99,121, 91, 15,222,187,114,219, 54,108,165, 92,158, 45, 33, 28, 32,200,
+117, 71,149, 92, 67, 96,240, 81, 53, 60,144, 40, 78,228, 87,125,116, 29, 63,175, 78,179,182,207,138, 63,120, 89,217, 93, 58, 51,
+ 15, 13, 15,220,184,215, 40,192,179,188, 19, 36,115, 25,206,160, 59, 6,246,165,243,242,222,165, 29, 65, 81, 72, 90, 22,154,165,
+104,219,170, 77, 53,217,227,100, 66,248,110,129,112,185,187,105,149,101,165,162,191,187, 17,128,195, 54,232,243,214,159, 49, 79,
+ 26, 34,162,161, 1, 66,149, 36,251, 69, 42,125,250, 86,216,220, 21,154, 32,151, 61, 86, 35,228,110,194,218,133,114,141,197, 77,
+138,236, 2, 82, 66,136, 3,222, 72,212, 40, 46,155, 40, 48, 84,205,170,216, 95, 80, 13,142, 8, 74, 69, 91, 29, 2,104,105, 95,
+121,219, 87,224, 21, 5,147,224, 15, 39,231, 84, 74, 80, 85,196, 40, 31, 14, 33, 71, 71, 26, 40, 73, 15,199,242, 83,105,187,161,
+ 42, 87, 6,131,136, 74,146,158,164, 36,238, 43,246,234, 2,214, 42, 44,234,196, 68,203,125,249,105,150,150,255, 0,132, 32,249,
+ 73, 4,128, 77, 9, 42, 52, 4, 19,190,137, 57,129,197, 18, 49, 79,189,141,198,111,243, 50,118,158,182,195,118,111, 21, 9, 45,
+161,134,214,186,148, 81,196,146, 18, 58, 0, 58,251, 14,178,242, 46,136,125, 86,142, 45, 5,215,208,158,193,247, 66,231,134,185,
+ 18,211,147,195,118, 32,114, 59, 15,150,100, 36,182,182,155, 80,248,194,194,192, 41, 38,169, 94,254, 0,235,153,202,128,153,120,
+234,186, 60,114, 98, 24,171,251, 31,206, 91,148,137, 79,218,136,224,162,167,152, 93, 69, 84, 91, 63,136, 7,188, 20, 87,233, 58,
+205,148, 85,176, 85,139,143,247,117,216,178, 99, 92, 16,232, 44, 85,184,243, 16,122, 40,154,132,148,159, 14, 64,237,239, 58,171,
+ 58,157,209, 1, 78, 81,187,174,222, 64, 24,199, 16,138,202, 66, 66,153,125, 60, 40,180,175,238,145,196,248, 20,148,144, 55, 7,
+141, 42, 1,208, 5,109,170, 69,121,200,110,205,179, 10, 75,136, 15, 55,113,114, 59,140,186, 26, 40,115,206, 74, 0, 91, 68, 18,
+104,165,113,161, 65,241,216, 29, 18,185,106, 20, 21,125,103,205, 31,117,232,151,139, 82,216, 80,109, 78, 50,165,238,211,156, 18,
+160,135, 89,112, 82,135,138,146, 20,147, 74,129, 79, 96,173,221,160,232, 84, 9, 86, 20,124,190, 29,210,215, 13,183,214, 1, 40,
+117, 40, 32,128, 80,164,168,180,180,158, 61, 8,169,247,108,117, 91, 99, 36,100,148, 46,183, 52,198,155, 34, 4,132, 16, 20, 25,
+123,122, 10, 57, 66,146, 69, 63,180, 40,125,250, 56, 4,161, 74, 74,170,239,211,177, 87, 17,217,168, 33,104,101,106,113, 74, 62,
+198,188,198,205, 79,188,237,173, 44, 55, 5,150,117,228, 21, 74, 92,114, 64,204,178,210,151,193,247,156,228,189,254,234, 74, 2,
+149,185,233, 64,161,246,235, 94, 49,112,178,231, 38, 40, 13,235, 37,183,207,148,149,161, 99,228,212, 42, 0, 59,110,145, 80, 62,
+130,117, 98,160, 64, 85,236, 33, 65,185,191,242,168,243,219, 59, 21,243,253, 66,159, 93, 52,120,151, 65,144,100,153,148,230,172,
+176,219,206, 18, 2, 65, 87, 26,111,191, 64, 62,221, 26, 16,213, 12,151, 84, 71,118, 59,220,110,209,211,101,142,132,185, 13, 77,
+128,226,149,247,154, 80, 21, 9, 7,223, 66, 55,251,118,213,184, 86, 29, 64,149,207,249,159,112,140,166,219,133, 29,202,112, 36,
+ 41, 74,169, 80, 33,100, 80,251, 71, 77, 18,114,112,202, 41,187, 1,186,186,218,216,134,167,131,113,158,113, 10,122,149, 77, 20,
+ 41, 67, 93,198,253, 62,157, 78, 60, 83,130,175,158,204,199,118,201,153,217,238, 19, 30, 82,109,111, 75, 98, 42,221, 21, 77, 27,
+125,208,209, 42, 30,202, 19, 95,163, 86,178, 40, 23, 83, 56, 30, 6, 37, 77, 92,217,131,119, 27,123,237,218, 46, 41,227, 46, 49,
+118, 3,200, 4, 40,121,145,159, 45,154, 17,177,220,108,117,241,127, 82,199,242, 47,178, 31,220,145, 30,226, 84, 64,213,145, 12,
+ 74,226,226,239, 12,113,175,146,128,107,244, 19,190,179,140,246,197,212, 72,213, 57, 98, 86, 89, 95, 41,118, 91,127,185,101, 73,
+113,191, 97,252, 64, 8,255, 0,170, 70,162,255, 0, 10,134,199, 46,135,230, 86,135,238, 86,123,195,140, 38,166, 56,102, 90, 13,
+ 60, 43,197, 99,236,208,225, 45, 85,136,197,212,238,218, 71,110,231,141,197,183, 40,252, 77,165,196,167,220,149, 2, 83,160,219,
+172,146, 26, 20, 17,251,138,204,183,155, 87,221,228, 66,143,246,146,158, 42,253, 90, 85,215,182, 12, 59, 81, 36, 28, 58, 35,218,
+ 73, 40,179,119, 6,219,145, 32,241,131, 10,237,110,185, 71, 80,216, 32,183, 37, 14, 40, 87,220, 69,117,163,131, 63, 46,218,229,
+217, 33,248,161, 46,187,245, 39, 5,171,127,123,242,230,144,144, 57,221,167,188,191,114,157,125, 79, 3,245,215, 94,187,213, 67,
+100, 79,196,174,107, 39,252,201,120,148,155,140, 46, 45,207, 40,179, 69,144,174, 49, 36, 92, 34, 50,249,254,170, 93,121, 45,168,
+254,157, 86,170,177, 57,136,158, 4,133, 24,241, 81,253,103,220,239, 82,125, 83,229,169,191, 59,198,211, 29, 75,177,217, 35,116,
+106, 52, 24, 40,249,118,218,105, 29, 18,144, 19,202,131,197, 68,248,235,203,125, 79,149,102, 71, 83,188, 79,249,100, 99, 17,200,
+ 70, 58, 0, 63, 31, 18,186,146, 0,136,101, 92,246,155, 36,200,112,119,160,231,248,204,181,197,201,225, 73, 18, 98, 72,104,209,
+104,113,180, 26,125, 32,167, 98, 14,196,108,118,214, 70, 46, 77,152,246,137,214,118,202, 37,193, 76, 87, 73,250,145,102,220,207,
+114,221,202,173,140,166, 52, 60,134,223,109,200, 76,116, 10, 37,183,167,194,110, 75,192, 15,122,212, 79,215,175,108,207, 59,228,
+ 38,205,190, 49,147,119,144, 9,251,215, 61,153, 17, 27, 11, 36,165, 62,220,112,202,186, 70,113,183,120,253, 43, 71, 79,183, 84,
+ 97, 38, 85, 86,174,214,246,250,110,121,124,185, 72,149, 49,139, 62, 13,105,100, 92, 47,249, 5,192,148,197,183,198,175, 16,165,
+120,169,107, 63, 11,109,167,117,157,135,137, 23,177,234, 4, 25, 74, 66, 48,136,115, 35,192, 15,183, 1,205, 26,154, 13,164, 0,
+152,176,187,207,161,222,224, 93,151,219,204, 63, 45,191, 70,201,211,201,184,247,219,229,190, 43, 54,103, 92, 39,138,106,148, 43,
+230, 27, 65, 81, 31, 18,192, 9, 27,157, 84,167,174,116,203,103,229,198,115, 4,232, 36, 64,218,255, 0,136,246,133,164,122, 96,
+ 35, 67,170, 81,205,112, 59,230, 15,152,175, 9,202,152,242, 47,112, 22,227, 50,218, 38,160,112,169,228,146, 54, 41, 80,162,146,
+ 71, 80, 65,213,219,171,149, 71,108,184,133,151, 40,152,146, 15, 20,227,128,247, 35, 62,194,187, 61,115,195, 49, 43,147,176,172,
+247,103, 20,236,148, 71, 81, 75,129, 72, 73, 10,242,214, 55, 71,152,138, 5,241,221, 65, 32,116,168, 51,143, 80,182, 17, 48,137,
+ 96, 83,198,233, 68, 24,131,161, 85,155,142,169,166, 16,186,244, 95, 19, 95, 30, 70,167, 84,235, 31, 17,240, 66, 33, 49,224, 93,
+221,205,251, 89, 45,225,141, 74, 14,227,243, 85,229,220,108,147,210, 36,219,102,180,180,241, 91,114, 34,187, 86,214, 20,157,171,
+ 74,251, 8,213,138,242,167, 13, 6,177, 58, 16,117, 7,196,112, 83,162,233, 85,192,167, 14,229,101,221,173,201,187, 67, 3, 0,
+237, 5,160,227,248,130, 12,139,205,206,211,201,107, 74,111, 50,221, 33,192,149,168,158,109,182,211,105, 75, 71,193, 6,158, 26,
+183,100,233,170, 49,133, 17,219, 23, 50, 35,188,255, 0, 1,195,185, 19, 43, 43,205, 1,180,254, 42,168,149, 12, 73,180,177, 34,
+148, 45, 60,211, 68,255, 0,102,155,159,183, 64,140,149, 34, 29, 58, 64,236, 78, 98,245,185,172,227, 34,157,105,196,240,153,139,
+254, 2,231,152,221, 97,217,217,150, 83, 67, 86, 4,165, 5,172,111,177, 9,161,246,232,135, 24,196, 9,206, 81,132, 79, 3, 34,
+ 34,254, 14,175, 83,139, 57,135, 3, 68, 67, 52,236,254,101,131, 63,111,203,111, 13,199,153,137,205,117,147, 14,245,105,146,204,
+235,116,154,128, 20, 17, 34, 50,148,138,236, 77, 13, 9, 27,210,154,107,104, 49,136,144, 34, 81, 60, 8, 46, 61,225, 10,236,121,
+ 86, 62, 32,150, 51, 91, 50, 36,229,179, 99, 15,184,210, 90,125, 4,116,161, 58,173,189,152,160,132, 53, 9,140,197,254, 84,162,
+ 41,230, 54, 18, 63, 81,211,217, 39,139, 5, 50, 19, 15,116,179, 28,195, 54,188, 75,201, 51,105,238,220, 47, 82, 91, 74, 16,243,
+164, 81, 8,165, 82,134,208,154, 37, 9, 30, 1, 32, 13, 78, 89, 83,182,111, 34,238,165,100,204,203,158, 43, 89,131, 31, 38,196,
+ 82,149,167,224, 91,126, 82,146,127,101, 72, 27,157, 40,216,210, 67, 1,105,239, 78, 37, 35,212,135,166,123,149,151, 38,172,206,
+236,246,202, 34,114,140, 98,230,176, 12,153, 24,243, 15, 37,171,165,189,231, 79,196,180, 48,218,195,237, 86,164,113, 32, 16,154,
+234,175, 88,163,247,248, 82,145,255, 0, 50,160,224,243,218, 56,131,225,196, 45,140, 11,204,190, 19,203,130,226, 27, 47,111,220,
+151,154, 41,149, 35,202,111,231, 57, 60,129,253, 80, 57, 37, 67,233,232,117,231, 81,204, 96, 60, 22,142,221, 86,187,222, 10,110,
+ 25,140,118, 26,105, 75,134, 26,145, 46, 26,169,240,135, 80,162,217, 79,210, 42, 14,180, 50,243,182, 87, 6,230,163, 24, 2,150,
+111,140,220, 49, 75,131,144,165, 2, 42, 18,191,169, 64,255, 0,163, 83,174, 66, 97,213, 41, 85,241, 20, 2, 42,229, 90,166, 72,
+186, 73,221, 8, 7,201,175,138,149,208,254,157, 53,196, 78, 32, 4, 90,225,179, 84, 49, 17,175, 98,107,185, 41, 74,188,227, 41,
+166, 0,241,242,131, 75, 73, 63,245,200,208,182,195,110,213,107, 85,212,121, 94, 11, 22,187,164,115, 63,117, 73,235,175, 79, 18,
+ 94,130, 36,144,238,248, 99,214,199, 60,248,134,130,189, 6,194,191, 70,141, 11, 25, 52,163,185,121,139,115,106, 34,124,137,199,
+141,126, 26,145,162, 56,146, 1,172,133, 62, 26,152, 36, 42, 19,129, 77,245, 41, 4, 29, 68,133, 49, 30,196, 94, 51,209,222, 71,
+ 39, 64,229,227, 90, 13, 12,197, 56,116,177,220,190,215,225, 29,201,179,155, 70, 79, 9,185,112, 65, 42,104,168,113,117,135, 10,
+105,230, 50,177,241, 37, 67,218, 14,254, 32,141,180,124, 92,203, 49,229,186, 36,133, 11,105,141,161,164, 29, 86, 51,187,125,124,
+236,117,129,119, 8, 9, 85,207, 13,132,193,101,169, 45,167,241,217, 43,216,173,244, 32, 80, 19,176, 11, 27,125, 26,236, 49,122,
+172, 50,190, 19,164,187, 57, 31, 5,147, 60, 73, 81,222, 23, 56,119,183, 43,255, 0, 57,228, 46,220,150, 71,201, 50, 41,205, 32,
+211,151, 37, 18, 7, 90,245, 39,236, 26,218,198,131, 5,151,151, 99,164, 1,120,135, 6, 42,227,215,139,238,116, 52, 38,164,129,
+182,222,237, 92, 4, 5, 73,208,231, 81,113,154, 92,243, 29,226, 7, 21,249,116, 38,160, 36, 10,251,182, 30, 58, 40,135, 53, 2,
+ 84, 56, 88,172,139,236,241, 30, 18,194, 94, 59, 30, 7,153, 59,248, 15,110,218,143,149,185, 32, 85,247,216, 94,203, 66,189,221,
+ 80,220,183,188,215,194,195,105,136, 79,152,176,163,181, 21, 82, 16,157,235,177, 63, 73, 26,167,146,118,112, 90, 88,181,191, 21,
+245, 51,242,253,236,206, 11,219,120,102, 61,202, 67, 75,188,188, 60,213,165, 73,142,167,210,145,189, 2, 80,186,128, 43,182,196,
+ 87,122,141,113,189, 78,114,153,101,211, 98, 87,180, 46,237,198,125, 28,246,183,189,157,175,148,223,114,236,241,231,181,112,108,
+ 42, 60,213,199,104, 77,100,165, 33, 72,117,167,136, 14, 37, 84, 32,138,212, 26,110, 8, 38,185,209, 50,137,248, 79, 5, 91, 47,
+ 48, 87, 33, 21,203,254,160,125, 46,102,254,156,103, 63,121,197, 60,235,183,108,190,100,202,141, 37,107, 65,151, 17, 64,173, 42,
+109,228,142, 37, 72, 40, 9,248,146, 15,191,218, 79, 28,152, 88,123,214,165, 80,148,195,128,171, 43,119,118,162, 50,228,146,183,
+ 43, 6, 66,152, 99,133,105, 68, 58, 82, 91, 35,222,146, 79,217,162,154, 83, 3,170,108,194,187,187, 17,196, 33,217, 78,254, 8,
+154, 28,128,180, 30, 42,143, 33, 36, 10, 84,111, 66, 66,210,124, 40,125,218, 28,233, 41,221, 94, 7, 38,180,102,208,164, 34,208,
+190, 50, 91,100,201, 97,134, 86,144,234, 74, 85,247, 19, 93,137, 66,129,225, 93,142,192,236,117, 66, 0,197,157, 57, 84, 95,114,
+ 47,177,173,179, 26, 92, 71, 40,171,179, 50,156,137,112,100,169, 11, 50,227,178, 86, 26, 82,118, 1, 84,109, 73, 32,130, 71, 17,
+ 90,128,107,177, 68, 73,246,126, 10,165,211, 0,169, 61,155,238,156,140,170, 60, 91, 68,169, 73, 18, 90,142,210,208, 69, 7, 39,
+ 7, 31, 53, 32, 13,184, 45, 10, 65, 72,246,125,154,158, 77, 27, 92,170,245,220, 74,177,175,151, 70, 27, 76,139,171,235, 10,227,
+197, 47, 19,253, 71, 17,243, 27,211,251, 72, 58,169, 30, 44,167, 46,107,155,123,173,220, 39,211, 5, 54, 73, 36,148,202, 18, 37,
+188, 65, 39,156,117,220,156, 72, 31, 95, 45,110,227, 86, 31,193,101, 93, 50, 64, 84, 86, 87,150, 79,145, 46, 75, 11, 81,242,252,
+233, 1, 42,175, 82, 86, 71,216, 91,223,234,214,188, 32, 4,125,139, 50,115, 46,130, 49,148, 43,231, 20, 92, 81, 8, 90,156, 75,
+117, 63,247,105,225,250,211,162,109,100, 35, 45, 81, 72,189,203,133, 56,187,109, 82,249, 47,159,195, 83,238, 4,143,171, 76, 43,
+ 98,164,233, 10,225, 96,238, 87,113,163,204,145,130, 91, 94,145,101,140,241,139, 50,114, 80,165, 52,218,150, 66, 19,184,218,164,
+157,170, 69,126,202,200,228,194, 5,137,213, 26,172, 41,204,110,109, 23, 60,119, 27, 5,238, 30, 31, 42, 99,121, 45,189, 97,165,
+168,199,243, 24,230,146,219,174,213,109, 18, 22, 7,194,105, 74, 26, 26,235, 78, 17, 19, 26, 21, 90,202,140, 75, 21, 92, 68,237,
+150,112,213,209,217,210,225, 56,235, 9, 82,159, 1, 3,115, 65,189, 82,189,254,192,122,105,126,214, 96,160,144,143,227,208,238,
+110,202, 67,112,137, 18,192, 79,225, 40,148,172, 20,171,116,241, 52, 87, 93, 72,195, 84,195, 85,216, 93,139,176, 74,200,109, 81,
+241,249,132, 42,228,128, 37, 50,211,180, 80, 10, 4,186, 40, 83,211,116,157,143,142,174, 13, 7,138, 34,180,123,179, 17,120,221,
+174,197,112,144,158, 15,220,100, 72, 81,108,242,248, 84,133,142,104, 5, 71,113,241, 2, 61,128,143, 29,124,131,234,156, 93,153,
+153, 29,130,115,252, 79,253,190, 10, 35, 73, 41,184,164, 2,208,113,242, 55, 75,100,129,254,240,211, 92, 93,147,254,154, 32, 26,
+171, 58,212,132, 88,123,125, 26,115,244,249,153,238, 45,165,159,111, 21, 33, 35,245,104,181,203,114,104,142, 40, 86, 55, 41,153,
+ 56,124,233,210,232,126, 97, 82, 98, 30, 94, 33,164,168,234,112,135,198,166, 36,200, 39,105, 46,105,136, 99, 71, 87,245, 84,202,
+189,202, 64, 38,191, 97,212,188,183,145, 67, 37, 39, 92,110,175,197, 85,237, 79,157,153,113,212,180, 79,137, 42,165,126,205, 88,
+ 48,102, 79, 25, 56, 68, 34,228, 45,217,177, 24,240,246,249,242,150,165, 45, 94,197,169, 93, 63,234,211, 76, 34,197, 50,237,223,
+ 88,147, 83,111,245, 23,148,161, 63,186,145, 37, 43, 85,125,139,140,211,168, 63, 97,215,179,117, 96,247,207,237,200, 46,119, 44,
+127, 80,248,170,187, 30,122, 68,137,170,105,165,148, 80, 23, 91, 88,234,149, 32,243, 4, 31,113,213, 8,157,186,160, 18,172, 79,
+ 86,221,152,205, 61, 76, 68,183,122,132,236, 68, 21,223, 50,119,154,108,101,184,229,184,133, 92, 33,203, 44,165,167, 93,110, 53,
+121,184,203,138, 72, 82, 75, 96,154,147, 80, 41,183, 51,234,127, 77,221,153,121,203,198,142,253,195,227,136,249,132,185,150,230,
+ 15, 29, 57,186,233, 49,114, 35,108,123,210,119,167,143, 72,125,229,190, 34,114,123,185,103,155,131,246,250, 4,152,206, 76,190,
+101, 17,157,183, 33, 49,184, 31, 56, 71,110, 90, 82,227,174, 17, 80,132,161, 38,170,166,177,176, 61, 29,151,145,108,101,100, 13,
+ 80, 4,110, 50, 12,195,184, 29, 73,236,239, 68,156,196, 65, 39,130,116,239,159,112, 45,189,205,205,239,153, 6, 56,130,214, 56,
+201,106, 13,165,162, 56,148,195,138,210, 98, 50, 56,239, 67,193, 9, 36,123,117,232,153,243,140,236,120,252,188, 7,128, 12, 23,
+ 55,125,190,100,201, 74, 44, 76,118,110, 56,150,191,237,227,146, 18,125,186,164, 96,199,197, 87, 7, 86, 78,183,108, 43,183, 25,
+143,166, 11, 38, 41,149,231,145,241, 43,100,171,244,140,131, 37,133, 14, 51,151, 11,181,193,168,172, 38, 44, 24,233, 97,133, 36,
+ 37,176,162,226,130,157, 80, 72, 85, 8, 4,141,173,100,244,216,230, 97,198,169, 90, 33, 29,196,203, 71, 37,180, 1,191,138,215,
+196,186, 21, 87,169,212,160,184,158, 63,232, 55, 4,200, 92,135,143,226, 89, 37,254, 67,173,173,183, 39,223,111, 77, 66, 43, 10,
+ 77, 85, 70,109,237,241, 0,211,109,235,170,149,250,119,165,194, 45,178,115,241,147,126, 10,103,169, 1,192, 47, 29,245,239,126,
+ 47,221, 46,225, 89,101,227, 86,135,172,241,173,246,168,246, 7,155,151, 47,231, 93,124, 70, 74,154,105,229,188,164,165, 74, 95,
+150, 82,146, 85,185,166,182,114,108,133,177,137,136, 32, 8,129,169,115,167,122,206,201,200, 22,201,217,150,188, 17, 51,111,127,
+ 39,141, 64, 28,231,202,117,184,236,183,253,103, 92, 88,109, 35,235,174,179,225, 81,148,192, 28,208, 56,232,165,247,159,191,190,
+156,189, 60,100, 83, 59, 91,108,237,251,121,155,182, 9,170,181,100, 87,203,197,210,108, 55, 37, 76, 97, 94, 92,161, 17,184,191,
+ 11, 40,109,208,164, 37, 70,164,211,112,122,156,174,161,234,156,124, 44,153, 81, 10,119,236,210, 82, 50, 33,200,208,128, 7, 13,
+121,173,216,225, 87, 17,168,114,160,230,150, 46,223,231, 56, 29,183,191,189,133,113,243,218,201,243, 21,104,184,218,238, 10, 74,
+230, 88,238,236,183,231, 42, 27,203, 78,203,109,109,144,182,151,226,157,149, 67,215,102,171, 41,201,160, 95, 75,237, 37,136, 60,
+ 98,123, 63,129, 89,185,216,222, 86,163,129, 67, 96, 60,136,206, 55, 25, 70,141,172, 23, 86, 62,144,116, 40,157, 85, 14, 73,163,
+211, 78, 43,142,247, 11,187,208,172, 57, 82, 11,184,172, 4, 74,188, 92, 34,160, 84,200, 98,223, 29,114,203, 84,218,188,212,128,
+147,238, 39, 87,240, 43,140,172,248,184, 0, 73,246,106,173, 98,212, 39, 48, 10,230, 63, 80, 29,195,202,251,241,220,137,253,204,
+206,101,169,219,149,201,101,166, 34,133, 31, 34, 12,118, 84, 67, 17, 99,167,162, 27, 66, 77, 0, 3,222,119, 36,235,202,122,183,
+ 83,179, 50,211,108,203,147,247, 14, 64,119, 5,209,194, 46, 85,241,216,110,245,218,251, 61, 62,221,138,231, 77,200,184,118,110,
+255, 0,102, 17,114,139, 84, 98,149,175,205,142,149, 22, 37,199, 67,138, 74, 82,251, 75, 9, 33, 85, 27,109,236,161, 61, 61,234,
+ 47,244,235, 12,109,115, 76,180,144, 31,113, 29,224,165,101, 66, 96,131,192,171,122,251, 19,211,246, 95,217,188,171, 60,237, 93,
+190,236,155,181,165, 86, 72,226,227,127,121,142,110, 34,224,242,210, 66, 89,134,124,177, 68,183,185, 53,235,182,189, 11, 3, 63,
+ 19, 62,139,101, 76,102, 54,109,214, 77,252,196,242, 26,114, 89, 89, 56,144,174, 14, 29, 80,179,101, 7,221,115,203,251,233, 88,
+169, 30,202,211, 72, 6, 11, 53, 91,125,234,207,187, 87,233,130, 60, 12, 29,236, 78, 62,103,220,159,149,139,112,188, 79,191, 59,
+ 33,152, 77, 51, 45,148, 72, 12, 68, 98, 43,137, 36,132, 56,144, 92, 89,168, 61, 5, 54, 21, 58,215, 94,171,165, 88, 41,141, 66,
+201,176, 50, 50,225,168,118, 0,119,115, 91,152,248, 16,216, 12,181, 37,126,229,150,236, 6,225,135, 90, 59,175,217,214,156,139,
+219,236,161,153, 11, 69,170, 83,133,231,109,179,224, 58, 24,155, 24, 56,170,169, 72, 28,146,164, 40,238, 65,213,225,109, 89, 53,
+195, 34,160, 68,102,250,118, 17,161, 31,193,103,230,227,138,165,167, 2,180,122,109,183, 38,239,223,187, 62, 53, 51,226,180,221,
+226,222, 44, 18,144,122, 45,169,246,185, 12,208,143, 17,201, 64,253, 90,179,210,198,235, 60,179,194, 96,143,120, 42, 24, 71,250,
+129,115, 11,248, 99,118,254,224,206, 79,151,196,159, 59,203,219,163, 81,210, 26, 10,250,212, 14,188, 10,252,131, 29,123, 23, 77,
+ 24,104,138,217,187, 81, 30,211,143, 88, 23, 53, 63,197,207,122, 76,182,185,117, 40, 85, 87, 79,160,128, 53, 44,174,160,108,136,
+101, 24,195, 86, 85,175,119,123,125,111,154,228,139,203, 45,114,121,109,242,140,138,126,211,138,226, 1,254,233,174,180, 41,234,
+ 59, 76, 98,152, 84,238,146,178, 78,206, 58,155,189,178,218,161, 70, 83,228, 45,253,190,242,156,112, 42,154,208,167, 59,112, 62,
+212, 51, 83,178,222, 59,112,143, 48,176, 16, 60,144,248, 73, 20,218,134,164,106,183,238,116,119, 68,217,170,185, 46, 6, 29,222,
+ 15, 36,211,207, 72,251, 70,189,164, 21,220, 58, 95,118,209, 30, 90, 75,106, 77,107,245,234,105,221, 9,185,246,229,155,130, 15,
+150,146, 2,182,168, 26,136,179,106, 36,117, 74, 55,124, 6,253,140,201,249,142, 10,242, 1,217, 64, 18, 8,250,181,106,187,196,
+184,168, 74,178,165, 91, 35, 42,117, 23, 29,194,220,161,213,165,110, 21,244, 19,166,144,230,144,151,106, 42,214, 61, 38,224,215,
+ 20,168,161,241,251, 39, 65, 42, 78,203,212, 75, 92,219,115,230, 52,214,234,218,197, 21,226, 8,233,184,241,211,143,135,130,129,
+ 59,149, 21,234, 63,208,180, 44,173,147,146,118,156,162, 12,178, 84,185, 22, 83,240,196,123,157, 74,212,209, 20,242,150,122, 1,
+247, 63,187, 90,235,167,233,125,124,193,161,102,163,183,159,183,181, 99,102,244,221,239, 40,104,123, 23, 14,101,248,214, 73,137,
+100, 50,173, 55,200,111, 68,157, 8,165,153, 13, 73, 73, 66,195,138, 10,226,170, 31, 3, 77,136,216,245,241,215,105, 77,145,178,
+ 59,162, 92, 21,206,217, 19, 2,196, 49, 95,150, 56,243,166, 66,243, 86,176,175, 49,124, 93,173,121, 10,109, 79,179, 86, 68,180,
+ 67, 26,167,140, 50,210,196, 69, 0,243,124,210, 54,218,160,241,173, 65, 0,236,105,239, 7, 80,220,166,174,254,209,100, 16,241,
+ 7, 13,202,223, 25, 8,185, 10, 3, 33,180, 32, 40, 36,110, 10, 65, 4, 3, 94,180, 26,171,116,119, 43,248,243,101,214,126,154,
+ 59,223, 6,239,152,218, 96,220,167, 60,200,149, 41,152,142,185, 29,109, 33,213,121,138,224, 18,165, 55, 74, 39,125,245,207,117,
+ 42, 76, 32, 72, 11,160,233,214, 9,216, 1, 58, 47,173, 86, 14,254, 99,216,182, 46,204, 11,108,198,196, 8,108, 54,196, 84, 37,
+196,148,209, 45,241, 32, 20,166,135,114, 42,117,194, 79, 34, 92,215, 68,125, 59, 27,100, 11,113,251,118,165, 76,191,186,182,108,
+206, 2,162,185,228, 59, 29,242, 67,168,114,132, 40, 10,164,141,246,221, 36,142,154,165, 60,137, 30, 28, 87, 77,131,209,133, 61,
+189,139,230,247,174, 76, 46,233,216,220,185,140,174,206,226, 21,128,223,222, 66,161, 54,195, 33,148,196, 91, 85,113,108,172, 35,
+111,187,203,137,234, 71, 94,149,215, 95,209,114,198, 76, 54,159,152,113, 88, 62,160,233,135, 22,123,192,248, 15,220,126,223,139,
+ 42,223,181, 29,218,158, 83, 14, 4,213, 31,226, 38,121,234,169,173, 22,167, 80,234,142,254,192,154,125,122,218,182,142,107,148,
+243,151, 65,118,163,186,146,237,249, 60, 91,219,114, 9,101,198,158,143, 41,165, 29,212, 30,142, 92, 7,221, 78, 21,250,117,153,
+125, 0,197,187,255, 0, 52, 72, 95,171,170,135,186, 93,218,125,235,253,206,198,251,223,195,177,119,102, 83,107, 42, 53,109,197,
+165,229,184,164, 87,160, 82, 86, 80, 64,240,160,240,214,182, 37, 13, 16,123,149, 11,174,212,133,239,179,217,244,203, 52,235, 85,
+226, 10,248,182,133,173,185, 59,254,203, 47, 58,223, 33,254,192, 63,111,187, 70,190,177, 39, 5, 6, 19, 96,175,123, 15,120, 23,
+124,193, 89,122, 83,188,190, 98, 20,178,233, 87,253,227, 16,193, 7,233, 5,103, 89, 39, 31,108,253,191,154,179,230,184, 92,241,
+221,204,245, 45,222, 98, 54,240,248, 98,176,203, 85,222,171,109, 78, 7,192,167,247,137,214,214, 53, 47, 19,226,179,111,177,136,
+ 85, 46, 91,148, 63, 62, 65,184, 69,116,121, 1,231, 18, 7,180, 34,160,127, 72,214,148, 52, 12,168,207, 82,129,101,121, 19,144,
+113,200,119, 20, 44,135,131,166, 50,169,212,169,105, 38,191,104,175,215,166, 5,138,137, 9,123, 19,205,237, 48,175,197,171,227,
+139, 84, 93,199, 6, 9, 11, 83,202, 85, 82, 43, 77,146,161,212,143,187, 93, 14,251, 8,210, 60, 85,252, 44, 77,229,229,193,116,
+150, 51,222,172, 82,219,137,196,194, 49, 11, 67, 86,235,123, 42,112,186,220,100,130, 30, 90,220, 60, 20,235,148,243, 29, 80, 4,
+ 10,175,169, 72,218,189,105,195, 12,153, 25, 18,175, 91,113,136,218, 2, 86, 93,148,156,133,216,210,217, 74,172, 50,211,197, 49,
+228, 36,173, 36, 3, 93,130,106,160, 5, 73,175,244,215, 90,245, 75,104,112,177,173,153, 39, 84,187,220,236, 38,203,140, 74, 83,
+207, 50,201,181,188,180, 54, 27,108, 23,252,162,180,113, 80,109,101, 45,184, 0,167,237, 38,163,219, 93,106, 81,145,185, 87,153,
+101, 93,199,237,229,182, 69,248, 67,156,231,148, 21,196, 70,117,142, 43, 91,110, 18, 20,148, 87,110, 66,155, 26,244,247,234,193,
+105, 40, 5,125,122,121,194,110,243,167, 53,112,132,219,107,156, 36, 46, 19,133,191,133,178,150, 18, 27,228,146, 61,164, 80,143,
+125,117, 32,166, 29, 48,250,142,185,174,235,220, 28, 95, 19,165, 91,114, 49,146,163,200,138, 58,218,128, 74,183,235, 81, 84,154,
+251,107,225,175,150, 61,127, 95,149,159,151, 31,239, 72, 55,137, 17, 47,237, 67,118,159,130,147,140,223,218, 82, 37, 44, 80, 54,
+ 84,148,164,251,147, 83,182,188,226,218, 14,208, 18, 22,166,254,239,228,200,178, 98, 56,197,173, 6,143, 37,145, 49,225, 90, 16,
+ 93, 81,115,127,209,167,170,163,230, 1,220,164, 39,240,186, 0, 47,206, 69,237,213,174, 27, 74,163,242, 30,126, 82,141,105,179,
+170,220,159,171, 87,235,168, 57, 80, 54, 49,101,227, 8,112,219,224,221,174,107,216, 50, 92, 45,215,193, 42, 80, 21,250,244,140,
+ 62, 36,192,238, 9, 74,229, 53, 55,219,155,204, 55,251,128,162,252,138,123, 43, 90,125,122,156,131,106,137, 29, 2,247,104,103,
+249,222, 89, 10,221, 44,129,111,105,192,236,195,224, 27, 64,230, 71,216, 41,160,119,169, 14, 43,186,125,104,188,183,253, 67,223,
+228,126,194,154,179,184,145,237, 83,150, 72,174,126,181,107,217, 58,128,254,177,239, 3,240, 11, 3, 51,252,217,125,185, 37, 76,
+ 27, 13,189, 79, 67,217, 19, 12, 45,120,221,188,183, 26,108,180,138,161,167, 95, 74,150,132,174,157, 57,132, 40, 38,189,104,117,
+ 74, 80, 59, 12,155, 69, 85,139, 58,147,125,187, 77,182,184,155,157,177,247, 35, 56,210,168,211,172, 45, 77,173, 42, 72,169,162,
+144, 65, 27,106, 0,152,151, 26, 20,129,100, 45,156,223, 40,189, 72,126,227,124,185, 74,156,233, 96,180,223,206,200,117,254, 7,
+221,230, 40,211,234,213,137, 89, 41,233, 34, 74,121, 18,120,173,150,102, 46, 45, 99,162,239,229, 56,109, 92,252,151, 36,240, 87,
+148, 30,113, 37,105, 65, 95, 78, 68, 36,144, 43, 93,181, 94, 96,152,187,112, 44,152, 5,190,198,130, 29, 43,115,104,142, 40, 16,
+ 61,195,174,154, 96, 16,132, 35,241, 58, 51,115,141,217, 78,217,246,148,250,131,239, 95,243, 75,165,142, 69,221,252,106,217,142,
+ 99,233,101,130,252,150, 99, 38,103,241, 83, 31, 81,242,154, 40, 87,236, 32,171,217,169, 93,147, 78, 21, 34,235,132,165,186, 76,
+ 0,237,103,212,242, 11, 79, 31, 22, 54, 71,113,224, 21,117,117,252,206,108,214, 27,188,104,253,174,236,230, 31,110,183,189, 68,
+135, 50, 6,102, 95,229,182,145,236,126, 67,140,138,211,199,134,177,163,235, 25, 23,242,232,132, 71,123,200,251,244, 90, 35, 30,
+184,240,136, 77, 93,142,245,121,223,206,255, 0,122,128,135,219, 91,109,143, 3,199,113, 70,173, 87, 12,150,249,127, 86, 25, 30,
+111,242,248, 22,216,198, 67,174,249, 65,212,169, 64,168,161, 0,114, 27,168,106,223,167,189, 67,151,212,136,131, 87, 29, 9, 39,
+102,128, 14,231, 80,156, 33, 25, 31,132, 48, 29,138,242,133,234,139, 4,181,199,118, 52,108,227, 32,117, 72,253,226,176,188, 99,
+ 22,199, 25, 88,175, 68,185, 33, 50,100,164,125, 6,186,233,103,108,153,141,243,255, 0,193, 24, 71,241, 4,170,135, 62,184,240,
+ 7,216, 0, 85, 31,115,113, 79, 68, 89,163, 87, 89,249, 76, 12,217, 51,167, 62,171,140,235,132, 75,189,165,217, 46, 62,242,252,
+215, 29, 34, 76, 82,146, 84,163, 85, 87, 92,253,158,156,233,214,218,102,124,221,197,201, 59,135, 63, 98,111,245, 56,240, 98,188,
+224,119,207, 75,221,171,236, 78, 95,218,174,204, 77,201,231, 92, 50,105,214,171,154, 27,203,152,181,134,226,185, 1, 74, 74,203,
+110, 91,220,220,173,181,208,213, 30, 3, 90,152,216, 56,248, 52, 78,186,204,142,242, 14,173,163,120, 33,228,230,194,202,200, 14,
+151,228, 93, 25, 98,120,113, 71,224, 67, 4,111,238, 77,117, 82, 80, 89,145, 58, 47,206,203,247,122,239,218,142,227,218,251,147,
+104, 74, 93,147, 21,213,173,113,220, 52, 67,204, 44, 22,157,105, 93,118, 91,106, 41,173, 54,174,174,209, 97,166, 98, 67,146,177,
+ 77,134, 18, 4,114, 94, 59,137,232,169,158,231, 95, 30,205,125, 43,223,237, 83,240,139,140,165, 92,134, 49,123,184, 69,180,221,
+236,229,127, 26,162,169, 19,150,134,221,105, 4,241, 67,136, 89,168,235,210,167,148,234, 30,143,149,182, 25,226,152,152, 31,229,
+ 37,140,123,181,226, 7, 34,235,160,175, 42, 19, 14,234,207,193,187,127,219,175, 78,141, 68,203,251,173, 34,209,151,119,125, 48,
+159,137,105,197,227, 41,187,165,166, 17,120, 81,201, 55, 7,147,248, 78, 41, 40,170, 82,210, 9,220,214,189, 10, 99,210, 61, 53,
+ 14,159, 57, 93,147,178,201,240,140, 62,104,135,231, 46, 68,183, 47,176, 29,249,177,128,104,151, 40,142, 91,234, 19,183,247,142,
+203,221,240,251, 22, 31, 19, 27,190, 94,157,133, 37,249, 22, 21, 45, 16, 92,249, 7, 84,180,164,198,113, 68, 53, 64,181, 83,129,
+ 53,232, 70,186,154,206, 61,117, 78, 53,212, 32,102,207,183,129,110,238, 92, 79, 5,159,118, 97,178, 27, 72, 84, 93,150, 98, 20,
+234,156,116,213, 11,228,165,127, 70,129,104, 84, 66, 51,249,151,221,221,183,247,206, 68,164, 26, 33,203, 77,137, 41,250, 21,104,
+140,173,190,205,113,190,180,139,245, 25,127,195, 31,249, 66,233,227, 47,128,120, 38, 47, 79,247,135, 30,244, 51,100,184, 74, 36,
+249, 25,109,250, 18, 9,240, 14, 64,134,225, 27,255, 0,106,186,232,122, 4, 63,252,104, 29,150, 75,240, 11, 47,170, 73,196, 83,
+247,165,230,131,190,163, 48,247,218, 20, 73,152,167,200, 62, 8,242, 86,218,126,210,117,173,210,166,249,113,241, 85,113,116,156,
+124, 85, 63,150, 98,137, 70,117,124,156,249, 2,136, 22,230, 0, 27, 5, 58, 82,179, 79,180,235,231,188,191,148,142,101,116,224,
+162,253,205, 49, 19,145, 66,152,210, 2, 45, 22, 56, 72,106, 50, 70,220,156,224, 83,250,183,208,161, 91, 17,216,156, 21, 82, 32,
+ 70,187, 72,181,166, 74, 69, 29,144,183, 0, 62, 40, 10, 36,125, 85,211,204,203,121, 61,131,248, 34,196,124, 46, 84, 5, 69,110,
+243,147, 77,153,196, 24,208, 92, 15,171,109,130, 35,165, 71,127,175, 90,120, 78, 3,118,160,146,197, 6,249, 62, 56,159,243,178,
+159,226, 22,239,204, 1, 79,217, 64,223,244,168,105,183,107,237, 70,219,162,210,213,198, 76,111,133,192,125,202, 4,235,222,215,
+103, 40,130,189, 70,190, 8,242,131,206,138,182, 79,197, 77, 76, 20, 57,197, 60,225, 50, 45, 55, 7,146, 93, 0,182,122, 19,181,
+126,157, 6,209,162, 45, 51,218, 85,158,174,216, 98,153, 61,167,136,109, 10, 81, 79,179, 89,147,186,112, 43, 82, 2, 51, 10,157,
+207,251, 10,238, 51, 57, 83,108,131,148,112, 74,203, 43,220,127,178,122,141,104, 81,155,187,138,171,118, 59,112, 65,237,177, 26,
+ 7,138,218, 33, 73,251,220,190,242,126,143,110,173, 25,186,169,181,184,169, 87, 27, 75, 18, 69, 20, 7,149, 79,190,158,163,236,
+211,137, 40,237, 8, 47,155, 50, 10,212,211,136, 46, 50, 13, 2,210, 55,167,188,105, 55, 52,198, 42,185,239,239,167,110,218,119,
+231, 29,118, 53,226, 58, 90,190,165, 11,242, 37, 52, 2, 30,108,169, 5, 53, 74,169,191, 90,208,212, 87,195, 90, 24, 29, 82,220,
+ 66,241, 58, 30, 71,129,254,213, 87, 35, 18, 23,134,144,246,243, 92, 37,221,223, 78, 25,167, 98,239, 74,118,238, 21, 38,202,242,
+138, 19, 45,180,168, 52,239, 30,133, 85, 39,138,233,185, 4,239,224, 72, 7, 94,133,129,212,171,202,143,194, 88,243, 31,110, 43,
+151,202,195,157, 7, 94, 29,168, 86, 61,149, 54,194,145, 22, 69, 20,132,154, 37, 96,169, 42,219,219,199,199,219,177,213,210, 85,
+ 80, 89, 89,248,205,225,248,240,147,113,134,148, 60,201,253,180, 16,161, 83,181, 10,122, 3,245, 3,168, 29, 17, 99, 37, 41,174,
+238, 93,241,124,142, 45,226,219,206, 37,205,165,130,135, 16,148,182,107, 95,105,241, 30,243,170, 89, 53,137, 68,133,167,133,121,
+132,193,236, 43,179, 59, 47,235, 90,118, 73,132,177, 29,233, 74, 91,170, 64, 9,117,213,158, 92,147,214,160,239,183, 77,113,121,
+ 61, 52, 9, 21,233,248,157, 68, 89, 16, 85,249,218, 30,246,183,123,136, 45,207,200, 31, 54,165, 4,148, 2, 9,228,122,116,219,
+166,176,242,240,246,133,208, 99,230, 3,170,129,221, 75,189,131,212,149,182,251,216,153, 74,109, 51,225, 71,114, 67,114, 85, 74,
+ 53, 37,176,162,205, 85,227,241, 1, 93, 71, 7,118, 53,177,179,147,162,231,152,229, 99, 74, 0, 57, 63,143, 34,184,187, 19,131,
+113,133,116, 97,137, 73, 45, 63, 1, 10,243, 80,126,242, 93, 46, 20,172, 26,120,133, 10,107,210,228, 1,136, 35,154,241, 91, 30,
+ 50, 32,232, 85,181,141,203,184, 65,156,196,182, 84,124,132, 37,194,231, 93,146,168,197, 0,253, 90,161, 42,193, 26,166,220, 80,
+ 28,187,181,119, 75,245,237,204,134, 85,105, 37, 97,231, 19, 79,219, 65,165,127, 70,174,213,112,132, 64, 64,157,102, 69,212,155,
+ 94, 57, 55, 29,183,185, 9,196,148,184, 10,232,105, 74, 23,208,231,255, 0,105, 90,132,236,220, 83,109, 32, 34,118, 76,142,243,
+ 27, 15,143, 96,109, 42, 75,173, 51, 45, 10, 82,171, 94, 50,184, 32,125, 96, 38,154,140,224, 55, 19,246,226,150,226,147,251,133,
+ 14,227,120,187, 57, 36, 54, 74, 24,226,128,104,119, 67,116, 41, 63,104,213,170,102, 34, 21, 75, 34, 74,172, 46,214,123,163, 81,
+ 67, 41, 73, 73, 87,152, 57, 17,176, 80,116,172,126,189, 92,222, 10, 15,150, 82,127,116,110,146, 98, 97,178, 3,202,225, 49,181,
+180,235, 35,218,243,106,224,138, 15, 29,149,184,212, 37, 38,213, 18,186, 12,228, 34,150,240, 12,102, 82, 75,119,155,138,150,252,
+233, 69, 43, 95, 37, 16, 7, 33,208, 83,192,109, 77, 84,149,142, 87, 83, 78, 56,128,101,117, 98,205,173,134,153, 72, 36,190, 40,
+180,121,135,126, 67,196,215,111,209,165,251,150, 66, 56,130, 68,186,182, 32,193,178,220,123, 93,123,184,222,164,134,154,180, 70,
+143, 46, 50,129, 13,148,121,151, 8,209, 28,162,148,170, 84,135,126,186,104,184,121, 15, 34, 22,103, 83,195,217, 7, 85, 53,237,
+200, 57, 23,150,235, 18, 80,107,178,148,219,203, 82,148, 0,168, 35,137,161, 27,248,141,134,182, 33, 32,185,151, 40,198, 15,219,
+216,183,251,204, 86, 60,146, 32, 50,124,197,238, 82,183,156, 82, 58, 14,148,160, 31,210,119,213,168, 88,200,128, 58,185,187,117,
+149,219,172, 86,168, 24, 6, 28,216, 69,214, 20,199,166,206,144,178, 74,156,121,213, 49,230, 33, 30,208, 2, 64,160,235, 74,141,
+ 91, 5, 25,212, 14,249, 89,203,119, 75,119,112,214,162, 84,212, 87,173,143,131,241,112,144,151, 60,218,130, 42, 40,176,121, 87,
+ 94, 1,245,115,165,145,124, 47,143, 9,176, 62, 35, 71,247, 0,161,111,106, 90,196,238, 14, 79,121,168,140,159,223, 40, 39,233,
+ 42, 35,145,251,117,229,102,151, 37,101,206,198, 83,251,243,152, 57,113,201, 28,136,209,248, 80, 89,183, 70, 64,240,109,150,194,
+ 84, 71,215,160,209, 91,205,251,149,160,126, 21, 51, 35,113,225,252,154,198,131,198, 59,104,105,201, 10,246, 0, 57, 4,253,103,
+ 86,170,172,110,240, 77, 45, 75,173,153,109,239,252,187,136, 4, 54,120,189, 61,110, 45,193,226, 25, 97, 60,135,218,173, 6,208,
+243, 86,171, 12, 16, 78,218, 68,121,220, 85,119,137, 67,248,185,239,161, 8,175, 94, 59,154,126,141, 15, 46, 76, 89, 78, 1,202,
+ 39,112,103,252,183,140,185, 41,161,255, 0,198,174, 69,107, 30,212,160,175,203, 79, 79,112,208, 35,241,104,148,151,114,122,194,
+ 9,255, 0,199,187,142,219, 34, 21,141,106, 39,197, 70,195, 16,126,161,175,101,234, 31,230,251, 35,255, 0, 40, 88, 89,163,250,
+135,237,201, 57,250, 59,202,110, 88,182, 23,220, 86,237,176, 98,221,110, 14,217, 13,229, 54,139,154, 74,227,205, 77,169,207, 53,
+214, 10, 65,169, 82,153,113, 97, 52,232,119,161,166,155, 27, 38,116,213,118,192, 36, 68, 55, 49,224,118,241, 30,208,236,167,211,
+216,200,131,192,133, 95,100,185,255, 0,163, 44,254, 12, 59,175,249,170,119,110,101,207, 91,138, 69,154,247,108,151,120,136,151,
+ 74,190, 52,177, 50,217,205,206, 3,162, 75,173,131, 78,186,195,198,235,253, 59, 36,110, 50,149, 71,176,131, 33,236, 35,151,136,
+ 86, 44,233,129,254, 18,200, 51, 25, 47,162, 28, 22,227, 30, 53,235, 62,184,230, 83,214,225,109, 54,108, 82,203, 42, 8,113, 73,
+ 79, 42, 57, 54,241,229, 37, 40,254,183, 4, 40,211,166,250,177, 46,179,211,235,212, 88,108, 61,145,137, 31,124,153, 48,233,173,
+243, 20,253,219, 78,252,219,253, 88, 99,119,255, 0, 79,150,107, 28, 60, 98,200,212, 72,217, 95,111,172,112, 63, 17,106, 54,183,
+157, 76,228, 58,250,199,152,252,151,226,184, 87, 83, 79,185,211,169, 49,233, 62,162,255, 0, 84,157,148,109, 16, 12,240, 3,185,
+223, 94,100,131,247, 35,228,227, 15, 45,162, 56,106,171,169, 82, 85,252,192,195,134, 40,195, 53, 97, 20,240, 82,142,228,232,187,
+ 86, 26, 38,135,112, 46,231,118,250,255, 0,233,127,185, 87, 4,217,172, 55,195, 18,241,143,100, 79,161, 78, 71,180,223, 97, 5,
+182,211,143,165, 27,134, 95,105,106,105,197, 10,148,131, 95,105, 6,183, 18, 25,152,242,162,101,156,131, 19,217, 33,249, 17,161,
+ 87, 48,239, 16,120,158, 5, 83,243, 63, 43,143, 87,232, 66,127,150,216, 34, 92,173,128,186,227,121, 4, 27,205,161, 86,146,216,
+ 9, 66, 93,249,149,200, 72, 8,161, 42,248,128, 85, 60, 43,182,185, 63,255, 0, 82,207,140,140, 68, 28,118,131, 22,247,186,214,
+172,141,174, 72, 87, 44,124, 27, 8,244,213,218,107,166, 9,134, 93, 35,228, 93,229,202, 24,137,109,203,242, 27, 81, 43,183,193,
+129, 17, 65,223,229,144, 31, 80, 10,119,205,120, 5, 60,224,162, 84, 18, 19, 67,225,209,244, 62,153, 14,149,142,107,220, 39,108,
+190, 98, 56, 0,252, 1,231,222, 86,126,126, 76,100,241,143, 62, 41, 71, 0,199, 37, 95, 93,110,205, 13, 77,183, 58,124,134,160,
+176,228,165,134,153, 74,222,113, 45,165, 78, 45, 91, 37, 32,157,201,233,173, 6, 51,144, 3,154,202,140, 31, 68,213,222, 30,234,
+122,111,244,179,145, 92,123, 91,117,196, 38,119, 39,186,214,254, 81,111, 50, 46,178,228, 89,108,209,228,160, 81, 77,197,105,148,
+ 25, 15, 36, 31,135,154,248,165, 95,121, 59, 17,172,222,163,234, 28,110,159,105,168, 86,108,156, 75, 18, 78,208, 15,112,226,126,
+204,181,171,233,208,128,248,131,159,185,104,186,100, 29,182,205, 61, 47,225,253,214, 95,109,162,246,243,187, 89,117,217,247,173,
+ 54,232, 55, 27,140,191, 59, 27,138,217, 96, 76,113,185,138, 1, 30,124,149, 81,186,163,226, 66,121, 37, 84, 58,222,174,248,228,
+ 99, 70,211, 1, 3, 35,166,167,135,106,169,159, 77,112,136, 17, 12, 79,224,154,125, 49,219,187,120,221,203, 59,205,251,189, 9,
+115,187,127,142,227,179,221,184, 69,142,148,169,229,124,195,205, 70, 30, 87, 50, 0, 88, 73, 81, 65,168,162,168,106, 52, 44,123,
+107,162, 22, 91,104,120, 66, 36,148, 62,157, 72,178,100, 30, 12,144,251,191,217, 9,221,184,180,195,203, 49, 25, 73,191,246,126,
+234,210, 95,199,242,168, 73, 38, 52,166, 92, 95, 32,135,124, 90,125, 35,101,182,186, 16, 65,208,140, 98, 98, 44,132,132,171,151,
+ 9, 14, 7,248, 30,208,149,248,210,168,235,195,181, 65,177,216,159,110,201, 46, 98,232, 86,150,135,148,159,114,254, 18,127, 78,
+170,190,168, 44,133,247, 10,244,187, 61,238, 61,161,147, 69,176,203, 77,159,164,167,146,191, 94,154,138, 92, 19,222,152,201,147,
+ 19,248,142, 84,174,202,183,159,185, 9,212, 98,233,154,155,127,207,173, 60, 90, 91,174, 54,165, 4, 36,154,114, 32, 36,214,149,
+167,142,140, 41,147,110,111,135,243, 83,218, 89,219, 68,185,142, 33,155,133,196, 69,111,104,201,221,103,216,132, 10,157, 70,193,
+170, 28,120, 41, 95,154, 3,168,115, 56,196, 46,234, 59,222,241,204,118,229,203,218,132, 91, 67,106, 63,245,155,166,184,239, 86,
+197,250,128,151,247,171,135,240, 93, 28, 37,240, 71,192, 39,156, 54,212, 49,207,203,247, 23, 75, 0,164, 59,148, 92,230, 57, 94,
+165, 79, 66,142, 43,246,157,116, 93, 5,191, 96,223,250,146,255, 0,150, 43, 59,169,134,140,124, 85,145,233,117, 8,139,223, 44,
+ 77,247,118, 91,139,138,218, 62,176, 73,213,142,139,255, 0,186,135,138, 6, 57,254,164,124, 85,115,221, 67, 14,207,150,189,110,
+114,159,204, 66, 25,157, 32,127, 85,194,209, 0,125,130,186,241, 9,227,153, 88,123, 1, 43,163, 50, 96,171,206,230,230, 95, 63,
+ 13, 94, 73,163,101,177, 25, 38,187, 41,100, 4,147,245,104,118, 84, 31, 69, 16, 85,105, 47, 40,110, 62, 79,243, 44, 31,224,109,
+233, 75, 13, 1,208,168, 10,157, 63,149,161, 86, 4,159, 68,193,135, 52,204,126,216,101,217,116,165, 14,111, 71, 49,153,175, 64,
+165,186, 9,250,205,105,171, 20,196,196,132,172, 96, 16, 85,181, 39,249, 11, 86,224, 54, 22,247,102, 17, 77,128, 47,161, 32,254,
+189, 75,202,209,251,212,124,213,174, 92, 20, 54,233,216, 20,248, 15,118,189,219,106,237, 55,149, 5,235,104, 65, 42,111,167,176,
+233,153, 62,231, 94,109,119,217, 22, 7, 2,155, 36,178, 13, 72, 59,145,169,141, 83,152,171, 35, 7,239, 87,203, 0,219,142, 84,
+ 29,168, 78,129,118, 48,146, 37, 55,152,113, 76,247,140,246,223,122,136,124,202, 18,161,215,111,101, 53, 76, 99, 16, 85,207,220,
+ 9, 5, 90,100,228, 49, 55,230,225, 40, 32,215,127, 16,126,157, 92,172, 16, 21,121,144, 86,168, 55, 20, 73,248,217, 1, 47,138,
+ 5,180,118, 10,250, 43,162, 4, 50,188,207, 76,119, 17,243, 81,255, 0,122, 42, 20,133,117,247,234,109,205, 11, 84,181,115, 75,
+115,219, 81, 67, 69, 18,147,247, 74, 77, 14,147,178,148, 98, 66, 91,201,113, 27, 62,115,105,127, 27,203, 34, 55, 42, 11,232, 45,
+ 56,212,132,213, 43, 7,223,238,246,245, 26,177, 69,210,166, 66, 81, 58,133, 27, 33, 27, 1, 18,224,184, 99,213, 95,166, 92,131,
+211,229,193,204,158,200, 29,155,219, 87,148, 18,203,235, 73,113,112,157,240,106, 65, 3,238,158,137, 95, 67,208,239,215,186,233,
+157, 98, 57, 49,105, 48,144,251,215, 43,157,211,205, 37,199,202,170,236,111,189, 87,107, 1, 13, 64,243, 71,154,120, 56,208, 37,
+ 65, 73,167,184,252, 67,254,148,214,176,177,249, 44,240,153, 87,159, 92,174,110,152,238, 36, 52,253, 0, 83,114, 56,173, 59, 80,
+109,200, 87,169,167,133, 58,248,106, 38, 38, 72,245,219,181, 60,246,131, 34,153, 98,188, 70,141,113, 82,147, 10, 71,152,242, 66,
+ 20,126, 15, 45, 65, 38,128,157,133,117,153,155, 88,229,197,116,157, 47, 52,237, 33,248, 43, 55, 9,239,222, 99,100,238,218,172,
+214,183, 86,213,173, 70,140, 61,204,146,167,128, 11, 88, 34,187, 80, 45, 7,235,214, 46, 70, 56, 49,220,120, 46,175, 7, 59,121,
+ 49, 39,144, 86, 6, 9,221,252,195,182, 94,171, 19, 18,254,231, 59,110, 73, 13, 18,136,169, 82,185,181, 78, 73, 39,161,228, 20,
+ 8,250, 14,178,175,197, 18, 27,187, 22,230, 31, 86,140, 9,131,242, 77,217, 43, 17, 46,185,197,202,247,111,108,181, 26,115,190,
+111,150,161, 66,159, 52, 37,222,158,245, 18,117,211,224,218,124,160,235,207,250,236,132,178, 12,135,243,107,248,171, 3, 0,179,
+181, 58, 19, 74,112, 5, 58,235, 97, 2,189, 1, 82,212, 55,250,180,214,217,180, 58,204,142,170,196,103, 28,129, 49,216,236,166,
+134, 51,213,160,247,151, 21, 95,233,213, 99,105,111, 4, 81, 16,163,100,120, 52, 5, 94,218,142,234, 64,106, 66, 34,241, 52,232,
+174,105, 0,159,169, 90,156, 44, 58,148,165, 0,134, 47, 2,130,148, 73,243,155, 9, 12,169,167, 0,166,252, 28, 79, 26, 87,233,
+ 26, 49,177,208,246, 58,146,215,102,163, 74, 91,241,214,143,137,105, 66,107, 79, 2,221, 18,126,209, 93, 4,228,178,148,105,114,
+171,236,167,177,117,177,186,225,111,248,182, 74,130,144, 5, 57, 56,194,202,105,244,150,247,250,117, 98,188,150, 60, 82,253,184,
+101, 75,230,189,142,114,239,109, 94, 93,119,143,207, 14,182,212,133,125,208,236,158, 28,119, 62, 33, 27,253,127, 70,161,118,120,
+223,177,215, 73,210,250, 25,149, 30,113,209,206,158, 1, 86,157,158,141, 27,184, 87,121,230, 35,129,184,118,194,227,104, 42, 20,
+ 74,139,100,138, 15,111, 74,106, 2,254,212,246,215,183,146,177,236,144, 30, 97, 94, 90, 10, 92,113, 39,204, 42, 38,164, 3, 65,
+211,174,138, 36, 25,213, 98, 20, 47, 83,217,212, 28, 35,182,246,252, 66, 69,192,195,185,223,165,178,169, 17,219,221, 78,219,226,
+165,110,184, 93, 10, 60,120,121,193,162, 57,109, 84,215,168,213,206,154, 53, 50,228,177,122,245,160, 64, 67,153, 46,171,188, 71,
+ 40,141,120,154,220, 12, 97,213, 45,132, 20,243, 75, 68, 18, 58,117, 52, 3, 97, 77,169,236, 30,221,109, 65,202,229,140, 29, 91,
+214,254,233,218,123, 95, 99, 13, 52, 10,178,185,161,216,240, 2,190, 63, 41, 33,178,183,164, 45,103,199,116,165, 63, 73, 35,166,
+174, 82, 20,192,100, 71, 11,184,187,107,191, 67,186, 91, 92,160, 42,101,228, 44,255, 0, 94,156, 8, 63, 78,227,235,213,244,234,
+219,238,211,141, 95,251, 80,251,232, 73, 15,185, 38, 56,113, 0, 1, 64,162,160, 77, 7, 77,233,245,235,204,254,166,211,187, 18,
+ 50,228, 8,252, 84,173, 15, 20,169,216,220, 62, 85,223, 35, 66, 82, 63,133,133, 29,201,143, 44,141,129, 74,171, 67,245,111,175,
+159,108,183, 66,178, 77, 14, 82, 61,250,224,188,139,190, 13,193, 93,126, 88, 56,183, 82,141,246,105, 39,149, 79,247,186,234, 88,
+245,109,175,113, 86,246,232,201,238,240,242,174,121,188, 59, 51, 91, 70,143, 24,220,165, 19,213, 74, 85, 66, 19,244, 36, 13, 66,
+169,128,242,237, 40,219, 24, 33, 57,103,157,145,205,169, 85, 33,169, 34, 44,111,103, 16, 65, 90,135,211,160,217, 38, 42, 99,130,
+105,195, 26,137, 38,208,169,108, 10, 89,173, 69,180, 51,227,205, 73,109,124,143,214,163,170,185, 58,158,242,201, 13, 20, 41, 50,
+ 25,189, 52,215,204,125,240,121,212,248, 32, 26, 39, 67, 14, 2, 32, 26,133,213,151,143,204,126,229,145,101,118, 24,242,187, 97,
+136, 92, 50,107,179, 81,211, 46,101,226, 44,249,142, 22, 99,182,136,172,169, 73,249,132, 38,190, 75, 99,195, 93,193,245,189,164,
+ 63,147, 89, 35, 71, 32,158,238,212, 9,227,194, 69,200,212,167, 76, 51,243, 13,202,109,113,175,119, 91, 38, 3,132, 91,174,150,
+216,174,144,236, 27, 52,150, 9, 14,159, 40,161, 69, 18,194,136, 80, 52, 32, 17, 93, 84,151,175,242,107,151,195, 77, 58,233,242,
+159,212,156, 81, 8,157, 0,117,200,221,202,138,236,171,133,158,219, 29, 52, 17,120, 21, 37, 53, 33, 30,107,157, 7, 34, 79, 74,
+ 13,206,184,218,101,197, 30, 92,150,155,182, 44,244, 11,235,210, 26, 20,122, 37,185,247, 80,186,127,237, 19, 93, 75, 40,250,194,
+ 57,104,194,225, 8, 30,210, 82,144,114,172, 14,217,103, 23, 94,211,247, 69, 25,102, 38,176,205,255, 0, 26,182,176,245,173,213,
+ 10,132, 73,170, 64,228, 58, 16,170, 16,161,226, 42, 52, 44, 12,171, 40,178, 54,192,177,140,156, 21, 61,174, 89,116,236,155, 30,
+ 57,234, 98, 58,251,135,217,166,153,143,220,247, 91, 76,252,183, 5,101,127,196, 51, 33,230,194,220,151,110, 74,183,121,133,169,
+ 85, 41, 77, 84,130,105, 74, 17,175, 89,233,221, 70,174,175, 31, 50,173, 44,254,104,115,241,143,104, 62,240,177,115,112, 76, 73,
+ 49,212, 42,138,245,142,173,155,200,143,112,109, 77, 73, 67,190, 75,205,188,146,133,165, 12,142, 42, 5, 42,161, 4,157,180, 98,
+ 72, 37,249, 44,195, 21,145,108, 75,187,178,136,233, 79,198,165,158, 13,141,201,252, 64,160, 0, 30,225,169,137,178,134,213,111,
+118,235,210,254, 87,120,199,227,187,156,200,141,137, 91,238, 82, 18,213,161,204,133, 95, 46,237,194, 75,160, 33,150, 99,176,170,
+ 56, 66,214, 82, 57, 16, 0, 6,187,244, 51, 24,123, 27,204,144,175,118,145,220, 88,146,120, 0, 21,218,240,231,102,188, 21,123,
+148, 97,119, 28, 70,249,113,196,174, 76, 42, 45,194, 51,203,101,198, 28, 20, 83,101, 3,146,171,170,211, 50,129,219, 45, 8,226,
+170, 24,237,112,156,174,125,209,194,115, 6,172,249, 7,121,112, 27, 62, 97,157,218, 81, 30, 20, 27,253,197,115, 25,125,212, 51,
+ 79, 40, 79,110, 51,137,110, 87, 0, 0,252, 80,106, 58,248,213,239,158, 61,228, 78,234, 99, 57,199,129, 46, 29,187, 91, 73,123,
+ 85,216,103, 74, 33,184,170,247, 44,190,101,253,216,238,196,236,227, 53,116, 59,112,243, 26,102, 35, 45, 32, 55, 30, 44, 72,167,
+203,101,134, 26, 79,194,134,210, 54, 0,123,201,169, 36,232,246,102,202,211,175,246,120, 5, 78,217, 27, 9, 37, 58,246,251, 37,
+137,219,107,141,233,188,146,218,155,190, 9,149, 91,213,106,191,218,212,226,216, 91,145,158,162,137,101,212, 84,161,196,168, 85,
+ 38,135,250, 64,225,124, 12,103, 9,141,208,144,218, 71,113,236,239, 82,197,176,211, 39,237, 76, 23, 75, 35, 30,148, 59,117,101,
+202,187, 11,113,184,221,109, 25,231,203,193,111,182,249,189,181,139,139, 51, 35, 25, 62, 90, 31,121,152,142, 0,162,162,160,134,
+202, 27, 74,150,157,235, 65, 77,115, 89, 66, 93, 2,202,206, 45,178,151,157,255, 0, 74, 81, 5,199,110,135,183, 64,192, 19,174,
+186, 46,138,178, 45,131,145,167,122,253,206,114,110,213, 97,150,245, 61,220,254,212, 95,241,150,158, 82, 24,243, 44,151, 1,242,
+ 47, 73, 74, 11,190, 83,127,204, 24, 95,150,173,191,118, 86, 72, 30,237,105,203,212, 17,174,189,249, 24,179,175, 94, 71, 71,246,
+141, 60, 21, 27,176,107, 7,159,177, 84,153,239,119, 6, 13,124,137,157,224,254,153,111,183,139, 92,134,163, 93, 63,206, 61,192,
+151, 62,117,158, 36,103,210,151, 16,251,208,109,145,153,101,109, 20,169, 52, 91,142,240,223,223,173, 9,117,131, 85, 6,202,241,
+164,204,239, 39, 33,143, 61, 7, 15,106, 81,193,132, 75,179,248,171,143,255, 0, 23,114,222,244,118, 1,120,215,168,124, 91, 45,
+147, 1,233,236, 94,172,143,118,246,195, 8,192,102, 28,104,174, 70, 12,176,137, 15, 50,128,216, 82,213,191,196,118,221, 90, 31,
+ 77,235, 55,228, 82,101,147, 93,146, 18,144, 49,217, 16,192, 51,104,228,126,126, 40,215,208, 44,142,222, 1, 87,152, 53,223,209,
+188, 78,218, 30,235, 70,129,220, 97,130, 77,121, 86,152,151, 73,214,203, 11, 77, 72,144, 13, 86,134, 92, 68,165,160,168,111, 93,
+235,238,212, 50,186,238, 20, 43, 22, 24, 93,180,150, 5,162,207,216,238,168,255, 0,167,192,115, 42,187,245,243,150, 98,189,213,
+238, 94, 5,130,225, 86,187,188, 8,214,156,122, 13,169,181,228,109,176,137, 15, 67,121,229,205,142,248, 17,137, 73, 74,153,127,
+ 99, 65, 81, 74,107,146,245, 63, 82,175, 34,117,217, 24,202, 34, 48, 3,226,103, 35, 82, 14,157,174,173,215, 16, 36, 34, 57, 43,
+147, 41,238, 71,103,123, 81,233,203, 0,237,151,123,241,252,149, 98,251,115,155, 46,196,230, 62,168, 49,155,148, 22, 90, 73, 87,
+ 57,200, 88, 82, 80,144,138,241, 21, 21,214,151, 67,235, 53,225,224, 68,100, 85, 99, 19, 41, 2, 24, 9, 63, 99,241,109, 20,178,
+ 40,141,164, 2,234,196,179,229,221,144,237, 87,119, 44, 97,252, 79, 51,141,150,197,106, 28,251, 60,105, 42,128,164,203, 66,214,
+ 91,103,131, 33,148,184,231, 53, 36,167,225, 59,208,211, 90, 24,189,123, 31, 30,216, 19,143,116,102,117,136, 44,228, 30, 4, 6,
+125, 80, 99,135, 8, 72, 23, 46,168, 94,233,225, 93,218,155,221,140,147, 38,187,227,247, 24, 86, 91,156,217,113,237,142,202, 97,
+ 97,181, 45, 64, 54,196,114,180,213, 1,195,203,238, 86,189,118,215, 15,212,122,101,212,188,205,114,136,145, 44,227,180,232, 60,
+123,149,169, 72,186,174, 61, 67, 88, 47, 88,110, 99,142,246,106,219, 17,233, 25,219,129,184,174,219,217,109,106,144,185,171,123,
+202,242, 82,218,106,162,178,231,194, 5, 42, 78,218,204,167, 6,195, 61,134, 39,123,179, 54,175,193,155,181,210,178, 92,149, 70,
+206, 33,221,139,149,206, 5,154, 38, 63,112,122,247,127,145, 46, 45,154, 35,113,157, 83,147,164, 69,144, 98,190,220,116,129, 85,
+169,183, 18, 80,160,154,208,138,106,216,233,118,153, 70, 34, 5,228, 88,105,197,142,173,224,141, 9,115, 87, 46,125,218, 62,233,
+246,187,176,120,237,131, 48,178, 76,182,202,190,206,252,101, 75, 97,198,146, 28, 8, 83,200,105, 69, 67,169, 9, 38,158,227,167,
+203,233,119, 99, 71,125,144, 49, 14,218,134, 81,222,101, 37, 17,181,219,134, 86,246, 44,120,124,170,153,103, 31, 74,168, 63,120,
+152, 14, 56, 77,127,222,145,245,234,183,144,118, 38,222, 29,144,119,237,194, 74,118, 81, 11,246,131,175,104, 93,184,154,242,171,
+ 2,221, 70,219, 47,192,141, 50,150,228, 58,126, 46,234,106,162, 13, 79,136,223,244,105, 2,136, 36,151,101, 67,151,107,122,173,
+212, 34,187, 17,210,186,152, 46, 19,241, 83,162,229, 87, 8, 77,142,100,173,161,224,116,194, 46,162, 92, 41, 78,100, 40,156,223,
+ 42,213, 52,222,186, 99, 90, 91,202,215, 18,245, 5,151,210,220,147,197,179,183, 47,119,191, 76,202, 92, 81, 39, 67,139,111,153,
+ 79,152,201,217, 15,160,236, 71,176,234, 32,169,131,162,253,137, 97,149, 33, 37,200,166,160,117, 73, 21,167,209,169,104, 82, 50,
+101,189,140, 80,188,146,135,211,191,178,158, 61,116,152,133, 9, 73, 4,205, 59,107,104,200,237, 50,108, 23,200,232,147,106,150,
+218,227,200,142,250, 66,144,235,110, 14, 42, 73, 7, 98, 8,212,171,176,192,130, 11, 16,152,180,131, 16,238,190,123,122,164,244,
+ 65,145,118, 58,254,238,115,134, 54,236,238,215,135, 22,226,184,114, 91,214,182,202, 69, 18,239, 42,169, 73, 43, 39,138,254,128,
+173,247, 61,191, 74,234,241,191,225,158,146, 11,153,205,233,230,162,227, 80, 82, 44, 28,109,230,111,167,204, 30,100,197, 60,182,
+ 22,146, 1, 42,112,172, 2, 7,208, 63,167, 91, 52,220,241,220,121, 15,201,214, 90,182, 98,224, 69,171,172, 8, 60, 63, 22, 19,
+ 2, 84,133,215,143, 34,180,170, 67,149, 35,160,226, 82,145,239,214, 84,111, 22,213, 57, 30,114, 97,238, 13,247,171,120,249, 50,
+168,146, 20,252, 43, 15,184, 74,238, 61,157,203,184,242,155,113, 18, 36,173,197,116,243, 29, 82, 22,163, 83,224, 0, 31,110,170,
+103, 78, 32, 8, 71,128,251,126, 43,123,165,229, 19,190, 82, 61,138,199,238, 5,162, 78, 65, 50, 46,123,143,149,201,114,197, 45,
+183,161, 45,177,187,204,150,190, 69,116,173, 62, 26, 41, 78, 1,253,145,170, 55,197,154,174,100, 63,231,248, 32,195,169,255, 0,
+243, 36,190,135, 69,105, 64,184, 42,254,219, 25, 5, 0, 83,134, 59, 93, 8,169,225,192, 84,125, 35,125, 89,193,183, 67, 30,196,
+186,165,131,205, 12, 92, 48,252,211,166, 5,122, 22,185,108,196,116, 1,229, 45, 14, 16,119,248, 81, 82,173, 15, 34,231,169,207,
+247,128,251,213, 26,239, 1, 59,224,217, 48,151, 53, 41,112,252, 49,202,223, 65,254,207, 58, 83,255, 0, 75, 64,141,158,100,200,
+ 31,109, 2, 61,119, 57, 82,163,100,205,222,239, 7,122,169,132,176,132,146,127,238,212,131,253, 26,208,136,208,248,149, 33,107,
+150, 9,174,229,109,102, 88,121,196, 36,114, 90, 2,200, 3,193, 14,164, 15,209, 93, 74, 58,125,187,145, 12,147,197,166,199, 22,
+ 67,209, 95,160,163,209, 90, 89,167,137, 28, 91,255, 0,237,211, 89,150,205,180, 86,171, 33,208,174,224,225,240, 98,218,231, 76,
+112, 37, 13,180,147, 33,107, 35,238,148,164, 45, 74, 35,232, 70,250, 97,113, 10,237, 53,111,148, 71,105, 3,193,215, 53,250,248,
+133, 11,183, 29,151,176,118,246,203, 41, 8,147,118,136, 39,201,101,154,126, 27,142,213,231, 20, 79,183,226,166,168,244,162,114,
+ 45, 50, 61,171,185,235, 25,112,198,197, 17, 26, 16, 24,123,191,138,231, 30,204,224,152,181,175,178, 17, 50,187,100,132, 12,134,
+228,183, 94,122, 19,124,191, 9, 74, 93, 71,188, 10,158,135, 90, 91,165, 43, 54,142, 14,178,165, 40, 66,141,117, 97,199,189,103,
+165,108,190, 46, 81,122,190,205,186,127, 29, 9, 19, 37, 67,130,107,208, 50,233, 96, 43,225, 0, 80,241, 36,123,181,122,234,200,
+248, 98,126,220, 15,222,176, 33, 51, 40, 9,157, 57,251, 56,254, 9, 39,212,173,178, 22,109,220, 55,166, 93, 10,157,140,182,211,
+ 14, 25, 85, 15,203,180,209, 82,104,138, 1, 74,174,171,250, 78,186,140,106, 5,113,140, 87, 17,153,144,109,153, 37, 11,236,156,
+104, 48,224,127, 40,183, 48,150,174, 12, 59,243, 28,105, 79,152,101,230,194, 92,105, 68,239, 81,186,146,117, 97,153, 85,220,156,
+111,184,211, 17,100,198,146,167, 75,237, 44, 61,228,135, 77, 74, 18,227,117,166,255, 0, 78,173,227, 20,225, 88,125,190,183, 76,
+133, 99,110,231, 36,121,140, 36, 54,226,144,107,186, 67,128,154,125, 0,242,213,192, 84,192, 87, 54, 78,239,200,225, 78,202,121,
+206, 80, 86,166,159, 1, 67,144, 82,147, 85, 0, 65,232, 78,250,243,239,169, 54,109,233,197,187, 71,135, 17,246,252, 20,207, 4,
+ 95,182, 78,197,197, 59, 85, 39, 40,113,138, 38,242,161,104,168, 53, 80, 74,221, 73, 90,171,239, 72, 35, 95, 56,216, 33, 41, 0,
+ 31,241,254, 31,154,175, 49,162,169, 33,226, 82,109,221,216,186,228,179,147,184, 76,146,148,143,217, 21, 9, 66, 71,251, 0,106,
+221,179, 30, 78,208,159,106,103, 84, 32,188,230, 74, 89,168,113,200,105, 97, 43,254,207,203,255, 0,166,186,160,126, 24,199,197,
+ 76,151, 40,125,230,220, 99,225,144,166, 69,175,157,111, 75,173, 60, 61,161,211, 84, 29, 8,106,117,237, 83,228, 17, 75, 52,145,
+100,236,131, 47, 40, 81,215, 88,230,239,189,110, 58,105,250, 52,214,197,236, 80, 26,165,155,141,217,214,166, 61, 17,173,156, 87,
+148,194, 66,125,165, 3,167,219,166,216,227,218,166, 14,169,195, 29,186, 11,119,121,255, 0,154,190, 57,199,178, 91,121,111,208,
+ 41, 17,194, 18, 55,250,244,171,131,192,248,168,147,162,116,180,180,252, 92, 74,232, 57,149, 61,120,149, 29, 32,251, 90, 43,230,
+126,173,255, 0, 70,170, 26,158,207, 4,224,234,191, 18,134, 46,153,105, 10, 28,163, 33,131, 57,110, 30,135,137, 75, 72, 31, 69,
+106,116, 48, 8, 4,247,169, 62,170, 86,101, 53,148,219,211, 53, 63,191,158,250,184, 83,254,238, 49,162, 64,250,193, 58,175, 50,
+ 76,219,177, 72, 29, 82,155,249,107,108,206,186, 74, 38,174, 63,229,181, 95,238, 80, 1,250,245,118,170,255, 0,166,202, 66, 77,
+ 34,172, 44, 62,255, 0,121,199, 96, 14,226, 88,229,187, 7, 36,109, 41, 69,182,108, 85,169,167,155,124,169, 12,165,109,173, 4,
+ 40, 30,187,131,225,170,149, 91, 58,109, 18,129, 32,141, 65, 26, 50, 14,231, 79,119,255, 0,204, 87,188, 81,157,143,108,238, 29,
+171, 29,206, 36,243, 76, 86, 31,202,172,237,187, 45, 13,133,113, 32, 72,130,184,206,255, 0,214, 39,223, 93,118,244,250,215, 50,
+ 49,254,160,133,140, 63,154, 58,251,195, 38, 52, 66,124, 66, 59, 99,245,245,220, 72, 25, 43,144,112, 92, 99, 22,197,229,197, 73,
+ 42,159,100,179, 3, 48, 45,105, 34,137,122,224,236,130,158,187,208, 13, 66, 94,184,204, 58, 66, 21,214,123, 99, 29,127,248,137,
+ 79, 28,106,227,168, 9, 62,235,220, 60,203, 48,238, 12, 59,167,112,110,178,110,217, 28,184,160,187, 42,115,203,113,202,165,238,
+105,167, 35,240,129, 93,128,160, 30, 26,228,250,150, 93,185,100,206,201, 25, 72,158, 36,235,197, 79,118,138,211, 71,171,220, 23,
+ 45,125,155, 63,169, 59, 19,183, 43,140,104,237,252,190, 91, 96,113,182, 47, 1,144,133, 33, 40,146,219,255, 0,129, 39, 97, 64,
+165, 20,170,158, 39,174,187, 44, 63, 88,143, 42, 49,204,129,155, 6,223, 29, 39,237,125, 37,227,162,167,126, 52, 45,212,232, 84,
+244,221,253, 29,205,197,154,186, 53,155,222, 19,108,101,228, 40,199, 93,128, 42, 77, 93, 7,138, 10,147, 39,203,174,253,107, 77,
+106,207,212, 61, 47,105, 38,201,248,108,215,241,101, 76,116,237,126,111,185,109,183,122,149,236,207,109,164,124,199,105, 48,133,
+ 94,109,178,147,242,151,107,190, 96,240,249,201, 49,100, 5, 52,236,120,204,195, 62, 84,110, 84,251,245, 90,168,119,214,108,189,
+119, 77, 82, 3, 26,157,195,153,153,212,142, 96, 1,164,124,117,240, 87, 41,194,132, 65,230,164,103,125,237,244,197,139,227,241,
+115,140,115, 16,187,223,238, 43,242, 93,106,213,118,184,199,110,218,202,151, 84,130,234,163, 53,231, 58,134,213,213, 36,142, 93,
+ 9,223, 86, 71,172,112,132,119, 66,153,153,118, 72,141,160,251, 53, 40,112,192,172, 30,107,127,101,187,213,117,238,198, 93,147,
+101, 89,165,201,136,221,194,149,111,184,218,177,137,107, 82, 33,198,131, 54, 76, 16,196,102, 99,169,100, 37,129,192, 45,166,205,
+118, 82,134,245, 53, 56,125, 35,170, 89,151,159,101,214,200, 11,103, 92,163, 2,116, 2, 76,192, 14,205, 28, 14,243,218,180, 36,
+ 88, 48, 75, 29,186,198, 51, 94,223,219, 59,137,127,239,173,178, 85,151, 3,185,217,227, 91,161, 91,239, 76,185, 29,115,239, 73,
+158,202,225, 63, 25,167,130, 84,224,142, 16,226,148,226, 65, 72, 73, 34,191, 22,150, 62, 53,152, 24,185, 49,200,137,132,108,131,
+ 1, 45, 12,166,227,105, 0,241,109, 73, 35, 64, 60, 80,184,151, 66,187,171,154,246,227,181,253,237,177,247, 54,211,106,159,112,
+238,123, 88, 61,154,200,202,221,159, 29,171, 59,113,238,152,131, 80, 28, 83,241,209, 29, 78,188, 18,210,193,242,203,169, 5, 96,
+ 26,237, 77,109, 89,213, 42,197,157,100, 2,108, 52, 64,113, 27,117,172, 13, 67, 57, 96,120, 63, 20,199, 64,129,247,163,183,247,
+142,227,225, 61,184,190, 89, 59, 91,126,205,146,172, 61,134,219,190, 88,101,202,110, 43, 47,174,231, 62,140, 45,182, 34, 62,146,
+180,115, 11, 53, 88, 52, 80,219,199, 86,243,177, 13,148, 82,212, 78,207,233,128,224,150, 26,157, 56, 20, 32, 78,133, 24,237,229,
+255, 0, 24,179,122, 97,237,167, 98,115,151,144,199,111,114,185, 57, 4, 57,146,151,210,217,114, 98,100,119,109,247, 3, 77,192,
+105,213, 20,185,237,105,107, 29,105,172,234,115, 33, 60, 74, 40,176,255, 0, 78,221,238,127,186, 65,142,217,123, 9, 99,255, 0,
+116,148,199,130,135,234, 63, 9,149,109,245, 31, 2,215,122,109, 31,230, 11, 94, 53,137,218,100, 33,181,165,196,180,244,123, 35,
+ 13,190,148,173, 4,164,209, 66,149, 26,161,234,140,105, 66,216,214,120,198,186,193,241, 17, 1, 63,203,170,106,238,215,112,251,
+ 77,147,119, 43,183, 29,190,239, 20,196,177,131, 89, 49,123, 30,111,143,184,134,220,121, 78,220,160, 94,174,144,166,219, 19,228,
+133,112,249,232,156, 71, 37, 10, 5,180,138,144, 43,173,204,139,177,252,138, 40,188,180, 69,113,144,239, 34, 82,120,247,110, 31,
+120, 10, 80, 44, 55, 20,237,146,119,121, 57, 15,123,112,120,247,105,173, 70,238,134, 89,219,187,163,214,153,139, 90, 90, 67, 55,
+ 73, 23, 9,197,180,165,197, 16, 26, 43,109,110,180,217, 36, 81, 74, 72,219, 87,229,105,182,218,236,145, 2,201,227,144, 15, 6,
+148,140,189,220,192,246, 32,111,118, 61,161, 38,250, 97,237,167,112,123, 87, 51,185, 57, 7,119,109,178,172, 88,214, 64,149, 71,
+183, 91,239, 44,185, 21, 83,166,199,156,211,241, 23, 25,151,194, 84,231,149,197,107,243, 18, 8, 74,107,190,251,225, 67, 14,204,
+106, 46, 23, 68,198, 18,131, 0, 67, 60,156, 24,176, 60, 91, 82,227,128,241, 77, 81, 32,234,150, 61, 71,223,237, 24,230, 71, 47,
+243, 23, 68,248,238, 74,176,217, 29,198,161, 91,252,212, 25, 8,238, 24,254, 2, 50,203, 36,215,136,138,240,184,212,126,211,100,
+107, 86,168,196,196,103,147,241,109,102,255, 0,213,249, 93,188, 62, 63, 20,243, 58,238,251, 58,175, 61, 35, 79,122,249,152,250,
+ 67,140,218,188,197,124,230, 90,244,175,139,226, 9, 69,245,229, 18,175,101,125,250, 47, 78,128,223,135,220,101,255, 0, 49, 68,
+140,180, 9,231,190,184, 60,155,126,109,104,157, 43,183,247,124, 99, 22,199,219, 17, 88,188, 93,158,144,184,111,184,227, 74, 88,
+142,218, 94,142,210,121,209, 21,168, 89,216, 29,181,205,117, 78,158, 97, 16,124,153, 86, 31,137, 36,131,221,192, 33,212, 91, 86,
+101, 71, 57,150,219,127,206, 77, 99, 73, 82,127,157,243,118,250,183,106, 43,231,252,203,106, 66,107,215,238,114, 26,169,229, 33,
+239,230,139, 66,152,138,242, 89, 0, 10, 84,248,107,212,200, 93,200, 42,114, 3,211,169,199,100, 13,209,198,190, 58, 4,149,218,
+117, 82, 95,132,251,209, 2, 82,215, 57, 93, 58,208, 19,160,155, 24,178,180, 41,112,233, 54,251,109,114, 60,149, 57, 48, 81, 71,
+ 98,144, 52,104,149, 2, 16,112,195, 75, 81,161,167,133, 14,136,162,202,124, 12,108,186,158,109,238,131,236,246,233,196,148, 10,
+139,123,199, 28, 75,100,245, 3,167,184,233, 50, 97, 37,231, 27,189,220, 44, 14,152,210, 83,231, 91, 87,247,210,170,236, 61,218,
+129, 10,103, 80,157, 45, 55, 8,164,165,232,138,229, 25, 91,208,210,169,211,119, 32,144, 81,246, 28,140,235, 99,153,161, 61, 8,
+241,211, 58, 66, 74, 53,194,214, 31, 77, 87,186, 15,143,244,141, 50,146, 76,201,237,172, 60,181, 71,154,216, 83, 42,170, 22, 20,
+ 42,149, 37, 66,132, 43,218, 8,212,132,136, 69, 17,112,185,235,186, 30,137, 45,232,203, 99,102,216, 57, 13,227,234, 90,140,235,
+109,127,115,231, 18, 92,117,165,117, 35,226, 36,164,238, 54,166,219, 13,177,215, 13,120,179,131, 19, 38, 13,236,102,247, 46,123,
+ 59,167,236,121,195,135, 48,134, 90,113, 52, 93,103,170, 83,232,226,245,245,229, 62,210,127,238,109,173, 44,148,147,253,244,167,
+144,247, 13, 23,247,194,144, 53,248,106,137, 39,190, 71,226,251,150, 67,128,166, 91, 48,232,247,153,230,229,229, 2,134, 18,234,
+ 88, 36,159,251, 82, 5, 41,208,208, 15,209,173, 76, 2, 4, 6,225,171, 63,187,248,171, 21, 25, 1,161,103,226,172, 8,248, 99,
+ 22, 46,213,186,133, 14, 50,215, 41, 17,154, 20,241, 45, 17, 65,244, 21,157,114, 55,117, 97, 62,160,102,120, 8,159,185,207,224,
+170,202, 95, 18, 51,108,198,100, 47,229,173, 41,218, 71,226, 44,159, 2,164,188,161, 95,253, 16,117,119, 15,168,136, 87,101,146,
+ 58,150, 8,177, 58, 41,214,203,123,211,110, 87,187,187, 9, 41,143, 21,135,139,105, 30,222, 9, 74,126,211,172, 44,174,173,182,
+160, 15, 29,192,251,245, 85,165, 97, 0, 35, 16, 30, 85,142, 59, 98,164,201, 12,128,247,188,169,126, 97, 31,250, 35, 86,125, 59,
+157,230,239,127,230,151,220,223,246,171, 20, 89,197, 75,192,146,251,243,228,186, 62,231, 47,189,239, 90,130,104, 62,218,107,107,
+ 3,168,249,166, 93,196,253,229, 18,137,147, 39, 86,197,142, 75, 75,150, 10,205, 91, 84,114, 21,244, 7, 58,253,180,214,173,147,
+ 15, 17,218,181, 4,157, 31,194,239,203,185,101, 12,217,153, 63,135, 26, 34,156, 81,254,175,199,230, 15,210,128, 62,189,100,100,
+216,249, 17,135,115,159,122, 44, 39,171, 41,189,205,201, 33,162,223, 34, 52,162, 3, 82, 89, 92,111,136, 2, 57,165, 69, 73,168,
+ 52,235, 90, 29, 89, 52,238,211,187,242, 90, 20,228,249, 82,140,135, 34, 15,185,124,249,245, 67,117,201,179,158,224, 46, 21,221,
+255, 0,152,110, 50,209, 25,143, 43,102,188,148, 10,113, 72, 36,248,143,175, 93, 7, 72,233,145,199,175, 77, 95, 85, 14,181,214,
+236,205,155,144,192,112, 8, 31,109,109, 87, 8, 88,231,249,106, 68, 32,211,172,189,205, 50, 5, 40,228,114,225,113,160, 0, 63,
+212, 32, 31,126,158,140, 34, 46,220,120, 42,121, 93, 75,250, 27, 65,212,176, 41,179, 14,237,102, 29,219,167, 20,172,110, 48,138,
+221,201,110, 57, 42,138, 89, 1,111, 41,117, 82, 66,137, 9,169,222,131,109, 95, 24,240, 18, 37,181, 89, 54,103, 90, 99,177,244,
+101, 85,103,246,144,205,241, 50, 37, 10, 56,211,129,192,149, 10,133,182,208,162,135,212, 77,117,163, 21,154,120,161, 24,109,173,
+171, 85,230,109,185,128, 62, 97, 77,249,241, 92, 35,122, 52,162,217, 3,237, 65,250,180, 80, 82, 77,115,237,239, 62,195, 83, 25,
+221,180, 36, 18,131,247,144,165, 43,137,175,214, 72,209,170, 44, 84,199, 5, 98,226, 83, 18,188,124,218,155,160, 90, 19,228, 1,
+253,223,132,159,180,164,106,224, 68,138,181,115,209,110,129,219, 23,227,135,146,169,110,121, 73,224,175,235,133, 5, 5,167,233,
+223, 94,109,245, 19,168, 85,251, 59, 41, 60,116, 35,216, 71,240, 83,145,209, 74,178,220, 98, 92,240,124,127, 16, 97, 92,154, 97,
+212, 63, 41, 35,250,196,128, 63, 70,250,249,230, 33,135, 30,104, 27,117, 74, 87,171,236, 73, 89,195,246,242,105, 34,232,250,226,
+164,142,136,224,107,255, 0,217,166,136, 67,251,147,148, 93,108, 54,229,241,213, 32,113,146,211, 97,147, 94,164,150,233,170,246,
+ 23,144, 9,130,139, 30, 1,184, 98,242,216, 77, 21,248,204, 23, 1,240,105,182,247, 52,250,116,237,167,181, 78, 42, 37,228, 9,
+ 93,177,151,107,104, 85,184,171,101,164,211,192, 33, 64,254,163,166,254,103, 67,175,129, 65, 27,181, 9,121,172, 55, 80,159,225,
+106,183,214, 79, 79,133, 73, 74, 1,250,107,167, 18,104,165, 41, 50, 37, 25,224,229,147, 40,200, 73,254, 34, 91,141,219,219, 62,
+ 52, 83,129, 10,253, 3, 77, 19,183, 69, 18,116, 78, 39, 34,249, 92, 9,187,179,198,137, 74,208,195, 3,218, 91, 4, 40,254,157,
+ 6,248, 17,170,157,106,124,123,138, 45, 56, 11, 87,103, 5, 37, 77,110, 52, 80,127,177,230,149,210,191, 86,130, 96,229,148,164,
+ 89, 12,187,228,173, 92, 31,135,109,108,242, 22,232,143,200, 80, 31,215,120,154, 87,237,208,124,159,136,158,213, 8, 77,210, 37,
+250,224,184,239, 71,180, 71, 5, 82,214,150,157,116,255, 0, 93,215,135, 36,164,123,128, 63,110,174,215, 95,195,237, 82,148,149,
+181,118,158,187, 42,108,216, 74, 13, 95,138,207,205, 72,166,244, 91, 77, 21,212,253, 10, 93,126,173,103,194,189,198, 94, 41,171,
+208, 58, 68,190,201,242,115,116,207,148, 43, 18, 3, 63, 54, 66,142,197,213,167,154,107,245,144,117,116, 67,225,251,148,129, 71,
+ 59,117,127, 14, 94,219,145, 48,254, 59,229, 78, 57, 83,189,120,147,168, 66, 12,233,229, 38, 9,141,236,149, 82, 59,132,101, 50,
+121, 34, 43, 65,148,251,191,103, 85,132, 30, 35,237,205, 14,103,225, 65,251,161,147,124,190, 83, 61,166,206,205, 49, 21, 27, 31,
+ 20,182, 65,253, 90,149,149,188, 83, 68,175,219, 22,102,127,200, 2, 50, 85, 95, 48,165,100,215,254,233, 98,159,163, 84,242,170,
+213,187, 83,199, 84,223,100,204,218,103, 5, 14,184,170,149,184,210,145,239, 90, 93,228,127, 64,212,171,161,167,236, 82,220,193,
+ 21,133,144, 68,145,142, 92,237,106, 93, 88, 20,126, 56, 62, 9,115,226,167,212,161,171,130,157,164,160, 11, 18,246, 47,157, 52,
+225,184,218, 95, 85, 25,144,242, 82, 69,118,175, 47, 15,183, 74, 52,252, 33, 72,216,160,156,133,236,117, 23,187, 11,198,143,173,
+176, 15,210,149,115, 7,235, 7, 80,157, 27,136, 61,137,161, 98, 25, 31, 39, 67,215,134,227,180, 0, 92,198,130,222, 3,197, 92,
+ 10, 15,234,174,141, 8,109,114,144,155,169, 24, 54, 55, 18,213,219, 58,206, 79, 59,164, 25,111, 58,223, 61,213,229,201, 87,196,
+ 5,125,155, 29, 66,235,141,135,142,173,249, 35,237,100, 53,203,132,133,134,154, 88,229, 56,185, 68, 32,117, 42, 41, 52, 26,161,
+135, 47, 54,226, 7, 0, 20,140, 88, 38, 60, 58,244,214, 9,136,220, 47, 82,156,224,243, 44, 21, 45,207,234,184,180,147,246,131,
+174,174, 21,105,185, 85,180, 59, 5, 83,118,123, 34, 85,247,186, 43,186, 58,121, 71,141,230, 72,117,100,215,112,159,135, 79, 94,
+ 62,226,231,216,154,226,225,130,126,236,133,222, 70,117,222, 11,166, 95, 33, 85,136,218, 85, 9,133, 87,225, 8, 65, 53, 3,235,
+214,141,181,129, 31, 5, 86,216,237,128, 87, 71,110,111, 49,155,185, 93, 46,140,209, 48, 97, 33,108,182,125,171,112,213, 71,236,
+ 26,198,166, 62,100,143,138, 91,118,133,195,221,230,201, 81,149,247, 51, 42,204, 37, 30, 86, 91,123,142,147,253, 87, 29, 72, 8,
+ 66, 62,211,173, 12,129,182, 81,132,120,149, 98,170,159, 84,251,232,222,198,156, 66,207,115,238,253,249, 52,118, 59, 11, 44,115,
+240, 90,128, 32, 10,232,205,203,177, 14,228,235,137,228, 46,197,197, 39,101, 23, 21, 86,235,120,144, 86, 10,137,173, 20,162,175,
+111,213,160,249, 90,185, 80,169,202,169,219,203, 95, 61,203,123, 36,243, 63, 21, 50,217,100, 10,254,202,155,115,225,253, 26, 35,
+243,228,137,228,150,101,120, 70,253,194,186,244,253,175,167,199, 94,147,201,119, 60,211, 62, 43,247, 81,215,253,190,159, 94,171,
+216,175, 87,197, 54,197,234, 63,119,227,247, 58,244,214,124,214,165, 92, 18,119,113, 63,237, 63,117,227,244,253, 90, 45, 8, 54,
+241,228,171, 89,127,188,253,175,246, 58,234,236, 85,116,197,139,125,193,251,222,158, 63,211,169, 32,216,166, 93, 58, 31,233,254,
+157, 50, 9,226,128, 72,253,249,251,158, 29,122,105, 73, 88, 10,110, 59,254, 35,246,252, 62,231,221,208,212, 36,154, 89,255, 0,
+ 10, 62,255, 0, 95,233,240,211,132, 50,140,199,255, 0, 12,122,248,125,254,186,100,229, 46,228,255, 0,124,253,223,246,180,145,
+160,180, 91, 63,225,223,111,222,233,167, 40, 86,240, 42,139,200,191,243, 50,239,251,191,248,112,255, 0, 13,251,175,240,135,252,
+ 63,246,127,215,161,102,127,237,127,241,143, 14, 92,123,151, 27,145,243, 31, 30, 92, 22, 97, 63,225,218,251,189,126,175,221, 47,
+254,131, 93,108,248, 89,224,127, 17,195,185, 88,237, 79, 89,183,252,191, 96,233,255, 0, 20, 79,251,191, 15,191,239,246,107,204,
+ 97,254,124,188, 15,224, 85, 14,104,196, 79,248,243,125, 62,243,189, 58,253,213,244,254,157,106,127,244,231,143, 17,249,162,242,
+ 82,112, 47,248,117,247,238,254,237,191,189,254,240,127,208,235, 7,170,255, 0,150,127,255, 0, 65,248, 21, 78,238, 8,124,239,
+241,206,127,117, 95,127,167, 81,211,250, 53,169,233,127,150, 72,180,240, 70,176, 95,248,113,255, 0,120,143,185,215,247,254, 62,
+255, 0,245,107, 71,162,124,151,127,196, 63, 53,115, 31,243, 79,182,239,241, 67,239,127,133, 95,221,251,191,188, 58,235,191,234,
+215,224, 22,144,226,138,118,183,254,120,185,253,255, 0,240,200,251,159,123,239,163,166,178,191,250,249,248,126,124,146,167,231,
+ 42, 63,126,255, 0,225,223,183,254, 44,126,239,232, 71, 79,118,186, 44,110, 42,205,139,142,115,207,249,194, 23,238,255, 0,111,
+239,245,251,171,251,254,255, 0,245,235,165,198,249, 22,101,223, 50, 43,143,126,241,207,220,255, 0,135,107,175,247, 19,211,223,
+168,215,197, 14,212, 67, 38,255, 0, 3, 27,239,126,241, 31,119,233,209,163,197, 83, 85, 87,115,255, 0,196, 35,238,125,233, 63,
+127,239,116, 61,125,222,223,126,172,197, 13, 40, 99, 63,243, 20, 95,247,111,125,254,191,117, 29,125,222,221, 18, 41,147,107,253,
+ 36,253,239,221,253, 95,124,104,213,169,197, 58, 96,255, 0,191,253,158,175,253,255, 0,247,205,255, 0,208,106,224,224,137, 20,
+225,220,255, 0,248,122,191,123,209,158,191,119,199,166,190,114,245,215,254,250,127, 55,183,135, 20, 67,242,163,189,175,255, 0,
+139, 55,215,238, 39,239,244,251,154,243,168,254,106, 3,130, 66,127,255, 0, 52,227,253,255, 0,241,238,253,238,189, 23,247,125,
+254,221, 90, 28, 20, 39,193, 89, 10,255, 0,156, 93,233,213, 29, 63,221,248,234,164,190, 98,163,205, 66,237,247,248,107,167,254,
+232,191,191,247,122,126,189, 18,206, 72,144,224,160, 64,255, 0,147,111,255, 0,239, 83,247,186,125, 90,132,184,133, 24,240, 43,
+ 93,155,247, 35,238,254,241,158,159,188,253,218,122,127,103,219,239,212,121,168, 77, 71, 63,249,126,255, 0, 79,241,235,251,157,
+ 63,124,175,189,239,246,105,127,214, 30, 31,146,105,112, 68, 50, 79,249, 15, 31,251,255, 0,188,127,238,254,235,160,251,222,253,
+ 62,127,201, 47,103,228,137, 74, 97,238, 7,254, 90, 99,189,127,120,207,238,190,239,220,241,208, 97,196,166,179,229, 74,152,199,
+252,126,243,247,191,118,143,222,245,251,135,167,187,217,169, 79,128, 85,234,228,160,202,255, 0,205,187, 55,220,253,252, 31,222,
+126,239,247, 77,245,254,141, 22, 31, 34, 45,138,197,191,255, 0,230,237,235,175,248, 73, 31,189,250,254,231,187,219,238,213, 28,
+110, 30,210,159,249,125,137, 75, 63,255, 0,141, 93,255, 0,223,163,251,189, 19,215,251, 58,178, 56, 39,151, 37, 23, 6,255, 0,
+153,191,237, 63,107,175, 78,159,179,167, 60, 19, 91,193, 50,226,127,243, 60,207,189,213,191,222,117,251,250,174, 62, 80,163, 63,
+145, 4,238,159,252,199,119,251,221, 83,215,175,221, 58,126, 67,197, 60,120,251, 22,188,123,254, 84, 79,222,253,202,190,142,186,
+ 6, 71,249,138,112, 76,145,127,228,139,111,239, 63,120,231,221,233,211,199,223,162,199,230, 81, 60,209,107,103,248, 4,126,243,
+247, 13,125,223,247,170,251,222,237, 89,146,170,149,109, 63,241, 89, 95,189,253,248,251,159,222, 29, 52,255, 0,202,151, 52,193,
+221,143,249,166, 71, 79,240,140,125,207,189,251,179,247,253,255, 0,234,208,199,202,158, 60, 82,238, 29,255, 0, 59, 90,186,253,
+199, 63,121,247,116,231,129, 78, 57, 39,145,210, 71,222,253,159,185,251,174,169,235,239,213, 8,113, 42,244,190, 80,150, 45,127,
+243,181,179,167,248,159,219,251,159,113,127,167, 85,186, 87,249,146, 72,242, 67,251,181,255, 0,147,215, 31,223,127,139, 63,185,
+235,225,247,255, 0,179,174,198,191,144,120, 32,219,199,218,144, 61, 63,127,130,190,125,239,184,191,187,251,207,187,171,180,124,
+195,130, 1,252,213,157,233,111,254, 85,153,244,189,251,159,222,253,243,215,223,237,213,110,167,254, 76,184,251, 20,167,243,127,
+ 21,103, 98, 31,249,125,115,251,255, 0,125,223,185,247,254,224,251,222,253,102,116,127,179,168,228,241, 92, 91,148,127,229,157,
+219,238,255, 0,198, 87,211,239,254,248,126,255, 0,221,171,215,127,239,191,240,243,241, 86, 7,200,174,187,127,255, 0,243,119,
+143,239, 19,254, 19,238,127,235, 61,218,179,143,198,106,174, 71, 0,188, 79,255, 0,148,237,223,188,251,136,253,223,221,251,222,
+ 30,255, 0,110,167,103,228,165,140,170,132,127,139,115,255, 0,122,111,251,223,113,127,167, 64, 63, 40,251,118, 43, 43,255,217,
};
diff --git a/source/blender/src/swapbuffers.c b/source/blender/src/swapbuffers.c
index cad8d86e677..0bdb0e1dc39 100644
--- a/source/blender/src/swapbuffers.c
+++ b/source/blender/src/swapbuffers.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/blender/src/toets.c b/source/blender/src/toets.c
index 230e8b69de9..d3db729cf2b 100644
--- a/source/blender/src/toets.c
+++ b/source/blender/src/toets.c
@@ -1,14 +1,11 @@
/**
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*
@@ -66,6 +63,8 @@
#include "BKE_image.h"
#include "BKE_ipo.h"
#include "BKE_key.h"
+#include "BKE_object.h"
+#include "BKE_pointcache.h"
#include "BKE_scene.h"
#include "BKE_utildefines.h"
@@ -76,7 +75,6 @@
#include "BIF_imasel.h"
#include "BIF_editparticle.h"
#include "BIF_interface.h"
-#include "BKE_object.h"
#include "BIF_poseobject.h"
#include "BIF_previewrender.h"
#include "BIF_renderwin.h"
@@ -133,21 +131,21 @@ static void axis_set_view(float q1, float q2, float q3, float q4, short view, in
new_quat[2]= q3; new_quat[3]= q4;
G.vd->view=0;
- if (G.vd->persp==2 && G.vd->camera) {
+ if (G.vd->persp==V3D_CAMOB && G.vd->camera) {
/* Is this switching from a camera view ? */
float orig_ofs[3];
float orig_lens= G.vd->lens;
VECCOPY(orig_ofs, G.vd->ofs);
view_settings_from_ob(G.vd->camera, G.vd->ofs, G.vd->viewquat, &G.vd->dist, &G.vd->lens);
- if (U.uiflag & USER_AUTOPERSP) G.vd->persp= 0;
- else if(G.vd->persp>=2) G.vd->persp= perspo;
+ if (U.uiflag & USER_AUTOPERSP) G.vd->persp= V3D_ORTHO;
+ else if(G.vd->persp==V3D_CAMOB) G.vd->persp= perspo;
smooth_view(G.vd, orig_ofs, new_quat, NULL, &orig_lens);
} else {
- if (U.uiflag & USER_AUTOPERSP) G.vd->persp= 0;
- else if(G.vd->persp>=2) G.vd->persp= perspo;
+ if (U.uiflag & USER_AUTOPERSP) G.vd->persp= V3D_ORTHO;
+ else if(G.vd->persp==V3D_CAMOB) G.vd->persp= perspo;
smooth_view(G.vd, NULL, new_quat, NULL, NULL);
}
@@ -158,7 +156,7 @@ void persptoetsen(unsigned short event)
{
static Object *oldcamera=0;
float phi, si, q1[4], vec[3];
- static int perspo=1;
+ static int perspo=V3D_PERSP;
int preview3d_event= 1;
short mouseloc[2];
@@ -166,14 +164,14 @@ void persptoetsen(unsigned short event)
/* Use this to test if we started out with a camera */
Object *act_cam_orig=NULL;
- if (G.vd->persp == 2)
+ if (G.vd->persp == V3D_CAMOB)
act_cam_orig = G.vd->camera;
if(event==PADENTER) {
if (G.qual == LR_SHIFTKEY) {
view3d_set_1_to_1_viewborder(G.vd);
} else {
- if (G.vd->persp==2) {
+ if (G.vd->persp==V3D_CAMOB) {
G.vd->camzoom= 0;
} else {
new_dist = 10.0;
@@ -202,14 +200,14 @@ void persptoetsen(unsigned short event)
}
else if(event==PADMINUS) {
/* this min and max is also in viewmove() */
- if(G.vd->persp==2) {
+ if(G.vd->persp==V3D_CAMOB) {
G.vd->camzoom-= 10;
if(G.vd->camzoom<-30) G.vd->camzoom= -30;
}
else if(G.vd->dist<10.0*G.vd->far) G.vd->dist*=1.2f;
}
else if(event==PADPLUSKEY) {
- if(G.vd->persp==2) {
+ if(G.vd->persp==V3D_CAMOB) {
G.vd->camzoom+= 10;
if(G.vd->camzoom>300) G.vd->camzoom= 300;
}
@@ -246,35 +244,35 @@ void persptoetsen(unsigned short event)
}
else if(event==PADMINUS) {
/* this min and max is also in viewmove() */
- if(G.vd->persp==2) {
+ if(G.vd->persp==V3D_CAMOB) {
G.vd->camzoom= MAX2(-30, G.vd->camzoom-5);
}
else if(G.vd->dist<10.0*G.vd->far) {
getmouseco_areawin(mouseloc);
view_zoom_mouseloc(VIEW_ZOOM_OUT_FACTOR, mouseloc);
}
- if(G.vd->persp!=1) preview3d_event= 0;
+ if(G.vd->persp!=V3D_PERSP) preview3d_event= 0;
}
else if(event==PADPLUSKEY) {
- if(G.vd->persp==2) {
+ if(G.vd->persp==V3D_CAMOB) {
G.vd->camzoom= MIN2(300, G.vd->camzoom+5);
}
else if(G.vd->dist> 0.001*G.vd->grid) {
getmouseco_areawin(mouseloc);
view_zoom_mouseloc(VIEW_ZOOM_IN_FACTOR, mouseloc);
}
- if(G.vd->persp!=1) preview3d_event= 0;
+ if(G.vd->persp!=V3D_PERSP) preview3d_event= 0;
}
else if(event==PAD5) {
if (U.smooth_viewtx) {
- if(G.vd->persp==1) { G.vd->persp=0;
+ if(G.vd->persp==V3D_PERSP) { G.vd->persp=V3D_ORTHO;
} else if (act_cam_orig) {
/* were from a camera view */
float orig_dist= G.vd->dist;
float orig_lens= G.vd->lens;
VECCOPY(orig_ofs, G.vd->ofs);
- G.vd->persp=1;
+ G.vd->persp=V3D_PERSP;
G.vd->dist= 0.0;
view_settings_from_ob(act_cam_orig, G.vd->ofs, NULL, NULL, &G.vd->lens);
@@ -282,11 +280,11 @@ void persptoetsen(unsigned short event)
smooth_view(G.vd, orig_ofs, NULL, &orig_dist, &orig_lens);
} else {
- G.vd->persp=1;
+ G.vd->persp=V3D_PERSP;
}
} else {
- if(G.vd->persp==1) G.vd->persp=0;
- else G.vd->persp=1;
+ if(G.vd->persp==V3D_PERSP) G.vd->persp=V3D_ORTHO;
+ else G.vd->persp=V3D_PERSP;
}
}
else if(event==PAD0) {
@@ -318,7 +316,7 @@ void persptoetsen(unsigned short event)
}
if(G.vd->camera && (G.vd->camera != act_cam_orig)) {
- G.vd->persp= 2;
+ G.vd->persp= V3D_CAMOB;
G.vd->view= 0;
if(((G.qual & LR_CTRLKEY) && (G.qual & LR_ALTKEY)) || (G.qual & LR_SHIFTKEY)) {
@@ -350,7 +348,7 @@ void persptoetsen(unsigned short event)
reset_slowparents(); /* editobject.c */
}
- else if(G.vd->persp<2) {
+ else if(G.vd->persp != V3D_CAMOB) {
if(event==PAD4 || event==PAD6) {
/* z-axis */
phi= (float)(M_PI/360.0)*U.pad_rot_angle;
@@ -379,7 +377,7 @@ void persptoetsen(unsigned short event)
}
}
- if(G.vd->persp<2) perspo= G.vd->persp;
+ if(G.vd->persp != V3D_CAMOB) perspo= G.vd->persp;
}
if(G.vd->depths) G.vd->depths->damaged= 1;
@@ -701,6 +699,7 @@ int blenderqread(unsigned short event, short val)
/* stop playback on ESC always */
rem_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM);
audiostream_stop();
+ BKE_ptcache_set_continue_physics(0);
allqueue(REDRAWALL, 0);
break;
diff --git a/source/blender/src/toolbox.c b/source/blender/src/toolbox.c
index 8b0df0322ab..1cc4a8fd31c 100644
--- a/source/blender/src/toolbox.c
+++ b/source/blender/src/toolbox.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#define PY_TOOLBOX 1
@@ -294,13 +291,14 @@ short button(short *var, short min, short max, char *str)
return 0;
}
-short sbutton(char *var, float min, float max, char *str)
+short sbutton(char *var, short min, short max, char *str)
{
uiBlock *block;
ListBase listb={0, 0};
short x1,y1;
short mval[2], ret=0;
-
+ char *editvar = NULL; /* dont edit the original text, incase we cancel the popup */
+
if(min>max) min= max;
getmouseco_sc(mval);
@@ -316,7 +314,10 @@ short sbutton(char *var, float min, float max, char *str)
x1=mval[0]-250;
y1=mval[1]-20;
- uiDefButC(block, TEX, 32766, str, x1+5,y1+10,225,20, var,(float)min,(float)max, 0, 0, "");
+ editvar = MEM_callocN(max, "sbutton");
+ BLI_strncpy(editvar, var, max);
+
+ uiDefButC(block, TEX, 32766, str, x1+5,y1+10,225,20, editvar,(float)min,(float)max, 0, 0, "");
uiDefBut(block, BUT, 32767, "OK", x1+236,y1+10,25,20, NULL, 0, 0, 0, 0, "");
uiBoundsBlock(block, 5);
@@ -324,7 +325,12 @@ short sbutton(char *var, float min, float max, char *str)
mainqenter_ext(BUT_ACTIVATE, 32766, 0); /* note, button id '32766' is asking for errors some day! */
ret= uiDoBlocks(&listb, 0, 0);
- if(ret==UI_RETURN_OK) return 1;
+ if(ret==UI_RETURN_OK) {
+ BLI_strncpy(var, editvar, max);
+ MEM_freeN(editvar);
+ return 1;
+ }
+ MEM_freeN(editvar);
return 0;
}
diff --git a/source/blender/src/transform.c b/source/blender/src/transform.c
index 5838a09e160..6e4641a4d12 100644
--- a/source/blender/src/transform.c
+++ b/source/blender/src/transform.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -79,12 +76,13 @@
#include "BIF_editaction.h"
#include "BKE_action.h" /* get_action_frame */
+#include "BKE_bad_level_calls.h"/* popmenu and error */
+#include "BKE_bmesh.h"
#include "BKE_constraint.h"
#include "BKE_global.h"
-#include "BKE_utildefines.h"
-#include "BKE_bad_level_calls.h"/* popmenu and error */
#include "BKE_particle.h"
-#include "BKE_bmesh.h"
+#include "BKE_pointcache.h"
+#include "BKE_utildefines.h"
#include "BSE_drawipo.h"
#include "BSE_editnla_types.h" /* for NLAWIDTH */
@@ -261,7 +259,7 @@ void setTransformViewMatrices(TransInfo *t)
Mat4One(t->viewinv);
Mat4One(t->persmat);
Mat4One(t->persinv);
- t->persp = 0; // ortho
+ t->persp = V3D_ORTHO;
}
calculateCenter2D(t);
@@ -1134,6 +1132,11 @@ void Transform()
event= extern_qread(&val);
transformEvent(event, val);
}
+
+ if(BKE_ptcache_get_continue_physics()) {
+ do_screenhandlers(G.curscreen);
+ Trans.redraw= 1;
+ }
}
@@ -3360,6 +3363,8 @@ void initBevel(TransInfo *t)
int handleEventBevel(TransInfo *t, unsigned short event, short val)
{
if (val) {
+ if(!G.editBMesh) return 0;
+
switch (event) {
case MIDDLEMOUSE:
G.editBMesh->options ^= BME_BEVEL_VERT;
@@ -4277,7 +4282,7 @@ static void doAnimEdit_SnapFrame(TransInfo *t, TransData *td, Object *ob, short
if (autosnap == SACTSNAP_FRAME) {
short doTime= getAnimEdit_DrawTime(t);
double secf= FPS;
- float val;
+ double val;
/* convert frame to nla-action time (if needed) */
if (ob)
diff --git a/source/blender/src/transform_constraints.c b/source/blender/src/transform_constraints.c
index 76c480bba8b..1b85962a768 100644
--- a/source/blender/src/transform_constraints.c
+++ b/source/blender/src/transform_constraints.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -245,8 +242,7 @@ static void applyAxisConstraintVec(TransInfo *t, TransData *td, float in[3], flo
Mat3MulVecfl(t->con.pmtx, out);
// With snap, a projection is alright, no need to correct for view alignment
- if ((t->tsnap.status & SNAP_ON) == 0)
- {
+ if ((t->tsnap.status & SNAP_ON) == 0) {
if (getConstraintSpaceDimension(t) == 2) {
if (out[0] != 0.0f || out[1] != 0.0f || out[2] != 0.0f) {
planeProjection(t, in, out);
@@ -669,7 +665,7 @@ void BIF_drawConstraint(void)
return;
/* nasty exception for Z constraint in camera view */
- if((t->flag & T_OBJECT) && G.vd->camera==OBACT && G.vd->persp>1)
+ if((t->flag & T_OBJECT) && G.vd->camera==OBACT && G.vd->persp==V3D_CAMOB)
return;
if (tc->drawExtra) {
diff --git a/source/blender/src/transform_conversions.c b/source/blender/src/transform_conversions.c
index 45e75bff39b..f7b8ba6c682 100644
--- a/source/blender/src/transform_conversions.c
+++ b/source/blender/src/transform_conversions.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
@@ -95,6 +92,7 @@
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BKE_particle.h"
+#include "BKE_pointcache.h"
#include "BKE_softbody.h"
#include "BKE_utildefines.h"
#include "BKE_bmesh.h"
@@ -284,6 +282,7 @@ static void createTransTexspace(TransInfo *t)
TransData *td;
Object *ob;
ID *id;
+ int *texflag;
ob= OBACT;
@@ -311,26 +310,8 @@ static void createTransTexspace(TransInfo *t)
Mat3Ortho(td->axismtx);
Mat3Inv(td->smtx, td->mtx);
- if( GS(id->name)==ID_ME) {
- Mesh *me= ob->data;
- me->texflag &= ~AUTOSPACE;
- td->loc= me->loc;
- td->ext->rot= me->rot;
- td->ext->size= me->size;
- }
- else if( GS(id->name)==ID_CU) {
- Curve *cu= ob->data;
- cu->texflag &= ~CU_AUTOSPACE;
- td->loc= cu->loc;
- td->ext->rot= cu->rot;
- td->ext->size= cu->size;
- }
- else if( GS(id->name)==ID_MB) {
- MetaBall *mb= ob->data;
- mb->texflag &= ~MB_AUTOSPACE;
- td->loc= mb->loc;
- td->ext->rot= mb->rot;
- td->ext->size= mb->size;
+ if (give_obdata_texspace(ob, &texflag, &td->loc, &td->ext->size, &td->ext->rot)) {
+ *texflag &= ~AUTOSPACE;
}
VECCOPY(td->iloc, td->loc);
@@ -1252,6 +1233,18 @@ static void calc_distanceCurveVerts(TransData *head, TransData *tail) {
}
}
+/* Utility function for getting the handle data from bezier's */
+TransDataCurveHandleFlags *initTransDataCurveHandes(TransData *td, struct BezTriple *bezt) {
+ TransDataCurveHandleFlags *hdata;
+ td->flag |= TD_BEZTRIPLE;
+ hdata = td->hdata = MEM_mallocN(sizeof(TransDataCurveHandleFlags), "CuHandle Data");
+ hdata->ih1 = bezt->h1;
+ hdata->h1 = &bezt->h1;
+ hdata->ih2 = bezt->h2; /* incase the second is not selected */
+ hdata->h2 = &bezt->h2;
+ return hdata;
+}
+
static void createTransCurveVerts(TransInfo *t)
{
TransData *td = NULL;
@@ -1298,7 +1291,7 @@ static void createTransCurveVerts(TransInfo *t)
Mat3CpyMat4(mtx, G.obedit->obmat);
Mat3Inv(smtx, mtx);
-
+
td = t->data;
for(nu= editNurb.first; nu; nu= nu->next) {
if((nu->type & 7)==CU_BEZIER) {
@@ -1306,6 +1299,7 @@ static void createTransCurveVerts(TransInfo *t)
head = tail = td;
for(a=0, bezt= nu->bezt; a<nu->pntsu; a++, bezt++) {
if(bezt->hide==0) {
+ TransDataCurveHandleFlags *hdata = NULL;
if( propmode ||
((bezt->f2 & SELECT) && (G.f & G_HIDDENHANDLES)) ||
@@ -1324,6 +1318,8 @@ static void createTransCurveVerts(TransInfo *t)
td->ext = NULL;
td->tdi = NULL;
td->val = NULL;
+
+ hdata = initTransDataCurveHandes(td, bezt);
Mat3CpyMat3(td->smtx, smtx);
Mat3CpyMat3(td->mtx, mtx);
@@ -1355,7 +1351,13 @@ static void createTransCurveVerts(TransInfo *t)
Mat3CpyMat3(td->smtx, smtx);
Mat3CpyMat3(td->mtx, mtx);
-
+
+ if ((bezt->f1&SELECT)==0 && (bezt->f3&SELECT)==0)
+ /* If the middle is selected but the sides arnt, this is needed */
+ if (hdata==NULL) { /* if the handle was not saved by the previous handle */
+ hdata = initTransDataCurveHandes(td, bezt);
+ }
+
td++;
count++;
tail++;
@@ -1378,6 +1380,10 @@ static void createTransCurveVerts(TransInfo *t)
td->tdi = NULL;
td->val = NULL;
+ if (hdata==NULL) { /* if the handle was not saved by the previous handle */
+ hdata = initTransDataCurveHandes(td, bezt);
+ }
+
Mat3CpyMat3(td->smtx, smtx);
Mat3CpyMat3(td->mtx, mtx);
@@ -1393,6 +1399,8 @@ static void createTransCurveVerts(TransInfo *t)
}
if (propmode && head != tail)
calc_distanceCurveVerts(head, tail-1);
+
+ testhandlesNurb(nu); /* sets the handles based on their selection, do this after the data is copied to the TransData */
}
else {
TransData *head, *tail;
@@ -1806,7 +1814,7 @@ static void VertsToTransData(TransData *td, EditVert *eve)
td->ext = NULL;
td->tdi = NULL;
td->val = NULL;
- td->tdmir= NULL;
+ td->tdmir = NULL;
if (BIF_GetTransInfo()->mode == TFM_BWEIGHT) {
td->val = &(eve->bweight);
td->ival = eve->bweight;
@@ -2001,7 +2009,7 @@ static void createTransEditVerts(TransInfo *t)
int propmode = t->flag & T_PROP_EDIT;
int mirror = 0;
- if ((t->context & CTX_NO_MIRROR) == 0 || (G.scene->toolsettings->editbutflag & B_MESH_X_MIRROR))
+ if ((t->context & CTX_NO_MIRROR) == 0 && (G.scene->toolsettings->editbutflag & B_MESH_X_MIRROR))
{
mirror = 1;
}
@@ -2159,7 +2167,7 @@ static void createTransEditVerts(TransInfo *t)
/* Mirror? */
if( (mirror>0 && tob->iloc[0]>0.0f) || (mirror<0 && tob->iloc[0]<0.0f)) {
EditVert *vmir= editmesh_get_x_mirror_vert(G.obedit, tob->iloc); /* initializes octree on first call */
- if(vmir!=eve) tob->tdmir= vmir;
+ if(vmir != eve) tob->tdmir = vmir;
}
tob++;
}
@@ -3094,8 +3102,9 @@ static void set_trans_object_base_flags(TransInfo *t)
ob->recalc |= OB_RECALC_OB;
}
}
+
/* all recalc flags get flushed to all layers, so a layer flip later on works fine */
- DAG_scene_flush_update(G.scene, -1);
+ DAG_scene_flush_update(G.scene, -1, 0);
/* and we store them temporal in base (only used for transform code) */
/* this because after doing updates, the object->recalc is cleared */
@@ -3409,7 +3418,7 @@ static void recalc_all_ipos(void)
}
}
-/* inserting keys, refresh ipo-keys, softbody, redraw events... (ton) */
+/* inserting keys, refresh ipo-keys, pointcache, redraw events... (ton) */
/* note: transdata has been freed already! */
void special_aftertrans_update(TransInfo *t)
{
@@ -3419,10 +3428,14 @@ void special_aftertrans_update(TransInfo *t)
int cancelled= (t->state == TRANS_CANCEL);
if (t->spacetype==SPACE_VIEW3D) {
- EM_automerge(1);
- /* when snapping, delay retopo until after automerge */
- if (G.qual & LR_CTRLKEY) {
- retopo_do_all();
+ if (G.obedit) {
+ if (cancelled==0) {
+ EM_automerge(1);
+ /* when snapping, delay retopo until after automerge */
+ if (G.qual & LR_CTRLKEY) {
+ retopo_do_all();
+ }
+ }
}
}
if (t->spacetype == SPACE_ACTION) {
@@ -3559,16 +3572,13 @@ void special_aftertrans_update(TransInfo *t)
ob= base->object;
- if (modifiers_isSoftbodyEnabled(ob)) ob->softflag |= OB_SB_REDO;
- else if((ob == OBACT) && modifiers_isClothEnabled(ob)) {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
- if(clmd)
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- }
-
- /* Set autokey if necessary */
- if ((!cancelled) && (t->mode != TFM_DUMMY) && (base->flag & SELECT)) {
- autokeyframe_ob_cb_func(ob, t->mode);
+ if(base->flag & SELECT && (t->mode != TFM_DUMMY)) {
+ if(BKE_ptcache_object_reset(ob, PTCACHE_RESET_DEPSGRAPH))
+ ob->recalc |= OB_RECALC_DATA;
+
+ /* Set autokey if necessary */
+ if (!cancelled)
+ autokeyframe_ob_cb_func(ob, t->mode);
}
base= base->next;
@@ -3844,7 +3854,7 @@ void createTransData(TransInfo *t)
t->flag |= T_OBJECT;
}
- if((t->flag & T_OBJECT) && G.vd->camera==OBACT && G.vd->persp>1) {
+ if((t->flag & T_OBJECT) && G.vd->camera==OBACT && G.vd->persp==V3D_CAMOB) {
t->flag |= T_CAMERA;
}
diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c
index 6738d437ab6..1a803bf00a8 100644
--- a/source/blender/src/transform_generics.c
+++ b/source/blender/src/transform_generics.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -120,7 +117,7 @@ void getViewVector(float coord[3], float vec[3])
{
TransInfo *t = BIF_GetTransInfo();
- if (t->persp)
+ if (t->persp != V3D_ORTHO)
{
float p1[4], p2[4];
@@ -255,7 +252,7 @@ static void editmesh_apply_to_mirror(TransInfo *t)
if (td->flag & TD_SKIP)
continue;
- eve= td->tdmir;
+ eve = td->tdmir;
if(eve) {
eve->co[0]= -td->loc[0];
eve->co[1]= td->loc[1];
@@ -308,7 +305,7 @@ void recalcData(TransInfo *t)
base->object->ctime= -1234567.0f; // eveil!
}
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
}
}
else if (t->spacetype == SPACE_IPO) {
@@ -325,8 +322,11 @@ void recalcData(TransInfo *t)
if (ISPOIN(ei, flag & IPO_VISIBLE, icu)) {
/* watch it: if the time is wrong: do not correct handles */
- if (test_time_ipocurve(ei->icu)) dosort++;
- else testhandles_ipocurve(ei->icu);
+ if (test_time_ipocurve(ei->icu)) {
+ dosort++;
+ } else {
+ calchandles_ipocurve(ei->icu);
+ }
}
}
@@ -367,7 +367,7 @@ void recalcData(TransInfo *t)
}
base= base->next;
}
- DAG_scene_flush_update(G.scene, screen_view3d_layers());
+ DAG_scene_flush_update(G.scene, screen_view3d_layers(), 0);
}
}
}
@@ -378,14 +378,14 @@ void recalcData(TransInfo *t)
if (G.sima->flag & SI_LIVE_UNWRAP)
unwrap_lscm_live_re_solve();
} else {
- /* Only retopo if not snapping, Note, this is the only case of G.qual being used, but we have no T_SHIFT_MOD - Campbell */
- if ((G.qual & LR_CTRLKEY)==0)
- retopo_do_all();
-
/* mirror modifier clipping? */
- if(t->state != TRANS_CANCEL)
+ if(t->state != TRANS_CANCEL) {
+ if ((G.qual & LR_CTRLKEY)==0) {
+ /* Only retopo if not snapping, Note, this is the only case of G.qual being used, but we have no T_SHIFT_MOD - Campbell */
+ retopo_do_all();
+ }
clipMirrorModifier(t, G.obedit);
-
+ }
if((t->context & CTX_NO_MIRROR) == 0 && (G.scene->toolsettings->editbutflag & B_MESH_X_MIRROR))
editmesh_apply_to_mirror(t);
@@ -398,13 +398,20 @@ void recalcData(TransInfo *t)
Nurb *nu= editNurb.first;
DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA); /* sets recalc flags */
- while(nu) {
- test2DNurb(nu);
- testhandlesNurb(nu); /* test for bezier too */
- nu= nu->next;
+ if (t->state == TRANS_CANCEL) {
+ while(nu) {
+ calchandlesNurb(nu); /* Cant do testhandlesNurb here, it messes up the h1 and h2 flags */
+ nu= nu->next;
+ }
+ } else {
+ /* Normal updating */
+ while(nu) {
+ test2DNurb(nu);
+ calchandlesNurb(nu);
+ nu= nu->next;
+ }
+ retopo_do_all();
}
-
- retopo_do_all();
}
else if(G.obedit->type==OB_ARMATURE){ /* no recalc flag, does pose */
bArmature *arm= G.obedit->data;
@@ -465,21 +472,6 @@ void recalcData(TransInfo *t)
/* old optimize trick... this enforces to bypass the depgraph */
if (!(arm->flag & ARM_DELAYDEFORM)) {
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); /* sets recalc flags */
-
- /* bah, softbody exception... recalcdata doesnt reset */
- for(base= FIRSTBASE; base; base= base->next) {
- if(base->object->recalc & OB_RECALC_DATA)
- {
- if(modifiers_isSoftbodyEnabled(base->object)) {
- base->object->softflag |= OB_SB_REDO;
- }
- else if(modifiers_isClothEnabled(base->object)) {
- ClothModifierData *clmd = (ClothModifierData *) modifiers_findByType(base->object, eModifierType_Cloth);
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- }
-
- }
- }
}
else
where_is_pose(ob);
@@ -491,12 +483,12 @@ void recalcData(TransInfo *t)
for(base= FIRSTBASE; base; base= base->next) {
Object *ob= base->object;
- /* this flag is from depgraph, was stored in nitialize phase, handled in drawview.c */
+ /* this flag is from depgraph, was stored in initialize phase, handled in drawview.c */
if(base->flag & BA_HAS_RECALC_OB)
ob->recalc |= OB_RECALC_OB;
if(base->flag & BA_HAS_RECALC_DATA)
ob->recalc |= OB_RECALC_DATA;
-
+
/* thanks to ob->ctime usage, ipos are not called in where_is_object,
unless we edit ipokeys */
if(base->flag & BA_DO_IPO) {
@@ -513,18 +505,6 @@ void recalcData(TransInfo *t)
}
}
- /* softbody & cloth exception */
- if(ob->recalc & OB_RECALC_DATA)
- {
- if(modifiers_isSoftbodyEnabled(ob)) {
- ob->softflag |= OB_SB_REDO;
- }
- else if(modifiers_isClothEnabled(ob)) {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- }
- }
-
/* proxy exception */
if(ob->proxy)
ob->proxy->recalc |= ob->recalc;
@@ -547,7 +527,6 @@ void recalcData(TransInfo *t)
/* update shaded drawmode while transform */
if(t->spacetype==SPACE_VIEW3D && G.vd->drawtype == OB_SHADED)
reshadeall_displist();
-
}
void initTransModeFlags(TransInfo *t, int mode)
@@ -639,6 +618,7 @@ void initTrans (TransInfo *t)
t->con.imval[1] = t->imval[1];
t->transform = NULL;
+ t->handleEvent = NULL;
t->total =
t->num.idx =
@@ -711,6 +691,7 @@ void postTrans (TransInfo *t)
/* since ipokeys are optional on objects, we mallocced them per trans-data */
for(a=0, td= t->data; a<t->total; a++, td++) {
if(td->tdi) MEM_freeN(td->tdi);
+ if (td->flag & TD_BEZTRIPLE) MEM_freeN(td->hdata);
}
MEM_freeN(t->data);
}
@@ -774,6 +755,12 @@ static void restoreElement(TransData *td) {
}
}
}
+
+ if (td->flag & TD_BEZTRIPLE) {
+ *(td->hdata->h1) = td->hdata->ih1;
+ *(td->hdata->h2) = td->hdata->ih2;
+ }
+
if(td->tdi) {
TransDataIpokey *tdi= td->tdi;
@@ -972,7 +959,7 @@ void calculateCenter(TransInfo *t)
/* voor panning from cameraview */
if(t->flag & T_OBJECT) {
- if( G.vd->camera==OBACT && G.vd->persp>1) {
+ if( G.vd->camera==OBACT && G.vd->persp==V3D_CAMOB) {
float axis[3];
/* persinv is nasty, use viewinv instead, always right */
VECCOPY(axis, t->viewinv[2]);
diff --git a/source/blender/src/transform_manipulator.c b/source/blender/src/transform_manipulator.c
index 8fcb329f2f9..601d516f26f 100644
--- a/source/blender/src/transform_manipulator.c
+++ b/source/blender/src/transform_manipulator.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
diff --git a/source/blender/src/transform_ndofinput.c b/source/blender/src/transform_ndofinput.c
index 0de4b026b52..b7362197423 100644
--- a/source/blender/src/transform_ndofinput.c
+++ b/source/blender/src/transform_ndofinput.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
*
* Contributor(s): Martin Poirier
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h> /* fabs */
diff --git a/source/blender/src/transform_numinput.c b/source/blender/src/transform_numinput.c
index 730d25545bd..9b811595a9a 100644
--- a/source/blender/src/transform_numinput.c
+++ b/source/blender/src/transform_numinput.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h> /* fabs */
diff --git a/source/blender/src/transform_orientations.c b/source/blender/src/transform_orientations.c
index 849644e3791..5c35a80c43f 100644
--- a/source/blender/src/transform_orientations.c
+++ b/source/blender/src/transform_orientations.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Martin Poirier
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/src/transform_snap.c b/source/blender/src/transform_snap.c
index 23bfaf048df..0e69e823d92 100644
--- a/source/blender/src/transform_snap.c
+++ b/source/blender/src/transform_snap.c
@@ -1,15 +1,12 @@
/**
* $Id:
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): Martin Poirier
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
@@ -231,7 +228,8 @@ void initSnapping(TransInfo *t)
{
resetSnapping(t);
- if (t->spacetype == SPACE_VIEW3D || t->spacetype == SPACE_IMAGE) { // Only 3D view or UV
+ if ((t->spacetype == SPACE_VIEW3D || t->spacetype == SPACE_IMAGE) && // Only 3D view or UV
+ (t->flag & T_CAMERA) == 0) { // Not with camera selected
setSnappingCallback(t);
/* Edit mode */
diff --git a/source/blender/src/unwrapper.c b/source/blender/src/unwrapper.c
index 061165042d8..fafae7458f1 100644
--- a/source/blender/src/unwrapper.c
+++ b/source/blender/src/unwrapper.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
@@ -288,7 +285,7 @@ void unwrap_lscm(short seamcut)
EditMesh *em = G.editMesh;
ParamHandle *handle;
short abf = G.scene->toolsettings->unwrapper == 1;
- short fillholes = G.scene->toolsettings->uvcalc_flag & 1;
+ short fillholes = G.scene->toolsettings->uvcalc_flag & UVCALC_FILLHOLES;
/* add uvs if there not here */
if (!EM_texFaceCheck()) {
@@ -298,6 +295,9 @@ void unwrap_lscm(short seamcut)
if (!EM_texFaceCheck())
return;
+ if (G.sima && G.sima->image) /* this is a bit of a kludge, but assume they want the image on their mesh when UVs are added */
+ image_changed(G.sima, G.sima->image);
+
/* select new UV's */
if ((G.sima==0 || G.sima->flag & SI_SYNC_UVSEL)==0) {
EditFace *efa;
@@ -315,6 +315,21 @@ void unwrap_lscm(short seamcut)
param_lscm_solve(handle);
param_lscm_end(handle);
+
+ /* scale before packing */
+ if ((G.scene->toolsettings->uvcalc_flag & UVCALC_NO_ASPECT_CORRECT)==0) {
+ EditFace *efa = EM_get_actFace(1);
+ if (efa) {
+ float aspx, aspy;
+ MTFace *tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
+ image_final_aspect(tface->tpage, &aspx, &aspy);
+
+ if (aspx!=aspy) {
+ param_scale(handle, 1.0, aspx/aspy);
+ }
+ }
+ }
+
param_pack(handle);
param_flush(handle);
@@ -337,7 +352,7 @@ void minimize_stretch_tface_uv(void)
double lasttime;
short doit = 1, escape = 0, val, blend = 0;
unsigned short event = 0;
- short fillholes = G.scene->toolsettings->uvcalc_flag & 1;
+ short fillholes = G.scene->toolsettings->uvcalc_flag & UVCALC_FILLHOLES;
if(!EM_texFaceCheck()) return;
@@ -471,7 +486,7 @@ void unwrap_lscm_live_begin(void)
{
EditMesh *em = G.editMesh;
short abf = G.scene->toolsettings->unwrapper == 1;
- short fillholes = G.scene->toolsettings->uvcalc_flag & 1;
+ short fillholes = G.scene->toolsettings->uvcalc_flag & UVCALC_FILLHOLES;
if(!EM_texFaceCheck()) return;
diff --git a/source/blender/src/usiblender.c b/source/blender/src/usiblender.c
index 7ed1c430431..36bb36e0642 100644
--- a/source/blender/src/usiblender.c
+++ b/source/blender/src/usiblender.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* placed up here because of crappy
@@ -475,6 +472,9 @@ static void init_userdef_file(void)
}
}
}
+ if ((G.main->versionfile < 245) || (G.main->versionfile == 245 && G.main->subversionfile < 16)) {
+ U.flag |= USER_ADD_VIEWALIGNED|USER_ADD_EDITMODE;
+ }
/* GL Texture Garbage Collection (variable abused above!) */
if (U.textimeout == 0) {
@@ -596,7 +596,7 @@ static void outliner_242_patch(void)
/* only here settings for fullscreen */
int BIF_read_homefile(int from_memory)
{
- char tstr[FILE_MAXDIR+FILE_MAXFILE], scestr[FILE_MAXDIR];
+ char tstr[FILE_MAXDIR+FILE_MAXFILE], scestr[FILE_MAX];
char *home= BLI_gethome();
int success;
struct TmpFont *tf;
@@ -617,7 +617,7 @@ int BIF_read_homefile(int from_memory)
G.relbase_valid = 0;
if (!from_memory) BLI_make_file_string(G.sce, tstr, home, ".B.blend");
- strcpy(scestr, G.sce); /* temporal store */
+ BLI_strncpy(scestr, G.sce, FILE_MAX); /* temporal store */
/* prevent loading no UI */
G.fileflags &= ~G_FILE_NO_UI;
@@ -913,7 +913,7 @@ void BIF_write_file(char *target)
if (BLO_write_file(di, writeflags, &err)) {
strcpy(G.sce, di);
G.relbase_valid = 1;
- strcpy(G.main->name, di); /* is guaranteed current file */
+ BLI_strncpy(G.main->name, di, FILE_MAX); /* is guaranteed current file */
mainwindow_set_filename_to_title(G.main->name);
diff --git a/source/blender/src/verse_common.c b/source/blender/src/verse_common.c
index d91c09dc2cd..1336151e3af 100644
--- a/source/blender/src/verse_common.c
+++ b/source/blender/src/verse_common.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/src/verse_image.c b/source/blender/src/verse_image.c
index 9e9b478980e..fe9e6137091 100644
--- a/source/blender/src/verse_image.c
+++ b/source/blender/src/verse_image.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/src/verse_mesh.c b/source/blender/src/verse_mesh.c
index d458e7f4c1c..f2769c0d7e6 100644
--- a/source/blender/src/verse_mesh.c
+++ b/source/blender/src/verse_mesh.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/src/verse_object.c b/source/blender/src/verse_object.c
index 107aae59845..e3c87eaf548 100644
--- a/source/blender/src/verse_object.c
+++ b/source/blender/src/verse_object.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +19,7 @@
*
* Contributor(s): Jiri Hnidek.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WITH_VERSE
diff --git a/source/blender/src/view.c b/source/blender/src/view.c
index 78d4fe5d958..683b709ca0c 100644
--- a/source/blender/src/view.c
+++ b/source/blender/src/view.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
@@ -643,7 +640,7 @@ void viewmoveNDOFfly(int mode)
// until the first draw and doesn't update the menu
// to reflect persp mode.
- G.vd->persp = 1;
+ G.vd->persp = V3D_PERSP;
// Correct the distance jump if G.vd->dist != 0
@@ -722,6 +719,7 @@ void viewmoveNDOFfly(int mode)
void viewmove(int mode)
{
+ static float lastofs[3] = {0,0,0};
Object *ob = OBACT;
float firstvec[3], newvec[3], dvec[3];
float reverse, oldquat[4], q1[4], si, phi, dist0;
@@ -783,13 +781,15 @@ void viewmove(int mode)
obofs[1]= -obofs[1];
obofs[2]= -obofs[2];
}
- else if (ob && (U.uiflag & USER_ORBIT_SELECTION)) {
+ else if (U.uiflag & USER_ORBIT_SELECTION) {
use_sel = 1;
VECCOPY(ofs, G.vd->ofs);
- /* If there's no selection, obofs is unmodified, so <0,0,0> */
- calculateTransformCenter(V3D_CENTROID, obofs);
+ /* If there's no selection, lastofs is unmodified and last value since static */
+ calculateTransformCenter(V3D_CENTROID, lastofs);
+
+ VECCOPY(obofs, lastofs);
VecMulf(obofs, -1.0f);
}
else
@@ -816,15 +816,15 @@ void viewmove(int mode)
if(G.vd->view!=0) scrarea_queue_headredraw(curarea); /*for button */
G.vd->view= 0;
}
- if(G.vd->persp==2 && mode!=1 && G.vd->camera) {
- G.vd->persp= 1;
+ if(G.vd->persp==V3D_CAMOB && mode!=1 && G.vd->camera) {
+ G.vd->persp= V3D_PERSP;
scrarea_do_windraw(curarea);
scrarea_queue_headredraw(curarea);
}
}
if(mode==0) { /* view rotate */
- if (U.uiflag & USER_AUTOPERSP) G.vd->persp= 1;
+ if (U.uiflag & USER_AUTOPERSP) G.vd->persp= V3D_PERSP;
if (U.flag & USER_TRACKBALL) mvalball[0]= mval[0];
mvalball[1]= mval[1];
@@ -924,7 +924,7 @@ void viewmove(int mode)
}
}
else if(mode==1) { /* translate */
- if(G.vd->persp==2) {
+ if(G.vd->persp==V3D_CAMOB) {
float max= (float)MAX2(curarea->winx, curarea->winy);
G.vd->camdx += (mvalo[0]-mval[0])/(max);
@@ -944,7 +944,7 @@ void viewmove(int mode)
/* use initial value (do not use mvalo (that is used to detect mouse moviments)) */
mvalo[0] = mvali[0];
mvalo[1] = mvali[1];
-
+
if(U.viewzoom==USER_ZOOM_CONT) {
// oldstyle zoom
zfac = 1.0+(float)(mvalo[0]-mval[0]+mvalo[1]-mval[1])/1000.0;
@@ -974,9 +974,9 @@ void viewmove(int mode)
/* these limits are in toets.c too */
if(G.vd->dist<0.001*G.vd->grid) G.vd->dist= 0.001*G.vd->grid;
if(G.vd->dist>10.0*G.vd->far) G.vd->dist=10.0*G.vd->far;
-
- if(G.vd->persp==0 || G.vd->persp==2) preview3d_event= 0;
}
+ if(G.vd->persp==V3D_ORTHO || G.vd->persp==V3D_CAMOB) preview3d_event= 0;
+
mvalo[0]= mval[0];
mvalo[1]= mval[1];
@@ -1062,14 +1062,10 @@ void view_zoom_mouseloc(float dfac, short *mouseloc)
void viewmoveNDOF(int mode)
{
- static double prevTime = 0.0;
-
- int i;
float fval[7];
float dvec[3];
float sbadjust = 1.0f;
float len;
- double now, frametime;
short use_sel = 0;
Object *ob = OBACT;
float m[3][3];
@@ -1139,7 +1135,7 @@ void viewmoveNDOF(int mode)
fval[6] = fval[6] / 1000000.0f;
// scale more if not in perspective mode
- if (G.vd->persp == 0) {
+ if (G.vd->persp == V3D_ORTHO) {
fval[0] = fval[0] * 0.05f;
fval[1] = fval[1] * 0.05f;
fval[2] = fval[2] * 0.05f;
@@ -1186,8 +1182,8 @@ void viewmoveNDOF(int mode)
*/
len = zsens * sbadjust * fval[2];
- if (G.vd->persp==2) {
- if(G.vd->persp==2) {
+ if (G.vd->persp==V3D_CAMOB) {
+ if(G.vd->persp==V3D_CAMOB) { /* This is stupid, please fix - TODO */
G.vd->camzoom+= 10.0f * -len;
}
if (G.vd->camzoom < minZoom) G.vd->camzoom = minZoom;
@@ -1301,10 +1297,10 @@ int get_view3d_viewplane(int winxi, int winyi, rctf *viewplane, float *clipsta,
/*
* Cant use this since we need the fac and x1 values set
- * if(G.vd->persp==2)
+ * if(G.vd->persp==V3D_CAMOB)
object_view_settings(G.vd->camera, &lens, &(*clipsta), &(*clipend));*/
- if(G.vd->persp==2) {
+ if(G.vd->persp==V3D_CAMOB) {
if(G.vd->camera) {
if(G.vd->camera->type==OB_LAMP ) {
Lamp *la;
@@ -1327,7 +1323,7 @@ int get_view3d_viewplane(int winxi, int winyi, rctf *viewplane, float *clipsta,
}
}
- if(G.vd->persp==0) {
+ if(G.vd->persp==V3D_ORTHO) {
if(winx>winy) x1= -G.vd->dist;
else x1= -winx*G.vd->dist/winy;
x2= -x1;
@@ -1342,7 +1338,7 @@ int get_view3d_viewplane(int winxi, int winyi, rctf *viewplane, float *clipsta,
}
else {
/* fac for zoom, also used for camdx */
- if(G.vd->persp==2) {
+ if(G.vd->persp==V3D_CAMOB) {
fac= (1.41421+( (float)G.vd->camzoom )/50.0);
fac*= fac;
}
@@ -1458,7 +1454,7 @@ void obmat_to_viewmat(Object *ob, short smooth)
Mat3CpyMat4(tmat, G.vd->viewmat);
if (smooth) {
float new_quat[4];
- if (G.vd->persp==2 && G.vd->camera) {
+ if (G.vd->persp==V3D_CAMOB && G.vd->camera) {
/* were from a camera view */
float orig_ofs[3];
@@ -1469,13 +1465,13 @@ void obmat_to_viewmat(Object *ob, short smooth)
/* Switch from camera view */
Mat3ToQuat(tmat, new_quat);
- G.vd->persp=1;
+ G.vd->persp=V3D_PERSP;
G.vd->dist= 0.0;
view_settings_from_ob(G.vd->camera, G.vd->ofs, NULL, NULL, &G.vd->lens);
smooth_view(G.vd, orig_ofs, new_quat, &orig_dist, &orig_lens);
- G.vd->persp=2; /* just to be polite, not needed */
+ G.vd->persp=V3D_CAMOB; /* just to be polite, not needed */
} else {
Mat3ToQuat(tmat, new_quat);
@@ -1489,7 +1485,7 @@ void obmat_to_viewmat(Object *ob, short smooth)
/* dont set windows active in in here, is used by renderwin too */
void setviewmatrixview3d()
{
- if(G.vd->persp>=2) { /* obs/camera */
+ if(G.vd->persp==V3D_CAMOB) { /* obs/camera */
if(G.vd->camera) {
where_is_object(G.vd->camera);
obmat_to_viewmat(G.vd->camera, 0);
@@ -1502,7 +1498,7 @@ void setviewmatrixview3d()
else {
QuatToMat4(G.vd->viewquat, G.vd->viewmat);
- if(G.vd->persp==1) G.vd->viewmat[3][2]-= G.vd->dist;
+ if(G.vd->persp==V3D_PERSP) G.vd->viewmat[3][2]-= G.vd->dist;
if(G.vd->ob_centre) {
Object *ob= G.vd->ob_centre;
float vec[3];
@@ -1761,7 +1757,7 @@ void initlocalview()
G.vd->dist*= size;
}
- if (G.vd->persp>1) G.vd->persp= 1;
+ if (G.vd->persp==V3D_CAMOB) G.vd->persp= V3D_PERSP;
if (G.vd->near> 0.1) G.vd->near= 0.1;
G.vd->cursor[0]= -G.vd->ofs[0];
@@ -1890,16 +1886,16 @@ void centerview() /* like a localview without local! */
G.vd->cursor[1]= -new_ofs[1];
G.vd->cursor[2]= -new_ofs[2];
- if (G.vd->persp==2 && G.vd->camera) {
+ if (G.vd->persp==V3D_CAMOB && G.vd->camera) {
float orig_lens= G.vd->lens;
- G.vd->persp=1;
+ G.vd->persp=V3D_PERSP;
G.vd->dist= 0.0;
view_settings_from_ob(G.vd->camera, G.vd->ofs, NULL, NULL, &G.vd->lens);
smooth_view(G.vd, new_ofs, NULL, &new_dist, &orig_lens);
} else {
- if(G.vd->persp>=2)
- G.vd->persp= 1;
+ if(G.vd->persp==V3D_CAMOB)
+ G.vd->persp= V3D_PERSP;
smooth_view(G.vd, new_ofs, NULL, &new_dist, NULL);
}
@@ -2014,17 +2010,17 @@ void view3d_home(int center)
new_dist*= size;
}
- if (G.vd->persp==2 && G.vd->camera) {
+ if (G.vd->persp==V3D_CAMOB && G.vd->camera) {
/* switch out of camera view */
float orig_lens= G.vd->lens;
- G.vd->persp=1;
+ G.vd->persp= V3D_PERSP;
G.vd->dist= 0.0;
view_settings_from_ob(G.vd->camera, G.vd->ofs, NULL, NULL, &G.vd->lens);
smooth_view(G.vd, new_ofs, NULL, &new_dist, &orig_lens);
} else {
- if(G.vd->persp>=2) G.vd->persp= 1;
+ if(G.vd->persp==V3D_CAMOB) G.vd->persp= V3D_PERSP;
smooth_view(G.vd, new_ofs, NULL, &new_dist, NULL);
}
scrarea_queue_winredraw(curarea);
@@ -2051,19 +2047,19 @@ void view3d_align_axis_to_vector(View3D *v3d, int axisidx, float vec[3])
v3d->view= 0;
- if (v3d->persp==2 && v3d->camera) {
+ if (v3d->persp==V3D_CAMOB && v3d->camera) {
/* switch out of camera view */
float orig_ofs[3];
float orig_dist= v3d->dist;
float orig_lens= v3d->lens;
VECCOPY(orig_ofs, v3d->ofs);
- G.vd->persp=1;
+ G.vd->persp= V3D_PERSP;
G.vd->dist= 0.0;
view_settings_from_ob(v3d->camera, v3d->ofs, NULL, NULL, &v3d->lens);
smooth_view(G.vd, orig_ofs, new_quat, &orig_dist, &orig_lens);
} else {
- if (v3d->persp>=2) v3d->persp= 1; /* switch out of camera mode */
+ if (v3d->persp==V3D_CAMOB) v3d->persp= V3D_PERSP; /* switch out of camera mode */
smooth_view(v3d, NULL, new_quat, NULL, NULL);
}
}
@@ -2238,7 +2234,7 @@ void view_settings_from_ob(Object *ob, float *ofs, float *quat, float *dist, flo
* */
void smooth_view_to_camera(View3D *v3d)
{
- if (!U.smooth_viewtx || !v3d->camera || G.vd->persp != 2) {
+ if (!U.smooth_viewtx || !v3d->camera || G.vd->persp != V3D_CAMOB) {
return;
} else {
Object *ob = v3d->camera;
@@ -2255,13 +2251,13 @@ void smooth_view_to_camera(View3D *v3d)
view_settings_from_ob(ob, new_ofs, new_quat, NULL, &new_lens);
- G.vd->persp=1;
+ G.vd->persp= V3D_PERSP;
smooth_view(v3d, new_ofs, new_quat, &new_dist, &new_lens);
VECCOPY(v3d->ofs, orig_ofs);
v3d->lens= orig_lens;
v3d->dist = orig_dist; /* restore the dist */
v3d->camera = ob;
- v3d->persp=2;
+ v3d->persp= V3D_CAMOB;
}
}
diff --git a/source/blender/src/vpaint.c b/source/blender/src/vpaint.c
index 63ab0616162..4e883caba55 100644
--- a/source/blender/src/vpaint.c
+++ b/source/blender/src/vpaint.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
@@ -1347,23 +1344,6 @@ void weight_paint(void)
copy_wpaint_prev(&Gwp, NULL, 0);
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
- /* this flag is event for softbody to refresh weightpaint values */
- if(ob->soft) ob->softflag |= OB_SB_REDO;
-
- /* same goes for cloth */
- if(modifiers_isClothEnabled(ob)) {
- ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
- if(clmd)
- {
- /* check if we use the edited vertex group at all */
- if((clmd->sim_parms->vgroup_mass==ob->actdef) ||
- (clmd->sim_parms->vgroup_struct==ob->actdef)||
- (clmd->sim_parms->vgroup_bend==ob->actdef))
- {
- clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_RESET;
- }
- }
- }
/* and particles too */
if(ob->particlesystem.first) {
diff --git a/source/blender/src/winlay.h b/source/blender/src/winlay.h
index 32479a34a2c..53a8c28317e 100644
--- a/source/blender/src/winlay.h
+++ b/source/blender/src/winlay.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/* Abstract window operations */
diff --git a/source/blender/src/writeavicodec.c b/source/blender/src/writeavicodec.c
index 6ee42d7807a..bb58699169a 100644
--- a/source/blender/src/writeavicodec.c
+++ b/source/blender/src/writeavicodec.c
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/src/writeimage.c b/source/blender/src/writeimage.c
index 50d69fcdc76..d7e40dabd43 100644
--- a/source/blender/src/writeimage.c
+++ b/source/blender/src/writeimage.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
diff --git a/source/blender/src/writemovie.c b/source/blender/src/writemovie.c
index 4be739dd5d1..83c3b64eabd 100644
--- a/source/blender/src/writemovie.c
+++ b/source/blender/src/writemovie.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
//#ifdef __sgi
diff --git a/source/blender/verify/BLO_sign_verify_Header.h b/source/blender/verify/BLO_sign_verify_Header.h
index d2290dc4ad7..4de7794bf0a 100644
--- a/source/blender/verify/BLO_sign_verify_Header.h
+++ b/source/blender/verify/BLO_sign_verify_Header.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/verify/BLO_signer_info.h b/source/blender/verify/BLO_signer_info.h
index d2e6b987147..55ffcf90554 100644
--- a/source/blender/verify/BLO_signer_info.h
+++ b/source/blender/verify/BLO_signer_info.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/blender/verify/BLO_verify.h b/source/blender/verify/BLO_verify.h
index 6396c4d6c73..4095c2d9eec 100644
--- a/source/blender/verify/BLO_verify.h
+++ b/source/blender/verify/BLO_verify.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BLO_VERIFY_H
diff --git a/source/blender/verify/Makefile b/source/blender/verify/Makefile
index 73c2c53ad9c..88ac835c505 100644
--- a/source/blender/verify/Makefile
+++ b/source/blender/verify/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/verify/intern/BLO_verify.c b/source/blender/verify/intern/BLO_verify.c
index 1091b91255f..1117d35564d 100644
--- a/source/blender/verify/intern/BLO_verify.c
+++ b/source/blender/verify/intern/BLO_verify.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* openssl verify wrapper library
*/
diff --git a/source/blender/verify/intern/Makefile b/source/blender/verify/intern/Makefile
index c05f035caf2..5f1cac41e28 100644
--- a/source/blender/verify/intern/Makefile
+++ b/source/blender/verify/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/blender/yafray/CMakeLists.txt b/source/blender/yafray/CMakeLists.txt
index d5486137799..897b7754166 100644
--- a/source/blender/yafray/CMakeLists.txt
+++ b/source/blender/yafray/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.cpp)
diff --git a/source/blender/yafray/Makefile b/source/blender/yafray/Makefile
index af64089623a..690ba441bf0 100644
--- a/source/blender/yafray/Makefile
+++ b/source/blender/yafray/Makefile
@@ -1,12 +1,9 @@
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/blender/yafray/intern/Makefile b/source/blender/yafray/intern/Makefile
index f7f6ccb559f..cf4779c2f96 100644
--- a/source/blender/yafray/intern/Makefile
+++ b/source/blender/yafray/intern/Makefile
@@ -1,12 +1,9 @@
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,7 +21,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index 2b566d77a29..ab6f7632636 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SETUP_LIBDIRS()
diff --git a/source/creator/Makefile b/source/creator/Makefile
index a7f2dfeecb6..8a0d20264ea 100644
--- a/source/creator/Makefile
+++ b/source/creator/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
LIBNAME = creator
diff --git a/source/creator/SConscript b/source/creator/SConscript
index 833b56eccd8..cac9e895a97 100644
--- a/source/creator/SConscript
+++ b/source/creator/SConscript
@@ -19,4 +19,7 @@ if env['WITH_BF_BINRELOC']==1:
incs += ' ../../extern/binreloc/include'
defs.append('WITH_BINRELOC')
+if env['WITH_BF_OPENEXR']==1:
+ defs.append('WITH_OPENEXR')
+
env.BlenderLib ( libname = 'blender_creator', sources = Split(sources), includes = Split(incs), defines = defs, libtype='core', priority = 1 )
diff --git a/source/creator/buildinfo.c b/source/creator/buildinfo.c
index 69d3b090086..e25caa34f46 100644
--- a/source/creator/buildinfo.c
+++ b/source/creator/buildinfo.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/creator/creator.c b/source/creator/creator.c
index b7a756949f1..e91705345c6 100644
--- a/source/creator/creator.c
+++ b/source/creator/creator.c
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdlib.h>
#include <string.h>
@@ -185,6 +182,10 @@ static void print_help(void)
printf (" -o <path>\tSet the render path and file name.\n");
printf (" Use // at the start of the path to\n");
printf (" render relative to the blend file.\n");
+ printf (" The # characters are replaced by the frame number, and used to define zero padding.\n");
+ printf (" ani_##_test.png becomes ani_01_test.png\n");
+ printf (" test-######.png becomes test-000001.png\n");
+ printf (" When the filename has no #, The suffix #### is added to the filename\n");
printf (" The frame number will be added at the end of the filename.\n");
printf (" eg: blender -b foobar.blend -o //render_ -F PNG -x 1 -a\n");
printf ("\nFormat options:\n");
@@ -226,6 +227,18 @@ static void print_help(void)
printf (" -v\t\tPrint Blender version and exit\n");
printf (" --\t\tEnds option processing. Following arguments are \n");
printf (" \t\t passed unchanged. Access via Python's sys.argv\n");
+ printf ("\nEnvironment Variables:\n");
+ printf (" $HOME\t\t\tStore files such as .blender/ .B.blend .Bfs .Blog here.\n");
+#ifdef WIN32
+ printf (" $TEMP\t\tStore temporary files here.\n");
+#else
+ printf (" $TMP or $TMPDIR\tStore temporary files here.\n");
+ printf (" $SDL_AUDIODRIVER\tLibSDL audio driver - alsa, esd, alsa, dma.\n");
+ printf (" $BF_TIFF_LIB\t\tUse an alternative libtiff.so for loading tiff image files.\n");
+#endif
+ printf (" $IMAGEEDITOR\t\tImage editor executable, launch with the IKey from the file selector.\n");
+ printf (" $WINEDITOR\t\tText editor executable, launch with the EKey from the file selector.\n");
+ printf (" $PYTHONHOME\t\tPath to the python directory, eg. /usr/lib/python.\n");
printf ("\nNote: Arguments must be separated by white space. eg:\n");
printf (" \"blender -ba test.blend\"\n");
printf (" ...will ignore the 'a'\n");
@@ -243,11 +256,21 @@ static void print_help(void)
double PIL_check_seconds_timer(void);
extern void winlay_get_screensize(int *width_r, int *height_r);
+static void main_init_screen( void )
+{
+ setscreen(G.curscreen);
+
+ if(G.main->scene.first==0) {
+ set_scene( add_scene("1") );
+ }
+
+ screenmain();
+}
+
int main(int argc, char **argv)
{
- int a, i, stax=0, stay=0, sizx, sizy;
+ int a, i, stax=0, stay=0, sizx, sizy, scr_init = 0;
SYS_SystemHandle syshandle;
- Scene *sce;
#if defined(WIN32) || defined (__linux__)
int audio = 1;
@@ -636,7 +659,14 @@ int main(int argc, char **argv)
break;
case 'P':
a++;
- if (a < argc) BPY_run_python_script (argv[a]);
+ if (a < argc) {
+ /* If we're not running in background mode, then give python a valid screen */
+ if ((G.background==0) && (scr_init==0)) {
+ main_init_screen();
+ scr_init = 1;
+ }
+ BPY_run_python_script (argv[a]);
+ }
else printf("\nError: you must specify a Python script after '-P '.\n");
break;
case 'o':
@@ -781,16 +811,11 @@ int main(int argc, char **argv)
/* actually incorrect, but works for now (ton) */
exit_usiblender();
}
-
- setscreen(G.curscreen);
-
- if(G.main->scene.first==0) {
- sce= add_scene("1");
- set_scene(sce);
+
+ if (scr_init==0) {
+ main_init_screen();
}
- screenmain();
-
return 0;
} /* end of int main(argc,argv) */
diff --git a/source/darwin/Makefile b/source/darwin/Makefile
index 85c2c02852f..4959fa428e9 100644
--- a/source/darwin/Makefile
+++ b/source/darwin/Makefile
@@ -1,15 +1,12 @@
#
# $Id: Makefile,v 1.7 2003/05/12 18:12:25 sgefant Exp $
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
include nan_definitions.mk
diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
index 0e0d8982527..200c04bbfd3 100644
--- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
+++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Blender's Ketsji startpoint
*/
@@ -36,6 +33,7 @@
#endif
#include <signal.h>
+#include <stdlib.h>
#ifdef WIN32
// don't show stl-warnings
@@ -160,15 +158,17 @@ extern "C" void StartKetsjiShell(struct ScrArea *area,
bool displaylists = (SYS_GetCommandLineInt(syshandle, "displaylists", 0) != 0);
bool usemat = false;
- #ifdef GL_ARB_multitexture
- if(bgl::RAS_EXT_support._ARB_multitexture && bgl::QueryVersion(1, 1)) {
- usemat = (SYS_GetCommandLineInt(syshandle, "blender_material", 0) != 0);
- int unitmax=0;
- glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&unitmax);
- bgl::max_texture_units = MAXTEX>unitmax?unitmax:MAXTEX;
- //std::cout << "using(" << bgl::max_texture_units << ") of(" << unitmax << ") texture units." << std::endl;
- } else {
- bgl::max_texture_units = 0;
+ #if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ if(bgl::RAS_EXT_support._ARB_multitexture && bgl::QueryVersion(1, 1)) {
+ usemat = (SYS_GetCommandLineInt(syshandle, "blender_material", 0) != 0);
+ int unitmax=0;
+ glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&unitmax);
+ bgl::max_texture_units = MAXTEX>unitmax?unitmax:MAXTEX;
+ //std::cout << "using(" << bgl::max_texture_units << ") of(" << unitmax << ") texture units." << std::endl;
+ } else {
+ bgl::max_texture_units = 0;
+ }
}
#endif
@@ -258,7 +258,7 @@ extern "C" void StartKetsjiShell(struct ScrArea *area,
exitrequested = KX_EXIT_REQUEST_NO_REQUEST;
if (bfd) BLO_blendfiledata_free(bfd);
- char basedpath[160];
+ char basedpath[240];
// base the actuator filename with respect
// to the original file working directory
if (exitstring != "")
@@ -271,7 +271,7 @@ extern "C" void StartKetsjiShell(struct ScrArea *area,
if (!bfd)
{
// just add "//" in front of it
- char temppath[162];
+ char temppath[242];
strcpy(temppath, "//");
strcat(temppath, basedpath);
@@ -321,10 +321,10 @@ extern "C" void StartKetsjiShell(struct ScrArea *area,
if (exitrequested != KX_EXIT_REQUEST_QUIT_GAME)
{
- if (v3d->persp != 2)
+ if (v3d->persp != V3D_CAMOB)
{
ketsjiengine->EnableCameraOverride(startscenename);
- ketsjiengine->SetCameraOverrideUseOrtho((v3d->persp == 0));
+ ketsjiengine->SetCameraOverrideUseOrtho((v3d->persp == V3D_ORTHO));
ketsjiengine->SetCameraOverrideProjectionMatrix(projmat);
ketsjiengine->SetCameraOverrideViewMatrix(viewmat);
}
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
index 03f78c4b145..5f37de24ed6 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BIF_scrarea.h"
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
index 23258f5ea81..0b3519efdbd 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_BLENDERCANVAS
#define __KX_BLENDERCANVAS
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
index 413b16bc300..7c9dbcdaab2 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_BlenderGL.h"
@@ -186,28 +183,30 @@ void BL_RenderText(int mode,const char* textstr,int textlen,struct MTFace* tface
void DisableForText()
{
- if(glIsEnabled(GL_BLEND))
- glDisable(GL_BLEND);
+ if(glIsEnabled(GL_BLEND)) glDisable(GL_BLEND);
if(glIsEnabled(GL_LIGHTING)) {
glDisable(GL_LIGHTING);
glDisable(GL_COLOR_MATERIAL);
}
-#ifdef GL_ARB_multitexture
- for(int i=0; i<MAXTEX; i++) {
- if(bgl::RAS_EXT_support._ARB_multitexture)
- bgl::blActiveTextureARB(GL_TEXTURE0_ARB+i);
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ for(int i=0; i<MAXTEX; i++) {
+ if(bgl::RAS_EXT_support._ARB_multitexture)
+ bgl::blActiveTextureARB(GL_TEXTURE0_ARB+i);
#ifdef GL_ARB_texture_cube_map
- if(bgl::RAS_EXT_support._ARB_texture_cube_map)
- if(glIsEnabled(GL_TEXTURE_CUBE_MAP_ARB))
- glDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ if(bgl::RAS_EXT_support._ARB_texture_cube_map)
+ if(glIsEnabled(GL_TEXTURE_CUBE_MAP_ARB))
+ glDisable(GL_TEXTURE_CUBE_MAP_ARB);
#endif
- if(glIsEnabled(GL_TEXTURE_2D))
- glDisable(GL_TEXTURE_2D);
+ if(glIsEnabled(GL_TEXTURE_2D)) glDisable(GL_TEXTURE_2D);
+ }
+ } else {
+ if(glIsEnabled(GL_TEXTURE_2D)) glDisable(GL_TEXTURE_2D);
}
+
#else//GL_ARB_multitexture
- if(glIsEnabled(GL_TEXTURE_2D))
- glDisable(GL_TEXTURE_2D);
+ if(glIsEnabled(GL_TEXTURE_2D)) glDisable(GL_TEXTURE_2D);
#endif
}
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderGL.h b/source/gameengine/BlenderRoutines/KX_BlenderGL.h
index b0f97f1a76c..c8e0d47afb6 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderGL.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderGL.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __BLENDERGL
#define __BLENDERGL
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp
index 1423418924c..ef7c6172529 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_BlenderInputDevice.h"
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h
index ed4eb65a769..8e5d508f8cb 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_BLENDERINPUTDEVICE
#define __KX_BLENDERINPUTDEVICE
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
index c6ae91ae282..4b794380610 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
index 932751c37eb..5bf37acf236 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_BLENDERKEYBOARDDEVICE
#define __KX_BLENDERKEYBOARDDEVICE
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp b/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp
index 92e0a6113bb..b2e965a35f6 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h b/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h
index a4a1d27b2ee..2f9e956a1d8 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_BLENDERMOUSEDEVICE
#define __KX_BLENDERMOUSEDEVICE
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.cpp b/source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.cpp
index cdb6ce5b829..d173b1c66d9 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_BlenderPolyMaterial.h"
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.h b/source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.h
index 1dab77cb901..35823b2125b 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderPolyMaterial.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_BLENDERPOLYMATERIAL
#define __KX_BLENDERPOLYMATERIAL
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
index 7e32ade37f2..6b0df44cb16 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_BlenderRenderTools.h"
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
index 3c2d4ac8e35..662f5bd9af1 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_BLENDERRENDERTOOLS
#define __KX_BLENDERRENDERTOOLS
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp b/source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp
index 290f1d71777..4066bbc3db1 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_ISystem.h"
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderSystem.h b/source/gameengine/BlenderRoutines/KX_BlenderSystem.h
index 829668b4192..d99bb9b14a8 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderSystem.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderSystem.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_BLENDERSYSTEM
#define __KX_BLENDERSYSTEM
diff --git a/source/gameengine/BlenderRoutines/Makefile b/source/gameengine/BlenderRoutines/Makefile
index f0097e40807..2339b840679 100644
--- a/source/gameengine/BlenderRoutines/Makefile
+++ b/source/gameengine/BlenderRoutines/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
@@ -73,5 +70,9 @@ ifeq ($(OS),windows)
CPPFLAGS += -I../../blender
endif
+ifeq ($(WITH_BF_GLEXT),true)
+ CPPFLAGS += -DWITH_GLEXT
+endif
+
CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION)
diff --git a/source/gameengine/BlenderRoutines/SConscript b/source/gameengine/BlenderRoutines/SConscript
index 984b700abd6..95e1da2d470 100644
--- a/source/gameengine/BlenderRoutines/SConscript
+++ b/source/gameengine/BlenderRoutines/SConscript
@@ -25,4 +25,7 @@ cxxflags = []
if env['OURPLATFORM']=='win32-vc':
cxxflags.append ('/GR')
+if env['WITH_BF_GLEXT'] == 1:
+ env['CPPFLAGS'].append('-DWITH_GLEXT')
+
env.BlenderLib ( 'bf_bloutines', sources, Split(incs), [], libtype=['game', 'game2', 'player'], priority=[0, 0, 55] , compileflags=cxxflags)
diff --git a/source/gameengine/CMakeLists.txt b/source/gameengine/CMakeLists.txt
index b42d1d70e43..93de588ba00 100644
--- a/source/gameengine/CMakeLists.txt
+++ b/source/gameengine/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SUBDIRS(
BlenderRoutines
diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp
index b38599685af..1055c8771ef 100644
--- a/source/gameengine/Converter/BL_ActionActuator.cpp
+++ b/source/gameengine/Converter/BL_ActionActuator.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#if defined (__sgi)
diff --git a/source/gameengine/Converter/BL_ActionActuator.h b/source/gameengine/Converter/BL_ActionActuator.h
index f96855408b7..62edcc7fad7 100644
--- a/source/gameengine/Converter/BL_ActionActuator.h
+++ b/source/gameengine/Converter/BL_ActionActuator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BL_ACTIONACTUATOR
diff --git a/source/gameengine/Converter/BL_ArmatureObject.cpp b/source/gameengine/Converter/BL_ArmatureObject.cpp
index 4bf13a09fb4..ff9c6a75aa9 100644
--- a/source/gameengine/Converter/BL_ArmatureObject.cpp
+++ b/source/gameengine/Converter/BL_ArmatureObject.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BL_ArmatureObject.h"
diff --git a/source/gameengine/Converter/BL_ArmatureObject.h b/source/gameengine/Converter/BL_ArmatureObject.h
index aafc8271dd6..752bd5eb365 100644
--- a/source/gameengine/Converter/BL_ArmatureObject.h
+++ b/source/gameengine/Converter/BL_ArmatureObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BL_ARMATUREOBJECT
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
index 8ae287a494c..3e83ed20840 100644
--- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp
+++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Convert blender data to ketsji
*/
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.h b/source/gameengine/Converter/BL_BlenderDataConversion.h
index 56dc5bfa8b2..48f08fb357b 100644
--- a/source/gameengine/Converter/BL_BlenderDataConversion.h
+++ b/source/gameengine/Converter/BL_BlenderDataConversion.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __BLENDER_CONVERT
#define __BLENDER_CONVERT
diff --git a/source/gameengine/Converter/BL_DeformableGameObject.cpp b/source/gameengine/Converter/BL_DeformableGameObject.cpp
index a17ca6a7c19..68a2e41ca47 100644
--- a/source/gameengine/Converter/BL_DeformableGameObject.cpp
+++ b/source/gameengine/Converter/BL_DeformableGameObject.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BL_DeformableGameObject.h"
diff --git a/source/gameengine/Converter/BL_DeformableGameObject.h b/source/gameengine/Converter/BL_DeformableGameObject.h
index 720a152575a..d943cc7388a 100644
--- a/source/gameengine/Converter/BL_DeformableGameObject.h
+++ b/source/gameengine/Converter/BL_DeformableGameObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BL_DEFORMABLEGAMEOBJECT
diff --git a/source/gameengine/Converter/BL_MeshDeformer.cpp b/source/gameengine/Converter/BL_MeshDeformer.cpp
index 4555e81254a..ab31179b047 100644
--- a/source/gameengine/Converter/BL_MeshDeformer.cpp
+++ b/source/gameengine/Converter/BL_MeshDeformer.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Simple deformation controller that restores a mesh to its rest position
*/
diff --git a/source/gameengine/Converter/BL_MeshDeformer.h b/source/gameengine/Converter/BL_MeshDeformer.h
index adeffd632e7..a6be11d786e 100644
--- a/source/gameengine/Converter/BL_MeshDeformer.h
+++ b/source/gameengine/Converter/BL_MeshDeformer.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BL_MESHDEFORMER
diff --git a/source/gameengine/Converter/BL_SkinDeformer.cpp b/source/gameengine/Converter/BL_SkinDeformer.cpp
index e9ec6f9116b..14faa3317d0 100644
--- a/source/gameengine/Converter/BL_SkinDeformer.cpp
+++ b/source/gameengine/Converter/BL_SkinDeformer.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WIN32
@@ -60,11 +57,35 @@ extern "C"{
#define __NLA_DEFNORMALS
//#undef __NLA_DEFNORMALS
+
+BL_SkinDeformer::BL_SkinDeformer(
+ struct Object *bmeshobj_old, // Blender object that owns the new mesh
+ struct Object *bmeshobj_new, // Blender object that owns the original mesh
+ class BL_SkinMeshObject *mesh,
+ bool release_object,
+ BL_ArmatureObject* arma) :
+ BL_MeshDeformer(bmeshobj_old, mesh),
+ m_armobj(arma),
+ m_lastUpdate(-1),
+ m_defbase(&bmeshobj_old->defbase),
+ m_releaseobject(release_object)
+ {
+ Mat4CpyMat4(m_obmat, bmeshobj_old->obmat);
+ m_restoremat = true;
+ // this is needed to ensure correct deformation of mesh:
+ // the deformation is done with Blender's armature_deform_verts() function
+ // that takes an object as parameter and not a mesh. The object matrice is used
+ // in the calculation, so we must force the same matrice to simulate a pure replacement of mesh
+ Mat4CpyMat4(bmeshobj_old->obmat, bmeshobj_new->obmat);
+ }
+
BL_SkinDeformer::~BL_SkinDeformer()
{
if(m_releaseobject && m_armobj)
m_armobj->Release();
-};
+ if (m_restoremat)
+ Mat4CpyMat4(m_objMesh->obmat, m_obmat);
+}
/* XXX note, this __NLA_OLDDEFORM define seems to be obsolete */
diff --git a/source/gameengine/Converter/BL_SkinDeformer.h b/source/gameengine/Converter/BL_SkinDeformer.h
index 74adc6c2943..e130dc15dbf 100644
--- a/source/gameengine/Converter/BL_SkinDeformer.h
+++ b/source/gameengine/Converter/BL_SkinDeformer.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef BL_SKINDEFORMER
@@ -72,7 +69,8 @@ public:
m_armobj(arma),
m_lastUpdate(-1),
m_defbase(&bmeshobj->defbase),
- m_releaseobject(false)
+ m_releaseobject(false),
+ m_restoremat(false)
{
};
@@ -81,15 +79,7 @@ public:
struct Object *bmeshobj_new,
class BL_SkinMeshObject *mesh,
bool release_object,
- BL_ArmatureObject* arma = NULL)
- : //
- BL_MeshDeformer(bmeshobj_old, mesh),
- m_armobj(arma),
- m_lastUpdate(-1),
- m_defbase(&bmeshobj_old->defbase),
- m_releaseobject(release_object)
- {
- };
+ BL_ArmatureObject* arma = NULL);
virtual void ProcessReplica();
virtual RAS_Deformer *GetReplica();
@@ -102,6 +92,8 @@ protected:
float m_time;
double m_lastUpdate;
ListBase* m_defbase;
+ float m_obmat[4][4]; // the original object matrice in case of dynamic mesh replacement
+ bool m_restoremat;
bool m_releaseobject;
};
diff --git a/source/gameengine/Converter/BL_SkinMeshObject.cpp b/source/gameengine/Converter/BL_SkinMeshObject.cpp
index 364fd76776f..8bc78c7f757 100644
--- a/source/gameengine/Converter/BL_SkinMeshObject.cpp
+++ b/source/gameengine/Converter/BL_SkinMeshObject.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Deformer that supports armature skinning
*/
diff --git a/source/gameengine/Converter/BL_SkinMeshObject.h b/source/gameengine/Converter/BL_SkinMeshObject.h
index 1d02dd1ceb4..0ca7428c0f0 100644
--- a/source/gameengine/Converter/BL_SkinMeshObject.h
+++ b/source/gameengine/Converter/BL_SkinMeshObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __BL_SKINMESHOBJECT
diff --git a/source/gameengine/Converter/BlenderWorldInfo.cpp b/source/gameengine/Converter/BlenderWorldInfo.cpp
index eb03a3c2a38..bb9bb161f32 100644
--- a/source/gameengine/Converter/BlenderWorldInfo.cpp
+++ b/source/gameengine/Converter/BlenderWorldInfo.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <stdio.h> // printf()
diff --git a/source/gameengine/Converter/BlenderWorldInfo.h b/source/gameengine/Converter/BlenderWorldInfo.h
index 35e47bbf9b8..fd6bb0212b7 100644
--- a/source/gameengine/Converter/BlenderWorldInfo.h
+++ b/source/gameengine/Converter/BlenderWorldInfo.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __BLENDERWORLDINFO_H
#define __BLENDERWORLDINFO_H
diff --git a/source/gameengine/Converter/CMakeLists.txt b/source/gameengine/Converter/CMakeLists.txt
index db516b20df2..adb7304b10e 100644
--- a/source/gameengine/Converter/CMakeLists.txt
+++ b/source/gameengine/Converter/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.cpp)
diff --git a/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp b/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
index 8722f90f456..f58d60b026a 100644
--- a/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
+++ b/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_BlenderScalarInterpolator.h"
diff --git a/source/gameengine/Converter/KX_BlenderScalarInterpolator.h b/source/gameengine/Converter/KX_BlenderScalarInterpolator.h
index fd9cfcb04ce..94d15aff6be 100644
--- a/source/gameengine/Converter/KX_BlenderScalarInterpolator.h
+++ b/source/gameengine/Converter/KX_BlenderScalarInterpolator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_SCALARINTERPOLATOR_H
#define __KX_SCALARINTERPOLATOR_H
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index 7fbec8679fb..8640e69102b 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WIN32
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.h b/source/gameengine/Converter/KX_BlenderSceneConverter.h
index 8ac5386d442..a45d7396875 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.h
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_BLENDERSCENECONVERTER_H
#define __KX_BLENDERSCENECONVERTER_H
diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp
index f76a0fb82e5..a575415ab05 100644
--- a/source/gameengine/Converter/KX_ConvertActuators.cpp
+++ b/source/gameengine/Converter/KX_ConvertActuators.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Convert Blender actuators for use in the GameEngine
*/
@@ -49,7 +46,6 @@
#include "SCA_RandomActuator.h"
#include "SCA_2DFilterActuator.h"
-
// Ketsji specific logicbricks
#include "KX_SceneActuator.h"
#include "KX_IpoActuator.h"
@@ -64,6 +60,7 @@
#include "KX_SCA_AddObjectActuator.h"
#include "KX_SCA_EndObjectActuator.h"
#include "KX_SCA_ReplaceMeshActuator.h"
+#include "KX_ParentActuator.h"
#include "KX_Scene.h"
#include "KX_KetsjiEngine.h"
@@ -684,15 +681,11 @@ void BL_ConvertActuators(char* maggiename,
break;
}
case ACT_SCENE_CAMERA:
+ mode = KX_SceneActuator::KX_SCENE_SET_CAMERA;
if (sceneact->camera)
{
- mode = KX_SceneActuator::KX_SCENE_SET_CAMERA;
cam = (KX_Camera*) converter->FindGameObject(sceneact->camera);
}
- else
- {
- // TODO:warn user
- }
break;
case ACT_SCENE_RESTART:
{
@@ -917,6 +910,32 @@ void BL_ConvertActuators(char* maggiename,
}
break;
+ case ACT_PARENT:
+ {
+ bParentActuator *parAct = (bParentActuator *) bact->data;
+ int mode = KX_ParentActuator::KX_PARENT_NODEF;
+ KX_GameObject *tmpgob;
+
+ switch(parAct->type)
+ {
+ case ACT_PARENT_SET:
+ mode = KX_ParentActuator::KX_PARENT_SET;
+ tmpgob = converter->FindGameObject(parAct->ob);
+ break;
+ case ACT_PARENT_REMOVE:
+ mode = KX_ParentActuator::KX_PARENT_REMOVE;
+ tmpgob = NULL;
+ break;
+ }
+
+ KX_ParentActuator *tmpparact
+ = new KX_ParentActuator(gameobj,
+ mode,
+ tmpgob);
+ baseact = tmpparact;
+ break;
+ }
+
default:
; /* generate some error */
}
diff --git a/source/gameengine/Converter/KX_ConvertActuators.h b/source/gameengine/Converter/KX_ConvertActuators.h
index 1e6e96e2e7c..03ea0db99b9 100644
--- a/source/gameengine/Converter/KX_ConvertActuators.h
+++ b/source/gameengine/Converter/KX_ConvertActuators.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_CONVERTACTUATORS_H
#define __KX_CONVERTACTUATORS_H
diff --git a/source/gameengine/Converter/KX_ConvertControllers.cpp b/source/gameengine/Converter/KX_ConvertControllers.cpp
index b277af7dbc2..a26cfa95b6d 100644
--- a/source/gameengine/Converter/KX_ConvertControllers.cpp
+++ b/source/gameengine/Converter/KX_ConvertControllers.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "MEM_guardedalloc.h"
diff --git a/source/gameengine/Converter/KX_ConvertControllers.h b/source/gameengine/Converter/KX_ConvertControllers.h
index 3c2b45bddd0..3e8a87fc90b 100644
--- a/source/gameengine/Converter/KX_ConvertControllers.h
+++ b/source/gameengine/Converter/KX_ConvertControllers.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_CONVERTCONTROLLERS_H
#define __KX_CONVERTCONTROLLERS_H
diff --git a/source/gameengine/Converter/KX_ConvertProperties.cpp b/source/gameengine/Converter/KX_ConvertProperties.cpp
index ebfb45066b7..aae8752671f 100644
--- a/source/gameengine/Converter/KX_ConvertProperties.cpp
+++ b/source/gameengine/Converter/KX_ConvertProperties.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_ConvertProperties.h"
diff --git a/source/gameengine/Converter/KX_ConvertProperties.h b/source/gameengine/Converter/KX_ConvertProperties.h
index eb44f7b7d35..327284d63ce 100644
--- a/source/gameengine/Converter/KX_ConvertProperties.h
+++ b/source/gameengine/Converter/KX_ConvertProperties.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_CONVERTPROPERTIES
#define __KX_CONVERTPROPERTIES
diff --git a/source/gameengine/Converter/KX_ConvertSensors.cpp b/source/gameengine/Converter/KX_ConvertSensors.cpp
index 61759ddf654..80fa3838d60 100644
--- a/source/gameengine/Converter/KX_ConvertSensors.cpp
+++ b/source/gameengine/Converter/KX_ConvertSensors.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Conversion of Blender data blocks to KX sensor system
*/
diff --git a/source/gameengine/Converter/KX_ConvertSensors.h b/source/gameengine/Converter/KX_ConvertSensors.h
index 9878d4a7a09..73da51f47f0 100644
--- a/source/gameengine/Converter/KX_ConvertSensors.h
+++ b/source/gameengine/Converter/KX_ConvertSensors.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_CONVERTSENSOR_H
#define __KX_CONVERTSENSOR_H
diff --git a/source/gameengine/Converter/KX_IpoConvert.cpp b/source/gameengine/Converter/KX_IpoConvert.cpp
index 2cf29e9dd62..75ca59d01e7 100644
--- a/source/gameengine/Converter/KX_IpoConvert.cpp
+++ b/source/gameengine/Converter/KX_IpoConvert.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Converter/KX_IpoConvert.h b/source/gameengine/Converter/KX_IpoConvert.h
index e901ae9b3e7..afcb1b22821 100644
--- a/source/gameengine/Converter/KX_IpoConvert.h
+++ b/source/gameengine/Converter/KX_IpoConvert.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_IPOCONVERT_H
#define __KX_IPOCONVERT_H
diff --git a/source/gameengine/Converter/Makefile b/source/gameengine/Converter/Makefile
index 4ba34952d40..f312fc13221 100644
--- a/source/gameengine/Converter/Makefile
+++ b/source/gameengine/Converter/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Expressions/CMakeLists.txt b/source/gameengine/Expressions/CMakeLists.txt
index cc99be1b9ee..6b2a835d648 100644
--- a/source/gameengine/Expressions/CMakeLists.txt
+++ b/source/gameengine/Expressions/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.cpp)
diff --git a/source/gameengine/Expressions/EXP_C-Api.cpp b/source/gameengine/Expressions/EXP_C-Api.cpp
index c5576e99e7d..016d4e6fba9 100644
--- a/source/gameengine/Expressions/EXP_C-Api.cpp
+++ b/source/gameengine/Expressions/EXP_C-Api.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "EXP_C-Api.h"
#include "IntValue.h"
diff --git a/source/gameengine/Expressions/EXP_C-Api.h b/source/gameengine/Expressions/EXP_C-Api.h
index e9ee526cd6e..d259a8d6d99 100644
--- a/source/gameengine/Expressions/EXP_C-Api.h
+++ b/source/gameengine/Expressions/EXP_C-Api.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __EXPRESSION_INCLUDE
#define __EXPRESSION_INCLUDE
diff --git a/source/gameengine/Expressions/IdentifierExpr.cpp b/source/gameengine/Expressions/IdentifierExpr.cpp
index cd7a9b0f186..398e1b2aa0e 100644
--- a/source/gameengine/Expressions/IdentifierExpr.cpp
+++ b/source/gameengine/Expressions/IdentifierExpr.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "IdentifierExpr.h"
diff --git a/source/gameengine/Expressions/IdentifierExpr.h b/source/gameengine/Expressions/IdentifierExpr.h
index dbffe7c02bc..b307228c8b9 100644
--- a/source/gameengine/Expressions/IdentifierExpr.h
+++ b/source/gameengine/Expressions/IdentifierExpr.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __IDENTIFIER_EXPR
#define __IDENTIFIER_EXPR
diff --git a/source/gameengine/Expressions/KX_HashedPtr.cpp b/source/gameengine/Expressions/KX_HashedPtr.cpp
index b1eeff20766..b75e15bd375 100644
--- a/source/gameengine/Expressions/KX_HashedPtr.cpp
+++ b/source/gameengine/Expressions/KX_HashedPtr.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_HashedPtr.h"
diff --git a/source/gameengine/Expressions/KX_HashedPtr.h b/source/gameengine/Expressions/KX_HashedPtr.h
index 06e86854d82..b11efb99d68 100644
--- a/source/gameengine/Expressions/KX_HashedPtr.h
+++ b/source/gameengine/Expressions/KX_HashedPtr.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_HASHEDPTR
#define __KX_HASHEDPTR
diff --git a/source/gameengine/Expressions/KX_Python.h b/source/gameengine/Expressions/KX_Python.h
index 76c104390db..b8006fdf0ed 100644
--- a/source/gameengine/Expressions/KX_Python.h
+++ b/source/gameengine/Expressions/KX_Python.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_PYTHON_H
#define KX_PYTHON_H
diff --git a/source/gameengine/Expressions/KX_Python_dynamic.h b/source/gameengine/Expressions/KX_Python_dynamic.h
index 6ba31796e4f..eb435bdf1c3 100644
--- a/source/gameengine/Expressions/KX_Python_dynamic.h
+++ b/source/gameengine/Expressions/KX_Python_dynamic.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_PYTHON_H
#define KX_PYTHON_H
diff --git a/source/gameengine/Expressions/KX_Python_static.h b/source/gameengine/Expressions/KX_Python_static.h
index 1a9682c8ef4..f4f31f9b058 100644
--- a/source/gameengine/Expressions/KX_Python_static.h
+++ b/source/gameengine/Expressions/KX_Python_static.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_PYTHON_H
#define KX_PYTHON_H
diff --git a/source/gameengine/Expressions/Makefile b/source/gameengine/Expressions/Makefile
index 18dca9a1c68..e9c02eedcf2 100644
--- a/source/gameengine/Expressions/Makefile
+++ b/source/gameengine/Expressions/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp
index 1b343088446..aabcd6cb71d 100644
--- a/source/gameengine/Expressions/PyObjectPlus.cpp
+++ b/source/gameengine/Expressions/PyObjectPlus.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h
index 026a58cdbca..de89ed9b5c8 100644
--- a/source/gameengine/Expressions/PyObjectPlus.h
+++ b/source/gameengine/Expressions/PyObjectPlus.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef NO_EXP_PYTHON_EMBEDDING
diff --git a/source/gameengine/Expressions/VoidValue.h b/source/gameengine/Expressions/VoidValue.h
index 53fbd8b4f01..4bde0254787 100644
--- a/source/gameengine/Expressions/VoidValue.h
+++ b/source/gameengine/Expressions/VoidValue.h
@@ -2,15 +2,12 @@
* VoidValue.h: interface for the CVoidValue class.
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __VOIDVALUE_H__
#define __VOIDVALUE_H__
diff --git a/source/gameengine/GameLogic/CMakeLists.txt b/source/gameengine/GameLogic/CMakeLists.txt
index 4f40fa22b9e..a7519196d50 100644
--- a/source/gameengine/GameLogic/CMakeLists.txt
+++ b/source/gameengine/GameLogic/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.cpp Joystick/*.cpp)
diff --git a/source/gameengine/GameLogic/Joystick/Makefile b/source/gameengine/GameLogic/Joystick/Makefile
index 4de5f168ceb..7016f1ed16f 100644
--- a/source/gameengine/GameLogic/Joystick/Makefile
+++ b/source/gameengine/GameLogic/Joystick/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
index 071301514fb..18d7b6ffcd0 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
+++ b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): snailrose.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <SDL.h>
@@ -55,6 +52,34 @@ SCA_Joystick::~SCA_Joystick()
delete m_private;
}
+SCA_Joystick *SCA_Joystick::m_instance = NULL;
+int SCA_Joystick::m_refCount = 0;
+
+SCA_Joystick *SCA_Joystick::GetInstance()
+{
+ if (m_instance == 0)
+ {
+ m_instance = new SCA_Joystick();
+ m_instance->CreateJoystickDevice();
+ m_refCount = 1;
+ }
+ else
+ {
+ m_refCount++;
+ }
+ return m_instance;
+}
+
+void SCA_Joystick::ReleaseInstance()
+{
+ if (--m_refCount == 0)
+ {
+ DestroyJoystickDevice();
+ delete m_instance;
+ m_instance = NULL;
+ }
+}
+
bool SCA_Joystick::CreateJoystickDevice()
{
diff --git a/source/gameengine/GameLogic/Joystick/SCA_Joystick.h b/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
index 2d2a713fe00..1e853070b09 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
+++ b/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
@@ -1,6 +1,6 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -10,13 +10,10 @@
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
+ * of the License, or (at your option) any later version.
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
*
@@ -52,7 +49,7 @@
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
@@ -71,12 +68,16 @@
/*
* Basic Joystick class
-
+ * I will make this class a singleton because there should be only one joystick
+ * even if there are more than one scene using it and count how many scene are using it.
+ * The underlying joystick should only be removed when the last scene is removed
*/
class SCA_Joystick
{
+ static SCA_Joystick *m_instance;
+ static int m_refCount;
class PrivateData;
@@ -258,20 +259,22 @@ class SCA_Joystick
int pGetHat(int direction);
-
-
-public:
-
SCA_Joystick();
~SCA_Joystick();
-
-
bool CreateJoystickDevice(void);
void DestroyJoystickDevice(void);
+
+public:
+
+ static SCA_Joystick *GetInstance();
+
+ void ReleaseInstance();
+
+
void HandleEvents();
/*
diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
index c4ddd5b9c40..15a421188b9 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
+++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): snailrose.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _SCA_JOYSTICKDEFINES_H_
#define _SCA_JOYSTICKDEFINES_H_
diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp b/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
index 5fd8510d566..ab523470e21 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
+++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): snailrose.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <SDL.h>
#include "SCA_Joystick.h"
diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h b/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h
index 08435749cfe..23fad3cd55d 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h
+++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): snailrose.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SCA_JOYSTICKPRIVATE_H__
diff --git a/source/gameengine/GameLogic/Makefile b/source/gameengine/GameLogic/Makefile
index aea1e463146..b3eae5d67dc 100644
--- a/source/gameengine/GameLogic/Makefile
+++ b/source/gameengine/GameLogic/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/GameLogic/SCA_ANDController.cpp b/source/gameengine/GameLogic/SCA_ANDController.cpp
index 0daba011c71..cfc2d25e0ae 100644
--- a/source/gameengine/GameLogic/SCA_ANDController.cpp
+++ b/source/gameengine/GameLogic/SCA_ANDController.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_ANDController.h"
diff --git a/source/gameengine/GameLogic/SCA_ANDController.h b/source/gameengine/GameLogic/SCA_ANDController.h
index d32bfd2aa48..376f4a9a876 100644
--- a/source/gameengine/GameLogic/SCA_ANDController.h
+++ b/source/gameengine/GameLogic/SCA_ANDController.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ANDCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp b/source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp
index c4b5b8197a7..ab3bc2cc4ee 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_AlwaysEventManager.h"
diff --git a/source/gameengine/GameLogic/SCA_AlwaysEventManager.h b/source/gameengine/GameLogic/SCA_AlwaysEventManager.h
index bffd21da74c..28c71512875 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysEventManager.h
+++ b/source/gameengine/GameLogic/SCA_AlwaysEventManager.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ALWAYSEVENTMGR
#define __KX_ALWAYSEVENTMGR
diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
index a0bb7311eb9..67df5d091ab 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.h b/source/gameengine/GameLogic/SCA_AlwaysSensor.h
index 456516fa989..474ed025432 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysSensor.h
+++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ALWAYSSENSOR
diff --git a/source/gameengine/GameLogic/SCA_EventManager.cpp b/source/gameengine/GameLogic/SCA_EventManager.cpp
index 9c39b332d40..1ca88182ddc 100644
--- a/source/gameengine/GameLogic/SCA_EventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_EventManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <assert.h>
diff --git a/source/gameengine/GameLogic/SCA_EventManager.h b/source/gameengine/GameLogic/SCA_EventManager.h
index e15e19b239b..89731497f6f 100644
--- a/source/gameengine/GameLogic/SCA_EventManager.h
+++ b/source/gameengine/GameLogic/SCA_EventManager.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_EVENTMANAGER
#define __KX_EVENTMANAGER
diff --git a/source/gameengine/GameLogic/SCA_ExpressionController.cpp b/source/gameengine/GameLogic/SCA_ExpressionController.cpp
index 36e83f2a98c..e9a543c9f31 100644
--- a/source/gameengine/GameLogic/SCA_ExpressionController.cpp
+++ b/source/gameengine/GameLogic/SCA_ExpressionController.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_ExpressionController.h"
diff --git a/source/gameengine/GameLogic/SCA_ExpressionController.h b/source/gameengine/GameLogic/SCA_ExpressionController.h
index e77f2b9938b..f1db45a19e0 100644
--- a/source/gameengine/GameLogic/SCA_ExpressionController.h
+++ b/source/gameengine/GameLogic/SCA_ExpressionController.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_EXPRESSIONCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_IActuator.cpp b/source/gameengine/GameLogic/SCA_IActuator.cpp
index 322936c7819..568d0eb4a89 100644
--- a/source/gameengine/GameLogic/SCA_IActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_IActuator.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_IActuator.h"
diff --git a/source/gameengine/GameLogic/SCA_IActuator.h b/source/gameengine/GameLogic/SCA_IActuator.h
index e58ac74dacf..bff32dcebaa 100644
--- a/source/gameengine/GameLogic/SCA_IActuator.h
+++ b/source/gameengine/GameLogic/SCA_IActuator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_IACTUATOR
#define __KX_IACTUATOR
diff --git a/source/gameengine/GameLogic/SCA_IController.cpp b/source/gameengine/GameLogic/SCA_IController.cpp
index bd70e4aa44b..5cb62678c6b 100644
--- a/source/gameengine/GameLogic/SCA_IController.cpp
+++ b/source/gameengine/GameLogic/SCA_IController.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_IController.h"
diff --git a/source/gameengine/GameLogic/SCA_IController.h b/source/gameengine/GameLogic/SCA_IController.h
index 31bbca2480a..79e956dec4e 100644
--- a/source/gameengine/GameLogic/SCA_IController.h
+++ b/source/gameengine/GameLogic/SCA_IController.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ICONTROLLER
#define __KX_ICONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_IInputDevice.cpp b/source/gameengine/GameLogic/SCA_IInputDevice.cpp
index c6858cdb75a..d6c5376d090 100644
--- a/source/gameengine/GameLogic/SCA_IInputDevice.cpp
+++ b/source/gameengine/GameLogic/SCA_IInputDevice.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <assert.h>
diff --git a/source/gameengine/GameLogic/SCA_IInputDevice.h b/source/gameengine/GameLogic/SCA_IInputDevice.h
index 6dee608a568..66ad457aa03 100644
--- a/source/gameengine/GameLogic/SCA_IInputDevice.h
+++ b/source/gameengine/GameLogic/SCA_IInputDevice.h
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_INPUTDEVICE_H
diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
index 1780458ba45..8423d06dfcd 100644
--- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
+++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_ILogicBrick.h"
diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h
index 588c5ca7aba..f359ee0911b 100644
--- a/source/gameengine/GameLogic/SCA_ILogicBrick.h
+++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ILOGICBRICK
#define __KX_ILOGICBRICK
diff --git a/source/gameengine/GameLogic/SCA_IObject.cpp b/source/gameengine/GameLogic/SCA_IObject.cpp
index fae1b5dfa6b..465dd981406 100644
--- a/source/gameengine/GameLogic/SCA_IObject.cpp
+++ b/source/gameengine/GameLogic/SCA_IObject.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <iostream>
diff --git a/source/gameengine/GameLogic/SCA_IObject.h b/source/gameengine/GameLogic/SCA_IObject.h
index aed1d87b929..8f3e25afa03 100644
--- a/source/gameengine/GameLogic/SCA_IObject.h
+++ b/source/gameengine/GameLogic/SCA_IObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* An abstract object that has some logic, python scripting and
* reference counting Note: transformation stuff has been moved to
* SceneGraph
diff --git a/source/gameengine/GameLogic/SCA_IScene.cpp b/source/gameengine/GameLogic/SCA_IScene.cpp
index d4463196379..9fbeb706910 100644
--- a/source/gameengine/GameLogic/SCA_IScene.cpp
+++ b/source/gameengine/GameLogic/SCA_IScene.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,29 +23,44 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_IScene.h"
+#include "Value.h"
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-SCA_IScene::SCA_IScene()
+SCA_DebugProp::SCA_DebugProp(): m_obj(NULL)
{
}
+SCA_DebugProp::~SCA_DebugProp()
+{
+ if (m_obj)
+ m_obj->Release();
+}
+SCA_IScene::SCA_IScene()
+{
+}
-SCA_IScene::~SCA_IScene()
+void SCA_IScene::RemoveAllDebugProperties()
{
- // release debugprop list
for (std::vector<SCA_DebugProp*>::iterator it = m_debugList.begin();
!(it==m_debugList.end());it++)
{
delete (*it);
}
+ m_debugList.clear();
+}
+
+
+SCA_IScene::~SCA_IScene()
+{
+ RemoveAllDebugProperties();
}
@@ -64,6 +76,7 @@ void SCA_IScene::AddDebugProperty(class CValue* debugprop,
{
SCA_DebugProp* dprop = new SCA_DebugProp();
dprop->m_obj = debugprop;
+ debugprop->AddRef();
dprop->m_name = name;
m_debugList.push_back(dprop);
}
diff --git a/source/gameengine/GameLogic/SCA_IScene.h b/source/gameengine/GameLogic/SCA_IScene.h
index 3c62ec91515..d18778a37c2 100644
--- a/source/gameengine/GameLogic/SCA_IScene.h
+++ b/source/gameengine/GameLogic/SCA_IScene.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ISCENE_H
#define __KX_ISCENE_H
@@ -40,6 +37,8 @@ struct SCA_DebugProp
{
class CValue* m_obj;
STR_String m_name;
+ SCA_DebugProp();
+ ~SCA_DebugProp();
};
class SCA_IScene
@@ -60,6 +59,7 @@ public:
std::vector<SCA_DebugProp*>& GetDebugProperties();
void AddDebugProperty(class CValue* debugprop,
const STR_String &name);
+ void RemoveAllDebugProperties();
};
#endif //__KX_ISCENE_H
diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp
index 1a65f8311ed..9fdee0c19da 100644
--- a/source/gameengine/GameLogic/SCA_ISensor.cpp
+++ b/source/gameengine/GameLogic/SCA_ISensor.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_ISensor.h"
@@ -160,8 +157,6 @@ PyMethodDef SCA_ISensor::Methods[] = {
METH_VARARGS, GetInvert_doc},
{"setInvert", (PyCFunction) SCA_ISensor::sPySetInvert,
METH_VARARGS, SetInvert_doc},
- {"evaluate", (PyCFunction) SCA_ISensor::sPyEvaluate,
- METH_VARARGS, Evaluate_doc},
{NULL,NULL} //Sentinel
};
@@ -333,14 +328,4 @@ PyObject* SCA_ISensor::PySetUseNegPulseMode(PyObject* self, PyObject* args, PyOb
Py_Return;
}
-char SCA_ISensor::Evaluate_doc[] =
-"evaluate()\n"
-"\tRe-evaluate the sensor so that isPositive() and other methods are up to date\n"
-"\twith current game conditions. BGE does it automatically on each frame so it's\n"
-"\tnot usually needed.\n"
-"\tReturns True or False if the sensor evaluates positively or negatively\n";
-PyObject* SCA_ISensor::PyEvaluate(PyObject* self, PyObject* args, PyObject* kwds)
-{
- return BoolToPyArg(Evaluate(NULL));
-}
/* eof */
diff --git a/source/gameengine/GameLogic/SCA_ISensor.h b/source/gameengine/GameLogic/SCA_ISensor.h
index 8de4480cf2e..e14fb34241a 100644
--- a/source/gameengine/GameLogic/SCA_ISensor.h
+++ b/source/gameengine/GameLogic/SCA_ISensor.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Interface Class for all logic Sensors. Implements
* pulsemode and pulsefrequency, and event suppression.
*/
@@ -127,7 +124,6 @@ public:
KX_PYMETHOD_DOC(SCA_ISensor,SetUseNegPulseMode);
KX_PYMETHOD_DOC(SCA_ISensor,GetInvert);
KX_PYMETHOD_DOC(SCA_ISensor,SetInvert);
- KX_PYMETHOD_DOC(SCA_ISensor,Evaluate);
};
diff --git a/source/gameengine/GameLogic/SCA_JoystickManager.cpp b/source/gameengine/GameLogic/SCA_JoystickManager.cpp
index cf182a0503e..7bf2049e56e 100644
--- a/source/gameengine/GameLogic/SCA_JoystickManager.cpp
+++ b/source/gameengine/GameLogic/SCA_JoystickManager.cpp
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_JoystickSensor.h"
#include "SCA_JoystickManager.h"
@@ -43,15 +40,13 @@ SCA_JoystickManager::SCA_JoystickManager(class SCA_LogicManager* logicmgr)
: SCA_EventManager(JOY_EVENTMGR),
m_logicmgr(logicmgr)
{
- m_joystick = new SCA_Joystick();
- m_joystick->CreateJoystickDevice();
+ m_joystick = SCA_Joystick::GetInstance();
}
SCA_JoystickManager::~SCA_JoystickManager()
{
- m_joystick->DestroyJoystickDevice();
- delete m_joystick;
+ m_joystick->ReleaseInstance();
}
diff --git a/source/gameengine/GameLogic/SCA_JoystickManager.h b/source/gameengine/GameLogic/SCA_JoystickManager.h
index 5c892d71f6c..3c4df64677e 100644
--- a/source/gameengine/GameLogic/SCA_JoystickManager.h
+++ b/source/gameengine/GameLogic/SCA_JoystickManager.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __JOYSTICKMANAGER_H_
diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
index 40942dd296f..b0e7fee130d 100644
--- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
@@ -1,13 +1,10 @@
/*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_JoystickManager.h"
#include "SCA_JoystickSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.h b/source/gameengine/GameLogic/SCA_JoystickSensor.h
index 08af4b84b42..2fbe1edf1e7 100644
--- a/source/gameengine/GameLogic/SCA_JoystickSensor.h
+++ b/source/gameengine/GameLogic/SCA_JoystickSensor.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/gameengine/GameLogic/SCA_KeyboardManager.cpp b/source/gameengine/GameLogic/SCA_KeyboardManager.cpp
index 25a366352cc..259b06134d7 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardManager.cpp
+++ b/source/gameengine/GameLogic/SCA_KeyboardManager.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BoolValue.h"
diff --git a/source/gameengine/GameLogic/SCA_KeyboardManager.h b/source/gameengine/GameLogic/SCA_KeyboardManager.h
index 562f28417ad..b4a50f56025 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardManager.h
+++ b/source/gameengine/GameLogic/SCA_KeyboardManager.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_KEYBOARDMANAGER
diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
index c276f42e0ff..f8fc256b371 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Sensor for keyboard input
*/
#include "SCA_KeyboardSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.h b/source/gameengine/GameLogic/SCA_KeyboardSensor.h
index f4a3d7e47b5..e87eddecd32 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardSensor.h
+++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Sensor for keyboard input
*/
diff --git a/source/gameengine/GameLogic/SCA_LogicManager.cpp b/source/gameengine/GameLogic/SCA_LogicManager.cpp
index 048d6992c73..bd1c44fb91e 100644
--- a/source/gameengine/GameLogic/SCA_LogicManager.cpp
+++ b/source/gameengine/GameLogic/SCA_LogicManager.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Regulates the top-level logic behaviour for one scene.
*/
#include "Value.h"
diff --git a/source/gameengine/GameLogic/SCA_LogicManager.h b/source/gameengine/GameLogic/SCA_LogicManager.h
index 2eee2129665..39d8b865977 100644
--- a/source/gameengine/GameLogic/SCA_LogicManager.h
+++ b/source/gameengine/GameLogic/SCA_LogicManager.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Regulates the top-level logic behaviour for one scene.
*/
#ifndef __KX_LOGICMANAGER
diff --git a/source/gameengine/GameLogic/SCA_MouseManager.cpp b/source/gameengine/GameLogic/SCA_MouseManager.cpp
index e4d54c94395..b4251d8ab53 100644
--- a/source/gameengine/GameLogic/SCA_MouseManager.cpp
+++ b/source/gameengine/GameLogic/SCA_MouseManager.cpp
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/GameLogic/SCA_MouseManager.h b/source/gameengine/GameLogic/SCA_MouseManager.h
index e98405b1b7d..bc8254486ad 100644
--- a/source/gameengine/GameLogic/SCA_MouseManager.h
+++ b/source/gameengine/GameLogic/SCA_MouseManager.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
index fda641cfc96..a91cf3e0439 100644
--- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_MouseSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.h b/source/gameengine/GameLogic/SCA_MouseSensor.h
index e8a0d0db78b..86c9d96a800 100644
--- a/source/gameengine/GameLogic/SCA_MouseSensor.h
+++ b/source/gameengine/GameLogic/SCA_MouseSensor.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_MOUSESENSOR
diff --git a/source/gameengine/GameLogic/SCA_ORController.cpp b/source/gameengine/GameLogic/SCA_ORController.cpp
index 29f62b4e6a7..2d4eb31f241 100644
--- a/source/gameengine/GameLogic/SCA_ORController.cpp
+++ b/source/gameengine/GameLogic/SCA_ORController.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_ORController.h"
diff --git a/source/gameengine/GameLogic/SCA_ORController.h b/source/gameengine/GameLogic/SCA_ORController.h
index d8b844d9063..beb69aa2af9 100644
--- a/source/gameengine/GameLogic/SCA_ORController.h
+++ b/source/gameengine/GameLogic/SCA_ORController.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ORCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
index 29642cd5a7b..ebe1cd51863 100644
--- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_PropertyActuator.h"
@@ -183,6 +180,14 @@ GetReplica() {
};
+void SCA_PropertyActuator::ProcessReplica()
+{
+ // no need to check for self reference like in the constructor:
+ // the replica will always have a different parent
+ if (m_sourceObj)
+ m_sourceObj->AddRef();
+ SCA_IActuator::ProcessReplica();
+}
diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.h b/source/gameengine/GameLogic/SCA_PropertyActuator.h
index cdcda7a84e0..f8305901c51 100644
--- a/source/gameengine/GameLogic/SCA_PropertyActuator.h
+++ b/source/gameengine/GameLogic/SCA_PropertyActuator.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_PROPERTYACTUATOR
@@ -77,6 +74,8 @@ public:
GetReplica(
);
+ void ProcessReplica();
+
virtual bool
Update();
diff --git a/source/gameengine/GameLogic/SCA_PropertyEventManager.cpp b/source/gameengine/GameLogic/SCA_PropertyEventManager.cpp
index 4ac3d162229..fc56d101728 100644
--- a/source/gameengine/GameLogic/SCA_PropertyEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertyEventManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_ISensor.h"
diff --git a/source/gameengine/GameLogic/SCA_PropertyEventManager.h b/source/gameengine/GameLogic/SCA_PropertyEventManager.h
index 664beb68695..aaa303a52c8 100644
--- a/source/gameengine/GameLogic/SCA_PropertyEventManager.h
+++ b/source/gameengine/GameLogic/SCA_PropertyEventManager.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_PROPERTYEVENTMANAGER
#define __KX_PROPERTYEVENTMANAGER
diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp
index cdd0666947e..f1fcb18d32e 100644
--- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <iostream>
diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.h b/source/gameengine/GameLogic/SCA_PropertySensor.h
index 77cc3dc8a5c..81c9b958f25 100644
--- a/source/gameengine/GameLogic/SCA_PropertySensor.h
+++ b/source/gameengine/GameLogic/SCA_PropertySensor.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_PROPERTYSENSOR
diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp
index c44971d7028..44cdc0a7de5 100644
--- a/source/gameengine/GameLogic/SCA_PythonController.cpp
+++ b/source/gameengine/GameLogic/SCA_PythonController.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_PythonController.h"
diff --git a/source/gameengine/GameLogic/SCA_PythonController.h b/source/gameengine/GameLogic/SCA_PythonController.h
index da2cd4b0bcd..63975234da9 100644
--- a/source/gameengine/GameLogic/SCA_PythonController.h
+++ b/source/gameengine/GameLogic/SCA_PythonController.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_PYTHONCONTROLLER_H
diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp
index b0e69076a3e..0a1ac2d0668 100644
--- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "BoolValue.h"
diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.h b/source/gameengine/GameLogic/SCA_RandomActuator.h
index 4be7f2dbe9e..f6da0595d1a 100644
--- a/source/gameengine/GameLogic/SCA_RandomActuator.h
+++ b/source/gameengine/GameLogic/SCA_RandomActuator.h
@@ -4,15 +4,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_RANDOMACTUATOR
diff --git a/source/gameengine/GameLogic/SCA_RandomEventManager.cpp b/source/gameengine/GameLogic/SCA_RandomEventManager.cpp
index 6bf10a83f55..02020a52a17 100644
--- a/source/gameengine/GameLogic/SCA_RandomEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomEventManager.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_RandomEventManager.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/GameLogic/SCA_RandomEventManager.h b/source/gameengine/GameLogic/SCA_RandomEventManager.h
index 17b2894434d..8c75ef665fa 100644
--- a/source/gameengine/GameLogic/SCA_RandomEventManager.h
+++ b/source/gameengine/GameLogic/SCA_RandomEventManager.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_RANDOMEVENTMGR
diff --git a/source/gameengine/GameLogic/SCA_RandomNumberGenerator.h b/source/gameengine/GameLogic/SCA_RandomNumberGenerator.h
index b6272a09c9f..b9311d31af6 100644
--- a/source/gameengine/GameLogic/SCA_RandomNumberGenerator.h
+++ b/source/gameengine/GameLogic/SCA_RandomNumberGenerator.h
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_RANDOMNUMBERGENERATOR
diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp
index 56c7ed538b8..0e856e0d6bb 100644
--- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_RandomSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.h b/source/gameengine/GameLogic/SCA_RandomSensor.h
index 08bb5226be1..cc54179aa4e 100644
--- a/source/gameengine/GameLogic/SCA_RandomSensor.h
+++ b/source/gameengine/GameLogic/SCA_RandomSensor.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_RANDOMSENSOR
diff --git a/source/gameengine/GameLogic/SCA_TimeEventManager.cpp b/source/gameengine/GameLogic/SCA_TimeEventManager.cpp
index d97727d2a33..643f1247a52 100644
--- a/source/gameengine/GameLogic/SCA_TimeEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_TimeEventManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/GameLogic/SCA_TimeEventManager.h b/source/gameengine/GameLogic/SCA_TimeEventManager.h
index 388d9ce53bd..2fd39661a2d 100644
--- a/source/gameengine/GameLogic/SCA_TimeEventManager.h
+++ b/source/gameengine/GameLogic/SCA_TimeEventManager.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_TIMEEVENTMANAGER
#define __KX_TIMEEVENTMANAGER
diff --git a/source/gameengine/GamePlayer/CMakeLists.txt b/source/gameengine/GamePlayer/CMakeLists.txt
index dbcdb64a0a4..ff1040bfb40 100644
--- a/source/gameengine/GamePlayer/CMakeLists.txt
+++ b/source/gameengine/GamePlayer/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,6 +22,6 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SUBDIRS(common ghost)
diff --git a/source/gameengine/GamePlayer/Makefile b/source/gameengine/GamePlayer/Makefile
index c9a568f708d..747a82fc333 100644
--- a/source/gameengine/GamePlayer/Makefile
+++ b/source/gameengine/GamePlayer/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/gameengine/GamePlayer/common/CMakeLists.txt b/source/gameengine/GamePlayer/common/CMakeLists.txt
index f56fa512ab6..29cdcd640f5 100644
--- a/source/gameengine/GamePlayer/common/CMakeLists.txt
+++ b/source/gameengine/GamePlayer/common/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC
bmfont.cpp
diff --git a/source/gameengine/GamePlayer/common/GPC_Canvas.cpp b/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
index 506b2fc423c..494f43a7863 100644
--- a/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/GamePlayer/common/GPC_Canvas.h b/source/gameengine/GamePlayer/common/GPC_Canvas.h
index 42e2d882e9a..bd66c865988 100644
--- a/source/gameengine/GamePlayer/common/GPC_Canvas.h
+++ b/source/gameengine/GamePlayer/common/GPC_Canvas.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _GPC_CANVAS_H_
diff --git a/source/gameengine/GamePlayer/common/GPC_Engine.cpp b/source/gameengine/GamePlayer/common/GPC_Engine.cpp
index 0986b8cee55..868dddb901c 100644
--- a/source/gameengine/GamePlayer/common/GPC_Engine.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_Engine.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/GamePlayer/common/GPC_Engine.h b/source/gameengine/GamePlayer/common/GPC_Engine.h
index a1403839e16..b7121599c6e 100644
--- a/source/gameengine/GamePlayer/common/GPC_Engine.h
+++ b/source/gameengine/GamePlayer/common/GPC_Engine.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPC_ENGINE_H
diff --git a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp
index 8bbac10f7ca..474df9276a7 100644
--- a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GPC_KeyboardDevice.h"
diff --git a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h
index da3dc2398dd..891589dd118 100644
--- a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h
+++ b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPC_KEYBOARDDEVICE_H
@@ -58,9 +55,9 @@ protected:
* System dependent keyboard codes are stored as ints.
*/
std::map<int, KX_EnumInputs> m_reverseKeyTranslateTable;
- bool m_hookesc;
public:
+ bool m_hookesc;
GPC_KeyboardDevice()
: m_hookesc(false)
{
diff --git a/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp b/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp
index 7e57aa1ee40..1771e3d40c6 100644
--- a/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GPC_MouseDevice.h"
diff --git a/source/gameengine/GamePlayer/common/GPC_MouseDevice.h b/source/gameengine/GamePlayer/common/GPC_MouseDevice.h
index da5098b06d6..91dbd90a53c 100644
--- a/source/gameengine/GamePlayer/common/GPC_MouseDevice.h
+++ b/source/gameengine/GamePlayer/common/GPC_MouseDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPC_MOUSE_DEVICE_H
diff --git a/source/gameengine/GamePlayer/common/GPC_PolygonMaterial.cpp b/source/gameengine/GamePlayer/common/GPC_PolygonMaterial.cpp
index 840230902f8..46fe24d8b87 100644
--- a/source/gameengine/GamePlayer/common/GPC_PolygonMaterial.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_PolygonMaterial.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/GamePlayer/common/GPC_PolygonMaterial.h b/source/gameengine/GamePlayer/common/GPC_PolygonMaterial.h
index d9aa3ca4b7e..212decd078c 100644
--- a/source/gameengine/GamePlayer/common/GPC_PolygonMaterial.h
+++ b/source/gameengine/GamePlayer/common/GPC_PolygonMaterial.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPC_POLYGONMATERIAL
diff --git a/source/gameengine/GamePlayer/common/GPC_RawImage.cpp b/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
index 7d0886a292b..a9cfb0a9366 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <iostream>
diff --git a/source/gameengine/GamePlayer/common/GPC_RawImage.h b/source/gameengine/GamePlayer/common/GPC_RawImage.h
index ff4c532dd4d..17c00d2fcc3 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawImage.h
+++ b/source/gameengine/GamePlayer/common/GPC_RawImage.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPC_RAWIMAGE_H__
diff --git a/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp b/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp
index 2ccd98b368a..4e70c1f7b8b 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
// This file is automatically generated. Do not edit by hand!
diff --git a/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h b/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h
index 05b7e3d9c3a..02f616f1339 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h
+++ b/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPC_RAWLOADDOTBLENDARRAY_H
diff --git a/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp b/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp
index 955a644513a..135c5641a2c 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
// This file is automatically generated. Do not edit by hand!
diff --git a/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h b/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h
index b6caf3a875a..f74a0012d5c 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h
+++ b/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPC_RAWLOGOARRAYS_H
diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
index 388882e67e4..a5b8d8aacdf 100644
--- a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <assert.h>
diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.h b/source/gameengine/GamePlayer/common/GPC_RenderTools.h
index d90f0e5da45..9b86869af73 100644
--- a/source/gameengine/GamePlayer/common/GPC_RenderTools.h
+++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPC_RENDERTOOLS_H
diff --git a/source/gameengine/GamePlayer/common/GPC_System.cpp b/source/gameengine/GamePlayer/common/GPC_System.cpp
index 31393505796..e83afcca511 100644
--- a/source/gameengine/GamePlayer/common/GPC_System.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_System.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GPC_System.h"
diff --git a/source/gameengine/GamePlayer/common/GPC_System.h b/source/gameengine/GamePlayer/common/GPC_System.h
index e102341749d..512a0b94ade 100644
--- a/source/gameengine/GamePlayer/common/GPC_System.h
+++ b/source/gameengine/GamePlayer/common/GPC_System.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPC_SYSTEM_H
diff --git a/source/gameengine/GamePlayer/common/Makefile b/source/gameengine/GamePlayer/common/Makefile
index 5b61fb4f902..254896e60e5 100644
--- a/source/gameengine/GamePlayer/common/Makefile
+++ b/source/gameengine/GamePlayer/common/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
@@ -73,6 +70,10 @@ CPPFLAGS += -I../../../gameengine/Rasterizer/RAS_OpenGLRasterizer
CPPFLAGS += -I../../../gameengine/Physics/Sumo
CPPFLAGS += -I../../../gameengine/Physics/common
+ifeq ($(WITH_BF_GLEXT),true)
+ CPPFLAGS += -DWITH_GLEXT
+endif
+
###############################
SOURCEDIR = source/gameengine/GamePlayer/common
diff --git a/source/gameengine/GamePlayer/common/bmfont.cpp b/source/gameengine/GamePlayer/common/bmfont.cpp
index c98c85bc272..c2c112c9286 100644
--- a/source/gameengine/GamePlayer/common/bmfont.cpp
+++ b/source/gameengine/GamePlayer/common/bmfont.cpp
@@ -5,15 +5,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/gameengine/GamePlayer/common/unix/GPU_Canvas.cpp b/source/gameengine/GamePlayer/common/unix/GPU_Canvas.cpp
index d393f4196aa..6af9b392d28 100644
--- a/source/gameengine/GamePlayer/common/unix/GPU_Canvas.cpp
+++ b/source/gameengine/GamePlayer/common/unix/GPU_Canvas.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
//#include <iostream>
diff --git a/source/gameengine/GamePlayer/common/unix/GPU_Canvas.h b/source/gameengine/GamePlayer/common/unix/GPU_Canvas.h
index 6ff1935d9c1..ee9115ec6dc 100644
--- a/source/gameengine/GamePlayer/common/unix/GPU_Canvas.h
+++ b/source/gameengine/GamePlayer/common/unix/GPU_Canvas.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPU_CANVAS_H
diff --git a/source/gameengine/GamePlayer/common/unix/GPU_Engine.cpp b/source/gameengine/GamePlayer/common/unix/GPU_Engine.cpp
index 41186a590f5..a5dec02c753 100644
--- a/source/gameengine/GamePlayer/common/unix/GPU_Engine.cpp
+++ b/source/gameengine/GamePlayer/common/unix/GPU_Engine.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <assert.h>
diff --git a/source/gameengine/GamePlayer/common/unix/GPU_Engine.h b/source/gameengine/GamePlayer/common/unix/GPU_Engine.h
index c34c737da2a..3f5b81c9886 100644
--- a/source/gameengine/GamePlayer/common/unix/GPU_Engine.h
+++ b/source/gameengine/GamePlayer/common/unix/GPU_Engine.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPU_ENGINE_H
diff --git a/source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.cpp b/source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.cpp
index b1b05d9a978..952e7fecd31 100644
--- a/source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.cpp
+++ b/source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GPU_KeyboardDevice.h"
diff --git a/source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.h b/source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.h
index eb1a5a11cf6..5c72e43507e 100644
--- a/source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.h
+++ b/source/gameengine/GamePlayer/common/unix/GPU_KeyboardDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPU_KEYBOARDDEVICE_H
diff --git a/source/gameengine/GamePlayer/common/unix/GPU_PolygonMaterial.h b/source/gameengine/GamePlayer/common/unix/GPU_PolygonMaterial.h
index 62feb394441..fee729a84ac 100644
--- a/source/gameengine/GamePlayer/common/unix/GPU_PolygonMaterial.h
+++ b/source/gameengine/GamePlayer/common/unix/GPU_PolygonMaterial.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPU_POLYGONMATERIAL_H
diff --git a/source/gameengine/GamePlayer/common/unix/GPU_System.cpp b/source/gameengine/GamePlayer/common/unix/GPU_System.cpp
index eb2163f08bc..cf8ddda1359 100644
--- a/source/gameengine/GamePlayer/common/unix/GPU_System.cpp
+++ b/source/gameengine/GamePlayer/common/unix/GPU_System.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <sys/time.h>
diff --git a/source/gameengine/GamePlayer/common/unix/GPU_System.h b/source/gameengine/GamePlayer/common/unix/GPU_System.h
index efb637dba95..292dc2cad81 100644
--- a/source/gameengine/GamePlayer/common/unix/GPU_System.h
+++ b/source/gameengine/GamePlayer/common/unix/GPU_System.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPU_SYSTEM_H
diff --git a/source/gameengine/GamePlayer/common/unix/Makefile b/source/gameengine/GamePlayer/common/unix/Makefile
index 9073bf02d11..a2bdb7225a0 100644
--- a/source/gameengine/GamePlayer/common/unix/Makefile
+++ b/source/gameengine/GamePlayer/common/unix/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/GamePlayer/common/windows/GPW_Canvas.cpp b/source/gameengine/GamePlayer/common/windows/GPW_Canvas.cpp
index 372ab927118..e679522470c 100644
--- a/source/gameengine/GamePlayer/common/windows/GPW_Canvas.cpp
+++ b/source/gameengine/GamePlayer/common/windows/GPW_Canvas.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GPW_Canvas.h"
diff --git a/source/gameengine/GamePlayer/common/windows/GPW_Canvas.h b/source/gameengine/GamePlayer/common/windows/GPW_Canvas.h
index d08ec3c4fa5..bb1abd71505 100644
--- a/source/gameengine/GamePlayer/common/windows/GPW_Canvas.h
+++ b/source/gameengine/GamePlayer/common/windows/GPW_Canvas.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _GPW_CANVAS_H_
diff --git a/source/gameengine/GamePlayer/common/windows/GPW_Engine.cpp b/source/gameengine/GamePlayer/common/windows/GPW_Engine.cpp
index 43d2ca9bb6e..71f40d03eb3 100644
--- a/source/gameengine/GamePlayer/common/windows/GPW_Engine.cpp
+++ b/source/gameengine/GamePlayer/common/windows/GPW_Engine.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#pragma warning (disable : 4786)
diff --git a/source/gameengine/GamePlayer/common/windows/GPW_Engine.h b/source/gameengine/GamePlayer/common/windows/GPW_Engine.h
index 8f357358d68..0b4cf4743db 100644
--- a/source/gameengine/GamePlayer/common/windows/GPW_Engine.h
+++ b/source/gameengine/GamePlayer/common/windows/GPW_Engine.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GPW_ENGINE_H
diff --git a/source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.cpp b/source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.cpp
index e9d70722336..18724783307 100644
--- a/source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.cpp
+++ b/source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GPW_KeyboardDevice.h"
diff --git a/source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.h b/source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.h
index 0e683943701..cae7488c70d 100644
--- a/source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.h
+++ b/source/gameengine/GamePlayer/common/windows/GPW_KeyboardDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _GPW_KEYBOARDDEVICE_H_
diff --git a/source/gameengine/GamePlayer/common/windows/GPW_System.cpp b/source/gameengine/GamePlayer/common/windows/GPW_System.cpp
index 9dbd704daed..cb53f8ea6ad 100644
--- a/source/gameengine/GamePlayer/common/windows/GPW_System.cpp
+++ b/source/gameengine/GamePlayer/common/windows/GPW_System.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Timing routine taken and modified from KX_BlenderSystem.cpp
*/
diff --git a/source/gameengine/GamePlayer/common/windows/GPW_System.h b/source/gameengine/GamePlayer/common/windows/GPW_System.h
index e7dbe99cd1c..41b2bff72b0 100644
--- a/source/gameengine/GamePlayer/common/windows/GPW_System.h
+++ b/source/gameengine/GamePlayer/common/windows/GPW_System.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Timing routine taken and modified from KX_BlenderSystem.cpp
*/
diff --git a/source/gameengine/GamePlayer/common/windows/Makefile b/source/gameengine/GamePlayer/common/windows/Makefile
index 6ad97c1677c..b0fb25f35b8 100644
--- a/source/gameengine/GamePlayer/common/windows/Makefile
+++ b/source/gameengine/GamePlayer/common/windows/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
# ATTENTION: this Makefile is only used for win builds!
diff --git a/source/gameengine/GamePlayer/ghost/CMakeLists.txt b/source/gameengine/GamePlayer/ghost/CMakeLists.txt
index da7abcaf0c5..3d17cd2cfdd 100644
--- a/source/gameengine/GamePlayer/ghost/CMakeLists.txt
+++ b/source/gameengine/GamePlayer/ghost/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC
GPG_Application.cpp
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
index 5ef20514390..dfd15227501 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* GHOST Blender Player application implementation file.
*/
@@ -57,6 +54,7 @@
#include <iostream>
#include <MT_assert.h>
+#include <stdlib.h>
/**********************************
* Begin Blender include block
@@ -509,20 +507,25 @@ bool GPG_Application::initEngine(GHOST_IWindow* window, const int stereoMode)
bool frameRate = (SYS_GetCommandLineInt(syshandle, "show_framerate", 0) != 0);
bool useVertexArrays = SYS_GetCommandLineInt(syshandle,"vertexarrays",1) != 0;
bool useLists = (SYS_GetCommandLineInt(syshandle, "displaylists", G.fileflags & G_FILE_DIAPLAY_LISTS) != 0);
-#ifdef GL_ARB_multitexture
- int gameflag =(G.fileflags & G_FILE_GAME_MAT);
- // ----------------------------------
- if(bgl::RAS_EXT_support._ARB_multitexture && bgl::QueryVersion(1, 1)) {
- m_blendermat = (SYS_GetCommandLineInt(syshandle, "blender_material", gameflag) != 0);
- int unitmax=0;
- glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&unitmax);
- bgl::max_texture_units = MAXTEX>unitmax?unitmax:MAXTEX;
- //std::cout << "using(" << bgl::max_texture_units << ") of(" << unitmax << ") texture units." << std::endl;
+
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ int gameflag =(G.fileflags & G_FILE_GAME_MAT);
+
+ if(bgl::RAS_EXT_support._ARB_multitexture && bgl::QueryVersion(1, 1)) {
+ m_blendermat = (SYS_GetCommandLineInt(syshandle, "blender_material", gameflag) != 0);
+ int unitmax=0;
+ glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&unitmax);
+ bgl::max_texture_units = MAXTEX>unitmax?unitmax:MAXTEX;
+ //std::cout << "using(" << bgl::max_texture_units << ") of(" << unitmax << ") texture units." << std::endl;
+ } else {
+ bgl::max_texture_units = 0;
+ }
} else {
- bgl::max_texture_units = 0;
+ m_blendermat=0;
}
#else
- m_blendermat=0;
+ m_blendermat=0;
#endif//GL_ARB_multitexture
// ----------------------------------
@@ -845,11 +848,12 @@ bool GPG_Application::handleKey(GHOST_IEvent* event, bool isDown)
{
GHOST_TEventDataPtr eventData = ((GHOST_IEvent*)event)->getData();
GHOST_TEventKeyData* keyData = static_cast<GHOST_TEventKeyData*>(eventData);
- if (fSystem->getFullScreen()) {
- if (keyData->key == GHOST_kKeyEsc) {
+ //no need for this test
+ //if (fSystem->getFullScreen()) {
+ if (keyData->key == GHOST_kKeyEsc && !m_keyboard->m_hookesc) {
m_exitRequested = KX_EXIT_REQUEST_OUTSIDE;
}
- }
+ //}
m_keyboard->ConvertEvent(keyData->key, isDown);
handled = true;
}
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.h b/source/gameengine/GamePlayer/ghost/GPG_Application.h
index 11ede4d51ca..024ca1dbf32 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Application.h
+++ b/source/gameengine/GamePlayer/ghost/GPG_Application.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* GHOST Blender Player application declaration file.
*/
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp b/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp
index 2d378473619..de8342fb15b 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GPG_Canvas.h"
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Canvas.h b/source/gameengine/GamePlayer/ghost/GPG_Canvas.h
index 8da8983bf8c..6ab3e918943 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Canvas.h
+++ b/source/gameengine/GamePlayer/ghost/GPG_Canvas.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _GPG_CANVAS_H_
diff --git a/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp b/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp
index 0e474827ad5..0fa940c07a1 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* GHOST Blender Player keyboard device implementation.
*/
diff --git a/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h b/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h
index b8e578bcd8f..dce16985bb7 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h
+++ b/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* GHOST Blender Player keyboard device.
*/
diff --git a/source/gameengine/GamePlayer/ghost/GPG_System.cpp b/source/gameengine/GamePlayer/ghost/GPG_System.cpp
index d9f59f8b36a..56482ac46bc 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_System.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_System.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Blender Player system on GHOST.
*/
diff --git a/source/gameengine/GamePlayer/ghost/GPG_System.h b/source/gameengine/GamePlayer/ghost/GPG_System.h
index d283c683f1d..e4ac4777763 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_System.h
+++ b/source/gameengine/GamePlayer/ghost/GPG_System.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Blender Player system on GHOST.
*/
diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
index 0993446c77b..1496f7c6ad3 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Start up of the Blender Player on GHOST.
*/
@@ -577,7 +574,7 @@ int main(int argc, char** argv)
// if we got an exitcode 3 (KX_EXIT_REQUEST_START_OTHER_GAME) load a different file
if (exitcode == KX_EXIT_REQUEST_START_OTHER_GAME)
{
- char basedpath[160];
+ char basedpath[240];
// base the actuator filename with respect
// to the original file working directory
diff --git a/source/gameengine/GamePlayer/ghost/Makefile b/source/gameengine/GamePlayer/ghost/Makefile
index 857b274cbae..8a3d194cbd7 100644
--- a/source/gameengine/GamePlayer/ghost/Makefile
+++ b/source/gameengine/GamePlayer/ghost/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Makefile for GHOST game player
@@ -80,4 +77,7 @@ CPPFLAGS += -I$(NAN_STRING)/include
CPPFLAGS += -I$(NAN_GHOST)/include
CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION)
+ifeq ($(WITH_BF_GLEXT),true)
+ CPPFLAGS += -DWITH_GLEXT
+endif
diff --git a/source/gameengine/GamePlayer/ghost/SConscript b/source/gameengine/GamePlayer/ghost/SConscript
index f76e926e6d4..cc2d7de8002 100644
--- a/source/gameengine/GamePlayer/ghost/SConscript
+++ b/source/gameengine/GamePlayer/ghost/SConscript
@@ -46,4 +46,8 @@ cflags = []
if env['OURPLATFORM']=='win32-vc':
cflags = ['/GR']
+if env['WITH_BF_GLEXT'] == 1:
+ env['CPPFLAGS'].append('-DWITH_GLEXT')
+
+
env.BlenderLib (libname='gp_ghost', sources=source_files, includes = incs, defines = [], libtype='player',priority=0, compileflags=cflags)
diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp
index 3b74b74727a..105a87e767b 100644
--- a/source/gameengine/Ketsji/BL_Shader.cpp
+++ b/source/gameengine/Ketsji/BL_Shader.cpp
@@ -9,11 +9,12 @@
#include <OpenGL/glu.h>
#else
#include <GL/gl.h>
-#if defined(__sun__) && !defined(__sparc__)
+/* #if defined(__sun__) && !defined(__sparc__)
#include <mesa/glu.h>
#else
+*/
#include <GL/glu.h>
-#endif
+/* #endif */
#endif
#include <iostream>
@@ -1427,8 +1428,8 @@ KX_PYMETHODDEF_DOC( BL_Shader, setAttrib, "setAttrib(enum)" )
bgl::blBindAttribLocationARB(mShader, mAttr, "Tangent");
Py_Return;
}
- return NULL;
#endif
+ return NULL;
}
diff --git a/source/gameengine/Ketsji/BL_Texture.cpp b/source/gameengine/Ketsji/BL_Texture.cpp
index 53e1af46e4e..687b1af957d 100644
--- a/source/gameengine/Ketsji/BL_Texture.cpp
+++ b/source/gameengine/Ketsji/BL_Texture.cpp
@@ -8,15 +8,16 @@
#include <OpenGL/glu.h>
#else
#include <GL/gl.h>
-#if defined(__sun__) && !defined(__sparc__)
+/* #if defined(__sun__) && !defined(__sparc__)
#include <mesa/glu.h>
-#else
+#else */
#include <GL/glu.h>
-#endif
+/* #endif */
#endif
#include <iostream>
#include <map>
+#include <stdlib.h>
#include "BL_Material.h"
#include "BL_Texture.h"
@@ -360,10 +361,13 @@ unsigned int BL_Texture::GetTextureType() const
int BL_Texture::GetMaxUnits()
{
GLint unit=0;
-#ifdef GL_ARB_multitexture
- if(RAS_EXT_support._ARB_multitexture) {
- glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &unit);
- return (MAXTEX>=unit?unit:MAXTEX);
+
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ if(RAS_EXT_support._ARB_multitexture) {
+ glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &unit);
+ return (MAXTEX>=unit?unit:MAXTEX);
+ }
}
#endif
return 0;
@@ -371,28 +375,33 @@ int BL_Texture::GetMaxUnits()
void BL_Texture::ActivateFirst()
{
-#ifdef GL_ARB_multitexture
- if(RAS_EXT_support._ARB_multitexture)
- bgl::blActiveTextureARB(GL_TEXTURE0_ARB);
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ if(RAS_EXT_support._ARB_multitexture)
+ bgl::blActiveTextureARB(GL_TEXTURE0_ARB);
+ }
#endif
}
void BL_Texture::ActivateUnit(int unit)
{
-#ifdef GL_ARB_multitexture
- if(RAS_EXT_support._ARB_multitexture)
- if(unit <= MAXTEX)
- bgl::blActiveTextureARB(GL_TEXTURE0_ARB+unit);
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ if(RAS_EXT_support._ARB_multitexture)
+ if(unit <= MAXTEX)
+ bgl::blActiveTextureARB(GL_TEXTURE0_ARB+unit);
+ }
#endif
}
void BL_Texture::DisableUnit()
{
-#ifdef GL_ARB_multitexture
- if(RAS_EXT_support._ARB_multitexture)
- bgl::blActiveTextureARB(GL_TEXTURE0_ARB+mUnit);
-
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ if(RAS_EXT_support._ARB_multitexture)
+ bgl::blActiveTextureARB(GL_TEXTURE0_ARB+mUnit);
+ }
#endif
@@ -420,52 +429,54 @@ void BL_Texture::DisableUnit()
void BL_Texture::DisableAllTextures()
{
-#ifdef GL_ARB_multitexture
- glDisable(GL_BLEND);
- for(int i=0; i<MAXTEX; i++) {
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ glDisable(GL_BLEND);
+ for(int i=0; i<MAXTEX; i++) {
+ if(RAS_EXT_support._ARB_multitexture)
+ bgl::blActiveTextureARB(GL_TEXTURE0_ARB+i);
+
+ glMatrixMode(GL_TEXTURE);
+ glLoadIdentity();
+ glMatrixMode(GL_MODELVIEW);
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_TEXTURE_GEN_S);
+ glDisable(GL_TEXTURE_GEN_T);
+ glDisable(GL_TEXTURE_GEN_R);
+ glDisable(GL_TEXTURE_GEN_Q);
+ glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
+ }
if(RAS_EXT_support._ARB_multitexture)
- bgl::blActiveTextureARB(GL_TEXTURE0_ARB+i);
-
- glMatrixMode(GL_TEXTURE);
- glLoadIdentity();
- glMatrixMode(GL_MODELVIEW);
- glDisable(GL_TEXTURE_2D);
- glDisable(GL_TEXTURE_GEN_S);
- glDisable(GL_TEXTURE_GEN_T);
- glDisable(GL_TEXTURE_GEN_R);
- glDisable(GL_TEXTURE_GEN_Q);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
+ bgl::blActiveTextureARB(GL_TEXTURE0_ARB);
}
- if(RAS_EXT_support._ARB_multitexture)
- bgl::blActiveTextureARB(GL_TEXTURE0_ARB);
-
#endif
}
void BL_Texture::ActivateTexture()
{
-#ifdef GL_ARB_multitexture
- if(RAS_EXT_support._ARB_multitexture)
- bgl::blActiveTextureARB(GL_TEXTURE0_ARB+mUnit);
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ if(RAS_EXT_support._ARB_multitexture)
+ bgl::blActiveTextureARB(GL_TEXTURE0_ARB+mUnit);
#ifdef GL_ARB_texture_cube_map
- if (mType == GL_TEXTURE_CUBE_MAP_ARB && RAS_EXT_support._ARB_texture_cube_map)
- {
- glBindTexture( GL_TEXTURE_CUBE_MAP_ARB, mTexture );
- glEnable(GL_TEXTURE_CUBE_MAP_ARB);
- }
- else
+ if (mType == GL_TEXTURE_CUBE_MAP_ARB && RAS_EXT_support._ARB_texture_cube_map)
+ {
+ glBindTexture( GL_TEXTURE_CUBE_MAP_ARB, mTexture );
+ glEnable(GL_TEXTURE_CUBE_MAP_ARB);
+ } else
#endif
- {
+ {
- #ifdef GL_ARB_texture_cube_map
- if(RAS_EXT_support._ARB_texture_cube_map )
- glDisable(GL_TEXTURE_CUBE_MAP_ARB);
- #endif
+ #ifdef GL_ARB_texture_cube_map
+ if(RAS_EXT_support._ARB_texture_cube_map )
+ glDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ #endif
- glBindTexture( GL_TEXTURE_2D, mTexture );
- glEnable(GL_TEXTURE_2D);
+ glBindTexture( GL_TEXTURE_2D, mTexture );
+ glEnable(GL_TEXTURE_2D);
+ }
}
#endif
}
diff --git a/source/gameengine/Ketsji/CMakeLists.txt b/source/gameengine/Ketsji/CMakeLists.txt
index ca21869c007..a10b07ff491 100644
--- a/source/gameengine/Ketsji/CMakeLists.txt
+++ b/source/gameengine/Ketsji/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.cpp)
diff --git a/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt b/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt
index 5a02c5ddb0e..fa0ca378c6b 100644
--- a/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt
+++ b/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.cpp)
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp
index 93c7ab37edb..7b5b7fdf78c 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Ketsji Logic Extenstion: Network Event Manager generic implementation
*/
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h
index 9c0d14674c1..0b097ba2ef6 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Ketsji Logic Extenstion: Network Event Manager class
*/
#ifndef KX_NETWORK_EVENTMANAGER_H
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
index e142d2a1a1b..3ade810c394 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Ketsji Logic Extenstion: Network Message Actuator generic implementation
*/
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
index c81437dbd91..653107699c7 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Ketsji Logic Extenstion: Network Message Actuator class
*/
#ifndef __KX_NETWORKMESSAGEACTUATOR_H
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
index 51cfe30179c..e320453b7aa 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Ketsji Logic Extenstion: Network Message Sensor generic implementation
*/
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
index 82f83787645..d051b715aab 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Ketsji Logic Extenstion: Network Message Sensor class
*/
#ifndef __KX_NETWORKMESSAGE_SENSOR_H
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp
index a27ac01d5c4..be15c02f62d 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h
index 39910963161..17b4adee6cb 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,6 +24,6 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp
index 9da25bcb70b..56021f0b417 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h
index 39910963161..17b4adee6cb 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,6 +24,6 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/gameengine/Ketsji/KXNetwork/Makefile b/source/gameengine/Ketsji/KXNetwork/Makefile
index ee8ddc45c3b..ddcb03600d5 100644
--- a/source/gameengine/Ketsji/KXNetwork/Makefile
+++ b/source/gameengine/Ketsji/KXNetwork/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
index c3aa83bec69..cfdcba8a5d6 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
@@ -15,11 +15,12 @@
#include <OpenGL/glu.h>
#else
#include <GL/gl.h>
-#if defined(__sun__) && !defined(__sparc__)
+/* #if defined(__sun__) && !defined(__sparc__)
#include <mesa/glu.h>
#else
+*/
#include <GL/glu.h>
-#endif
+/* #endif */
#endif
#include "KX_BlenderMaterial.h"
diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp
index b4a7763763a..a5d7f6d799a 100644
--- a/source/gameengine/Ketsji/KX_CDActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CDActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/gameengine/Ketsji/KX_CDActuator.h b/source/gameengine/Ketsji/KX_CDActuator.h
index db6dc1e3475..f46dd99b6dc 100644
--- a/source/gameengine/Ketsji/KX_CDActuator.h
+++ b/source/gameengine/Ketsji/KX_CDActuator.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_CDACTUATOR
diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp
index b75662f01c9..09eb2053bfe 100644
--- a/source/gameengine/Ketsji/KX_Camera.cpp
+++ b/source/gameengine/Ketsji/KX_Camera.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Camera in the gameengine. Cameras are also used for views.
*/
@@ -69,7 +66,22 @@ KX_Camera::~KX_Camera()
}
+CValue* KX_Camera::GetReplica()
+{
+ KX_Camera* replica = new KX_Camera(*this);
+
+ // this will copy properties and so on...
+ CValue::AddDataToReplica(replica);
+ ProcessReplica(replica);
+
+ return replica;
+}
+void KX_Camera::ProcessReplica(KX_Camera* replica)
+{
+ KX_GameObject::ProcessReplica(replica);
+}
+
MT_Transform KX_Camera::GetWorldToCamera() const
{
MT_Transform camtrans;
diff --git a/source/gameengine/Ketsji/KX_Camera.h b/source/gameengine/Ketsji/KX_Camera.h
index 34a3d2f2653..4cc8c049f91 100644
--- a/source/gameengine/Ketsji/KX_Camera.h
+++ b/source/gameengine/Ketsji/KX_Camera.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Camera in the gameengine. Cameras are also used for views.
*/
@@ -134,6 +131,24 @@ public:
KX_Camera(void* sgReplicationInfo,SG_Callbacks callbacks,const RAS_CameraData& camdata, bool frustum_culling = true, PyTypeObject *T = &Type);
virtual ~KX_Camera();
+ /**
+ * Inherited from CValue -- return a new copy of this
+ * instance allocated on the heap. Ownership of the new
+ * object belongs with the caller.
+ */
+ virtual CValue*
+ GetReplica(
+ );
+
+ /**
+ * Inherited from CValue -- Makes sure any internal
+ * data owned by this class is deep copied. Called internally
+ */
+ virtual void
+ ProcessReplica(
+ KX_Camera* replica
+ );
+
MT_Transform GetWorldToCamera() const;
MT_Transform GetCameraToWorld() const;
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp
index 9454e21132a..cb3180cb05e 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.h b/source/gameengine/Ketsji/KX_CameraActuator.h
index 27d8a77b28d..eb007e403ec 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.h
+++ b/source/gameengine/Ketsji/KX_CameraActuator.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_CAMERAACTUATOR
diff --git a/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp b/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp
index 38064739ff0..24b57b63655 100644
--- a/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp
+++ b/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_CameraIpoSGController.h"
diff --git a/source/gameengine/Ketsji/KX_CameraIpoSGController.h b/source/gameengine/Ketsji/KX_CameraIpoSGController.h
index d80847fa5fb..33245e79c23 100644
--- a/source/gameengine/Ketsji/KX_CameraIpoSGController.h
+++ b/source/gameengine/Ketsji/KX_CameraIpoSGController.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_CAMERAIPOSGCONTROLLER_H
#define KX_CAMERAIPOSGCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_ClientObjectInfo.h b/source/gameengine/Ketsji/KX_ClientObjectInfo.h
index 237ec137a1c..5e8af0f040c 100644
--- a/source/gameengine/Ketsji/KX_ClientObjectInfo.h
+++ b/source/gameengine/Ketsji/KX_ClientObjectInfo.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_CLIENTOBJECT_INFO_H
#define __KX_CLIENTOBJECT_INFO_H
diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
index c53749131c0..bd843d97199 100644
--- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_IActuator.h"
diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.h b/source/gameengine/Ketsji/KX_ConstraintActuator.h
index dfd39f1455c..a21a5f30de6 100644
--- a/source/gameengine/Ketsji/KX_ConstraintActuator.h
+++ b/source/gameengine/Ketsji/KX_ConstraintActuator.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_CONSTRAINTACTUATOR
diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
index 9ca9517c035..987125ca9ba 100644
--- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <Python.h>
#include "KX_ConstraintWrapper.h"
diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.h b/source/gameengine/Ketsji/KX_ConstraintWrapper.h
index 12fd7fbe292..79fb3dc21aa 100644
--- a/source/gameengine/Ketsji/KX_ConstraintWrapper.h
+++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_CONSTRAINT_WRAPPER
#define KX_CONSTRAINT_WRAPPER
diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h b/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h
index 684e052323d..6653026f28a 100644
--- a/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h
+++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_CONVERTPHYSICSOBJECTS
#define KX_CONVERTPHYSICSOBJECTS
diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
index ebbca137c5a..4a61c37be06 100644
--- a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
+++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef WIN32
#pragma warning (disable : 4786)
diff --git a/source/gameengine/Ketsji/KX_EmptyObject.cpp b/source/gameengine/Ketsji/KX_EmptyObject.cpp
index 4636f2f0a3e..25a6acd1ae4 100644
--- a/source/gameengine/Ketsji/KX_EmptyObject.cpp
+++ b/source/gameengine/Ketsji/KX_EmptyObject.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_EmptyObject.h"
diff --git a/source/gameengine/Ketsji/KX_EmptyObject.h b/source/gameengine/Ketsji/KX_EmptyObject.h
index 46858b5c46d..62aa7fcd017 100644
--- a/source/gameengine/Ketsji/KX_EmptyObject.h
+++ b/source/gameengine/Ketsji/KX_EmptyObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_EMPTYOBJECT
#define __KX_EMPTYOBJECT
diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp
index 1340a9c8497..fcd32d5f4fe 100644
--- a/source/gameengine/Ketsji/KX_GameActuator.cpp
+++ b/source/gameengine/Ketsji/KX_GameActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_IActuator.h"
diff --git a/source/gameengine/Ketsji/KX_GameActuator.h b/source/gameengine/Ketsji/KX_GameActuator.h
index 5da10576dde..8565dc46caa 100644
--- a/source/gameengine/Ketsji/KX_GameActuator.h
+++ b/source/gameengine/Ketsji/KX_GameActuator.h
@@ -4,15 +4,12 @@
//
// $Id$
//
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License. See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
//
// Contributor(s): none yet.
//
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
//
#ifndef __KX_GAMEACTUATOR
diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp
index 6f172a11005..1c508baca96 100644
--- a/source/gameengine/Ketsji/KX_GameObject.cpp
+++ b/source/gameengine/Ketsji/KX_GameObject.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Game object wrapper
*/
@@ -62,7 +59,7 @@ typedef unsigned long uint_ptr;
#include "KX_ClientObjectInfo.h"
#include "RAS_BucketManager.h"
#include "KX_RayCast.h"
-
+#include "KX_PythonInit.h"
#include "KX_PyMath.h"
// This file defines relationships between parents and children
@@ -88,7 +85,7 @@ KX_GameObject::KX_GameObject(
m_ignore_activity_culling = false;
m_pClient_info = new KX_ClientObjectInfo(this, KX_ClientObjectInfo::ACTOR);
m_pSGNode = new SG_Node(this,sgReplicationInfo,callbacks);
-
+
// define the relationship between this node and it's parent.
KX_NormalParentRelation * parent_relation =
@@ -204,7 +201,62 @@ KX_GameObject* KX_GameObject::GetParent()
}
+void KX_GameObject::SetParent(KX_Scene *scene, KX_GameObject* obj)
+{
+ if (obj && GetSGNode()->GetSGParent() != obj->GetSGNode())
+ {
+ // Make sure the objects have some scale
+ MT_Vector3 scale1 = NodeGetWorldScaling();
+ MT_Vector3 scale2 = obj->NodeGetWorldScaling();
+ if (fabs(scale2[0]) < FLT_EPSILON ||
+ fabs(scale2[1]) < FLT_EPSILON ||
+ fabs(scale2[2]) < FLT_EPSILON ||
+ fabs(scale1[0]) < FLT_EPSILON ||
+ fabs(scale1[1]) < FLT_EPSILON ||
+ fabs(scale1[2]) < FLT_EPSILON) { return; }
+
+ // Remove us from our old parent and set our new parent
+ RemoveParent(scene);
+ obj->GetSGNode()->AddChild(GetSGNode());
+
+ // Set us to our new scale, position, and orientation
+ scale1[0] = scale1[0]/scale2[0];
+ scale1[1] = scale1[1]/scale2[1];
+ scale1[2] = scale1[2]/scale2[2];
+ MT_Matrix3x3 invori = obj->NodeGetWorldOrientation().inverse();
+ MT_Vector3 newpos = invori*(NodeGetWorldPosition()-obj->NodeGetWorldPosition())*scale1;
+
+ NodeSetLocalScale(scale1);
+ NodeSetLocalPosition(MT_Point3(newpos[0],newpos[1],newpos[2]));
+ NodeSetLocalOrientation(NodeGetWorldOrientation()*invori);
+ NodeUpdateGS(0.f,true);
+ // object will now be a child, it must be removed from the parent list
+ CListValue* rootlist = scene->GetRootParentList();
+ if (rootlist->RemoveValue(this))
+ // the object was in parent list, decrement ref count as it's now removed
+ Release();
+ }
+}
+
+void KX_GameObject::RemoveParent(KX_Scene *scene)
+{
+ if (GetSGNode()->GetSGParent())
+ {
+ // Set us to the right spot
+ GetSGNode()->SetLocalScale(GetSGNode()->GetWorldScaling());
+ GetSGNode()->SetLocalOrientation(GetSGNode()->GetWorldOrientation());
+ GetSGNode()->SetLocalPosition(GetSGNode()->GetWorldPosition());
+ // Remove us from our parent
+ GetSGNode()->DisconnectFromParent();
+ NodeUpdateGS(0.f,true);
+ // the object is now a root object, add it to the parentlist
+ CListValue* rootlist = scene->GetRootParentList();
+ if (!rootlist->SearchValue(this))
+ // object was not in root list, add it now and increment ref count
+ rootlist->Add(AddRef());
+ }
+}
void KX_GameObject::ProcessReplica(KX_GameObject* replica)
{
@@ -259,12 +311,13 @@ void KX_GameObject::ApplyMovement(const MT_Vector3& dloc,bool local)
void KX_GameObject::ApplyRotation(const MT_Vector3& drot,bool local)
{
MT_Matrix3x3 rotmat(drot);
- rotmat.transpose();
-
- if (m_pPhysicsController1) // (IsDynamic())
- m_pPhysicsController1->RelativeRotate(rotmat,local);
- // in worldspace
+
GetSGNode()->RelativeRotate(rotmat,local);
+
+ if (m_pPhysicsController1) { // (IsDynamic())
+ rotmat.transpose();
+ m_pPhysicsController1->RelativeRotate(rotmat,local);
+ }
}
@@ -657,6 +710,8 @@ PyMethodDef KX_GameObject::Methods[] = {
{"enableRigidBody", (PyCFunction)KX_GameObject::sPyEnableRigidBody,METH_VARARGS},
{"disableRigidBody", (PyCFunction)KX_GameObject::sPyDisableRigidBody,METH_VARARGS},
{"getParent", (PyCFunction)KX_GameObject::sPyGetParent,METH_VARARGS},
+ {"setParent", (PyCFunction)KX_GameObject::sPySetParent,METH_VARARGS},
+ {"removeParent", (PyCFunction)KX_GameObject::sPyRemoveParent,METH_VARARGS},
{"getMesh", (PyCFunction)KX_GameObject::sPyGetMesh,METH_VARARGS},
{"getPhysicsId", (PyCFunction)KX_GameObject::sPyGetPhysicsId,METH_VARARGS},
KX_PYMETHODTABLE(KX_GameObject, getDistanceTo),
@@ -797,6 +852,7 @@ int KX_GameObject::_setattr(const STR_String& attr, PyObject *value) // _setattr
if (PyMatTo(value, rot))
{
NodeSetLocalOrientation(rot);
+ NodeUpdateGS(0.f,true);
return 0;
}
return 1;
@@ -809,6 +865,7 @@ int KX_GameObject::_setattr(const STR_String& attr, PyObject *value) // _setattr
{
rot.setRotation(qrot);
NodeSetLocalOrientation(rot);
+ NodeUpdateGS(0.f,true);
return 0;
}
return 1;
@@ -821,6 +878,7 @@ int KX_GameObject::_setattr(const STR_String& attr, PyObject *value) // _setattr
{
rot.setEuler(erot);
NodeSetLocalOrientation(rot);
+ NodeUpdateGS(0.f,true);
return 0;
}
return 1;
@@ -835,6 +893,7 @@ int KX_GameObject::_setattr(const STR_String& attr, PyObject *value) // _setattr
if (PyVecTo(value, pos))
{
NodeSetLocalPosition(pos);
+ NodeUpdateGS(0.f,true);
return 0;
}
return 1;
@@ -846,6 +905,7 @@ int KX_GameObject::_setattr(const STR_String& attr, PyObject *value) // _setattr
if (PyVecTo(value, scale))
{
NodeSetLocalScale(scale);
+ NodeUpdateGS(0.f,true);
return 0;
}
return 1;
@@ -861,6 +921,8 @@ int KX_GameObject::_setattr(const STR_String& attr, PyObject *value) // _setattr
}
}
+ /* Need to have parent settable here too */
+
return SCA_IObject::_setattr(attr, value);
}
@@ -985,7 +1047,31 @@ PyObject* KX_GameObject::PyGetParent(PyObject* self,
Py_Return;
}
+PyObject* KX_GameObject::PySetParent(PyObject* self,
+ PyObject* args,
+ PyObject* kwds)
+{
+ PyObject* gameobj;
+ if (PyArg_ParseTuple(args, "O!", &KX_GameObject::Type, &gameobj))
+ {
+ // The object we want to set as parent
+ CValue *m_ob = (CValue*)gameobj;
+ KX_GameObject *obj = ((KX_GameObject*)m_ob);
+ KX_Scene *scene = PHY_GetActiveScene();
+
+ this->SetParent(scene, obj);
+ }
+ Py_Return;
+}
+PyObject* KX_GameObject::PyRemoveParent(PyObject* self,
+ PyObject* args,
+ PyObject* kwds)
+{
+ KX_Scene *scene = PHY_GetActiveScene();
+ this->RemoveParent(scene);
+ Py_Return;
+}
PyObject* KX_GameObject::PyGetMesh(PyObject* self,
PyObject* args,
@@ -1116,6 +1202,7 @@ PyObject* KX_GameObject::PySetOrientation(PyObject* self,
if (PyObject_IsMT_Matrix(pylist, 3) && PyMatTo(pylist, matrix))
{
NodeSetLocalOrientation(matrix);
+ NodeUpdateGS(0.f,true);
Py_Return;
}
@@ -1124,6 +1211,7 @@ PyObject* KX_GameObject::PySetOrientation(PyObject* self,
{
matrix.setRotation(quat);
NodeSetLocalOrientation(matrix);
+ NodeUpdateGS(0.f,true);
Py_Return;
}
}
diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h
index 945b769d8be..87775e81216 100644
--- a/source/gameengine/Ketsji/KX_GameObject.h
+++ b/source/gameengine/Ketsji/KX_GameObject.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* General KX game object.
*/
@@ -47,6 +44,7 @@
#include "MT_CmMatrix4x4.h"
#include "GEN_Map.h"
#include "GEN_HashedPtr.h"
+#include "KX_Scene.h"
#define KX_FIXED_FRAME_PER_SEC 25.0f
#define KX_FIXED_SEC_PER_FRAME (1.0f / KX_FIXED_FRAME_PER_SEC)
@@ -134,6 +132,15 @@ public:
GetParent(
);
+ /**
+ * Sets the parent of this object to a game object
+ */
+ void SetParent(KX_Scene *scene, KX_GameObject *obj);
+
+ /**
+ * Removes the parent of this object to a game object
+ */
+ void RemoveParent(KX_Scene *scene);
/**
* Construct a game object. This class also inherits the
@@ -628,6 +635,8 @@ public:
KX_PYMETHOD(KX_GameObject,SetCollisionMargin);
KX_PYMETHOD(KX_GameObject,GetMesh);
KX_PYMETHOD(KX_GameObject,GetParent);
+ KX_PYMETHOD(KX_GameObject,SetParent);
+ KX_PYMETHOD(KX_GameObject,RemoveParent);
KX_PYMETHOD(KX_GameObject,GetPhysicsId);
KX_PYMETHOD_DOC(KX_GameObject,rayCastTo);
KX_PYMETHOD_DOC(KX_GameObject,getDistanceTo);
diff --git a/source/gameengine/Ketsji/KX_IInterpolator.h b/source/gameengine/Ketsji/KX_IInterpolator.h
index 6a59f537c8d..8c899a4db0b 100644
--- a/source/gameengine/Ketsji/KX_IInterpolator.h
+++ b/source/gameengine/Ketsji/KX_IInterpolator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_IINTERPOLATOR_H
#define KX_IINTERPOLATOR_H
diff --git a/source/gameengine/Ketsji/KX_IPOTransform.h b/source/gameengine/Ketsji/KX_IPOTransform.h
index 45c6d0d9459..f98cc1b2a75 100644
--- a/source/gameengine/Ketsji/KX_IPOTransform.h
+++ b/source/gameengine/Ketsji/KX_IPOTransform.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_IPOTRANSFORM_H
diff --git a/source/gameengine/Ketsji/KX_IPO_SGController.cpp b/source/gameengine/Ketsji/KX_IPO_SGController.cpp
index a4cb9970492..5303e9a9e85 100644
--- a/source/gameengine/Ketsji/KX_IPO_SGController.cpp
+++ b/source/gameengine/Ketsji/KX_IPO_SGController.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Scenegraph controller for ipos.
*/
diff --git a/source/gameengine/Ketsji/KX_IPO_SGController.h b/source/gameengine/Ketsji/KX_IPO_SGController.h
index 1ebd6900741..7b5a151b41c 100644
--- a/source/gameengine/Ketsji/KX_IPO_SGController.h
+++ b/source/gameengine/Ketsji/KX_IPO_SGController.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __IPO_SGCONTROLLER_H
#define __IPO_SGCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_IPhysicsController.cpp b/source/gameengine/Ketsji/KX_IPhysicsController.cpp
index c2328e45435..5cd66efd965 100644
--- a/source/gameengine/Ketsji/KX_IPhysicsController.cpp
+++ b/source/gameengine/Ketsji/KX_IPhysicsController.cpp
@@ -2,15 +2,12 @@
* @file KX_IPhysicsController.cpp
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_IPhysicsController.h"
diff --git a/source/gameengine/Ketsji/KX_IPhysicsController.h b/source/gameengine/Ketsji/KX_IPhysicsController.h
index faf32bccbcd..009db40d3e8 100644
--- a/source/gameengine/Ketsji/KX_IPhysicsController.h
+++ b/source/gameengine/Ketsji/KX_IPhysicsController.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_IPHYSICSCONTROLLER_H
#define __KX_IPHYSICSCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_IScalarInterpolator.h b/source/gameengine/Ketsji/KX_IScalarInterpolator.h
index f5d23d3e4e0..6ba685885e9 100644
--- a/source/gameengine/Ketsji/KX_IScalarInterpolator.h
+++ b/source/gameengine/Ketsji/KX_IScalarInterpolator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_ISCALARINTERPOLATOR_H
#define KX_ISCALARINTERPOLATOR_H
diff --git a/source/gameengine/Ketsji/KX_ISceneConverter.h b/source/gameengine/Ketsji/KX_ISceneConverter.h
index b2ec49b31ac..bba289bf891 100644
--- a/source/gameengine/Ketsji/KX_ISceneConverter.h
+++ b/source/gameengine/Ketsji/KX_ISceneConverter.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ISCENECONVERTER_H
#define __KX_ISCENECONVERTER_H
diff --git a/source/gameengine/Ketsji/KX_ISystem.h b/source/gameengine/Ketsji/KX_ISystem.h
index bf404bd3af7..204e116e822 100644
--- a/source/gameengine/Ketsji/KX_ISystem.h
+++ b/source/gameengine/Ketsji/KX_ISystem.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ISYSTEM
diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp
index 287634fc7ec..0f9caa456d9 100644
--- a/source/gameengine/Ketsji/KX_IpoActuator.cpp
+++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#if defined (__sgi)
diff --git a/source/gameengine/Ketsji/KX_IpoActuator.h b/source/gameengine/Ketsji/KX_IpoActuator.h
index 9a7d1a92751..79e8daa3f87 100644
--- a/source/gameengine/Ketsji/KX_IpoActuator.h
+++ b/source/gameengine/Ketsji/KX_IpoActuator.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_IPOACTUATOR
diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
index 03ad5109adc..c098f37efa8 100644
--- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
+++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* The engine ties all game modules together.
*/
diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.h b/source/gameengine/Ketsji/KX_KetsjiEngine.h
index fcb4d0a0790..bc2e3864be8 100644
--- a/source/gameengine/Ketsji/KX_KetsjiEngine.h
+++ b/source/gameengine/Ketsji/KX_KetsjiEngine.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
#ifndef __KX_KETSJI_ENGINE
diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp
index 4a92ea4ac13..3ae09c01270 100644
--- a/source/gameengine/Ketsji/KX_Light.cpp
+++ b/source/gameengine/Ketsji/KX_Light.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Ketsji/KX_Light.h b/source/gameengine/Ketsji/KX_Light.h
index 11fe7155c82..236d3e4e12e 100644
--- a/source/gameengine/Ketsji/KX_Light.h
+++ b/source/gameengine/Ketsji/KX_Light.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_LIGHT
#define __KX_LIGHT
diff --git a/source/gameengine/Ketsji/KX_LightIpoSGController.cpp b/source/gameengine/Ketsji/KX_LightIpoSGController.cpp
index 45865b7a682..8aefd959134 100644
--- a/source/gameengine/Ketsji/KX_LightIpoSGController.cpp
+++ b/source/gameengine/Ketsji/KX_LightIpoSGController.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_LightIpoSGController.h"
diff --git a/source/gameengine/Ketsji/KX_LightIpoSGController.h b/source/gameengine/Ketsji/KX_LightIpoSGController.h
index deba37540d5..98870cf5b3f 100644
--- a/source/gameengine/Ketsji/KX_LightIpoSGController.h
+++ b/source/gameengine/Ketsji/KX_LightIpoSGController.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_LIGHTIPOSGCONTROLLER_H
#define KX_LIGHTIPOSGCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp
index ebca3e13d7f..5c8fef1fca0 100644
--- a/source/gameengine/Ketsji/KX_MeshProxy.cpp
+++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h
index 9a8aa2a6f33..7c6202c15a4 100644
--- a/source/gameengine/Ketsji/KX_MeshProxy.h
+++ b/source/gameengine/Ketsji/KX_MeshProxy.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_MESHPROXY
#define __KX_MESHPROXY
diff --git a/source/gameengine/Ketsji/KX_MotionState.cpp b/source/gameengine/Ketsji/KX_MotionState.cpp
index cd01c0466cd..15f100af915 100644
--- a/source/gameengine/Ketsji/KX_MotionState.cpp
+++ b/source/gameengine/Ketsji/KX_MotionState.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_MotionState.h"
#include "SG_Spatial.h"
diff --git a/source/gameengine/Ketsji/KX_MotionState.h b/source/gameengine/Ketsji/KX_MotionState.h
index d62dc1ed097..c83af664817 100644
--- a/source/gameengine/Ketsji/KX_MotionState.h
+++ b/source/gameengine/Ketsji/KX_MotionState.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_MOTIONSTATE
#define __KX_MOTIONSTATE
diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
index 431efa07e0a..60b90138abe 100644
--- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
+++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* KX_MouseFocusSensor determines mouse in/out/over events.
*/
diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.h b/source/gameengine/Ketsji/KX_MouseFocusSensor.h
index cf7af709c48..86f32fbf4be 100644
--- a/source/gameengine/Ketsji/KX_MouseFocusSensor.h
+++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* KX_MouseFocusSensor determines mouse in/out/over events.
*/
diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp
index 8f85a889d21..4086ac53f2a 100644
--- a/source/gameengine/Ketsji/KX_NearSensor.cpp
+++ b/source/gameengine/Ketsji/KX_NearSensor.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_NearSensor.h"
@@ -78,6 +75,21 @@ KX_NearSensor::KX_NearSensor(SCA_EventManager* eventmgr,
SynchronizeTransform();
}
+void KX_NearSensor::SynchronizeTransform()
+{
+ // The near and radar sensors are using a different physical object which is
+ // not linked to the parent object, must synchronize it.
+ if (m_physCtrl)
+ {
+ KX_GameObject* parent = ((KX_GameObject*)GetParent());
+ MT_Vector3 pos = parent->NodeGetWorldPosition();
+ MT_Quaternion orn = parent->NodeGetWorldOrientation().getRotation();
+ m_physCtrl->setPosition(pos.x(),pos.y(),pos.z());
+ m_physCtrl->setOrientation(orn.x(),orn.y(),orn.z(),orn.w());
+ m_physCtrl->calcXform();
+ }
+}
+
void KX_NearSensor::RegisterSumo(KX_TouchEventManager *touchman)
{
if (m_physCtrl)
diff --git a/source/gameengine/Ketsji/KX_NearSensor.h b/source/gameengine/Ketsji/KX_NearSensor.h
index 599d6cce918..c6724caccc3 100644
--- a/source/gameengine/Ketsji/KX_NearSensor.h
+++ b/source/gameengine/Ketsji/KX_NearSensor.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_NEARSENSOR_H
@@ -71,6 +68,7 @@ public:
PyTypeObject* T=&Type);
*/
virtual ~KX_NearSensor();
+ virtual void SynchronizeTransform();
virtual CValue* GetReplica();
virtual bool Evaluate(CValue* event);
diff --git a/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp b/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp
index b6d385da8ca..2b2f5d1b1ab 100644
--- a/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp
+++ b/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_ObColorIpoSGController.h"
diff --git a/source/gameengine/Ketsji/KX_ObColorIpoSGController.h b/source/gameengine/Ketsji/KX_ObColorIpoSGController.h
index 02a58ffd95a..6d63dd77683 100644
--- a/source/gameengine/Ketsji/KX_ObColorIpoSGController.h
+++ b/source/gameengine/Ketsji/KX_ObColorIpoSGController.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_OBCOLORIPOSGCONTROLLER_H
#define KX_OBCOLORIPOSGCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp
index 74f3dd1ef3b..22a406792f9 100644
--- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_ObjectActuator.h"
diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.h b/source/gameengine/Ketsji/KX_ObjectActuator.h
index 1ef3e34625a..edbae154b8b 100644
--- a/source/gameengine/Ketsji/KX_ObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_ObjectActuator.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_OBJECTACTUATOR
diff --git a/source/gameengine/Ketsji/KX_OdePhysicsController.cpp b/source/gameengine/Ketsji/KX_OdePhysicsController.cpp
index 58c04d34149..4e45ce484e3 100644
--- a/source/gameengine/Ketsji/KX_OdePhysicsController.cpp
+++ b/source/gameengine/Ketsji/KX_OdePhysicsController.cpp
@@ -1,7 +1,7 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* The contents of this file may be used under the terms of either the GNU
* General Public License Version 2 or later (the "GPL", see
@@ -17,7 +17,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_ConvertPhysicsObject.h"
diff --git a/source/gameengine/Ketsji/KX_OdePhysicsController.h b/source/gameengine/Ketsji/KX_OdePhysicsController.h
index f5bc7dee165..07a0bee9775 100644
--- a/source/gameengine/Ketsji/KX_OdePhysicsController.h
+++ b/source/gameengine/Ketsji/KX_OdePhysicsController.h
@@ -1,7 +1,7 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* The contents of this file may be used under the terms of either the GNU
* General Public License Version 2 or later (the "GPL", see
@@ -17,7 +17,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_ODEPHYSICSCONTROLLER_H
#define __KX_ODEPHYSICSCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_OrientationInterpolator.cpp b/source/gameengine/Ketsji/KX_OrientationInterpolator.cpp
index 3d65e18a7d0..4b9f7d6e817 100644
--- a/source/gameengine/Ketsji/KX_OrientationInterpolator.cpp
+++ b/source/gameengine/Ketsji/KX_OrientationInterpolator.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_OrientationInterpolator.h"
diff --git a/source/gameengine/Ketsji/KX_OrientationInterpolator.h b/source/gameengine/Ketsji/KX_OrientationInterpolator.h
index 1fb91ef785d..2bd9f69d824 100644
--- a/source/gameengine/Ketsji/KX_OrientationInterpolator.h
+++ b/source/gameengine/Ketsji/KX_OrientationInterpolator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_ORIENTATIONINTERPOLATOR
#define KX_ORIENTATIONINTERPOLATOR
diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp
new file mode 100644
index 00000000000..5c433cb68b1
--- /dev/null
+++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp
@@ -0,0 +1,172 @@
+/**
+ * Set or remove an objects parent
+ *
+ * $Id: SCA_ParentActuator.cpp 13932 2008-03-01 19:05:41Z ben2610 $
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include "KX_ParentActuator.h"
+#include "KX_GameObject.h"
+#include "KX_PythonInit.h"
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+/* ------------------------------------------------------------------------- */
+/* Native functions */
+/* ------------------------------------------------------------------------- */
+
+KX_ParentActuator::KX_ParentActuator(SCA_IObject *gameobj,
+ int mode,
+ CValue *ob,
+ PyTypeObject* T)
+ : SCA_IActuator(gameobj, T),
+ m_mode(mode),
+ m_ob(ob)
+{
+}
+
+
+
+KX_ParentActuator::~KX_ParentActuator()
+{
+ /* intentionally empty */
+}
+
+
+
+CValue* KX_ParentActuator::GetReplica()
+{
+ KX_ParentActuator* replica = new KX_ParentActuator(*this);
+ // replication just copy the m_base pointer => common random generator
+ replica->ProcessReplica();
+ CValue::AddDataToReplica(replica);
+
+ return replica;
+}
+
+
+
+bool KX_ParentActuator::Update()
+{
+ KX_GameObject *obj = (KX_GameObject*) GetParent();
+ KX_Scene *scene = PHY_GetActiveScene();
+ switch (m_mode) {
+ case KX_PARENT_SET:
+ obj->SetParent(scene, (KX_GameObject*)m_ob);
+ break;
+ case KX_PARENT_REMOVE:
+ obj->RemoveParent(scene);
+ break;
+ };
+
+ return false;
+}
+
+/* ------------------------------------------------------------------------- */
+/* Python functions */
+/* ------------------------------------------------------------------------- */
+
+/* Integration hooks ------------------------------------------------------- */
+PyTypeObject KX_ParentActuator::Type = {
+ PyObject_HEAD_INIT(&PyType_Type)
+ 0,
+ "KX_ParentActuator",
+ sizeof(KX_ParentActuator),
+ 0,
+ PyDestructor,
+ 0,
+ __getattr,
+ __setattr,
+ 0, //&MyPyCompare,
+ __repr,
+ 0, //&cvalue_as_number,
+ 0,
+ 0,
+ 0,
+ 0
+};
+
+PyParentObject KX_ParentActuator::Parents[] = {
+ &KX_ParentActuator::Type,
+ &SCA_IActuator::Type,
+ &SCA_ILogicBrick::Type,
+ &CValue::Type,
+ NULL
+};
+
+PyMethodDef KX_ParentActuator::Methods[] = {
+ {"setObject", (PyCFunction) KX_ParentActuator::sPySetObject, METH_VARARGS, SetObject_doc},
+ {"getObject", (PyCFunction) KX_ParentActuator::sPyGetObject, METH_VARARGS, GetObject_doc},
+ {NULL,NULL} //Sentinel
+};
+
+PyObject* KX_ParentActuator::_getattr(const STR_String& attr) {
+ _getattr_up(SCA_IActuator);
+}
+
+/* 1. setObject */
+char KX_ParentActuator::SetObject_doc[] =
+"setObject(object)\n"
+"\tSet the object to set as parent.\n"
+"\tCan be an object name or an object\n";
+PyObject* KX_ParentActuator::PySetObject(PyObject* self, PyObject* args, PyObject* kwds) {
+ PyObject* gameobj;
+ if (PyArg_ParseTuple(args, "O!", &KX_GameObject::Type, &gameobj))
+ {
+ m_ob = (CValue*)gameobj;
+ Py_Return;
+ }
+ PyErr_Clear();
+
+ char* objectname;
+ if (PyArg_ParseTuple(args, "s", &objectname))
+ {
+ CValue *object = (CValue*)SCA_ILogicBrick::m_sCurrentLogicManager->GetGameObjectByName(STR_String(objectname));
+ if(object)
+ {
+ m_ob = object;
+ Py_Return;
+ }
+ }
+
+ return NULL;
+}
+
+/* 2. getObject */
+char KX_ParentActuator::GetObject_doc[] =
+"getObject()\n"
+"\tReturns the object that is set to.\n";
+PyObject* KX_ParentActuator::PyGetObject(PyObject* self, PyObject* args, PyObject* kwds) {
+ return PyString_FromString(m_ob->GetName());
+}
+
+/* eof */
diff --git a/source/gameengine/Ketsji/KX_ParentActuator.h b/source/gameengine/Ketsji/KX_ParentActuator.h
new file mode 100644
index 00000000000..86dcd4e6c12
--- /dev/null
+++ b/source/gameengine/Ketsji/KX_ParentActuator.h
@@ -0,0 +1,86 @@
+/**
+ * Set or remove an objects parent
+ *
+ *
+ * $Id: KX_ParentActuator.h 3271 2004-10-16 11:41:50Z kester $
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef __KX_PARENTACTUATOR
+#define __KX_PARENTACTUATOR
+
+#include "SCA_IActuator.h"
+#include "SCA_LogicManager.h"
+
+class KX_ParentActuator : public SCA_IActuator
+{
+ Py_Header;
+
+ /** Mode */
+ int m_mode;
+
+ /** Object to set as parent */
+ CValue *m_ob;
+
+
+
+ public:
+ enum KX_PARENTACT_MODE
+ {
+ KX_PARENT_NODEF = 0,
+ KX_PARENT_SET,
+ KX_PARENT_REMOVE,
+
+ };
+
+ KX_ParentActuator(class SCA_IObject* gameobj,
+ int mode,
+ CValue *ob,
+ PyTypeObject* T=&Type);
+ virtual ~KX_ParentActuator();
+ virtual bool Update();
+
+ virtual CValue* GetReplica();
+
+ /* --------------------------------------------------------------------- */
+ /* Python interface ---------------------------------------------------- */
+ /* --------------------------------------------------------------------- */
+
+ virtual PyObject* _getattr(const STR_String& attr);
+
+ /* 1. setObject */
+ KX_PYMETHOD_DOC(KX_ParentActuator,SetObject);
+ /* 2. getObject */
+ KX_PYMETHOD_DOC(KX_ParentActuator,GetObject);
+
+}; /* end of class KX_ParentActuator : public SCA_PropertyActuator */
+
+#endif
+
diff --git a/source/gameengine/Ketsji/KX_PhysicsEngineEnums.h b/source/gameengine/Ketsji/KX_PhysicsEngineEnums.h
index bafc8620dfd..33e562eba57 100644
--- a/source/gameengine/Ketsji/KX_PhysicsEngineEnums.h
+++ b/source/gameengine/Ketsji/KX_PhysicsEngineEnums.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_PHYSICSENGINEENUMS
#define __KX_PHYSICSENGINEENUMS
diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
index 1bd5a0b3d42..27cfaefc076 100644
--- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <Python.h>
#include "KX_PhysicsObjectWrapper.h"
diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
index 3de94795b16..3dbd1be9323 100644
--- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
+++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef PHYP_PHYSICSOBJECT_WRAPPER
#define PHYP_PHYSICSOBJECT_WRAPPER
diff --git a/source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h b/source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h
index 09d9cffce98..0f30c18999f 100644
--- a/source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h
+++ b/source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_PROPSH
#define KX_PROPSH
diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
index 5a15a0375dc..93d6d5bb70d 100644
--- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.h b/source/gameengine/Ketsji/KX_PolygonMaterial.h
index a9bcba98a78..19015494e06 100644
--- a/source/gameengine/Ketsji/KX_PolygonMaterial.h
+++ b/source/gameengine/Ketsji/KX_PolygonMaterial.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_POLYGONMATERIAL_H__
#define __KX_POLYGONMATERIAL_H__
diff --git a/source/gameengine/Ketsji/KX_PositionInterpolator.cpp b/source/gameengine/Ketsji/KX_PositionInterpolator.cpp
index eb8edcdca94..353c35a2f5a 100644
--- a/source/gameengine/Ketsji/KX_PositionInterpolator.cpp
+++ b/source/gameengine/Ketsji/KX_PositionInterpolator.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_PositionInterpolator.h"
diff --git a/source/gameengine/Ketsji/KX_PositionInterpolator.h b/source/gameengine/Ketsji/KX_PositionInterpolator.h
index 71f5b354088..bff0b4201c2 100644
--- a/source/gameengine/Ketsji/KX_PositionInterpolator.h
+++ b/source/gameengine/Ketsji/KX_PositionInterpolator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_POSITIONINTERPOLATOR
#define KX_POSITIONINTERPOLATOR
diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
index 6fbf2888bd9..172882ff18d 100644
--- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
+++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_PyConstraintBinding.h"
#include "PHY_IPhysicsEnvironment.h"
diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.h b/source/gameengine/Ketsji/KX_PyConstraintBinding.h
index a8651a175c2..b898cba3796 100644
--- a/source/gameengine/Ketsji/KX_PyConstraintBinding.h
+++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef PHY_PYTHON_CONSTRAINTBINDING
#define PHY_PYTHON_CONSTRAINTBINDING
diff --git a/source/gameengine/Ketsji/KX_PyMath.cpp b/source/gameengine/Ketsji/KX_PyMath.cpp
index 1eee4e7043c..afb20acec2d 100644
--- a/source/gameengine/Ketsji/KX_PyMath.cpp
+++ b/source/gameengine/Ketsji/KX_PyMath.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Initialize Python thingies.
*/
diff --git a/source/gameengine/Ketsji/KX_PyMath.h b/source/gameengine/Ketsji/KX_PyMath.h
index 96a3431fe07..e1715c9275f 100644
--- a/source/gameengine/Ketsji/KX_PyMath.h
+++ b/source/gameengine/Ketsji/KX_PyMath.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Initialize Python thingies.
*/
diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp
index 58369ddcab6..a2aff54d385 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInit.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Initialize Python thingies.
*/
@@ -44,13 +41,15 @@
#include <OpenGL/glu.h>
#else
#include <GL/gl.h>
-#if defined(__sun__) && !defined(__sparc__)
+/* #if defined(__sun__) && !defined(__sparc__)
#include <mesa/glu.h>
-#else
+#else */
#include <GL/glu.h>
-#endif
+/* #endif */
#endif
+#include <stdlib.h>
+
#ifdef WIN32
#pragma warning (disable : 4786)
#endif //WIN32
@@ -335,16 +334,18 @@ static PyObject *pyPrintExt(PyObject *,PyObject *,PyObject *)
pprint("");
}
#endif
-#ifdef GL_ARB_multitexture
- support = ext._ARB_multitexture;
- count = 1;
- pprint(" GL_ARB_multitexture supported? "<< (support?"yes.":"no."));
- if(support){
- pprint(" ----------Details----------");
- int units=0;
- glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&units);
- pprint(" Max texture units available. " << units);
- pprint("");
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ support = ext._ARB_multitexture;
+ count = 1;
+ pprint(" GL_ARB_multitexture supported? "<< (support?"yes.":"no."));
+ if(support){
+ pprint(" ----------Details----------");
+ int units=0;
+ glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&units);
+ pprint(" Max texture units available. " << units);
+ pprint("");
+ }
}
#endif
#ifdef GL_ARB_texture_env_combine
diff --git a/source/gameengine/Ketsji/KX_PythonInit.h b/source/gameengine/Ketsji/KX_PythonInit.h
index edb7cfe4a3f..c7d8f1b78bc 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.h
+++ b/source/gameengine/Ketsji/KX_PythonInit.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_PYTHON_INIT
#define __KX_PYTHON_INIT
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp
index 5d56eaabb5a..31fffffa3c1 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.cpp
+++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_RadarSensor.h"
@@ -127,27 +124,48 @@ void KX_RadarSensor::SynchronizeTransform()
// depends on the radar 'axis'
switch (m_axis)
{
- case 0: // X Axis
+ case 0: // +X Axis
{
MT_Quaternion rotquatje(MT_Vector3(0,0,1),MT_radians(90));
trans.rotate(rotquatje);
trans.translate(MT_Vector3 (0, -m_coneheight/2.0 ,0));
break;
};
- case 1: // Y Axis
+ case 1: // +Y Axis
{
MT_Quaternion rotquatje(MT_Vector3(1,0,0),MT_radians(-180));
trans.rotate(rotquatje);
trans.translate(MT_Vector3 (0, -m_coneheight/2.0 ,0));
break;
};
- case 2: // Z Axis
+ case 2: // +Z Axis
{
MT_Quaternion rotquatje(MT_Vector3(1,0,0),MT_radians(-90));
trans.rotate(rotquatje);
trans.translate(MT_Vector3 (0, -m_coneheight/2.0 ,0));
break;
};
+ case 3: // -X Axis
+ {
+ MT_Quaternion rotquatje(MT_Vector3(0,0,1),MT_radians(90));
+ trans.rotate(rotquatje);
+ trans.translate(MT_Vector3 (0, m_coneheight/2.0 ,0));
+ break;
+ };
+ case 4: // -Y Axis
+ {
+ MT_Quaternion rotquatje(MT_Vector3(1,0,0),MT_radians(-180));
+ trans.rotate(rotquatje);
+ trans.translate(MT_Vector3 (0, m_coneheight/2.0 ,0));
+ break;
+ };
+ case 5: // -Z Axis
+ {
+ MT_Quaternion rotquatje(MT_Vector3(1,0,0),MT_radians(-90));
+ trans.rotate(rotquatje);
+ trans.translate(MT_Vector3 (0, m_coneheight/2.0 ,0));
+ break;
+ };
default:
{
}
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.h b/source/gameengine/Ketsji/KX_RadarSensor.h
index 4f5ff994b40..7272b219e37 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.h
+++ b/source/gameengine/Ketsji/KX_RadarSensor.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_RADAR_SENSOR_H
#define __KX_RADAR_SENSOR_H
diff --git a/source/gameengine/Ketsji/KX_RayCast.cpp b/source/gameengine/Ketsji/KX_RayCast.cpp
index ea17e0b3dd6..ce7ed984985 100644
--- a/source/gameengine/Ketsji/KX_RayCast.cpp
+++ b/source/gameengine/Ketsji/KX_RayCast.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* KX_MouseFocusSensor determines mouse in/out/over events.
*/
diff --git a/source/gameengine/Ketsji/KX_RayCast.h b/source/gameengine/Ketsji/KX_RayCast.h
index 8bb21e28aca..607dabd8afc 100644
--- a/source/gameengine/Ketsji/KX_RayCast.h
+++ b/source/gameengine/Ketsji/KX_RayCast.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_RAYCAST_H__
diff --git a/source/gameengine/Ketsji/KX_RayEventManager.cpp b/source/gameengine/Ketsji/KX_RayEventManager.cpp
index 0fb1cee6446..4101c6b547e 100644
--- a/source/gameengine/Ketsji/KX_RayEventManager.cpp
+++ b/source/gameengine/Ketsji/KX_RayEventManager.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_RayEventManager.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/Ketsji/KX_RayEventManager.h b/source/gameengine/Ketsji/KX_RayEventManager.h
index 8aa1ed990cd..3630f9682b9 100644
--- a/source/gameengine/Ketsji/KX_RayEventManager.h
+++ b/source/gameengine/Ketsji/KX_RayEventManager.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_RAYEVENTMGR
diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp
index 5c56f8f62b1..a85dc61cac8 100644
--- a/source/gameengine/Ketsji/KX_RaySensor.cpp
+++ b/source/gameengine/Ketsji/KX_RaySensor.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_RaySensor.h"
diff --git a/source/gameengine/Ketsji/KX_RaySensor.h b/source/gameengine/Ketsji/KX_RaySensor.h
index 0e05c6021c0..8a317ffaa07 100644
--- a/source/gameengine/Ketsji/KX_RaySensor.h
+++ b/source/gameengine/Ketsji/KX_RaySensor.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_RAYSENSOR_H
diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
index 7366e374a10..76ce086ab97 100644
--- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
@@ -3,15 +3,12 @@
//
// $Id$
//
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License. See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
//
// Contributor(s): none yet.
//
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
// Previously existed as:
// \source\gameengine\GameLogic\SCA_AddObjectActuator.cpp
diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
index 60adcb27b12..2126a646303 100644
--- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
@@ -5,15 +5,12 @@
//
// $Id$
//
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License. See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
//
// Contributor(s): none yet.
//
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
//
// Previously existed as:
// \source\gameengine\GameLogic\SCA_AddObjectActuator.h
diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
index 1df1ad1f27a..ec29448907f 100644
--- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
//
diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
index ca77d80027d..add9c05b000 100644
--- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
@@ -3,15 +3,12 @@
//
// $Id$
//
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License. See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
//
// Contributor(s): none yet.
//
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
//
// Previously existed as:
// \source\gameengine\GameLogic\SCA_EndObjectActuator.h
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
index 221d531a1c2..630df2d21d9 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
@@ -3,15 +3,12 @@
//
// $Id$
//
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License. See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
//
// Contributor(s): none yet.
//
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
//
// Previously existed as:
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
index 339fce54c49..5ba0a099b14 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
@@ -3,15 +3,12 @@
//
// $Id$
//
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License. See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
//
// Contributor(s): none yet.
//
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
//
// Previously existed as:
// \source\gameengine\GameLogic\SCA_ReplaceMeshActuator.h
diff --git a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
index 632cb753240..f085ff435dc 100644
--- a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
+++ b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <iostream>
diff --git a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
index 1f816726264..2a19d8a1784 100644
--- a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
+++ b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
@@ -12,20 +12,16 @@
* KX_VertexParentRelation only location information is
* inherited by the child.
*
- * @see SG_ParentRelation for more information about this
* interface
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -43,7 +39,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
index 540e14d06ea..0c8e7e28771 100644
--- a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
+++ b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_SG_NodeRelationships.h"
diff --git a/source/gameengine/Ketsji/KX_SG_NodeRelationships.h b/source/gameengine/Ketsji/KX_SG_NodeRelationships.h
index f434cb5b648..d83fb79ee25 100644
--- a/source/gameengine/Ketsji/KX_SG_NodeRelationships.h
+++ b/source/gameengine/Ketsji/KX_SG_NodeRelationships.h
@@ -12,20 +12,16 @@
* KX_VertexParentRelation only location information is
* inherited by the child.
*
- * @see SG_ParentRelation for more information about this
* interface
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -43,7 +39,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/gameengine/Ketsji/KX_ScalarInterpolator.cpp b/source/gameengine/Ketsji/KX_ScalarInterpolator.cpp
index 5e036600119..fa73aa9478b 100644
--- a/source/gameengine/Ketsji/KX_ScalarInterpolator.cpp
+++ b/source/gameengine/Ketsji/KX_ScalarInterpolator.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_ScalarInterpolator.h"
diff --git a/source/gameengine/Ketsji/KX_ScalarInterpolator.h b/source/gameengine/Ketsji/KX_ScalarInterpolator.h
index 72e8203d3c4..8835c98c184 100644
--- a/source/gameengine/Ketsji/KX_ScalarInterpolator.h
+++ b/source/gameengine/Ketsji/KX_ScalarInterpolator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_SCALARINTERPOLATOR
#define KX_SCALARINTERPOLATOR
diff --git a/source/gameengine/Ketsji/KX_ScalingInterpolator.cpp b/source/gameengine/Ketsji/KX_ScalingInterpolator.cpp
index c645eb6a3ea..8813cbd44d6 100644
--- a/source/gameengine/Ketsji/KX_ScalingInterpolator.cpp
+++ b/source/gameengine/Ketsji/KX_ScalingInterpolator.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_ScalingInterpolator.h"
diff --git a/source/gameengine/Ketsji/KX_ScalingInterpolator.h b/source/gameengine/Ketsji/KX_ScalingInterpolator.h
index 25c5cc87d83..a7b5d7e559a 100644
--- a/source/gameengine/Ketsji/KX_ScalingInterpolator.h
+++ b/source/gameengine/Ketsji/KX_ScalingInterpolator.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_SCALINGINTERPOLATOR
#define KX_SCALINGINTERPOLATOR
diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp
index b2557a69527..0fbabe8d6a2 100644
--- a/source/gameengine/Ketsji/KX_Scene.cpp
+++ b/source/gameengine/Ketsji/KX_Scene.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Ketsji scene. Holds references to all scene data.
*/
@@ -181,7 +178,11 @@ KX_Scene::KX_Scene(class SCA_IInputDevice* keyboarddevice,
KX_Scene::~KX_Scene()
{
-
+ // The release of debug properties used to be in SCA_IScene::~SCA_IScene
+ // It's still there but we remove all properties here otherwise some
+ // reference might be hanging and causing late release of objects
+ RemoveAllDebugProperties();
+
while (GetRootParentList()->GetCount() > 0)
{
KX_GameObject* parentobj = (KX_GameObject*) GetRootParentList()->GetValue(0);
diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h
index b5de483e8f0..733df2f69a1 100644
--- a/source/gameengine/Ketsji/KX_Scene.h
+++ b/source/gameengine/Ketsji/KX_Scene.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_SCENE_H
#define __KX_SCENE_H
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp
index a37fce434be..8f7cffd506f 100644
--- a/source/gameengine/Ketsji/KX_SceneActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SCA_IActuator.h"
@@ -105,6 +102,15 @@ bool KX_SceneActuator::Update()
{
m_scene->SetActiveCamera(m_camera);
}
+ else
+ {
+ // if no camera is set and the parent object is a camera, use it as the camera
+ SCA_IObject* parent = GetParent();
+ if (parent->isA(&KX_Camera::Type))
+ {
+ m_scene->SetActiveCamera((KX_Camera*)parent);
+ }
+ }
break;
default:
break;
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.h b/source/gameengine/Ketsji/KX_SceneActuator.h
index 6416e0f48d0..cfc79b93f8e 100644
--- a/source/gameengine/Ketsji/KX_SceneActuator.h
+++ b/source/gameengine/Ketsji/KX_SceneActuator.h
@@ -4,15 +4,12 @@
//
// $Id$
//
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License. See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
//
// Contributor(s): none yet.
//
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
//
#ifndef __KX_SCENEACTUATOR
diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp
index f7a2001fcdf..949156571a7 100644
--- a/source/gameengine/Ketsji/KX_SoundActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/gameengine/Ketsji/KX_SoundActuator.h b/source/gameengine/Ketsji/KX_SoundActuator.h
index 796e202df70..5a9edbc4c5e 100644
--- a/source/gameengine/Ketsji/KX_SoundActuator.h
+++ b/source/gameengine/Ketsji/KX_SoundActuator.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_SOUNDACTUATOR
diff --git a/source/gameengine/Ketsji/KX_SumoPhysicsController.h b/source/gameengine/Ketsji/KX_SumoPhysicsController.h
index d214091a8c6..868465c8f10 100644
--- a/source/gameengine/Ketsji/KX_SumoPhysicsController.h
+++ b/source/gameengine/Ketsji/KX_SumoPhysicsController.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_SUMOPHYSICSCONTROLLER_H
#define __KX_SUMOPHYSICSCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp b/source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp
index 61bd0385972..b75a213fa3b 100644
--- a/source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp
+++ b/source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_TimeCategoryLogger.h"
diff --git a/source/gameengine/Ketsji/KX_TimeCategoryLogger.h b/source/gameengine/Ketsji/KX_TimeCategoryLogger.h
index b96b1202f4c..0cc34b53736 100644
--- a/source/gameengine/Ketsji/KX_TimeCategoryLogger.h
+++ b/source/gameengine/Ketsji/KX_TimeCategoryLogger.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_TIME_CATEGORY_LOGGER_H
diff --git a/source/gameengine/Ketsji/KX_TimeLogger.cpp b/source/gameengine/Ketsji/KX_TimeLogger.cpp
index 766c541b4fc..db4a67aa766 100644
--- a/source/gameengine/Ketsji/KX_TimeLogger.cpp
+++ b/source/gameengine/Ketsji/KX_TimeLogger.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_TimeLogger.h"
diff --git a/source/gameengine/Ketsji/KX_TimeLogger.h b/source/gameengine/Ketsji/KX_TimeLogger.h
index ab3d721e7d2..0962f02a877 100644
--- a/source/gameengine/Ketsji/KX_TimeLogger.h
+++ b/source/gameengine/Ketsji/KX_TimeLogger.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_TIME_LOGGER_H
diff --git a/source/gameengine/Ketsji/KX_TouchEventManager.cpp b/source/gameengine/Ketsji/KX_TouchEventManager.cpp
index 8e546b896bc..80ee15a9475 100644
--- a/source/gameengine/Ketsji/KX_TouchEventManager.cpp
+++ b/source/gameengine/Ketsji/KX_TouchEventManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_TouchEventManager.h"
diff --git a/source/gameengine/Ketsji/KX_TouchEventManager.h b/source/gameengine/Ketsji/KX_TouchEventManager.h
index 73b868278db..20ed6126bd0 100644
--- a/source/gameengine/Ketsji/KX_TouchEventManager.h
+++ b/source/gameengine/Ketsji/KX_TouchEventManager.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_TOUCHEVENTMANAGER
#define __KX_TOUCHEVENTMANAGER
diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp
index 7e3904113ab..3f185359de0 100644
--- a/source/gameengine/Ketsji/KX_TouchSensor.cpp
+++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_TouchSensor.h"
@@ -51,18 +48,8 @@
void KX_TouchSensor::SynchronizeTransform()
{
-
- if (m_physCtrl)
- {
-
- KX_GameObject* parent = ((KX_GameObject*)GetParent());
- MT_Vector3 pos = parent->NodeGetWorldPosition();
- MT_Quaternion orn = parent->NodeGetWorldOrientation().getRotation();
- m_physCtrl->setPosition(pos.x(),pos.y(),pos.z());
- m_physCtrl->setOrientation(orn.x(),orn.y(),orn.z(),orn.w());
- m_physCtrl->calcXform();
- }
-
+ // the touch sensor does not require any synchronization: it uses
+ // the same physical object which is already synchronized by Blender
}
diff --git a/source/gameengine/Ketsji/KX_TouchSensor.h b/source/gameengine/Ketsji/KX_TouchSensor.h
index 9781bdb3769..f594196628a 100644
--- a/source/gameengine/Ketsji/KX_TouchSensor.h
+++ b/source/gameengine/Ketsji/KX_TouchSensor.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_TOUCHSENSOR
diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
index 36f0d3c3b99..dc637bf0837 100644
--- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp
+++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
@@ -3,15 +3,12 @@
//
// $Id$
//
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License. See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
//
// Contributor(s): none yet.
//
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
// todo: not all trackflags / upflags are implemented/tested !
// m_trackflag is used to determine the forward tracking direction
diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.h b/source/gameengine/Ketsji/KX_TrackToActuator.h
index 1d257da3f53..944eaadf025 100644
--- a/source/gameengine/Ketsji/KX_TrackToActuator.h
+++ b/source/gameengine/Ketsji/KX_TrackToActuator.h
@@ -3,15 +3,12 @@
//
// $Id$
//
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License. See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
//
// Contributor(s): none yet.
//
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
//
#ifndef __KX_TrackToActuator
diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp
index 9c5f3f611b6..5cec65dff1c 100644
--- a/source/gameengine/Ketsji/KX_VertexProxy.cpp
+++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Ketsji/KX_VertexProxy.h b/source/gameengine/Ketsji/KX_VertexProxy.h
index acae9cf5a34..e154ea11b40 100644
--- a/source/gameengine/Ketsji/KX_VertexProxy.h
+++ b/source/gameengine/Ketsji/KX_VertexProxy.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_VERTEXPROXY
#define __KX_VERTEXPROXY
diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
index 8ec3e05e303..b4693a7a7db 100644
--- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
+++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Actuator to toggle visibility/invisibility of objects
*/
diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.h b/source/gameengine/Ketsji/KX_VisibilityActuator.h
index 9a78eb1cc07..9b4753033fb 100644
--- a/source/gameengine/Ketsji/KX_VisibilityActuator.h
+++ b/source/gameengine/Ketsji/KX_VisibilityActuator.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Actuator to toggle visibility/invisibility of objects
*/
diff --git a/source/gameengine/Ketsji/KX_WorldInfo.cpp b/source/gameengine/Ketsji/KX_WorldInfo.cpp
index c2e696f856e..9b9ed174085 100644
--- a/source/gameengine/Ketsji/KX_WorldInfo.cpp
+++ b/source/gameengine/Ketsji/KX_WorldInfo.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_WorldInfo.h"
diff --git a/source/gameengine/Ketsji/KX_WorldInfo.h b/source/gameengine/Ketsji/KX_WorldInfo.h
index ecc0c04a17b..fe4e0c51b24 100644
--- a/source/gameengine/Ketsji/KX_WorldInfo.h
+++ b/source/gameengine/Ketsji/KX_WorldInfo.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_WORLDINFO_H
#define __KX_WORLDINFO_H
diff --git a/source/gameengine/Ketsji/KX_WorldIpoController.cpp b/source/gameengine/Ketsji/KX_WorldIpoController.cpp
index ded251f391e..e69c9b46ffd 100644
--- a/source/gameengine/Ketsji/KX_WorldIpoController.cpp
+++ b/source/gameengine/Ketsji/KX_WorldIpoController.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "KX_WorldIpoController.h"
diff --git a/source/gameengine/Ketsji/KX_WorldIpoController.h b/source/gameengine/Ketsji/KX_WorldIpoController.h
index 562a2769807..d90c03d09ee 100644
--- a/source/gameengine/Ketsji/KX_WorldIpoController.h
+++ b/source/gameengine/Ketsji/KX_WorldIpoController.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef KX_WORLDIPOCONTROLLER_H
#define KX_WORLDIPOCONTROLLER_H
diff --git a/source/gameengine/Ketsji/Makefile b/source/gameengine/Ketsji/Makefile
index f7813c80a59..e6e541d0931 100644
--- a/source/gameengine/Ketsji/Makefile
+++ b/source/gameengine/Ketsji/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
@@ -65,6 +62,11 @@ CPPFLAGS += -I../../blender/makesdna
CPPFLAGS += -I../../blender/imbuf
CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
+ifeq ($(WITH_BF_GLEXT),true)
+ CPPFLAGS += -DWITH_GLEXT
+endif
+
+
###########################
SOURCEDIR = source/gameengine/Ketsji
diff --git a/source/gameengine/Ketsji/SConscript b/source/gameengine/Ketsji/SConscript
index cb213522f1d..c7c80345796 100644
--- a/source/gameengine/Ketsji/SConscript
+++ b/source/gameengine/Ketsji/SConscript
@@ -25,6 +25,9 @@ if env['OURPLATFORM'] == 'win32-vc':
cflags.append('/GR')
cflags.append('/Ox')
+if env['WITH_BF_GLEXT'] == 1:
+ env['CPPFLAGS'].append('-DWITH_GLEXT')
+
incs += ' ' + env['BF_SOLID_INC']
incs += ' ' + env['BF_PYTHON_INC']
incs += ' ' + env['BF_SDL_INC']
diff --git a/source/gameengine/Makefile b/source/gameengine/Makefile
index 00503e9f8b4..1d3bc8c2058 100644
--- a/source/gameengine/Makefile
+++ b/source/gameengine/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/gameengine/Network/CMakeLists.txt b/source/gameengine/Network/CMakeLists.txt
index df002ca00b7..933f0550d0b 100644
--- a/source/gameengine/Network/CMakeLists.txt
+++ b/source/gameengine/Network/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.cpp)
diff --git a/source/gameengine/Network/LoopBackNetwork/CMakeLists.txt b/source/gameengine/Network/LoopBackNetwork/CMakeLists.txt
index 2ced70eab5a..0b958920dc5 100644
--- a/source/gameengine/Network/LoopBackNetwork/CMakeLists.txt
+++ b/source/gameengine/Network/LoopBackNetwork/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC NG_LoopBackNetworkDeviceInterface.cpp)
diff --git a/source/gameengine/Network/LoopBackNetwork/Makefile b/source/gameengine/Network/LoopBackNetwork/Makefile
index 19fe362b8f7..690fd644094 100644
--- a/source/gameengine/Network/LoopBackNetwork/Makefile
+++ b/source/gameengine/Network/LoopBackNetwork/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp
index e36aa4750af..60b1201d45e 100644
--- a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp
+++ b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* LoopbackNetworkDeviceInterface derived from NG_NetworkDeviceInterface
*/
diff --git a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h
index bedf27b292b..62913c7f911 100644
--- a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h
+++ b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* LoopbackNetworkDeviceInterface derived from NG_NetworkDeviceInterface
*/
#ifndef NG_LOOPBACKNETWORKDEVICEINTERFACE_H
diff --git a/source/gameengine/Network/Makefile b/source/gameengine/Network/Makefile
index dd4819f46e5..c6b22276113 100644
--- a/source/gameengine/Network/Makefile
+++ b/source/gameengine/Network/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Network/NG_NetworkDeviceInterface.h b/source/gameengine/Network/NG_NetworkDeviceInterface.h
index 7975fee540c..4a47774a762 100644
--- a/source/gameengine/Network/NG_NetworkDeviceInterface.h
+++ b/source/gameengine/Network/NG_NetworkDeviceInterface.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* NetworkGameengine_NetworkDeviceInterface
* Functions like (de)initialize network, get library version
* To be derived by loopback and network libraries
diff --git a/source/gameengine/Network/NG_NetworkMessage.cpp b/source/gameengine/Network/NG_NetworkMessage.cpp
index 44f13ae40c4..bc85c9bc353 100644
--- a/source/gameengine/Network/NG_NetworkMessage.cpp
+++ b/source/gameengine/Network/NG_NetworkMessage.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* generic Network Message implementation
*/
#include "NG_NetworkMessage.h"
diff --git a/source/gameengine/Network/NG_NetworkMessage.h b/source/gameengine/Network/NG_NetworkMessage.h
index b3efea402b2..687c8120eca 100644
--- a/source/gameengine/Network/NG_NetworkMessage.h
+++ b/source/gameengine/Network/NG_NetworkMessage.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* NetworkGame_NetworkMessage generic Network Message class
*/
#ifndef NG_NETWORKMESSAGE_H
diff --git a/source/gameengine/Network/NG_NetworkObject.cpp b/source/gameengine/Network/NG_NetworkObject.cpp
index 02805a9f91a..b6a3d93894c 100644
--- a/source/gameengine/Network/NG_NetworkObject.cpp
+++ b/source/gameengine/Network/NG_NetworkObject.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* NetworkGame_NetworkObject generic Network Object implementation
*/
#include "NG_NetworkObject.h"
diff --git a/source/gameengine/Network/NG_NetworkObject.h b/source/gameengine/Network/NG_NetworkObject.h
index b5499010512..c01d76a47fc 100644
--- a/source/gameengine/Network/NG_NetworkObject.h
+++ b/source/gameengine/Network/NG_NetworkObject.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* NetworkGame_NetworkObject generic Network Object class
*/
#ifndef NG_NETWORKOBJECT_H
diff --git a/source/gameengine/Network/NG_NetworkScene.cpp b/source/gameengine/Network/NG_NetworkScene.cpp
index c66eb3730ac..22263a2bdda 100644
--- a/source/gameengine/Network/NG_NetworkScene.cpp
+++ b/source/gameengine/Network/NG_NetworkScene.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* NetworkSceneManagement generic implementation
*/
#include <stdio.h>
diff --git a/source/gameengine/Network/NG_NetworkScene.h b/source/gameengine/Network/NG_NetworkScene.h
index da3855d08bb..58de9cf6af2 100644
--- a/source/gameengine/Network/NG_NetworkScene.h
+++ b/source/gameengine/Network/NG_NetworkScene.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* NetworkSceneManagement generic class
*/
#ifndef __NG_NETWORKSCENE_H
diff --git a/source/gameengine/Network/TerraplayNetwork/Makefile b/source/gameengine/Network/TerraplayNetwork/Makefile
index 6fad0e0ca43..d987263d433 100644
--- a/source/gameengine/Network/TerraplayNetwork/Makefile
+++ b/source/gameengine/Network/TerraplayNetwork/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.cpp b/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.cpp
index 44a7e571b03..40446ca1232 100644
--- a/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.cpp
+++ b/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* TerraplayNetworkDeviceInterface derived from NG_NetworkDeviceInterface
*/
diff --git a/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.h b/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.h
index 384d70838a2..499362b6f8d 100644
--- a/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.h
+++ b/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* TerraplayNetworkDeviceInterface derived from NG_NetworkDeviceInterface
*/
#ifndef NG_TERRAPLAYNETWORKDEVICEINTERFACE_H
diff --git a/source/gameengine/Physics/BlOde/Makefile b/source/gameengine/Physics/BlOde/Makefile
index b85c8b13bc4..1fbbf198377 100644
--- a/source/gameengine/Physics/BlOde/Makefile
+++ b/source/gameengine/Physics/BlOde/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Physics/BlOde/OdePhysicsController.cpp b/source/gameengine/Physics/BlOde/OdePhysicsController.cpp
index a0fe068ab5c..efe4554d970 100644
--- a/source/gameengine/Physics/BlOde/OdePhysicsController.cpp
+++ b/source/gameengine/Physics/BlOde/OdePhysicsController.cpp
@@ -1,7 +1,7 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* The contents of this file may be used under the terms of either the GNU
* General Public License Version 2 or later (the "GPL", see
@@ -17,7 +17,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#define USE_ODE
diff --git a/source/gameengine/Physics/BlOde/OdePhysicsController.h b/source/gameengine/Physics/BlOde/OdePhysicsController.h
index 4f4acb5cd18..d3eb443ed3a 100644
--- a/source/gameengine/Physics/BlOde/OdePhysicsController.h
+++ b/source/gameengine/Physics/BlOde/OdePhysicsController.h
@@ -1,7 +1,7 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* The contents of this file may be used under the terms of either the GNU
* General Public License Version 2 or later (the "GPL", see
@@ -17,7 +17,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __ODE_PHYSICSCONTROLLER_H
#define __ODE_PHYSICSCONTROLLER_H
diff --git a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.cpp b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.cpp
index f6382ec775c..a04560aaf09 100644
--- a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.cpp
@@ -1,7 +1,7 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* The contents of this file may be used under the terms of either the GNU
* General Public License Version 2 or later (the "GPL", see
@@ -17,7 +17,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "OdePhysicsEnvironment.h"
#include "PHY_IMotionState.h"
diff --git a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h
index bddc1e03be1..ec1b7702ffd 100644
--- a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h
+++ b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h
@@ -1,7 +1,7 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* The contents of this file may be used under the terms of either the GNU
* General Public License Version 2 or later (the "GPL", see
@@ -17,7 +17,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _ODEPHYSICSENVIRONMENT
#define _ODEPHYSICSENVIRONMENT
diff --git a/source/gameengine/Physics/Bullet/CMakeLists.txt b/source/gameengine/Physics/Bullet/CMakeLists.txt
index af67d4b126d..b610fd1bbb0 100644
--- a/source/gameengine/Physics/Bullet/CMakeLists.txt
+++ b/source/gameengine/Physics/Bullet/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC CcdPhysicsEnvironment.cpp CcdPhysicsController.cpp)
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
index 25defbd5587..c9d346e316d 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
@@ -581,7 +581,7 @@ void CcdPhysicsEnvironment::setSolverType(int solverType)
{
m_solver = new btSequentialImpulseConstraintSolver();
-
+ ((btSequentialImpulseConstraintSolver*)m_solver)->setSolverMode(btSequentialImpulseConstraintSolver::SOLVER_USE_WARMSTARTING | btSequentialImpulseConstraintSolver::SOLVER_RANDMIZE_ORDER);
break;
}
}
@@ -739,8 +739,8 @@ PHY_IPhysicsController* CcdPhysicsEnvironment::rayTest(PHY_IPhysicsController* i
PHY_IPhysicsController* nearestHit = 0;
-
- m_dynamicsWorld->rayTest(rayFrom,rayTo,rayCallback);
+ // don't collision with sensor object
+ m_dynamicsWorld->rayTest(rayFrom,rayTo,rayCallback, CcdConstructionInfo::AllFilter ^ CcdConstructionInfo::SensorFilter);
if (rayCallback.HasHit())
{
nearestHit = static_cast<CcdPhysicsController*>(rayCallback.m_collisionObject->getUserPointer());
diff --git a/source/gameengine/Physics/Bullet/Makefile b/source/gameengine/Physics/Bullet/Makefile
index a5643b60c94..49259d0a67c 100644
--- a/source/gameengine/Physics/Bullet/Makefile
+++ b/source/gameengine/Physics/Bullet/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Physics/Dummy/CMakeLists.txt b/source/gameengine/Physics/Dummy/CMakeLists.txt
index 4db44a5d42c..4bd29e7779b 100644
--- a/source/gameengine/Physics/Dummy/CMakeLists.txt
+++ b/source/gameengine/Physics/Dummy/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC DummyPhysicsEnvironment.cpp)
diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
index b40d1b430bb..f512d44c9f2 100644
--- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "DummyPhysicsEnvironment.h"
#include "PHY_IMotionState.h"
diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
index 4fc970da699..f0761618e4e 100644
--- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
+++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _DUMMYPHYSICSENVIRONMENT
#define _DUMMYPHYSICSENVIRONMENT
diff --git a/source/gameengine/Physics/Dummy/Makefile b/source/gameengine/Physics/Dummy/Makefile
index 0ecb3fa786a..b0c1b855322 100644
--- a/source/gameengine/Physics/Dummy/Makefile
+++ b/source/gameengine/Physics/Dummy/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Physics/Makefile b/source/gameengine/Physics/Makefile
index 62e433cb72c..b192e497f35 100644
--- a/source/gameengine/Physics/Makefile
+++ b/source/gameengine/Physics/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/gameengine/Physics/Sumo/CMakeLists.txt b/source/gameengine/Physics/Sumo/CMakeLists.txt
index d552a9a821c..c57a4af6706 100644
--- a/source/gameengine/Physics/Sumo/CMakeLists.txt
+++ b/source/gameengine/Physics/Sumo/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC
SumoPHYCallbackBridge.cpp
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/Makefile b/source/gameengine/Physics/Sumo/Fuzzics/Makefile
index 557be7a1bd4..5ed2c31a1d0 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/Makefile
+++ b/source/gameengine/Physics/Sumo/Fuzzics/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_FhObject.h b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_FhObject.h
index 4db531d945d..b03612ed15e 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_FhObject.h
+++ b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_FhObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SM_FHOBJECT_H
#define SM_FHOBJECT_H
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_MotionState.h b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_MotionState.h
index 08e29265d0c..fdc45af5225 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_MotionState.h
+++ b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_MotionState.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SM_MOTIONSTATE_H
#define SM_MOTIONSTATE_H
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Object.h b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Object.h
index 8b70bbc5779..2d748a0f251 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Object.h
+++ b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Object.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SM_OBJECT_H
#define SM_OBJECT_H
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Props.h b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Props.h
index fb3f13c7b96..81b4cb55b45 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Props.h
+++ b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Props.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SM_PROPSH
#define SM_PROPSH
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Scene.h b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Scene.h
index a0d5c983031..2326bdee523 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Scene.h
+++ b/source/gameengine/Physics/Sumo/Fuzzics/include/SM_Scene.h
@@ -3,15 +3,12 @@
* Copyright (C) 2001 NaN Technologies B.V.
* The physics scene.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef SM_SCENE_H
#define SM_SCENE_H
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/src/SM_FhObject.cpp b/source/gameengine/Physics/Sumo/Fuzzics/src/SM_FhObject.cpp
index e905459ce21..d866cdb4922 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/src/SM_FhObject.cpp
+++ b/source/gameengine/Physics/Sumo/Fuzzics/src/SM_FhObject.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SM_FhObject.h"
#include "MT_MinMax.h"
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/src/SM_MotionState.cpp b/source/gameengine/Physics/Sumo/Fuzzics/src/SM_MotionState.cpp
index 1fadbdadfa0..b8f4e0c591c 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/src/SM_MotionState.cpp
+++ b/source/gameengine/Physics/Sumo/Fuzzics/src/SM_MotionState.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <MT_Scalar.h>
#include <MT_Vector3.h>
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/src/SM_Object.cpp b/source/gameengine/Physics/Sumo/Fuzzics/src/SM_Object.cpp
index c8a191cad0d..4b2c7cae008 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/src/SM_Object.cpp
+++ b/source/gameengine/Physics/Sumo/Fuzzics/src/SM_Object.cpp
@@ -3,15 +3,12 @@
* Copyright (C) 2001 NaN Technologies B.V.
* The basic physics object.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Physics/Sumo/Fuzzics/src/SM_Scene.cpp b/source/gameengine/Physics/Sumo/Fuzzics/src/SM_Scene.cpp
index 656051be4f5..b5bf67b14ea 100644
--- a/source/gameengine/Physics/Sumo/Fuzzics/src/SM_Scene.cpp
+++ b/source/gameengine/Physics/Sumo/Fuzzics/src/SM_Scene.cpp
@@ -3,15 +3,12 @@
* Copyright (C) 2001 NaN Technologies B.V.
* The physics scene.
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Physics/Sumo/Makefile b/source/gameengine/Physics/Sumo/Makefile
index bc1300c1994..69efc4d84eb 100644
--- a/source/gameengine/Physics/Sumo/Makefile
+++ b/source/gameengine/Physics/Sumo/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Physics/Sumo/SumoPhysicsController.cpp b/source/gameengine/Physics/Sumo/SumoPhysicsController.cpp
index 57922e856c4..3451e6c3ec8 100644
--- a/source/gameengine/Physics/Sumo/SumoPhysicsController.cpp
+++ b/source/gameengine/Physics/Sumo/SumoPhysicsController.cpp
@@ -1,15 +1,12 @@
/**
* @file $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SumoPhysicsController.h"
diff --git a/source/gameengine/Physics/Sumo/SumoPhysicsController.h b/source/gameengine/Physics/Sumo/SumoPhysicsController.h
index 349c8cc24a6..95f01b45f2b 100644
--- a/source/gameengine/Physics/Sumo/SumoPhysicsController.h
+++ b/source/gameengine/Physics/Sumo/SumoPhysicsController.h
@@ -1,15 +1,12 @@
/**
* @file $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SUMO_PHYSICSCONTROLLER_H
#define __SUMO_PHYSICSCONTROLLER_H
diff --git a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp
index 67a74d11564..16ba45a0be5 100644
--- a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SumoPhysicsEnvironment.h"
#include "PHY_IMotionState.h"
diff --git a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h
index 4d17d0c21fd..ce5cd70e8cc 100644
--- a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h
+++ b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _SUMOPhysicsEnvironment
#define _SUMOPhysicsEnvironment
diff --git a/source/gameengine/Physics/common/CMakeLists.txt b/source/gameengine/Physics/common/CMakeLists.txt
index 57e835bb4c2..a28fabe0c3a 100644
--- a/source/gameengine/Physics/common/CMakeLists.txt
+++ b/source/gameengine/Physics/common/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(SRC PHY_IMotionState.cpp PHY_IPhysicsController.cpp PHY_IPhysicsEnvironment.cpp PHY_IVehicle.cpp)
diff --git a/source/gameengine/Physics/common/Makefile b/source/gameengine/Physics/common/Makefile
index e0f72571c96..e3edd426c36 100644
--- a/source/gameengine/Physics/common/Makefile
+++ b/source/gameengine/Physics/common/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/Physics/common/PHY_IMotionState.cpp b/source/gameengine/Physics/common/PHY_IMotionState.cpp
index 355f1910dc1..e25eb21b22e 100644
--- a/source/gameengine/Physics/common/PHY_IMotionState.cpp
+++ b/source/gameengine/Physics/common/PHY_IMotionState.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "PHY_IMotionState.h"
diff --git a/source/gameengine/Physics/common/PHY_IMotionState.h b/source/gameengine/Physics/common/PHY_IMotionState.h
index 3dc319e040e..d759b0aeff4 100644
--- a/source/gameengine/Physics/common/PHY_IMotionState.h
+++ b/source/gameengine/Physics/common/PHY_IMotionState.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef PHY__MOTIONSTATE_H
#define PHY__MOTIONSTATE_H
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsController.cpp b/source/gameengine/Physics/common/PHY_IPhysicsController.cpp
index 34849a55817..f321001215a 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsController.cpp
+++ b/source/gameengine/Physics/common/PHY_IPhysicsController.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "PHY_IPhysicsController.h"
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsController.h b/source/gameengine/Physics/common/PHY_IPhysicsController.h
index ba1fb8473d3..ca8edea114a 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsController.h
+++ b/source/gameengine/Physics/common/PHY_IPhysicsController.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef PHY_IPHYSICSCONTROLLER_H
#define PHY_IPHYSICSCONTROLLER_H
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp
index 2ba982b4442..d5ec436ba0e 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "PHY_IPhysicsEnvironment.h"
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
index d90b3d82e6b..c148210903f 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
+++ b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _IPHYSICSENVIRONMENT
diff --git a/source/gameengine/Physics/common/PHY_Pro.h b/source/gameengine/Physics/common/PHY_Pro.h
index dddd93df7b4..32e63ac2f6d 100644
--- a/source/gameengine/Physics/common/PHY_Pro.h
+++ b/source/gameengine/Physics/common/PHY_Pro.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef PHY_PROPSH
#define PHY_PROPSH
diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py
index d3428915f25..31c9993e194 100644
--- a/source/gameengine/PyDoc/KX_GameObject.py
+++ b/source/gameengine/PyDoc/KX_GameObject.py
@@ -135,6 +135,14 @@ class KX_GameObject:
@rtype: L{KX_GameObject}
@return: this object's parent object, or None if this object has no parent.
"""
+ def setParent(parent):
+ """
+ Sets this object's parent.
+ """
+ def removeParent():
+ """
+ Removes this objects parent.
+ """
def getMesh(mesh):
"""
Gets the mesh object for this object.
@@ -156,3 +164,20 @@ class KX_GameObject:
@type other: L{KX_GameObject} or list [x, y, z]
@rtype: float
"""
+ def rayCastTo(other,dist,prop):
+ """
+ Look towards another point/object and find first object hit within dist that matches prop.
+
+ The ray is always casted from the center of the object, ignoring the object itself.
+ The ray is casted towards the center of another object or an explicit [x,y,z] point.
+
+ @param other: [x,y,z] or object towards which the ray is casted
+ @type other: L{KX_GameObject} or string
+ @param dist: max distance to look (can be negative => look behind); 0 or omitted => detect up to other
+ @type dist: float
+ @param prop: property name that object must have; can be omitted => detect any object
+ @type prop: string
+ @rtype: L{KX_GameObject}
+ @return: the first object hit or None if no object or object does not match prop
+ """
+ \ No newline at end of file
diff --git a/source/gameengine/PyDoc/KX_ParentActuator.py b/source/gameengine/PyDoc/KX_ParentActuator.py
new file mode 100644
index 00000000000..f45bb5d20b1
--- /dev/null
+++ b/source/gameengine/PyDoc/KX_ParentActuator.py
@@ -0,0 +1,22 @@
+# $Id: KX_ParentActuator.py 2615 2004-06-02 12:43:27Z kester $
+# Documentation for KX_ParentActuator
+from SCA_IActuator import *
+
+class KX_ParentActuator(SCA_IActuator):
+ """
+ The parent actuator can set or remove an objects parent object.
+ """
+ def setObject(object):
+ """
+ Sets the object to set as parent.
+
+ Object can be either a L{KX_GameObject} or the name of the object.
+
+ @type object: L{KX_GameObject} or string
+ """
+ def getObject():
+ """
+ Returns the name of the object to change to.
+
+ @rtype: string
+ """
diff --git a/source/gameengine/Rasterizer/CMakeLists.txt b/source/gameengine/Rasterizer/CMakeLists.txt
index 9fe43a5bef7..e604fe0e133 100644
--- a/source/gameengine/Rasterizer/CMakeLists.txt
+++ b/source/gameengine/Rasterizer/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.cpp)
diff --git a/source/gameengine/Rasterizer/Makefile b/source/gameengine/Rasterizer/Makefile
index 5f8eace8adb..9cde6069167 100644
--- a/source/gameengine/Rasterizer/Makefile
+++ b/source/gameengine/Rasterizer/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
@@ -45,6 +42,11 @@ CPPFLAGS += -I../../kernel/gen_system
ifeq ($(OS),darwin)
CPPFLAGS += -fpascal-strings
endif
+
+ifeq ($(WITH_BF_GLEXT),true)
+ CPPFLAGS += -DWITH_GLEXT
+endif
+
###############
SOURCEDIR = source/gameengine/Rasterizer
diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
index d5a870a0040..9454edfacfe 100644
--- a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
@@ -1,5 +1,5 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,7 +25,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#define STRINGIFY(A) #A
@@ -91,7 +91,8 @@ RAS_2DFilterManager::~RAS_2DFilterManager()
unsigned int RAS_2DFilterManager::CreateShaderProgram(char* shadersource)
{
- GLuint program;
+ GLuint program = 0;
+#if defined(GL_ARB_shader_objects) && defined(WITH_GLEXT)
GLuint fShader = bgl::blCreateShaderObjectARB(GL_FRAGMENT_SHADER);
GLint success;
@@ -127,6 +128,7 @@ unsigned int RAS_2DFilterManager::CreateShaderProgram(char* shadersource)
std::cout << "2dFilters - Shader program validation error" << std::endl;
return 0;
}
+#endif
return program;
}
@@ -160,7 +162,8 @@ unsigned int RAS_2DFilterManager::CreateShaderProgram(int filtermode)
void RAS_2DFilterManager::StartShaderProgram(unsigned int shaderprogram)
{
- GLint uniformLoc;
+#if defined(GL_ARB_shader_objects) && defined(WITH_GLEXT)
+ GLint uniformLoc;
bgl::blUseProgramObjectARB(shaderprogram);
uniformLoc = bgl::blGetUniformLocationARB(shaderprogram, "bgl_RenderedTexture");
if (uniformLoc != -1)
@@ -182,12 +185,14 @@ void RAS_2DFilterManager::StartShaderProgram(unsigned int shaderprogram)
{
bgl::blUniform1fARB(uniformLoc,textureheight);
}
-
+#endif
}
void RAS_2DFilterManager::EndShaderProgram()
{
+#if defined(GL_ARB_shader_objects) && defined(WITH_GLEXT)
bgl::blUseProgramObjectARB(0);
+#endif
}
void RAS_2DFilterManager::SetupTexture()
@@ -297,6 +302,7 @@ void RAS_2DFilterManager::EnableFilter(RAS_2DFILTER_MODE mode, int pass, STR_Str
{
if(!isshadersupported)
return;
+#if defined(GL_ARB_shader_objects) && defined(WITH_GLEXT)
if(pass<0 || pass>=MAX_RENDER_PASS)
return;
@@ -337,4 +343,5 @@ void RAS_2DFilterManager::EnableFilter(RAS_2DFILTER_MODE mode, int pass, STR_Str
m_filters[pass] = CreateShaderProgram(mode);
m_enabled[pass] = 1;
}
+#endif
}
diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.h b/source/gameengine/Rasterizer/RAS_2DFilterManager.h
index 227d2a26d41..cff868556e0 100644
--- a/source/gameengine/Rasterizer/RAS_2DFilterManager.h
+++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_I2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_BucketManager.cpp b/source/gameengine/Rasterizer/RAS_BucketManager.cpp
index 9c28aedd994..6c3e89fa69d 100644
--- a/source/gameengine/Rasterizer/RAS_BucketManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_BucketManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Rasterizer/RAS_BucketManager.h b/source/gameengine/Rasterizer/RAS_BucketManager.h
index 11633f555ea..010478b1d5b 100644
--- a/source/gameengine/Rasterizer/RAS_BucketManager.h
+++ b/source/gameengine/Rasterizer/RAS_BucketManager.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
// this will be put in a class later on
diff --git a/source/gameengine/Rasterizer/RAS_CameraData.h b/source/gameengine/Rasterizer/RAS_CameraData.h
index 69a43dd64e9..99c0c412cf7 100644
--- a/source/gameengine/Rasterizer/RAS_CameraData.h
+++ b/source/gameengine/Rasterizer/RAS_CameraData.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_CAMERADATA_H
#define __RAS_CAMERADATA_H
diff --git a/source/gameengine/Rasterizer/RAS_Deformer.h b/source/gameengine/Rasterizer/RAS_Deformer.h
index 9aeb85c5740..bea68e203a9 100644
--- a/source/gameengine/Rasterizer/RAS_Deformer.h
+++ b/source/gameengine/Rasterizer/RAS_Deformer.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef RAS_DEFORMER
diff --git a/source/gameengine/Rasterizer/RAS_FramingManager.cpp b/source/gameengine/Rasterizer/RAS_FramingManager.cpp
index 131893bd79f..e2bbca48bb5 100644
--- a/source/gameengine/Rasterizer/RAS_FramingManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_FramingManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "RAS_FramingManager.h"
diff --git a/source/gameengine/Rasterizer/RAS_FramingManager.h b/source/gameengine/Rasterizer/RAS_FramingManager.h
index 8b3cc1b2f19..dcb48c1c2a0 100644
--- a/source/gameengine/Rasterizer/RAS_FramingManager.h
+++ b/source/gameengine/Rasterizer/RAS_FramingManager.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef RAS_FRAMINGMANAGER_H
#define RAS_FRAMINGMANAGER_H
diff --git a/source/gameengine/Rasterizer/RAS_ICanvas.h b/source/gameengine/Rasterizer/RAS_ICanvas.h
index f1f2a8bcf62..d799dc9c9bb 100644
--- a/source/gameengine/Rasterizer/RAS_ICanvas.h
+++ b/source/gameengine/Rasterizer/RAS_ICanvas.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_ICANVAS
#define __RAS_ICANVAS
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
index b5882bd48c4..61860c4c405 100644
--- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
+++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "RAS_IPolygonMaterial.h"
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
index c02ff7c3566..3284ddb7ddd 100644
--- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
+++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_IPOLYGONMATERIAL
#define __RAS_IPOLYGONMATERIAL
diff --git a/source/gameengine/Rasterizer/RAS_IRasterizer.h b/source/gameengine/Rasterizer/RAS_IRasterizer.h
index 560c6741260..5e8b5ad8276 100644
--- a/source/gameengine/Rasterizer/RAS_IRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_IRasterizer.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_IRASTERIZER
#define __RAS_IRASTERIZER
diff --git a/source/gameengine/Rasterizer/RAS_IRenderTools.cpp b/source/gameengine/Rasterizer/RAS_IRenderTools.cpp
index aa0053f3d1d..2be9bb75ebf 100644
--- a/source/gameengine/Rasterizer/RAS_IRenderTools.cpp
+++ b/source/gameengine/Rasterizer/RAS_IRenderTools.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "RAS_IRenderTools.h"
diff --git a/source/gameengine/Rasterizer/RAS_IRenderTools.h b/source/gameengine/Rasterizer/RAS_IRenderTools.h
index 771c34a595f..30c96d02847 100644
--- a/source/gameengine/Rasterizer/RAS_IRenderTools.h
+++ b/source/gameengine/Rasterizer/RAS_IRenderTools.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_IRENDERTOOLS
#define __RAS_IRENDERTOOLS
diff --git a/source/gameengine/Rasterizer/RAS_LightObject.h b/source/gameengine/Rasterizer/RAS_LightObject.h
index 2c22a588d76..4c54857dc39 100644
--- a/source/gameengine/Rasterizer/RAS_LightObject.h
+++ b/source/gameengine/Rasterizer/RAS_LightObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_LIGHTOBJECT_H
#define __RAS_LIGHTOBJECT_H
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
index 757784be87f..4642ffbaeb8 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "RAS_MaterialBucket.h"
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.h b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
index ded6af999c4..5ad0c173a56 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.h
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_MATERIALBUCKET
#define __RAS_MATERIALBUCKET
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.cpp b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
index b7147ea6c42..e4b654343e7 100644
--- a/source/gameengine/Rasterizer/RAS_MeshObject.cpp
+++ b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.h b/source/gameengine/Rasterizer/RAS_MeshObject.h
index bf7d47061ef..89c472cd0d4 100644
--- a/source/gameengine/Rasterizer/RAS_MeshObject.h
+++ b/source/gameengine/Rasterizer/RAS_MeshObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_MESHOBJECT
#define __RAS_MESHOBJECT
diff --git a/source/gameengine/Rasterizer/RAS_ObjectColor.h b/source/gameengine/Rasterizer/RAS_ObjectColor.h
index 1592fc57e77..d7fb8b210f4 100644
--- a/source/gameengine/Rasterizer/RAS_ObjectColor.h
+++ b/source/gameengine/Rasterizer/RAS_ObjectColor.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_OBJECTCOLOR_H
#define __RAS_OBJECTCOLOR_H
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h
index ac4c2456573..33c4b3faab0 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_BLUR2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h
index 44f67af3d75..c41e5ac06af 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_DILATION2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h
index 80b6f184c36..2bb357c958a 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_EROSION2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h
index 29cc91814ce..7324edd4e92 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_GRAYSCALE2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h
index a3482f9647f..5d90fe3475b 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_INVERT2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h
index 636ecdb68aa..cbe926976df 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_LAPLACION2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h
index 8046aacfbb1..7cd1082e5e3 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_PREWITT2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h
index b56911a48b4..d1c16f39823 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_SEPIA2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h
index e5f942a535c..14e0be6df9d 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_SHARPEN2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h
index 545e76601e8..40c17c285ce 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h
@@ -1,13 +1,10 @@
/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_SOBEL2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/CMakeLists.txt b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/CMakeLists.txt
index d96df751b85..5153834899b 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/CMakeLists.txt
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.cpp)
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/Makefile b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/Makefile
index 40f3fc50005..b0d79dcc897 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/Makefile
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounce make to subdirectories.
#
@@ -47,3 +44,7 @@ CPPFLAGS += -I..
ifeq ($(OS),darwin)
CPPFLAGS += -fpascal-strings
endif
+
+ifeq ($(WITH_BF_GLEXT),true)
+ CPPFLAGS += -DWITH_GLEXT
+endif
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp
index 26b00f02e7d..81a7ccb7a5d 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
/*
The extension manager's job is to link at runtime OpenGL extension
@@ -61,6 +58,7 @@
#include <iostream>
#include <algorithm>
#include <bitset>
+#include <stdlib.h>
#include "STR_String.h"
@@ -333,43 +331,42 @@ PFNGLPNTRIANGLESFATIPROC glPNTrianglesfATI;
BL_EXTInfo RAS_EXT_support;
-
#ifdef GL_ARB_multitexture
int max_texture_units = 2;
- PFNGLACTIVETEXTUREARBPROC blActiveTextureARB;
- PFNGLCLIENTACTIVETEXTUREARBPROC blClientActiveTextureARB;
- PFNGLMULTITEXCOORD1DARBPROC blMultiTexCoord1dARB;
- PFNGLMULTITEXCOORD1DVARBPROC blMultiTexCoord1dvARB;
- PFNGLMULTITEXCOORD1FARBPROC blMultiTexCoord1fARB;
- PFNGLMULTITEXCOORD1FVARBPROC blMultiTexCoord1fvARB;
- PFNGLMULTITEXCOORD1IARBPROC blMultiTexCoord1iARB;
- PFNGLMULTITEXCOORD1IVARBPROC blMultiTexCoord1ivARB;
- PFNGLMULTITEXCOORD1SARBPROC blMultiTexCoord1sARB;
- PFNGLMULTITEXCOORD1SVARBPROC blMultiTexCoord1svARB;
- PFNGLMULTITEXCOORD2DARBPROC blMultiTexCoord2dARB;
- PFNGLMULTITEXCOORD2DVARBPROC blMultiTexCoord2dvARB;
- PFNGLMULTITEXCOORD2FARBPROC blMultiTexCoord2fARB;
- PFNGLMULTITEXCOORD2FVARBPROC blMultiTexCoord2fvARB;
- PFNGLMULTITEXCOORD2IARBPROC blMultiTexCoord2iARB;
- PFNGLMULTITEXCOORD2IVARBPROC blMultiTexCoord2ivARB;
- PFNGLMULTITEXCOORD2SARBPROC blMultiTexCoord2sARB;
- PFNGLMULTITEXCOORD2SVARBPROC blMultiTexCoord2svARB;
- PFNGLMULTITEXCOORD3DARBPROC blMultiTexCoord3dARB;
- PFNGLMULTITEXCOORD3DVARBPROC blMultiTexCoord3dvARB;
- PFNGLMULTITEXCOORD3FARBPROC blMultiTexCoord3fARB;
- PFNGLMULTITEXCOORD3FVARBPROC blMultiTexCoord3fvARB;
- PFNGLMULTITEXCOORD3IARBPROC blMultiTexCoord3iARB;
- PFNGLMULTITEXCOORD3IVARBPROC blMultiTexCoord3ivARB;
- PFNGLMULTITEXCOORD3SARBPROC blMultiTexCoord3sARB;
- PFNGLMULTITEXCOORD3SVARBPROC blMultiTexCoord3svARB;
- PFNGLMULTITEXCOORD4DARBPROC blMultiTexCoord4dARB;
- PFNGLMULTITEXCOORD4DVARBPROC blMultiTexCoord4dvARB;
- PFNGLMULTITEXCOORD4FARBPROC blMultiTexCoord4fARB;
- PFNGLMULTITEXCOORD4FVARBPROC blMultiTexCoord4fvARB;
- PFNGLMULTITEXCOORD4IARBPROC blMultiTexCoord4iARB;
- PFNGLMULTITEXCOORD4IVARBPROC blMultiTexCoord4ivARB;
- PFNGLMULTITEXCOORD4SARBPROC blMultiTexCoord4sARB;
- PFNGLMULTITEXCOORD4SVARBPROC blMultiTexCoord4svARB;
+PFNGLACTIVETEXTUREARBPROC blActiveTextureARB;
+PFNGLCLIENTACTIVETEXTUREARBPROC blClientActiveTextureARB;
+PFNGLMULTITEXCOORD1DARBPROC blMultiTexCoord1dARB;
+PFNGLMULTITEXCOORD1DVARBPROC blMultiTexCoord1dvARB;
+PFNGLMULTITEXCOORD1FARBPROC blMultiTexCoord1fARB;
+PFNGLMULTITEXCOORD1FVARBPROC blMultiTexCoord1fvARB;
+PFNGLMULTITEXCOORD1IARBPROC blMultiTexCoord1iARB;
+PFNGLMULTITEXCOORD1IVARBPROC blMultiTexCoord1ivARB;
+PFNGLMULTITEXCOORD1SARBPROC blMultiTexCoord1sARB;
+PFNGLMULTITEXCOORD1SVARBPROC blMultiTexCoord1svARB;
+PFNGLMULTITEXCOORD2DARBPROC blMultiTexCoord2dARB;
+PFNGLMULTITEXCOORD2DVARBPROC blMultiTexCoord2dvARB;
+PFNGLMULTITEXCOORD2FARBPROC blMultiTexCoord2fARB;
+PFNGLMULTITEXCOORD2FVARBPROC blMultiTexCoord2fvARB;
+PFNGLMULTITEXCOORD2IARBPROC blMultiTexCoord2iARB;
+PFNGLMULTITEXCOORD2IVARBPROC blMultiTexCoord2ivARB;
+PFNGLMULTITEXCOORD2SARBPROC blMultiTexCoord2sARB;
+PFNGLMULTITEXCOORD2SVARBPROC blMultiTexCoord2svARB;
+PFNGLMULTITEXCOORD3DARBPROC blMultiTexCoord3dARB;
+PFNGLMULTITEXCOORD3DVARBPROC blMultiTexCoord3dvARB;
+PFNGLMULTITEXCOORD3FARBPROC blMultiTexCoord3fARB;
+PFNGLMULTITEXCOORD3FVARBPROC blMultiTexCoord3fvARB;
+PFNGLMULTITEXCOORD3IARBPROC blMultiTexCoord3iARB;
+PFNGLMULTITEXCOORD3IVARBPROC blMultiTexCoord3ivARB;
+PFNGLMULTITEXCOORD3SARBPROC blMultiTexCoord3sARB;
+PFNGLMULTITEXCOORD3SVARBPROC blMultiTexCoord3svARB;
+PFNGLMULTITEXCOORD4DARBPROC blMultiTexCoord4dARB;
+PFNGLMULTITEXCOORD4DVARBPROC blMultiTexCoord4dvARB;
+PFNGLMULTITEXCOORD4FARBPROC blMultiTexCoord4fARB;
+PFNGLMULTITEXCOORD4FVARBPROC blMultiTexCoord4fvARB;
+PFNGLMULTITEXCOORD4IARBPROC blMultiTexCoord4iARB;
+PFNGLMULTITEXCOORD4IVARBPROC blMultiTexCoord4ivARB;
+PFNGLMULTITEXCOORD4SARBPROC blMultiTexCoord4sARB;
+PFNGLMULTITEXCOORD4SVARBPROC blMultiTexCoord4svARB;
#endif
#ifdef GL_ARB_shader_objects
@@ -497,50 +494,51 @@ static void LinkExtensions()
}
#endif
-#ifdef GL_ARB_multitexture
- if (QueryExtension("GL_ARB_multitexture"))
- {
- bgl::blActiveTextureARB = reinterpret_cast<PFNGLACTIVETEXTUREARBPROC>(bglGetProcAddress((const GLubyte *) "glActiveTextureARB"));
- bgl::blClientActiveTextureARB = reinterpret_cast<PFNGLCLIENTACTIVETEXTUREARBPROC>(bglGetProcAddress((const GLubyte *) "glClientActiveTextureARB"));
- bgl::blMultiTexCoord1dARB = reinterpret_cast<PFNGLMULTITEXCOORD1DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1dARB"));
- bgl::blMultiTexCoord1dvARB = reinterpret_cast<PFNGLMULTITEXCOORD1DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1dvARB"));
- bgl::blMultiTexCoord1fARB = reinterpret_cast<PFNGLMULTITEXCOORD1FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1fARB"));
- bgl::blMultiTexCoord1fvARB = reinterpret_cast<PFNGLMULTITEXCOORD1FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1fvARB"));
- bgl::blMultiTexCoord1iARB = reinterpret_cast<PFNGLMULTITEXCOORD1IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1iARB"));
- bgl::blMultiTexCoord1ivARB = reinterpret_cast<PFNGLMULTITEXCOORD1IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1ivARB"));
- bgl::blMultiTexCoord1sARB = reinterpret_cast<PFNGLMULTITEXCOORD1SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1sARB"));
- bgl::blMultiTexCoord1svARB = reinterpret_cast<PFNGLMULTITEXCOORD1SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1svARB"));
- bgl::blMultiTexCoord2dARB = reinterpret_cast<PFNGLMULTITEXCOORD2DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2dARB"));
- bgl::blMultiTexCoord2dvARB = reinterpret_cast<PFNGLMULTITEXCOORD2DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2dvARB"));
- bgl::blMultiTexCoord2fARB = reinterpret_cast<PFNGLMULTITEXCOORD2FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2fARB"));
- bgl::blMultiTexCoord2fvARB = reinterpret_cast<PFNGLMULTITEXCOORD2FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2fvARB"));
- bgl::blMultiTexCoord2iARB = reinterpret_cast<PFNGLMULTITEXCOORD2IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2iARB"));
- bgl::blMultiTexCoord2ivARB = reinterpret_cast<PFNGLMULTITEXCOORD2IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2ivARB"));
- bgl::blMultiTexCoord2sARB = reinterpret_cast<PFNGLMULTITEXCOORD2SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2sARB"));
- bgl::blMultiTexCoord2svARB = reinterpret_cast<PFNGLMULTITEXCOORD2SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2svARB"));
- bgl::blMultiTexCoord3dARB = reinterpret_cast<PFNGLMULTITEXCOORD3DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3dARB"));
- bgl::blMultiTexCoord3dvARB = reinterpret_cast<PFNGLMULTITEXCOORD3DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3dvARB"));
- bgl::blMultiTexCoord3fARB = reinterpret_cast<PFNGLMULTITEXCOORD3FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3fARB"));
- bgl::blMultiTexCoord3fvARB = reinterpret_cast<PFNGLMULTITEXCOORD3FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3fvARB"));
- bgl::blMultiTexCoord3iARB = reinterpret_cast<PFNGLMULTITEXCOORD3IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3iARB"));
- bgl::blMultiTexCoord3ivARB = reinterpret_cast<PFNGLMULTITEXCOORD3IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3ivARB"));
- bgl::blMultiTexCoord3sARB = reinterpret_cast<PFNGLMULTITEXCOORD3SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3sARB"));
- bgl::blMultiTexCoord3svARB = reinterpret_cast<PFNGLMULTITEXCOORD3SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3svARB"));
- bgl::blMultiTexCoord4dARB = reinterpret_cast<PFNGLMULTITEXCOORD4DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4dARB"));
- bgl::blMultiTexCoord4dvARB = reinterpret_cast<PFNGLMULTITEXCOORD4DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4dvARB"));
- bgl::blMultiTexCoord4fARB = reinterpret_cast<PFNGLMULTITEXCOORD4FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4fARB"));
- bgl::blMultiTexCoord4fvARB = reinterpret_cast<PFNGLMULTITEXCOORD4FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4fvARB"));
- bgl::blMultiTexCoord4iARB = reinterpret_cast<PFNGLMULTITEXCOORD4IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4iARB"));
- bgl::blMultiTexCoord4ivARB = reinterpret_cast<PFNGLMULTITEXCOORD4IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4ivARB"));
- bgl::blMultiTexCoord4sARB = reinterpret_cast<PFNGLMULTITEXCOORD4SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4sARB"));
- bgl::blMultiTexCoord4svARB = reinterpret_cast<PFNGLMULTITEXCOORD4SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4svARB"));
- if (bgl::blActiveTextureARB && bgl::blClientActiveTextureARB && bgl::blMultiTexCoord1dARB && bgl::blMultiTexCoord1dvARB && bgl::blMultiTexCoord1fARB && bgl::blMultiTexCoord1fvARB && bgl::blMultiTexCoord1iARB && bgl::blMultiTexCoord1ivARB && bgl::blMultiTexCoord1sARB && bgl::blMultiTexCoord1svARB && bgl::blMultiTexCoord2dARB && bgl::blMultiTexCoord2dvARB && bgl::blMultiTexCoord2fARB && bgl::blMultiTexCoord2fvARB && bgl::blMultiTexCoord2iARB && bgl::blMultiTexCoord2ivARB && bgl::blMultiTexCoord2sARB && bgl::blMultiTexCoord2svARB && bgl::blMultiTexCoord3dARB && bgl::blMultiTexCoord3dvARB && bgl::blMultiTexCoord3fARB && bgl::blMultiTexCoord3fvARB && bgl::blMultiTexCoord3iARB && bgl::blMultiTexCoord3ivARB && bgl::blMultiTexCoord3sARB && bgl::blMultiTexCoord3svARB && bgl::blMultiTexCoord4dARB && bgl::blMultiTexCoord4dvARB && bgl::blMultiTexCoord4fARB && bgl::blMultiTexCoord4fvARB && bgl::blMultiTexCoord4iARB && bgl::blMultiTexCoord4ivARB && bgl::blMultiTexCoord4sARB && bgl::blMultiTexCoord4svARB) {
- EnableExtension(_GL_ARB_multitexture);
- RAS_EXT_support._ARB_multitexture = 1;
- if (doDebugMessages)
- std::cout << "Enabled GL_ARB_multitexture" << std::endl;
- } else {
- std::cout << "ERROR: GL_ARB_multitexture implementation is broken!" << std::endl;
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ if (QueryExtension("GL_ARB_multitexture")) {
+ bgl::blActiveTextureARB = reinterpret_cast<PFNGLACTIVETEXTUREARBPROC>(bglGetProcAddress((const GLubyte *) "glActiveTextureARB"));
+ bgl::blClientActiveTextureARB = reinterpret_cast<PFNGLCLIENTACTIVETEXTUREARBPROC>(bglGetProcAddress((const GLubyte *) "glClientActiveTextureARB"));
+ bgl::blMultiTexCoord1dARB = reinterpret_cast<PFNGLMULTITEXCOORD1DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1dARB"));
+ bgl::blMultiTexCoord1dvARB = reinterpret_cast<PFNGLMULTITEXCOORD1DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1dvARB"));
+ bgl::blMultiTexCoord1fARB = reinterpret_cast<PFNGLMULTITEXCOORD1FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1fARB"));
+ bgl::blMultiTexCoord1fvARB = reinterpret_cast<PFNGLMULTITEXCOORD1FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1fvARB"));
+ bgl::blMultiTexCoord1iARB = reinterpret_cast<PFNGLMULTITEXCOORD1IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1iARB"));
+ bgl::blMultiTexCoord1ivARB = reinterpret_cast<PFNGLMULTITEXCOORD1IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1ivARB"));
+ bgl::blMultiTexCoord1sARB = reinterpret_cast<PFNGLMULTITEXCOORD1SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1sARB"));
+ bgl::blMultiTexCoord1svARB = reinterpret_cast<PFNGLMULTITEXCOORD1SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1svARB"));
+ bgl::blMultiTexCoord2dARB = reinterpret_cast<PFNGLMULTITEXCOORD2DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2dARB"));
+ bgl::blMultiTexCoord2dvARB = reinterpret_cast<PFNGLMULTITEXCOORD2DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2dvARB"));
+ bgl::blMultiTexCoord2fARB = reinterpret_cast<PFNGLMULTITEXCOORD2FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2fARB"));
+ bgl::blMultiTexCoord2fvARB = reinterpret_cast<PFNGLMULTITEXCOORD2FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2fvARB"));
+ bgl::blMultiTexCoord2iARB = reinterpret_cast<PFNGLMULTITEXCOORD2IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2iARB"));
+ bgl::blMultiTexCoord2ivARB = reinterpret_cast<PFNGLMULTITEXCOORD2IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2ivARB"));
+ bgl::blMultiTexCoord2sARB = reinterpret_cast<PFNGLMULTITEXCOORD2SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2sARB"));
+ bgl::blMultiTexCoord2svARB = reinterpret_cast<PFNGLMULTITEXCOORD2SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2svARB"));
+ bgl::blMultiTexCoord3dARB = reinterpret_cast<PFNGLMULTITEXCOORD3DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3dARB"));
+ bgl::blMultiTexCoord3dvARB = reinterpret_cast<PFNGLMULTITEXCOORD3DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3dvARB"));
+ bgl::blMultiTexCoord3fARB = reinterpret_cast<PFNGLMULTITEXCOORD3FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3fARB"));
+ bgl::blMultiTexCoord3fvARB = reinterpret_cast<PFNGLMULTITEXCOORD3FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3fvARB"));
+ bgl::blMultiTexCoord3iARB = reinterpret_cast<PFNGLMULTITEXCOORD3IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3iARB"));
+ bgl::blMultiTexCoord3ivARB = reinterpret_cast<PFNGLMULTITEXCOORD3IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3ivARB"));
+ bgl::blMultiTexCoord3sARB = reinterpret_cast<PFNGLMULTITEXCOORD3SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3sARB"));
+ bgl::blMultiTexCoord3svARB = reinterpret_cast<PFNGLMULTITEXCOORD3SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3svARB"));
+ bgl::blMultiTexCoord4dARB = reinterpret_cast<PFNGLMULTITEXCOORD4DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4dARB"));
+ bgl::blMultiTexCoord4dvARB = reinterpret_cast<PFNGLMULTITEXCOORD4DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4dvARB"));
+ bgl::blMultiTexCoord4fARB = reinterpret_cast<PFNGLMULTITEXCOORD4FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4fARB"));
+ bgl::blMultiTexCoord4fvARB = reinterpret_cast<PFNGLMULTITEXCOORD4FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4fvARB"));
+ bgl::blMultiTexCoord4iARB = reinterpret_cast<PFNGLMULTITEXCOORD4IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4iARB"));
+ bgl::blMultiTexCoord4ivARB = reinterpret_cast<PFNGLMULTITEXCOORD4IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4ivARB"));
+ bgl::blMultiTexCoord4sARB = reinterpret_cast<PFNGLMULTITEXCOORD4SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4sARB"));
+ bgl::blMultiTexCoord4svARB = reinterpret_cast<PFNGLMULTITEXCOORD4SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4svARB"));
+ if (bgl::blActiveTextureARB && bgl::blClientActiveTextureARB && bgl::blMultiTexCoord1dARB && bgl::blMultiTexCoord1dvARB && bgl::blMultiTexCoord1fARB && bgl::blMultiTexCoord1fvARB && bgl::blMultiTexCoord1iARB && bgl::blMultiTexCoord1ivARB && bgl::blMultiTexCoord1sARB && bgl::blMultiTexCoord1svARB && bgl::blMultiTexCoord2dARB && bgl::blMultiTexCoord2dvARB && bgl::blMultiTexCoord2fARB && bgl::blMultiTexCoord2fvARB && bgl::blMultiTexCoord2iARB && bgl::blMultiTexCoord2ivARB && bgl::blMultiTexCoord2sARB && bgl::blMultiTexCoord2svARB && bgl::blMultiTexCoord3dARB && bgl::blMultiTexCoord3dvARB && bgl::blMultiTexCoord3fARB && bgl::blMultiTexCoord3fvARB && bgl::blMultiTexCoord3iARB && bgl::blMultiTexCoord3ivARB && bgl::blMultiTexCoord3sARB && bgl::blMultiTexCoord3svARB && bgl::blMultiTexCoord4dARB && bgl::blMultiTexCoord4dvARB && bgl::blMultiTexCoord4fARB && bgl::blMultiTexCoord4fvARB && bgl::blMultiTexCoord4iARB && bgl::blMultiTexCoord4ivARB && bgl::blMultiTexCoord4sARB && bgl::blMultiTexCoord4svARB) {
+ EnableExtension(_GL_ARB_multitexture);
+ RAS_EXT_support._ARB_multitexture = 1;
+ if (doDebugMessages)
+ std::cout << "Enabled GL_ARB_multitexture" << std::endl;
+ } else {
+ std::cout << "ERROR: GL_ARB_multitexture implementation is broken!" << std::endl;
+ }
}
}
#endif
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h
index 7b1c745832f..05eb73b315f 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_GLEXTENSIONMANAGER_H__
@@ -42,7 +39,6 @@
# define GL_GLEXT_LEGACY 1
# include <OpenGL/gl.h>
# include <OpenGL/glu.h>
-# undef __glext_h_
#else /* UNIX */
# define __glext_h_
@@ -52,12 +48,21 @@
# undef __glext_h_
#endif
+#ifdef WITH_GLEXT
+#ifdef WIN32
+# include <GL/glext.h>
+#elif defined(__APPLE__)
+# include <OpenGL/glext.h>
+# undef __glext_h_
+# else
+# include <GL/glext.h>
+# endif
+#endif
+
#ifdef __sgi
# undef GL_ARB_vertex_program
#endif
-#include "glext.h"
-
#include "EXT_separate_specular_color.h"
#include "ARB_multitexture.h"
namespace bgl
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
index 4f9c3a1bfb3..ea41b2f7d13 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,10 +23,11 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include <math.h>
+#include <stdlib.h>
#include "RAS_OpenGLRasterizer.h"
@@ -1222,37 +1220,36 @@ void RAS_OpenGLRasterizer::SetAttrib(int type)
void RAS_OpenGLRasterizer::TexCoord(const RAS_TexVert &tv, int enabled)
{
-#ifdef GL_ARB_multitexture
- if(bgl::RAS_EXT_support._ARB_multitexture)
- {
- for(int unit=0; unit<enabled; unit++)
- {
- if( tv.getFlag() & TV_2NDUV && tv.getUnit() == unit ) {
- bgl::blMultiTexCoord2fvARB(GL_TEXTURE0_ARB+unit, tv.getUV2());
- continue;
- }
- switch(m_texco[unit])
- {
- case RAS_TEXCO_DISABLE:
- case RAS_TEXCO_OBJECT:
- case RAS_TEXCO_GEN:
- break;
- case RAS_TEXCO_ORCO:
- case RAS_TEXCO_GLOB:
- bgl::blMultiTexCoord3fvARB(GL_TEXTURE0_ARB+unit, tv.getLocalXYZ());
- break;
- case RAS_TEXCO_UV1:
- bgl::blMultiTexCoord2fvARB(GL_TEXTURE0_ARB+unit, tv.getUV1());
- break;
- case RAS_TEXCO_NORM:
- bgl::blMultiTexCoord3fvARB(GL_TEXTURE0_ARB+unit, tv.getNormal());
- break;
- case RAS_TEXTANGENT:
- bgl::blMultiTexCoord4fvARB(GL_TEXTURE0_ARB+unit, tv.getTangent());
- break;
- case RAS_TEXCO_UV2:
- bgl::blMultiTexCoord2fvARB(GL_TEXTURE0_ARB+unit, tv.getUV2());
- break;
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ if(bgl::RAS_EXT_support._ARB_multitexture) {
+ for(int unit=0; unit<enabled; unit++) {
+ if( tv.getFlag() & TV_2NDUV && tv.getUnit() == unit ) {
+ bgl::blMultiTexCoord2fvARB(GL_TEXTURE0_ARB+unit, tv.getUV2());
+ continue;
+ }
+ switch(m_texco[unit]) {
+ case RAS_TEXCO_DISABLE:
+ case RAS_TEXCO_OBJECT:
+ case RAS_TEXCO_GEN:
+ break;
+ case RAS_TEXCO_ORCO:
+ case RAS_TEXCO_GLOB:
+ bgl::blMultiTexCoord3fvARB(GL_TEXTURE0_ARB+unit, tv.getLocalXYZ());
+ break;
+ case RAS_TEXCO_UV1:
+ bgl::blMultiTexCoord2fvARB(GL_TEXTURE0_ARB+unit, tv.getUV1());
+ break;
+ case RAS_TEXCO_NORM:
+ bgl::blMultiTexCoord3fvARB(GL_TEXTURE0_ARB+unit, tv.getNormal());
+ break;
+ case RAS_TEXTANGENT:
+ bgl::blMultiTexCoord4fvARB(GL_TEXTURE0_ARB+unit, tv.getTangent());
+ break;
+ case RAS_TEXCO_UV2:
+ bgl::blMultiTexCoord2fvARB(GL_TEXTURE0_ARB+unit, tv.getUV2());
+ break;
+ }
}
}
}
@@ -1269,28 +1266,29 @@ void RAS_OpenGLRasterizer::Tangent( const RAS_TexVert& v1,
const RAS_TexVert& v3,
const MT_Vector3 &no)
{
-#ifdef GL_ARB_multitexture
- // TODO: set for deformer...
- MT_Vector3 x1(v1.getLocalXYZ()), x2(v2.getLocalXYZ()), x3(v3.getLocalXYZ());
- MT_Vector2 uv1(v1.getUV1()), uv2(v2.getUV1()), uv3(v3.getUV1());
- MT_Vector3 dx1(x2 - x1), dx2(x3 - x1);
- MT_Vector2 duv1(uv2 - uv1), duv2(uv3 - uv1);
-
- MT_Scalar r = 1.0 / (duv1.x() * duv2.y() - duv2.x() * duv1.y());
- duv1 *= r;
- duv2 *= r;
- MT_Vector3 sdir(duv2.y() * dx1 - duv1.y() * dx2);
- MT_Vector3 tdir(duv1.x() * dx2 - duv2.x() * dx1);
-
- // Gram-Schmidt orthogonalize
- MT_Vector3 t(sdir - no.cross(no.cross(sdir)));
- if (!MT_fuzzyZero(t))
- t /= t.length();
-
- float tangent[4];
- t.getValue(tangent);
- // Calculate handedness
- tangent[3] = no.dot(sdir.cross(tdir)) < 0.0 ? -1.0 : 1.0;
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ // TODO: set for deformer...
+ MT_Vector3 x1(v1.getLocalXYZ()), x2(v2.getLocalXYZ()), x3(v3.getLocalXYZ());
+ MT_Vector2 uv1(v1.getUV1()), uv2(v2.getUV1()), uv3(v3.getUV1());
+ MT_Vector3 dx1(x2 - x1), dx2(x3 - x1);
+ MT_Vector2 duv1(uv2 - uv1), duv2(uv3 - uv1);
+
+ MT_Scalar r = 1.0 / (duv1.x() * duv2.y() - duv2.x() * duv1.y());
+ duv1 *= r;
+ duv2 *= r;
+ MT_Vector3 sdir(duv2.y() * dx1 - duv1.y() * dx2);
+ MT_Vector3 tdir(duv1.x() * dx2 - duv2.x() * dx1);
+
+ // Gram-Schmidt orthogonalize
+ MT_Vector3 t(sdir - no.cross(no.cross(sdir)));
+ if (!MT_fuzzyZero(t)) t /= t.length();
+
+ float tangent[4];
+ t.getValue(tangent);
+ // Calculate handedness
+ tangent[3] = no.dot(sdir.cross(tdir)) < 0.0 ? -1.0 : 1.0;
+ }
#endif
}
@@ -1306,195 +1304,195 @@ void RAS_OpenGLRasterizer::IndexPrimitivesMulti(
class KX_ListSlot** slot
)
{
-#ifdef GL_ARB_multitexture
-
- GLenum drawmode;
- switch (mode)
- {
- case 0:
- drawmode = GL_TRIANGLES;
- break;
- case 1:
- drawmode = GL_LINES;
- break;
- case 2:
- drawmode = GL_QUADS;
- break;
- default:
- drawmode = GL_LINES;
- break;
- }
-
- const RAS_TexVert* vertexarray ;
- unsigned int numindices,vt;
-
- for (vt=0;vt<vertexarrays.size();vt++)
- {
- vertexarray = &((*vertexarrays[vt]) [0]);
- const KX_IndexArray & indexarray = (*indexarrays[vt]);
- numindices = indexarray.size();
- const unsigned int enabled = polymat->GetEnabled();
-
- if (!numindices)
- break;
-
- int vindex=0;
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ GLenum drawmode;
switch (mode)
{
+ case 0:
+ drawmode = GL_TRIANGLES;
+ break;
case 1:
- {
- glBegin(GL_LINES);
- vindex=0;
- for (unsigned int i=0;i<numindices;i+=2)
- {
- glVertex3fv(vertexarray[(indexarray[vindex++])].getLocalXYZ());
- glVertex3fv(vertexarray[(indexarray[vindex++])].getLocalXYZ());
- }
- glEnd();
- }
+ drawmode = GL_LINES;
break;
case 2:
+ drawmode = GL_QUADS;
+ break;
+ default:
+ drawmode = GL_LINES;
+ break;
+ }
+
+ const RAS_TexVert* vertexarray ;
+ unsigned int numindices,vt;
+
+ for (vt=0;vt<vertexarrays.size();vt++)
+ {
+ vertexarray = &((*vertexarrays[vt]) [0]);
+ const KX_IndexArray & indexarray = (*indexarrays[vt]);
+ numindices = indexarray.size();
+ const unsigned int enabled = polymat->GetEnabled();
+
+ if (!numindices)
+ break;
+
+ int vindex=0;
+ switch (mode)
{
- glBegin(GL_QUADS);
- vindex=0;
- if (useObjectColor)
+ case 1:
{
- for (unsigned int i=0;i<numindices;i+=4)
+ glBegin(GL_LINES);
+ vindex=0;
+ for (unsigned int i=0;i<numindices;i+=2)
{
-
- glColor4d(rgbacolor[0], rgbacolor[1], rgbacolor[2], rgbacolor[3]);
-
- //
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- //
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- //
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- //
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ glVertex3fv(vertexarray[(indexarray[vindex++])].getLocalXYZ());
+ glVertex3fv(vertexarray[(indexarray[vindex++])].getLocalXYZ());
}
+ glEnd();
}
- else
+ break;
+ case 2:
{
- for (unsigned int i=0;i<numindices;i+=4)
+ glBegin(GL_QUADS);
+ vindex=0;
+ if (useObjectColor)
{
- // This looks curiously endian unsafe to me.
- // However it depends on the way the colors are packed into
- // the m_rgba field of RAS_TexVert
-
- //
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ for (unsigned int i=0;i<numindices;i+=4)
+ {
+
+ glColor4d(rgbacolor[0], rgbacolor[1], rgbacolor[2], rgbacolor[3]);
+
+ //
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ //
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ //
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ //
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+ }
+ }
+ else
+ {
+ for (unsigned int i=0;i<numindices;i+=4)
+ {
+ // This looks curiously endian unsafe to me.
+ // However it depends on the way the colors are packed into
+ // the m_rgba field of RAS_TexVert
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- //
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- //
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ //
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- //
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ //
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ //
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ //
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+ }
}
+ glEnd();
+ break;
}
- glEnd();
- break;
- }
- case 0:
- {
- glBegin(GL_TRIANGLES);
- vindex=0;
- if (useObjectColor)
+ case 0:
{
- for (unsigned int i=0;i<numindices;i+=3)
+ glBegin(GL_TRIANGLES);
+ vindex=0;
+ if (useObjectColor)
{
+ for (unsigned int i=0;i<numindices;i+=3)
+ {
- glColor4d(rgbacolor[0], rgbacolor[1], rgbacolor[2], rgbacolor[3]);
- //
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- //
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- //
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ glColor4d(rgbacolor[0], rgbacolor[1], rgbacolor[2], rgbacolor[3]);
+ //
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ //
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ //
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+ }
}
- }
- else
- {
- for (unsigned int i=0;i<numindices;i+=3)
+ else
{
- //
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- //
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- //
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ for (unsigned int i=0;i<numindices;i+=3)
+ {
+ //
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ //
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ //
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+ }
}
+ glEnd();
+ break;
}
- glEnd();
- break;
- }
- default:
- {
- }
- } // switch
- } // for each vertexarray
+ default:
+ {
+ }
+ } // switch
+ } // for each vertexarray
+ }
#endif// GL_ARB_multitexture
-
}
void RAS_OpenGLRasterizer::IndexPrimitivesMulti_Ex(
@@ -1506,272 +1504,274 @@ void RAS_OpenGLRasterizer::IndexPrimitivesMulti_Ex(
bool useObjectColor,
const MT_Vector4& rgbacolor)
{
-#ifdef GL_ARB_multitexture
- bool recalc;
- GLenum drawmode;
- switch (mode)
- {
- case 0:
- drawmode = GL_TRIANGLES;
- break;
- case 1:
- drawmode = GL_LINES;
- break;
- case 2:
- drawmode = GL_QUADS;
- break;
- default:
- drawmode = GL_LINES;
- break;
- }
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ bool recalc;
+ GLenum drawmode;
+ switch (mode)
+ {
+ case 0:
+ drawmode = GL_TRIANGLES;
+ break;
+ case 1:
+ drawmode = GL_LINES;
+ break;
+ case 2:
+ drawmode = GL_QUADS;
+ break;
+ default:
+ drawmode = GL_LINES;
+ break;
+ }
- const RAS_TexVert* vertexarray ;
- unsigned int numindices,vt;
+ const RAS_TexVert* vertexarray ;
+ unsigned int numindices,vt;
- for (vt=0;vt<vertexarrays.size();vt++)
- {
- vertexarray = &((*vertexarrays[vt]) [0]);
- const KX_IndexArray & indexarray = (*indexarrays[vt]);
- numindices = indexarray.size();
- const unsigned int enabled = polymat->GetEnabled();
+ for (vt=0;vt<vertexarrays.size();vt++)
+ {
+ vertexarray = &((*vertexarrays[vt]) [0]);
+ const KX_IndexArray & indexarray = (*indexarrays[vt]);
+ numindices = indexarray.size();
+ const unsigned int enabled = polymat->GetEnabled();
- if (!numindices)
- continue;
+ if (!numindices)
+ continue;
- int vindex=0;
- switch (mode)
- {
- case 1:
+ int vindex=0;
+ switch (mode)
{
- glBegin(GL_LINES);
- vindex=0;
- for (unsigned int i=0;i<numindices;i+=2)
+ case 1:
{
- glVertex3fv(vertexarray[(indexarray[vindex++])].getLocalXYZ());
- glVertex3fv(vertexarray[(indexarray[vindex++])].getLocalXYZ());
+ glBegin(GL_LINES);
+ vindex=0;
+ for (unsigned int i=0;i<numindices;i+=2)
+ {
+ glVertex3fv(vertexarray[(indexarray[vindex++])].getLocalXYZ());
+ glVertex3fv(vertexarray[(indexarray[vindex++])].getLocalXYZ());
+ }
+ glEnd();
}
- glEnd();
- }
- break;
- case 2:
- {
- glBegin(GL_QUADS);
- vindex=0;
- if (useObjectColor)
+ break;
+ case 2:
{
- for (unsigned int i=0;i<numindices;i+=4)
+ glBegin(GL_QUADS);
+ vindex=0;
+ if (useObjectColor)
{
- MT_Point3 mv1, mv2, mv3, mv4, fnor;
- /* Calc a new face normal */
-
- if (vertexarray[(indexarray[vindex])].getFlag() & TV_CALCFACENORMAL)
- recalc= true;
- else
- recalc=false;
+ for (unsigned int i=0;i<numindices;i+=4)
+ {
+ MT_Point3 mv1, mv2, mv3, mv4, fnor;
+ /* Calc a new face normal */
+
+ if (vertexarray[(indexarray[vindex])].getFlag() & TV_CALCFACENORMAL)
+ recalc= true;
+ else
+ recalc=false;
+
+ if (recalc){
+ mv1 = MT_Point3(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ mv2 = MT_Point3(vertexarray[(indexarray[vindex+1])].getLocalXYZ());
+ mv3 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
+ mv4 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
+
+ fnor = (((mv2-mv1).cross(mv3-mv2))+((mv4-mv3).cross(mv1-mv4))).safe_normalized();
- if (recalc){
- mv1 = MT_Point3(vertexarray[(indexarray[vindex])].getLocalXYZ());
- mv2 = MT_Point3(vertexarray[(indexarray[vindex+1])].getLocalXYZ());
- mv3 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
- mv4 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
-
- fnor = (((mv2-mv1).cross(mv3-mv2))+((mv4-mv3).cross(mv1-mv4))).safe_normalized();
+ glNormal3f(fnor[0], fnor[1], fnor[2]);
+ }
- glNormal3f(fnor[0], fnor[1], fnor[2]);
- }
+ glColor4d(rgbacolor[0], rgbacolor[1], rgbacolor[2], rgbacolor[3]);
- glColor4d(rgbacolor[0], rgbacolor[1], rgbacolor[2], rgbacolor[3]);
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
-
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+ }
}
- }
- else
- {
- for (unsigned int i=0;i<numindices;i+=4)
+ else
{
- // This looks curiously endian unsafe to me.
- // However it depends on the way the colors are packed into
- // the m_rgba field of RAS_TexVert
- MT_Point3 mv1, mv2, mv3, mv4, fnor;
- /* Calc a new face normal */
-
- if (vertexarray[(indexarray[vindex])].getFlag() & TV_CALCFACENORMAL)
- recalc= true;
- else
- recalc=false;
-
-
- if (recalc){
- mv1 = MT_Point3(vertexarray[(indexarray[vindex])].getLocalXYZ());
- mv2 = MT_Point3(vertexarray[(indexarray[vindex+1])].getLocalXYZ());
- mv3 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
- mv4 = MT_Point3(vertexarray[(indexarray[vindex+3])].getLocalXYZ());
+ for (unsigned int i=0;i<numindices;i+=4)
+ {
+ // This looks curiously endian unsafe to me.
+ // However it depends on the way the colors are packed into
+ // the m_rgba field of RAS_TexVert
+ MT_Point3 mv1, mv2, mv3, mv4, fnor;
+ /* Calc a new face normal */
+
+ if (vertexarray[(indexarray[vindex])].getFlag() & TV_CALCFACENORMAL)
+ recalc= true;
+ else
+ recalc=false;
+
+
+ if (recalc){
+ mv1 = MT_Point3(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ mv2 = MT_Point3(vertexarray[(indexarray[vindex+1])].getLocalXYZ());
+ mv3 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
+ mv4 = MT_Point3(vertexarray[(indexarray[vindex+3])].getLocalXYZ());
- fnor = (((mv2-mv1).cross(mv3-mv2))+((mv4-mv3).cross(mv1-mv4))).safe_normalized();
+ fnor = (((mv2-mv1).cross(mv3-mv2))+((mv4-mv3).cross(mv1-mv4))).safe_normalized();
- glNormal3f(fnor[0], fnor[1], fnor[2]);
- }
+ glNormal3f(fnor[0], fnor[1], fnor[2]);
+ }
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
-
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+ }
}
+ glEnd();
+ break;
}
- glEnd();
- break;
- }
- case 0:
- {
- glBegin(GL_TRIANGLES);
- vindex=0;
- if (useObjectColor)
+ case 0:
{
- for (unsigned int i=0;i<numindices;i+=3)
+ glBegin(GL_TRIANGLES);
+ vindex=0;
+ if (useObjectColor)
{
- MT_Point3 mv1, mv2, mv3, fnor;
- /* Calc a new face normal */
-
- if (vertexarray[(indexarray[vindex])].getFlag() & TV_CALCFACENORMAL)
- recalc= true;
- else
- recalc=false;
-
- if (recalc){
- mv1 = MT_Point3(vertexarray[(indexarray[vindex])].getLocalXYZ());
- mv2 = MT_Point3(vertexarray[(indexarray[vindex+1])].getLocalXYZ());
- mv3 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
+ for (unsigned int i=0;i<numindices;i+=3)
+ {
+ MT_Point3 mv1, mv2, mv3, fnor;
+ /* Calc a new face normal */
+
+ if (vertexarray[(indexarray[vindex])].getFlag() & TV_CALCFACENORMAL)
+ recalc= true;
+ else
+ recalc=false;
+
+ if (recalc){
+ mv1 = MT_Point3(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ mv2 = MT_Point3(vertexarray[(indexarray[vindex+1])].getLocalXYZ());
+ mv3 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
- fnor = ((mv2-mv1).cross(mv3-mv2)).safe_normalized();
- glNormal3f(fnor[0], fnor[1], fnor[2]);
- }
+ fnor = ((mv2-mv1).cross(mv3-mv2)).safe_normalized();
+ glNormal3f(fnor[0], fnor[1], fnor[2]);
+ }
- glColor4d(rgbacolor[0], rgbacolor[1], rgbacolor[2], rgbacolor[3]);
+ glColor4d(rgbacolor[0], rgbacolor[1], rgbacolor[2], rgbacolor[3]);
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
-
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+ }
}
- }
- else
- {
- for (unsigned int i=0;i<numindices;i+=3)
+ else
{
- MT_Point3 mv1, mv2, mv3, fnor;
- /* Calc a new face normal */
+ for (unsigned int i=0;i<numindices;i+=3)
+ {
+ MT_Point3 mv1, mv2, mv3, fnor;
+ /* Calc a new face normal */
- if (vertexarray[(indexarray[vindex])].getFlag() & TV_CALCFACENORMAL)
- recalc= true;
- else
- recalc=false;
+ if (vertexarray[(indexarray[vindex])].getFlag() & TV_CALCFACENORMAL)
+ recalc= true;
+ else
+ recalc=false;
- if (recalc){
- mv1 = MT_Point3(vertexarray[(indexarray[vindex])].getLocalXYZ());
- mv2 = MT_Point3(vertexarray[(indexarray[vindex+1])].getLocalXYZ());
- mv3 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
+ if (recalc){
+ mv1 = MT_Point3(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ mv2 = MT_Point3(vertexarray[(indexarray[vindex+1])].getLocalXYZ());
+ mv3 = MT_Point3(vertexarray[(indexarray[vindex+2])].getLocalXYZ());
- fnor = ((mv2-mv1).cross(mv3-mv2)).safe_normalized();
- glNormal3f(fnor[0], fnor[1], fnor[2]);
- }
-
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ fnor = ((mv2-mv1).cross(mv3-mv2)).safe_normalized();
+ glNormal3f(fnor[0], fnor[1], fnor[2]);
+ }
+
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
- glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
- if (!recalc)
- glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
- TexCoord(vertexarray[(indexarray[vindex])],enabled );
- glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
- vindex++;
+ glColor4ubv((const GLubyte *)(vertexarray[(indexarray[vindex])].getRGBA()));
+ if (!recalc)
+ glNormal3fv(vertexarray[(indexarray[vindex])].getNormal());
+ TexCoord(vertexarray[(indexarray[vindex])],enabled );
+ glVertex3fv(vertexarray[(indexarray[vindex])].getLocalXYZ());
+ vindex++;
+ }
}
+ glEnd();
+ break;
}
- glEnd();
- break;
- }
- default:
- {
- }
-
- } // switch
- } // for each vertexarray
+ default:
+ {
+ }
+
+ } // switch
+ } // for each vertexarray
+ }
#endif
}
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
index 6728905aa57..c63a7b80b7c 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_OPENGLRASTERIZER
#define __RAS_OPENGLRASTERIZER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
index 246b1ae74a1..ddfcc3f3f9d 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,13 +23,14 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "RAS_VAOpenGLRasterizer.h"
+#include <stdlib.h>
#ifdef WIN32
#include <windows.h>
@@ -294,50 +292,51 @@ void RAS_VAOpenGLRasterizer::IndexPrimitivesMulti( const vecVertexArray& vertexa
void RAS_VAOpenGLRasterizer::TexCoordPtr(const RAS_TexVert *tv, int enabled)
{
-#ifdef GL_ARB_multitexture
- if(bgl::RAS_EXT_support._ARB_multitexture)
- {
- for(int unit=0; unit<enabled; unit++)
+#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
+ if (!getenv("WITHOUT_GLEXT")) {
+ if(bgl::RAS_EXT_support._ARB_multitexture)
{
- bgl::blClientActiveTextureARB(GL_TEXTURE0_ARB+unit);
-
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- if( tv->getFlag() & TV_2NDUV && tv->getUnit() == unit ) {
- glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert), tv->getUV2());
- continue;
- }
- switch(m_texco[unit])
+ for(int unit=0; unit<enabled; unit++)
{
- case RAS_TEXCO_DISABLE:
- case RAS_TEXCO_OBJECT:
- case RAS_TEXCO_GEN:
- glDisableClientState(GL_TEXTURE_COORD_ARRAY);
- break;
- case RAS_TEXCO_ORCO:
- case RAS_TEXCO_GLOB:
- glTexCoordPointer(3, GL_FLOAT, sizeof(RAS_TexVert),tv->getLocalXYZ());
- break;
- case RAS_TEXCO_UV1:
- glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert),tv->getUV1());
- break;
- case RAS_TEXCO_NORM:
- glTexCoordPointer(3, GL_FLOAT, sizeof(RAS_TexVert),tv->getNormal());
- break;
- case RAS_TEXTANGENT:
- glTexCoordPointer(4, GL_FLOAT, sizeof(RAS_TexVert),tv->getTangent());
- break;
- case RAS_TEXCO_UV2:
- glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert),tv->getUV2());
- break;
+ bgl::blClientActiveTextureARB(GL_TEXTURE0_ARB+unit);
+
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ if( tv->getFlag() & TV_2NDUV && tv->getUnit() == unit ) {
+ glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert), tv->getUV2());
+ continue;
+ }
+ switch(m_texco[unit])
+ {
+ case RAS_TEXCO_DISABLE:
+ case RAS_TEXCO_OBJECT:
+ case RAS_TEXCO_GEN:
+ glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+ break;
+ case RAS_TEXCO_ORCO:
+ case RAS_TEXCO_GLOB:
+ glTexCoordPointer(3, GL_FLOAT, sizeof(RAS_TexVert),tv->getLocalXYZ());
+ break;
+ case RAS_TEXCO_UV1:
+ glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert),tv->getUV1());
+ break;
+ case RAS_TEXCO_NORM:
+ glTexCoordPointer(3, GL_FLOAT, sizeof(RAS_TexVert),tv->getNormal());
+ break;
+ case RAS_TEXTANGENT:
+ glTexCoordPointer(4, GL_FLOAT, sizeof(RAS_TexVert),tv->getTangent());
+ break;
+ case RAS_TEXCO_UV2:
+ glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert),tv->getUV2());
+ break;
+ }
}
}
- }
#ifdef GL_ARB_vertex_program
- if(m_useTang && bgl::RAS_EXT_support._ARB_vertex_program)
- bgl::blVertexAttrib4fvARB(1/*tangent*/, tv->getTangent());
+ if(m_useTang && bgl::RAS_EXT_support._ARB_vertex_program)
+ bgl::blVertexAttrib4fvARB(1/*tangent*/, tv->getTangent());
#endif
-
+ }
#endif
}
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
index 06a6fb4bb3a..4d478b0171f 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __KX_VERTEXARRAYOPENGLRASTERIZER
#define __KX_VERTEXARRAYOPENGLRASTERIZER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
index 039bc3db8df..b4d5b8b71de 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
@@ -1,6 +1,9 @@
#!/usr/bin/python
Import ('env')
+if env['WITH_BF_GLEXT'] == 1:
+ env['CPPFLAGS'].append('-DWITH_GLEXT')
+
sources = env.Glob('*.cpp') #'RAS_GLExtensionManager.cpp RAS_ListRasterizer.cpp RAS_OpenGLRasterizer.cpp RAS_VAOpenGLRasterizer.cpp'
incs = '. #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/Rasterizer'
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/glext.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/glext.h
deleted file mode 100644
index 7bb8e6e7cc7..00000000000
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/glext.h
+++ /dev/null
@@ -1,6495 +0,0 @@
-#ifndef __glext_h_
-#define __glext_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-** License Applicability. Except to the extent portions of this file are
-** made subject to an alternative license as permitted in the SGI Free
-** Software License B, Version 1.1 (the "License"), the contents of this
-** file are subject only to the provisions of the License. You may not use
-** this file except in compliance with the License. You may obtain a copy
-** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
-** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
-**
-** http://oss.sgi.com/projects/FreeB
-**
-** Note that, as provided in the License, the Software is distributed on an
-** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
-** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
-** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
-** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
-**
-** Original Code. The Original Code is: OpenGL Sample Implementation,
-** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
-** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
-** Copyright in any portions created by third parties is as indicated
-** elsewhere herein. All Rights Reserved.
-**
-** Additional Notice Provisions: This software was created using the
-** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
-** not been independently verified as being compliant with the OpenGL(R)
-** version 1.2.1 Specification.
-*/
-
-#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
-#define WIN32_LEAN_AND_MEAN 1
-#include <windows.h>
-#endif
-
-#ifndef APIENTRY
-#define APIENTRY
-#endif
-#ifndef APIENTRYP
-#define APIENTRYP APIENTRY *
-#endif
-#ifndef GLAPI
-#define GLAPI extern
-#endif
-
-/*************************************************************/
-
-/* Header file version number, required by OpenGL ABI for Linux */
-/* glext.h last updated 2005/06/20 */
-/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
-#define GL_GLEXT_VERSION 29
-
-#ifndef GL_VERSION_1_2
-#define GL_UNSIGNED_BYTE_3_3_2 0x8032
-#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
-#define GL_UNSIGNED_INT_8_8_8_8 0x8035
-#define GL_UNSIGNED_INT_10_10_10_2 0x8036
-#define GL_RESCALE_NORMAL 0x803A
-#define GL_TEXTURE_BINDING_3D 0x806A
-#define GL_PACK_SKIP_IMAGES 0x806B
-#define GL_PACK_IMAGE_HEIGHT 0x806C
-#define GL_UNPACK_SKIP_IMAGES 0x806D
-#define GL_UNPACK_IMAGE_HEIGHT 0x806E
-#define GL_TEXTURE_3D 0x806F
-#define GL_PROXY_TEXTURE_3D 0x8070
-#define GL_TEXTURE_DEPTH 0x8071
-#define GL_TEXTURE_WRAP_R 0x8072
-#define GL_MAX_3D_TEXTURE_SIZE 0x8073
-#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
-#define GL_UNSIGNED_SHORT_5_6_5 0x8363
-#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
-#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
-#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
-#define GL_BGR 0x80E0
-#define GL_BGRA 0x80E1
-#define GL_MAX_ELEMENTS_VERTICES 0x80E8
-#define GL_MAX_ELEMENTS_INDICES 0x80E9
-#define GL_CLAMP_TO_EDGE 0x812F
-#define GL_TEXTURE_MIN_LOD 0x813A
-#define GL_TEXTURE_MAX_LOD 0x813B
-#define GL_TEXTURE_BASE_LEVEL 0x813C
-#define GL_TEXTURE_MAX_LEVEL 0x813D
-#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
-#define GL_SINGLE_COLOR 0x81F9
-#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
-#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
-#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
-#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
-#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
-#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
-#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
-#endif
-
-#ifndef GL_ARB_imaging
-#define GL_CONSTANT_COLOR 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
-#define GL_CONSTANT_ALPHA 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
-#define GL_BLEND_COLOR 0x8005
-#define GL_FUNC_ADD 0x8006
-#define GL_MIN 0x8007
-#define GL_MAX 0x8008
-#define GL_BLEND_EQUATION 0x8009
-#define GL_FUNC_SUBTRACT 0x800A
-#define GL_FUNC_REVERSE_SUBTRACT 0x800B
-#define GL_CONVOLUTION_1D 0x8010
-#define GL_CONVOLUTION_2D 0x8011
-#define GL_SEPARABLE_2D 0x8012
-#define GL_CONVOLUTION_BORDER_MODE 0x8013
-#define GL_CONVOLUTION_FILTER_SCALE 0x8014
-#define GL_CONVOLUTION_FILTER_BIAS 0x8015
-#define GL_REDUCE 0x8016
-#define GL_CONVOLUTION_FORMAT 0x8017
-#define GL_CONVOLUTION_WIDTH 0x8018
-#define GL_CONVOLUTION_HEIGHT 0x8019
-#define GL_MAX_CONVOLUTION_WIDTH 0x801A
-#define GL_MAX_CONVOLUTION_HEIGHT 0x801B
-#define GL_POST_CONVOLUTION_RED_SCALE 0x801C
-#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
-#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
-#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
-#define GL_POST_CONVOLUTION_RED_BIAS 0x8020
-#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
-#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
-#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
-#define GL_HISTOGRAM 0x8024
-#define GL_PROXY_HISTOGRAM 0x8025
-#define GL_HISTOGRAM_WIDTH 0x8026
-#define GL_HISTOGRAM_FORMAT 0x8027
-#define GL_HISTOGRAM_RED_SIZE 0x8028
-#define GL_HISTOGRAM_GREEN_SIZE 0x8029
-#define GL_HISTOGRAM_BLUE_SIZE 0x802A
-#define GL_HISTOGRAM_ALPHA_SIZE 0x802B
-#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
-#define GL_HISTOGRAM_SINK 0x802D
-#define GL_MINMAX 0x802E
-#define GL_MINMAX_FORMAT 0x802F
-#define GL_MINMAX_SINK 0x8030
-#define GL_TABLE_TOO_LARGE 0x8031
-#define GL_COLOR_MATRIX 0x80B1
-#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
-#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
-#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
-#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
-#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
-#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
-#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
-#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
-#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
-#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
-#define GL_COLOR_TABLE 0x80D0
-#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
-#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
-#define GL_PROXY_COLOR_TABLE 0x80D3
-#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
-#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
-#define GL_COLOR_TABLE_SCALE 0x80D6
-#define GL_COLOR_TABLE_BIAS 0x80D7
-#define GL_COLOR_TABLE_FORMAT 0x80D8
-#define GL_COLOR_TABLE_WIDTH 0x80D9
-#define GL_COLOR_TABLE_RED_SIZE 0x80DA
-#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB
-#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC
-#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
-#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
-#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
-#define GL_CONSTANT_BORDER 0x8151
-#define GL_REPLICATE_BORDER 0x8153
-#define GL_CONVOLUTION_BORDER_COLOR 0x8154
-#endif
-
-#ifndef GL_VERSION_1_3
-#define GL_TEXTURE0 0x84C0
-#define GL_TEXTURE1 0x84C1
-#define GL_TEXTURE2 0x84C2
-#define GL_TEXTURE3 0x84C3
-#define GL_TEXTURE4 0x84C4
-#define GL_TEXTURE5 0x84C5
-#define GL_TEXTURE6 0x84C6
-#define GL_TEXTURE7 0x84C7
-#define GL_TEXTURE8 0x84C8
-#define GL_TEXTURE9 0x84C9
-#define GL_TEXTURE10 0x84CA
-#define GL_TEXTURE11 0x84CB
-#define GL_TEXTURE12 0x84CC
-#define GL_TEXTURE13 0x84CD
-#define GL_TEXTURE14 0x84CE
-#define GL_TEXTURE15 0x84CF
-#define GL_TEXTURE16 0x84D0
-#define GL_TEXTURE17 0x84D1
-#define GL_TEXTURE18 0x84D2
-#define GL_TEXTURE19 0x84D3
-#define GL_TEXTURE20 0x84D4
-#define GL_TEXTURE21 0x84D5
-#define GL_TEXTURE22 0x84D6
-#define GL_TEXTURE23 0x84D7
-#define GL_TEXTURE24 0x84D8
-#define GL_TEXTURE25 0x84D9
-#define GL_TEXTURE26 0x84DA
-#define GL_TEXTURE27 0x84DB
-#define GL_TEXTURE28 0x84DC
-#define GL_TEXTURE29 0x84DD
-#define GL_TEXTURE30 0x84DE
-#define GL_TEXTURE31 0x84DF
-#define GL_ACTIVE_TEXTURE 0x84E0
-#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
-#define GL_MAX_TEXTURE_UNITS 0x84E2
-#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
-#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
-#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
-#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
-#define GL_MULTISAMPLE 0x809D
-#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
-#define GL_SAMPLE_COVERAGE 0x80A0
-#define GL_SAMPLE_BUFFERS 0x80A8
-#define GL_SAMPLES 0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
-#define GL_MULTISAMPLE_BIT 0x20000000
-#define GL_NORMAL_MAP 0x8511
-#define GL_REFLECTION_MAP 0x8512
-#define GL_TEXTURE_CUBE_MAP 0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
-#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
-#define GL_COMPRESSED_ALPHA 0x84E9
-#define GL_COMPRESSED_LUMINANCE 0x84EA
-#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
-#define GL_COMPRESSED_INTENSITY 0x84EC
-#define GL_COMPRESSED_RGB 0x84ED
-#define GL_COMPRESSED_RGBA 0x84EE
-#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
-#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
-#define GL_TEXTURE_COMPRESSED 0x86A1
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
-#define GL_CLAMP_TO_BORDER 0x812D
-#define GL_COMBINE 0x8570
-#define GL_COMBINE_RGB 0x8571
-#define GL_COMBINE_ALPHA 0x8572
-#define GL_SOURCE0_RGB 0x8580
-#define GL_SOURCE1_RGB 0x8581
-#define GL_SOURCE2_RGB 0x8582
-#define GL_SOURCE0_ALPHA 0x8588
-#define GL_SOURCE1_ALPHA 0x8589
-#define GL_SOURCE2_ALPHA 0x858A
-#define GL_OPERAND0_RGB 0x8590
-#define GL_OPERAND1_RGB 0x8591
-#define GL_OPERAND2_RGB 0x8592
-#define GL_OPERAND0_ALPHA 0x8598
-#define GL_OPERAND1_ALPHA 0x8599
-#define GL_OPERAND2_ALPHA 0x859A
-#define GL_RGB_SCALE 0x8573
-#define GL_ADD_SIGNED 0x8574
-#define GL_INTERPOLATE 0x8575
-#define GL_SUBTRACT 0x84E7
-#define GL_CONSTANT 0x8576
-#define GL_PRIMARY_COLOR 0x8577
-#define GL_PREVIOUS 0x8578
-#define GL_DOT3_RGB 0x86AE
-#define GL_DOT3_RGBA 0x86AF
-#endif
-
-#ifndef GL_VERSION_1_4
-#define GL_BLEND_DST_RGB 0x80C8
-#define GL_BLEND_SRC_RGB 0x80C9
-#define GL_BLEND_DST_ALPHA 0x80CA
-#define GL_BLEND_SRC_ALPHA 0x80CB
-#define GL_POINT_SIZE_MIN 0x8126
-#define GL_POINT_SIZE_MAX 0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
-#define GL_POINT_DISTANCE_ATTENUATION 0x8129
-#define GL_GENERATE_MIPMAP 0x8191
-#define GL_GENERATE_MIPMAP_HINT 0x8192
-#define GL_DEPTH_COMPONENT16 0x81A5
-#define GL_DEPTH_COMPONENT24 0x81A6
-#define GL_DEPTH_COMPONENT32 0x81A7
-#define GL_MIRRORED_REPEAT 0x8370
-#define GL_FOG_COORDINATE_SOURCE 0x8450
-#define GL_FOG_COORDINATE 0x8451
-#define GL_FRAGMENT_DEPTH 0x8452
-#define GL_CURRENT_FOG_COORDINATE 0x8453
-#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
-#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
-#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
-#define GL_FOG_COORDINATE_ARRAY 0x8457
-#define GL_COLOR_SUM 0x8458
-#define GL_CURRENT_SECONDARY_COLOR 0x8459
-#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
-#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
-#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
-#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
-#define GL_SECONDARY_COLOR_ARRAY 0x845E
-#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
-#define GL_TEXTURE_FILTER_CONTROL 0x8500
-#define GL_TEXTURE_LOD_BIAS 0x8501
-#define GL_INCR_WRAP 0x8507
-#define GL_DECR_WRAP 0x8508
-#define GL_TEXTURE_DEPTH_SIZE 0x884A
-#define GL_DEPTH_TEXTURE_MODE 0x884B
-#define GL_TEXTURE_COMPARE_MODE 0x884C
-#define GL_TEXTURE_COMPARE_FUNC 0x884D
-#define GL_COMPARE_R_TO_TEXTURE 0x884E
-#endif
-
-#ifndef GL_VERSION_1_5
-#define GL_BUFFER_SIZE 0x8764
-#define GL_BUFFER_USAGE 0x8765
-#define GL_QUERY_COUNTER_BITS 0x8864
-#define GL_CURRENT_QUERY 0x8865
-#define GL_QUERY_RESULT 0x8866
-#define GL_QUERY_RESULT_AVAILABLE 0x8867
-#define GL_ARRAY_BUFFER 0x8892
-#define GL_ELEMENT_ARRAY_BUFFER 0x8893
-#define GL_ARRAY_BUFFER_BINDING 0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
-#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
-#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
-#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
-#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
-#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
-#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
-#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
-#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
-#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
-#define GL_READ_ONLY 0x88B8
-#define GL_WRITE_ONLY 0x88B9
-#define GL_READ_WRITE 0x88BA
-#define GL_BUFFER_ACCESS 0x88BB
-#define GL_BUFFER_MAPPED 0x88BC
-#define GL_BUFFER_MAP_POINTER 0x88BD
-#define GL_STREAM_DRAW 0x88E0
-#define GL_STREAM_READ 0x88E1
-#define GL_STREAM_COPY 0x88E2
-#define GL_STATIC_DRAW 0x88E4
-#define GL_STATIC_READ 0x88E5
-#define GL_STATIC_COPY 0x88E6
-#define GL_DYNAMIC_DRAW 0x88E8
-#define GL_DYNAMIC_READ 0x88E9
-#define GL_DYNAMIC_COPY 0x88EA
-#define GL_SAMPLES_PASSED 0x8914
-#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
-#define GL_FOG_COORD GL_FOG_COORDINATE
-#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
-#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
-#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
-#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
-#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
-#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
-#define GL_SRC0_RGB GL_SOURCE0_RGB
-#define GL_SRC1_RGB GL_SOURCE1_RGB
-#define GL_SRC2_RGB GL_SOURCE2_RGB
-#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA
-#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA
-#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA
-#endif
-
-#ifndef GL_VERSION_2_0
-#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
-#define GL_CURRENT_VERTEX_ATTRIB 0x8626
-#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
-#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
-#define GL_STENCIL_BACK_FUNC 0x8800
-#define GL_STENCIL_BACK_FAIL 0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
-#define GL_MAX_DRAW_BUFFERS 0x8824
-#define GL_DRAW_BUFFER0 0x8825
-#define GL_DRAW_BUFFER1 0x8826
-#define GL_DRAW_BUFFER2 0x8827
-#define GL_DRAW_BUFFER3 0x8828
-#define GL_DRAW_BUFFER4 0x8829
-#define GL_DRAW_BUFFER5 0x882A
-#define GL_DRAW_BUFFER6 0x882B
-#define GL_DRAW_BUFFER7 0x882C
-#define GL_DRAW_BUFFER8 0x882D
-#define GL_DRAW_BUFFER9 0x882E
-#define GL_DRAW_BUFFER10 0x882F
-#define GL_DRAW_BUFFER11 0x8830
-#define GL_DRAW_BUFFER12 0x8831
-#define GL_DRAW_BUFFER13 0x8832
-#define GL_DRAW_BUFFER14 0x8833
-#define GL_DRAW_BUFFER15 0x8834
-#define GL_BLEND_EQUATION_ALPHA 0x883D
-#define GL_POINT_SPRITE 0x8861
-#define GL_COORD_REPLACE 0x8862
-#define GL_MAX_VERTEX_ATTRIBS 0x8869
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
-#define GL_MAX_TEXTURE_COORDS 0x8871
-#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
-#define GL_FRAGMENT_SHADER 0x8B30
-#define GL_VERTEX_SHADER 0x8B31
-#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
-#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
-#define GL_MAX_VARYING_FLOATS 0x8B4B
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
-#define GL_SHADER_TYPE 0x8B4F
-#define GL_FLOAT_VEC2 0x8B50
-#define GL_FLOAT_VEC3 0x8B51
-#define GL_FLOAT_VEC4 0x8B52
-#define GL_INT_VEC2 0x8B53
-#define GL_INT_VEC3 0x8B54
-#define GL_INT_VEC4 0x8B55
-#define GL_BOOL 0x8B56
-#define GL_BOOL_VEC2 0x8B57
-#define GL_BOOL_VEC3 0x8B58
-#define GL_BOOL_VEC4 0x8B59
-#define GL_FLOAT_MAT2 0x8B5A
-#define GL_FLOAT_MAT3 0x8B5B
-#define GL_FLOAT_MAT4 0x8B5C
-#define GL_SAMPLER_1D 0x8B5D
-#define GL_SAMPLER_2D 0x8B5E
-#define GL_SAMPLER_3D 0x8B5F
-#define GL_SAMPLER_CUBE 0x8B60
-#define GL_SAMPLER_1D_SHADOW 0x8B61
-#define GL_SAMPLER_2D_SHADOW 0x8B62
-#define GL_DELETE_STATUS 0x8B80
-#define GL_COMPILE_STATUS 0x8B81
-#define GL_LINK_STATUS 0x8B82
-#define GL_VALIDATE_STATUS 0x8B83
-#define GL_INFO_LOG_LENGTH 0x8B84
-#define GL_ATTACHED_SHADERS 0x8B85
-#define GL_ACTIVE_UNIFORMS 0x8B86
-#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
-#define GL_SHADER_SOURCE_LENGTH 0x8B88
-#define GL_ACTIVE_ATTRIBUTES 0x8B89
-#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
-#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
-#define GL_CURRENT_PROGRAM 0x8B8D
-#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
-#define GL_LOWER_LEFT 0x8CA1
-#define GL_UPPER_LEFT 0x8CA2
-#define GL_STENCIL_BACK_REF 0x8CA3
-#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
-#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
-#endif
-
-#ifndef GL_ARB_multitexture
-#define GL_TEXTURE0_ARB 0x84C0
-#define GL_TEXTURE1_ARB 0x84C1
-#define GL_TEXTURE2_ARB 0x84C2
-#define GL_TEXTURE3_ARB 0x84C3
-#define GL_TEXTURE4_ARB 0x84C4
-#define GL_TEXTURE5_ARB 0x84C5
-#define GL_TEXTURE6_ARB 0x84C6
-#define GL_TEXTURE7_ARB 0x84C7
-#define GL_TEXTURE8_ARB 0x84C8
-#define GL_TEXTURE9_ARB 0x84C9
-#define GL_TEXTURE10_ARB 0x84CA
-#define GL_TEXTURE11_ARB 0x84CB
-#define GL_TEXTURE12_ARB 0x84CC
-#define GL_TEXTURE13_ARB 0x84CD
-#define GL_TEXTURE14_ARB 0x84CE
-#define GL_TEXTURE15_ARB 0x84CF
-#define GL_TEXTURE16_ARB 0x84D0
-#define GL_TEXTURE17_ARB 0x84D1
-#define GL_TEXTURE18_ARB 0x84D2
-#define GL_TEXTURE19_ARB 0x84D3
-#define GL_TEXTURE20_ARB 0x84D4
-#define GL_TEXTURE21_ARB 0x84D5
-#define GL_TEXTURE22_ARB 0x84D6
-#define GL_TEXTURE23_ARB 0x84D7
-#define GL_TEXTURE24_ARB 0x84D8
-#define GL_TEXTURE25_ARB 0x84D9
-#define GL_TEXTURE26_ARB 0x84DA
-#define GL_TEXTURE27_ARB 0x84DB
-#define GL_TEXTURE28_ARB 0x84DC
-#define GL_TEXTURE29_ARB 0x84DD
-#define GL_TEXTURE30_ARB 0x84DE
-#define GL_TEXTURE31_ARB 0x84DF
-#define GL_ACTIVE_TEXTURE_ARB 0x84E0
-#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
-#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
-#endif
-
-#ifndef GL_ARB_transpose_matrix
-#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
-#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
-#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
-#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
-#endif
-
-#ifndef GL_ARB_multisample
-#define GL_MULTISAMPLE_ARB 0x809D
-#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
-#define GL_SAMPLE_COVERAGE_ARB 0x80A0
-#define GL_SAMPLE_BUFFERS_ARB 0x80A8
-#define GL_SAMPLES_ARB 0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
-#define GL_MULTISAMPLE_BIT_ARB 0x20000000
-#endif
-
-#ifndef GL_ARB_texture_env_add
-#endif
-
-#ifndef GL_ARB_texture_cube_map
-#define GL_NORMAL_MAP_ARB 0x8511
-#define GL_REFLECTION_MAP_ARB 0x8512
-#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
-#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
-#endif
-
-#ifndef GL_ARB_texture_compression
-#define GL_COMPRESSED_ALPHA_ARB 0x84E9
-#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
-#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
-#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
-#define GL_COMPRESSED_RGB_ARB 0x84ED
-#define GL_COMPRESSED_RGBA_ARB 0x84EE
-#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
-#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
-#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
-#endif
-
-#ifndef GL_ARB_texture_border_clamp
-#define GL_CLAMP_TO_BORDER_ARB 0x812D
-#endif
-
-#ifndef GL_ARB_point_parameters
-#define GL_POINT_SIZE_MIN_ARB 0x8126
-#define GL_POINT_SIZE_MAX_ARB 0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
-#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
-#endif
-
-#ifndef GL_ARB_vertex_blend
-#define GL_MAX_VERTEX_UNITS_ARB 0x86A4
-#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
-#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
-#define GL_VERTEX_BLEND_ARB 0x86A7
-#define GL_CURRENT_WEIGHT_ARB 0x86A8
-#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
-#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
-#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
-#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
-#define GL_WEIGHT_ARRAY_ARB 0x86AD
-#define GL_MODELVIEW0_ARB 0x1700
-#define GL_MODELVIEW1_ARB 0x850A
-#define GL_MODELVIEW2_ARB 0x8722
-#define GL_MODELVIEW3_ARB 0x8723
-#define GL_MODELVIEW4_ARB 0x8724
-#define GL_MODELVIEW5_ARB 0x8725
-#define GL_MODELVIEW6_ARB 0x8726
-#define GL_MODELVIEW7_ARB 0x8727
-#define GL_MODELVIEW8_ARB 0x8728
-#define GL_MODELVIEW9_ARB 0x8729
-#define GL_MODELVIEW10_ARB 0x872A
-#define GL_MODELVIEW11_ARB 0x872B
-#define GL_MODELVIEW12_ARB 0x872C
-#define GL_MODELVIEW13_ARB 0x872D
-#define GL_MODELVIEW14_ARB 0x872E
-#define GL_MODELVIEW15_ARB 0x872F
-#define GL_MODELVIEW16_ARB 0x8730
-#define GL_MODELVIEW17_ARB 0x8731
-#define GL_MODELVIEW18_ARB 0x8732
-#define GL_MODELVIEW19_ARB 0x8733
-#define GL_MODELVIEW20_ARB 0x8734
-#define GL_MODELVIEW21_ARB 0x8735
-#define GL_MODELVIEW22_ARB 0x8736
-#define GL_MODELVIEW23_ARB 0x8737
-#define GL_MODELVIEW24_ARB 0x8738
-#define GL_MODELVIEW25_ARB 0x8739
-#define GL_MODELVIEW26_ARB 0x873A
-#define GL_MODELVIEW27_ARB 0x873B
-#define GL_MODELVIEW28_ARB 0x873C
-#define GL_MODELVIEW29_ARB 0x873D
-#define GL_MODELVIEW30_ARB 0x873E
-#define GL_MODELVIEW31_ARB 0x873F
-#endif
-
-#ifndef GL_ARB_matrix_palette
-#define GL_MATRIX_PALETTE_ARB 0x8840
-#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
-#define GL_MAX_PALETTE_MATRICES_ARB 0x8842
-#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
-#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844
-#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845
-#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
-#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
-#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
-#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
-#endif
-
-#ifndef GL_ARB_texture_env_combine
-#define GL_COMBINE_ARB 0x8570
-#define GL_COMBINE_RGB_ARB 0x8571
-#define GL_COMBINE_ALPHA_ARB 0x8572
-#define GL_SOURCE0_RGB_ARB 0x8580
-#define GL_SOURCE1_RGB_ARB 0x8581
-#define GL_SOURCE2_RGB_ARB 0x8582
-#define GL_SOURCE0_ALPHA_ARB 0x8588
-#define GL_SOURCE1_ALPHA_ARB 0x8589
-#define GL_SOURCE2_ALPHA_ARB 0x858A
-#define GL_OPERAND0_RGB_ARB 0x8590
-#define GL_OPERAND1_RGB_ARB 0x8591
-#define GL_OPERAND2_RGB_ARB 0x8592
-#define GL_OPERAND0_ALPHA_ARB 0x8598
-#define GL_OPERAND1_ALPHA_ARB 0x8599
-#define GL_OPERAND2_ALPHA_ARB 0x859A
-#define GL_RGB_SCALE_ARB 0x8573
-#define GL_ADD_SIGNED_ARB 0x8574
-#define GL_INTERPOLATE_ARB 0x8575
-#define GL_SUBTRACT_ARB 0x84E7
-#define GL_CONSTANT_ARB 0x8576
-#define GL_PRIMARY_COLOR_ARB 0x8577
-#define GL_PREVIOUS_ARB 0x8578
-#endif
-
-#ifndef GL_ARB_texture_env_crossbar
-#endif
-
-#ifndef GL_ARB_texture_env_dot3
-#define GL_DOT3_RGB_ARB 0x86AE
-#define GL_DOT3_RGBA_ARB 0x86AF
-#endif
-
-#ifndef GL_ARB_texture_mirrored_repeat
-#define GL_MIRRORED_REPEAT_ARB 0x8370
-#endif
-
-#ifndef GL_ARB_depth_texture
-#define GL_DEPTH_COMPONENT16_ARB 0x81A5
-#define GL_DEPTH_COMPONENT24_ARB 0x81A6
-#define GL_DEPTH_COMPONENT32_ARB 0x81A7
-#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
-#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
-#endif
-
-#ifndef GL_ARB_shadow
-#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
-#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
-#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
-#endif
-
-#ifndef GL_ARB_shadow_ambient
-#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
-#endif
-
-#ifndef GL_ARB_window_pos
-#endif
-
-#ifndef GL_ARB_vertex_program
-#define GL_COLOR_SUM_ARB 0x8458
-#define GL_VERTEX_PROGRAM_ARB 0x8620
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
-#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
-#define GL_PROGRAM_LENGTH_ARB 0x8627
-#define GL_PROGRAM_STRING_ARB 0x8628
-#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
-#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
-#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
-#define GL_CURRENT_MATRIX_ARB 0x8641
-#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
-#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
-#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
-#define GL_PROGRAM_BINDING_ARB 0x8677
-#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
-#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
-#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
-#define GL_PROGRAM_FORMAT_ARB 0x8876
-#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
-#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
-#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
-#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
-#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
-#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
-#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
-#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
-#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
-#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
-#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
-#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
-#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
-#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
-#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
-#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
-#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
-#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
-#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
-#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
-#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
-#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
-#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
-#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
-#define GL_MATRIX0_ARB 0x88C0
-#define GL_MATRIX1_ARB 0x88C1
-#define GL_MATRIX2_ARB 0x88C2
-#define GL_MATRIX3_ARB 0x88C3
-#define GL_MATRIX4_ARB 0x88C4
-#define GL_MATRIX5_ARB 0x88C5
-#define GL_MATRIX6_ARB 0x88C6
-#define GL_MATRIX7_ARB 0x88C7
-#define GL_MATRIX8_ARB 0x88C8
-#define GL_MATRIX9_ARB 0x88C9
-#define GL_MATRIX10_ARB 0x88CA
-#define GL_MATRIX11_ARB 0x88CB
-#define GL_MATRIX12_ARB 0x88CC
-#define GL_MATRIX13_ARB 0x88CD
-#define GL_MATRIX14_ARB 0x88CE
-#define GL_MATRIX15_ARB 0x88CF
-#define GL_MATRIX16_ARB 0x88D0
-#define GL_MATRIX17_ARB 0x88D1
-#define GL_MATRIX18_ARB 0x88D2
-#define GL_MATRIX19_ARB 0x88D3
-#define GL_MATRIX20_ARB 0x88D4
-#define GL_MATRIX21_ARB 0x88D5
-#define GL_MATRIX22_ARB 0x88D6
-#define GL_MATRIX23_ARB 0x88D7
-#define GL_MATRIX24_ARB 0x88D8
-#define GL_MATRIX25_ARB 0x88D9
-#define GL_MATRIX26_ARB 0x88DA
-#define GL_MATRIX27_ARB 0x88DB
-#define GL_MATRIX28_ARB 0x88DC
-#define GL_MATRIX29_ARB 0x88DD
-#define GL_MATRIX30_ARB 0x88DE
-#define GL_MATRIX31_ARB 0x88DF
-#endif
-
-#ifndef GL_ARB_fragment_program
-#define GL_FRAGMENT_PROGRAM_ARB 0x8804
-#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
-#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
-#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
-#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
-#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
-#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
-#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
-#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
-#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
-#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
-#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
-#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
-#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
-#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
-#endif
-
-#ifndef GL_ARB_vertex_buffer_object
-#define GL_BUFFER_SIZE_ARB 0x8764
-#define GL_BUFFER_USAGE_ARB 0x8765
-#define GL_ARRAY_BUFFER_ARB 0x8892
-#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
-#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
-#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
-#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
-#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
-#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
-#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
-#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
-#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
-#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
-#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
-#define GL_READ_ONLY_ARB 0x88B8
-#define GL_WRITE_ONLY_ARB 0x88B9
-#define GL_READ_WRITE_ARB 0x88BA
-#define GL_BUFFER_ACCESS_ARB 0x88BB
-#define GL_BUFFER_MAPPED_ARB 0x88BC
-#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
-#define GL_STREAM_DRAW_ARB 0x88E0
-#define GL_STREAM_READ_ARB 0x88E1
-#define GL_STREAM_COPY_ARB 0x88E2
-#define GL_STATIC_DRAW_ARB 0x88E4
-#define GL_STATIC_READ_ARB 0x88E5
-#define GL_STATIC_COPY_ARB 0x88E6
-#define GL_DYNAMIC_DRAW_ARB 0x88E8
-#define GL_DYNAMIC_READ_ARB 0x88E9
-#define GL_DYNAMIC_COPY_ARB 0x88EA
-#endif
-
-#ifndef GL_ARB_occlusion_query
-#define GL_QUERY_COUNTER_BITS_ARB 0x8864
-#define GL_CURRENT_QUERY_ARB 0x8865
-#define GL_QUERY_RESULT_ARB 0x8866
-#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
-#define GL_SAMPLES_PASSED_ARB 0x8914
-#endif
-
-#ifndef GL_ARB_shader_objects
-#define GL_PROGRAM_OBJECT_ARB 0x8B40
-#define GL_SHADER_OBJECT_ARB 0x8B48
-#define GL_OBJECT_TYPE_ARB 0x8B4E
-#define GL_OBJECT_SUBTYPE_ARB 0x8B4F
-#define GL_FLOAT_VEC2_ARB 0x8B50
-#define GL_FLOAT_VEC3_ARB 0x8B51
-#define GL_FLOAT_VEC4_ARB 0x8B52
-#define GL_INT_VEC2_ARB 0x8B53
-#define GL_INT_VEC3_ARB 0x8B54
-#define GL_INT_VEC4_ARB 0x8B55
-#define GL_BOOL_ARB 0x8B56
-#define GL_BOOL_VEC2_ARB 0x8B57
-#define GL_BOOL_VEC3_ARB 0x8B58
-#define GL_BOOL_VEC4_ARB 0x8B59
-#define GL_FLOAT_MAT2_ARB 0x8B5A
-#define GL_FLOAT_MAT3_ARB 0x8B5B
-#define GL_FLOAT_MAT4_ARB 0x8B5C
-#define GL_SAMPLER_1D_ARB 0x8B5D
-#define GL_SAMPLER_2D_ARB 0x8B5E
-#define GL_SAMPLER_3D_ARB 0x8B5F
-#define GL_SAMPLER_CUBE_ARB 0x8B60
-#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61
-#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62
-#define GL_SAMPLER_2D_RECT_ARB 0x8B63
-#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
-#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
-#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
-#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
-#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
-#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
-#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
-#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
-#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
-#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
-#endif
-
-#ifndef GL_ARB_vertex_shader
-#define GL_VERTEX_SHADER_ARB 0x8B31
-#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
-#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
-#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
-#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
-#endif
-
-#ifndef GL_ARB_fragment_shader
-#define GL_FRAGMENT_SHADER_ARB 0x8B30
-#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
-#endif
-
-#ifndef GL_ARB_shading_language_100
-#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C
-#endif
-
-#ifndef GL_ARB_texture_non_power_of_two
-#endif
-
-#ifndef GL_ARB_point_sprite
-#define GL_POINT_SPRITE_ARB 0x8861
-#define GL_COORD_REPLACE_ARB 0x8862
-#endif
-
-#ifndef GL_ARB_fragment_program_shadow
-#endif
-
-#ifndef GL_ARB_draw_buffers
-#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
-#define GL_DRAW_BUFFER0_ARB 0x8825
-#define GL_DRAW_BUFFER1_ARB 0x8826
-#define GL_DRAW_BUFFER2_ARB 0x8827
-#define GL_DRAW_BUFFER3_ARB 0x8828
-#define GL_DRAW_BUFFER4_ARB 0x8829
-#define GL_DRAW_BUFFER5_ARB 0x882A
-#define GL_DRAW_BUFFER6_ARB 0x882B
-#define GL_DRAW_BUFFER7_ARB 0x882C
-#define GL_DRAW_BUFFER8_ARB 0x882D
-#define GL_DRAW_BUFFER9_ARB 0x882E
-#define GL_DRAW_BUFFER10_ARB 0x882F
-#define GL_DRAW_BUFFER11_ARB 0x8830
-#define GL_DRAW_BUFFER12_ARB 0x8831
-#define GL_DRAW_BUFFER13_ARB 0x8832
-#define GL_DRAW_BUFFER14_ARB 0x8833
-#define GL_DRAW_BUFFER15_ARB 0x8834
-#endif
-
-#ifndef GL_ARB_texture_rectangle
-#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
-#endif
-
-#ifndef GL_ARB_color_buffer_float
-#define GL_RGBA_FLOAT_MODE_ARB 0x8820
-#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
-#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
-#define GL_CLAMP_READ_COLOR_ARB 0x891C
-#define GL_FIXED_ONLY_ARB 0x891D
-#endif
-
-#ifndef GL_ARB_half_float_pixel
-#define GL_HALF_FLOAT_ARB 0x140B
-#endif
-
-#ifndef GL_ARB_texture_float
-#define GL_TEXTURE_RED_TYPE_ARB 0x8C10
-#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
-#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
-#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
-#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
-#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
-#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
-#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17
-#define GL_RGBA32F_ARB 0x8814
-#define GL_RGB32F_ARB 0x8815
-#define GL_ALPHA32F_ARB 0x8816
-#define GL_INTENSITY32F_ARB 0x8817
-#define GL_LUMINANCE32F_ARB 0x8818
-#define GL_LUMINANCE_ALPHA32F_ARB 0x8819
-#define GL_RGBA16F_ARB 0x881A
-#define GL_RGB16F_ARB 0x881B
-#define GL_ALPHA16F_ARB 0x881C
-#define GL_INTENSITY16F_ARB 0x881D
-#define GL_LUMINANCE16F_ARB 0x881E
-#define GL_LUMINANCE_ALPHA16F_ARB 0x881F
-#endif
-
-#ifndef GL_ARB_pixel_buffer_object
-#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB
-#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
-#endif
-
-#ifndef GL_EXT_abgr
-#define GL_ABGR_EXT 0x8000
-#endif
-
-#ifndef GL_EXT_blend_color
-#define GL_CONSTANT_COLOR_EXT 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
-#define GL_CONSTANT_ALPHA_EXT 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
-#define GL_BLEND_COLOR_EXT 0x8005
-#endif
-
-#ifndef GL_EXT_polygon_offset
-#define GL_POLYGON_OFFSET_EXT 0x8037
-#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
-#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039
-#endif
-
-#ifndef GL_EXT_texture
-#define GL_ALPHA4_EXT 0x803B
-#define GL_ALPHA8_EXT 0x803C
-#define GL_ALPHA12_EXT 0x803D
-#define GL_ALPHA16_EXT 0x803E
-#define GL_LUMINANCE4_EXT 0x803F
-#define GL_LUMINANCE8_EXT 0x8040
-#define GL_LUMINANCE12_EXT 0x8041
-#define GL_LUMINANCE16_EXT 0x8042
-#define GL_LUMINANCE4_ALPHA4_EXT 0x8043
-#define GL_LUMINANCE6_ALPHA2_EXT 0x8044
-#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
-#define GL_LUMINANCE12_ALPHA4_EXT 0x8046
-#define GL_LUMINANCE12_ALPHA12_EXT 0x8047
-#define GL_LUMINANCE16_ALPHA16_EXT 0x8048
-#define GL_INTENSITY_EXT 0x8049
-#define GL_INTENSITY4_EXT 0x804A
-#define GL_INTENSITY8_EXT 0x804B
-#define GL_INTENSITY12_EXT 0x804C
-#define GL_INTENSITY16_EXT 0x804D
-#define GL_RGB2_EXT 0x804E
-#define GL_RGB4_EXT 0x804F
-#define GL_RGB5_EXT 0x8050
-#define GL_RGB8_EXT 0x8051
-#define GL_RGB10_EXT 0x8052
-#define GL_RGB12_EXT 0x8053
-#define GL_RGB16_EXT 0x8054
-#define GL_RGBA2_EXT 0x8055
-#define GL_RGBA4_EXT 0x8056
-#define GL_RGB5_A1_EXT 0x8057
-#define GL_RGBA8_EXT 0x8058
-#define GL_RGB10_A2_EXT 0x8059
-#define GL_RGBA12_EXT 0x805A
-#define GL_RGBA16_EXT 0x805B
-#define GL_TEXTURE_RED_SIZE_EXT 0x805C
-#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D
-#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E
-#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
-#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
-#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
-#define GL_REPLACE_EXT 0x8062
-#define GL_PROXY_TEXTURE_1D_EXT 0x8063
-#define GL_PROXY_TEXTURE_2D_EXT 0x8064
-#define GL_TEXTURE_TOO_LARGE_EXT 0x8065
-#endif
-
-#ifndef GL_EXT_texture3D
-#define GL_PACK_SKIP_IMAGES_EXT 0x806B
-#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C
-#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D
-#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
-#define GL_TEXTURE_3D_EXT 0x806F
-#define GL_PROXY_TEXTURE_3D_EXT 0x8070
-#define GL_TEXTURE_DEPTH_EXT 0x8071
-#define GL_TEXTURE_WRAP_R_EXT 0x8072
-#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
-#endif
-
-#ifndef GL_SGIS_texture_filter4
-#define GL_FILTER4_SGIS 0x8146
-#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147
-#endif
-
-#ifndef GL_EXT_subtexture
-#endif
-
-#ifndef GL_EXT_copy_texture
-#endif
-
-#ifndef GL_EXT_histogram
-#define GL_HISTOGRAM_EXT 0x8024
-#define GL_PROXY_HISTOGRAM_EXT 0x8025
-#define GL_HISTOGRAM_WIDTH_EXT 0x8026
-#define GL_HISTOGRAM_FORMAT_EXT 0x8027
-#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028
-#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
-#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
-#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
-#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
-#define GL_HISTOGRAM_SINK_EXT 0x802D
-#define GL_MINMAX_EXT 0x802E
-#define GL_MINMAX_FORMAT_EXT 0x802F
-#define GL_MINMAX_SINK_EXT 0x8030
-#define GL_TABLE_TOO_LARGE_EXT 0x8031
-#endif
-
-#ifndef GL_EXT_convolution
-#define GL_CONVOLUTION_1D_EXT 0x8010
-#define GL_CONVOLUTION_2D_EXT 0x8011
-#define GL_SEPARABLE_2D_EXT 0x8012
-#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
-#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
-#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
-#define GL_REDUCE_EXT 0x8016
-#define GL_CONVOLUTION_FORMAT_EXT 0x8017
-#define GL_CONVOLUTION_WIDTH_EXT 0x8018
-#define GL_CONVOLUTION_HEIGHT_EXT 0x8019
-#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
-#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
-#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
-#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
-#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
-#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
-#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
-#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
-#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
-#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
-#endif
-
-#ifndef GL_SGI_color_matrix
-#define GL_COLOR_MATRIX_SGI 0x80B1
-#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
-#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
-#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
-#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
-#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
-#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
-#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
-#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
-#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
-#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
-#endif
-
-#ifndef GL_SGI_color_table
-#define GL_COLOR_TABLE_SGI 0x80D0
-#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
-#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
-#define GL_PROXY_COLOR_TABLE_SGI 0x80D3
-#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
-#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
-#define GL_COLOR_TABLE_SCALE_SGI 0x80D6
-#define GL_COLOR_TABLE_BIAS_SGI 0x80D7
-#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8
-#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9
-#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA
-#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
-#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
-#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
-#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
-#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
-#endif
-
-#ifndef GL_SGIS_pixel_texture
-#define GL_PIXEL_TEXTURE_SGIS 0x8353
-#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354
-#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355
-#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356
-#endif
-
-#ifndef GL_SGIX_pixel_texture
-#define GL_PIXEL_TEX_GEN_SGIX 0x8139
-#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B
-#endif
-
-#ifndef GL_SGIS_texture4D
-#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130
-#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131
-#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132
-#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133
-#define GL_TEXTURE_4D_SGIS 0x8134
-#define GL_PROXY_TEXTURE_4D_SGIS 0x8135
-#define GL_TEXTURE_4DSIZE_SGIS 0x8136
-#define GL_TEXTURE_WRAP_Q_SGIS 0x8137
-#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138
-#define GL_TEXTURE_4D_BINDING_SGIS 0x814F
-#endif
-
-#ifndef GL_SGI_texture_color_table
-#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC
-#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD
-#endif
-
-#ifndef GL_EXT_cmyka
-#define GL_CMYK_EXT 0x800C
-#define GL_CMYKA_EXT 0x800D
-#define GL_PACK_CMYK_HINT_EXT 0x800E
-#define GL_UNPACK_CMYK_HINT_EXT 0x800F
-#endif
-
-#ifndef GL_EXT_texture_object
-#define GL_TEXTURE_PRIORITY_EXT 0x8066
-#define GL_TEXTURE_RESIDENT_EXT 0x8067
-#define GL_TEXTURE_1D_BINDING_EXT 0x8068
-#define GL_TEXTURE_2D_BINDING_EXT 0x8069
-#define GL_TEXTURE_3D_BINDING_EXT 0x806A
-#endif
-
-#ifndef GL_SGIS_detail_texture
-#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095
-#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096
-#define GL_LINEAR_DETAIL_SGIS 0x8097
-#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098
-#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099
-#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A
-#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B
-#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C
-#endif
-
-#ifndef GL_SGIS_sharpen_texture
-#define GL_LINEAR_SHARPEN_SGIS 0x80AD
-#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE
-#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF
-#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0
-#endif
-
-#ifndef GL_EXT_packed_pixels
-#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
-#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
-#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
-#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
-#endif
-
-#ifndef GL_SGIS_texture_lod
-#define GL_TEXTURE_MIN_LOD_SGIS 0x813A
-#define GL_TEXTURE_MAX_LOD_SGIS 0x813B
-#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C
-#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D
-#endif
-
-#ifndef GL_SGIS_multisample
-#define GL_MULTISAMPLE_SGIS 0x809D
-#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
-#define GL_SAMPLE_MASK_SGIS 0x80A0
-#define GL_1PASS_SGIS 0x80A1
-#define GL_2PASS_0_SGIS 0x80A2
-#define GL_2PASS_1_SGIS 0x80A3
-#define GL_4PASS_0_SGIS 0x80A4
-#define GL_4PASS_1_SGIS 0x80A5
-#define GL_4PASS_2_SGIS 0x80A6
-#define GL_4PASS_3_SGIS 0x80A7
-#define GL_SAMPLE_BUFFERS_SGIS 0x80A8
-#define GL_SAMPLES_SGIS 0x80A9
-#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
-#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
-#define GL_SAMPLE_PATTERN_SGIS 0x80AC
-#endif
-
-#ifndef GL_EXT_rescale_normal
-#define GL_RESCALE_NORMAL_EXT 0x803A
-#endif
-
-#ifndef GL_EXT_vertex_array
-#define GL_VERTEX_ARRAY_EXT 0x8074
-#define GL_NORMAL_ARRAY_EXT 0x8075
-#define GL_COLOR_ARRAY_EXT 0x8076
-#define GL_INDEX_ARRAY_EXT 0x8077
-#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
-#define GL_EDGE_FLAG_ARRAY_EXT 0x8079
-#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
-#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
-#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
-#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
-#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
-#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
-#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
-#define GL_COLOR_ARRAY_SIZE_EXT 0x8081
-#define GL_COLOR_ARRAY_TYPE_EXT 0x8082
-#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
-#define GL_COLOR_ARRAY_COUNT_EXT 0x8084
-#define GL_INDEX_ARRAY_TYPE_EXT 0x8085
-#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
-#define GL_INDEX_ARRAY_COUNT_EXT 0x8087
-#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
-#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
-#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
-#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
-#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
-#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
-#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
-#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
-#define GL_COLOR_ARRAY_POINTER_EXT 0x8090
-#define GL_INDEX_ARRAY_POINTER_EXT 0x8091
-#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
-#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
-#endif
-
-#ifndef GL_EXT_misc_attribute
-#endif
-
-#ifndef GL_SGIS_generate_mipmap
-#define GL_GENERATE_MIPMAP_SGIS 0x8191
-#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
-#endif
-
-#ifndef GL_SGIX_clipmap
-#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170
-#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171
-#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172
-#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173
-#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174
-#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175
-#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176
-#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177
-#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178
-#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D
-#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E
-#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F
-#endif
-
-#ifndef GL_SGIX_shadow
-#define GL_TEXTURE_COMPARE_SGIX 0x819A
-#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
-#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C
-#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D
-#endif
-
-#ifndef GL_SGIS_texture_edge_clamp
-#define GL_CLAMP_TO_EDGE_SGIS 0x812F
-#endif
-
-#ifndef GL_SGIS_texture_border_clamp
-#define GL_CLAMP_TO_BORDER_SGIS 0x812D
-#endif
-
-#ifndef GL_EXT_blend_minmax
-#define GL_FUNC_ADD_EXT 0x8006
-#define GL_MIN_EXT 0x8007
-#define GL_MAX_EXT 0x8008
-#define GL_BLEND_EQUATION_EXT 0x8009
-#endif
-
-#ifndef GL_EXT_blend_subtract
-#define GL_FUNC_SUBTRACT_EXT 0x800A
-#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
-#endif
-
-#ifndef GL_EXT_blend_logic_op
-#endif
-
-#ifndef GL_SGIX_interlace
-#define GL_INTERLACE_SGIX 0x8094
-#endif
-
-#ifndef GL_SGIX_pixel_tiles
-#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E
-#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F
-#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140
-#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141
-#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142
-#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143
-#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144
-#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145
-#endif
-
-#ifndef GL_SGIS_texture_select
-#define GL_DUAL_ALPHA4_SGIS 0x8110
-#define GL_DUAL_ALPHA8_SGIS 0x8111
-#define GL_DUAL_ALPHA12_SGIS 0x8112
-#define GL_DUAL_ALPHA16_SGIS 0x8113
-#define GL_DUAL_LUMINANCE4_SGIS 0x8114
-#define GL_DUAL_LUMINANCE8_SGIS 0x8115
-#define GL_DUAL_LUMINANCE12_SGIS 0x8116
-#define GL_DUAL_LUMINANCE16_SGIS 0x8117
-#define GL_DUAL_INTENSITY4_SGIS 0x8118
-#define GL_DUAL_INTENSITY8_SGIS 0x8119
-#define GL_DUAL_INTENSITY12_SGIS 0x811A
-#define GL_DUAL_INTENSITY16_SGIS 0x811B
-#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C
-#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D
-#define GL_QUAD_ALPHA4_SGIS 0x811E
-#define GL_QUAD_ALPHA8_SGIS 0x811F
-#define GL_QUAD_LUMINANCE4_SGIS 0x8120
-#define GL_QUAD_LUMINANCE8_SGIS 0x8121
-#define GL_QUAD_INTENSITY4_SGIS 0x8122
-#define GL_QUAD_INTENSITY8_SGIS 0x8123
-#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124
-#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125
-#endif
-
-#ifndef GL_SGIX_sprite
-#define GL_SPRITE_SGIX 0x8148
-#define GL_SPRITE_MODE_SGIX 0x8149
-#define GL_SPRITE_AXIS_SGIX 0x814A
-#define GL_SPRITE_TRANSLATION_SGIX 0x814B
-#define GL_SPRITE_AXIAL_SGIX 0x814C
-#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D
-#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E
-#endif
-
-#ifndef GL_SGIX_texture_multi_buffer
-#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
-#endif
-
-#ifndef GL_EXT_point_parameters
-#define GL_POINT_SIZE_MIN_EXT 0x8126
-#define GL_POINT_SIZE_MAX_EXT 0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
-#define GL_DISTANCE_ATTENUATION_EXT 0x8129
-#endif
-
-#ifndef GL_SGIS_point_parameters
-#define GL_POINT_SIZE_MIN_SGIS 0x8126
-#define GL_POINT_SIZE_MAX_SGIS 0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128
-#define GL_DISTANCE_ATTENUATION_SGIS 0x8129
-#endif
-
-#ifndef GL_SGIX_instruments
-#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180
-#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181
-#endif
-
-#ifndef GL_SGIX_texture_scale_bias
-#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179
-#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
-#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
-#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
-#endif
-
-#ifndef GL_SGIX_framezoom
-#define GL_FRAMEZOOM_SGIX 0x818B
-#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C
-#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D
-#endif
-
-#ifndef GL_SGIX_tag_sample_buffer
-#endif
-
-#ifndef GL_FfdMaskSGIX
-#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001
-#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002
-#endif
-
-#ifndef GL_SGIX_polynomial_ffd
-#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194
-#define GL_TEXTURE_DEFORMATION_SGIX 0x8195
-#define GL_DEFORMATIONS_MASK_SGIX 0x8196
-#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197
-#endif
-
-#ifndef GL_SGIX_reference_plane
-#define GL_REFERENCE_PLANE_SGIX 0x817D
-#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E
-#endif
-
-#ifndef GL_SGIX_flush_raster
-#endif
-
-#ifndef GL_SGIX_depth_texture
-#define GL_DEPTH_COMPONENT16_SGIX 0x81A5
-#define GL_DEPTH_COMPONENT24_SGIX 0x81A6
-#define GL_DEPTH_COMPONENT32_SGIX 0x81A7
-#endif
-
-#ifndef GL_SGIS_fog_function
-#define GL_FOG_FUNC_SGIS 0x812A
-#define GL_FOG_FUNC_POINTS_SGIS 0x812B
-#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C
-#endif
-
-#ifndef GL_SGIX_fog_offset
-#define GL_FOG_OFFSET_SGIX 0x8198
-#define GL_FOG_OFFSET_VALUE_SGIX 0x8199
-#endif
-
-#ifndef GL_HP_image_transform
-#define GL_IMAGE_SCALE_X_HP 0x8155
-#define GL_IMAGE_SCALE_Y_HP 0x8156
-#define GL_IMAGE_TRANSLATE_X_HP 0x8157
-#define GL_IMAGE_TRANSLATE_Y_HP 0x8158
-#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159
-#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A
-#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B
-#define GL_IMAGE_MAG_FILTER_HP 0x815C
-#define GL_IMAGE_MIN_FILTER_HP 0x815D
-#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E
-#define GL_CUBIC_HP 0x815F
-#define GL_AVERAGE_HP 0x8160
-#define GL_IMAGE_TRANSFORM_2D_HP 0x8161
-#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162
-#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163
-#endif
-
-#ifndef GL_HP_convolution_border_modes
-#define GL_IGNORE_BORDER_HP 0x8150
-#define GL_CONSTANT_BORDER_HP 0x8151
-#define GL_REPLICATE_BORDER_HP 0x8153
-#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154
-#endif
-
-#ifndef GL_INGR_palette_buffer
-#endif
-
-#ifndef GL_SGIX_texture_add_env
-#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE
-#endif
-
-#ifndef GL_EXT_color_subtable
-#endif
-
-#ifndef GL_PGI_vertex_hints
-#define GL_VERTEX_DATA_HINT_PGI 0x1A22A
-#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B
-#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C
-#define GL_MAX_VERTEX_HINT_PGI 0x1A22D
-#define GL_COLOR3_BIT_PGI 0x00010000
-#define GL_COLOR4_BIT_PGI 0x00020000
-#define GL_EDGEFLAG_BIT_PGI 0x00040000
-#define GL_INDEX_BIT_PGI 0x00080000
-#define GL_MAT_AMBIENT_BIT_PGI 0x00100000
-#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
-#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000
-#define GL_MAT_EMISSION_BIT_PGI 0x00800000
-#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000
-#define GL_MAT_SHININESS_BIT_PGI 0x02000000
-#define GL_MAT_SPECULAR_BIT_PGI 0x04000000
-#define GL_NORMAL_BIT_PGI 0x08000000
-#define GL_TEXCOORD1_BIT_PGI 0x10000000
-#define GL_TEXCOORD2_BIT_PGI 0x20000000
-#define GL_TEXCOORD3_BIT_PGI 0x40000000
-#define GL_TEXCOORD4_BIT_PGI 0x80000000
-#define GL_VERTEX23_BIT_PGI 0x00000004
-#define GL_VERTEX4_BIT_PGI 0x00000008
-#endif
-
-#ifndef GL_PGI_misc_hints
-#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8
-#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD
-#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE
-#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202
-#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203
-#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204
-#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C
-#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D
-#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E
-#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F
-#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210
-#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211
-#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216
-#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217
-#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218
-#define GL_FULL_STIPPLE_HINT_PGI 0x1A219
-#define GL_CLIP_NEAR_HINT_PGI 0x1A220
-#define GL_CLIP_FAR_HINT_PGI 0x1A221
-#define GL_WIDE_LINE_HINT_PGI 0x1A222
-#define GL_BACK_NORMALS_HINT_PGI 0x1A223
-#endif
-
-#ifndef GL_EXT_paletted_texture
-#define GL_COLOR_INDEX1_EXT 0x80E2
-#define GL_COLOR_INDEX2_EXT 0x80E3
-#define GL_COLOR_INDEX4_EXT 0x80E4
-#define GL_COLOR_INDEX8_EXT 0x80E5
-#define GL_COLOR_INDEX12_EXT 0x80E6
-#define GL_COLOR_INDEX16_EXT 0x80E7
-#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
-#endif
-
-#ifndef GL_EXT_clip_volume_hint
-#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0
-#endif
-
-#ifndef GL_SGIX_list_priority
-#define GL_LIST_PRIORITY_SGIX 0x8182
-#endif
-
-#ifndef GL_SGIX_ir_instrument1
-#define GL_IR_INSTRUMENT1_SGIX 0x817F
-#endif
-
-#ifndef GL_SGIX_calligraphic_fragment
-#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183
-#endif
-
-#ifndef GL_SGIX_texture_lod_bias
-#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E
-#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F
-#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190
-#endif
-
-#ifndef GL_SGIX_shadow_ambient
-#define GL_SHADOW_AMBIENT_SGIX 0x80BF
-#endif
-
-#ifndef GL_EXT_index_texture
-#endif
-
-#ifndef GL_EXT_index_material
-#define GL_INDEX_MATERIAL_EXT 0x81B8
-#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9
-#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA
-#endif
-
-#ifndef GL_EXT_index_func
-#define GL_INDEX_TEST_EXT 0x81B5
-#define GL_INDEX_TEST_FUNC_EXT 0x81B6
-#define GL_INDEX_TEST_REF_EXT 0x81B7
-#endif
-
-#ifndef GL_EXT_index_array_formats
-#define GL_IUI_V2F_EXT 0x81AD
-#define GL_IUI_V3F_EXT 0x81AE
-#define GL_IUI_N3F_V2F_EXT 0x81AF
-#define GL_IUI_N3F_V3F_EXT 0x81B0
-#define GL_T2F_IUI_V2F_EXT 0x81B1
-#define GL_T2F_IUI_V3F_EXT 0x81B2
-#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3
-#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4
-#endif
-
-#ifndef GL_EXT_compiled_vertex_array
-#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
-#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
-#endif
-
-#ifndef GL_EXT_cull_vertex
-#define GL_CULL_VERTEX_EXT 0x81AA
-#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
-#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
-#endif
-
-#ifndef GL_SGIX_ycrcb
-#define GL_YCRCB_422_SGIX 0x81BB
-#define GL_YCRCB_444_SGIX 0x81BC
-#endif
-
-#ifndef GL_SGIX_fragment_lighting
-#define GL_FRAGMENT_LIGHTING_SGIX 0x8400
-#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401
-#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402
-#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403
-#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404
-#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405
-#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406
-#define GL_LIGHT_ENV_MODE_SGIX 0x8407
-#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408
-#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409
-#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A
-#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B
-#define GL_FRAGMENT_LIGHT0_SGIX 0x840C
-#define GL_FRAGMENT_LIGHT1_SGIX 0x840D
-#define GL_FRAGMENT_LIGHT2_SGIX 0x840E
-#define GL_FRAGMENT_LIGHT3_SGIX 0x840F
-#define GL_FRAGMENT_LIGHT4_SGIX 0x8410
-#define GL_FRAGMENT_LIGHT5_SGIX 0x8411
-#define GL_FRAGMENT_LIGHT6_SGIX 0x8412
-#define GL_FRAGMENT_LIGHT7_SGIX 0x8413
-#endif
-
-#ifndef GL_IBM_rasterpos_clip
-#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262
-#endif
-
-#ifndef GL_HP_texture_lighting
-#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167
-#define GL_TEXTURE_POST_SPECULAR_HP 0x8168
-#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169
-#endif
-
-#ifndef GL_EXT_draw_range_elements
-#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
-#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
-#endif
-
-#ifndef GL_WIN_phong_shading
-#define GL_PHONG_WIN 0x80EA
-#define GL_PHONG_HINT_WIN 0x80EB
-#endif
-
-#ifndef GL_WIN_specular_fog
-#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC
-#endif
-
-#ifndef GL_EXT_light_texture
-#define GL_FRAGMENT_MATERIAL_EXT 0x8349
-#define GL_FRAGMENT_NORMAL_EXT 0x834A
-#define GL_FRAGMENT_COLOR_EXT 0x834C
-#define GL_ATTENUATION_EXT 0x834D
-#define GL_SHADOW_ATTENUATION_EXT 0x834E
-#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F
-#define GL_TEXTURE_LIGHT_EXT 0x8350
-#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351
-#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
-/* reuse GL_FRAGMENT_DEPTH_EXT */
-#endif
-
-#ifndef GL_SGIX_blend_alpha_minmax
-#define GL_ALPHA_MIN_SGIX 0x8320
-#define GL_ALPHA_MAX_SGIX 0x8321
-#endif
-
-#ifndef GL_SGIX_impact_pixel_texture
-#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184
-#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185
-#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186
-#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187
-#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188
-#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189
-#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A
-#endif
-
-#ifndef GL_EXT_bgra
-#define GL_BGR_EXT 0x80E0
-#define GL_BGRA_EXT 0x80E1
-#endif
-
-#ifndef GL_SGIX_async
-#define GL_ASYNC_MARKER_SGIX 0x8329
-#endif
-
-#ifndef GL_SGIX_async_pixel
-#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C
-#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
-#define GL_ASYNC_READ_PIXELS_SGIX 0x835E
-#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
-#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
-#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
-#endif
-
-#ifndef GL_SGIX_async_histogram
-#define GL_ASYNC_HISTOGRAM_SGIX 0x832C
-#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
-#endif
-
-#ifndef GL_INTEL_texture_scissor
-#endif
-
-#ifndef GL_INTEL_parallel_arrays
-#define GL_PARALLEL_ARRAYS_INTEL 0x83F4
-#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
-#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
-#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
-#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
-#endif
-
-#ifndef GL_HP_occlusion_test
-#define GL_OCCLUSION_TEST_HP 0x8165
-#define GL_OCCLUSION_TEST_RESULT_HP 0x8166
-#endif
-
-#ifndef GL_EXT_pixel_transform
-#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330
-#define GL_PIXEL_MAG_FILTER_EXT 0x8331
-#define GL_PIXEL_MIN_FILTER_EXT 0x8332
-#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333
-#define GL_CUBIC_EXT 0x8334
-#define GL_AVERAGE_EXT 0x8335
-#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
-#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
-#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338
-#endif
-
-#ifndef GL_EXT_pixel_transform_color_table
-#endif
-
-#ifndef GL_EXT_shared_texture_palette
-#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
-#endif
-
-#ifndef GL_EXT_separate_specular_color
-#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
-#define GL_SINGLE_COLOR_EXT 0x81F9
-#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
-#endif
-
-#ifndef GL_EXT_secondary_color
-#define GL_COLOR_SUM_EXT 0x8458
-#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
-#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
-#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
-#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
-#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
-#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
-#endif
-
-#ifndef GL_EXT_texture_perturb_normal
-#define GL_PERTURB_EXT 0x85AE
-#define GL_TEXTURE_NORMAL_EXT 0x85AF
-#endif
-
-#ifndef GL_EXT_multi_draw_arrays
-#endif
-
-#ifndef GL_EXT_fog_coord
-#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
-#define GL_FOG_COORDINATE_EXT 0x8451
-#define GL_FRAGMENT_DEPTH_EXT 0x8452
-#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
-#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
-#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
-#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
-#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
-#endif
-
-#ifndef GL_REND_screen_coordinates
-#define GL_SCREEN_COORDINATES_REND 0x8490
-#define GL_INVERTED_SCREEN_W_REND 0x8491
-#endif
-
-#ifndef GL_EXT_coordinate_frame
-#define GL_TANGENT_ARRAY_EXT 0x8439
-#define GL_BINORMAL_ARRAY_EXT 0x843A
-#define GL_CURRENT_TANGENT_EXT 0x843B
-#define GL_CURRENT_BINORMAL_EXT 0x843C
-#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E
-#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F
-#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440
-#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441
-#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442
-#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443
-#define GL_MAP1_TANGENT_EXT 0x8444
-#define GL_MAP2_TANGENT_EXT 0x8445
-#define GL_MAP1_BINORMAL_EXT 0x8446
-#define GL_MAP2_BINORMAL_EXT 0x8447
-#endif
-
-#ifndef GL_EXT_texture_env_combine
-#define GL_COMBINE_EXT 0x8570
-#define GL_COMBINE_RGB_EXT 0x8571
-#define GL_COMBINE_ALPHA_EXT 0x8572
-#define GL_RGB_SCALE_EXT 0x8573
-#define GL_ADD_SIGNED_EXT 0x8574
-#define GL_INTERPOLATE_EXT 0x8575
-#define GL_CONSTANT_EXT 0x8576
-#define GL_PRIMARY_COLOR_EXT 0x8577
-#define GL_PREVIOUS_EXT 0x8578
-#define GL_SOURCE0_RGB_EXT 0x8580
-#define GL_SOURCE1_RGB_EXT 0x8581
-#define GL_SOURCE2_RGB_EXT 0x8582
-#define GL_SOURCE0_ALPHA_EXT 0x8588
-#define GL_SOURCE1_ALPHA_EXT 0x8589
-#define GL_SOURCE2_ALPHA_EXT 0x858A
-#define GL_OPERAND0_RGB_EXT 0x8590
-#define GL_OPERAND1_RGB_EXT 0x8591
-#define GL_OPERAND2_RGB_EXT 0x8592
-#define GL_OPERAND0_ALPHA_EXT 0x8598
-#define GL_OPERAND1_ALPHA_EXT 0x8599
-#define GL_OPERAND2_ALPHA_EXT 0x859A
-#endif
-
-#ifndef GL_APPLE_specular_vector
-#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
-#endif
-
-#ifndef GL_APPLE_transform_hint
-#define GL_TRANSFORM_HINT_APPLE 0x85B1
-#endif
-
-#ifndef GL_SGIX_fog_scale
-#define GL_FOG_SCALE_SGIX 0x81FC
-#define GL_FOG_SCALE_VALUE_SGIX 0x81FD
-#endif
-
-#ifndef GL_SUNX_constant_data
-#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5
-#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6
-#endif
-
-#ifndef GL_SUN_global_alpha
-#define GL_GLOBAL_ALPHA_SUN 0x81D9
-#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA
-#endif
-
-#ifndef GL_SUN_triangle_list
-#define GL_RESTART_SUN 0x0001
-#define GL_REPLACE_MIDDLE_SUN 0x0002
-#define GL_REPLACE_OLDEST_SUN 0x0003
-#define GL_TRIANGLE_LIST_SUN 0x81D7
-#define GL_REPLACEMENT_CODE_SUN 0x81D8
-#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0
-#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
-#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
-#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
-#define GL_R1UI_V3F_SUN 0x85C4
-#define GL_R1UI_C4UB_V3F_SUN 0x85C5
-#define GL_R1UI_C3F_V3F_SUN 0x85C6
-#define GL_R1UI_N3F_V3F_SUN 0x85C7
-#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8
-#define GL_R1UI_T2F_V3F_SUN 0x85C9
-#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA
-#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB
-#endif
-
-#ifndef GL_SUN_vertex
-#endif
-
-#ifndef GL_EXT_blend_func_separate
-#define GL_BLEND_DST_RGB_EXT 0x80C8
-#define GL_BLEND_SRC_RGB_EXT 0x80C9
-#define GL_BLEND_DST_ALPHA_EXT 0x80CA
-#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
-#endif
-
-#ifndef GL_INGR_color_clamp
-#define GL_RED_MIN_CLAMP_INGR 0x8560
-#define GL_GREEN_MIN_CLAMP_INGR 0x8561
-#define GL_BLUE_MIN_CLAMP_INGR 0x8562
-#define GL_ALPHA_MIN_CLAMP_INGR 0x8563
-#define GL_RED_MAX_CLAMP_INGR 0x8564
-#define GL_GREEN_MAX_CLAMP_INGR 0x8565
-#define GL_BLUE_MAX_CLAMP_INGR 0x8566
-#define GL_ALPHA_MAX_CLAMP_INGR 0x8567
-#endif
-
-#ifndef GL_INGR_interlace_read
-#define GL_INTERLACE_READ_INGR 0x8568
-#endif
-
-#ifndef GL_EXT_stencil_wrap
-#define GL_INCR_WRAP_EXT 0x8507
-#define GL_DECR_WRAP_EXT 0x8508
-#endif
-
-#ifndef GL_EXT_422_pixels
-#define GL_422_EXT 0x80CC
-#define GL_422_REV_EXT 0x80CD
-#define GL_422_AVERAGE_EXT 0x80CE
-#define GL_422_REV_AVERAGE_EXT 0x80CF
-#endif
-
-#ifndef GL_NV_texgen_reflection
-#define GL_NORMAL_MAP_NV 0x8511
-#define GL_REFLECTION_MAP_NV 0x8512
-#endif
-
-#ifndef GL_EXT_texture_cube_map
-#define GL_NORMAL_MAP_EXT 0x8511
-#define GL_REFLECTION_MAP_EXT 0x8512
-#define GL_TEXTURE_CUBE_MAP_EXT 0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
-#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
-#endif
-
-#ifndef GL_SUN_convolution_border_modes
-#define GL_WRAP_BORDER_SUN 0x81D4
-#endif
-
-#ifndef GL_EXT_texture_env_add
-#endif
-
-#ifndef GL_EXT_texture_lod_bias
-#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
-#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
-#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
-#endif
-
-#ifndef GL_EXT_texture_filter_anisotropic
-#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
-#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
-#endif
-
-#ifndef GL_EXT_vertex_weighting
-#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH
-#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
-#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX
-#define GL_MODELVIEW1_MATRIX_EXT 0x8506
-#define GL_VERTEX_WEIGHTING_EXT 0x8509
-#define GL_MODELVIEW0_EXT GL_MODELVIEW
-#define GL_MODELVIEW1_EXT 0x850A
-#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
-#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
-#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
-#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
-#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
-#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
-#endif
-
-#ifndef GL_NV_light_max_exponent
-#define GL_MAX_SHININESS_NV 0x8504
-#define GL_MAX_SPOT_EXPONENT_NV 0x8505
-#endif
-
-#ifndef GL_NV_vertex_array_range
-#define GL_VERTEX_ARRAY_RANGE_NV 0x851D
-#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
-#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
-#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
-#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
-#endif
-
-#ifndef GL_NV_register_combiners
-#define GL_REGISTER_COMBINERS_NV 0x8522
-#define GL_VARIABLE_A_NV 0x8523
-#define GL_VARIABLE_B_NV 0x8524
-#define GL_VARIABLE_C_NV 0x8525
-#define GL_VARIABLE_D_NV 0x8526
-#define GL_VARIABLE_E_NV 0x8527
-#define GL_VARIABLE_F_NV 0x8528
-#define GL_VARIABLE_G_NV 0x8529
-#define GL_CONSTANT_COLOR0_NV 0x852A
-#define GL_CONSTANT_COLOR1_NV 0x852B
-#define GL_PRIMARY_COLOR_NV 0x852C
-#define GL_SECONDARY_COLOR_NV 0x852D
-#define GL_SPARE0_NV 0x852E
-#define GL_SPARE1_NV 0x852F
-#define GL_DISCARD_NV 0x8530
-#define GL_E_TIMES_F_NV 0x8531
-#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
-#define GL_UNSIGNED_IDENTITY_NV 0x8536
-#define GL_UNSIGNED_INVERT_NV 0x8537
-#define GL_EXPAND_NORMAL_NV 0x8538
-#define GL_EXPAND_NEGATE_NV 0x8539
-#define GL_HALF_BIAS_NORMAL_NV 0x853A
-#define GL_HALF_BIAS_NEGATE_NV 0x853B
-#define GL_SIGNED_IDENTITY_NV 0x853C
-#define GL_SIGNED_NEGATE_NV 0x853D
-#define GL_SCALE_BY_TWO_NV 0x853E
-#define GL_SCALE_BY_FOUR_NV 0x853F
-#define GL_SCALE_BY_ONE_HALF_NV 0x8540
-#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
-#define GL_COMBINER_INPUT_NV 0x8542
-#define GL_COMBINER_MAPPING_NV 0x8543
-#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544
-#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
-#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
-#define GL_COMBINER_MUX_SUM_NV 0x8547
-#define GL_COMBINER_SCALE_NV 0x8548
-#define GL_COMBINER_BIAS_NV 0x8549
-#define GL_COMBINER_AB_OUTPUT_NV 0x854A
-#define GL_COMBINER_CD_OUTPUT_NV 0x854B
-#define GL_COMBINER_SUM_OUTPUT_NV 0x854C
-#define GL_MAX_GENERAL_COMBINERS_NV 0x854D
-#define GL_NUM_GENERAL_COMBINERS_NV 0x854E
-#define GL_COLOR_SUM_CLAMP_NV 0x854F
-#define GL_COMBINER0_NV 0x8550
-#define GL_COMBINER1_NV 0x8551
-#define GL_COMBINER2_NV 0x8552
-#define GL_COMBINER3_NV 0x8553
-#define GL_COMBINER4_NV 0x8554
-#define GL_COMBINER5_NV 0x8555
-#define GL_COMBINER6_NV 0x8556
-#define GL_COMBINER7_NV 0x8557
-/* reuse GL_TEXTURE0_ARB */
-/* reuse GL_TEXTURE1_ARB */
-/* reuse GL_ZERO */
-/* reuse GL_NONE */
-/* reuse GL_FOG */
-#endif
-
-#ifndef GL_NV_fog_distance
-#define GL_FOG_DISTANCE_MODE_NV 0x855A
-#define GL_EYE_RADIAL_NV 0x855B
-#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
-/* reuse GL_EYE_PLANE */
-#endif
-
-#ifndef GL_NV_texgen_emboss
-#define GL_EMBOSS_LIGHT_NV 0x855D
-#define GL_EMBOSS_CONSTANT_NV 0x855E
-#define GL_EMBOSS_MAP_NV 0x855F
-#endif
-
-#ifndef GL_NV_blend_square
-#endif
-
-#ifndef GL_NV_texture_env_combine4
-#define GL_COMBINE4_NV 0x8503
-#define GL_SOURCE3_RGB_NV 0x8583
-#define GL_SOURCE3_ALPHA_NV 0x858B
-#define GL_OPERAND3_RGB_NV 0x8593
-#define GL_OPERAND3_ALPHA_NV 0x859B
-#endif
-
-#ifndef GL_MESA_resize_buffers
-#endif
-
-#ifndef GL_MESA_window_pos
-#endif
-
-#ifndef GL_EXT_texture_compression_s3tc
-#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
-#endif
-
-#ifndef GL_IBM_cull_vertex
-#define GL_CULL_VERTEX_IBM 103050
-#endif
-
-#ifndef GL_IBM_multimode_draw_arrays
-#endif
-
-#ifndef GL_IBM_vertex_array_lists
-#define GL_VERTEX_ARRAY_LIST_IBM 103070
-#define GL_NORMAL_ARRAY_LIST_IBM 103071
-#define GL_COLOR_ARRAY_LIST_IBM 103072
-#define GL_INDEX_ARRAY_LIST_IBM 103073
-#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074
-#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075
-#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076
-#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
-#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080
-#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081
-#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082
-#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083
-#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
-#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
-#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
-#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
-#endif
-
-#ifndef GL_SGIX_subsample
-#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0
-#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1
-#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2
-#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3
-#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4
-#endif
-
-#ifndef GL_SGIX_ycrcb_subsample
-#endif
-
-#ifndef GL_SGIX_ycrcba
-#define GL_YCRCB_SGIX 0x8318
-#define GL_YCRCBA_SGIX 0x8319
-#endif
-
-#ifndef GL_SGI_depth_pass_instrument
-#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310
-#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311
-#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312
-#endif
-
-#ifndef GL_3DFX_texture_compression_FXT1
-#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0
-#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1
-#endif
-
-#ifndef GL_3DFX_multisample
-#define GL_MULTISAMPLE_3DFX 0x86B2
-#define GL_SAMPLE_BUFFERS_3DFX 0x86B3
-#define GL_SAMPLES_3DFX 0x86B4
-#define GL_MULTISAMPLE_BIT_3DFX 0x20000000
-#endif
-
-#ifndef GL_3DFX_tbuffer
-#endif
-
-#ifndef GL_EXT_multisample
-#define GL_MULTISAMPLE_EXT 0x809D
-#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
-#define GL_SAMPLE_MASK_EXT 0x80A0
-#define GL_1PASS_EXT 0x80A1
-#define GL_2PASS_0_EXT 0x80A2
-#define GL_2PASS_1_EXT 0x80A3
-#define GL_4PASS_0_EXT 0x80A4
-#define GL_4PASS_1_EXT 0x80A5
-#define GL_4PASS_2_EXT 0x80A6
-#define GL_4PASS_3_EXT 0x80A7
-#define GL_SAMPLE_BUFFERS_EXT 0x80A8
-#define GL_SAMPLES_EXT 0x80A9
-#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA
-#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB
-#define GL_SAMPLE_PATTERN_EXT 0x80AC
-#define GL_MULTISAMPLE_BIT_EXT 0x20000000
-#endif
-
-#ifndef GL_SGIX_vertex_preclip
-#define GL_VERTEX_PRECLIP_SGIX 0x83EE
-#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
-#endif
-
-#ifndef GL_SGIX_convolution_accuracy
-#define GL_CONVOLUTION_HINT_SGIX 0x8316
-#endif
-
-#ifndef GL_SGIX_resample
-#define GL_PACK_RESAMPLE_SGIX 0x842C
-#define GL_UNPACK_RESAMPLE_SGIX 0x842D
-#define GL_RESAMPLE_REPLICATE_SGIX 0x842E
-#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F
-#define GL_RESAMPLE_DECIMATE_SGIX 0x8430
-#endif
-
-#ifndef GL_SGIS_point_line_texgen
-#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0
-#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
-#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2
-#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
-#define GL_EYE_POINT_SGIS 0x81F4
-#define GL_OBJECT_POINT_SGIS 0x81F5
-#define GL_EYE_LINE_SGIS 0x81F6
-#define GL_OBJECT_LINE_SGIS 0x81F7
-#endif
-
-#ifndef GL_SGIS_texture_color_mask
-#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF
-#endif
-
-#ifndef GL_EXT_texture_env_dot3
-#define GL_DOT3_RGB_EXT 0x8740
-#define GL_DOT3_RGBA_EXT 0x8741
-#endif
-
-#ifndef GL_ATI_texture_mirror_once
-#define GL_MIRROR_CLAMP_ATI 0x8742
-#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
-#endif
-
-#ifndef GL_NV_fence
-#define GL_ALL_COMPLETED_NV 0x84F2
-#define GL_FENCE_STATUS_NV 0x84F3
-#define GL_FENCE_CONDITION_NV 0x84F4
-#endif
-
-#ifndef GL_IBM_texture_mirrored_repeat
-#define GL_MIRRORED_REPEAT_IBM 0x8370
-#endif
-
-#ifndef GL_NV_evaluators
-#define GL_EVAL_2D_NV 0x86C0
-#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1
-#define GL_MAP_TESSELLATION_NV 0x86C2
-#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
-#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
-#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
-#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
-#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
-#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
-#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
-#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
-#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
-#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
-#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
-#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
-#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
-#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
-#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
-#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
-#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
-#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
-#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
-#define GL_MAX_MAP_TESSELLATION_NV 0x86D6
-#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
-#endif
-
-#ifndef GL_NV_packed_depth_stencil
-#define GL_DEPTH_STENCIL_NV 0x84F9
-#define GL_UNSIGNED_INT_24_8_NV 0x84FA
-#endif
-
-#ifndef GL_NV_register_combiners2
-#define GL_PER_STAGE_CONSTANTS_NV 0x8535
-#endif
-
-#ifndef GL_NV_texture_compression_vtc
-#endif
-
-#ifndef GL_NV_texture_rectangle
-#define GL_TEXTURE_RECTANGLE_NV 0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
-#endif
-
-#ifndef GL_NV_texture_shader
-#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
-#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
-#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
-#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
-#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
-#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
-#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
-#define GL_SHADER_CONSISTENT_NV 0x86DD
-#define GL_TEXTURE_SHADER_NV 0x86DE
-#define GL_SHADER_OPERATION_NV 0x86DF
-#define GL_CULL_MODES_NV 0x86E0
-#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
-#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
-#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
-#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV
-#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV
-#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV
-#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
-#define GL_CONST_EYE_NV 0x86E5
-#define GL_PASS_THROUGH_NV 0x86E6
-#define GL_CULL_FRAGMENT_NV 0x86E7
-#define GL_OFFSET_TEXTURE_2D_NV 0x86E8
-#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
-#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
-#define GL_DOT_PRODUCT_NV 0x86EC
-#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
-#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
-#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
-#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
-#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
-#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
-#define GL_HILO_NV 0x86F4
-#define GL_DSDT_NV 0x86F5
-#define GL_DSDT_MAG_NV 0x86F6
-#define GL_DSDT_MAG_VIB_NV 0x86F7
-#define GL_HILO16_NV 0x86F8
-#define GL_SIGNED_HILO_NV 0x86F9
-#define GL_SIGNED_HILO16_NV 0x86FA
-#define GL_SIGNED_RGBA_NV 0x86FB
-#define GL_SIGNED_RGBA8_NV 0x86FC
-#define GL_SIGNED_RGB_NV 0x86FE
-#define GL_SIGNED_RGB8_NV 0x86FF
-#define GL_SIGNED_LUMINANCE_NV 0x8701
-#define GL_SIGNED_LUMINANCE8_NV 0x8702
-#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
-#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
-#define GL_SIGNED_ALPHA_NV 0x8705
-#define GL_SIGNED_ALPHA8_NV 0x8706
-#define GL_SIGNED_INTENSITY_NV 0x8707
-#define GL_SIGNED_INTENSITY8_NV 0x8708
-#define GL_DSDT8_NV 0x8709
-#define GL_DSDT8_MAG8_NV 0x870A
-#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
-#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
-#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
-#define GL_HI_SCALE_NV 0x870E
-#define GL_LO_SCALE_NV 0x870F
-#define GL_DS_SCALE_NV 0x8710
-#define GL_DT_SCALE_NV 0x8711
-#define GL_MAGNITUDE_SCALE_NV 0x8712
-#define GL_VIBRANCE_SCALE_NV 0x8713
-#define GL_HI_BIAS_NV 0x8714
-#define GL_LO_BIAS_NV 0x8715
-#define GL_DS_BIAS_NV 0x8716
-#define GL_DT_BIAS_NV 0x8717
-#define GL_MAGNITUDE_BIAS_NV 0x8718
-#define GL_VIBRANCE_BIAS_NV 0x8719
-#define GL_TEXTURE_BORDER_VALUES_NV 0x871A
-#define GL_TEXTURE_HI_SIZE_NV 0x871B
-#define GL_TEXTURE_LO_SIZE_NV 0x871C
-#define GL_TEXTURE_DS_SIZE_NV 0x871D
-#define GL_TEXTURE_DT_SIZE_NV 0x871E
-#define GL_TEXTURE_MAG_SIZE_NV 0x871F
-#endif
-
-#ifndef GL_NV_texture_shader2
-#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
-#endif
-
-#ifndef GL_NV_vertex_array_range2
-#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
-#endif
-
-#ifndef GL_NV_vertex_program
-#define GL_VERTEX_PROGRAM_NV 0x8620
-#define GL_VERTEX_STATE_PROGRAM_NV 0x8621
-#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623
-#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
-#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625
-#define GL_CURRENT_ATTRIB_NV 0x8626
-#define GL_PROGRAM_LENGTH_NV 0x8627
-#define GL_PROGRAM_STRING_NV 0x8628
-#define GL_MODELVIEW_PROJECTION_NV 0x8629
-#define GL_IDENTITY_NV 0x862A
-#define GL_INVERSE_NV 0x862B
-#define GL_TRANSPOSE_NV 0x862C
-#define GL_INVERSE_TRANSPOSE_NV 0x862D
-#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
-#define GL_MAX_TRACK_MATRICES_NV 0x862F
-#define GL_MATRIX0_NV 0x8630
-#define GL_MATRIX1_NV 0x8631
-#define GL_MATRIX2_NV 0x8632
-#define GL_MATRIX3_NV 0x8633
-#define GL_MATRIX4_NV 0x8634
-#define GL_MATRIX5_NV 0x8635
-#define GL_MATRIX6_NV 0x8636
-#define GL_MATRIX7_NV 0x8637
-#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
-#define GL_CURRENT_MATRIX_NV 0x8641
-#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
-#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
-#define GL_PROGRAM_PARAMETER_NV 0x8644
-#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645
-#define GL_PROGRAM_TARGET_NV 0x8646
-#define GL_PROGRAM_RESIDENT_NV 0x8647
-#define GL_TRACK_MATRIX_NV 0x8648
-#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
-#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A
-#define GL_PROGRAM_ERROR_POSITION_NV 0x864B
-#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
-#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
-#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
-#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
-#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
-#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
-#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
-#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
-#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
-#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
-#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
-#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
-#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
-#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
-#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
-#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
-#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
-#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
-#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
-#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
-#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
-#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
-#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
-#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
-#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
-#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
-#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
-#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
-#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
-#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
-#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
-#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
-#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
-#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
-#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
-#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
-#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
-#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
-#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
-#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
-#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
-#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
-#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
-#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
-#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
-#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
-#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
-#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
-#endif
-
-#ifndef GL_SGIX_texture_coordinate_clamp
-#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369
-#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A
-#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B
-#endif
-
-#ifndef GL_SGIX_scalebias_hint
-#define GL_SCALEBIAS_HINT_SGIX 0x8322
-#endif
-
-#ifndef GL_OML_interlace
-#define GL_INTERLACE_OML 0x8980
-#define GL_INTERLACE_READ_OML 0x8981
-#endif
-
-#ifndef GL_OML_subsample
-#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982
-#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983
-#endif
-
-#ifndef GL_OML_resample
-#define GL_PACK_RESAMPLE_OML 0x8984
-#define GL_UNPACK_RESAMPLE_OML 0x8985
-#define GL_RESAMPLE_REPLICATE_OML 0x8986
-#define GL_RESAMPLE_ZERO_FILL_OML 0x8987
-#define GL_RESAMPLE_AVERAGE_OML 0x8988
-#define GL_RESAMPLE_DECIMATE_OML 0x8989
-#endif
-
-#ifndef GL_NV_copy_depth_to_color
-#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
-#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
-#endif
-
-#ifndef GL_ATI_envmap_bumpmap
-#define GL_BUMP_ROT_MATRIX_ATI 0x8775
-#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
-#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
-#define GL_BUMP_TEX_UNITS_ATI 0x8778
-#define GL_DUDV_ATI 0x8779
-#define GL_DU8DV8_ATI 0x877A
-#define GL_BUMP_ENVMAP_ATI 0x877B
-#define GL_BUMP_TARGET_ATI 0x877C
-#endif
-
-#ifndef GL_ATI_fragment_shader
-#define GL_FRAGMENT_SHADER_ATI 0x8920
-#define GL_REG_0_ATI 0x8921
-#define GL_REG_1_ATI 0x8922
-#define GL_REG_2_ATI 0x8923
-#define GL_REG_3_ATI 0x8924
-#define GL_REG_4_ATI 0x8925
-#define GL_REG_5_ATI 0x8926
-#define GL_REG_6_ATI 0x8927
-#define GL_REG_7_ATI 0x8928
-#define GL_REG_8_ATI 0x8929
-#define GL_REG_9_ATI 0x892A
-#define GL_REG_10_ATI 0x892B
-#define GL_REG_11_ATI 0x892C
-#define GL_REG_12_ATI 0x892D
-#define GL_REG_13_ATI 0x892E
-#define GL_REG_14_ATI 0x892F
-#define GL_REG_15_ATI 0x8930
-#define GL_REG_16_ATI 0x8931
-#define GL_REG_17_ATI 0x8932
-#define GL_REG_18_ATI 0x8933
-#define GL_REG_19_ATI 0x8934
-#define GL_REG_20_ATI 0x8935
-#define GL_REG_21_ATI 0x8936
-#define GL_REG_22_ATI 0x8937
-#define GL_REG_23_ATI 0x8938
-#define GL_REG_24_ATI 0x8939
-#define GL_REG_25_ATI 0x893A
-#define GL_REG_26_ATI 0x893B
-#define GL_REG_27_ATI 0x893C
-#define GL_REG_28_ATI 0x893D
-#define GL_REG_29_ATI 0x893E
-#define GL_REG_30_ATI 0x893F
-#define GL_REG_31_ATI 0x8940
-#define GL_CON_0_ATI 0x8941
-#define GL_CON_1_ATI 0x8942
-#define GL_CON_2_ATI 0x8943
-#define GL_CON_3_ATI 0x8944
-#define GL_CON_4_ATI 0x8945
-#define GL_CON_5_ATI 0x8946
-#define GL_CON_6_ATI 0x8947
-#define GL_CON_7_ATI 0x8948
-#define GL_CON_8_ATI 0x8949
-#define GL_CON_9_ATI 0x894A
-#define GL_CON_10_ATI 0x894B
-#define GL_CON_11_ATI 0x894C
-#define GL_CON_12_ATI 0x894D
-#define GL_CON_13_ATI 0x894E
-#define GL_CON_14_ATI 0x894F
-#define GL_CON_15_ATI 0x8950
-#define GL_CON_16_ATI 0x8951
-#define GL_CON_17_ATI 0x8952
-#define GL_CON_18_ATI 0x8953
-#define GL_CON_19_ATI 0x8954
-#define GL_CON_20_ATI 0x8955
-#define GL_CON_21_ATI 0x8956
-#define GL_CON_22_ATI 0x8957
-#define GL_CON_23_ATI 0x8958
-#define GL_CON_24_ATI 0x8959
-#define GL_CON_25_ATI 0x895A
-#define GL_CON_26_ATI 0x895B
-#define GL_CON_27_ATI 0x895C
-#define GL_CON_28_ATI 0x895D
-#define GL_CON_29_ATI 0x895E
-#define GL_CON_30_ATI 0x895F
-#define GL_CON_31_ATI 0x8960
-#define GL_MOV_ATI 0x8961
-#define GL_ADD_ATI 0x8963
-#define GL_MUL_ATI 0x8964
-#define GL_SUB_ATI 0x8965
-#define GL_DOT3_ATI 0x8966
-#define GL_DOT4_ATI 0x8967
-#define GL_MAD_ATI 0x8968
-#define GL_LERP_ATI 0x8969
-#define GL_CND_ATI 0x896A
-#define GL_CND0_ATI 0x896B
-#define GL_DOT2_ADD_ATI 0x896C
-#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
-#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
-#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
-#define GL_NUM_PASSES_ATI 0x8970
-#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
-#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
-#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
-#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
-#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
-#define GL_SWIZZLE_STR_ATI 0x8976
-#define GL_SWIZZLE_STQ_ATI 0x8977
-#define GL_SWIZZLE_STR_DR_ATI 0x8978
-#define GL_SWIZZLE_STQ_DQ_ATI 0x8979
-#define GL_SWIZZLE_STRQ_ATI 0x897A
-#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
-#define GL_RED_BIT_ATI 0x00000001
-#define GL_GREEN_BIT_ATI 0x00000002
-#define GL_BLUE_BIT_ATI 0x00000004
-#define GL_2X_BIT_ATI 0x00000001
-#define GL_4X_BIT_ATI 0x00000002
-#define GL_8X_BIT_ATI 0x00000004
-#define GL_HALF_BIT_ATI 0x00000008
-#define GL_QUARTER_BIT_ATI 0x00000010
-#define GL_EIGHTH_BIT_ATI 0x00000020
-#define GL_SATURATE_BIT_ATI 0x00000040
-#define GL_COMP_BIT_ATI 0x00000002
-#define GL_NEGATE_BIT_ATI 0x00000004
-#define GL_BIAS_BIT_ATI 0x00000008
-#endif
-
-#ifndef GL_ATI_pn_triangles
-#define GL_PN_TRIANGLES_ATI 0x87F0
-#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
-#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
-#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
-#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
-#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
-#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
-#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
-#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
-#endif
-
-#ifndef GL_ATI_vertex_array_object
-#define GL_STATIC_ATI 0x8760
-#define GL_DYNAMIC_ATI 0x8761
-#define GL_PRESERVE_ATI 0x8762
-#define GL_DISCARD_ATI 0x8763
-#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
-#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
-#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
-#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
-#endif
-
-#ifndef GL_EXT_vertex_shader
-#define GL_VERTEX_SHADER_EXT 0x8780
-#define GL_VERTEX_SHADER_BINDING_EXT 0x8781
-#define GL_OP_INDEX_EXT 0x8782
-#define GL_OP_NEGATE_EXT 0x8783
-#define GL_OP_DOT3_EXT 0x8784
-#define GL_OP_DOT4_EXT 0x8785
-#define GL_OP_MUL_EXT 0x8786
-#define GL_OP_ADD_EXT 0x8787
-#define GL_OP_MADD_EXT 0x8788
-#define GL_OP_FRAC_EXT 0x8789
-#define GL_OP_MAX_EXT 0x878A
-#define GL_OP_MIN_EXT 0x878B
-#define GL_OP_SET_GE_EXT 0x878C
-#define GL_OP_SET_LT_EXT 0x878D
-#define GL_OP_CLAMP_EXT 0x878E
-#define GL_OP_FLOOR_EXT 0x878F
-#define GL_OP_ROUND_EXT 0x8790
-#define GL_OP_EXP_BASE_2_EXT 0x8791
-#define GL_OP_LOG_BASE_2_EXT 0x8792
-#define GL_OP_POWER_EXT 0x8793
-#define GL_OP_RECIP_EXT 0x8794
-#define GL_OP_RECIP_SQRT_EXT 0x8795
-#define GL_OP_SUB_EXT 0x8796
-#define GL_OP_CROSS_PRODUCT_EXT 0x8797
-#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
-#define GL_OP_MOV_EXT 0x8799
-#define GL_OUTPUT_VERTEX_EXT 0x879A
-#define GL_OUTPUT_COLOR0_EXT 0x879B
-#define GL_OUTPUT_COLOR1_EXT 0x879C
-#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
-#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
-#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
-#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
-#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
-#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
-#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
-#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
-#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
-#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
-#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
-#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
-#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
-#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
-#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
-#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
-#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
-#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
-#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
-#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
-#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
-#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
-#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
-#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
-#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
-#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
-#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
-#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
-#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
-#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
-#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
-#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
-#define GL_OUTPUT_FOG_EXT 0x87BD
-#define GL_SCALAR_EXT 0x87BE
-#define GL_VECTOR_EXT 0x87BF
-#define GL_MATRIX_EXT 0x87C0
-#define GL_VARIANT_EXT 0x87C1
-#define GL_INVARIANT_EXT 0x87C2
-#define GL_LOCAL_CONSTANT_EXT 0x87C3
-#define GL_LOCAL_EXT 0x87C4
-#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
-#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
-#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
-#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
-#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
-#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
-#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
-#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
-#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
-#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
-#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
-#define GL_X_EXT 0x87D5
-#define GL_Y_EXT 0x87D6
-#define GL_Z_EXT 0x87D7
-#define GL_W_EXT 0x87D8
-#define GL_NEGATIVE_X_EXT 0x87D9
-#define GL_NEGATIVE_Y_EXT 0x87DA
-#define GL_NEGATIVE_Z_EXT 0x87DB
-#define GL_NEGATIVE_W_EXT 0x87DC
-#define GL_ZERO_EXT 0x87DD
-#define GL_ONE_EXT 0x87DE
-#define GL_NEGATIVE_ONE_EXT 0x87DF
-#define GL_NORMALIZED_RANGE_EXT 0x87E0
-#define GL_FULL_RANGE_EXT 0x87E1
-#define GL_CURRENT_VERTEX_EXT 0x87E2
-#define GL_MVP_MATRIX_EXT 0x87E3
-#define GL_VARIANT_VALUE_EXT 0x87E4
-#define GL_VARIANT_DATATYPE_EXT 0x87E5
-#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
-#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
-#define GL_VARIANT_ARRAY_EXT 0x87E8
-#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
-#define GL_INVARIANT_VALUE_EXT 0x87EA
-#define GL_INVARIANT_DATATYPE_EXT 0x87EB
-#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
-#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
-#endif
-
-#ifndef GL_ATI_vertex_streams
-#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
-#define GL_VERTEX_STREAM0_ATI 0x876C
-#define GL_VERTEX_STREAM1_ATI 0x876D
-#define GL_VERTEX_STREAM2_ATI 0x876E
-#define GL_VERTEX_STREAM3_ATI 0x876F
-#define GL_VERTEX_STREAM4_ATI 0x8770
-#define GL_VERTEX_STREAM5_ATI 0x8771
-#define GL_VERTEX_STREAM6_ATI 0x8772
-#define GL_VERTEX_STREAM7_ATI 0x8773
-#define GL_VERTEX_SOURCE_ATI 0x8774
-#endif
-
-#ifndef GL_ATI_element_array
-#define GL_ELEMENT_ARRAY_ATI 0x8768
-#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
-#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
-#endif
-
-#ifndef GL_SUN_mesh_array
-#define GL_QUAD_MESH_SUN 0x8614
-#define GL_TRIANGLE_MESH_SUN 0x8615
-#endif
-
-#ifndef GL_SUN_slice_accum
-#define GL_SLICE_ACCUM_SUN 0x85CC
-#endif
-
-#ifndef GL_NV_multisample_filter_hint
-#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
-#endif
-
-#ifndef GL_NV_depth_clamp
-#define GL_DEPTH_CLAMP_NV 0x864F
-#endif
-
-#ifndef GL_NV_occlusion_query
-#define GL_PIXEL_COUNTER_BITS_NV 0x8864
-#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
-#define GL_PIXEL_COUNT_NV 0x8866
-#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
-#endif
-
-#ifndef GL_NV_point_sprite
-#define GL_POINT_SPRITE_NV 0x8861
-#define GL_COORD_REPLACE_NV 0x8862
-#define GL_POINT_SPRITE_R_MODE_NV 0x8863
-#endif
-
-#ifndef GL_NV_texture_shader3
-#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
-#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
-#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
-#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
-#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
-#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
-#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
-#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
-#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
-#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
-#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
-#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
-#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
-#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
-#define GL_HILO8_NV 0x885E
-#define GL_SIGNED_HILO8_NV 0x885F
-#define GL_FORCE_BLUE_TO_ONE_NV 0x8860
-#endif
-
-#ifndef GL_NV_vertex_program1_1
-#endif
-
-#ifndef GL_EXT_shadow_funcs
-#endif
-
-#ifndef GL_EXT_stencil_two_side
-#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
-#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
-#endif
-
-#ifndef GL_ATI_text_fragment_shader
-#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
-#endif
-
-#ifndef GL_APPLE_client_storage
-#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
-#endif
-
-#ifndef GL_APPLE_element_array
-#define GL_ELEMENT_ARRAY_APPLE 0x8768
-#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769
-#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A
-#endif
-
-#ifndef GL_APPLE_fence
-#define GL_DRAW_PIXELS_APPLE 0x8A0A
-#define GL_FENCE_APPLE 0x8A0B
-#endif
-
-#ifndef GL_APPLE_vertex_array_object
-#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
-#endif
-
-#ifndef GL_APPLE_vertex_array_range
-#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
-#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
-#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
-#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
-#define GL_STORAGE_CACHED_APPLE 0x85BE
-#define GL_STORAGE_SHARED_APPLE 0x85BF
-#endif
-
-#ifndef GL_APPLE_ycbcr_422
-#define GL_YCBCR_422_APPLE 0x85B9
-#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
-#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
-#endif
-
-#ifndef GL_S3_s3tc
-#define GL_RGB_S3TC 0x83A0
-#define GL_RGB4_S3TC 0x83A1
-#define GL_RGBA_S3TC 0x83A2
-#define GL_RGBA4_S3TC 0x83A3
-#endif
-
-#ifndef GL_ATI_draw_buffers
-#define GL_MAX_DRAW_BUFFERS_ATI 0x8824
-#define GL_DRAW_BUFFER0_ATI 0x8825
-#define GL_DRAW_BUFFER1_ATI 0x8826
-#define GL_DRAW_BUFFER2_ATI 0x8827
-#define GL_DRAW_BUFFER3_ATI 0x8828
-#define GL_DRAW_BUFFER4_ATI 0x8829
-#define GL_DRAW_BUFFER5_ATI 0x882A
-#define GL_DRAW_BUFFER6_ATI 0x882B
-#define GL_DRAW_BUFFER7_ATI 0x882C
-#define GL_DRAW_BUFFER8_ATI 0x882D
-#define GL_DRAW_BUFFER9_ATI 0x882E
-#define GL_DRAW_BUFFER10_ATI 0x882F
-#define GL_DRAW_BUFFER11_ATI 0x8830
-#define GL_DRAW_BUFFER12_ATI 0x8831
-#define GL_DRAW_BUFFER13_ATI 0x8832
-#define GL_DRAW_BUFFER14_ATI 0x8833
-#define GL_DRAW_BUFFER15_ATI 0x8834
-#endif
-
-#ifndef GL_ATI_pixel_format_float
-#define GL_TYPE_RGBA_FLOAT_ATI 0x8820
-#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
-#endif
-
-#ifndef GL_ATI_texture_env_combine3
-#define GL_MODULATE_ADD_ATI 0x8744
-#define GL_MODULATE_SIGNED_ADD_ATI 0x8745
-#define GL_MODULATE_SUBTRACT_ATI 0x8746
-#endif
-
-#ifndef GL_ATI_texture_float
-#define GL_RGBA_FLOAT32_ATI 0x8814
-#define GL_RGB_FLOAT32_ATI 0x8815
-#define GL_ALPHA_FLOAT32_ATI 0x8816
-#define GL_INTENSITY_FLOAT32_ATI 0x8817
-#define GL_LUMINANCE_FLOAT32_ATI 0x8818
-#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
-#define GL_RGBA_FLOAT16_ATI 0x881A
-#define GL_RGB_FLOAT16_ATI 0x881B
-#define GL_ALPHA_FLOAT16_ATI 0x881C
-#define GL_INTENSITY_FLOAT16_ATI 0x881D
-#define GL_LUMINANCE_FLOAT16_ATI 0x881E
-#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
-#endif
-
-#ifndef GL_NV_float_buffer
-#define GL_FLOAT_R_NV 0x8880
-#define GL_FLOAT_RG_NV 0x8881
-#define GL_FLOAT_RGB_NV 0x8882
-#define GL_FLOAT_RGBA_NV 0x8883
-#define GL_FLOAT_R16_NV 0x8884
-#define GL_FLOAT_R32_NV 0x8885
-#define GL_FLOAT_RG16_NV 0x8886
-#define GL_FLOAT_RG32_NV 0x8887
-#define GL_FLOAT_RGB16_NV 0x8888
-#define GL_FLOAT_RGB32_NV 0x8889
-#define GL_FLOAT_RGBA16_NV 0x888A
-#define GL_FLOAT_RGBA32_NV 0x888B
-#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
-#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
-#define GL_FLOAT_RGBA_MODE_NV 0x888E
-#endif
-
-#ifndef GL_NV_fragment_program
-#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
-#define GL_FRAGMENT_PROGRAM_NV 0x8870
-#define GL_MAX_TEXTURE_COORDS_NV 0x8871
-#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
-#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
-#define GL_PROGRAM_ERROR_STRING_NV 0x8874
-#endif
-
-#ifndef GL_NV_half_float
-#define GL_HALF_FLOAT_NV 0x140B
-#endif
-
-#ifndef GL_NV_pixel_data_range
-#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
-#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879
-#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
-#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
-#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
-#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
-#endif
-
-#ifndef GL_NV_primitive_restart
-#define GL_PRIMITIVE_RESTART_NV 0x8558
-#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
-#endif
-
-#ifndef GL_NV_texture_expand_normal
-#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
-#endif
-
-#ifndef GL_NV_vertex_program2
-#endif
-
-#ifndef GL_ATI_map_object_buffer
-#endif
-
-#ifndef GL_ATI_separate_stencil
-#define GL_STENCIL_BACK_FUNC_ATI 0x8800
-#define GL_STENCIL_BACK_FAIL_ATI 0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
-#endif
-
-#ifndef GL_ATI_vertex_attrib_array_object
-#endif
-
-#ifndef GL_OES_read_format
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
-#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
-#endif
-
-#ifndef GL_EXT_depth_bounds_test
-#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890
-#define GL_DEPTH_BOUNDS_EXT 0x8891
-#endif
-
-#ifndef GL_EXT_texture_mirror_clamp
-#define GL_MIRROR_CLAMP_EXT 0x8742
-#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
-#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
-#endif
-
-#ifndef GL_EXT_blend_equation_separate
-#define GL_BLEND_EQUATION_RGB_EXT GL_BLEND_EQUATION
-#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D
-#endif
-
-#ifndef GL_MESA_pack_invert
-#define GL_PACK_INVERT_MESA 0x8758
-#endif
-
-#ifndef GL_MESA_ycbcr_texture
-#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA
-#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB
-#define GL_YCBCR_MESA 0x8757
-#endif
-
-#ifndef GL_EXT_pixel_buffer_object
-#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB
-#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
-#endif
-
-#ifndef GL_NV_fragment_program_option
-#endif
-
-#ifndef GL_NV_fragment_program2
-#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
-#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
-#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6
-#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7
-#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8
-#endif
-
-#ifndef GL_NV_vertex_program2_option
-/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
-/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */
-#endif
-
-#ifndef GL_NV_vertex_program3
-/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
-#endif
-
-#ifndef GL_EXT_framebuffer_object
-#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
-#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
-#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
-#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
-#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
-#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
-#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
-#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
-#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
-#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
-#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
-#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
-#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
-#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
-#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
-#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
-#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
-#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
-#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
-#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
-#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
-#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
-#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
-#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
-#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
-#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
-#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
-#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
-#define GL_FRAMEBUFFER_EXT 0x8D40
-#define GL_RENDERBUFFER_EXT 0x8D41
-#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
-#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
-#define GL_STENCIL_INDEX1_EXT 0x8D46
-#define GL_STENCIL_INDEX4_EXT 0x8D47
-#define GL_STENCIL_INDEX8_EXT 0x8D48
-#define GL_STENCIL_INDEX16_EXT 0x8D49
-#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
-#endif
-
-#ifndef GL_GREMEDY_string_marker
-#endif
-
-
-/*************************************************************/
-
-#include <stddef.h>
-#ifndef GL_VERSION_2_0
-/* GL type for program/shader text */
-typedef char GLchar; /* native character */
-#endif
-
-#ifndef GL_VERSION_1_5
-/* GL types for handling large vertex buffer objects */
-typedef ptrdiff_t GLintptr;
-typedef ptrdiff_t GLsizeiptr;
-#endif
-
-#ifndef GL_ARB_vertex_buffer_object
-/* GL types for handling large vertex buffer objects */
-typedef ptrdiff_t GLintptrARB;
-typedef ptrdiff_t GLsizeiptrARB;
-#endif
-
-#ifndef GL_ARB_shader_objects
-/* GL types for handling shader object handles and program/shader text */
-typedef char GLcharARB; /* native character */
-typedef unsigned int GLhandleARB; /* shader object handle */
-#endif
-
-/* GL types for "half" precision (s10e5) float data in host memory */
-#ifndef GL_ARB_half_float_pixel
-typedef unsigned short GLhalfARB;
-#endif
-
-#ifndef GL_NV_half_float
-typedef unsigned short GLhalfNV;
-#endif
-
-#ifndef GL_VERSION_1_2
-#define GL_VERSION_1_2 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf);
-GLAPI void APIENTRY glBlendEquation (GLenum);
-GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
-GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *);
-GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *);
-GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei);
-GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei);
-GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat);
-GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *);
-GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint);
-GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *);
-GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei);
-GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei);
-GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *);
-GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *);
-GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean);
-GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean);
-GLAPI void APIENTRY glResetHistogram (GLenum);
-GLAPI void APIENTRY glResetMinmax (GLenum);
-GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
-typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
-typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
-typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
-typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
-typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
-typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
-typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
-typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
-typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
-typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
-typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
-typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
-typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
-typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
-typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
-typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
-typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
-typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target);
-typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target);
-typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-#endif
-
-#ifndef GL_VERSION_1_3
-#define GL_VERSION_1_3 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glActiveTexture (GLenum);
-GLAPI void APIENTRY glClientActiveTexture (GLenum);
-GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble);
-GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *);
-GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat);
-GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *);
-GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint);
-GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *);
-GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort);
-GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *);
-GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble);
-GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *);
-GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat);
-GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *);
-GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint);
-GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *);
-GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort);
-GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *);
-GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *);
-GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *);
-GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint);
-GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *);
-GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *);
-GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *);
-GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *);
-GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint);
-GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *);
-GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *);
-GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *);
-GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *);
-GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *);
-GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *);
-GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean);
-GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
-typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
-typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
-typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
-typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m);
-typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img);
-#endif
-
-#ifndef GL_VERSION_1_4
-#define GL_VERSION_1_4 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum);
-GLAPI void APIENTRY glFogCoordf (GLfloat);
-GLAPI void APIENTRY glFogCoordfv (const GLfloat *);
-GLAPI void APIENTRY glFogCoordd (GLdouble);
-GLAPI void APIENTRY glFogCoorddv (const GLdouble *);
-GLAPI void APIENTRY glFogCoordPointer (GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei);
-GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
-GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat);
-GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *);
-GLAPI void APIENTRY glPointParameteri (GLenum, GLint);
-GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *);
-GLAPI void APIENTRY glSecondaryColor3b (GLbyte, GLbyte, GLbyte);
-GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *);
-GLAPI void APIENTRY glSecondaryColor3d (GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *);
-GLAPI void APIENTRY glSecondaryColor3f (GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *);
-GLAPI void APIENTRY glSecondaryColor3i (GLint, GLint, GLint);
-GLAPI void APIENTRY glSecondaryColor3iv (const GLint *);
-GLAPI void APIENTRY glSecondaryColor3s (GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *);
-GLAPI void APIENTRY glSecondaryColor3ub (GLubyte, GLubyte, GLubyte);
-GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *);
-GLAPI void APIENTRY glSecondaryColor3ui (GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *);
-GLAPI void APIENTRY glSecondaryColor3us (GLushort, GLushort, GLushort);
-GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *);
-GLAPI void APIENTRY glSecondaryColorPointer (GLint, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glWindowPos2d (GLdouble, GLdouble);
-GLAPI void APIENTRY glWindowPos2dv (const GLdouble *);
-GLAPI void APIENTRY glWindowPos2f (GLfloat, GLfloat);
-GLAPI void APIENTRY glWindowPos2fv (const GLfloat *);
-GLAPI void APIENTRY glWindowPos2i (GLint, GLint);
-GLAPI void APIENTRY glWindowPos2iv (const GLint *);
-GLAPI void APIENTRY glWindowPos2s (GLshort, GLshort);
-GLAPI void APIENTRY glWindowPos2sv (const GLshort *);
-GLAPI void APIENTRY glWindowPos3d (GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glWindowPos3dv (const GLdouble *);
-GLAPI void APIENTRY glWindowPos3f (GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glWindowPos3fv (const GLfloat *);
-GLAPI void APIENTRY glWindowPos3i (GLint, GLint, GLint);
-GLAPI void APIENTRY glWindowPos3iv (const GLint *);
-GLAPI void APIENTRY glWindowPos3s (GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glWindowPos3sv (const GLshort *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord);
-typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
-typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord);
-typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
-typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
-typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v);
-#endif
-
-#ifndef GL_VERSION_1_5
-#define GL_VERSION_1_5 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glGenQueries (GLsizei, GLuint *);
-GLAPI void APIENTRY glDeleteQueries (GLsizei, const GLuint *);
-GLAPI GLboolean APIENTRY glIsQuery (GLuint);
-GLAPI void APIENTRY glBeginQuery (GLenum, GLuint);
-GLAPI void APIENTRY glEndQuery (GLenum);
-GLAPI void APIENTRY glGetQueryiv (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *);
-GLAPI void APIENTRY glBindBuffer (GLenum, GLuint);
-GLAPI void APIENTRY glDeleteBuffers (GLsizei, const GLuint *);
-GLAPI void APIENTRY glGenBuffers (GLsizei, GLuint *);
-GLAPI GLboolean APIENTRY glIsBuffer (GLuint);
-GLAPI void APIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum);
-GLAPI void APIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *);
-GLAPI void APIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *);
-GLAPI GLvoid* APIENTRY glMapBuffer (GLenum, GLenum);
-GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum);
-GLAPI void APIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
-typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
-typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id);
-typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
-typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target);
-typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
-typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
-typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
-typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
-typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
-typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
-typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
-typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
-typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
-typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target);
-typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params);
-#endif
-
-#ifndef GL_VERSION_2_0
-#define GL_VERSION_2_0 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBlendEquationSeparate (GLenum, GLenum);
-GLAPI void APIENTRY glDrawBuffers (GLsizei, const GLenum *);
-GLAPI void APIENTRY glStencilOpSeparate (GLenum, GLenum, GLenum, GLenum);
-GLAPI void APIENTRY glStencilFuncSeparate (GLenum, GLenum, GLint, GLuint);
-GLAPI void APIENTRY glStencilMaskSeparate (GLenum, GLuint);
-GLAPI void APIENTRY glAttachShader (GLuint, GLuint);
-GLAPI void APIENTRY glBindAttribLocation (GLuint, GLuint, const GLchar *);
-GLAPI void APIENTRY glCompileShader (GLuint);
-GLAPI GLuint APIENTRY glCreateProgram (void);
-GLAPI GLuint APIENTRY glCreateShader (GLenum);
-GLAPI void APIENTRY glDeleteProgram (GLuint);
-GLAPI void APIENTRY glDeleteShader (GLuint);
-GLAPI void APIENTRY glDetachShader (GLuint, GLuint);
-GLAPI void APIENTRY glDisableVertexAttribArray (GLuint);
-GLAPI void APIENTRY glEnableVertexAttribArray (GLuint);
-GLAPI void APIENTRY glGetActiveAttrib (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
-GLAPI void APIENTRY glGetActiveUniform (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
-GLAPI void APIENTRY glGetAttachedShaders (GLuint, GLsizei, GLsizei *, GLuint *);
-GLAPI GLint APIENTRY glGetAttribLocation (GLuint, const GLchar *);
-GLAPI void APIENTRY glGetProgramiv (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetProgramInfoLog (GLuint, GLsizei, GLsizei *, GLchar *);
-GLAPI void APIENTRY glGetShaderiv (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetShaderInfoLog (GLuint, GLsizei, GLsizei *, GLchar *);
-GLAPI void APIENTRY glGetShaderSource (GLuint, GLsizei, GLsizei *, GLchar *);
-GLAPI GLint APIENTRY glGetUniformLocation (GLuint, const GLchar *);
-GLAPI void APIENTRY glGetUniformfv (GLuint, GLint, GLfloat *);
-GLAPI void APIENTRY glGetUniformiv (GLuint, GLint, GLint *);
-GLAPI void APIENTRY glGetVertexAttribdv (GLuint, GLenum, GLdouble *);
-GLAPI void APIENTRY glGetVertexAttribfv (GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetVertexAttribiv (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint, GLenum, GLvoid* *);
-GLAPI GLboolean APIENTRY glIsProgram (GLuint);
-GLAPI GLboolean APIENTRY glIsShader (GLuint);
-GLAPI void APIENTRY glLinkProgram (GLuint);
-GLAPI void APIENTRY glShaderSource (GLuint, GLsizei, const GLchar* *, const GLint *);
-GLAPI void APIENTRY glUseProgram (GLuint);
-GLAPI void APIENTRY glUniform1f (GLint, GLfloat);
-GLAPI void APIENTRY glUniform2f (GLint, GLfloat, GLfloat);
-GLAPI void APIENTRY glUniform3f (GLint, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glUniform4f (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glUniform1i (GLint, GLint);
-GLAPI void APIENTRY glUniform2i (GLint, GLint, GLint);
-GLAPI void APIENTRY glUniform3i (GLint, GLint, GLint, GLint);
-GLAPI void APIENTRY glUniform4i (GLint, GLint, GLint, GLint, GLint);
-GLAPI void APIENTRY glUniform1fv (GLint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glUniform2fv (GLint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glUniform3fv (GLint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glUniform4fv (GLint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glUniform1iv (GLint, GLsizei, const GLint *);
-GLAPI void APIENTRY glUniform2iv (GLint, GLsizei, const GLint *);
-GLAPI void APIENTRY glUniform3iv (GLint, GLsizei, const GLint *);
-GLAPI void APIENTRY glUniform4iv (GLint, GLsizei, const GLint *);
-GLAPI void APIENTRY glUniformMatrix2fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void APIENTRY glUniformMatrix3fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void APIENTRY glUniformMatrix4fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void APIENTRY glValidateProgram (GLuint);
-GLAPI void APIENTRY glVertexAttrib1d (GLuint, GLdouble);
-GLAPI void APIENTRY glVertexAttrib1dv (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib1f (GLuint, GLfloat);
-GLAPI void APIENTRY glVertexAttrib1fv (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib1s (GLuint, GLshort);
-GLAPI void APIENTRY glVertexAttrib1sv (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib2d (GLuint, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexAttrib2dv (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib2f (GLuint, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexAttrib2fv (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib2s (GLuint, GLshort, GLshort);
-GLAPI void APIENTRY glVertexAttrib2sv (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib3d (GLuint, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexAttrib3dv (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib3f (GLuint, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexAttrib3fv (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib3s (GLuint, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glVertexAttrib3sv (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint, const GLbyte *);
-GLAPI void APIENTRY glVertexAttrib4Niv (GLuint, const GLint *);
-GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib4Nub (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
-GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint, const GLubyte *);
-GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint, const GLuint *);
-GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint, const GLushort *);
-GLAPI void APIENTRY glVertexAttrib4bv (GLuint, const GLbyte *);
-GLAPI void APIENTRY glVertexAttrib4d (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexAttrib4dv (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib4f (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexAttrib4fv (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib4iv (GLuint, const GLint *);
-GLAPI void APIENTRY glVertexAttrib4s (GLuint, GLshort, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glVertexAttrib4sv (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib4ubv (GLuint, const GLubyte *);
-GLAPI void APIENTRY glVertexAttrib4uiv (GLuint, const GLuint *);
-GLAPI void APIENTRY glVertexAttrib4usv (GLuint, const GLushort *);
-GLAPI void APIENTRY glVertexAttribPointer (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
-typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
-typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
-typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
-typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
-typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
-typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
-typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
-typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
-typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
-typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
-typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
-typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
-typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
-typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
-typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
-typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
-typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
-typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
-typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
-typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
-typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
-typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
-typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
-typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
-typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
-typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
-typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
-typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
-typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
-typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
-typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
-typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
-typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
-typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
-#endif
-
-#ifndef GL_ARB_multitexture
-#define GL_ARB_multitexture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glActiveTextureARB (GLenum);
-GLAPI void APIENTRY glClientActiveTextureARB (GLenum);
-GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble);
-GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *);
-GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat);
-GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *);
-GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint);
-GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *);
-GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort);
-GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *);
-GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble);
-GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *);
-GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat);
-GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *);
-GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint);
-GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *);
-GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort);
-GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *);
-GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *);
-GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *);
-GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint);
-GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *);
-GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *);
-GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *);
-GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *);
-GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint);
-GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *);
-GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
-#endif
-
-#ifndef GL_ARB_transpose_matrix
-#define GL_ARB_transpose_matrix 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *);
-GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *);
-GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *);
-GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
-typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
-typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
-typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
-#endif
-
-#ifndef GL_ARB_multisample
-#define GL_ARB_multisample 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert);
-#endif
-
-#ifndef GL_ARB_texture_env_add
-#define GL_ARB_texture_env_add 1
-#endif
-
-#ifndef GL_ARB_texture_cube_map
-#define GL_ARB_texture_cube_map 1
-#endif
-
-#ifndef GL_ARB_texture_compression
-#define GL_ARB_texture_compression 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img);
-#endif
-
-#ifndef GL_ARB_texture_border_clamp
-#define GL_ARB_texture_border_clamp 1
-#endif
-
-#ifndef GL_ARB_point_parameters
-#define GL_ARB_point_parameters 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat);
-GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params);
-#endif
-
-#ifndef GL_ARB_vertex_blend
-#define GL_ARB_vertex_blend 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *);
-GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *);
-GLAPI void APIENTRY glWeightivARB (GLint, const GLint *);
-GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *);
-GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *);
-GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *);
-GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *);
-GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *);
-GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glVertexBlendARB (GLint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights);
-typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights);
-typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights);
-typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights);
-typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights);
-typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights);
-typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights);
-typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights);
-typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count);
-#endif
-
-#ifndef GL_ARB_matrix_palette
-#define GL_ARB_matrix_palette 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint);
-GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *);
-GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *);
-GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *);
-GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index);
-typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices);
-typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices);
-typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices);
-typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-#endif
-
-#ifndef GL_ARB_texture_env_combine
-#define GL_ARB_texture_env_combine 1
-#endif
-
-#ifndef GL_ARB_texture_env_crossbar
-#define GL_ARB_texture_env_crossbar 1
-#endif
-
-#ifndef GL_ARB_texture_env_dot3
-#define GL_ARB_texture_env_dot3 1
-#endif
-
-#ifndef GL_ARB_texture_mirrored_repeat
-#define GL_ARB_texture_mirrored_repeat 1
-#endif
-
-#ifndef GL_ARB_depth_texture
-#define GL_ARB_depth_texture 1
-#endif
-
-#ifndef GL_ARB_shadow
-#define GL_ARB_shadow 1
-#endif
-
-#ifndef GL_ARB_shadow_ambient
-#define GL_ARB_shadow_ambient 1
-#endif
-
-#ifndef GL_ARB_window_pos
-#define GL_ARB_window_pos 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble);
-GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *);
-GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat);
-GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *);
-GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint);
-GLAPI void APIENTRY glWindowPos2ivARB (const GLint *);
-GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort);
-GLAPI void APIENTRY glWindowPos2svARB (const GLshort *);
-GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *);
-GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *);
-GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint);
-GLAPI void APIENTRY glWindowPos3ivARB (const GLint *);
-GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glWindowPos3svARB (const GLshort *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v);
-#endif
-
-#ifndef GL_ARB_vertex_program
-#define GL_ARB_vertex_program 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glVertexAttrib1dARB (GLuint, GLdouble);
-GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib1fARB (GLuint, GLfloat);
-GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib1sARB (GLuint, GLshort);
-GLAPI void APIENTRY glVertexAttrib1svARB (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib2dARB (GLuint, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib2fARB (GLuint, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib2sARB (GLuint, GLshort, GLshort);
-GLAPI void APIENTRY glVertexAttrib2svARB (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib3dARB (GLuint, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib3fARB (GLuint, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib3sARB (GLuint, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glVertexAttrib3svARB (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint, const GLbyte *);
-GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint, const GLint *);
-GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
-GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint, const GLubyte *);
-GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint, const GLuint *);
-GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint, const GLushort *);
-GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint, const GLbyte *);
-GLAPI void APIENTRY glVertexAttrib4dARB (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib4fARB (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint, const GLint *);
-GLAPI void APIENTRY glVertexAttrib4sARB (GLuint, GLshort, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glVertexAttrib4svARB (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint, const GLubyte *);
-GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint, const GLuint *);
-GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint, const GLushort *);
-GLAPI void APIENTRY glVertexAttribPointerARB (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint);
-GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint);
-GLAPI void APIENTRY glProgramStringARB (GLenum, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glBindProgramARB (GLenum, GLuint);
-GLAPI void APIENTRY glDeleteProgramsARB (GLsizei, const GLuint *);
-GLAPI void APIENTRY glGenProgramsARB (GLsizei, GLuint *);
-GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum, GLuint, const GLdouble *);
-GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum, GLuint, const GLfloat *);
-GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum, GLuint, const GLdouble *);
-GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum, GLuint, const GLfloat *);
-GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum, GLuint, GLdouble *);
-GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum, GLuint, GLfloat *);
-GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum, GLuint, GLdouble *);
-GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum, GLuint, GLfloat *);
-GLAPI void APIENTRY glGetProgramivARB (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetProgramStringARB (GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint, GLenum, GLdouble *);
-GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetVertexAttribivARB (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint, GLenum, GLvoid* *);
-GLAPI GLboolean APIENTRY glIsProgramARB (GLuint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
-typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
-typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
-typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
-typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
-typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
-typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
-typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
-typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
-typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
-typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program);
-#endif
-
-#ifndef GL_ARB_fragment_program
-#define GL_ARB_fragment_program 1
-/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */
-#endif
-
-#ifndef GL_ARB_vertex_buffer_object
-#define GL_ARB_vertex_buffer_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBindBufferARB (GLenum, GLuint);
-GLAPI void APIENTRY glDeleteBuffersARB (GLsizei, const GLuint *);
-GLAPI void APIENTRY glGenBuffersARB (GLsizei, GLuint *);
-GLAPI GLboolean APIENTRY glIsBufferARB (GLuint);
-GLAPI void APIENTRY glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum);
-GLAPI void APIENTRY glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *);
-GLAPI void APIENTRY glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *);
-GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum, GLenum);
-GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum);
-GLAPI void APIENTRY glGetBufferParameterivARB (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetBufferPointervARB (GLenum, GLenum, GLvoid* *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
-typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
-typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
-typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer);
-typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
-typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
-typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
-typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
-typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target);
-typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params);
-#endif
-
-#ifndef GL_ARB_occlusion_query
-#define GL_ARB_occlusion_query 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glGenQueriesARB (GLsizei, GLuint *);
-GLAPI void APIENTRY glDeleteQueriesARB (GLsizei, const GLuint *);
-GLAPI GLboolean APIENTRY glIsQueryARB (GLuint);
-GLAPI void APIENTRY glBeginQueryARB (GLenum, GLuint);
-GLAPI void APIENTRY glEndQueryARB (GLenum);
-GLAPI void APIENTRY glGetQueryivARB (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetQueryObjectivARB (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint, GLenum, GLuint *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids);
-typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids);
-typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id);
-typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id);
-typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target);
-typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params);
-#endif
-
-#ifndef GL_ARB_shader_objects
-#define GL_ARB_shader_objects 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB);
-GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum);
-GLAPI void APIENTRY glDetachObjectARB (GLhandleARB, GLhandleARB);
-GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum);
-GLAPI void APIENTRY glShaderSourceARB (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *);
-GLAPI void APIENTRY glCompileShaderARB (GLhandleARB);
-GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void);
-GLAPI void APIENTRY glAttachObjectARB (GLhandleARB, GLhandleARB);
-GLAPI void APIENTRY glLinkProgramARB (GLhandleARB);
-GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB);
-GLAPI void APIENTRY glValidateProgramARB (GLhandleARB);
-GLAPI void APIENTRY glUniform1fARB (GLint, GLfloat);
-GLAPI void APIENTRY glUniform2fARB (GLint, GLfloat, GLfloat);
-GLAPI void APIENTRY glUniform3fARB (GLint, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glUniform4fARB (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glUniform1iARB (GLint, GLint);
-GLAPI void APIENTRY glUniform2iARB (GLint, GLint, GLint);
-GLAPI void APIENTRY glUniform3iARB (GLint, GLint, GLint, GLint);
-GLAPI void APIENTRY glUniform4iARB (GLint, GLint, GLint, GLint, GLint);
-GLAPI void APIENTRY glUniform1fvARB (GLint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glUniform2fvARB (GLint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glUniform3fvARB (GLint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glUniform4fvARB (GLint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glUniform1ivARB (GLint, GLsizei, const GLint *);
-GLAPI void APIENTRY glUniform2ivARB (GLint, GLsizei, const GLint *);
-GLAPI void APIENTRY glUniform3ivARB (GLint, GLsizei, const GLint *);
-GLAPI void APIENTRY glUniform4ivARB (GLint, GLsizei, const GLint *);
-GLAPI void APIENTRY glUniformMatrix2fvARB (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void APIENTRY glUniformMatrix3fvARB (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void APIENTRY glUniformMatrix4fvARB (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB, GLenum, GLint *);
-GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
-GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *);
-GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB, const GLcharARB *);
-GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
-GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB, GLint, GLfloat *);
-GLAPI void APIENTRY glGetUniformivARB (GLhandleARB, GLint, GLint *);
-GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
-typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname);
-typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
-typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
-typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
-typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
-typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
-typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
-typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
-typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
-typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
-typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
-typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
-typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
-typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
-typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
-typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
-typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
-typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
-typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
-typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params);
-typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
-#endif
-
-#ifndef GL_ARB_vertex_shader
-#define GL_ARB_vertex_shader 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB, GLuint, const GLcharARB *);
-GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
-GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB, const GLcharARB *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name);
-typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
-typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
-#endif
-
-#ifndef GL_ARB_fragment_shader
-#define GL_ARB_fragment_shader 1
-#endif
-
-#ifndef GL_ARB_shading_language_100
-#define GL_ARB_shading_language_100 1
-#endif
-
-#ifndef GL_ARB_texture_non_power_of_two
-#define GL_ARB_texture_non_power_of_two 1
-#endif
-
-#ifndef GL_ARB_point_sprite
-#define GL_ARB_point_sprite 1
-#endif
-
-#ifndef GL_ARB_fragment_program_shadow
-#define GL_ARB_fragment_program_shadow 1
-#endif
-
-#ifndef GL_ARB_draw_buffers
-#define GL_ARB_draw_buffers 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glDrawBuffersARB (GLsizei, const GLenum *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs);
-#endif
-
-#ifndef GL_ARB_texture_rectangle
-#define GL_ARB_texture_rectangle 1
-#endif
-
-#ifndef GL_ARB_color_buffer_float
-#define GL_ARB_color_buffer_float 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glClampColorARB (GLenum, GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp);
-#endif
-
-#ifndef GL_ARB_half_float_pixel
-#define GL_ARB_half_float_pixel 1
-#endif
-
-#ifndef GL_ARB_texture_float
-#define GL_ARB_texture_float 1
-#endif
-
-#ifndef GL_ARB_pixel_buffer_object
-#define GL_ARB_pixel_buffer_object 1
-#endif
-
-#ifndef GL_EXT_abgr
-#define GL_EXT_abgr 1
-#endif
-
-#ifndef GL_EXT_blend_color
-#define GL_EXT_blend_color 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-#endif
-
-#ifndef GL_EXT_polygon_offset
-#define GL_EXT_polygon_offset 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias);
-#endif
-
-#ifndef GL_EXT_texture
-#define GL_EXT_texture 1
-#endif
-
-#ifndef GL_EXT_texture3D
-#define GL_EXT_texture3D 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
-#endif
-
-#ifndef GL_SGIS_texture_filter4
-#define GL_SGIS_texture_filter4 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights);
-typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
-#endif
-
-#ifndef GL_EXT_subtexture
-#define GL_EXT_subtexture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-#endif
-
-#ifndef GL_EXT_copy_texture
-#define GL_EXT_copy_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
-GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
-GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei);
-GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
-GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
-typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-#endif
-
-#ifndef GL_EXT_histogram
-#define GL_EXT_histogram 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean);
-GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean);
-GLAPI void APIENTRY glResetHistogramEXT (GLenum);
-GLAPI void APIENTRY glResetMinmaxEXT (GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
-typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
-typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
-typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink);
-typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target);
-typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target);
-#endif
-
-#ifndef GL_EXT_convolution
-#define GL_EXT_convolution 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat);
-GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *);
-GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint);
-GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *);
-GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei);
-GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei);
-GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *);
-GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
-typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
-typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params);
-typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params);
-typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
-typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
-typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
-typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
-#endif
-
-#ifndef GL_EXT_color_matrix
-#define GL_EXT_color_matrix 1
-#endif
-
-#ifndef GL_SGI_color_table
-#define GL_SGI_color_table 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *);
-GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *);
-GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei);
-GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
-typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
-typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
-typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params);
-#endif
-
-#ifndef GL_SGIX_pixel_texture
-#define GL_SGIX_pixel_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPixelTexGenSGIX (GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode);
-#endif
-
-#ifndef GL_SGIS_pixel_texture
-#define GL_SGIS_pixel_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint);
-GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *);
-GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat);
-GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *);
-GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *);
-GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params);
-#endif
-
-#ifndef GL_SGIS_texture4D
-#define GL_SGIS_texture4D 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels);
-#endif
-
-#ifndef GL_SGI_texture_color_table
-#define GL_SGI_texture_color_table 1
-#endif
-
-#ifndef GL_EXT_cmyka
-#define GL_EXT_cmyka 1
-#endif
-
-#ifndef GL_EXT_texture_object
-#define GL_EXT_texture_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *);
-GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint);
-GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *);
-GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *);
-GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint);
-GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences);
-typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture);
-typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures);
-typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures);
-typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture);
-typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
-#endif
-
-#ifndef GL_SGIS_detail_texture
-#define GL_SGIS_detail_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
-typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
-#endif
-
-#ifndef GL_SGIS_sharpen_texture
-#define GL_SGIS_sharpen_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
-typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
-#endif
-
-#ifndef GL_EXT_packed_pixels
-#define GL_EXT_packed_pixels 1
-#endif
-
-#ifndef GL_SGIS_texture_lod
-#define GL_SGIS_texture_lod 1
-#endif
-
-#ifndef GL_SGIS_multisample
-#define GL_SGIS_multisample 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean);
-GLAPI void APIENTRY glSamplePatternSGIS (GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert);
-typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern);
-#endif
-
-#ifndef GL_EXT_rescale_normal
-#define GL_EXT_rescale_normal 1
-#endif
-
-#ifndef GL_EXT_vertex_array
-#define GL_EXT_vertex_array 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glArrayElementEXT (GLint);
-GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei);
-GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *);
-GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *);
-GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i);
-typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
-typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer);
-typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params);
-typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
-#endif
-
-#ifndef GL_EXT_misc_attribute
-#define GL_EXT_misc_attribute 1
-#endif
-
-#ifndef GL_SGIS_generate_mipmap
-#define GL_SGIS_generate_mipmap 1
-#endif
-
-#ifndef GL_SGIX_clipmap
-#define GL_SGIX_clipmap 1
-#endif
-
-#ifndef GL_SGIX_shadow
-#define GL_SGIX_shadow 1
-#endif
-
-#ifndef GL_SGIS_texture_edge_clamp
-#define GL_SGIS_texture_edge_clamp 1
-#endif
-
-#ifndef GL_SGIS_texture_border_clamp
-#define GL_SGIS_texture_border_clamp 1
-#endif
-
-#ifndef GL_EXT_blend_minmax
-#define GL_EXT_blend_minmax 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBlendEquationEXT (GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
-#endif
-
-#ifndef GL_EXT_blend_subtract
-#define GL_EXT_blend_subtract 1
-#endif
-
-#ifndef GL_EXT_blend_logic_op
-#define GL_EXT_blend_logic_op 1
-#endif
-
-#ifndef GL_SGIX_interlace
-#define GL_SGIX_interlace 1
-#endif
-
-#ifndef GL_SGIX_pixel_tiles
-#define GL_SGIX_pixel_tiles 1
-#endif
-
-#ifndef GL_SGIX_texture_select
-#define GL_SGIX_texture_select 1
-#endif
-
-#ifndef GL_SGIX_sprite
-#define GL_SGIX_sprite 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat);
-GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *);
-GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint);
-GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params);
-#endif
-
-#ifndef GL_SGIX_texture_multi_buffer
-#define GL_SGIX_texture_multi_buffer 1
-#endif
-
-#ifndef GL_EXT_point_parameters
-#define GL_EXT_point_parameters 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat);
-GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params);
-#endif
-
-#ifndef GL_SGIS_point_parameters
-#define GL_SGIS_point_parameters 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat);
-GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
-#endif
-
-#ifndef GL_SGIX_instruments
-#define GL_SGIX_instruments 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI GLint APIENTRY glGetInstrumentsSGIX (void);
-GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *);
-GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *);
-GLAPI void APIENTRY glReadInstrumentsSGIX (GLint);
-GLAPI void APIENTRY glStartInstrumentsSGIX (void);
-GLAPI void APIENTRY glStopInstrumentsSGIX (GLint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void);
-typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer);
-typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p);
-typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker);
-typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void);
-typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker);
-#endif
-
-#ifndef GL_SGIX_texture_scale_bias
-#define GL_SGIX_texture_scale_bias 1
-#endif
-
-#ifndef GL_SGIX_framezoom
-#define GL_SGIX_framezoom 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glFrameZoomSGIX (GLint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor);
-#endif
-
-#ifndef GL_SGIX_tag_sample_buffer
-#define GL_SGIX_tag_sample_buffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glTagSampleBufferSGIX (void);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void);
-#endif
-
-#ifndef GL_SGIX_polynomial_ffd
-#define GL_SGIX_polynomial_ffd 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
-GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
-GLAPI void APIENTRY glDeformSGIX (GLbitfield);
-GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
-typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
-typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask);
-typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask);
-#endif
-
-#ifndef GL_SGIX_reference_plane
-#define GL_SGIX_reference_plane 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation);
-#endif
-
-#ifndef GL_SGIX_flush_raster
-#define GL_SGIX_flush_raster 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glFlushRasterSGIX (void);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void);
-#endif
-
-#ifndef GL_SGIX_depth_texture
-#define GL_SGIX_depth_texture 1
-#endif
-
-#ifndef GL_SGIS_fog_function
-#define GL_SGIS_fog_function 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *);
-GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points);
-typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points);
-#endif
-
-#ifndef GL_SGIX_fog_offset
-#define GL_SGIX_fog_offset 1
-#endif
-
-#ifndef GL_HP_image_transform
-#define GL_HP_image_transform 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint);
-GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat);
-GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *);
-GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *);
-GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params);
-#endif
-
-#ifndef GL_HP_convolution_border_modes
-#define GL_HP_convolution_border_modes 1
-#endif
-
-#ifndef GL_SGIX_texture_add_env
-#define GL_SGIX_texture_add_env 1
-#endif
-
-#ifndef GL_EXT_color_subtable
-#define GL_EXT_color_subtable 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
-typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
-#endif
-
-#ifndef GL_PGI_vertex_hints
-#define GL_PGI_vertex_hints 1
-#endif
-
-#ifndef GL_PGI_misc_hints
-#define GL_PGI_misc_hints 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glHintPGI (GLenum, GLint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode);
-#endif
-
-#ifndef GL_EXT_paletted_texture
-#define GL_EXT_paletted_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *);
-GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
-typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data);
-typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
-#endif
-
-#ifndef GL_EXT_clip_volume_hint
-#define GL_EXT_clip_volume_hint 1
-#endif
-
-#ifndef GL_SGIX_list_priority
-#define GL_SGIX_list_priority 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat);
-GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *);
-GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint);
-GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params);
-#endif
-
-#ifndef GL_SGIX_ir_instrument1
-#define GL_SGIX_ir_instrument1 1
-#endif
-
-#ifndef GL_SGIX_calligraphic_fragment
-#define GL_SGIX_calligraphic_fragment 1
-#endif
-
-#ifndef GL_SGIX_texture_lod_bias
-#define GL_SGIX_texture_lod_bias 1
-#endif
-
-#ifndef GL_SGIX_shadow_ambient
-#define GL_SGIX_shadow_ambient 1
-#endif
-
-#ifndef GL_EXT_index_texture
-#define GL_EXT_index_texture 1
-#endif
-
-#ifndef GL_EXT_index_material
-#define GL_EXT_index_material 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode);
-#endif
-
-#ifndef GL_EXT_index_func
-#define GL_EXT_index_func 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref);
-#endif
-
-#ifndef GL_EXT_index_array_formats
-#define GL_EXT_index_array_formats 1
-#endif
-
-#ifndef GL_EXT_compiled_vertex_array
-#define GL_EXT_compiled_vertex_array 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei);
-GLAPI void APIENTRY glUnlockArraysEXT (void);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
-typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void);
-#endif
-
-#ifndef GL_EXT_cull_vertex
-#define GL_EXT_cull_vertex 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *);
-GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params);
-typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params);
-#endif
-
-#ifndef GL_SGIX_ycrcb
-#define GL_SGIX_ycrcb 1
-#endif
-
-#ifndef GL_SGIX_fragment_lighting
-#define GL_SGIX_fragment_lighting 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum);
-GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat);
-GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *);
-GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint);
-GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *);
-GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat);
-GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *);
-GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint);
-GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *);
-GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat);
-GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *);
-GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint);
-GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *);
-GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode);
-typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param);
-#endif
-
-#ifndef GL_IBM_rasterpos_clip
-#define GL_IBM_rasterpos_clip 1
-#endif
-
-#ifndef GL_HP_texture_lighting
-#define GL_HP_texture_lighting 1
-#endif
-
-#ifndef GL_EXT_draw_range_elements
-#define GL_EXT_draw_range_elements 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
-#endif
-
-#ifndef GL_WIN_phong_shading
-#define GL_WIN_phong_shading 1
-#endif
-
-#ifndef GL_WIN_specular_fog
-#define GL_WIN_specular_fog 1
-#endif
-
-#ifndef GL_EXT_light_texture
-#define GL_EXT_light_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glApplyTextureEXT (GLenum);
-GLAPI void APIENTRY glTextureLightEXT (GLenum);
-GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode);
-typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname);
-typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode);
-#endif
-
-#ifndef GL_SGIX_blend_alpha_minmax
-#define GL_SGIX_blend_alpha_minmax 1
-#endif
-
-#ifndef GL_EXT_bgra
-#define GL_EXT_bgra 1
-#endif
-
-#ifndef GL_SGIX_async
-#define GL_SGIX_async 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint);
-GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *);
-GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *);
-GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei);
-GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei);
-GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker);
-typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp);
-typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp);
-typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range);
-typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range);
-typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker);
-#endif
-
-#ifndef GL_SGIX_async_pixel
-#define GL_SGIX_async_pixel 1
-#endif
-
-#ifndef GL_SGIX_async_histogram
-#define GL_SGIX_async_histogram 1
-#endif
-
-#ifndef GL_INTEL_parallel_arrays
-#define GL_INTEL_parallel_arrays 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *);
-GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *);
-GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *);
-GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
-typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer);
-typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
-typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
-#endif
-
-#ifndef GL_HP_occlusion_test
-#define GL_HP_occlusion_test 1
-#endif
-
-#ifndef GL_EXT_pixel_transform
-#define GL_EXT_pixel_transform 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint);
-GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat);
-GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *);
-GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
-#endif
-
-#ifndef GL_EXT_pixel_transform_color_table
-#define GL_EXT_pixel_transform_color_table 1
-#endif
-
-#ifndef GL_EXT_shared_texture_palette
-#define GL_EXT_shared_texture_palette 1
-#endif
-
-#ifndef GL_EXT_separate_specular_color
-#define GL_EXT_separate_specular_color 1
-#endif
-
-#ifndef GL_EXT_secondary_color
-#define GL_EXT_secondary_color 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte);
-GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *);
-GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *);
-GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *);
-GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint);
-GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *);
-GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *);
-GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte);
-GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *);
-GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *);
-GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort);
-GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *);
-GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v);
-typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-#endif
-
-#ifndef GL_EXT_texture_perturb_normal
-#define GL_EXT_texture_perturb_normal 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glTextureNormalEXT (GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode);
-#endif
-
-#ifndef GL_EXT_multi_draw_arrays
-#define GL_EXT_multi_draw_arrays 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
-GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
-typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
-#endif
-
-#ifndef GL_EXT_fog_coord
-#define GL_EXT_fog_coord 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glFogCoordfEXT (GLfloat);
-GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *);
-GLAPI void APIENTRY glFogCoorddEXT (GLdouble);
-GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *);
-GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord);
-typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord);
-typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord);
-typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord);
-typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
-#endif
-
-#ifndef GL_REND_screen_coordinates
-#define GL_REND_screen_coordinates 1
-#endif
-
-#ifndef GL_EXT_coordinate_frame
-#define GL_EXT_coordinate_frame 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte);
-GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *);
-GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *);
-GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *);
-GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint);
-GLAPI void APIENTRY glTangent3ivEXT (const GLint *);
-GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glTangent3svEXT (const GLshort *);
-GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte);
-GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *);
-GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *);
-GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *);
-GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint);
-GLAPI void APIENTRY glBinormal3ivEXT (const GLint *);
-GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glBinormal3svEXT (const GLshort *);
-GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz);
-typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v);
-typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz);
-typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz);
-typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz);
-typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz);
-typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v);
-typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz);
-typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v);
-typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz);
-typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz);
-typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz);
-typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz);
-typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v);
-typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
-#endif
-
-#ifndef GL_EXT_texture_env_combine
-#define GL_EXT_texture_env_combine 1
-#endif
-
-#ifndef GL_APPLE_specular_vector
-#define GL_APPLE_specular_vector 1
-#endif
-
-#ifndef GL_APPLE_transform_hint
-#define GL_APPLE_transform_hint 1
-#endif
-
-#ifndef GL_SGIX_fog_scale
-#define GL_SGIX_fog_scale 1
-#endif
-
-#ifndef GL_SUNX_constant_data
-#define GL_SUNX_constant_data 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glFinishTextureSUNX (void);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void);
-#endif
-
-#ifndef GL_SUN_global_alpha
-#define GL_SUN_global_alpha 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte);
-GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort);
-GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint);
-GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat);
-GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble);
-GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte);
-GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort);
-GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor);
-typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor);
-typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor);
-typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor);
-typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor);
-typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor);
-typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor);
-typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor);
-#endif
-
-#ifndef GL_SUN_triangle_list
-#define GL_SUN_triangle_list 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint);
-GLAPI void APIENTRY glReplacementCodeusSUN (GLushort);
-GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte);
-GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *);
-GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *);
-GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *);
-GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer);
-#endif
-
-#ifndef GL_SUN_vertex
-#define GL_SUN_vertex 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat);
-GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *);
-GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *);
-GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *);
-GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *, const GLfloat *);
-GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *, const GLubyte *, const GLfloat *);
-GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *);
-GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
-typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v);
-typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v);
-typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v);
-typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v);
-typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v);
-typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
-typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
-typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v);
-typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v);
-typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v);
-typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
-typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
-#endif
-
-#ifndef GL_EXT_blend_func_separate
-#define GL_EXT_blend_func_separate 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-#endif
-
-#ifndef GL_INGR_blend_func_separate
-#define GL_INGR_blend_func_separate 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-#endif
-
-#ifndef GL_INGR_color_clamp
-#define GL_INGR_color_clamp 1
-#endif
-
-#ifndef GL_INGR_interlace_read
-#define GL_INGR_interlace_read 1
-#endif
-
-#ifndef GL_EXT_stencil_wrap
-#define GL_EXT_stencil_wrap 1
-#endif
-
-#ifndef GL_EXT_422_pixels
-#define GL_EXT_422_pixels 1
-#endif
-
-#ifndef GL_NV_texgen_reflection
-#define GL_NV_texgen_reflection 1
-#endif
-
-#ifndef GL_SUN_convolution_border_modes
-#define GL_SUN_convolution_border_modes 1
-#endif
-
-#ifndef GL_EXT_texture_env_add
-#define GL_EXT_texture_env_add 1
-#endif
-
-#ifndef GL_EXT_texture_lod_bias
-#define GL_EXT_texture_lod_bias 1
-#endif
-
-#ifndef GL_EXT_texture_filter_anisotropic
-#define GL_EXT_texture_filter_anisotropic 1
-#endif
-
-#ifndef GL_EXT_vertex_weighting
-#define GL_EXT_vertex_weighting 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glVertexWeightfEXT (GLfloat);
-GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *);
-GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
-typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight);
-typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
-#endif
-
-#ifndef GL_NV_light_max_exponent
-#define GL_NV_light_max_exponent 1
-#endif
-
-#ifndef GL_NV_vertex_array_range
-#define GL_NV_vertex_array_range 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glFlushVertexArrayRangeNV (void);
-GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
-typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer);
-#endif
-
-#ifndef GL_NV_register_combiners
-#define GL_NV_register_combiners 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *);
-GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat);
-GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *);
-GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint);
-GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum);
-GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean);
-GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum);
-GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
-typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
-typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
-typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
-typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params);
-#endif
-
-#ifndef GL_NV_fog_distance
-#define GL_NV_fog_distance 1
-#endif
-
-#ifndef GL_NV_texgen_emboss
-#define GL_NV_texgen_emboss 1
-#endif
-
-#ifndef GL_NV_blend_square
-#define GL_NV_blend_square 1
-#endif
-
-#ifndef GL_NV_texture_env_combine4
-#define GL_NV_texture_env_combine4 1
-#endif
-
-#ifndef GL_MESA_resize_buffers
-#define GL_MESA_resize_buffers 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glResizeBuffersMESA (void);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void);
-#endif
-
-#ifndef GL_MESA_window_pos
-#define GL_MESA_window_pos 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble);
-GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *);
-GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat);
-GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *);
-GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint);
-GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *);
-GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort);
-GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *);
-GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *);
-GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *);
-GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint);
-GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *);
-GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *);
-GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *);
-GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *);
-GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint);
-GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *);
-GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y);
-typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z);
-typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w);
-typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v);
-typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v);
-#endif
-
-#ifndef GL_IBM_cull_vertex
-#define GL_IBM_cull_vertex 1
-#endif
-
-#ifndef GL_IBM_multimode_draw_arrays
-#define GL_IBM_multimode_draw_arrays 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint);
-GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* const *, GLsizei, GLint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
-typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride);
-#endif
-
-#ifndef GL_IBM_vertex_array_lists
-#define GL_IBM_vertex_array_lists 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
-GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
-GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint);
-GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint);
-GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint);
-GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint);
-GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
-GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
-typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
-typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride);
-typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
-typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
-typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
-typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
-typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
-#endif
-
-#ifndef GL_SGIX_subsample
-#define GL_SGIX_subsample 1
-#endif
-
-#ifndef GL_SGIX_ycrcba
-#define GL_SGIX_ycrcba 1
-#endif
-
-#ifndef GL_SGIX_ycrcb_subsample
-#define GL_SGIX_ycrcb_subsample 1
-#endif
-
-#ifndef GL_SGIX_depth_pass_instrument
-#define GL_SGIX_depth_pass_instrument 1
-#endif
-
-#ifndef GL_3DFX_texture_compression_FXT1
-#define GL_3DFX_texture_compression_FXT1 1
-#endif
-
-#ifndef GL_3DFX_multisample
-#define GL_3DFX_multisample 1
-#endif
-
-#ifndef GL_3DFX_tbuffer
-#define GL_3DFX_tbuffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glTbufferMask3DFX (GLuint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask);
-#endif
-
-#ifndef GL_EXT_multisample
-#define GL_EXT_multisample 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean);
-GLAPI void APIENTRY glSamplePatternEXT (GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert);
-typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern);
-#endif
-
-#ifndef GL_SGIX_vertex_preclip
-#define GL_SGIX_vertex_preclip 1
-#endif
-
-#ifndef GL_SGIX_convolution_accuracy
-#define GL_SGIX_convolution_accuracy 1
-#endif
-
-#ifndef GL_SGIX_resample
-#define GL_SGIX_resample 1
-#endif
-
-#ifndef GL_SGIS_point_line_texgen
-#define GL_SGIS_point_line_texgen 1
-#endif
-
-#ifndef GL_SGIS_texture_color_mask
-#define GL_SGIS_texture_color_mask 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-#endif
-
-#ifndef GL_SGIX_igloo_interface
-#define GL_SGIX_igloo_interface 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params);
-#endif
-
-#ifndef GL_EXT_texture_env_dot3
-#define GL_EXT_texture_env_dot3 1
-#endif
-
-#ifndef GL_ATI_texture_mirror_once
-#define GL_ATI_texture_mirror_once 1
-#endif
-
-#ifndef GL_NV_fence
-#define GL_NV_fence 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
-GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *);
-GLAPI GLboolean APIENTRY glIsFenceNV (GLuint);
-GLAPI GLboolean APIENTRY glTestFenceNV (GLuint);
-GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glFinishFenceNV (GLuint);
-GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
-typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
-typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
-typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
-typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
-typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
-#endif
-
-#ifndef GL_NV_evaluators
-#define GL_NV_evaluators 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *);
-GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *);
-GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *);
-GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *);
-GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
-typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
-typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode);
-#endif
-
-#ifndef GL_NV_packed_depth_stencil
-#define GL_NV_packed_depth_stencil 1
-#endif
-
-#ifndef GL_NV_register_combiners2
-#define GL_NV_register_combiners2 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *);
-GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
-typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
-#endif
-
-#ifndef GL_NV_texture_compression_vtc
-#define GL_NV_texture_compression_vtc 1
-#endif
-
-#ifndef GL_NV_texture_rectangle
-#define GL_NV_texture_rectangle 1
-#endif
-
-#ifndef GL_NV_texture_shader
-#define GL_NV_texture_shader 1
-#endif
-
-#ifndef GL_NV_texture_shader2
-#define GL_NV_texture_shader2 1
-#endif
-
-#ifndef GL_NV_vertex_array_range2
-#define GL_NV_vertex_array_range2 1
-#endif
-
-#ifndef GL_NV_vertex_program
-#define GL_NV_vertex_program 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *);
-GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint);
-GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *);
-GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *);
-GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *);
-GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *);
-GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *);
-GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *);
-GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *);
-GLAPI GLboolean APIENTRY glIsProgramNV (GLuint);
-GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *);
-GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *);
-GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *);
-GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *);
-GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *);
-GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *);
-GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum);
-GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble);
-GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat);
-GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort);
-GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort);
-GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *);
-GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
-GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *);
-GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *);
-GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *);
-GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *);
-GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *);
-GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *);
-GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *);
-GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *);
-GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *);
-GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *);
-GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences);
-typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
-typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
-typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params);
-typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs);
-typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program);
-typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
-typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id);
-typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
-typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v);
-typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v);
-typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
-typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v);
-#endif
-
-#ifndef GL_SGIX_texture_coordinate_clamp
-#define GL_SGIX_texture_coordinate_clamp 1
-#endif
-
-#ifndef GL_SGIX_scalebias_hint
-#define GL_SGIX_scalebias_hint 1
-#endif
-
-#ifndef GL_OML_interlace
-#define GL_OML_interlace 1
-#endif
-
-#ifndef GL_OML_subsample
-#define GL_OML_subsample 1
-#endif
-
-#ifndef GL_OML_resample
-#define GL_OML_resample 1
-#endif
-
-#ifndef GL_NV_copy_depth_to_color
-#define GL_NV_copy_depth_to_color 1
-#endif
-
-#ifndef GL_ATI_envmap_bumpmap
-#define GL_ATI_envmap_bumpmap 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *);
-GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *);
-GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *);
-GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param);
-typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param);
-typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
-typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param);
-#endif
-
-#ifndef GL_ATI_fragment_shader
-#define GL_ATI_fragment_shader 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint);
-GLAPI void APIENTRY glBindFragmentShaderATI (GLuint);
-GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint);
-GLAPI void APIENTRY glBeginFragmentShaderATI (void);
-GLAPI void APIENTRY glEndFragmentShaderATI (void);
-GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum);
-GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum);
-GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range);
-typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id);
-typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id);
-typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void);
-typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void);
-typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
-typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
-typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
-typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
-typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
-typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
-typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
-typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
-typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value);
-#endif
-
-#ifndef GL_ATI_pn_triangles
-#define GL_ATI_pn_triangles 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint);
-GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param);
-#endif
-
-#ifndef GL_ATI_vertex_array_object
-#define GL_ATI_vertex_array_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum);
-GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint);
-GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum);
-GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glFreeObjectBufferATI (GLuint);
-GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint);
-GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint);
-GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage);
-typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer);
-typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
-typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer);
-typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
-typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
-typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params);
-#endif
-
-#ifndef GL_EXT_vertex_shader
-#define GL_EXT_vertex_shader 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBeginVertexShaderEXT (void);
-GLAPI void APIENTRY glEndVertexShaderEXT (void);
-GLAPI void APIENTRY glBindVertexShaderEXT (GLuint);
-GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint);
-GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint);
-GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint);
-GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum);
-GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum);
-GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint);
-GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint);
-GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint);
-GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const GLvoid *);
-GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const GLvoid *);
-GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *);
-GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *);
-GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *);
-GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *);
-GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *);
-GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *);
-GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *);
-GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *);
-GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const GLvoid *);
-GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint);
-GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint);
-GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum);
-GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum);
-GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum);
-GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum);
-GLAPI GLuint APIENTRY glBindParameterEXT (GLenum);
-GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum);
-GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *);
-GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *);
-GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *);
-GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *);
-GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void);
-typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void);
-typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id);
-typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range);
-typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id);
-typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
-typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
-typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
-typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
-typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
-typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
-typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
-typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
-typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
-typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
-typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr);
-typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr);
-typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr);
-typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr);
-typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr);
-typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr);
-typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr);
-typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr);
-typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
-typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
-typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
-typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value);
-typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value);
-typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value);
-typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value);
-typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value);
-typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap);
-typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
-typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
-typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
-typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data);
-typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
-typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
-typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
-typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
-typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
-typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
-#endif
-
-#ifndef GL_ATI_vertex_streams
-#define GL_ATI_vertex_streams 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort);
-GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *);
-GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint);
-GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *);
-GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat);
-GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *);
-GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble);
-GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *);
-GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort);
-GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *);
-GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint);
-GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *);
-GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *);
-GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *);
-GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *);
-GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint);
-GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *);
-GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *);
-GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *);
-GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *);
-GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint);
-GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *);
-GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *);
-GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *);
-GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte);
-GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *);
-GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort);
-GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *);
-GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint);
-GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *);
-GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *);
-GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *);
-GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum);
-GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint);
-GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
-typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream);
-typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param);
-#endif
-
-#ifndef GL_ATI_element_array
-#define GL_ATI_element_array 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *);
-GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei);
-GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count);
-typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
-#endif
-
-#ifndef GL_SUN_mesh_array
-#define GL_SUN_mesh_array 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width);
-#endif
-
-#ifndef GL_SUN_slice_accum
-#define GL_SUN_slice_accum 1
-#endif
-
-#ifndef GL_NV_multisample_filter_hint
-#define GL_NV_multisample_filter_hint 1
-#endif
-
-#ifndef GL_NV_depth_clamp
-#define GL_NV_depth_clamp 1
-#endif
-
-#ifndef GL_NV_occlusion_query
-#define GL_NV_occlusion_query 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *);
-GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *);
-GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint);
-GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint);
-GLAPI void APIENTRY glEndOcclusionQueryNV (void);
-GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *);
-GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
-typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
-typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
-typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
-typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void);
-typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params);
-#endif
-
-#ifndef GL_NV_point_sprite
-#define GL_NV_point_sprite 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint);
-GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param);
-typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
-#endif
-
-#ifndef GL_NV_texture_shader3
-#define GL_NV_texture_shader3 1
-#endif
-
-#ifndef GL_NV_vertex_program1_1
-#define GL_NV_vertex_program1_1 1
-#endif
-
-#ifndef GL_EXT_shadow_funcs
-#define GL_EXT_shadow_funcs 1
-#endif
-
-#ifndef GL_EXT_stencil_two_side
-#define GL_EXT_stencil_two_side 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
-#endif
-
-#ifndef GL_ATI_text_fragment_shader
-#define GL_ATI_text_fragment_shader 1
-#endif
-
-#ifndef GL_APPLE_client_storage
-#define GL_APPLE_client_storage 1
-#endif
-
-#ifndef GL_APPLE_element_array
-#define GL_APPLE_element_array 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glElementPointerAPPLE (GLenum, const GLvoid *);
-GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum, GLint, GLsizei);
-GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, GLint, GLsizei);
-GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum, const GLint *, const GLsizei *, GLsizei);
-GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer);
-typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
-typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
-typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
-typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
-#endif
-
-#ifndef GL_APPLE_fence
-#define GL_APPLE_fence 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glGenFencesAPPLE (GLsizei, GLuint *);
-GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei, const GLuint *);
-GLAPI void APIENTRY glSetFenceAPPLE (GLuint);
-GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint);
-GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint);
-GLAPI void APIENTRY glFinishFenceAPPLE (GLuint);
-GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum, GLuint);
-GLAPI void APIENTRY glFinishObjectAPPLE (GLenum, GLint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences);
-typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences);
-typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence);
-typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence);
-typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
-typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
-typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
-typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name);
-#endif
-
-#ifndef GL_APPLE_vertex_array_object
-#define GL_APPLE_vertex_array_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint);
-GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei, const GLuint *);
-GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei, const GLuint *);
-GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
-typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
-typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
-typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
-#endif
-
-#ifndef GL_APPLE_vertex_array_range
-#define GL_APPLE_vertex_array_range 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei, GLvoid *);
-GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei, GLvoid *);
-GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum, GLint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
-typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
-typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
-#endif
-
-#ifndef GL_APPLE_ycbcr_422
-#define GL_APPLE_ycbcr_422 1
-#endif
-
-#ifndef GL_S3_s3tc
-#define GL_S3_s3tc 1
-#endif
-
-#ifndef GL_ATI_draw_buffers
-#define GL_ATI_draw_buffers 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glDrawBuffersATI (GLsizei, const GLenum *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs);
-#endif
-
-#ifndef GL_ATI_pixel_format_float
-#define GL_ATI_pixel_format_float 1
-/* This is really a WGL extension, but defines some associated GL enums.
- * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string.
- */
-#endif
-
-#ifndef GL_ATI_texture_env_combine3
-#define GL_ATI_texture_env_combine3 1
-#endif
-
-#ifndef GL_ATI_texture_float
-#define GL_ATI_texture_float 1
-#endif
-
-#ifndef GL_NV_float_buffer
-#define GL_NV_float_buffer 1
-#endif
-
-#ifndef GL_NV_fragment_program
-#define GL_NV_fragment_program 1
-/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint, GLsizei, const GLubyte *, const GLfloat *);
-GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint, GLsizei, const GLubyte *, const GLdouble *);
-GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint, GLsizei, const GLubyte *, GLfloat *);
-GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint, GLsizei, const GLubyte *, GLdouble *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
-typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
-typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
-#endif
-
-#ifndef GL_NV_half_float
-#define GL_NV_half_float 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glVertex2hNV (GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glVertex3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glVertex4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glNormal3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glColor4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV);
-GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum, GLhalfNV);
-GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum, const GLhalfNV *);
-GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum, const GLhalfNV *);
-GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum, const GLhalfNV *);
-GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum, const GLhalfNV *);
-GLAPI void APIENTRY glFogCoordhNV (GLhalfNV);
-GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *);
-GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *);
-GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV);
-GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *);
-GLAPI void APIENTRY glVertexAttrib1hNV (GLuint, GLhalfNV);
-GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint, const GLhalfNV *);
-GLAPI void APIENTRY glVertexAttrib2hNV (GLuint, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint, const GLhalfNV *);
-GLAPI void APIENTRY glVertexAttrib3hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint, const GLhalfNV *);
-GLAPI void APIENTRY glVertexAttrib4hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
-GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint, const GLhalfNV *);
-GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint, GLsizei, const GLhalfNV *);
-GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint, GLsizei, const GLhalfNV *);
-GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint, GLsizei, const GLhalfNV *);
-GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint, GLsizei, const GLhalfNV *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y);
-typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z);
-typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
-typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
-typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
-typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
-typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s);
-typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t);
-typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r);
-typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
-typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog);
-typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
-typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
-typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
-#endif
-
-#ifndef GL_NV_pixel_data_range
-#define GL_NV_pixel_data_range 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPixelDataRangeNV (GLenum, GLsizei, GLvoid *);
-GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer);
-typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target);
-#endif
-
-#ifndef GL_NV_primitive_restart
-#define GL_NV_primitive_restart 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glPrimitiveRestartNV (void);
-GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void);
-typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
-#endif
-
-#ifndef GL_NV_texture_expand_normal
-#define GL_NV_texture_expand_normal 1
-#endif
-
-#ifndef GL_NV_vertex_program2
-#define GL_NV_vertex_program2 1
-#endif
-
-#ifndef GL_ATI_map_object_buffer
-#define GL_ATI_map_object_buffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint);
-GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer);
-typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer);
-#endif
-
-#ifndef GL_ATI_separate_stencil
-#define GL_ATI_separate_stencil 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glStencilOpSeparateATI (GLenum, GLenum, GLenum, GLenum);
-GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum, GLenum, GLint, GLuint);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
-typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
-#endif
-
-#ifndef GL_ATI_vertex_attrib_array_object
-#define GL_ATI_vertex_attrib_array_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint);
-GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint, GLenum, GLfloat *);
-GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint, GLenum, GLint *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params);
-#endif
-
-#ifndef GL_OES_read_format
-#define GL_OES_read_format 1
-#endif
-
-#ifndef GL_EXT_depth_bounds_test
-#define GL_EXT_depth_bounds_test 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax);
-#endif
-
-#ifndef GL_EXT_texture_mirror_clamp
-#define GL_EXT_texture_mirror_clamp 1
-#endif
-
-#ifndef GL_EXT_blend_equation_separate
-#define GL_EXT_blend_equation_separate 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum, GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha);
-#endif
-
-#ifndef GL_MESA_pack_invert
-#define GL_MESA_pack_invert 1
-#endif
-
-#ifndef GL_MESA_ycbcr_texture
-#define GL_MESA_ycbcr_texture 1
-#endif
-
-#ifndef GL_EXT_pixel_buffer_object
-#define GL_EXT_pixel_buffer_object 1
-#endif
-
-#ifndef GL_NV_fragment_program_option
-#define GL_NV_fragment_program_option 1
-#endif
-
-#ifndef GL_NV_fragment_program2
-#define GL_NV_fragment_program2 1
-#endif
-
-#ifndef GL_NV_vertex_program2_option
-#define GL_NV_vertex_program2_option 1
-#endif
-
-#ifndef GL_NV_vertex_program3
-#define GL_NV_vertex_program3 1
-#endif
-
-#ifndef GL_EXT_framebuffer_object
-#define GL_EXT_framebuffer_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint);
-GLAPI void APIENTRY glBindRenderbufferEXT (GLenum, GLuint);
-GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei, const GLuint *);
-GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei, GLuint *);
-GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum, GLenum, GLsizei, GLsizei);
-GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum, GLenum, GLint *);
-GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint);
-GLAPI void APIENTRY glBindFramebufferEXT (GLenum, GLuint);
-GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei, const GLuint *);
-GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei, GLuint *);
-GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum);
-GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum, GLenum, GLenum, GLuint, GLint);
-GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum, GLenum, GLenum, GLuint, GLint);
-GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLint);
-GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum, GLenum, GLenum, GLuint);
-GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum, GLenum, GLenum, GLint *);
-GLAPI void APIENTRY glGenerateMipmapEXT (GLenum);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
-typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
-typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers);
-typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers);
-typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
-typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
-typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
-typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers);
-typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers);
-typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target);
-#endif
-
-#ifndef GL_GREMEDY_string_marker
-#define GL_GREMEDY_string_marker 1
-#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei, const GLvoid *);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string);
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/mkglext.py b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/mkglext.py
index 8e64ecd1741..8f4065b3d6a 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/mkglext.py
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/mkglext.py
@@ -1,15 +1,12 @@
#!/usr/bin/python
#
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# mkglext.py generates code for linking extensions.
diff --git a/source/gameengine/Rasterizer/RAS_Polygon.cpp b/source/gameengine/Rasterizer/RAS_Polygon.cpp
index 310c58882c9..852c94def3f 100644
--- a/source/gameengine/Rasterizer/RAS_Polygon.cpp
+++ b/source/gameengine/Rasterizer/RAS_Polygon.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
diff --git a/source/gameengine/Rasterizer/RAS_Polygon.h b/source/gameengine/Rasterizer/RAS_Polygon.h
index 253faec6e95..7ce7926a816 100644
--- a/source/gameengine/Rasterizer/RAS_Polygon.h
+++ b/source/gameengine/Rasterizer/RAS_Polygon.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_POLYGON
#define __RAS_POLYGON
diff --git a/source/gameengine/Rasterizer/RAS_Rect.h b/source/gameengine/Rasterizer/RAS_Rect.h
index 51d8e2cc465..4cd0c636cfd 100644
--- a/source/gameengine/Rasterizer/RAS_Rect.h
+++ b/source/gameengine/Rasterizer/RAS_Rect.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef _RAS_RECT
diff --git a/source/gameengine/Rasterizer/RAS_TexMatrix.h b/source/gameengine/Rasterizer/RAS_TexMatrix.h
index 2aceca4e1ce..9b8be562a0c 100644
--- a/source/gameengine/Rasterizer/RAS_TexMatrix.h
+++ b/source/gameengine/Rasterizer/RAS_TexMatrix.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RASTEXMATRIX
#define __RASTEXMATRIX
diff --git a/source/gameengine/Rasterizer/RAS_TexVert.cpp b/source/gameengine/Rasterizer/RAS_TexVert.cpp
index 79e6cbdb7db..61ac456b2bc 100644
--- a/source/gameengine/Rasterizer/RAS_TexVert.cpp
+++ b/source/gameengine/Rasterizer/RAS_TexVert.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "RAS_TexVert.h"
diff --git a/source/gameengine/Rasterizer/RAS_TexVert.h b/source/gameengine/Rasterizer/RAS_TexVert.h
index b177f096dbc..84135db918f 100644
--- a/source/gameengine/Rasterizer/RAS_TexVert.h
+++ b/source/gameengine/Rasterizer/RAS_TexVert.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __RAS_TEXVERT
#define __RAS_TEXVERT
diff --git a/source/gameengine/Rasterizer/RAS_texmatrix.cpp b/source/gameengine/Rasterizer/RAS_texmatrix.cpp
index 791d6e3dc7d..b9bb6fa923f 100644
--- a/source/gameengine/Rasterizer/RAS_texmatrix.cpp
+++ b/source/gameengine/Rasterizer/RAS_texmatrix.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "RAS_TexMatrix.h"
diff --git a/source/gameengine/Rasterizer/SConscript b/source/gameengine/Rasterizer/SConscript
index 2097540ed7e..c71e371fedc 100644
--- a/source/gameengine/Rasterizer/SConscript
+++ b/source/gameengine/Rasterizer/SConscript
@@ -3,6 +3,10 @@ Import ('env')
sources = env.Glob('*.cpp')
+if env['WITH_BF_GLEXT'] == 1:
+ env['CPPFLAGS'].append('-DWITH_GLEXT')
+
+
incs = '. #source/kernel/gen_system #intern/string #intern/moto/include'
if env['OURPLATFORM']=='win32-vc':
diff --git a/source/gameengine/SceneGraph/CMakeLists.txt b/source/gameengine/SceneGraph/CMakeLists.txt
index 1cc9d7b7acf..0409b8c0ac4 100644
--- a/source/gameengine/SceneGraph/CMakeLists.txt
+++ b/source/gameengine/SceneGraph/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC *.cpp)
diff --git a/source/gameengine/SceneGraph/Makefile b/source/gameengine/SceneGraph/Makefile
index bc184c8faba..acec1b729e8 100644
--- a/source/gameengine/SceneGraph/Makefile
+++ b/source/gameengine/SceneGraph/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/gameengine/SceneGraph/SG_BBox.cpp b/source/gameengine/SceneGraph/SG_BBox.cpp
index 6f06e9b0424..4bd2805978e 100644
--- a/source/gameengine/SceneGraph/SG_BBox.cpp
+++ b/source/gameengine/SceneGraph/SG_BBox.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Bounding Box
*/
diff --git a/source/gameengine/SceneGraph/SG_BBox.h b/source/gameengine/SceneGraph/SG_BBox.h
index 5a4d396faf1..b7e8ff65865 100644
--- a/source/gameengine/SceneGraph/SG_BBox.h
+++ b/source/gameengine/SceneGraph/SG_BBox.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Bounding Box
*/
diff --git a/source/gameengine/SceneGraph/SG_Controller.cpp b/source/gameengine/SceneGraph/SG_Controller.cpp
index 86dbc7c2c42..4b644297f06 100644
--- a/source/gameengine/SceneGraph/SG_Controller.cpp
+++ b/source/gameengine/SceneGraph/SG_Controller.cpp
@@ -1,15 +1,12 @@
/**
* @file SG_Controller.cpp
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SG_Controller.h"
diff --git a/source/gameengine/SceneGraph/SG_Controller.h b/source/gameengine/SceneGraph/SG_Controller.h
index b5bb6943479..d65a2f0c256 100644
--- a/source/gameengine/SceneGraph/SG_Controller.h
+++ b/source/gameengine/SceneGraph/SG_Controller.h
@@ -3,15 +3,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,7 +26,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SG_CONTROLLER_H
diff --git a/source/gameengine/SceneGraph/SG_IObject.cpp b/source/gameengine/SceneGraph/SG_IObject.cpp
index 4787847da0d..c347bbc6d9a 100644
--- a/source/gameengine/SceneGraph/SG_IObject.cpp
+++ b/source/gameengine/SceneGraph/SG_IObject.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SG_IObject.h"
diff --git a/source/gameengine/SceneGraph/SG_IObject.h b/source/gameengine/SceneGraph/SG_IObject.h
index b0c1d64cf69..438ab48c556 100644
--- a/source/gameengine/SceneGraph/SG_IObject.h
+++ b/source/gameengine/SceneGraph/SG_IObject.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SG_IOBJECT
#define __SG_IOBJECT
diff --git a/source/gameengine/SceneGraph/SG_Node.cpp b/source/gameengine/SceneGraph/SG_Node.cpp
index aaacd43646b..73e16863173 100644
--- a/source/gameengine/SceneGraph/SG_Node.cpp
+++ b/source/gameengine/SceneGraph/SG_Node.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SG_Node.h"
diff --git a/source/gameengine/SceneGraph/SG_Node.h b/source/gameengine/SceneGraph/SG_Node.h
index 7ba13cc0a87..4808f6f7d94 100644
--- a/source/gameengine/SceneGraph/SG_Node.h
+++ b/source/gameengine/SceneGraph/SG_Node.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SG_NODE_H
#define __SG_NODE_H
diff --git a/source/gameengine/SceneGraph/SG_ParentRelation.h b/source/gameengine/SceneGraph/SG_ParentRelation.h
index d4a8e7e8cb3..1d211a9f39f 100644
--- a/source/gameengine/SceneGraph/SG_ParentRelation.h
+++ b/source/gameengine/SceneGraph/SG_ParentRelation.h
@@ -20,15 +20,12 @@
*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -46,7 +43,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
diff --git a/source/gameengine/SceneGraph/SG_Spatial.cpp b/source/gameengine/SceneGraph/SG_Spatial.cpp
index 6ad5cf9912a..18049592977 100644
--- a/source/gameengine/SceneGraph/SG_Spatial.cpp
+++ b/source/gameengine/SceneGraph/SG_Spatial.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "SG_Node.h"
diff --git a/source/gameengine/SceneGraph/SG_Spatial.h b/source/gameengine/SceneGraph/SG_Spatial.h
index 1f1e97a5b56..a70784472a7 100644
--- a/source/gameengine/SceneGraph/SG_Spatial.h
+++ b/source/gameengine/SceneGraph/SG_Spatial.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __SG_SPATIAL_H
diff --git a/source/gameengine/SceneGraph/SG_Tree.cpp b/source/gameengine/SceneGraph/SG_Tree.cpp
index 0bad621ff07..2704ab36179 100644
--- a/source/gameengine/SceneGraph/SG_Tree.cpp
+++ b/source/gameengine/SceneGraph/SG_Tree.cpp
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Bounding Box
*/
diff --git a/source/gameengine/SceneGraph/SG_Tree.h b/source/gameengine/SceneGraph/SG_Tree.h
index 0877668c53d..4741af83aae 100644
--- a/source/gameengine/SceneGraph/SG_Tree.h
+++ b/source/gameengine/SceneGraph/SG_Tree.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Bounding Box
*/
diff --git a/source/icons/Makefile b/source/icons/Makefile
index 684c2eefb28..a31ae9a56c7 100644
--- a/source/icons/Makefile
+++ b/source/icons/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/kernel/CMakeLists.txt b/source/kernel/CMakeLists.txt
index fbfa7bd0329..3d966152cc5 100644
--- a/source/kernel/CMakeLists.txt
+++ b/source/kernel/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
SET(INC gen_messaging gen_system ../../intern/string ../../intern/moto/include)
diff --git a/source/kernel/Makefile b/source/kernel/Makefile
index 51d31f2f6ac..b71491b46d1 100644
--- a/source/kernel/Makefile
+++ b/source/kernel/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Make module object directory and bounce make to subdirectories.
diff --git a/source/kernel/gen_messaging/GEN_messaging.h b/source/kernel/gen_messaging/GEN_messaging.h
index b4b20c21cd9..b029f708b81 100644
--- a/source/kernel/gen_messaging/GEN_messaging.h
+++ b/source/kernel/gen_messaging/GEN_messaging.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef GEN_MESSAGING_H
#define GEN_MESSAGING_H
diff --git a/source/kernel/gen_messaging/Makefile b/source/kernel/gen_messaging/Makefile
index d8420531e05..f94f6f082dd 100644
--- a/source/kernel/gen_messaging/Makefile
+++ b/source/kernel/gen_messaging/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounces make to subdirectories.
diff --git a/source/kernel/gen_messaging/intern/Makefile b/source/kernel/gen_messaging/intern/Makefile
index 8b204800650..f88bcd53c6e 100644
--- a/source/kernel/gen_messaging/intern/Makefile
+++ b/source/kernel/gen_messaging/intern/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/kernel/gen_messaging/intern/messaging.c b/source/kernel/gen_messaging/intern/messaging.c
index b5b4cd27481..fa951ab1801 100644
--- a/source/kernel/gen_messaging/intern/messaging.c
+++ b/source/kernel/gen_messaging/intern/messaging.c
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* A message and error sink for c and c++
*/
diff --git a/source/kernel/gen_system/GEN_DataCache.h b/source/kernel/gen_system/GEN_DataCache.h
index 7e4e0127c63..3a1ae963f05 100644
--- a/source/kernel/gen_system/GEN_DataCache.h
+++ b/source/kernel/gen_system/GEN_DataCache.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef __GEN_DATACACHE_H
#define __GEN_DATACACHE_H
diff --git a/source/kernel/gen_system/GEN_HashedPtr.cpp b/source/kernel/gen_system/GEN_HashedPtr.cpp
index 4da40e6696d..49ccb252246 100644
--- a/source/kernel/gen_system/GEN_HashedPtr.cpp
+++ b/source/kernel/gen_system/GEN_HashedPtr.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
#include "GEN_HashedPtr.h"
diff --git a/source/kernel/gen_system/GEN_HashedPtr.h b/source/kernel/gen_system/GEN_HashedPtr.h
index 51a89905409..777ec76e067 100644
--- a/source/kernel/gen_system/GEN_HashedPtr.h
+++ b/source/kernel/gen_system/GEN_HashedPtr.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
*/
#ifndef __GEN_HASHEDPTR
diff --git a/source/kernel/gen_system/GEN_Map.h b/source/kernel/gen_system/GEN_Map.h
index f6823252fb1..f9c14800499 100644
--- a/source/kernel/gen_system/GEN_Map.h
+++ b/source/kernel/gen_system/GEN_Map.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef GEN_MAP_H
#define GEN_MAP_H
diff --git a/source/kernel/gen_system/GEN_Matrix4x4.cpp b/source/kernel/gen_system/GEN_Matrix4x4.cpp
index 4b941648e49..8ff152d0494 100644
--- a/source/kernel/gen_system/GEN_Matrix4x4.cpp
+++ b/source/kernel/gen_system/GEN_Matrix4x4.cpp
@@ -1,14 +1,11 @@
/**
* $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +23,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#include "GEN_Matrix4x4.h"
diff --git a/source/kernel/gen_system/GEN_Matrix4x4.h b/source/kernel/gen_system/GEN_Matrix4x4.h
index 8fc1539f777..fa7f5f88e11 100644
--- a/source/kernel/gen_system/GEN_Matrix4x4.h
+++ b/source/kernel/gen_system/GEN_Matrix4x4.h
@@ -1,15 +1,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*/
#ifndef GEN_MATRIX4X4
#define GEN_MATRIX4X4
diff --git a/source/kernel/gen_system/GEN_SmartPtr.h b/source/kernel/gen_system/GEN_SmartPtr.h
index 88dc93528f2..97236a361a7 100644
--- a/source/kernel/gen_system/GEN_SmartPtr.h
+++ b/source/kernel/gen_system/GEN_SmartPtr.h
@@ -4,15 +4,12 @@
/**
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,7 +27,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
*
* @author Laurence
*/
diff --git a/source/kernel/gen_system/Makefile b/source/kernel/gen_system/Makefile
index cdaf8e8e598..855af376615 100644
--- a/source/kernel/gen_system/Makefile
+++ b/source/kernel/gen_system/Makefile
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
#
diff --git a/source/kernel/gen_system/SYS_SingletonSystem.cpp b/source/kernel/gen_system/SYS_SingletonSystem.cpp
index b65ba69ec42..47e35cf84d8 100644
--- a/source/kernel/gen_system/SYS_SingletonSystem.cpp
+++ b/source/kernel/gen_system/SYS_SingletonSystem.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Unique instance of system class for system specific information / access
* Used by SYS_System
*/
diff --git a/source/kernel/gen_system/SYS_SingletonSystem.h b/source/kernel/gen_system/SYS_SingletonSystem.h
index 2d0d7088b76..175656ac4ed 100644
--- a/source/kernel/gen_system/SYS_SingletonSystem.h
+++ b/source/kernel/gen_system/SYS_SingletonSystem.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* Unique instance of system class for system specific information / access
* Used by SYS_System
*/
diff --git a/source/kernel/gen_system/SYS_System.cpp b/source/kernel/gen_system/SYS_System.cpp
index 84cd61f0ba6..bce5fea9d96 100644
--- a/source/kernel/gen_system/SYS_System.cpp
+++ b/source/kernel/gen_system/SYS_System.cpp
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* System specific information / access.
* Interface to the commandline arguments
*/
diff --git a/source/kernel/gen_system/SYS_System.h b/source/kernel/gen_system/SYS_System.h
index 4125b662d2b..b4561dcd49a 100644
--- a/source/kernel/gen_system/SYS_System.h
+++ b/source/kernel/gen_system/SYS_System.h
@@ -1,15 +1,12 @@
/*
* $Id$
*
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
*
* Contributor(s): none yet.
*
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
* System specific information / access.
* Interface to the commandline arguments
*/
diff --git a/source/nan_compile.mk b/source/nan_compile.mk
index 665fdd3939b..151c741e8b4 100644
--- a/source/nan_compile.mk
+++ b/source/nan_compile.mk
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Compile and archive
diff --git a/source/nan_definitions.mk b/source/nan_definitions.mk
index 36b140c1ffb..43345817f2e 100644
--- a/source/nan_definitions.mk
+++ b/source/nan_definitions.mk
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# set some defaults when these are not overruled (?=) by environment variables
#
@@ -59,6 +56,9 @@ all debug::
# Object Config_Guess DIRectory
export OCGDIR = $(NAN_OBJDIR)/$(CONFIG_GUESS)
+ export WITH_GLEXT?=true
+ export WITH_BF_GLEXT?=$(WITH_GLEXT)
+
# Determines what targets are built
export WITH_BF_DYNAMICOPENGL ?= true
export WITH_BF_STATICOPENGL ?= false
@@ -138,7 +138,7 @@ endif
ifeq ($(WITH_OPENEXR), true)
NAN_OPENEXR?=$(shell pkg-config --variable=prefix OpenEXR )
NAN_OPENEXR_INC?=$(shell pkg-config --cflags OpenEXR )
- NAN_OPENEXR_LIBS?=$(addprefix ${NAN_OPENEXR}/lib/lib,$(addsuffix .a,$(shell pkg-config --libs OpenEXR | sed -s "s/-l//g" )))
+ NAN_OPENEXR_LIBS?=$(addprefix ${NAN_OPENEXR}/lib/lib,$(addsuffix .a,$(shell pkg-config --libs-only-l OpenEXR | sed -s "s/-l//g" )))
endif
else
ifeq ($(OS), solaris)
diff --git a/source/nan_link.mk b/source/nan_link.mk
index 1d1e496a9e5..8dda3b8c2df 100644
--- a/source/nan_link.mk
+++ b/source/nan_link.mk
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# linking only
diff --git a/source/nan_subdirs.mk b/source/nan_subdirs.mk
index aab88cc292b..85360eab7bc 100644
--- a/source/nan_subdirs.mk
+++ b/source/nan_subdirs.mk
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# Bounce make to subdirectories.
# Set DIRS, SOURCEDIR. Optionally also reacts on DIR, TESTDIRS.
diff --git a/source/nan_warn.mk b/source/nan_warn.mk
index ee01f47f549..97a8bbf09e4 100644
--- a/source/nan_warn.mk
+++ b/source/nan_warn.mk
@@ -1,15 +1,12 @@
#
# $Id$
#
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
#
# Contributor(s): none yet.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
+# ***** END GPL LICENSE BLOCK *****
#
# NaN compiler and linker warning levels
# On some platforms, you will be flooded with system include file warnings.
diff --git a/tools/Blender.py b/tools/Blender.py
index 967bf1fcd3c..30e9979cf9a 100644
--- a/tools/Blender.py
+++ b/tools/Blender.py
@@ -152,6 +152,8 @@ def setup_syslibs(lenv):
syslibs += Split(lenv['BF_GETTEXT_LIB'])
if lenv['WITH_BF_OPENAL']:
syslibs += Split(lenv['BF_OPENAL_LIB'])
+ if lenv['WITH_BF_OPENMP'] and lenv['CC'] != 'icc':
+ syslibs += ['gomp']
if lenv['WITH_BF_ICONV']:
syslibs += Split(lenv['BF_ICONV_LIB'])
if lenv['WITH_BF_OPENEXR']:
diff --git a/tools/btools.py b/tools/btools.py
index 35b9682f6a3..d42e4994fb5 100755
--- a/tools/btools.py
+++ b/tools/btools.py
@@ -48,6 +48,7 @@ def validate_arguments(args, bc):
'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC', 'BF_OPENGL_LINKFLAGS',
'WITH_BF_FTGL', 'BF_FTGL', 'BF_FTGL_INC', 'BF_FTGL_LIB',
'WITH_BF_PLAYER',
+ 'WITH_BF_GLEXT',
'WITH_BF_BINRELOC',
'CFLAGS', 'CCFLAGS', 'CPPFLAGS',
'REL_CFLAGS', 'REL_CCFLAGS',
@@ -272,6 +273,7 @@ def read_opts(cfg, args):
('BF_FTGL_INC', 'FTGL include path', ''),
('BF_FTGL_LIB', 'FTGL libraries', ''),
+ (BoolOption('WITH_BF_GLEXT', 'Enable GL Extensions', 'true')),
(BoolOption('WITH_BF_PLAYER', 'Build blenderplayer if true', 'false')),
('CFLAGS', 'C-compiler flags', ''),