diff options
author | Maxime Curioni <maxime.curioni@gmail.com> | 2008-05-05 20:56:44 +0400 |
---|---|---|
committer | Maxime Curioni <maxime.curioni@gmail.com> | 2008-05-05 20:56:44 +0400 |
commit | ec906913842a9b56805b010153295419f198ed6a (patch) | |
tree | 1499a319c77b12f19ca8c717f7185f8211b7adb9 | |
parent | 1cf33787932aabc9e2d812f4cf50655059dcbff2 (diff) | |
parent | 945a083e70b79d361f5a9b1be76c9722565c9fe8 (diff) |
merge to 14689, Freestyle library changes, SConscript start
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | SConstruct | 17 | ||||
-rw-r--r-- | config/darwin-config.py | 20 | ||||
-rw-r--r-- | config/win32-vc-config.py | 1 | ||||
-rw-r--r-- | extern/verse/dist/v_bignum.c | 2 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_SystemCarbon.cpp | 20 | ||||
-rw-r--r-- | projectfiles_vc7/gameengine/blenderhook/KX_blenderhook.vcproj | 2 | ||||
-rw-r--r-- | projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj | 2 | ||||
-rw-r--r-- | projectfiles_vc7/gameengine/rasterizer/RAS_rasterizer.vcproj | 2 | ||||
-rw-r--r-- | projectfiles_vc7/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.vcproj | 2 | ||||
-rw-r--r-- | release/scripts/console.py | 14 | ||||
-rw-r--r-- | release/scripts/wizard_curve2tree.py | 4 | ||||
-rw-r--r-- | release/scripts/x3d_export.py | 1780 | ||||
-rw-r--r-- | source/blender/SConscript | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_node.h | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/image.c | 25 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/library.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mball.c | 64 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/packedFile.c | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/particle_system.c | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/pointcache.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/sound.c | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/text.c | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/writeavi.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/writeffmpeg.c | 3 | ||||
-rw-r--r-- | source/blender/blenlib/BLI_blenlib.h | 3 | ||||
-rw-r--r-- | source/blender/blenlib/intern/bpath.c | 4 | ||||
-rw-r--r-- | source/blender/blenlib/intern/util.c | 128 | ||||
-rw-r--r-- | source/blender/blenloader/intern/genfile.c | 24 | ||||
-rwxr-xr-x | source/blender/freestyle/AUTHORS.TXT (renamed from extern/freestyle/AUTHORS.TXT) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/BUGS.TXT (renamed from extern/freestyle/BUGS.TXT) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/CHANGELOG.TXT | 47 | ||||
-rwxr-xr-x | source/blender/freestyle/COPYRIGHT.TXT (renamed from extern/freestyle/COPYRIGHT.TXT) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/INSTALL.TXT (renamed from extern/freestyle/INSTALL.TXT) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/LICENSE.TXT (renamed from extern/freestyle/LICENSE.TXT) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/README.TXT (renamed from extern/freestyle/README.TXT) | 0 | ||||
-rw-r--r-- | source/blender/freestyle/SConscript | 10 | ||||
-rwxr-xr-x | source/blender/freestyle/THANKS.TXT (renamed from extern/freestyle/THANKS.TXT) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/TODO.TXT (renamed from extern/freestyle/TODO.TXT) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/Config.pri (renamed from extern/freestyle/src/Config.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/Freestyle-vc7-debug.sln (renamed from extern/freestyle/src/Freestyle-vc7-debug.sln) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/Freestyle-vc7-release.sln (renamed from extern/freestyle/src/Freestyle-vc7-release.sln) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/Freestyle-vc8-debug.sln (renamed from extern/freestyle/src/Freestyle-vc8-debug.sln) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/Freestyle-vc8-release.sln (renamed from extern/freestyle/src/Freestyle-vc8-release.sln) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/Makefile.pro (renamed from extern/freestyle/src/Makefile.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppAboutWindow.cpp (renamed from extern/freestyle/src/app/AppAboutWindow.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppAboutWindow.h (renamed from extern/freestyle/src/app/AppAboutWindow.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppCanvas.cpp (renamed from extern/freestyle/src/app/AppCanvas.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppCanvas.h (renamed from extern/freestyle/src/app/AppCanvas.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppConfig.cpp (renamed from extern/freestyle/src/app/AppConfig.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppConfig.h (renamed from extern/freestyle/src/app/AppConfig.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppDensityCurvesWindow.cpp (renamed from extern/freestyle/src/app/AppDensityCurvesWindow.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppDensityCurvesWindow.h (renamed from extern/freestyle/src/app/AppDensityCurvesWindow.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppGL2DCurvesViewer.cpp (renamed from extern/freestyle/src/app/AppGL2DCurvesViewer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppGL2DCurvesViewer.h (renamed from extern/freestyle/src/app/AppGL2DCurvesViewer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppGLWidget.cpp (renamed from extern/freestyle/src/app/AppGLWidget.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppGLWidget.h (renamed from extern/freestyle/src/app/AppGLWidget.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppInteractiveShaderWindow.cpp (renamed from extern/freestyle/src/app/AppInteractiveShaderWindow.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppInteractiveShaderWindow.h (renamed from extern/freestyle/src/app/AppInteractiveShaderWindow.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppMainWindow.cpp (renamed from extern/freestyle/src/app/AppMainWindow.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppMainWindow.h (renamed from extern/freestyle/src/app/AppMainWindow.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppOptionsWindow.cpp (renamed from extern/freestyle/src/app/AppOptionsWindow.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppOptionsWindow.h (renamed from extern/freestyle/src/app/AppOptionsWindow.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppProgressBar.cpp (renamed from extern/freestyle/src/app/AppProgressBar.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppProgressBar.h (renamed from extern/freestyle/src/app/AppProgressBar.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppStyleWindow.cpp (renamed from extern/freestyle/src/app/AppStyleWindow.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/AppStyleWindow.h (renamed from extern/freestyle/src/app/AppStyleWindow.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/ConfigIO.cpp (renamed from extern/freestyle/src/app/ConfigIO.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/ConfigIO.h (renamed from extern/freestyle/src/app/ConfigIO.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/Controller.cpp (renamed from extern/freestyle/src/app/Controller.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/Controller.h (renamed from extern/freestyle/src/app/Controller.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/Main.cpp (renamed from extern/freestyle/src/app/Main.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/QGLBasicWidget.cpp (renamed from extern/freestyle/src/app/QGLBasicWidget.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/QGLBasicWidget.h (renamed from extern/freestyle/src/app/QGLBasicWidget.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/QStyleModuleSyntaxHighlighter.cpp (renamed from extern/freestyle/src/app/QStyleModuleSyntaxHighlighter.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/QStyleModuleSyntaxHighlighter.h (renamed from extern/freestyle/src/app/QStyleModuleSyntaxHighlighter.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/app.pro (renamed from extern/freestyle/src/app/app.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/appmainwindowbase4.ui (renamed from extern/freestyle/src/app/appmainwindowbase4.ui) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/densitycurveswindow4.ui (renamed from extern/freestyle/src/app/densitycurveswindow4.ui) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/freestyle.qrc (renamed from extern/freestyle/src/app/freestyle.qrc) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/add.png (renamed from extern/freestyle/src/app/icons/add.png) | bin | 400 -> 400 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/arrow_down.png (renamed from extern/freestyle/src/app/icons/arrow_down.png) | bin | 813 -> 813 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/arrow_left.png (renamed from extern/freestyle/src/app/icons/arrow_left.png) | bin | 776 -> 776 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/arrow_right.png (renamed from extern/freestyle/src/app/icons/arrow_right.png) | bin | 773 -> 773 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/arrow_up.png (renamed from extern/freestyle/src/app/icons/arrow_up.png) | bin | 782 -> 782 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/clear.png (renamed from extern/freestyle/src/app/icons/clear.png) | bin | 1057 -> 1057 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/close.png (renamed from extern/freestyle/src/app/icons/close.png) | bin | 1437 -> 1437 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/edit.png (renamed from extern/freestyle/src/app/icons/edit.png) | bin | 896 -> 896 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/eye0.png (renamed from extern/freestyle/src/app/icons/eye0.png) | bin | 406 -> 406 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/eye1.png (renamed from extern/freestyle/src/app/icons/eye1.png) | bin | 402 -> 402 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/folder.png (renamed from extern/freestyle/src/app/icons/folder.png) | bin | 1015 -> 1015 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/home.png (renamed from extern/freestyle/src/app/icons/home.png) | bin | 1050 -> 1050 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/mod0.png (renamed from extern/freestyle/src/app/icons/mod0.png) | bin | 910 -> 910 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/mod1.png (renamed from extern/freestyle/src/app/icons/mod1.png) | bin | 1051 -> 1051 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/ok.png (renamed from extern/freestyle/src/app/icons/ok.png) | bin | 769 -> 769 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/reload.png (renamed from extern/freestyle/src/app/icons/reload.png) | bin | 1113 -> 1113 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/remove.png (renamed from extern/freestyle/src/app/icons/remove.png) | bin | 375 -> 375 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/save.png (renamed from extern/freestyle/src/app/icons/save.png) | bin | 1329 -> 1329 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/icons/save_as.png (renamed from extern/freestyle/src/app/icons/save_as.png) | bin | 1024 -> 1024 bytes | |||
-rwxr-xr-x | source/blender/freestyle/src/app/interactiveshaderwindow4.ui (renamed from extern/freestyle/src/app/interactiveshaderwindow4.ui) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/optionswindow4.ui (renamed from extern/freestyle/src/app/optionswindow4.ui) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/progressdialog4.ui (renamed from extern/freestyle/src/app/progressdialog4.ui) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/src.pri (renamed from extern/freestyle/src/app/src.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/app/stylewindow4.ui (renamed from extern/freestyle/src/app/stylewindow4.ui) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/build_bundle.macosx.py (renamed from extern/freestyle/src/build_bundle.macosx.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/BBox.h (renamed from extern/freestyle/src/geometry/BBox.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/Bezier.cpp (renamed from extern/freestyle/src/geometry/Bezier.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/Bezier.h (renamed from extern/freestyle/src/geometry/Bezier.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/FastGrid.cpp (renamed from extern/freestyle/src/geometry/FastGrid.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/FastGrid.h (renamed from extern/freestyle/src/geometry/FastGrid.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/FitCurve.cpp (renamed from extern/freestyle/src/geometry/FitCurve.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/FitCurve.h (renamed from extern/freestyle/src/geometry/FitCurve.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/Geom.h (renamed from extern/freestyle/src/geometry/Geom.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/GeomCleaner.cpp (renamed from extern/freestyle/src/geometry/GeomCleaner.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/GeomCleaner.h (renamed from extern/freestyle/src/geometry/GeomCleaner.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/GeomUtils.cpp (renamed from extern/freestyle/src/geometry/GeomUtils.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/GeomUtils.h (renamed from extern/freestyle/src/geometry/GeomUtils.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/Grid.cpp (renamed from extern/freestyle/src/geometry/Grid.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/Grid.h (renamed from extern/freestyle/src/geometry/Grid.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/HashGrid.cpp (renamed from extern/freestyle/src/geometry/HashGrid.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/HashGrid.h (renamed from extern/freestyle/src/geometry/HashGrid.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/Noise.cpp (renamed from extern/freestyle/src/geometry/Noise.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/Noise.h (renamed from extern/freestyle/src/geometry/Noise.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/Polygon.h (renamed from extern/freestyle/src/geometry/Polygon.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/SweepLine.h (renamed from extern/freestyle/src/geometry/SweepLine.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/VecMat.h (renamed from extern/freestyle/src/geometry/VecMat.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/geometry.pro (renamed from extern/freestyle/src/geometry/geometry.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/matrix_util.cpp (renamed from extern/freestyle/src/geometry/matrix_util.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/matrix_util.h (renamed from extern/freestyle/src/geometry/matrix_util.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/normal_cycle.cpp (renamed from extern/freestyle/src/geometry/normal_cycle.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/normal_cycle.h (renamed from extern/freestyle/src/geometry/normal_cycle.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/geometry/src.pri (renamed from extern/freestyle/src/geometry/src.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/image/GaussianFilter.cpp (renamed from extern/freestyle/src/image/GaussianFilter.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/image/GaussianFilter.h (renamed from extern/freestyle/src/image/GaussianFilter.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/image/Image.h (renamed from extern/freestyle/src/image/Image.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/image/ImagePyramid.cpp (renamed from extern/freestyle/src/image/ImagePyramid.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/image/ImagePyramid.h (renamed from extern/freestyle/src/image/ImagePyramid.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/image/image.pro (renamed from extern/freestyle/src/image/image.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/image/src.pri (renamed from extern/freestyle/src/image/src.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/libconfig.pri (renamed from extern/freestyle/src/libconfig.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/makedsp.vcnet.debug.bat (renamed from extern/freestyle/src/makedsp.vcnet.debug.bat) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/makedsp.vcnet.release.bat (renamed from extern/freestyle/src/makedsp.vcnet.release.bat) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLBBoxRenderer.cpp (renamed from extern/freestyle/src/rendering/GLBBoxRenderer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLBBoxRenderer.h (renamed from extern/freestyle/src/rendering/GLBBoxRenderer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLDebugRenderer.cpp (renamed from extern/freestyle/src/rendering/GLDebugRenderer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLDebugRenderer.h (renamed from extern/freestyle/src/rendering/GLDebugRenderer.h) | 0 | ||||
-rw-r--r-- | source/blender/freestyle/src/rendering/GLFreeMemoryVisitor.cpp (renamed from extern/freestyle/src/rendering/GLFreeMemoryVisitor.cpp) | 0 | ||||
-rw-r--r-- | source/blender/freestyle/src/rendering/GLFreeMemoryVisitor.h (renamed from extern/freestyle/src/rendering/GLFreeMemoryVisitor.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLMonoColorRenderer.cpp (renamed from extern/freestyle/src/rendering/GLMonoColorRenderer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLMonoColorRenderer.h (renamed from extern/freestyle/src/rendering/GLMonoColorRenderer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLRenderer.cpp (renamed from extern/freestyle/src/rendering/GLRenderer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLRenderer.h (renamed from extern/freestyle/src/rendering/GLRenderer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLSelectRenderer.cpp (renamed from extern/freestyle/src/rendering/GLSelectRenderer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLSelectRenderer.h (renamed from extern/freestyle/src/rendering/GLSelectRenderer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLStrokeRenderer.cpp (renamed from extern/freestyle/src/rendering/GLStrokeRenderer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLStrokeRenderer.h (renamed from extern/freestyle/src/rendering/GLStrokeRenderer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLUtils.cpp (renamed from extern/freestyle/src/rendering/GLUtils.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLUtils.h (renamed from extern/freestyle/src/rendering/GLUtils.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLXOffscreenViewer.cpp (renamed from extern/freestyle/src/rendering/GLXOffscreenViewer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/GLXOffscreenViewer.h (renamed from extern/freestyle/src/rendering/GLXOffscreenViewer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/extgl.cpp (renamed from extern/freestyle/src/rendering/extgl.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/extgl.h (renamed from extern/freestyle/src/rendering/extgl.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/pbuffer.cpp (renamed from extern/freestyle/src/rendering/pbuffer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/pbuffer.h (renamed from extern/freestyle/src/rendering/pbuffer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/rendering.pro (renamed from extern/freestyle/src/rendering/rendering.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/rendering/src.pri (renamed from extern/freestyle/src/rendering/src.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/DrawingStyle.h (renamed from extern/freestyle/src/scene_graph/DrawingStyle.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/IndexedFaceSet.cpp (renamed from extern/freestyle/src/scene_graph/IndexedFaceSet.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/IndexedFaceSet.h (renamed from extern/freestyle/src/scene_graph/IndexedFaceSet.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/LineRep.cpp (renamed from extern/freestyle/src/scene_graph/LineRep.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/LineRep.h (renamed from extern/freestyle/src/scene_graph/LineRep.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/Material.h (renamed from extern/freestyle/src/scene_graph/Material.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/MaxFileLoader.cpp (renamed from extern/freestyle/src/scene_graph/MaxFileLoader.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/MaxFileLoader.h (renamed from extern/freestyle/src/scene_graph/MaxFileLoader.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/Node.h (renamed from extern/freestyle/src/scene_graph/Node.h) | 0 | ||||
-rw-r--r-- | source/blender/freestyle/src/scene_graph/NodeCamera.cpp (renamed from extern/freestyle/src/scene_graph/NodeCamera.cpp) | 0 | ||||
-rw-r--r-- | source/blender/freestyle/src/scene_graph/NodeCamera.h (renamed from extern/freestyle/src/scene_graph/NodeCamera.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeDrawingStyle.cpp (renamed from extern/freestyle/src/scene_graph/NodeDrawingStyle.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeDrawingStyle.h (renamed from extern/freestyle/src/scene_graph/NodeDrawingStyle.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeGroup.cpp (renamed from extern/freestyle/src/scene_graph/NodeGroup.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeGroup.h (renamed from extern/freestyle/src/scene_graph/NodeGroup.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeLight.cpp (renamed from extern/freestyle/src/scene_graph/NodeLight.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeLight.h (renamed from extern/freestyle/src/scene_graph/NodeLight.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeShape.cpp (renamed from extern/freestyle/src/scene_graph/NodeShape.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeShape.h (renamed from extern/freestyle/src/scene_graph/NodeShape.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeTransform.cpp (renamed from extern/freestyle/src/scene_graph/NodeTransform.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/NodeTransform.h (renamed from extern/freestyle/src/scene_graph/NodeTransform.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/OrientedLineRep.cpp (renamed from extern/freestyle/src/scene_graph/OrientedLineRep.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/OrientedLineRep.h (renamed from extern/freestyle/src/scene_graph/OrientedLineRep.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/Rep.cpp (renamed from extern/freestyle/src/scene_graph/Rep.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/Rep.h (renamed from extern/freestyle/src/scene_graph/Rep.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/ScenePrettyPrinter.cpp (renamed from extern/freestyle/src/scene_graph/ScenePrettyPrinter.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/ScenePrettyPrinter.h (renamed from extern/freestyle/src/scene_graph/ScenePrettyPrinter.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/SceneVisitor.cpp (renamed from extern/freestyle/src/scene_graph/SceneVisitor.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/SceneVisitor.h (renamed from extern/freestyle/src/scene_graph/SceneVisitor.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/TriangleRep.cpp (renamed from extern/freestyle/src/scene_graph/TriangleRep.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/TriangleRep.h (renamed from extern/freestyle/src/scene_graph/TriangleRep.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/VertexRep.cpp (renamed from extern/freestyle/src/scene_graph/VertexRep.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/VertexRep.h (renamed from extern/freestyle/src/scene_graph/VertexRep.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/scene_graph.pro (renamed from extern/freestyle/src/scene_graph/scene_graph.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/scene_graph/src.pri (renamed from extern/freestyle/src/scene_graph/src.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/AdvancedFunctions0D.cpp (renamed from extern/freestyle/src/stroke/AdvancedFunctions0D.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/AdvancedFunctions0D.h (renamed from extern/freestyle/src/stroke/AdvancedFunctions0D.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/AdvancedFunctions1D.cpp (renamed from extern/freestyle/src/stroke/AdvancedFunctions1D.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/AdvancedFunctions1D.h (renamed from extern/freestyle/src/stroke/AdvancedFunctions1D.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/AdvancedPredicates1D.h (renamed from extern/freestyle/src/stroke/AdvancedPredicates1D.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/AdvancedStrokeShaders.cpp (renamed from extern/freestyle/src/stroke/AdvancedStrokeShaders.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/AdvancedStrokeShaders.h (renamed from extern/freestyle/src/stroke/AdvancedStrokeShaders.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/BasicStrokeShaders.cpp (renamed from extern/freestyle/src/stroke/BasicStrokeShaders.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/BasicStrokeShaders.h (renamed from extern/freestyle/src/stroke/BasicStrokeShaders.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Canvas.cpp (renamed from extern/freestyle/src/stroke/Canvas.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Canvas.h (renamed from extern/freestyle/src/stroke/Canvas.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Chain.cpp (renamed from extern/freestyle/src/stroke/Chain.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Chain.h (renamed from extern/freestyle/src/stroke/Chain.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/ChainingIterators.cpp (renamed from extern/freestyle/src/stroke/ChainingIterators.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/ChainingIterators.h (renamed from extern/freestyle/src/stroke/ChainingIterators.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/ContextFunctions.cpp (renamed from extern/freestyle/src/stroke/ContextFunctions.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/ContextFunctions.h (renamed from extern/freestyle/src/stroke/ContextFunctions.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Curve.cpp (renamed from extern/freestyle/src/stroke/Curve.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Curve.h (renamed from extern/freestyle/src/stroke/Curve.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/CurveAdvancedIterators.h (renamed from extern/freestyle/src/stroke/CurveAdvancedIterators.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/CurveIterators.h (renamed from extern/freestyle/src/stroke/CurveIterators.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Modifiers.h (renamed from extern/freestyle/src/stroke/Modifiers.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Module.h (renamed from extern/freestyle/src/stroke/Module.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Operators.cpp (renamed from extern/freestyle/src/stroke/Operators.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Operators.h (renamed from extern/freestyle/src/stroke/Operators.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/PSStrokeRenderer.cpp (renamed from extern/freestyle/src/stroke/PSStrokeRenderer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/PSStrokeRenderer.h (renamed from extern/freestyle/src/stroke/PSStrokeRenderer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Predicates0D.h (renamed from extern/freestyle/src/stroke/Predicates0D.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Predicates1D.h (renamed from extern/freestyle/src/stroke/Predicates1D.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/QInformationMap.h (renamed from extern/freestyle/src/stroke/QInformationMap.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Stroke.cpp (renamed from extern/freestyle/src/stroke/Stroke.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/Stroke.h (renamed from extern/freestyle/src/stroke/Stroke.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeAdvancedIterators.h (renamed from extern/freestyle/src/stroke/StrokeAdvancedIterators.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeIO.cpp (renamed from extern/freestyle/src/stroke/StrokeIO.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeIO.h (renamed from extern/freestyle/src/stroke/StrokeIO.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeIterators.h (renamed from extern/freestyle/src/stroke/StrokeIterators.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeLayer.cpp (renamed from extern/freestyle/src/stroke/StrokeLayer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeLayer.h (renamed from extern/freestyle/src/stroke/StrokeLayer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeRenderer.cpp (renamed from extern/freestyle/src/stroke/StrokeRenderer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeRenderer.h (renamed from extern/freestyle/src/stroke/StrokeRenderer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeRep.cpp (renamed from extern/freestyle/src/stroke/StrokeRep.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeRep.h (renamed from extern/freestyle/src/stroke/StrokeRep.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeShader.h (renamed from extern/freestyle/src/stroke/StrokeShader.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeTesselator.cpp (renamed from extern/freestyle/src/stroke/StrokeTesselator.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StrokeTesselator.h (renamed from extern/freestyle/src/stroke/StrokeTesselator.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/StyleModule.h (renamed from extern/freestyle/src/stroke/StyleModule.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/TextStrokeRenderer.cpp (renamed from extern/freestyle/src/stroke/TextStrokeRenderer.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/TextStrokeRenderer.h (renamed from extern/freestyle/src/stroke/TextStrokeRenderer.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/src.pri (renamed from extern/freestyle/src/stroke/src.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/stroke/stroke.pro (renamed from extern/freestyle/src/stroke/stroke.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/swig/Freestyle.i (renamed from extern/freestyle/src/swig/Freestyle.i) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/swig/FreestyleWrapper.vc7.vcproj (renamed from extern/freestyle/src/swig/FreestyleWrapper.vc7.vcproj) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/swig/FreestyleWrapper.vc8.vcproj (renamed from extern/freestyle/src/swig/FreestyleWrapper.vc8.vcproj) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/swig/Makefile (renamed from extern/freestyle/src/swig/Makefile) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/swig/Makefile.cygwin (renamed from extern/freestyle/src/swig/Makefile.cygwin) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/swig/Makefile.linux (renamed from extern/freestyle/src/swig/Makefile.linux) | 0 | ||||
-rw-r--r-- | source/blender/freestyle/src/swig/Makefile.mac (renamed from extern/freestyle/src/swig/Makefile.mac) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/swig/Makefile.noswig (renamed from extern/freestyle/src/swig/Makefile.noswig) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/swig/ModuleWrapper.cpp (renamed from extern/freestyle/src/swig/ModuleWrapper.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/swig/ModuleWrapper.h (renamed from extern/freestyle/src/swig/ModuleWrapper.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/BaseIterator.h (renamed from extern/freestyle/src/system/BaseIterator.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/BaseObject.cpp (renamed from extern/freestyle/src/system/BaseObject.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/BaseObject.h (renamed from extern/freestyle/src/system/BaseObject.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/Cast.h (renamed from extern/freestyle/src/system/Cast.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/Exception.cpp (renamed from extern/freestyle/src/system/Exception.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/Exception.h (renamed from extern/freestyle/src/system/Exception.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/FreestyleConfig.h (renamed from extern/freestyle/src/system/FreestyleConfig.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/Id.h (renamed from extern/freestyle/src/system/Id.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/Interpreter.h (renamed from extern/freestyle/src/system/Interpreter.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/Precision.h (renamed from extern/freestyle/src/system/Precision.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/ProgressBar.h (renamed from extern/freestyle/src/system/ProgressBar.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/PseudoNoise.cpp (renamed from extern/freestyle/src/system/PseudoNoise.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/PseudoNoise.h (renamed from extern/freestyle/src/system/PseudoNoise.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/PythonInterpreter.cpp (renamed from extern/freestyle/src/system/PythonInterpreter.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/PythonInterpreter.h (renamed from extern/freestyle/src/system/PythonInterpreter.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/RandGen.cpp (renamed from extern/freestyle/src/system/RandGen.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/RandGen.h (renamed from extern/freestyle/src/system/RandGen.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/StringUtils.cpp (renamed from extern/freestyle/src/system/StringUtils.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/StringUtils.h (renamed from extern/freestyle/src/system/StringUtils.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/TimeStamp.cpp (renamed from extern/freestyle/src/system/TimeStamp.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/TimeStamp.h (renamed from extern/freestyle/src/system/TimeStamp.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/TimeUtils.h (renamed from extern/freestyle/src/system/TimeUtils.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/src.pri (renamed from extern/freestyle/src/system/src.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/system/system.pro (renamed from extern/freestyle/src/system/system.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/FEdgeXDetector.cpp (renamed from extern/freestyle/src/view_map/FEdgeXDetector.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/FEdgeXDetector.h (renamed from extern/freestyle/src/view_map/FEdgeXDetector.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/Functions0D.cpp (renamed from extern/freestyle/src/view_map/Functions0D.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/Functions0D.h (renamed from extern/freestyle/src/view_map/Functions0D.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/Functions1D.cpp (renamed from extern/freestyle/src/view_map/Functions1D.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/Functions1D.h (renamed from extern/freestyle/src/view_map/Functions1D.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/Interface0D.h (renamed from extern/freestyle/src/view_map/Interface0D.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/Interface1D.h (renamed from extern/freestyle/src/view_map/Interface1D.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/Silhouette.cpp (renamed from extern/freestyle/src/view_map/Silhouette.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/Silhouette.h (renamed from extern/freestyle/src/view_map/Silhouette.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/SilhouetteGeomEngine.cpp (renamed from extern/freestyle/src/view_map/SilhouetteGeomEngine.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/SilhouetteGeomEngine.h (renamed from extern/freestyle/src/view_map/SilhouetteGeomEngine.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/SteerableViewMap.cpp (renamed from extern/freestyle/src/view_map/SteerableViewMap.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/SteerableViewMap.h (renamed from extern/freestyle/src/view_map/SteerableViewMap.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewEdgeXBuilder.cpp (renamed from extern/freestyle/src/view_map/ViewEdgeXBuilder.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewEdgeXBuilder.h (renamed from extern/freestyle/src/view_map/ViewEdgeXBuilder.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMap.cpp (renamed from extern/freestyle/src/view_map/ViewMap.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMap.h (renamed from extern/freestyle/src/view_map/ViewMap.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMapAdvancedIterators.h (renamed from extern/freestyle/src/view_map/ViewMapAdvancedIterators.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMapBuilder.cpp (renamed from extern/freestyle/src/view_map/ViewMapBuilder.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMapBuilder.h (renamed from extern/freestyle/src/view_map/ViewMapBuilder.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMapIO.cpp (renamed from extern/freestyle/src/view_map/ViewMapIO.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMapIO.h (renamed from extern/freestyle/src/view_map/ViewMapIO.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMapIterators.h (renamed from extern/freestyle/src/view_map/ViewMapIterators.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMapTesselator.cpp (renamed from extern/freestyle/src/view_map/ViewMapTesselator.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/ViewMapTesselator.h (renamed from extern/freestyle/src/view_map/ViewMapTesselator.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/src.pri (renamed from extern/freestyle/src/view_map/src.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/view_map/view_map.pro (renamed from extern/freestyle/src/view_map/view_map.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/Curvature.cpp (renamed from extern/freestyle/src/winged_edge/Curvature.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/Curvature.h (renamed from extern/freestyle/src/winged_edge/Curvature.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/Nature.h (renamed from extern/freestyle/src/winged_edge/Nature.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WEdge.cpp (renamed from extern/freestyle/src/winged_edge/WEdge.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WEdge.h (renamed from extern/freestyle/src/winged_edge/WEdge.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WFillGrid.cpp (renamed from extern/freestyle/src/winged_edge/WFillGrid.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WFillGrid.h (renamed from extern/freestyle/src/winged_edge/WFillGrid.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WSFillGrid.cpp (renamed from extern/freestyle/src/winged_edge/WSFillGrid.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WSFillGrid.h (renamed from extern/freestyle/src/winged_edge/WSFillGrid.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WXEdge.cpp (renamed from extern/freestyle/src/winged_edge/WXEdge.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WXEdge.h (renamed from extern/freestyle/src/winged_edge/WXEdge.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WXEdgeBuilder.cpp (renamed from extern/freestyle/src/winged_edge/WXEdgeBuilder.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WXEdgeBuilder.h (renamed from extern/freestyle/src/winged_edge/WXEdgeBuilder.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WingedEdgeBuilder.cpp (renamed from extern/freestyle/src/winged_edge/WingedEdgeBuilder.cpp) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/WingedEdgeBuilder.h (renamed from extern/freestyle/src/winged_edge/WingedEdgeBuilder.h) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/src.pri (renamed from extern/freestyle/src/winged_edge/src.pri) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/src/winged_edge/winged_edge.pro (renamed from extern/freestyle/src/winged_edge/winged_edge.pro) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/ChainingIterators.py (renamed from extern/freestyle/style_modules/ChainingIterators.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/Functions0D.py (renamed from extern/freestyle/style_modules/Functions0D.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/Functions1D.py (renamed from extern/freestyle/style_modules/Functions1D.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/PredicatesB1D.py (renamed from extern/freestyle/style_modules/PredicatesB1D.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/PredicatesU0D.py (renamed from extern/freestyle/style_modules/PredicatesU0D.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/PredicatesU1D.py (renamed from extern/freestyle/style_modules/PredicatesU1D.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/anisotropic_diffusion.py (renamed from extern/freestyle/style_modules/anisotropic_diffusion.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/apriori_and_causal_density.py (renamed from extern/freestyle/style_modules/apriori_and_causal_density.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/apriori_density.py (renamed from extern/freestyle/style_modules/apriori_density.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/backbone_stretcher.py (renamed from extern/freestyle/style_modules/backbone_stretcher.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/blueprint_circles.py (renamed from extern/freestyle/style_modules/blueprint_circles.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/blueprint_ellipses.py (renamed from extern/freestyle/style_modules/blueprint_ellipses.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/blueprint_squares.py (renamed from extern/freestyle/style_modules/blueprint_squares.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/cartoon.py (renamed from extern/freestyle/style_modules/cartoon.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/contour.py (renamed from extern/freestyle/style_modules/contour.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/curvature2d.py (renamed from extern/freestyle/style_modules/curvature2d.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/external_contour.py (renamed from extern/freestyle/style_modules/external_contour.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/external_contour_sketchy.py (renamed from extern/freestyle/style_modules/external_contour_sketchy.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/external_contour_smooth.py (renamed from extern/freestyle/style_modules/external_contour_smooth.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/extra-lines.sml (renamed from extern/freestyle/style_modules/extra-lines.sml) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/haloing.py (renamed from extern/freestyle/style_modules/haloing.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/ignore_small_occlusions.py (renamed from extern/freestyle/style_modules/ignore_small_occlusions.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/invisible_lines.py (renamed from extern/freestyle/style_modules/invisible_lines.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/japanese_bigbrush.py (renamed from extern/freestyle/style_modules/japanese_bigbrush.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/logical_operators.py (renamed from extern/freestyle/style_modules/logical_operators.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/long_anisotropically_dense.py (renamed from extern/freestyle/style_modules/long_anisotropically_dense.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/multiple_parameterization.py (renamed from extern/freestyle/style_modules/multiple_parameterization.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/nature.py (renamed from extern/freestyle/style_modules/nature.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/near_lines.py (renamed from extern/freestyle/style_modules/near_lines.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/occluded_by_specific_object.py (renamed from extern/freestyle/style_modules/occluded_by_specific_object.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/polygonalize.py (renamed from extern/freestyle/style_modules/polygonalize.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/qi0.py (renamed from extern/freestyle/style_modules/qi0.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/qi0_not_external_contour.py (renamed from extern/freestyle/style_modules/qi0_not_external_contour.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/qi1.py (renamed from extern/freestyle/style_modules/qi1.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/qi2.py (renamed from extern/freestyle/style_modules/qi2.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/sequentialsplit_sketchy.py (renamed from extern/freestyle/style_modules/sequentialsplit_sketchy.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/shaders.py (renamed from extern/freestyle/style_modules/shaders.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/sketchy_multiple_parameterization.py (renamed from extern/freestyle/style_modules/sketchy_multiple_parameterization.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/sketchy_topology_broken.py (renamed from extern/freestyle/style_modules/sketchy_topology_broken.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/sketchy_topology_preserved.py (renamed from extern/freestyle/style_modules/sketchy_topology_preserved.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py (renamed from extern/freestyle/style_modules/split_at_highest_2d_curvatures.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/split_at_tvertices.py (renamed from extern/freestyle/style_modules/split_at_tvertices.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/stroke_texture.py (renamed from extern/freestyle/style_modules/stroke_texture.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/suggestive.py (renamed from extern/freestyle/style_modules/suggestive.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py (renamed from extern/freestyle/style_modules/thickness_fof_depth_discontinuity.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/tipremover.py (renamed from extern/freestyle/style_modules/tipremover.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/tvertex_remover.py (renamed from extern/freestyle/style_modules/tvertex_remover.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/uniformpruning_zsort.py (renamed from extern/freestyle/style_modules/uniformpruning_zsort.py) | 0 | ||||
-rwxr-xr-x | source/blender/freestyle/style_modules/vector.py (renamed from extern/freestyle/style_modules/vector.py) | 0 | ||||
-rw-r--r-- | source/blender/include/BIF_screen.h | 1 | ||||
-rw-r--r-- | source/blender/include/butspace.h | 2 | ||||
-rw-r--r-- | source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c | 8 | ||||
-rw-r--r-- | source/blender/python/BPY_interface.c | 4 | ||||
-rw-r--r-- | source/blender/python/BPY_menus.c | 8 | ||||
-rw-r--r-- | source/blender/python/api2_2x/Blender.c | 22 | ||||
-rw-r--r-- | source/blender/python/api2_2x/Library.c | 77 | ||||
-rw-r--r-- | source/blender/python/api2_2x/Library.h | 2 | ||||
-rw-r--r-- | source/blender/python/api2_2x/Node.c | 19 | ||||
-rw-r--r-- | source/blender/python/api2_2x/Sys.c | 3 | ||||
-rw-r--r-- | source/blender/python/api2_2x/doc/LibData.py | 8 | ||||
-rw-r--r-- | source/blender/python/api2_2x/sceneRender.c | 7 | ||||
-rw-r--r-- | source/blender/quicktime/apple/quicktime_export.c | 2 | ||||
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 3 | ||||
-rw-r--r-- | source/blender/src/buttons_editing.c | 10 | ||||
-rw-r--r-- | source/blender/src/buttons_object.c | 10 | ||||
-rw-r--r-- | source/blender/src/buttons_scene.c | 24 | ||||
-rw-r--r-- | source/blender/src/buttons_shading.c | 6 | ||||
-rw-r--r-- | source/blender/src/drawimage.c | 2 | ||||
-rw-r--r-- | source/blender/src/drawobject.c | 2 | ||||
-rw-r--r-- | source/blender/src/drawview.c | 34 | ||||
-rw-r--r-- | source/blender/src/editcurve.c | 12 | ||||
-rw-r--r-- | source/blender/src/editdeform.c | 24 | ||||
-rw-r--r-- | source/blender/src/editimasel.c | 3 | ||||
-rw-r--r-- | source/blender/src/editipo.c | 105 | ||||
-rw-r--r-- | source/blender/src/editobject.c | 38 | ||||
-rw-r--r-- | source/blender/src/editscreen.c | 8 | ||||
-rw-r--r-- | source/blender/src/editsima.c | 6 | ||||
-rw-r--r-- | source/blender/src/editsound.c | 8 | ||||
-rw-r--r-- | source/blender/src/filesel.c | 2 | ||||
-rw-r--r-- | source/blender/src/fluidsim.c | 4 | ||||
-rw-r--r-- | source/blender/src/ghostwinlay.c | 36 | ||||
-rw-r--r-- | source/blender/src/header_action.c | 39 | ||||
-rw-r--r-- | source/blender/src/header_ipo.c | 17 | ||||
-rw-r--r-- | source/blender/src/header_nla.c | 13 | ||||
-rw-r--r-- | source/blender/src/interface_draw.c | 2 | ||||
-rw-r--r-- | source/blender/src/outliner.c | 2 | ||||
-rw-r--r-- | source/blender/src/screendump.c | 3 | ||||
-rw-r--r-- | source/blender/src/seqaudio.c | 5 | ||||
-rw-r--r-- | source/blender/src/sequence.c | 22 | ||||
-rw-r--r-- | source/blender/src/space.c | 2 | ||||
-rw-r--r-- | source/blender/src/view.c | 4 | ||||
-rw-r--r-- | source/blender/src/writeimage.c | 3 | ||||
-rw-r--r-- | source/blender/src/writemovie.c | 2 | ||||
-rw-r--r-- | source/blender/yafray/intern/export_File.cpp | 2 | ||||
-rw-r--r-- | source/blender/yafray/intern/export_Plugin.cpp | 2 | ||||
-rw-r--r-- | source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp | 4 | ||||
-rw-r--r-- | source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp | 4 | ||||
-rw-r--r-- | source/gameengine/Converter/BL_BlenderDataConversion.cpp | 5 | ||||
-rw-r--r-- | source/gameengine/Converter/KX_ConvertActuators.cpp | 2 | ||||
-rw-r--r-- | source/gameengine/GameLogic/SCA_KeyboardSensor.cpp | 43 | ||||
-rw-r--r-- | source/gameengine/GameLogic/SCA_MouseSensor.cpp | 26 | ||||
-rw-r--r-- | source/gameengine/GamePlayer/common/GPC_RenderTools.cpp | 4 | ||||
-rw-r--r-- | source/gameengine/GamePlayer/ghost/GPG_ghost.cpp | 2 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_BlenderMaterial.cpp | 14 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_BlenderMaterial.h | 1 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp | 9 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_GameObject.cpp | 19 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_GameObject.h | 17 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_Scene.cpp | 2 | ||||
-rw-r--r-- | source/gameengine/Physics/Bullet/CcdPhysicsController.cpp | 4 | ||||
-rw-r--r-- | source/gameengine/Physics/Bullet/CcdPhysicsController.h | 2 | ||||
-rw-r--r-- | source/gameengine/Rasterizer/RAS_BucketManager.cpp | 1 | ||||
-rw-r--r-- | source/gameengine/Rasterizer/RAS_IRenderTools.h | 4 | ||||
-rw-r--r-- | source/gameengine/Rasterizer/RAS_MaterialBucket.cpp | 8 | ||||
-rw-r--r-- | tools/Blender.py | 7 | ||||
-rwxr-xr-x | tools/btools.py | 11 |
448 files changed, 1807 insertions, 1218 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c34233245a..b58fe945663 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -250,6 +250,10 @@ IF(WIN32) ELSE (MSVC80) SET(OPENEXR_LIBPATH ${OPENEXR}/lib_msvc) ENDIF(MSVC80) + IF (MSVC90) + SET(OPENEXR_LIBPATH ${OPENEXR}/lib_vs2008) + ENDIF(MSVC90) + SET(QUICKTIME ${LIBDIR}/QTDevWin) SET(QUICKTIME_INC ${QUICKTIME}/CIncludes) diff --git a/SConstruct b/SConstruct index 78936a039c9..bb8773329b2 100644 --- a/SConstruct +++ b/SConstruct @@ -403,9 +403,26 @@ for tp, tn, tf in os.walk('release/plugins'): if '.svn' in tn: tn.remove('.svn') for f in tf: + print ">>>", env['BF_INSTALLDIR'], tp, f pluglist.append(tp+os.sep+f) plugtargetlist.append(env['BF_INSTALLDIR']+tp[7:]+os.sep+f) +# header files for plugins +pluglist.append('source/blender/blenpluginapi/documentation.h') +plugtargetlist.append(env['BF_INSTALLDIR'] + os.sep + 'plugins' + os.sep + 'include' + os.sep +'documentation.h') +pluglist.append('source/blender/blenpluginapi/externdef.h') +plugtargetlist.append(env['BF_INSTALLDIR'] + os.sep + 'plugins' + os.sep + 'include' + os.sep +'externdef.h') +pluglist.append('source/blender/blenpluginapi/floatpatch.h') +plugtargetlist.append(env['BF_INSTALLDIR'] + os.sep + 'plugins' + os.sep + 'include' + os.sep +'floatpatch.h') +pluglist.append('source/blender/blenpluginapi/iff.h') +plugtargetlist.append(env['BF_INSTALLDIR'] + os.sep + 'plugins' + os.sep + 'include' + os.sep +'iff.h') +pluglist.append('source/blender/blenpluginapi/plugin.h') +plugtargetlist.append(env['BF_INSTALLDIR'] + os.sep + 'plugins' + os.sep + 'include' + os.sep +'plugin.h') +pluglist.append('source/blender/blenpluginapi/util.h') +plugtargetlist.append(env['BF_INSTALLDIR'] + os.sep + 'plugins' + os.sep + 'include' + os.sep +'util.h') +pluglist.append('source/blender/blenpluginapi/plugin.DEF') +plugtargetlist.append(env['BF_INSTALLDIR'] + os.sep + 'plugins' + os.sep + 'include' + os.sep + 'plugin.def') + plugininstall = [] for targetdir,srcfile in zip(plugtargetlist, pluglist): td, tf = os.path.split(targetdir) diff --git a/config/darwin-config.py b/config/darwin-config.py index b12a93a1da8..071a245202b 100644 --- a/config/darwin-config.py +++ b/config/darwin-config.py @@ -160,6 +160,21 @@ BF_SOLID_LIB = 'extern_solid' WITH_BF_YAFRAY = 'true' +WITH_BF_FREESTYLE = 'true' +BF_FREESTYLE = '#extern/freestyle' +BF_FREESTYLE_SRC = '${BF_FREESTYLE}/src' +BF_SWIG = '${BF_FREESTYLE}/swig' +BF_LIB3DS = '${BF_FREESTYLE}/lib3ds' +BF_LIB3DS_LIB = 'extern_lib3ds' +BF_LIB3DS_LIBPATH = '${BF_LIB3DS}/lib3ds/.libs' +BF_LIB3DS_INC = '${BF_LIB3DS}/lib3ds' + +# WITH_BF_OPENEXR = 'true' +# BF_OPENEXR = '${LCGDIR}/openexr' +# BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR' +# BF_OPENEXR_LIB = ' Iex Half IlmImf Imath IlmThread' +# BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib' + #WITH_BF_NSPR = 'true' #BF_NSPR = $(LIBDIR)/nspr #BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr @@ -220,9 +235,10 @@ if USE_SDK=='true': CCFLAGS=SDK_FLAGS+CCFLAGS CXXFLAGS=SDK_FLAGS+CXXFLAGS +# you can add -mssse3 if gcc >= 4.2 if MAC_PROC == 'i386': - REL_CFLAGS = ['-O2','-ftree-vectorize','-msse','-msse2','-msse3','-mssse3'] - REL_CCFLAGS = ['-O2','-ftree-vectorize','-msse','-msse2','-msse3','-mssse3'] + REL_CFLAGS = ['-O2','-ftree-vectorize','-msse','-msse2','-msse3'] + REL_CCFLAGS = ['-O2','-ftree-vectorize','-msse','-msse2','-msse3'] else: CFLAGS = CFLAGS+['-fno-strict-aliasing'] CCFLAGS = CCFLAGS+['-fno-strict-aliasing'] diff --git a/config/win32-vc-config.py b/config/win32-vc-config.py index 1f7e62102af..32b6597b5d5 100644 --- a/config/win32-vc-config.py +++ b/config/win32-vc-config.py @@ -170,7 +170,6 @@ PLATFORM_LINKFLAGS = ''' /NODEFAULTLIB:"libcd.lib" /NODEFAULTLIB:"libcpd.lib" /NODEFAULTLIB:"libcp.lib" - /NODEFAULTLIB:"libcmtd.lib" ''' BF_BUILDDIR = '..\\build\\win32-vc' diff --git a/extern/verse/dist/v_bignum.c b/extern/verse/dist/v_bignum.c index 3f3ea7f9ccc..3f65af03427 100644 --- a/extern/verse/dist/v_bignum.c +++ b/extern/verse/dist/v_bignum.c @@ -768,7 +768,7 @@ void v_bignum_square_half(VBigDig *x) for(j = i + 1; j < t; j++) { /* printf("computing uv=%X+2*%X*%X+%X\n", w[i + j], x[1 + j], x[1 + i], c);*/ - uv = x[1 + j] * x[1 + i]; + uv = ((VBigDigs)x[1 + j]) * ((VBigDigs)x[1 + i]); high = (uv & 0x80000000) != 0; uv *= 2; ouv = uv; /* Addition below might wrap and generate high bit. */ diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index 568f7ecf9b8..78c25997806 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -34,10 +34,9 @@ * @date May 7, 2001 */ -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif +#include <Carbon/Carbon.h> +#include <ApplicationServices/ApplicationServices.h> #include "GHOST_SystemCarbon.h" #include "GHOST_DisplayManagerCarbon.h" @@ -52,6 +51,7 @@ #include "GHOST_WindowManager.h" #include "GHOST_WindowCarbon.h" #include "GHOST_NDOFManager.h" +#include "AssertMacros.h" #define GHOST_KEY_SWITCH(mac, ghost) { case (mac): ghostKey = (ghost); break; } @@ -1121,12 +1121,15 @@ GHOST_TUns8* GHOST_SystemCarbon::getClipboard(int flag) const OSStatus err = noErr; GHOST_TUns8 * temp_buff; CFRange range; + OSStatus syncFlags; err = PasteboardCreate(kPasteboardClipboard, &inPasteboard); if(err != noErr) { return NULL;} - err = PasteboardSynchronize( inPasteboard ); - if(err != noErr) { return NULL;} + syncFlags = PasteboardSynchronize( inPasteboard ); + /* as we always get in a new string, we can safely ignore sync flags if not an error*/ + if(syncFlags <0) { return NULL;} + err = PasteboardGetItemIdentifier( inPasteboard, 1, &itemID ); if(err != noErr) { return NULL;} @@ -1152,15 +1155,18 @@ GHOST_TUns8* GHOST_SystemCarbon::getClipboard(int flag) const void GHOST_SystemCarbon::putClipboard(GHOST_TInt8 *buffer, int flag) const { if(flag == 1) {return;} //If Flag is 1 means the selection and is used on X11 + PasteboardRef inPasteboard; CFDataRef textData = NULL; OSStatus err = noErr; /*For error checking*/ + OSStatus syncFlags; err = PasteboardCreate(kPasteboardClipboard, &inPasteboard); if(err != noErr) { return;} - err = PasteboardSynchronize( inPasteboard ); - if(err != noErr) { return;} + syncFlags = PasteboardSynchronize( inPasteboard ); + /* as we always put in a new string, we can safely ignore sync flags */ + if(syncFlags <0) { return;} err = PasteboardClear( inPasteboard ); if(err != noErr) { return;} diff --git a/projectfiles_vc7/gameengine/blenderhook/KX_blenderhook.vcproj b/projectfiles_vc7/gameengine/blenderhook/KX_blenderhook.vcproj index 1721062b75c..bc4204eaa44 100644 --- a/projectfiles_vc7/gameengine/blenderhook/KX_blenderhook.vcproj +++ b/projectfiles_vc7/gameengine/blenderhook/KX_blenderhook.vcproj @@ -22,7 +22,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\..\build\msvc_7\intern\moto\include;..\..\..\..\build\msvc_7\intern\string\include;..\..\..\..\build\msvc_7\intern\bmfont\include;..\..\..\..\build\msvc_7\intern\soundsystem\include;..\..\..\..\build\msvc_7\intern\guardedalloc\include;..\..\..\..\build\msvc_7\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\ketsji;..\..\..\source\gameengine\network;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\Physics\Sumo;..\..\..\source\gameengine\Physics\common;..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include" - PreprocessorDefinitions="WIN32,_LIB,_DEBUG" + PreprocessorDefinitions="WIN32;_LIB;_DEBUG;WITH_GLEXT" BasicRuntimeChecks="3" RuntimeLibrary="1" DefaultCharIsUnsigned="TRUE" diff --git a/projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj b/projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj index e73e72316c1..d85fb6c3482 100644 --- a/projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj +++ b/projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj @@ -127,7 +127,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\..\build\msvc_7\intern\string\include;..\..\..\..\build\msvc_7\intern\moto\include;..\..\..\..\build\msvc_7\intern\soundsystem\include;..\..\..\..\build\msvc_7\intern\guardedalloc\include;..\..\..\..\build\msvc_7\extern\bullet\include;..\..\..\..\build\msvc_7\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet" - PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID" + PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT" BasicRuntimeChecks="3" RuntimeLibrary="1" DefaultCharIsUnsigned="TRUE" diff --git a/projectfiles_vc7/gameengine/rasterizer/RAS_rasterizer.vcproj b/projectfiles_vc7/gameengine/rasterizer/RAS_rasterizer.vcproj index 75a2a852011..f4801b58bc8 100644 --- a/projectfiles_vc7/gameengine/rasterizer/RAS_rasterizer.vcproj +++ b/projectfiles_vc7/gameengine/rasterizer/RAS_rasterizer.vcproj @@ -22,7 +22,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\..\build\msvc_7\intern\moto\include;..\..\..\..\build\msvc_7\intern\string\include;..\..\..\source\kernel\gen_system" - PreprocessorDefinitions="_DEBUG,WIN32,_LIB" + PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT" BasicRuntimeChecks="3" RuntimeLibrary="1" DefaultCharIsUnsigned="TRUE" diff --git a/projectfiles_vc7/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.vcproj b/projectfiles_vc7/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.vcproj index 6046cc5cac5..b96cf78daf5 100644 --- a/projectfiles_vc7/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.vcproj +++ b/projectfiles_vc7/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.vcproj @@ -74,7 +74,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_7\intern\moto\include;..\..\..\..\..\build\msvc_7\intern\string\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\gameengine\Rasterizer" - PreprocessorDefinitions="_DEBUG,WIN32,_LIB" + PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT" BasicRuntimeChecks="3" RuntimeLibrary="1" DefaultCharIsUnsigned="TRUE" diff --git a/release/scripts/console.py b/release/scripts/console.py index 7d9d8be5e9e..62e0b2eb1d8 100644 --- a/release/scripts/console.py +++ b/release/scripts/console.py @@ -63,7 +63,7 @@ __LINE_HISTORY__ = 500 global __FONT_SIZE__ -__FONT_SIZES__ = ( ('tiny', 10), ('small', 12), ('normal', 14), ('large', 16) ) +__FONT_SIZES__ = ( ('tiny', 10), ('small', 12), ('normalfix', 14), ('large', 16) ) __FONT_SIZE__ = 2 # index for the list above, normal default. global __CONSOLE_LINE_OFFSET__ @@ -422,9 +422,13 @@ def handle_event(evt, val): global histIndex, cmdBuffer if abs(histIndex)+1 >= len(cmdBuffer): histIndex = -1 + histIndex_orig = histIndex histIndex -= 1 - while cmdBuffer[histIndex].type != 0 and abs(histIndex) < len(cmdBuffer): + + while (cmdBuffer[histIndex].type != 0 and abs(histIndex) < len(cmdBuffer)) or \ + ( cmdBuffer[histIndex].cmd == cmdBuffer[histIndex_orig].cmd): histIndex -= 1 + if cmdBuffer[histIndex].type == 0: # we found one cmdBuffer[-1].cmd = cmdBuffer[histIndex].cmd @@ -432,9 +436,13 @@ def handle_event(evt, val): global histIndex, cmdBuffer if histIndex >= -2: histIndex = -len(cmdBuffer) + histIndex_orig = histIndex histIndex += 1 - while cmdBuffer[histIndex].type != 0 and histIndex != -2: + while (cmdBuffer[histIndex].type != 0 and histIndex != -2) or \ + ( cmdBuffer[histIndex].cmd == cmdBuffer[histIndex_orig].cmd): + histIndex += 1 + if cmdBuffer[histIndex].type == 0: # we found one cmdBuffer[-1].cmd = cmdBuffer[histIndex].cmd diff --git a/release/scripts/wizard_curve2tree.py b/release/scripts/wizard_curve2tree.py index 2dcda953a89..eb27f1ca0f5 100644 --- a/release/scripts/wizard_curve2tree.py +++ b/release/scripts/wizard_curve2tree.py @@ -3405,7 +3405,7 @@ def buildTree(ob_curve, single=False): if leaf_object: ob_leaf_dupliface.enableDupFaces = True ob_leaf_dupliface.enableDupFacesScale = True - ob_leaf_dupliface.makeParent([leaf_object]) + ob_leaf_dupliface.makeParent([leaf_object], 1) else: ob_leaf_dupliface.enableDupFaces = False @@ -3637,7 +3637,7 @@ def do_tree_generate(e,v): GLOBALS['non_bez_error'] = 0 def do_tree_help(e,v): - url = 'http://wiki.blender.org/index.php/Scripts/Manual/Export/autodesk_fbx' + url = 'http://wiki.blender.org/index.php/Scripts/Manual/Wizards/TreeFromCurves' print 'Trying to open web browser with documentation at this address...' print '\t' + url diff --git a/release/scripts/x3d_export.py b/release/scripts/x3d_export.py index eb9d5d35d6c..ac4a8e9ca5b 100644 --- a/release/scripts/x3d_export.py +++ b/release/scripts/x3d_export.py @@ -1,15 +1,12 @@ #!BPY """ Registration info for Blender menus: Name: 'X3D Extensible 3D (.x3d)...' -Blender: 235 +Blender: 245 Group: 'Export' -Submenu: 'All Objects...' all -Submenu: 'All Objects compressed...' comp -Submenu: 'Selected Objects...' selected -Tooltip: 'Export to Extensible 3D file (.x3d)' +Tooltip: 'Export selection to Extensible 3D file (.x3d)' """ -__author__ = ("Bart") +__author__ = ("Bart", "Campbell Barton") __email__ = ["Bart, bart:neeneenee*de"] __url__ = ["Author's (Bart) homepage, http://www.neeneenee.de/vrml"] __version__ = "2006/01/17" @@ -22,10 +19,9 @@ Run this script from "File->Export" menu. A pop-up will ask whether you want to export only selected or all relevant objects. Known issues:<br> - Doesn't handle multiple materials (don't use material indices);<br> - Doesn't handle multiple UV textures on a single mesh (create a mesh -for each texture);<br> - Can't get the texture array associated with material * not the UV ones; + Doesn't handle multiple materials (don't use material indices);<br> + Doesn't handle multiple UV textures on a single mesh (create a mesh for each texture);<br> + Can't get the texture array associated with material * not the UV ones; """ @@ -58,953 +54,903 @@ for each texture);<br> #################################### import Blender -from Blender import Object, NMesh, Lamp, Draw, Image, Text, sys +from Blender import Object, Lamp, Draw, Image, Text, sys, Mesh from Blender.Scene import Render import math +# +DEG2RAD=0.017453292519943295 +MATWORLD= Blender.Mathutils.RotationMatrix(-90, 4, 'x') + #################################### # Global Variables #################################### -scene = Blender.Scene.GetCurrent() -world = Blender.World.GetCurrent() -worldmat = Blender.Texture.Get() filename = Blender.Get('filename') _safeOverwrite = True ARG='' extension = '' -class DrawTypes: - """Object DrawTypes enum values - BOUNDS - draw only the bounding box of the object - WIRE - draw object as a wire frame - SOLID - draw object with flat shading - SHADED - draw object with OpenGL shading -""" - BOUNDBOX = 1 - WIRE = 2 - SOLID = 3 - SHADED = 4 - TEXTURE = 5 - -if not hasattr(Blender.Object,'DrawTypes'): - Blender.Object.DrawTypes = DrawTypes() - ########################################################## # Functions for writing output file ########################################################## class VRML2Export: - def __init__(self, filename): - #--- public you can change these --- - self.writingcolor = 0 - self.writingtexture = 0 - self.writingcoords = 0 - self.wire = 0 - self.proto = 1 - self.matonly = 0 - self.share = 0 - self.billnode = 0 - self.halonode = 0 - self.collnode = 0 - self.tilenode = 0 - self.verbose=2 # level of verbosity in console 0-none, 1-some, 2-most - self.cp=3 # decimals for material color values 0.000 - 1.000 - self.vp=3 # decimals for vertex coordinate values 0.000 - n.000 - self.tp=3 # decimals for texture coordinate values 0.000 - 1.000 - self.it=3 - - #--- class private don't touch --- - self.texNames={} # dictionary of textureNames - self.matNames={} # dictionary of materiaNames - self.meshNames={} # dictionary of meshNames - self.indentLevel=0 # keeps track of current indenting - self.filename=filename - self.file = open(filename, "w") - self.bNav=0 - self.nodeID=0 - self.namesReserved=[ "Anchor","Appearance","Arc2D","ArcClose2D","AudioClip","Background","Billboard", - "BooleanFilter","BooleanSequencer","BooleanToggle","BooleanTrigger","Box","Circle2D", - "Collision","Color","ColorInterpolator","ColorRGBA","component","Cone","connect", - "Contour2D","ContourPolyline2D","Coordinate","CoordinateDouble","CoordinateInterpolator", - "CoordinateInterpolator2D","Cylinder","CylinderSensor","DirectionalLight","Disk2D", - "ElevationGrid","EspduTransform","EXPORT","ExternProtoDeclare","Extrusion","field", - "fieldValue","FillProperties","Fog","FontStyle","GeoCoordinate","GeoElevationGrid", - "GeoLocationLocation","GeoLOD","GeoMetadata","GeoOrigin","GeoPositionInterpolator", - "GeoTouchSensor","GeoViewpoint","Group","HAnimDisplacer","HAnimHumanoid","HAnimJoint", - "HAnimSegment","HAnimSite","head","ImageTexture","IMPORT","IndexedFaceSet", - "IndexedLineSet","IndexedTriangleFanSet","IndexedTriangleSet","IndexedTriangleStripSet", - "Inline","IntegerSequencer","IntegerTrigger","IS","KeySensor","LineProperties","LineSet", - "LoadSensor","LOD","Material","meta","MetadataDouble","MetadataFloat","MetadataInteger", - "MetadataSet","MetadataString","MovieTexture","MultiTexture","MultiTextureCoordinate", - "MultiTextureTransform","NavigationInfo","Normal","NormalInterpolator","NurbsCurve", - "NurbsCurve2D","NurbsOrientationInterpolator","NurbsPatchSurface", - "NurbsPositionInterpolator","NurbsSet","NurbsSurfaceInterpolator","NurbsSweptSurface", - "NurbsSwungSurface","NurbsTextureCoordinate","NurbsTrimmedSurface","OrientationInterpolator", - "PixelTexture","PlaneSensor","PointLight","PointSet","Polyline2D","Polypoint2D", - "PositionInterpolator","PositionInterpolator2D","ProtoBody","ProtoDeclare","ProtoInstance", - "ProtoInterface","ProximitySensor","ReceiverPdu","Rectangle2D","ROUTE","ScalarInterpolator", - "Scene","Script","Shape","SignalPdu","Sound","Sphere","SphereSensor","SpotLight","StaticGroup", - "StringSensor","Switch","Text","TextureBackground","TextureCoordinate","TextureCoordinateGenerator", - "TextureTransform","TimeSensor","TimeTrigger","TouchSensor","Transform","TransmitterPdu", - "TriangleFanSet","TriangleSet","TriangleSet2D","TriangleStripSet","Viewpoint","VisibilitySensor", - "WorldInfo","X3D","XvlShell","VertexShader","FragmentShader","MultiShaderAppearance","ShaderAppearance" ] - self.namesStandard=[ "Empty","Empty.000","Empty.001","Empty.002","Empty.003","Empty.004","Empty.005", - "Empty.006","Empty.007","Empty.008","Empty.009","Empty.010","Empty.011","Empty.012", - "Scene.001","Scene.002","Scene.003","Scene.004","Scene.005","Scene.06","Scene.013", - "Scene.006","Scene.007","Scene.008","Scene.009","Scene.010","Scene.011","Scene.012", - "World","World.000","World.001","World.002","World.003","World.004","World.005" ] - self.namesFog=[ "","LINEAR","EXPONENTIAL","" ] + def __init__(self, filename): + #--- public you can change these --- + self.writingcolor = 0 + self.writingtexture = 0 + self.writingcoords = 0 + self.proto = 1 + self.matonly = 0 + self.share = 0 + self.billnode = 0 + self.halonode = 0 + self.collnode = 0 + self.tilenode = 0 + self.verbose=2 # level of verbosity in console 0-none, 1-some, 2-most + self.cp=3 # decimals for material color values 0.000 - 1.000 + self.vp=3 # decimals for vertex coordinate values 0.000 - n.000 + self.tp=3 # decimals for texture coordinate values 0.000 - 1.000 + self.it=3 + + #--- class private don't touch --- + self.texNames={} # dictionary of textureNames + self.matNames={} # dictionary of materiaNames + self.meshNames={} # dictionary of meshNames + self.indentLevel=0 # keeps track of current indenting + self.filename=filename + self.file = open(filename, "w") + self.bNav=0 + self.nodeID=0 + self.namesReserved=[ "Anchor","Appearance","Arc2D","ArcClose2D","AudioClip","Background","Billboard", + "BooleanFilter","BooleanSequencer","BooleanToggle","BooleanTrigger","Box","Circle2D", + "Collision","Color","ColorInterpolator","ColorRGBA","component","Cone","connect", + "Contour2D","ContourPolyline2D","Coordinate","CoordinateDouble","CoordinateInterpolator", + "CoordinateInterpolator2D","Cylinder","CylinderSensor","DirectionalLight","Disk2D", + "ElevationGrid","EspduTransform","EXPORT","ExternProtoDeclare","Extrusion","field", + "fieldValue","FillProperties","Fog","FontStyle","GeoCoordinate","GeoElevationGrid", + "GeoLocationLocation","GeoLOD","GeoMetadata","GeoOrigin","GeoPositionInterpolator", + "GeoTouchSensor","GeoViewpoint","Group","HAnimDisplacer","HAnimHumanoid","HAnimJoint", + "HAnimSegment","HAnimSite","head","ImageTexture","IMPORT","IndexedFaceSet", + "IndexedLineSet","IndexedTriangleFanSet","IndexedTriangleSet","IndexedTriangleStripSet", + "Inline","IntegerSequencer","IntegerTrigger","IS","KeySensor","LineProperties","LineSet", + "LoadSensor","LOD","Material","meta","MetadataDouble","MetadataFloat","MetadataInteger", + "MetadataSet","MetadataString","MovieTexture","MultiTexture","MultiTextureCoordinate", + "MultiTextureTransform","NavigationInfo","Normal","NormalInterpolator","NurbsCurve", + "NurbsCurve2D","NurbsOrientationInterpolator","NurbsPatchSurface", + "NurbsPositionInterpolator","NurbsSet","NurbsSurfaceInterpolator","NurbsSweptSurface", + "NurbsSwungSurface","NurbsTextureCoordinate","NurbsTrimmedSurface","OrientationInterpolator", + "PixelTexture","PlaneSensor","PointLight","PointSet","Polyline2D","Polypoint2D", + "PositionInterpolator","PositionInterpolator2D","ProtoBody","ProtoDeclare","ProtoInstance", + "ProtoInterface","ProximitySensor","ReceiverPdu","Rectangle2D","ROUTE","ScalarInterpolator", + "Scene","Script","Shape","SignalPdu","Sound","Sphere","SphereSensor","SpotLight","StaticGroup", + "StringSensor","Switch","Text","TextureBackground","TextureCoordinate","TextureCoordinateGenerator", + "TextureTransform","TimeSensor","TimeTrigger","TouchSensor","Transform","TransmitterPdu", + "TriangleFanSet","TriangleSet","TriangleSet2D","TriangleStripSet","Viewpoint","VisibilitySensor", + "WorldInfo","X3D","XvlShell","VertexShader","FragmentShader","MultiShaderAppearance","ShaderAppearance" ] + self.namesStandard=[ "Empty","Empty.000","Empty.001","Empty.002","Empty.003","Empty.004","Empty.005", + "Empty.006","Empty.007","Empty.008","Empty.009","Empty.010","Empty.011","Empty.012", + "Scene.001","Scene.002","Scene.003","Scene.004","Scene.005","Scene.06","Scene.013", + "Scene.006","Scene.007","Scene.008","Scene.009","Scene.010","Scene.011","Scene.012", + "World","World.000","World.001","World.002","World.003","World.004","World.005" ] + self.namesFog=[ "","LINEAR","EXPONENTIAL","" ] ########################################################## # Writing nodes routines ########################################################## - def writeHeader(self): - #bfile = sys.expandpath( Blender.Get('filename') ).replace('<', '<').replace('>', '>') - bfile = self.filename.replace('<', '<').replace('>', '>') # use outfile name - self.file.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n") - self.file.write("<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/specifications/x3d-3.0.dtd\">\n") - self.file.write("<X3D version=\"3.0\" profile=\"Immersive\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema-instance\" xsd:noNamespaceSchemaLocation=\"http://www.web3d.org/specifications/x3d-3.0.xsd\">\n") - self.file.write("<head>\n") - self.file.write("\t<meta name=\"filename\" content=\"%s\" />\n" % sys.basename(bfile)) - self.file.write("\t<meta name=\"generator\" content=\"Blender %s\" />\n" % Blender.Get('version')) - self.file.write("\t<meta name=\"translator\" content=\"X3D exporter v1.55 (2006/01/17)\" />\n") - self.file.write("</head>\n") - self.file.write("<Scene>\n") - - def writeInline(self): - inlines = Blender.Scene.Get() - allinlines = len(inlines) - if scene != inlines[0]: - return - else: - for i in xrange(allinlines): - nameinline=inlines[i].name - if (nameinline not in self.namesStandard) and (i > 0): - self.file.write("<Inline DEF=\"%s\" " % (self.cleanStr(nameinline))) - nameinline = nameinline+".x3d" - self.file.write("url=\"%s\" />" % nameinline) - self.file.write("\n\n") - - def writeScript(self): - textEditor = Blender.Text.Get() - alltext = len(textEditor) - for i in xrange(alltext): - nametext = textEditor[i].getName() - nlines = textEditor[i].getNLines() - if (self.proto == 1): - if (nametext == "proto" or nametext == "proto.js" or nametext == "proto.txt") and (nlines != None): - nalllines = len(textEditor[i].asLines()) - alllines = textEditor[i].asLines() - for j in xrange(nalllines): - self.writeIndented(alllines[j] + "\n") - elif (self.proto == 0): - if (nametext == "route" or nametext == "route.js" or nametext == "route.txt") and (nlines != None): - nalllines = len(textEditor[i].asLines()) - alllines = textEditor[i].asLines() - for j in xrange(nalllines): - self.writeIndented(alllines[j] + "\n") - self.writeIndented("\n") - - def writeViewpoint(self, thisObj): - context = scene.getRenderingContext() - ratio = float(context.imageSizeY())/float(context.imageSizeX()) - lens = (360* (math.atan(ratio *16 / thisObj.data.getLens()) / math.pi))*(math.pi/180) - lens = min(lens, math.pi) - # get the camera location, subtract 90 degress from X to orient like X3D does - loc = self.rotatePointForVRML(thisObj.loc) - rot = [thisObj.RotX - 1.57, thisObj.RotY, thisObj.RotZ] - nRot = self.rotatePointForVRML(rot) - # convert to Quaternion and to Angle Axis - Q = self.eulerToQuaternions(nRot[0], nRot[1], nRot[2]) - Q1 = self.multiplyQuaternions(Q[0], Q[1]) - Qf = self.multiplyQuaternions(Q1, Q[2]) - angleAxis = self.quaternionToAngleAxis(Qf) - self.file.write("<Viewpoint DEF=\"%s\" " % (self.cleanStr(thisObj.name))) - self.file.write("description=\"%s\" " % (thisObj.name)) - self.file.write("centerOfRotation=\"0 0 0\" ") - self.file.write("position=\"%3.2f %3.2f %3.2f\" " % (loc[0], loc[1], loc[2])) - self.file.write("orientation=\"%3.2f %3.2f %3.2f %3.2f\" " % (angleAxis[0], angleAxis[1], -angleAxis[2], angleAxis[3])) - self.file.write("fieldOfView=\"%.3f\" />\n\n" % (lens)) - - def writeFog(self): - if world: - mtype = world.getMistype() - mparam = world.getMist() - grd = world.getHor() - grd0, grd1, grd2 = grd[0], grd[1], grd[2] - else: - return - if (mtype == 1 or mtype == 2): - self.file.write("<Fog fogType=\"%s\" " % self.namesFog[mtype]) - self.file.write("color=\"%s %s %s\" " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) - self.file.write("visibilityRange=\"%s\" />\n\n" % round(mparam[2],self.cp)) - else: - return - - def writeNavigationInfo(self, scene): - allObj = [] - allObj = list(scene.objects) - headlight = "true" - vislimit = 0.0 - for thisObj in allObj: - objType=thisObj.type - if objType == "Camera": - vislimit = thisObj.data.clipEnd - elif objType == "Lamp": - headlight = "false" - self.file.write("<NavigationInfo headlight=\"%s\" " % headlight) - self.file.write("visibilityLimit=\"%s\" " % (round(vislimit,self.cp))) - self.file.write("type=\"EXAMINE\", \"ANY\" avatarSize=\"0.25, 1.75, 0.75\" />\n\n") - - def writeSpotLight(self, ob, lamp): - safeName = self.cleanStr(ob.name) - if world: - ambi = world.amb - ambientIntensity = ((float(ambi[0] + ambi[1] + ambi[2]))/3)/2.5 - else: - ambi = 0 - ambientIntensity = 0 - - # compute cutoff and beamwidth - intensity=min(lamp.energy/1.75,1.0) - beamWidth=((lamp.spotSize*math.pi)/180.0)*.37; - cutOffAngle=beamWidth*1.3 - - dx,dy,dz=self.computeDirection(ob) - # note -dx seems to equal om[3][0] - # note -dz seems to equal om[3][1] - # note dy seems to equal om[3][2] - - location=ob.getLocation('worldspace') - radius = lamp.dist*math.cos(beamWidth) - self.file.write("<SpotLight DEF=\"%s\" " % safeName) - self.file.write("radius=\"%s\" " % (round(radius,self.cp))) - self.file.write("ambientIntensity=\"%s\" " % (round(ambientIntensity,self.cp))) - self.file.write("intensity=\"%s\" " % (round(intensity,self.cp))) - self.file.write("color=\"%s %s %s\" " % (round(lamp.col[0],self.cp), round(lamp.col[1],self.cp), round(lamp.col[2],self.cp))) - self.file.write("beamWidth=\"%s\" " % (round(beamWidth,self.cp))) - self.file.write("cutOffAngle=\"%s\" " % (round(cutOffAngle,self.cp))) - self.file.write("direction=\"%s %s %s\" " % (round(dx,3),round(dy,3),round(dz,3))) - self.file.write("location=\"%s %s %s\" />\n\n" % (round(location[0],3), round(location[1],3), round(location[2],3))) - - def writeDirectionalLight(self, ob, lamp): - safeName = self.cleanStr(ob.name) - if world: - ambi = world.amb - ambientIntensity = ((float(ambi[0] + ambi[1] + ambi[2]))/3)/2.5 - else: - ambi = 0 - ambientIntensity = 0 - - intensity=min(lamp.energy/1.75,1.0) - (dx,dy,dz)=self.computeDirection(ob) - self.file.write("<DirectionalLight DEF=\"%s\" " % safeName) - self.file.write("ambientIntensity=\"%s\" " % (round(ambientIntensity,self.cp))) - self.file.write("color=\"%s %s %s\" " % (round(lamp.col[0],self.cp), round(lamp.col[1],self.cp), round(lamp.col[2],self.cp))) - self.file.write("intensity=\"%s\" " % (round(intensity,self.cp))) - self.file.write("direction=\"%s %s %s\" />\n\n" % (round(dx,4),round(dy,4),round(dz,4))) - - def writePointLight(self, ob, lamp): - safeName = self.cleanStr(ob.name) - if world: - ambi = world.amb - ambientIntensity = ((float(ambi[0] + ambi[1] + ambi[2]))/3)/2.5 - else: - ambi = 0 - ambientIntensity = 0 - - location=ob.getLocation('worldspace') - intensity=min(lamp.energy/1.75,1.0) - radius = lamp.dist - self.file.write("<PointLight DEF=\"%s\" " % safeName) - self.file.write("ambientIntensity=\"%s\" " % (round(ambientIntensity,self.cp))) - self.file.write("color=\"%s %s %s\" " % (round(lamp.col[0],self.cp), round(lamp.col[1],self.cp), round(lamp.col[2],self.cp))) - self.file.write("intensity=\"%s\" " % (round(intensity,self.cp))) - self.file.write("radius=\"%s\" " % radius ) - self.file.write("location=\"%s %s %s\" />\n\n" % (round(location[0],3), round(location[1],3), round(location[2],3))) - - def writeNode(self, thisObj): - obname=str(thisObj.getName()) - if obname in self.namesStandard: - return - else: - dx,dy,dz = self.computeDirection(thisObj) - location = thisObj.getLocation('worldspace') - self.writeIndented("<%s\n" % obname,1) - self.writeIndented("# direction %s %s %s\n" % (round(dx,3),round(dy,3),round(dz,3))) - self.writeIndented("# location %s %s %s\n" % (round(location[0],3), round(location[1],3), round(location[2],3))) - self.writeIndented("/>\n",-1) - self.writeIndented("\n") - - def secureName(self, name): - name = name + str(self.nodeID) - self.nodeID=self.nodeID+1 - if len(name) <= 3: - newname = "_" + str(self.nodeID) - return "%s" % (newname) - else: - for bad in ['"','#',"'",',','.','[','\\',']','{','}']: - name=name.replace(bad,'_') - if name in self.namesReserved: - newname = name[0:3] + "_" + str(self.nodeID) - return "%s" % (newname) - elif name[0].isdigit(): - newname = "_" + name + str(self.nodeID) - return "%s" % (newname) - else: - newname = name - return "%s" % (newname) - - def writeIndexedFaceSet(self, ob, normals = 0): - imageMap={} # set of used images - sided={} # 'one':cnt , 'two':cnt - vColors={} # 'multi':1 - meshName = self.cleanStr(ob.name) - mesh=ob.data - meshME = self.cleanStr(mesh.name) - if len(mesh.faces) == 0: return - for face in mesh.faces: - if face.mode & Blender.NMesh.FaceModes['HALO'] and self.halonode == 0: - self.writeIndented("<Billboard axisOfRotation=\"0 0 0\">\n",1) - self.halonode = 1 - elif face.mode & Blender.NMesh.FaceModes['BILLBOARD'] and self.billnode == 0: - self.writeIndented("<Billboard axisOfRotation=\"0 1 0\">\n",1) - self.billnode = 1 - elif face.mode & Blender.NMesh.FaceModes['OBCOL'] and self.matonly == 0: - self.matonly = 1 - elif face.mode & Blender.NMesh.FaceModes['SHAREDCOL'] and self.share == 0: - self.share = 1 - elif face.mode & Blender.NMesh.FaceModes['TILES'] and self.tilenode == 0: - self.tilenode = 1 - elif not face.mode & Blender.NMesh.FaceModes['DYNAMIC'] and self.collnode == 0: - self.writeIndented("<Collision enabled=\"false\">\n",1) - self.collnode = 1 - - nIFSCnt=self.countIFSSetsNeeded(mesh, imageMap, sided, vColors) - - if nIFSCnt > 1: - self.writeIndented("<Group DEF=\"%s%s\">\n" % ("G_", meshName),1) - - if sided.has_key('two') and sided['two'] > 0: - bTwoSided=1 - else: - bTwoSided=0 - - location= ob.getLocation('worldspace') - self.writeIndented("<Transform DEF=\"%s\" translation=\"%s %s %s\">\n" % (meshName, round(location[0],3), round(location[1],3), round(location[2],3)),1) - self.writeIndented("<Shape>\n",1) - - maters=mesh.materials - hasImageTexture=0 - issmooth=0 - - if len(maters) > 0 or mesh.hasFaceUV(): - self.writeIndented("<Appearance>\n", 1) - # right now this script can only handle a single material per mesh. - if len(maters) >= 1: - mat=maters[0] - matFlags = mat.getMode() - if not matFlags & Blender.Material.Modes['TEXFACE']: - self.writeMaterial(mat, self.cleanStr(maters[0].name,'')) - if len(maters) > 1: - print "Warning: mesh named %s has multiple materials" % meshName - print "Warning: only one material per object handled" - - #-- textures - if mesh.hasFaceUV(): - for face in mesh.faces: - if (hasImageTexture == 0) and (face.image): - self.writeImageTexture(face.image) - hasImageTexture=1 # keep track of face texture - if self.tilenode == 1: - self.writeIndented("<TextureTransform scale=\"%s %s\" />\n" % (face.image.xrep, face.image.yrep)) - self.tilenode = 0 - self.writeIndented("</Appearance>\n", -1) - - #-- IndexedFaceSet or IndexedLineSet - - # check if object is wireframe only - if ob.drawType == Blender.Object.DrawTypes.WIRE: - # user selected WIRE=2 on the Drawtype=Wire on (F9) Edit page - ifStyle="IndexedLineSet" - self.wire = 1 - else: - # user selected BOUNDS=1, SOLID=3, SHARED=4, or TEXTURE=5 - ifStyle="IndexedFaceSet" - # look up mesh name, use it if available - if self.meshNames.has_key(meshME): - self.writeIndented("<%s USE=\"ME_%s\">" % (ifStyle, meshME), 1) - self.meshNames[meshME]+=1 - else: - if int(mesh.users) > 1: - self.writeIndented("<%s DEF=\"ME_%s\" " % (ifStyle, meshME), 1) - self.meshNames[meshME]=1 - else: - self.writeIndented("<%s " % ifStyle, 1) - if ob.drawType != Blender.Object.DrawTypes.WIRE: - if bTwoSided == 1: - self.file.write("solid=\"false\" ") - else: - self.file.write("solid=\"true\" ") - - for face in mesh.faces: - if face.smooth: - issmooth=1 - break - if issmooth==1 and self.wire == 0: - creaseAngle=(mesh.getMaxSmoothAngle())*(math.pi/180.0) - self.file.write("creaseAngle=\"%s\" " % (round(creaseAngle,self.cp))) - - #--- output vertexColors - if self.share == 1 and self.matonly == 0: - self.writeVertexColors(mesh) - if ob.drawType != Blender.Object.DrawTypes.WIRE: - #--- output textureCoordinates if UV texture used - if mesh.hasFaceUV(): - if self.matonly == 1 and self.share == 1: - self.writeFaceColors(mesh) - elif hasImageTexture == 1: - self.writeTextureCoordinates(mesh) - #--- output coordinates - self.writeCoordinates(ob, mesh, meshName) - - self.writingcoords = 1 - self.writingtexture = 1 - self.writingcolor = 1 - self.writeCoordinates(ob, mesh, meshName) - - if ob.drawType != Blender.Object.DrawTypes.WIRE: - #--- output textureCoordinates if UV texture used - if mesh.hasFaceUV(): - if hasImageTexture == 1: - self.writeTextureCoordinates(mesh) - elif self.matonly == 1 and self.share == 1: - self.writeFaceColors(mesh) - #--- output vertexColors - if self.share == 1 and self.matonly == 0: - self.writeVertexColors(mesh) - self.matonly = 0 - self.share = 0 - self.wire = 0 - self.writingcoords = 0 - self.writingtexture = 0 - self.writingcolor = 0 - #--- output closing braces - self.writeIndented("</%s>\n" % ifStyle, -1) - self.writeIndented("</Shape>\n", -1) - self.writeIndented("</Transform>\n", -1) - - if self.halonode == 1: - self.writeIndented("</Billboard>\n", -1) - self.halonode = 0 - - if self.billnode == 1: - self.writeIndented("</Billboard>\n", -1) - self.billnode = 0 - - if self.collnode == 1: - self.writeIndented("</Collision>\n", -1) - self.collnode = 0 - - if nIFSCnt > 1: - self.writeIndented("</Group>\n", -1) - - self.file.write("\n") - - def writeCoordinates(self, ob, mesh, meshName): - meshVertexList = mesh.verts - - # create vertex list and pre rotate -90 degrees X for VRML - location= ob.getLocation('worldspace') - if self.writingcoords == 0: - self.file.write('coordIndex="') - for face in mesh.faces: - for i in xrange(len(face)): - indx=face[i].index - self.file.write("%s " % indx) - self.file.write("-1, ") - self.file.write("\">\n") - else: - #-- vertices - mesh.transform(ob.matrixWorld) - self.writeIndented("<Coordinate DEF=\"%s%s\" \n" % ("coord_",meshName), 1) - self.file.write("\t\t\t\tpoint=\"") - for v in meshVertexList: - self.file.write("%.6f %.6f %.6f, " % tuple(v.co)) - self.file.write("\" />") - self.writeIndented("\n", -1) - - def writeTextureCoordinates(self, mesh): - texCoordList=[] - texIndexList=[] - j=0 - - for face in mesh.faces: - for i in xrange(len(face)): - texIndexList.append(j) - texCoordList.append(face.uv[i]) - j=j+1 - texIndexList.append(-1) - if self.writingtexture == 0: - self.file.write("\n\t\t\ttexCoordIndex=\"") - texIndxStr="" - for i in xrange(len(texIndexList)): - texIndxStr = texIndxStr + "%d, " % texIndexList[i] - if texIndexList[i]==-1: - self.file.write(texIndxStr) - texIndxStr="" - self.file.write("\"\n\t\t\t") - else: - self.writeIndented("<TextureCoordinate point=\"", 1) - for i in xrange(len(texCoordList)): - self.file.write("%s %s, " % (round(texCoordList[i][0],self.tp), round(texCoordList[i][1],self.tp))) - self.file.write("\" />") - self.writeIndented("\n", -1) - - def writeFaceColors(self, mesh): - if self.writingcolor == 0: - self.file.write("colorPerVertex=\"false\" ") - else: - self.writeIndented("<Color color=\"", 1) - for face in mesh.faces: - if face.col: - c=face.col[0] - if self.verbose > 2: - print "Debug: face.col r=%d g=%d b=%d" % (c.r, c.g, c.b) - aColor = self.rgbToFS(c) - self.file.write("%s, " % aColor) - self.file.write("\" />") - self.writeIndented("\n",-1) - - def writeVertexColors(self, mesh): - if self.writingcolor == 0: - self.file.write("colorPerVertex=\"false\" ") - else: - self.writeIndented("<Color color=\"", 1) - for i in xrange(len(mesh.verts)): - c=self.getVertexColorByIndx(mesh,i) - if self.verbose > 2: - print "Debug: vertex[%d].col r=%d g=%d b=%d" % (i, c.r, c.g, c.b) - - aColor = self.rgbToFS(c) - self.file.write("%s, " % aColor) - self.file.write("\" />") - self.writeIndented("\n",-1) - - def writeMaterial(self, mat, matName): - # look up material name, use it if available - if self.matNames.has_key(matName): - self.writeIndented("<Material USE=\"MA_%s\" />\n" % matName) - self.matNames[matName]+=1 - return; - - self.matNames[matName]=1 - - ambient = mat.amb/3 - diffuseR, diffuseG, diffuseB = mat.rgbCol[0], mat.rgbCol[1],mat.rgbCol[2] - if world: - ambi = world.getAmb() - ambi0, ambi1, ambi2 = (ambi[0]*mat.amb)*2, (ambi[1]*mat.amb)*2, (ambi[2]*mat.amb)*2 - else: - ambi0, ambi1, ambi2 = 0, 0, 0 - emisR, emisG, emisB = (diffuseR*mat.emit+ambi0)/2, (diffuseG*mat.emit+ambi1)/2, (diffuseB*mat.emit+ambi2)/2 - - shininess = mat.hard/512.0 - specR = (mat.specCol[0]+0.001)/(1.25/(mat.getSpec()+0.001)) - specG = (mat.specCol[1]+0.001)/(1.25/(mat.getSpec()+0.001)) - specB = (mat.specCol[2]+0.001)/(1.25/(mat.getSpec()+0.001)) - transp = 1-mat.alpha - matFlags = mat.getMode() - if matFlags & Blender.Material.Modes['SHADELESS']: - ambient = 1 - shine = 1 - specR = emitR = diffuseR - specG = emitG = diffuseG - specB = emitB = diffuseB - self.writeIndented("<Material DEF=\"MA_%s\" " % matName, 1) - self.file.write("diffuseColor=\"%s %s %s\" " % (round(diffuseR,self.cp), round(diffuseG,self.cp), round(diffuseB,self.cp))) - self.file.write("specularColor=\"%s %s %s\" " % (round(specR,self.cp), round(specG,self.cp), round(specB,self.cp))) - self.file.write("emissiveColor=\"%s %s %s\" \n" % (round(emisR,self.cp), round(emisG,self.cp), round(emisB,self.cp))) - self.writeIndented("ambientIntensity=\"%s\" " % (round(ambient,self.cp))) - self.file.write("shininess=\"%s\" " % (round(shininess,self.cp))) - self.file.write("transparency=\"%s\" />" % (round(transp,self.cp))) - self.writeIndented("\n",-1) - - def writeImageTexture(self, image): - name = image.name - filename = image.filename.split('/')[-1].split('\\')[-1] - if self.texNames.has_key(name): - self.writeIndented("<ImageTexture USE=\"%s\" />\n" % self.cleanStr(name)) - self.texNames[name] += 1 - return - else: - self.writeIndented("<ImageTexture DEF=\"%s\" " % self.cleanStr(name), 1) - self.file.write("url=\"%s\" />" % name) - self.writeIndented("\n",-1) - self.texNames[name] = 1 - - def writeBackground(self): - if world: worldname = world.name - else: return - blending = world.getSkytype() - grd = world.getHor() - grd0, grd1, grd2 = grd[0], grd[1], grd[2] - sky = world.getZen() - sky0, sky1, sky2 = sky[0], sky[1], sky[2] - mix0, mix1, mix2 = grd[0]+sky[0], grd[1]+sky[1], grd[2]+sky[2] - mix0, mix1, mix2 = mix0/2, mix1/2, mix2/2 - self.file.write("<Background ") - if worldname not in self.namesStandard: - self.file.write("DEF=\"%s\" " % self.secureName(worldname)) - # No Skytype - just Hor color - if blending == 0: - self.file.write("groundColor=\"%s %s %s\" " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) - self.file.write("skyColor=\"%s %s %s\" " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) - # Blend Gradient - elif blending == 1: - self.file.write("groundColor=\"%s %s %s, " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) - self.file.write("%s %s %s\" groundAngle=\"1.57, 1.57\" " %(round(mix0,self.cp), round(mix1,self.cp), round(mix2,self.cp))) - self.file.write("skyColor=\"%s %s %s, " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) - self.file.write("%s %s %s\" skyAngle=\"1.57, 1.57\" " %(round(mix0,self.cp), round(mix1,self.cp), round(mix2,self.cp))) - # Blend+Real Gradient Inverse - elif blending == 3: - self.file.write("groundColor=\"%s %s %s, " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) - self.file.write("%s %s %s\" groundAngle=\"1.57, 1.57\" " %(round(mix0,self.cp), round(mix1,self.cp), round(mix2,self.cp))) - self.file.write("skyColor=\"%s %s %s, " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) - self.file.write("%s %s %s\" skyAngle=\"1.57, 1.57\" " %(round(mix0,self.cp), round(mix1,self.cp), round(mix2,self.cp))) - # Paper - just Zen Color - elif blending == 4: - self.file.write("groundColor=\"%s %s %s\" " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) - self.file.write("skyColor=\"%s %s %s\" " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) - # Blend+Real+Paper - komplex gradient - elif blending == 7: - self.writeIndented("groundColor=\"%s %s %s, " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) - self.writeIndented("%s %s %s\" groundAngle=\"1.57, 1.57\" " %(round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) - self.writeIndented("skyColor=\"%s %s %s, " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) - self.writeIndented("%s %s %s\" skyAngle=\"1.57, 1.57\" " %(round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) - # Any Other two colors - else: - self.file.write("groundColor=\"%s %s %s\" " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) - self.file.write("skyColor=\"%s %s %s\" " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) - alltexture = len(worldmat) - for i in xrange(alltexture): - namemat = worldmat[i].getName() - pic = worldmat[i].getImage() - if (namemat == "back") and (pic != None): - self.file.write("\n\tbackUrl=\"%s\" " % str(pic.getName())) - elif (namemat == "bottom") and (pic != None): - self.writeIndented("bottomUrl=\"%s\" " % str(pic.getName())) - elif (namemat == "front") and (pic != None): - self.writeIndented("frontUrl=\"%s\" " % str(pic.getName())) - elif (namemat == "left") and (pic != None): - self.writeIndented("leftUrl=\"%s\" " % str(pic.getName())) - elif (namemat == "right") and (pic != None): - self.writeIndented("rightUrl=\"%s\" " % str(pic.getName())) - elif (namemat == "top") and (pic != None): - self.writeIndented("topUrl=\"%s\" " % str(pic.getName())) - self.writeIndented("/>\n\n") + def writeHeader(self): + #bfile = sys.expandpath( Blender.Get('filename') ).replace('<', '<').replace('>', '>') + bfile = self.filename.replace('<', '<').replace('>', '>') # use outfile name + self.file.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n") + self.file.write("<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/specifications/x3d-3.0.dtd\">\n") + self.file.write("<X3D version=\"3.0\" profile=\"Immersive\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema-instance\" xsd:noNamespaceSchemaLocation=\"http://www.web3d.org/specifications/x3d-3.0.xsd\">\n") + self.file.write("<head>\n") + self.file.write("\t<meta name=\"filename\" content=\"%s\" />\n" % sys.basename(bfile)) + self.file.write("\t<meta name=\"generator\" content=\"Blender %s\" />\n" % Blender.Get('version')) + self.file.write("\t<meta name=\"translator\" content=\"X3D exporter v1.55 (2006/01/17)\" />\n") + self.file.write("</head>\n") + self.file.write("<Scene>\n") + + # This functionality is poorly defined, disabling for now - campbell + ''' + def writeInline(self): + inlines = Blender.Scene.Get() + allinlines = len(inlines) + if scene != inlines[0]: + return + else: + for i in xrange(allinlines): + nameinline=inlines[i].name + if (nameinline not in self.namesStandard) and (i > 0): + self.file.write("<Inline DEF=\"%s\" " % (self.cleanStr(nameinline))) + nameinline = nameinline+".x3d" + self.file.write("url=\"%s\" />" % nameinline) + self.file.write("\n\n") + ''' + + def writeScript(self): + textEditor = Blender.Text.Get() + alltext = len(textEditor) + for i in xrange(alltext): + nametext = textEditor[i].name + nlines = textEditor[i].getNLines() + if (self.proto == 1): + if (nametext == "proto" or nametext == "proto.js" or nametext == "proto.txt") and (nlines != None): + nalllines = len(textEditor[i].asLines()) + alllines = textEditor[i].asLines() + for j in xrange(nalllines): + self.writeIndented(alllines[j] + "\n") + elif (self.proto == 0): + if (nametext == "route" or nametext == "route.js" or nametext == "route.txt") and (nlines != None): + nalllines = len(textEditor[i].asLines()) + alllines = textEditor[i].asLines() + for j in xrange(nalllines): + self.writeIndented(alllines[j] + "\n") + self.writeIndented("\n") + + def writeViewpoint(self, ob, scene): + context = scene.render + ratio = float(context.imageSizeY())/float(context.imageSizeX()) + lens = (360* (math.atan(ratio *16 / ob.data.getLens()) / math.pi))*(math.pi/180) + lens = min(lens, math.pi) + + # get the camera location, subtract 90 degress from X to orient like X3D does + mat = ob.matrixWorld + loc = self.rotatePointForVRML(mat.translationPart()) + rot = mat.toEuler() + rot = (((rot[0]-90)*DEG2RAD), rot[1]*DEG2RAD, rot[2]*DEG2RAD) + nRot = self.rotatePointForVRML( rot ) + # convert to Quaternion and to Angle Axis + Q = self.eulerToQuaternions(nRot[0], nRot[1], nRot[2]) + Q1 = self.multiplyQuaternions(Q[0], Q[1]) + Qf = self.multiplyQuaternions(Q1, Q[2]) + angleAxis = self.quaternionToAngleAxis(Qf) + self.file.write("<Viewpoint DEF=\"%s\" " % (self.cleanStr(ob.name))) + self.file.write("description=\"%s\" " % (ob.name)) + self.file.write("centerOfRotation=\"0 0 0\" ") + self.file.write("position=\"%3.2f %3.2f %3.2f\" " % (loc[0], loc[1], loc[2])) + self.file.write("orientation=\"%3.2f %3.2f %3.2f %3.2f\" " % (angleAxis[0], angleAxis[1], -angleAxis[2], angleAxis[3])) + self.file.write("fieldOfView=\"%.3f\" />\n\n" % (lens)) + + def writeFog(self, world): + if world: + mtype = world.getMistype() + mparam = world.getMist() + grd = world.getHor() + grd0, grd1, grd2 = grd[0], grd[1], grd[2] + else: + return + if (mtype == 1 or mtype == 2): + self.file.write("<Fog fogType=\"%s\" " % self.namesFog[mtype]) + self.file.write("color=\"%s %s %s\" " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) + self.file.write("visibilityRange=\"%s\" />\n\n" % round(mparam[2],self.cp)) + else: + return + ''' + def writeNavigationInfo(self, scene): + allObj = [] + allObj = list(scene.objects) + headlight = "true" + vislimit = 0.0 + for ob in allObj: + objType=ob.type + if objType == "Camera": + vislimit = ob.data.clipEnd + elif objType == "Lamp": + headlight = "false" + self.file.write("<NavigationInfo headlight=\"%s\" " % headlight) + self.file.write("visibilityLimit=\"%s\" " % (round(vislimit,self.cp))) + self.file.write("type=\"EXAMINE\", \"ANY\" avatarSize=\"0.25, 1.75, 0.75\" />\n\n") + ''' + def writeSpotLight(self, ob, lamp, world): + safeName = self.cleanStr(ob.name) + if world: + ambi = world.amb + ambientIntensity = ((float(ambi[0] + ambi[1] + ambi[2]))/3)/2.5 + else: + ambi = 0 + ambientIntensity = 0 + + # compute cutoff and beamwidth + intensity=min(lamp.energy/1.75,1.0) + beamWidth=((lamp.spotSize*math.pi)/180.0)*.37; + cutOffAngle=beamWidth*1.3 + + dx,dy,dz=self.computeDirection(ob) + # note -dx seems to equal om[3][0] + # note -dz seems to equal om[3][1] + # note dy seems to equal om[3][2] + + location=(ob.matrixWorld*MATWORLD).translationPart() + radius = lamp.dist*math.cos(beamWidth) + self.file.write("<SpotLight DEF=\"%s\" " % safeName) + self.file.write("radius=\"%s\" " % (round(radius,self.cp))) + self.file.write("ambientIntensity=\"%s\" " % (round(ambientIntensity,self.cp))) + self.file.write("intensity=\"%s\" " % (round(intensity,self.cp))) + self.file.write("color=\"%s %s %s\" " % (round(lamp.col[0],self.cp), round(lamp.col[1],self.cp), round(lamp.col[2],self.cp))) + self.file.write("beamWidth=\"%s\" " % (round(beamWidth,self.cp))) + self.file.write("cutOffAngle=\"%s\" " % (round(cutOffAngle,self.cp))) + self.file.write("direction=\"%s %s %s\" " % (round(dx,3),round(dy,3),round(dz,3))) + self.file.write("location=\"%s %s %s\" />\n\n" % (round(location[0],3), round(location[1],3), round(location[2],3))) + + + def writeDirectionalLight(self, ob, lamp, world): + safeName = self.cleanStr(ob.name) + if world: + ambi = world.amb + ambientIntensity = ((float(ambi[0] + ambi[1] + ambi[2]))/3)/2.5 + else: + ambi = 0 + ambientIntensity = 0 + + intensity=min(lamp.energy/1.75,1.0) + (dx,dy,dz)=self.computeDirection(ob) + self.file.write("<DirectionalLight DEF=\"%s\" " % safeName) + self.file.write("ambientIntensity=\"%s\" " % (round(ambientIntensity,self.cp))) + self.file.write("color=\"%s %s %s\" " % (round(lamp.col[0],self.cp), round(lamp.col[1],self.cp), round(lamp.col[2],self.cp))) + self.file.write("intensity=\"%s\" " % (round(intensity,self.cp))) + self.file.write("direction=\"%s %s %s\" />\n\n" % (round(dx,4),round(dy,4),round(dz,4))) + + def writePointLight(self, ob, lamp, world): + safeName = self.cleanStr(ob.name) + if world: + ambi = world.amb + ambientIntensity = ((float(ambi[0] + ambi[1] + ambi[2]))/3)/2.5 + else: + ambi = 0 + ambientIntensity = 0 + + location=(ob.matrixWorld*MATWORLD).translationPart() + intensity=min(lamp.energy/1.75,1.0) + radius = lamp.dist + self.file.write("<PointLight DEF=\"%s\" " % safeName) + self.file.write("ambientIntensity=\"%s\" " % (round(ambientIntensity,self.cp))) + self.file.write("color=\"%s %s %s\" " % (round(lamp.col[0],self.cp), round(lamp.col[1],self.cp), round(lamp.col[2],self.cp))) + self.file.write("intensity=\"%s\" " % (round(intensity,self.cp))) + self.file.write("radius=\"%s\" " % radius ) + self.file.write("location=\"%s %s %s\" />\n\n" % (round(location[0],3), round(location[1],3), round(location[2],3))) + + def writeNode(self, ob): + obname=str(ob.name) + if obname in self.namesStandard: + return + else: + dx,dy,dz = self.computeDirection(ob) + location=(ob.matrixWorld*MATWORLD).translationPart() + self.writeIndented("<%s\n" % obname,1) + self.writeIndented("# direction %s %s %s\n" % (round(dx,3),round(dy,3),round(dz,3))) + self.writeIndented("# location %s %s %s\n" % (round(location[0],3), round(location[1],3), round(location[2],3))) + self.writeIndented("/>\n",-1) + self.writeIndented("\n") + + def secureName(self, name): + name = name + str(self.nodeID) + self.nodeID=self.nodeID+1 + if len(name) <= 3: + newname = "_" + str(self.nodeID) + return "%s" % (newname) + else: + for bad in ['"','#',"'",',','.','[','\\',']','{','}']: + name=name.replace(bad,'_') + if name in self.namesReserved: + newname = name[0:3] + "_" + str(self.nodeID) + return "%s" % (newname) + elif name[0].isdigit(): + newname = "_" + name + str(self.nodeID) + return "%s" % (newname) + else: + newname = name + return "%s" % (newname) + + def writeIndexedFaceSet(self, ob, world, normals = 0): + imageMap={} # set of used images + sided={} # 'one':cnt , 'two':cnt + vColors={} # 'multi':1 + meshName = self.cleanStr(ob.name) + mesh=ob.getData(mesh=1) + meshME = self.cleanStr(mesh.name) + if len(mesh.faces) == 0: return + mode = 0 + if mesh.faceUV: + for face in mesh.faces: + mode |= face.mode + + if mode & Mesh.FaceModes.HALO and self.halonode == 0: + self.writeIndented("<Billboard axisOfRotation=\"0 0 0\">\n",1) + self.halonode = 1 + elif mode & Mesh.FaceModes.BILLBOARD and self.billnode == 0: + self.writeIndented("<Billboard axisOfRotation=\"0 1 0\">\n",1) + self.billnode = 1 + elif mode & Mesh.FaceModes.OBCOL and self.matonly == 0: + self.matonly = 1 + elif mode & Mesh.FaceModes.TILES and self.tilenode == 0: + self.tilenode = 1 + elif not mode & Mesh.FaceModes.DYNAMIC and self.collnode == 0: + self.writeIndented("<Collision enabled=\"false\">\n",1) + self.collnode = 1 + + nIFSCnt=self.countIFSSetsNeeded(mesh, imageMap, sided, vColors) + + if nIFSCnt > 1: + self.writeIndented("<Group DEF=\"%s%s\">\n" % ("G_", meshName),1) + + if sided.has_key('two') and sided['two'] > 0: + bTwoSided=1 + else: + bTwoSided=0 + + mtx = ob.matrixWorld * MATWORLD + + loc= mtx.translationPart() + sca= mtx.scalePart() + quat = mtx.toQuat() + rot= quat.axis + + # self.writeIndented('<Transform rotation="%.6f %.6f %.6f %.6f">\n' % (rot[0], rot[1], rot[2], rot[3])) + self.writeIndented('<Transform DEF="%s" translation="%.6f %.6f %.6f" scale="%.6f %.6f %.6f" rotation="%.6f %.6f %.6f %.6f">\n' % \ + (meshName, loc[0], loc[1], loc[2], sca[0], sca[1], sca[2], rot[0], rot[1], rot[2], quat.angle*DEG2RAD) ) + + self.writeIndented("<Shape>\n",1) + maters=mesh.materials + hasImageTexture=0 + issmooth=0 + + if len(maters) > 0 or mesh.faceUV: + self.writeIndented("<Appearance>\n", 1) + # right now this script can only handle a single material per mesh. + if len(maters) >= 1: + mat=maters[0] + matFlags = mat.getMode() + if not matFlags & Blender.Material.Modes['TEXFACE']: + self.writeMaterial(mat, self.cleanStr(maters[0].name,''), world) + if len(maters) > 1: + print "Warning: mesh named %s has multiple materials" % meshName + print "Warning: only one material per object handled" + + #-- textures + if mesh.faceUV: + for face in mesh.faces: + if (hasImageTexture == 0) and (face.image): + self.writeImageTexture(face.image) + hasImageTexture=1 # keep track of face texture + if self.tilenode == 1: + self.writeIndented("<TextureTransform scale=\"%s %s\" />\n" % (face.image.xrep, face.image.yrep)) + self.tilenode = 0 + self.writeIndented("</Appearance>\n", -1) + + #-- IndexedFaceSet or IndexedLineSet + + # user selected BOUNDS=1, SOLID=3, SHARED=4, or TEXTURE=5 + ifStyle="IndexedFaceSet" + # look up mesh name, use it if available + if self.meshNames.has_key(meshME): + self.writeIndented("<%s USE=\"ME_%s\">" % (ifStyle, meshME), 1) + self.meshNames[meshME]+=1 + else: + if int(mesh.users) > 1: + self.writeIndented("<%s DEF=\"ME_%s\" " % (ifStyle, meshME), 1) + self.meshNames[meshME]=1 + else: + self.writeIndented("<%s " % ifStyle, 1) + + if bTwoSided == 1: + self.file.write("solid=\"false\" ") + else: + self.file.write("solid=\"true\" ") + + for face in mesh.faces: + if face.smooth: + issmooth=1 + break + if issmooth==1: + creaseAngle=(mesh.degr)*(math.pi/180.0) + self.file.write("creaseAngle=\"%s\" " % (round(creaseAngle,self.cp))) + + #--- output textureCoordinates if UV texture used + if mesh.faceUV: + if self.matonly == 1 and self.share == 1: + self.writeFaceColors(mesh) + elif hasImageTexture == 1: + self.writeTextureCoordinates(mesh) + #--- output coordinates + self.writeCoordinates(ob, mesh, meshName) + + self.writingcoords = 1 + self.writingtexture = 1 + self.writingcolor = 1 + self.writeCoordinates(ob, mesh, meshName) + + #--- output textureCoordinates if UV texture used + if mesh.faceUV: + if hasImageTexture == 1: + self.writeTextureCoordinates(mesh) + elif self.matonly == 1 and self.share == 1: + self.writeFaceColors(mesh) + #--- output vertexColors + self.matonly = 0 + self.share = 0 + + self.writingcoords = 0 + self.writingtexture = 0 + self.writingcolor = 0 + #--- output closing braces + self.writeIndented("</%s>\n" % ifStyle, -1) + self.writeIndented("</Shape>\n", -1) + self.writeIndented("</Transform>\n", -1) + + if self.halonode == 1: + self.writeIndented("</Billboard>\n", -1) + self.halonode = 0 + + if self.billnode == 1: + self.writeIndented("</Billboard>\n", -1) + self.billnode = 0 + + if self.collnode == 1: + self.writeIndented("</Collision>\n", -1) + self.collnode = 0 + + if nIFSCnt > 1: + self.writeIndented("</Group>\n", -1) + + self.file.write("\n") + + def writeCoordinates(self, ob, mesh, meshName): + # create vertex list and pre rotate -90 degrees X for VRML + + if self.writingcoords == 0: + self.file.write('coordIndex="') + for face in mesh.faces: + fv = face.v + if len(face)==4: + self.file.write("%i %i %i %i -1, " % (fv[0].index, fv[1].index, fv[2].index, fv[3].index)) + else: + self.file.write("%i %i %i -1, " % (fv[0].index, fv[1].index, fv[2].index)) + self.file.write("\">\n") + else: + #-- vertices + # mesh.transform(ob.matrixWorld) + self.writeIndented("<Coordinate DEF=\"%s%s\" \n" % ("coord_",meshName), 1) + self.file.write("\t\t\t\tpoint=\"") + for v in mesh.verts: + self.file.write("%.6f %.6f %.6f, " % tuple(v.co)) + self.file.write("\" />") + self.writeIndented("\n", -1) + + def writeTextureCoordinates(self, mesh): + texCoordList=[] + texIndexList=[] + j=0 + + for face in mesh.faces: + for uv in face.uv: + texIndexList.append(j) + texCoordList.append(uv) + j=j+1 + texIndexList.append(-1) + if self.writingtexture == 0: + self.file.write("\n\t\t\ttexCoordIndex=\"") + texIndxStr="" + for i in xrange(len(texIndexList)): + texIndxStr = texIndxStr + "%d, " % texIndexList[i] + if texIndexList[i]==-1: + self.file.write(texIndxStr) + texIndxStr="" + self.file.write("\"\n\t\t\t") + else: + self.writeIndented("<TextureCoordinate point=\"", 1) + for i in xrange(len(texCoordList)): + self.file.write("%s %s, " % (round(texCoordList[i][0],self.tp), round(texCoordList[i][1],self.tp))) + self.file.write("\" />") + self.writeIndented("\n", -1) + + def writeFaceColors(self, mesh): + if self.writingcolor == 0: + self.file.write("colorPerVertex=\"false\" ") + else: + self.writeIndented("<Color color=\"", 1) + for face in mesh.faces: + if face.col: + c=face.col[0] + if self.verbose > 2: + print "Debug: face.col r=%d g=%d b=%d" % (c.r, c.g, c.b) + aColor = self.rgbToFS(c) + self.file.write("%s, " % aColor) + self.file.write("\" />") + self.writeIndented("\n",-1) + + def writeMaterial(self, mat, matName, world): + # look up material name, use it if available + if self.matNames.has_key(matName): + self.writeIndented("<Material USE=\"MA_%s\" />\n" % matName) + self.matNames[matName]+=1 + return; + + self.matNames[matName]=1 + + ambient = mat.amb/3 + diffuseR, diffuseG, diffuseB = mat.rgbCol[0], mat.rgbCol[1],mat.rgbCol[2] + if world: + ambi = world.getAmb() + ambi0, ambi1, ambi2 = (ambi[0]*mat.amb)*2, (ambi[1]*mat.amb)*2, (ambi[2]*mat.amb)*2 + else: + ambi0, ambi1, ambi2 = 0, 0, 0 + emisR, emisG, emisB = (diffuseR*mat.emit+ambi0)/2, (diffuseG*mat.emit+ambi1)/2, (diffuseB*mat.emit+ambi2)/2 + + shininess = mat.hard/512.0 + specR = (mat.specCol[0]+0.001)/(1.25/(mat.spec+0.001)) + specG = (mat.specCol[1]+0.001)/(1.25/(mat.spec+0.001)) + specB = (mat.specCol[2]+0.001)/(1.25/(mat.spec+0.001)) + transp = 1-mat.alpha + matFlags = mat.getMode() + if matFlags & Blender.Material.Modes['SHADELESS']: + ambient = 1 + shine = 1 + specR = emitR = diffuseR + specG = emitG = diffuseG + specB = emitB = diffuseB + self.writeIndented("<Material DEF=\"MA_%s\" " % matName, 1) + self.file.write("diffuseColor=\"%s %s %s\" " % (round(diffuseR,self.cp), round(diffuseG,self.cp), round(diffuseB,self.cp))) + self.file.write("specularColor=\"%s %s %s\" " % (round(specR,self.cp), round(specG,self.cp), round(specB,self.cp))) + self.file.write("emissiveColor=\"%s %s %s\" \n" % (round(emisR,self.cp), round(emisG,self.cp), round(emisB,self.cp))) + self.writeIndented("ambientIntensity=\"%s\" " % (round(ambient,self.cp))) + self.file.write("shininess=\"%s\" " % (round(shininess,self.cp))) + self.file.write("transparency=\"%s\" />" % (round(transp,self.cp))) + self.writeIndented("\n",-1) + + def writeImageTexture(self, image): + name = image.name + filename = image.filename.split('/')[-1].split('\\')[-1] + if self.texNames.has_key(name): + self.writeIndented("<ImageTexture USE=\"%s\" />\n" % self.cleanStr(name)) + self.texNames[name] += 1 + return + else: + self.writeIndented("<ImageTexture DEF=\"%s\" " % self.cleanStr(name), 1) + self.file.write("url=\"%s\" />" % name) + self.writeIndented("\n",-1) + self.texNames[name] = 1 + + def writeBackground(self, world, alltextures): + if world: worldname = world.name + else: return + blending = world.getSkytype() + grd = world.getHor() + grd0, grd1, grd2 = grd[0], grd[1], grd[2] + sky = world.getZen() + sky0, sky1, sky2 = sky[0], sky[1], sky[2] + mix0, mix1, mix2 = grd[0]+sky[0], grd[1]+sky[1], grd[2]+sky[2] + mix0, mix1, mix2 = mix0/2, mix1/2, mix2/2 + self.file.write("<Background ") + if worldname not in self.namesStandard: + self.file.write("DEF=\"%s\" " % self.secureName(worldname)) + # No Skytype - just Hor color + if blending == 0: + self.file.write("groundColor=\"%s %s %s\" " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) + self.file.write("skyColor=\"%s %s %s\" " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) + # Blend Gradient + elif blending == 1: + self.file.write("groundColor=\"%s %s %s, " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) + self.file.write("%s %s %s\" groundAngle=\"1.57, 1.57\" " %(round(mix0,self.cp), round(mix1,self.cp), round(mix2,self.cp))) + self.file.write("skyColor=\"%s %s %s, " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) + self.file.write("%s %s %s\" skyAngle=\"1.57, 1.57\" " %(round(mix0,self.cp), round(mix1,self.cp), round(mix2,self.cp))) + # Blend+Real Gradient Inverse + elif blending == 3: + self.file.write("groundColor=\"%s %s %s, " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) + self.file.write("%s %s %s\" groundAngle=\"1.57, 1.57\" " %(round(mix0,self.cp), round(mix1,self.cp), round(mix2,self.cp))) + self.file.write("skyColor=\"%s %s %s, " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) + self.file.write("%s %s %s\" skyAngle=\"1.57, 1.57\" " %(round(mix0,self.cp), round(mix1,self.cp), round(mix2,self.cp))) + # Paper - just Zen Color + elif blending == 4: + self.file.write("groundColor=\"%s %s %s\" " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) + self.file.write("skyColor=\"%s %s %s\" " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) + # Blend+Real+Paper - komplex gradient + elif blending == 7: + self.writeIndented("groundColor=\"%s %s %s, " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) + self.writeIndented("%s %s %s\" groundAngle=\"1.57, 1.57\" " %(round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) + self.writeIndented("skyColor=\"%s %s %s, " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) + self.writeIndented("%s %s %s\" skyAngle=\"1.57, 1.57\" " %(round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) + # Any Other two colors + else: + self.file.write("groundColor=\"%s %s %s\" " % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp))) + self.file.write("skyColor=\"%s %s %s\" " % (round(sky0,self.cp), round(sky1,self.cp), round(sky2,self.cp))) + alltexture = len(alltextures) + for i in xrange(alltexture): + namemat = alltextures[i].name + pic = alltextures[i].getImage() + if (namemat == "back") and (pic != None): + self.file.write("\n\tbackUrl=\"%s\" " % pic.filename.split('/')[-1].split('\\')[-1]) + elif (namemat == "bottom") and (pic != None): + self.writeIndented("bottomUrl=\"%s\" " % pic.filename.split('/')[-1].split('\\')[-1]) + elif (namemat == "front") and (pic != None): + self.writeIndented("frontUrl=\"%s\" " % pic.filename.split('/')[-1].split('\\')[-1]) + elif (namemat == "left") and (pic != None): + self.writeIndented("leftUrl=\"%s\" " % pic.filename.split('/')[-1].split('\\')[-1]) + elif (namemat == "right") and (pic != None): + self.writeIndented("rightUrl=\"%s\" " % pic.filename.split('/')[-1].split('\\')[-1]) + elif (namemat == "top") and (pic != None): + self.writeIndented("topUrl=\"%s\" " % pic.filename.split('/')[-1].split('\\')[-1]) + self.writeIndented("/>\n\n") ########################################################## # export routine ########################################################## - def export(self, scene, world, worldmat): - print "Info: starting X3D export to " + self.filename + "..." - self.writeHeader() - self.writeScript() - self.writeNavigationInfo(scene) - self.writeBackground() - self.writeFog() - self.proto = 0 - allObj = [] - if ARG == 'selected': - allObj = list(scene.objects.context) - else: - allObj = list(scene.objects) - self.writeInline() - for thisObj in allObj: - try: - objType=thisObj.type - objName=thisObj.name - self.matonly = 0 - if objType == "Camera": - self.writeViewpoint(thisObj) - elif objType == "Mesh": - self.writeIndexedFaceSet(thisObj, normals = 0) - elif objType == "Lamp": - lmpName= thisObj.data - lmpType=lmpName.getType() - if lmpType == Lamp.Types.Lamp: - self.writePointLight(thisObj, lmpName) - elif lmpType == Lamp.Types.Spot: - self.writeSpotLight(thisObj, lmpName) - elif lmpType == Lamp.Types.Sun: - self.writeDirectionalLight(thisObj, lmpName) - else: - self.writeDirectionalLight(thisObj, lmpName) - elif objType == "Empty" and objName != "Empty": - self.writeNode(thisObj) - else: - #print "Info: Ignoring [%s], object type [%s] not handle yet" % (object.name,object.getType()) - print "" - except AttributeError: - print "Error: Unable to get type info for %s" % thisObj.getName() - if ARG != 'selected': - self.writeScript() - self.file.write("\n</Scene>\n</X3D>") - self.cleanup() - + def export(self, scene, world, alltextures): + print "Info: starting X3D export to " + self.filename + "..." + self.writeHeader() + self.writeScript() + # self.writeNavigationInfo(scene) # This seems to position me in some strange area I cant see the model (with BS Contact) - Campbell + self.writeBackground(world, alltextures) + self.writeFog(world) + self.proto = 0 + + for ob in scene.objects.context: + objType=ob.type + objName=ob.name + self.matonly = 0 + if objType == "Camera": + self.writeViewpoint(ob, scene) + elif objType == "Mesh": + self.writeIndexedFaceSet(ob, world, normals = 0) + elif objType == "Lamp": + data= ob.data + datatype=data.type + if datatype == Lamp.Types.Lamp: + self.writePointLight(ob, data, world) + elif datatype == Lamp.Types.Spot: + self.writeSpotLight(ob, data, world) + elif datatype == Lamp.Types.Sun: + self.writeDirectionalLight(ob, data, world) + else: + self.writeDirectionalLight(ob, data, world) + elif objType == "Empty" and objName != "Empty": + self.writeNode(ob) + else: + #print "Info: Ignoring [%s], object type [%s] not handle yet" % (object.name,object.getType) + print "" + + if ARG != 'selected': + self.writeScript() + self.file.write("\n</Scene>\n</X3D>") + self.cleanup() + ########################################################## # Utility methods ########################################################## - def cleanup(self): - self.file.close() - self.texNames={} - self.matNames={} - self.indentLevel=0 - print "Info: finished X3D export to %s\n" % self.filename - - def cleanStr(self, name, prefix='rsvd_'): - """cleanStr(name,prefix) - try to create a valid VRML DEF name from object name""" - - newName=name[:] - if len(newName) == 0: - self.nNodeID+=1 - return "%s%d" % (prefix, self.nNodeID) - - if newName in self.namesReserved: - newName='%s%s' % (prefix,newName) - - if newName[0].isdigit(): - newName='%s%s' % ('_',newName) - - for bad in [' ','"','#',"'",',','.','[','\\',']','{','}']: - newName=newName.replace(bad,'_') - return newName - - def countIFSSetsNeeded(self, mesh, imageMap, sided, vColors): - """ - countIFFSetsNeeded() - should look at a blender mesh to determine - how many VRML IndexFaceSets or IndexLineSets are needed. A - new mesh created under the following conditions: - - o - split by UV Textures / one per mesh - o - split by face, one sided and two sided - o - split by smooth and flat faces - o - split when faces only have 2 vertices * needs to be an IndexLineSet - """ - - imageNameMap={} - faceMap={} - nFaceIndx=0 - - for face in mesh.faces: - sidename=''; - if (face.mode & NMesh.FaceModes.TWOSIDE) == NMesh.FaceModes.TWOSIDE: - sidename='two' - else: - sidename='one' - - if sided.has_key(sidename): - sided[sidename]+=1 - else: - sided[sidename]=1 - - if face.image: - faceName="%s_%s" % (face.image.name, sidename); - - try: - imageMap[faceName].append(face) - except: - imageMap[faceName]=[face.image.name,sidename,face] - - if self.verbose > 2: - for faceName in imageMap.iterkeys(): - ifs=imageMap[faceName] - print "Debug: faceName=%s image=%s, solid=%s facecnt=%d" % \ - (faceName, ifs[0], ifs[1], len(ifs)-2) - - return len(imageMap) - - def faceToString(self,face): - - print "Debug: face.flag=0x%x (bitflags)" % face.flag - if face.sel: - print "Debug: face.sel=true" - - print "Debug: face.mode=0x%x (bitflags)" % face.mode - if (face.mode & NMesh.FaceModes.TWOSIDE) == NMesh.FaceModes.TWOSIDE: - print "Debug: face.mode twosided" - - print "Debug: face.transp=0x%x (enum)" % face.transp - if face.transp == NMesh.FaceTranspModes.SOLID: - print "Debug: face.transp.SOLID" - - if face.image: - print "Debug: face.image=%s" % face.image.name - print "Debug: face.materialIndex=%d" % face.materialIndex - - def getVertexColorByIndx(self, mesh, indx): - c = None - for face in mesh.faces: - j=0 - for vertex in face.v: - if vertex.index == indx: - c=face.col[j] - break - j=j+1 - if c: break - return c - - def meshToString(self,mesh): - print "Debug: mesh.hasVertexUV=%d" % mesh.hasVertexUV() - print "Debug: mesh.hasFaceUV=%d" % mesh.hasFaceUV() - print "Debug: mesh.hasVertexColours=%d" % mesh.hasVertexColours() - print "Debug: mesh.verts=%d" % len(mesh.verts) - print "Debug: mesh.faces=%d" % len(mesh.faces) - print "Debug: mesh.materials=%d" % len(mesh.materials) - - def rgbToFS(self, c): - s="%s %s %s" % ( - round(c.r/255.0,self.cp), - round(c.g/255.0,self.cp), - round(c.b/255.0,self.cp)) - return s - - def computeDirection(self, ob): - x,y,z=(0,-1.0,0) # point down - ax,ay,az = (ob.RotX,ob.RotZ,ob.RotY) - - # rot X - x1=x - y1=y*math.cos(ax)-z*math.sin(ax) - z1=y*math.sin(ax)+z*math.cos(ax) - - # rot Y - x2=x1*math.cos(ay)+z1*math.sin(ay) - y2=y1 - z2=z1*math.cos(ay)-x1*math.sin(ay) - - # rot Z - x3=x2*math.cos(az)-y2*math.sin(az) - y3=x2*math.sin(az)+y2*math.cos(az) - z3=z2 - - return [x3,y3,z3] - - - # swap Y and Z to handle axis difference between Blender and VRML - #------------------------------------------------------------------------ - def rotatePointForVRML(self, v): - x = v[0] - y = v[2] - z = -v[1] - - vrmlPoint=[x, y, z] - return vrmlPoint - - # For writing well formed VRML code - #------------------------------------------------------------------------ - def writeIndented(self, s, inc=0): - if inc < 1: - self.indentLevel = self.indentLevel + inc - - spaces="" - for x in xrange(self.indentLevel): - spaces = spaces + "\t" - self.file.write(spaces + s) - - if inc > 0: - self.indentLevel = self.indentLevel + inc - - # Converts a Euler to three new Quaternions - # Angles of Euler are passed in as radians - #------------------------------------------------------------------------ - def eulerToQuaternions(self, x, y, z): - Qx = [math.cos(x/2), math.sin(x/2), 0, 0] - Qy = [math.cos(y/2), 0, math.sin(y/2), 0] - Qz = [math.cos(z/2), 0, 0, math.sin(z/2)] - - quaternionVec=[Qx,Qy,Qz] - return quaternionVec - - # Multiply two Quaternions together to get a new Quaternion - #------------------------------------------------------------------------ - def multiplyQuaternions(self, Q1, Q2): - result = [((Q1[0] * Q2[0]) - (Q1[1] * Q2[1]) - (Q1[2] * Q2[2]) - (Q1[3] * Q2[3])), - ((Q1[0] * Q2[1]) + (Q1[1] * Q2[0]) + (Q1[2] * Q2[3]) - (Q1[3] * Q2[2])), - ((Q1[0] * Q2[2]) + (Q1[2] * Q2[0]) + (Q1[3] * Q2[1]) - (Q1[1] * Q2[3])), - ((Q1[0] * Q2[3]) + (Q1[3] * Q2[0]) + (Q1[1] * Q2[2]) - (Q1[2] * Q2[1]))] - - return result - - # Convert a Quaternion to an Angle Axis (ax, ay, az, angle) - # angle is in radians - #------------------------------------------------------------------------ - def quaternionToAngleAxis(self, Qf): - scale = math.pow(Qf[1],2) + math.pow(Qf[2],2) + math.pow(Qf[3],2) - ax = Qf[1] - ay = Qf[2] - az = Qf[3] - - if scale > .0001: - ax/=scale - ay/=scale - az/=scale - - angle = 2 * math.acos(Qf[0]) - - result = [ax, ay, az, angle] - return result + def cleanup(self): + self.file.close() + self.texNames={} + self.matNames={} + self.indentLevel=0 + print "Info: finished X3D export to %s\n" % self.filename + + def cleanStr(self, name, prefix='rsvd_'): + """cleanStr(name,prefix) - try to create a valid VRML DEF name from object name""" + + newName=name[:] + if len(newName) == 0: + self.nNodeID+=1 + return "%s%d" % (prefix, self.nNodeID) + + if newName in self.namesReserved: + newName='%s%s' % (prefix,newName) + + if newName[0].isdigit(): + newName='%s%s' % ('_',newName) + + for bad in [' ','"','#',"'",',','.','[','\\',']','{','}']: + newName=newName.replace(bad,'_') + return newName + + def countIFSSetsNeeded(self, mesh, imageMap, sided, vColors): + """ + countIFFSetsNeeded() - should look at a blender mesh to determine + how many VRML IndexFaceSets or IndexLineSets are needed. A + new mesh created under the following conditions: + + o - split by UV Textures / one per mesh + o - split by face, one sided and two sided + o - split by smooth and flat faces + o - split when faces only have 2 vertices * needs to be an IndexLineSet + """ + + imageNameMap={} + faceMap={} + nFaceIndx=0 + + if mesh.faceUV: + for face in mesh.faces: + sidename=''; + if face.mode & Mesh.FaceModes.TWOSIDE: + sidename='two' + else: + sidename='one' + + if sided.has_key(sidename): + sided[sidename]+=1 + else: + sided[sidename]=1 + + image = face.image + if image: + faceName="%s_%s" % (face.image.name, sidename); + try: + imageMap[faceName].append(face) + except: + imageMap[faceName]=[face.image.name,sidename,face] + + if self.verbose > 2: + for faceName in imageMap.iterkeys(): + ifs=imageMap[faceName] + print "Debug: faceName=%s image=%s, solid=%s facecnt=%d" % \ + (faceName, ifs[0], ifs[1], len(ifs)-2) + + return len(imageMap) + + def faceToString(self,face): + + print "Debug: face.flag=0x%x (bitflags)" % face.flag + if face.sel: + print "Debug: face.sel=true" + + print "Debug: face.mode=0x%x (bitflags)" % face.mode + if face.mode & Mesh.FaceModes.TWOSIDE: + print "Debug: face.mode twosided" + + print "Debug: face.transp=0x%x (enum)" % face.transp + if face.transp == Mesh.FaceTranspModes.SOLID: + print "Debug: face.transp.SOLID" + + if face.image: + print "Debug: face.image=%s" % face.image.name + print "Debug: face.materialIndex=%d" % face.materialIndex + + def getVertexColorByIndx(self, mesh, indx): + c = None + for face in mesh.faces: + j=0 + for vertex in face.v: + if vertex.index == indx: + c=face.col[j] + break + j=j+1 + if c: break + return c + + def meshToString(self,mesh): + print "Debug: mesh.hasVertexUV=%d" % mesh.vertexColors + print "Debug: mesh.faceUV=%d" % mesh.faceUV + print "Debug: mesh.hasVertexColours=%d" % mesh.hasVertexColours() + print "Debug: mesh.verts=%d" % len(mesh.verts) + print "Debug: mesh.faces=%d" % len(mesh.faces) + print "Debug: mesh.materials=%d" % len(mesh.materials) + + def rgbToFS(self, c): + s="%s %s %s" % ( + round(c.r/255.0,self.cp), + round(c.g/255.0,self.cp), + round(c.b/255.0,self.cp)) + return s + + def computeDirection(self, ob): + x,y,z=(0,-1.0,0) # point down + + ax,ay,az = (ob.matrixWorld*MATWORLD).toEuler() + + ax *= DEG2RAD + ay *= DEG2RAD + az *= DEG2RAD + # rot X + x1=x + y1=y*math.cos(ax)-z*math.sin(ax) + z1=y*math.sin(ax)+z*math.cos(ax) + + # rot Y + x2=x1*math.cos(ay)+z1*math.sin(ay) + y2=y1 + z2=z1*math.cos(ay)-x1*math.sin(ay) + + # rot Z + x3=x2*math.cos(az)-y2*math.sin(az) + y3=x2*math.sin(az)+y2*math.cos(az) + z3=z2 + + return [x3,y3,z3] + + + # swap Y and Z to handle axis difference between Blender and VRML + #------------------------------------------------------------------------ + def rotatePointForVRML(self, v): + x = v[0] + y = v[2] + z = -v[1] + + vrmlPoint=[x, y, z] + return vrmlPoint + + # For writing well formed VRML code + #------------------------------------------------------------------------ + def writeIndented(self, s, inc=0): + if inc < 1: + self.indentLevel = self.indentLevel + inc + + spaces="" + for x in xrange(self.indentLevel): + spaces = spaces + "\t" + self.file.write(spaces + s) + + if inc > 0: + self.indentLevel = self.indentLevel + inc + + # Converts a Euler to three new Quaternions + # Angles of Euler are passed in as radians + #------------------------------------------------------------------------ + def eulerToQuaternions(self, x, y, z): + Qx = [math.cos(x/2), math.sin(x/2), 0, 0] + Qy = [math.cos(y/2), 0, math.sin(y/2), 0] + Qz = [math.cos(z/2), 0, 0, math.sin(z/2)] + + quaternionVec=[Qx,Qy,Qz] + return quaternionVec + + # Multiply two Quaternions together to get a new Quaternion + #------------------------------------------------------------------------ + def multiplyQuaternions(self, Q1, Q2): + result = [((Q1[0] * Q2[0]) - (Q1[1] * Q2[1]) - (Q1[2] * Q2[2]) - (Q1[3] * Q2[3])), + ((Q1[0] * Q2[1]) + (Q1[1] * Q2[0]) + (Q1[2] * Q2[3]) - (Q1[3] * Q2[2])), + ((Q1[0] * Q2[2]) + (Q1[2] * Q2[0]) + (Q1[3] * Q2[1]) - (Q1[1] * Q2[3])), + ((Q1[0] * Q2[3]) + (Q1[3] * Q2[0]) + (Q1[1] * Q2[2]) - (Q1[2] * Q2[1]))] + + return result + + # Convert a Quaternion to an Angle Axis (ax, ay, az, angle) + # angle is in radians + #------------------------------------------------------------------------ + def quaternionToAngleAxis(self, Qf): + scale = math.pow(Qf[1],2) + math.pow(Qf[2],2) + math.pow(Qf[3],2) + ax = Qf[1] + ay = Qf[2] + az = Qf[3] + + if scale > .0001: + ax/=scale + ay/=scale + az/=scale + + angle = 2 * math.acos(Qf[0]) + + result = [ax, ay, az, angle] + return result ########################################################## # Callbacks, needed before Main ########################################################## def select_file(filename): - if not filename.endswith(extension): - filename += extension - if _safeOverwrite and sys.exists(filename): - result = Draw.PupMenu("File Already Exists, Overwrite?%t|Yes%x1|No%x0") - if(result != 1): - return - - wrlexport=VRML2Export(filename) - wrlexport.export(scene, world, worldmat) - -def createWRLPath(): - filename = Blender.Get('filename') - print filename - - if filename.find('.') != -1: - filename = filename.split('.')[0] - filename += extension - print filename - - return filename + if not filename.endswith(extension): + filename += extension + #if _safeOverwrite and sys.exists(filename): + # result = Draw.PupMenu("File Already Exists, Overwrite?%t|Yes%x1|No%x0") + #if(result != 1): + # return + + scene = Blender.Scene.GetCurrent() + world = scene.world + alltextures = Blender.Texture.Get() + + wrlexport=VRML2Export(filename) + wrlexport.export(scene, world, alltextures) + ######################################################### # main routine ######################################################### -try: - ARG = __script__['arg'] # user selected argument -except: - print "older version" - -if Blender.Get('version') < 235: - print "Warning: X3D export failed, wrong blender version!" - print " You aren't running blender version 2.35 or greater" - print " download a newer version from http://blender3d.org/" -else: - if ARG == 'comp': - from gzip import * - extension=".x3dz" - else: - extension=".x3d" - Blender.Window.FileSelector(select_file,"Export X3D",createWRLPath()) - +if __name__ == '__main__': + Blender.Window.FileSelector(select_file,"Export X3D", Blender.Get('filename').replace('.blend', '.x3d')) + # select_file('/shared/bed1.x3d') diff --git a/source/blender/SConscript b/source/blender/SConscript index 56a661238f8..09d30ddafd0 100644 --- a/source/blender/SConscript +++ b/source/blender/SConscript @@ -31,3 +31,6 @@ if env['WITH_BF_OPENEXR'] == 1: if env['WITH_BF_QUICKTIME'] == 1: SConscript (['quicktime/SConscript']) + +if env['WITH_BF_FREESTYLE'] == 1: + SConscript(['freestyle/SConscript']) diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 76581e4f34f..b3b68a9b3ff 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -33,7 +33,8 @@ #ifndef BKE_NODE_H #define BKE_NODE_H - +/* not very important, but the stack solver likes to know a maximum */ +#define MAX_SOCKET 64 struct ID; struct bNodeTree; diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index f31c5a0d672..654cf0991cc 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -3304,7 +3304,9 @@ void loadFluidsimMesh(Object *srcob, int useRenderParams) } else { // 3 strcat(targetDir,"fluidsurface_final_####"); } - BLI_convertstringcode(targetDir, G.sce, curFrame); // fixed #frame-no + BLI_convertstringcode(targetDir, G.sce); + BLI_convertstringframe(targetDir, curFrame); // fixed #frame-no + strcpy(targetFile,targetDir); strcat(targetFile, ".bobj.gz"); diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index 459e705eccc..b493f98b7fb 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -350,7 +350,8 @@ Image *BKE_add_image_file(const char *name) } BLI_strncpy(str, name, sizeof(str)); - BLI_convertstringcode(str, G.sce, G.scene->r.cfra); + BLI_convertstringcode(str, G.sce); + BLI_convertstringframe(str, G.scene->r.cfra); /* TODO - should this realy be here? */ /* exists? */ file= open(str, O_BINARY|O_RDONLY); @@ -361,7 +362,8 @@ Image *BKE_add_image_file(const char *name) for(ima= G.main->image.first; ima; ima= ima->id.next) { if(ima->source!=IMA_SRC_VIEWER && ima->source!=IMA_SRC_GENERATED) { BLI_strncpy(strtest, ima->name, sizeof(ima->name)); - BLI_convertstringcode(strtest, G.sce, G.scene->r.cfra); + BLI_convertstringcode(strtest, G.sce); + BLI_convertstringframe(strtest, G.scene->r.cfra); /* TODO - should this be here? */ if( strcmp(strtest, str)==0 ) { if(ima->anim==NULL || ima->id.us==0) { @@ -1242,7 +1244,8 @@ void BKE_makepicstring(char *string, char *base, int frame, int imtype) if (strchr(string, '#')==NULL) strcat(string, "####"); /* 4 numbers */ - BLI_convertstringcode(string, G.sce, frame); + BLI_convertstringcode(string, G.sce); + BLI_convertstringframe(string, frame); if(G.scene->r.scemode & R_EXTENSION) BKE_add_image_extension(string, imtype); @@ -1478,9 +1481,11 @@ static ImBuf *image_load_sequence_file(Image *ima, ImageUser *iuser, int frame) BLI_strncpy(name, ima->name, sizeof(name)); if(ima->id.lib) - BLI_convertstringcode(name, ima->id.lib->filename, frame); + BLI_convertstringcode(name, ima->id.lib->filename); else - BLI_convertstringcode(name, G.sce, frame); + BLI_convertstringcode(name, G.sce); + + BLI_convertstringframe(name, frame); /* TODO - should this be here? */ /* read ibuf */ ibuf = IMB_loadiffname(name, IB_rect|IB_multilayer); @@ -1580,9 +1585,9 @@ static ImBuf *image_load_movie_file(Image *ima, ImageUser *iuser, int frame) BLI_strncpy(str, ima->name, FILE_MAX); if(ima->id.lib) - BLI_convertstringcode(str, ima->id.lib->filename, 0); + BLI_convertstringcode(str, ima->id.lib->filename); else - BLI_convertstringcode(str, G.sce, 0); + BLI_convertstringcode(str, G.sce); ima->anim = openanim(str, IB_cmap | IB_rect); @@ -1633,9 +1638,11 @@ static ImBuf *image_load_image_file(Image *ima, ImageUser *iuser, int cfra) /* get the right string */ BLI_strncpy(str, ima->name, sizeof(str)); if(ima->id.lib) - BLI_convertstringcode(str, ima->id.lib->filename, cfra); + BLI_convertstringcode(str, ima->id.lib->filename); else - BLI_convertstringcode(str, G.sce, cfra); + BLI_convertstringcode(str, G.sce); + + BLI_convertstringframe(str, cfra); /* read ibuf */ ibuf = IMB_loadiffname(str, IB_rect|IB_multilayer|IB_imginfo); diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 8740a3d1ed4..cc3f3f211a4 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -974,7 +974,7 @@ static void image_fix_relative_path(Image *ima) { if(ima->id.lib==NULL) return; if(strncmp(ima->name, "//", 2)==0) { - BLI_convertstringcode(ima->name, ima->id.lib->filename, 0); + BLI_convertstringcode(ima->name, ima->id.lib->filename); BLI_makestringcode(G.sce, ima->name); } } diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c index 14e70075e32..16916381c95 100644 --- a/source/blender/blenkernel/intern/mball.c +++ b/source/blender/blenkernel/intern/mball.c @@ -1214,8 +1214,8 @@ void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, p->y = neg.y; p->z = neg.z; while (1) { - p->x = 0.5f*(pos.x + neg.x); if (i++ == RES) return; + p->x = 0.5f*(pos.x + neg.x); if ((function(p->x,p->y,p->z)) > 0.0) pos.x = p->x; else neg.x = p->x; } } @@ -1224,8 +1224,8 @@ void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, p->x = neg.x; p->z = neg.z; while (1) { - p->y = 0.5f*(pos.y + neg.y); if (i++ == RES) return; + p->y = 0.5f*(pos.y + neg.y); if ((function(p->x,p->y,p->z)) > 0.0) pos.y = p->y; else neg.y = p->y; } } @@ -1234,8 +1234,8 @@ void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, p->x = neg.x; p->y = neg.y; while (1) { - p->z = 0.5f*(pos.z + neg.z); if (i++ == RES) return; + p->z = 0.5f*(pos.z + neg.z); if ((function(p->x,p->y,p->z)) > 0.0) pos.z = p->z; else neg.z = p->z; } } @@ -1300,6 +1300,8 @@ void find_first_points(PROCESS *mbproc, MetaBall *mb, int a) int index[3]={1,0,-1}; float f =0.0f; float in_v, out_v; + MB_POINT workp; + float tmp_v, workp_v, max_len, len, dx, dy, dz, nx, ny, nz, MAXN; ml = mainb[a]; @@ -1360,23 +1362,49 @@ void find_first_points(PROCESS *mbproc, MetaBall *mb, int a) out_v = mbproc->function(out.x, out.y, out.z); - /* find "first point" on Implicit Surface of MetaElemnt ml */ - converge(&in, &out, in_v, out_v, mbproc->function, &mbproc->start, mb, 0); - - /* indexes of CUBE, which includes "first point" */ - c_i= (int)floor(mbproc->start.x/mbproc->size ); - c_j= (int)floor(mbproc->start.y/mbproc->size ); - c_k= (int)floor(mbproc->start.z/mbproc->size ); - - mbproc->start.x= mbproc->start.y= mbproc->start.z= 0.0; + /* find "first points" on Implicit Surface of MetaElemnt ml */ + //converge(&in, &out, in_v, out_v, mbproc->function, &mbproc->start, mb, 0); + workp = in; + workp_v = in_v; + max_len = sqrt((out.x-in.x)*(out.x-in.x) + (out.y-in.y)*(out.y-in.y) + (out.z-in.z)*(out.z-in.z)); - /* add CUBE (with indexes c_i, c_j, c_k) to the stack, - * this cube includes found point of Implicit Surface */ - if (ml->flag & MB_NEGATIVE) - add_cube(mbproc, c_i, c_j, c_k, 2); - else - add_cube(mbproc, c_i, c_j, c_k, 1); + nx = abs((out.x - in.x)/mbproc->size); + ny = abs((out.y - in.y)/mbproc->size); + nz = abs((out.z - in.z)/mbproc->size); + + MAXN = MAX3(nx,ny,nz); + + dx = (out.x - in.x)/MAXN; + dy = (out.y - in.y)/MAXN; + dz = (out.z - in.z)/MAXN; + + len = 0.0; + while(len<=max_len) { + workp.x += dx; + workp.y += dy; + workp.z += dz; + /* compute value of implicite function */ + tmp_v = mbproc->function(workp.x, workp.y, workp.z); + /* add cube to the stack, when value of implicite function crosses zero value */ + if((tmp_v<0.0 && workp_v>=0.0)||(tmp_v>0.0 && workp_v<=0.0)) { + + /* indexes of CUBE, which includes "first point" */ + c_i= (int)floor(workp.x/mbproc->size); + c_j= (int)floor(workp.y/mbproc->size); + c_k= (int)floor(workp.z/mbproc->size); + + /* add CUBE (with indexes c_i, c_j, c_k) to the stack, + * this cube includes found point of Implicit Surface */ + if (ml->flag & MB_NEGATIVE) + add_cube(mbproc, c_i, c_j, c_k, 2); + else + add_cube(mbproc, c_i, c_j, c_k, 1); + } + len = sqrt((workp.x-in.x)*(workp.x-in.x) + (workp.y-in.y)*(workp.y-in.y) + (workp.z-in.z)*(workp.z-in.z)); + workp_v = tmp_v; + } + mbproc->start.x= mbproc->start.y= mbproc->start.z= 0.0; } } diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 6c3775bcbaa..28c3e1c64e6 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -68,9 +68,6 @@ #include "SHD_node.h" -/* not very important, but the stack solver likes to know a maximum */ -#define MAX_SOCKET 64 - static ListBase empty_list = {NULL, NULL}; ListBase node_all_composit = {NULL, NULL}; ListBase node_all_shaders = {NULL, NULL}; diff --git a/source/blender/blenkernel/intern/packedFile.c b/source/blender/blenkernel/intern/packedFile.c index 109f8bd9113..f6a65bd72a5 100644 --- a/source/blender/blenkernel/intern/packedFile.c +++ b/source/blender/blenkernel/intern/packedFile.c @@ -185,7 +185,7 @@ PackedFile * newPackedFile(char * filename) // convert relative filenames to absolute filenames strcpy(name, filename); - BLI_convertstringcode(name, G.sce, G.scene->r.cfra); + BLI_convertstringcode(name, G.sce); // open the file // and create a PackedFile structure @@ -286,7 +286,7 @@ int writePackedFile(char * filename, PackedFile *pf, int guimode) if (guimode) waitcursor(1); strcpy(name, filename); - BLI_convertstringcode(name, G.sce, G.scene->r.cfra); + BLI_convertstringcode(name, G.sce); if (BLI_exists(name)) { for (number = 1; number <= 999; number++) { @@ -351,7 +351,7 @@ int checkPackedFile(char * filename, PackedFile * pf) char name[FILE_MAXDIR + FILE_MAXFILE]; strcpy(name, filename); - BLI_convertstringcode(name, G.sce, G.scene->r.cfra); + BLI_convertstringcode(name, G.sce); if (stat(name, &st)) { ret_val = PF_NOFILE; diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 069dac60412..9dd21cdda4e 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -4565,7 +4565,8 @@ static void particles_fluid_step(Object *ob, ParticleSystem *psys, int cfra) // ok, start loading strcpy(filename, ob->fluidsimSettings->surfdataPath); strcat(filename, suffix); - BLI_convertstringcode(filename, G.sce, curFrame); // fixed #frame-no + BLI_convertstringcode(filename, G.sce); + BLI_convertstringframe(filename, curFrame); // fixed #frame-no strcat(filename, suffix2); gzf = gzopen(filename, "rb"); diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 3d73ba1e93f..7b727528b3d 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -186,7 +186,7 @@ static int ptcache_path(PTCacheID *pid, char *filename) sprintf(filename, "//"PTCACHE_PATH"%s", file); /* add blend file name to pointcache dir */ BLI_add_slash(filename); - BLI_convertstringcode(filename, blendfilename, 0); + BLI_convertstringcode(filename, blendfilename); return strlen(filename); } diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 3b14cb8adac..2c5b49246fb 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -109,13 +109,13 @@ PackedFile* sound_find_packedfile(bSound *sound) // convert sound->name to abolute filename strcpy(soundname, sound->name); - BLI_convertstringcode(soundname, G.sce, G.scene->r.cfra); + BLI_convertstringcode(soundname, G.sce); search = G.main->sound.first; while (search) { if (search->sample && search->sample->packedfile) { strcpy(searchname, search->sample->name); - BLI_convertstringcode(searchname, G.sce, G.scene->r.cfra); + BLI_convertstringcode(searchname, G.sce); if (BLI_streq(searchname, soundname)) { pf = search->sample->packedfile; @@ -125,7 +125,7 @@ PackedFile* sound_find_packedfile(bSound *sound) if (search->newpackedfile) { strcpy(searchname, search->name); - BLI_convertstringcode(searchname, G.sce, G.scene->r.cfra); + BLI_convertstringcode(searchname, G.sce); if (BLI_streq(searchname, soundname)) { pf = search->newpackedfile; break; diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index b6552be93a9..872f81ead63 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -218,7 +218,7 @@ int reopen_text(Text *text) if (!text || !text->name) return 0; BLI_strncpy(str, text->name, FILE_MAXDIR+FILE_MAXFILE); - BLI_convertstringcode(str, G.sce, G.scene->r.cfra); + BLI_convertstringcode(str, G.sce); BLI_split_dirfile_basic(str, NULL, sfile); fp= fopen(str, "r"); @@ -316,7 +316,7 @@ Text *add_text(char *file) BLI_strncpy(str, file, FILE_MAXDIR+FILE_MAXFILE); if (G.scene) /* can be NULL (bg mode) */ - BLI_convertstringcode(str, G.sce, G.scene->r.cfra); + BLI_convertstringcode(str, G.sce); BLI_split_dirfile_basic(str, NULL, sfile); fp= fopen(str, "r"); @@ -2037,6 +2037,7 @@ void txt_delete_char (Text *text) if (txt_has_sel(text)) { /* deleting a selection */ txt_delete_sel(text); + return; } else if (text->curc== text->curl->len) { /* Appending two lines */ if (text->curl->next) { @@ -2071,6 +2072,7 @@ void txt_backspace_char (Text *text) if (txt_has_sel(text)) { /* deleting a selection */ txt_delete_sel(text); + return; } else if (text->curc==0) { /* Appending two lines */ if (text->curl->prev) { diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c index 3d85fe32193..44004eeee80 100644 --- a/source/blender/blenkernel/intern/writeavi.c +++ b/source/blender/blenkernel/intern/writeavi.c @@ -120,7 +120,7 @@ void makeavistring (RenderData *rd, char *string) if (string==0) return; strcpy(string, rd->pic); - BLI_convertstringcode(string, G.sce, rd->cfra); + BLI_convertstringcode(string, G.sce); BLI_make_existing_file(string); diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 493620a8dce..e79e36a1498 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -695,7 +695,8 @@ void makeffmpegstring(char* string) { if (!string || !exts) return; strcpy(string, G.scene->r.pic); - BLI_convertstringcode(string, G.sce, G.scene->r.cfra); + BLI_convertstringcode(string, G.sce); + BLI_convertstringframe(string, G.scene->r.cfra); BLI_make_existing_file(string); diff --git a/source/blender/blenlib/BLI_blenlib.h b/source/blender/blenlib/BLI_blenlib.h index 33567d92c99..e24ccad12fb 100644 --- a/source/blender/blenlib/BLI_blenlib.h +++ b/source/blender/blenlib/BLI_blenlib.h @@ -150,7 +150,8 @@ void BLI_cleanup_dir(const char *relabase, char *dir); /* same as above but adds * @a framenum The framenumber to replace the frame code with. * @retval Returns true if the path was relative (started with "//"). */ -int BLI_convertstringcode(char *path, const char *basepath, int framenum); +int BLI_convertstringcode(char *path, const char *basepath); +int BLI_convertstringframe(char *path, int frame); void BLI_makestringcode(const char *relfile, char *file); diff --git a/source/blender/blenlib/intern/bpath.c b/source/blender/blenlib/intern/bpath.c index 66eb63c8dfd..79d3e487712 100644 --- a/source/blender/blenlib/intern/bpath.c +++ b/source/blender/blenlib/intern/bpath.c @@ -130,9 +130,9 @@ void BLI_bpathIterator_getPathExpanded( struct BPathIterator *bpi, char *path_ex libpath = BLI_bpathIterator_getLib(bpi); if (libpath) { /* check the files location relative to its library path */ - BLI_convertstringcode(path_expanded, libpath, G.scene->r.cfra); + BLI_convertstringcode(path_expanded, libpath); } else { /* local data, use the blend files path */ - BLI_convertstringcode(path_expanded, G.sce, G.scene->r.cfra); + BLI_convertstringcode(path_expanded, G.sce); } } char* BLI_bpathIterator_getLib( struct BPathIterator *bpi) { diff --git a/source/blender/blenlib/intern/util.c b/source/blender/blenlib/intern/util.c index c79f1b56f1d..04c4e97aef9 100644 --- a/source/blender/blenlib/intern/util.c +++ b/source/blender/blenlib/intern/util.c @@ -874,9 +874,11 @@ void BLI_cleanup_file(const char *relabase, char *dir) { short a; char *start, *eind; - - BLI_convertstringcode(dir, relabase, 0); - + + if (relabase) { + BLI_convertstringcode(dir, relabase); + } + #ifdef WIN32 if(dir[0]=='.') { /* happens for example in FILE_MAIN */ get_default_root(dir); @@ -1031,10 +1033,78 @@ void BLI_makestringcode(const char *relfile, char *file) } } -int BLI_convertstringcode(char *path, const char *basepath, int framenum) + +int BLI_convertstringframe(char *path, int frame) +{ + int ch_sta, ch_end, i; + /* Insert current frame: file### -> file001 */ + ch_sta = ch_end = 0; + for (i = 0; path[i] != '\0'; i++) { + if (path[i] == '\\' || path[i] == '/') { + ch_end = 0; /* this is a directory name, dont use any hashes we found */ + } else if (path[i] == '#') { + ch_sta = i; + ch_end = ch_sta+1; + while (path[ch_end] == '#') { + ch_end++; + } + i = ch_end-1; /* keep searching */ + + /* dont break, there may be a slash after this that invalidates the previous #'s */ + } + } + if (ch_end) { /* warning, ch_end is the last # +1 */ + /* Add the frame number? */ + short numlen, hashlen; + char tmp[FILE_MAX]; + + char format[16]; /* 6 is realistically the maxframe (300000), so 8 should be enough, but 16 to be safe. */ + if (((ch_end-1)-ch_sta) >= 16) { + ch_end = ch_sta+15; /* disallow values longer then 'format' can hold */ + } + + strcpy(tmp, path); + + numlen = 1 + (int)log10((double)frame); /* this is the number of chars in the number */ + hashlen = ch_end - ch_sta; + + sprintf(format, "%d", frame); + + 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, reuse i */ + int j; + + i = strlen(tmp); /* +1 to copy the string terminator */ + j = i + (numlen-hashlen); /* from/to */ + + while (i >= ch_end) { + tmp[j] = tmp[i]; + i--; + j--; + } + memcpy(tmp + ch_sta, format, numlen); + } + } + strcpy(path, tmp); + return 1; + } + return 0; +} + + +int BLI_convertstringcode(char *path, const char *basepath) { int wasrelative; - int ch_sta, ch_end; char tmp[FILE_MAX]; char base[FILE_MAX]; char vol[3] = {'\0', '\0', '\0'}; @@ -1090,54 +1160,8 @@ int BLI_convertstringcode(char *path, const char *basepath, int framenum) MEM_freeN(filepart); } - - /* 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 absolute path will be drive:/blabla and diff --git a/source/blender/blenloader/intern/genfile.c b/source/blender/blenloader/intern/genfile.c index 7eb6220066e..87c859de839 100644 --- a/source/blender/blenloader/intern/genfile.c +++ b/source/blender/blenloader/intern/genfile.c @@ -213,6 +213,12 @@ void dna_freestructDNA(struct SDNA *sdna) MEM_freeN(sdna); } +static int ispointer(char *name) +{ + /* check if pointer or function pointer */ + return (name[0]=='*' || (name[0]=='(' && name[1]=='*')); +} + static int elementsize(struct SDNA *sdna, short type, short name) /* call with numbers from struct-array */ { @@ -224,7 +230,7 @@ static int elementsize(struct SDNA *sdna, short type, short name) namelen= strlen(cp); /* is it a pointer or function pointer? */ - if(cp[0]=='*' || cp[1]=='*') { + if(ispointer(cp)) { /* has the naam an extra length? (array) */ mul= 1; if( cp[namelen-1]==']') mul= arraysize(cp, namelen); @@ -508,7 +514,7 @@ static void recurs_test_compflags(struct SDNA *sdna, char *compflags, int struct for(b=0; b<elems; b++, sp+=2) { if(sp[0]==typenr) { cp= sdna->names[ sp[1] ]; - if(cp[0]!= '*') { + if(!ispointer(cp)) { compflags[a]= 2; recurs_test_compflags(sdna, compflags, a); } @@ -579,7 +585,7 @@ char *dna_get_structDNA_compareflags(struct SDNA *sdna, struct SDNA *newsdna) if(strcmp(str1, str2)!=0) break; /* same type and same name, now pointersize */ - if(str1[0]=='*') { + if(ispointer(str1)) { if(sdna->pointerlen!=newsdna->pointerlen) break; } @@ -834,7 +840,7 @@ static void reconstruct_elem(struct SDNA *newsdna, struct SDNA *oldsdna, char *t if( strcmp(name, oname)==0 ) { /* name equal */ - if( name[0]=='*') { /* pointer afhandelen */ + if(ispointer(name)) { /* pointer of functionpointer afhandelen */ cast_pointer(newsdna->pointerlen, oldsdna->pointerlen, name, curdata, olddata); } else if( strcmp(type, otype)==0 ) { /* type equal */ @@ -851,11 +857,11 @@ static void reconstruct_elem(struct SDNA *newsdna, struct SDNA *oldsdna, char *t cursize= arraysize(name, strlen(name)); oldsize= arraysize(oname, strlen(oname)); - if( name[0]=='*') { /* handle pointer */ + if(ispointer(name)) { /* handle pointer or functionpointer */ if(cursize>oldsize) cast_pointer(newsdna->pointerlen, oldsdna->pointerlen, oname, curdata, olddata); else cast_pointer(newsdna->pointerlen, oldsdna->pointerlen, name, curdata, olddata); } - else if(name[0]=='*' || strcmp(type, otype)==0 ) { /* type equal */ + else if(strcmp(type, otype)==0 ) { /* type equal */ mul= len/oldsize; mul*= MIN2(cursize, oldsize); memcpy(curdata, olddata, mul); @@ -909,7 +915,7 @@ static void reconstruct_struct(struct SDNA *newsdna, struct SDNA *oldsdna, char elen= elementsize(newsdna, spc[0], spc[1]); /* test: is type a struct? */ - if(spc[0]>=firststructtypenr && name[0]!='*') { + if(spc[0]>=firststructtypenr && !ispointer(name)) { /* where does the old struct data start (and is there an old one?) */ cpo= find_elem(oldsdna, type, name, spo, data, &sppo); @@ -976,7 +982,7 @@ void dna_switch_endian_struct(struct SDNA *oldsdna, int oldSDNAnr, char *data) elen= elementsize(oldsdna, spc[0], spc[1]); /* test: is type a struct? */ - if(spc[0]>=firststructtypenr && name[0]!='*') { + if(spc[0]>=firststructtypenr && !ispointer(name)) { /* where does the old data start (is there one?) */ cpo= find_elem(oldsdna, type, name, spo, data, 0); if(cpo) { @@ -993,7 +999,7 @@ void dna_switch_endian_struct(struct SDNA *oldsdna, int oldSDNAnr, char *data) } else { - if( name[0]=='*' ) { + if(ispointer(name)) { if(oldsdna->pointerlen==8) { mul= arraysize(name, strlen(name)); diff --git a/extern/freestyle/AUTHORS.TXT b/source/blender/freestyle/AUTHORS.TXT index 27cdb70d5ec..27cdb70d5ec 100755 --- a/extern/freestyle/AUTHORS.TXT +++ b/source/blender/freestyle/AUTHORS.TXT diff --git a/extern/freestyle/BUGS.TXT b/source/blender/freestyle/BUGS.TXT index c5bad029a47..c5bad029a47 100755 --- a/extern/freestyle/BUGS.TXT +++ b/source/blender/freestyle/BUGS.TXT diff --git a/source/blender/freestyle/CHANGELOG.TXT b/source/blender/freestyle/CHANGELOG.TXT new file mode 100755 index 00000000000..cb9f088bc1f --- /dev/null +++ b/source/blender/freestyle/CHANGELOG.TXT @@ -0,0 +1,47 @@ +2008-03-06 - freestyle-2.2.0 + * Fixed a bug related to the ViewShape IDs that caused the ray casting to crash. + * Fixed a bug in the style module insertion. + +2008-03-02 - freestyle-2.1.1 + * Added the management of texture coordinates in the scene graph and the rendering. + * The reps in the scene graph are now assigned ids based on the lib3ds nodes ids. These ids are transmitted to the WingedEdge Shapes. +2007-10-05 - freestyle-2.0.1 + + * Enforced node construction from lib3ds (thanks to Thomas Netter) + * Reverted to not using bundles by default on MacOSX. Activating bundles can be made by uncommenting the lib_bundle line of the CONFIG variable in Config.pri + * Added a NodeCamera to the scene graph. + * Made sure the display lists were compiled AND executed (GL_COMPILE -> GL_COMPILE_AND_EXECUTE) for IndexedFaceSet. + * Added a visitor to deallocate memory on the graphics card (display lists right now). + * Modified the grid to use a visitor pattern for ray casting and grid traversal. + + + +2007-05-06 - freestyle-2.0.0 + + * Switched to Qt 4.2.3, swig 1.3.31, visual c++ 2005, gcc 4.0.1, qglviewer 2.2.5-1 + * Added texture coordinates to scene graph + * Made the grid more robust + * Now compiles on MacOSX + * Fixed the brush texture problem: the full path to the texture was used instead of the base name and that was breaking the search path algorithm + + +2006-06-18 - freestyle-1.0.2 + + * Fixed a bug related to the loading of OpenGL extensions. + + +2005-07-25 - freestyle-1.0.1 + + * Upgrade to QGLViewer 2.0.4 + * Added the FREESTYLE_DIR environment variable. + It must be set to the freestyle directory for + all releases except the pre-compiled windows version. + * Fixed the unix path separator. + * Added the "Help>Control bindings" menu action. + * Fixed the style modules according to Python 2.4 standards. + + +2005-04-05 - freestyle-1.0.0 + + * Initial release + diff --git a/extern/freestyle/COPYRIGHT.TXT b/source/blender/freestyle/COPYRIGHT.TXT index cd37bd16786..cd37bd16786 100755 --- a/extern/freestyle/COPYRIGHT.TXT +++ b/source/blender/freestyle/COPYRIGHT.TXT diff --git a/extern/freestyle/INSTALL.TXT b/source/blender/freestyle/INSTALL.TXT index 4fab1275116..4fab1275116 100755 --- a/extern/freestyle/INSTALL.TXT +++ b/source/blender/freestyle/INSTALL.TXT diff --git a/extern/freestyle/LICENSE.TXT b/source/blender/freestyle/LICENSE.TXT index 5b6e7c66c27..5b6e7c66c27 100755 --- a/extern/freestyle/LICENSE.TXT +++ b/source/blender/freestyle/LICENSE.TXT diff --git a/extern/freestyle/README.TXT b/source/blender/freestyle/README.TXT index b0d026c8b9b..b0d026c8b9b 100755 --- a/extern/freestyle/README.TXT +++ b/source/blender/freestyle/README.TXT diff --git a/source/blender/freestyle/SConscript b/source/blender/freestyle/SConscript new file mode 100644 index 00000000000..ce8b9d0f224 --- /dev/null +++ b/source/blender/freestyle/SConscript @@ -0,0 +1,10 @@ +#!/usr/bin/python +# import sys +# Import ('env') +# +# sources = [''] +# +# incs = ' ' +# incs += ' ' + env['BF_LIB3DS_INC'] +# +# env.BlenderLib ( 'bf_freestyle', sources, Split(incs), Split(defs), libtype=['international','player'], priority=[0, 205] ) diff --git a/extern/freestyle/THANKS.TXT b/source/blender/freestyle/THANKS.TXT index 3147715a63f..3147715a63f 100755 --- a/extern/freestyle/THANKS.TXT +++ b/source/blender/freestyle/THANKS.TXT diff --git a/extern/freestyle/TODO.TXT b/source/blender/freestyle/TODO.TXT index 2e24752e026..2e24752e026 100755 --- a/extern/freestyle/TODO.TXT +++ b/source/blender/freestyle/TODO.TXT diff --git a/extern/freestyle/src/Config.pri b/source/blender/freestyle/src/Config.pri index 68763dba502..68763dba502 100755 --- a/extern/freestyle/src/Config.pri +++ b/source/blender/freestyle/src/Config.pri diff --git a/extern/freestyle/src/Freestyle-vc7-debug.sln b/source/blender/freestyle/src/Freestyle-vc7-debug.sln index 937f3f9faf9..937f3f9faf9 100755 --- a/extern/freestyle/src/Freestyle-vc7-debug.sln +++ b/source/blender/freestyle/src/Freestyle-vc7-debug.sln diff --git a/extern/freestyle/src/Freestyle-vc7-release.sln b/source/blender/freestyle/src/Freestyle-vc7-release.sln index 74d5dc77f86..74d5dc77f86 100755 --- a/extern/freestyle/src/Freestyle-vc7-release.sln +++ b/source/blender/freestyle/src/Freestyle-vc7-release.sln diff --git a/extern/freestyle/src/Freestyle-vc8-debug.sln b/source/blender/freestyle/src/Freestyle-vc8-debug.sln index 097ca30a174..097ca30a174 100755 --- a/extern/freestyle/src/Freestyle-vc8-debug.sln +++ b/source/blender/freestyle/src/Freestyle-vc8-debug.sln diff --git a/extern/freestyle/src/Freestyle-vc8-release.sln b/source/blender/freestyle/src/Freestyle-vc8-release.sln index 82b22ff0c3e..82b22ff0c3e 100755 --- a/extern/freestyle/src/Freestyle-vc8-release.sln +++ b/source/blender/freestyle/src/Freestyle-vc8-release.sln diff --git a/extern/freestyle/src/Makefile.pro b/source/blender/freestyle/src/Makefile.pro index 0e64bb342c3..0e64bb342c3 100755 --- a/extern/freestyle/src/Makefile.pro +++ b/source/blender/freestyle/src/Makefile.pro diff --git a/extern/freestyle/src/app/AppAboutWindow.cpp b/source/blender/freestyle/src/app/AppAboutWindow.cpp index d20e3f4e1ac..d20e3f4e1ac 100755 --- a/extern/freestyle/src/app/AppAboutWindow.cpp +++ b/source/blender/freestyle/src/app/AppAboutWindow.cpp diff --git a/extern/freestyle/src/app/AppAboutWindow.h b/source/blender/freestyle/src/app/AppAboutWindow.h index ee04d27ae71..ee04d27ae71 100755 --- a/extern/freestyle/src/app/AppAboutWindow.h +++ b/source/blender/freestyle/src/app/AppAboutWindow.h diff --git a/extern/freestyle/src/app/AppCanvas.cpp b/source/blender/freestyle/src/app/AppCanvas.cpp index 60d36880c12..60d36880c12 100755 --- a/extern/freestyle/src/app/AppCanvas.cpp +++ b/source/blender/freestyle/src/app/AppCanvas.cpp diff --git a/extern/freestyle/src/app/AppCanvas.h b/source/blender/freestyle/src/app/AppCanvas.h index 703970c0fb1..703970c0fb1 100755 --- a/extern/freestyle/src/app/AppCanvas.h +++ b/source/blender/freestyle/src/app/AppCanvas.h diff --git a/extern/freestyle/src/app/AppConfig.cpp b/source/blender/freestyle/src/app/AppConfig.cpp index 217f58ee806..217f58ee806 100755 --- a/extern/freestyle/src/app/AppConfig.cpp +++ b/source/blender/freestyle/src/app/AppConfig.cpp diff --git a/extern/freestyle/src/app/AppConfig.h b/source/blender/freestyle/src/app/AppConfig.h index 54e00571275..54e00571275 100755 --- a/extern/freestyle/src/app/AppConfig.h +++ b/source/blender/freestyle/src/app/AppConfig.h diff --git a/extern/freestyle/src/app/AppDensityCurvesWindow.cpp b/source/blender/freestyle/src/app/AppDensityCurvesWindow.cpp index fe2ae994f77..fe2ae994f77 100755 --- a/extern/freestyle/src/app/AppDensityCurvesWindow.cpp +++ b/source/blender/freestyle/src/app/AppDensityCurvesWindow.cpp diff --git a/extern/freestyle/src/app/AppDensityCurvesWindow.h b/source/blender/freestyle/src/app/AppDensityCurvesWindow.h index d7091440e06..d7091440e06 100755 --- a/extern/freestyle/src/app/AppDensityCurvesWindow.h +++ b/source/blender/freestyle/src/app/AppDensityCurvesWindow.h diff --git a/extern/freestyle/src/app/AppGL2DCurvesViewer.cpp b/source/blender/freestyle/src/app/AppGL2DCurvesViewer.cpp index 0915a4c3cbd..0915a4c3cbd 100755 --- a/extern/freestyle/src/app/AppGL2DCurvesViewer.cpp +++ b/source/blender/freestyle/src/app/AppGL2DCurvesViewer.cpp diff --git a/extern/freestyle/src/app/AppGL2DCurvesViewer.h b/source/blender/freestyle/src/app/AppGL2DCurvesViewer.h index c0bb8b4109c..c0bb8b4109c 100755 --- a/extern/freestyle/src/app/AppGL2DCurvesViewer.h +++ b/source/blender/freestyle/src/app/AppGL2DCurvesViewer.h diff --git a/extern/freestyle/src/app/AppGLWidget.cpp b/source/blender/freestyle/src/app/AppGLWidget.cpp index d59ad716c18..d59ad716c18 100755 --- a/extern/freestyle/src/app/AppGLWidget.cpp +++ b/source/blender/freestyle/src/app/AppGLWidget.cpp diff --git a/extern/freestyle/src/app/AppGLWidget.h b/source/blender/freestyle/src/app/AppGLWidget.h index 24bb2c7229b..24bb2c7229b 100755 --- a/extern/freestyle/src/app/AppGLWidget.h +++ b/source/blender/freestyle/src/app/AppGLWidget.h diff --git a/extern/freestyle/src/app/AppInteractiveShaderWindow.cpp b/source/blender/freestyle/src/app/AppInteractiveShaderWindow.cpp index b074c85f9f9..b074c85f9f9 100755 --- a/extern/freestyle/src/app/AppInteractiveShaderWindow.cpp +++ b/source/blender/freestyle/src/app/AppInteractiveShaderWindow.cpp diff --git a/extern/freestyle/src/app/AppInteractiveShaderWindow.h b/source/blender/freestyle/src/app/AppInteractiveShaderWindow.h index 58f2aa1f01a..58f2aa1f01a 100755 --- a/extern/freestyle/src/app/AppInteractiveShaderWindow.h +++ b/source/blender/freestyle/src/app/AppInteractiveShaderWindow.h diff --git a/extern/freestyle/src/app/AppMainWindow.cpp b/source/blender/freestyle/src/app/AppMainWindow.cpp index 03b4f3a28ea..03b4f3a28ea 100755 --- a/extern/freestyle/src/app/AppMainWindow.cpp +++ b/source/blender/freestyle/src/app/AppMainWindow.cpp diff --git a/extern/freestyle/src/app/AppMainWindow.h b/source/blender/freestyle/src/app/AppMainWindow.h index 750283f85ba..750283f85ba 100755 --- a/extern/freestyle/src/app/AppMainWindow.h +++ b/source/blender/freestyle/src/app/AppMainWindow.h diff --git a/extern/freestyle/src/app/AppOptionsWindow.cpp b/source/blender/freestyle/src/app/AppOptionsWindow.cpp index 6c3dc9a83aa..6c3dc9a83aa 100755 --- a/extern/freestyle/src/app/AppOptionsWindow.cpp +++ b/source/blender/freestyle/src/app/AppOptionsWindow.cpp diff --git a/extern/freestyle/src/app/AppOptionsWindow.h b/source/blender/freestyle/src/app/AppOptionsWindow.h index aaa964739a6..aaa964739a6 100755 --- a/extern/freestyle/src/app/AppOptionsWindow.h +++ b/source/blender/freestyle/src/app/AppOptionsWindow.h diff --git a/extern/freestyle/src/app/AppProgressBar.cpp b/source/blender/freestyle/src/app/AppProgressBar.cpp index a4d18d07dd3..a4d18d07dd3 100755 --- a/extern/freestyle/src/app/AppProgressBar.cpp +++ b/source/blender/freestyle/src/app/AppProgressBar.cpp diff --git a/extern/freestyle/src/app/AppProgressBar.h b/source/blender/freestyle/src/app/AppProgressBar.h index 09cc500a981..09cc500a981 100755 --- a/extern/freestyle/src/app/AppProgressBar.h +++ b/source/blender/freestyle/src/app/AppProgressBar.h diff --git a/extern/freestyle/src/app/AppStyleWindow.cpp b/source/blender/freestyle/src/app/AppStyleWindow.cpp index d8be753b498..d8be753b498 100755 --- a/extern/freestyle/src/app/AppStyleWindow.cpp +++ b/source/blender/freestyle/src/app/AppStyleWindow.cpp diff --git a/extern/freestyle/src/app/AppStyleWindow.h b/source/blender/freestyle/src/app/AppStyleWindow.h index a9339abf9c8..a9339abf9c8 100755 --- a/extern/freestyle/src/app/AppStyleWindow.h +++ b/source/blender/freestyle/src/app/AppStyleWindow.h diff --git a/extern/freestyle/src/app/ConfigIO.cpp b/source/blender/freestyle/src/app/ConfigIO.cpp index 8165deb07fd..8165deb07fd 100755 --- a/extern/freestyle/src/app/ConfigIO.cpp +++ b/source/blender/freestyle/src/app/ConfigIO.cpp diff --git a/extern/freestyle/src/app/ConfigIO.h b/source/blender/freestyle/src/app/ConfigIO.h index 15f3cd07575..15f3cd07575 100755 --- a/extern/freestyle/src/app/ConfigIO.h +++ b/source/blender/freestyle/src/app/ConfigIO.h diff --git a/extern/freestyle/src/app/Controller.cpp b/source/blender/freestyle/src/app/Controller.cpp index ac41b31ac78..ac41b31ac78 100755 --- a/extern/freestyle/src/app/Controller.cpp +++ b/source/blender/freestyle/src/app/Controller.cpp diff --git a/extern/freestyle/src/app/Controller.h b/source/blender/freestyle/src/app/Controller.h index 95b97ebcda3..95b97ebcda3 100755 --- a/extern/freestyle/src/app/Controller.h +++ b/source/blender/freestyle/src/app/Controller.h diff --git a/extern/freestyle/src/app/Main.cpp b/source/blender/freestyle/src/app/Main.cpp index ae4d28017c5..ae4d28017c5 100755 --- a/extern/freestyle/src/app/Main.cpp +++ b/source/blender/freestyle/src/app/Main.cpp diff --git a/extern/freestyle/src/app/QGLBasicWidget.cpp b/source/blender/freestyle/src/app/QGLBasicWidget.cpp index 44b5e0de224..44b5e0de224 100755 --- a/extern/freestyle/src/app/QGLBasicWidget.cpp +++ b/source/blender/freestyle/src/app/QGLBasicWidget.cpp diff --git a/extern/freestyle/src/app/QGLBasicWidget.h b/source/blender/freestyle/src/app/QGLBasicWidget.h index 9b29a641f28..9b29a641f28 100755 --- a/extern/freestyle/src/app/QGLBasicWidget.h +++ b/source/blender/freestyle/src/app/QGLBasicWidget.h diff --git a/extern/freestyle/src/app/QStyleModuleSyntaxHighlighter.cpp b/source/blender/freestyle/src/app/QStyleModuleSyntaxHighlighter.cpp index 16ea53f157c..16ea53f157c 100755 --- a/extern/freestyle/src/app/QStyleModuleSyntaxHighlighter.cpp +++ b/source/blender/freestyle/src/app/QStyleModuleSyntaxHighlighter.cpp diff --git a/extern/freestyle/src/app/QStyleModuleSyntaxHighlighter.h b/source/blender/freestyle/src/app/QStyleModuleSyntaxHighlighter.h index ff3591ac45d..ff3591ac45d 100755 --- a/extern/freestyle/src/app/QStyleModuleSyntaxHighlighter.h +++ b/source/blender/freestyle/src/app/QStyleModuleSyntaxHighlighter.h diff --git a/extern/freestyle/src/app/app.pro b/source/blender/freestyle/src/app/app.pro index e2ba9aec6f7..e2ba9aec6f7 100755 --- a/extern/freestyle/src/app/app.pro +++ b/source/blender/freestyle/src/app/app.pro diff --git a/extern/freestyle/src/app/appmainwindowbase4.ui b/source/blender/freestyle/src/app/appmainwindowbase4.ui index 13e758d49dd..13e758d49dd 100755 --- a/extern/freestyle/src/app/appmainwindowbase4.ui +++ b/source/blender/freestyle/src/app/appmainwindowbase4.ui diff --git a/extern/freestyle/src/app/densitycurveswindow4.ui b/source/blender/freestyle/src/app/densitycurveswindow4.ui index 1a35e3247d1..1a35e3247d1 100755 --- a/extern/freestyle/src/app/densitycurveswindow4.ui +++ b/source/blender/freestyle/src/app/densitycurveswindow4.ui diff --git a/extern/freestyle/src/app/freestyle.qrc b/source/blender/freestyle/src/app/freestyle.qrc index b37a6702af6..b37a6702af6 100755 --- a/extern/freestyle/src/app/freestyle.qrc +++ b/source/blender/freestyle/src/app/freestyle.qrc diff --git a/extern/freestyle/src/app/icons/add.png b/source/blender/freestyle/src/app/icons/add.png Binary files differindex d3388dcb3a9..d3388dcb3a9 100755 --- a/extern/freestyle/src/app/icons/add.png +++ b/source/blender/freestyle/src/app/icons/add.png diff --git a/extern/freestyle/src/app/icons/arrow_down.png b/source/blender/freestyle/src/app/icons/arrow_down.png Binary files differindex 6cf2e9bba26..6cf2e9bba26 100755 --- a/extern/freestyle/src/app/icons/arrow_down.png +++ b/source/blender/freestyle/src/app/icons/arrow_down.png diff --git a/extern/freestyle/src/app/icons/arrow_left.png b/source/blender/freestyle/src/app/icons/arrow_left.png Binary files differindex 72a5c462af6..72a5c462af6 100755 --- a/extern/freestyle/src/app/icons/arrow_left.png +++ b/source/blender/freestyle/src/app/icons/arrow_left.png diff --git a/extern/freestyle/src/app/icons/arrow_right.png b/source/blender/freestyle/src/app/icons/arrow_right.png Binary files differindex f7e5c3b37e3..f7e5c3b37e3 100755 --- a/extern/freestyle/src/app/icons/arrow_right.png +++ b/source/blender/freestyle/src/app/icons/arrow_right.png diff --git a/extern/freestyle/src/app/icons/arrow_up.png b/source/blender/freestyle/src/app/icons/arrow_up.png Binary files differindex 993a574b15a..993a574b15a 100755 --- a/extern/freestyle/src/app/icons/arrow_up.png +++ b/source/blender/freestyle/src/app/icons/arrow_up.png diff --git a/extern/freestyle/src/app/icons/clear.png b/source/blender/freestyle/src/app/icons/clear.png Binary files differindex 1e3b2e37bd9..1e3b2e37bd9 100755 --- a/extern/freestyle/src/app/icons/clear.png +++ b/source/blender/freestyle/src/app/icons/clear.png diff --git a/extern/freestyle/src/app/icons/close.png b/source/blender/freestyle/src/app/icons/close.png Binary files differindex 2042ec3d1ba..2042ec3d1ba 100755 --- a/extern/freestyle/src/app/icons/close.png +++ b/source/blender/freestyle/src/app/icons/close.png diff --git a/extern/freestyle/src/app/icons/edit.png b/source/blender/freestyle/src/app/icons/edit.png Binary files differindex 244751b1933..244751b1933 100755 --- a/extern/freestyle/src/app/icons/edit.png +++ b/source/blender/freestyle/src/app/icons/edit.png diff --git a/extern/freestyle/src/app/icons/eye0.png b/source/blender/freestyle/src/app/icons/eye0.png Binary files differindex 5f6d873cb0c..5f6d873cb0c 100755 --- a/extern/freestyle/src/app/icons/eye0.png +++ b/source/blender/freestyle/src/app/icons/eye0.png diff --git a/extern/freestyle/src/app/icons/eye1.png b/source/blender/freestyle/src/app/icons/eye1.png Binary files differindex f762b66b482..f762b66b482 100755 --- a/extern/freestyle/src/app/icons/eye1.png +++ b/source/blender/freestyle/src/app/icons/eye1.png diff --git a/extern/freestyle/src/app/icons/folder.png b/source/blender/freestyle/src/app/icons/folder.png Binary files differindex 3a99ad5ee92..3a99ad5ee92 100755 --- a/extern/freestyle/src/app/icons/folder.png +++ b/source/blender/freestyle/src/app/icons/folder.png diff --git a/extern/freestyle/src/app/icons/home.png b/source/blender/freestyle/src/app/icons/home.png Binary files differindex ec4b22098b2..ec4b22098b2 100755 --- a/extern/freestyle/src/app/icons/home.png +++ b/source/blender/freestyle/src/app/icons/home.png diff --git a/extern/freestyle/src/app/icons/mod0.png b/source/blender/freestyle/src/app/icons/mod0.png Binary files differindex 816d814528a..816d814528a 100755 --- a/extern/freestyle/src/app/icons/mod0.png +++ b/source/blender/freestyle/src/app/icons/mod0.png diff --git a/extern/freestyle/src/app/icons/mod1.png b/source/blender/freestyle/src/app/icons/mod1.png Binary files differindex c7c66183800..c7c66183800 100755 --- a/extern/freestyle/src/app/icons/mod1.png +++ b/source/blender/freestyle/src/app/icons/mod1.png diff --git a/extern/freestyle/src/app/icons/ok.png b/source/blender/freestyle/src/app/icons/ok.png Binary files differindex 31c064ba922..31c064ba922 100755 --- a/extern/freestyle/src/app/icons/ok.png +++ b/source/blender/freestyle/src/app/icons/ok.png diff --git a/extern/freestyle/src/app/icons/reload.png b/source/blender/freestyle/src/app/icons/reload.png Binary files differindex d26c280f1ac..d26c280f1ac 100755 --- a/extern/freestyle/src/app/icons/reload.png +++ b/source/blender/freestyle/src/app/icons/reload.png diff --git a/extern/freestyle/src/app/icons/remove.png b/source/blender/freestyle/src/app/icons/remove.png Binary files differindex 86d8c38a7f8..86d8c38a7f8 100755 --- a/extern/freestyle/src/app/icons/remove.png +++ b/source/blender/freestyle/src/app/icons/remove.png diff --git a/extern/freestyle/src/app/icons/save.png b/source/blender/freestyle/src/app/icons/save.png Binary files differindex 932100d98e9..932100d98e9 100755 --- a/extern/freestyle/src/app/icons/save.png +++ b/source/blender/freestyle/src/app/icons/save.png diff --git a/extern/freestyle/src/app/icons/save_as.png b/source/blender/freestyle/src/app/icons/save_as.png Binary files differindex 2c8b3f3e7b4..2c8b3f3e7b4 100755 --- a/extern/freestyle/src/app/icons/save_as.png +++ b/source/blender/freestyle/src/app/icons/save_as.png diff --git a/extern/freestyle/src/app/interactiveshaderwindow4.ui b/source/blender/freestyle/src/app/interactiveshaderwindow4.ui index e17442ad43e..e17442ad43e 100755 --- a/extern/freestyle/src/app/interactiveshaderwindow4.ui +++ b/source/blender/freestyle/src/app/interactiveshaderwindow4.ui diff --git a/extern/freestyle/src/app/optionswindow4.ui b/source/blender/freestyle/src/app/optionswindow4.ui index 48c322c6d84..48c322c6d84 100755 --- a/extern/freestyle/src/app/optionswindow4.ui +++ b/source/blender/freestyle/src/app/optionswindow4.ui diff --git a/extern/freestyle/src/app/progressdialog4.ui b/source/blender/freestyle/src/app/progressdialog4.ui index 78cc67ed440..78cc67ed440 100755 --- a/extern/freestyle/src/app/progressdialog4.ui +++ b/source/blender/freestyle/src/app/progressdialog4.ui diff --git a/extern/freestyle/src/app/src.pri b/source/blender/freestyle/src/app/src.pri index 2fcc9146216..2fcc9146216 100755 --- a/extern/freestyle/src/app/src.pri +++ b/source/blender/freestyle/src/app/src.pri diff --git a/extern/freestyle/src/app/stylewindow4.ui b/source/blender/freestyle/src/app/stylewindow4.ui index c4ff5f656ae..c4ff5f656ae 100755 --- a/extern/freestyle/src/app/stylewindow4.ui +++ b/source/blender/freestyle/src/app/stylewindow4.ui diff --git a/extern/freestyle/src/build_bundle.macosx.py b/source/blender/freestyle/src/build_bundle.macosx.py index e97153f269c..e97153f269c 100755 --- a/extern/freestyle/src/build_bundle.macosx.py +++ b/source/blender/freestyle/src/build_bundle.macosx.py diff --git a/extern/freestyle/src/geometry/BBox.h b/source/blender/freestyle/src/geometry/BBox.h index 9c46d7918e2..9c46d7918e2 100755 --- a/extern/freestyle/src/geometry/BBox.h +++ b/source/blender/freestyle/src/geometry/BBox.h diff --git a/extern/freestyle/src/geometry/Bezier.cpp b/source/blender/freestyle/src/geometry/Bezier.cpp index 8f9771f29d3..8f9771f29d3 100755 --- a/extern/freestyle/src/geometry/Bezier.cpp +++ b/source/blender/freestyle/src/geometry/Bezier.cpp diff --git a/extern/freestyle/src/geometry/Bezier.h b/source/blender/freestyle/src/geometry/Bezier.h index acae71bbb2c..acae71bbb2c 100755 --- a/extern/freestyle/src/geometry/Bezier.h +++ b/source/blender/freestyle/src/geometry/Bezier.h diff --git a/extern/freestyle/src/geometry/FastGrid.cpp b/source/blender/freestyle/src/geometry/FastGrid.cpp index b090a3df67f..b090a3df67f 100755 --- a/extern/freestyle/src/geometry/FastGrid.cpp +++ b/source/blender/freestyle/src/geometry/FastGrid.cpp diff --git a/extern/freestyle/src/geometry/FastGrid.h b/source/blender/freestyle/src/geometry/FastGrid.h index e620ff24385..e620ff24385 100755 --- a/extern/freestyle/src/geometry/FastGrid.h +++ b/source/blender/freestyle/src/geometry/FastGrid.h diff --git a/extern/freestyle/src/geometry/FitCurve.cpp b/source/blender/freestyle/src/geometry/FitCurve.cpp index ade40b050ca..ade40b050ca 100755 --- a/extern/freestyle/src/geometry/FitCurve.cpp +++ b/source/blender/freestyle/src/geometry/FitCurve.cpp diff --git a/extern/freestyle/src/geometry/FitCurve.h b/source/blender/freestyle/src/geometry/FitCurve.h index ed7cbe34780..ed7cbe34780 100755 --- a/extern/freestyle/src/geometry/FitCurve.h +++ b/source/blender/freestyle/src/geometry/FitCurve.h diff --git a/extern/freestyle/src/geometry/Geom.h b/source/blender/freestyle/src/geometry/Geom.h index ac94213fe98..ac94213fe98 100755 --- a/extern/freestyle/src/geometry/Geom.h +++ b/source/blender/freestyle/src/geometry/Geom.h diff --git a/extern/freestyle/src/geometry/GeomCleaner.cpp b/source/blender/freestyle/src/geometry/GeomCleaner.cpp index c148c521a46..c148c521a46 100755 --- a/extern/freestyle/src/geometry/GeomCleaner.cpp +++ b/source/blender/freestyle/src/geometry/GeomCleaner.cpp diff --git a/extern/freestyle/src/geometry/GeomCleaner.h b/source/blender/freestyle/src/geometry/GeomCleaner.h index d78d90ccb4a..d78d90ccb4a 100755 --- a/extern/freestyle/src/geometry/GeomCleaner.h +++ b/source/blender/freestyle/src/geometry/GeomCleaner.h diff --git a/extern/freestyle/src/geometry/GeomUtils.cpp b/source/blender/freestyle/src/geometry/GeomUtils.cpp index fd36e81ca77..fd36e81ca77 100755 --- a/extern/freestyle/src/geometry/GeomUtils.cpp +++ b/source/blender/freestyle/src/geometry/GeomUtils.cpp diff --git a/extern/freestyle/src/geometry/GeomUtils.h b/source/blender/freestyle/src/geometry/GeomUtils.h index 53c94c22f8b..53c94c22f8b 100755 --- a/extern/freestyle/src/geometry/GeomUtils.h +++ b/source/blender/freestyle/src/geometry/GeomUtils.h diff --git a/extern/freestyle/src/geometry/Grid.cpp b/source/blender/freestyle/src/geometry/Grid.cpp index 59b730358bc..59b730358bc 100755 --- a/extern/freestyle/src/geometry/Grid.cpp +++ b/source/blender/freestyle/src/geometry/Grid.cpp diff --git a/extern/freestyle/src/geometry/Grid.h b/source/blender/freestyle/src/geometry/Grid.h index 6197721bb45..6197721bb45 100755 --- a/extern/freestyle/src/geometry/Grid.h +++ b/source/blender/freestyle/src/geometry/Grid.h diff --git a/extern/freestyle/src/geometry/HashGrid.cpp b/source/blender/freestyle/src/geometry/HashGrid.cpp index 3cf845d57ef..3cf845d57ef 100755 --- a/extern/freestyle/src/geometry/HashGrid.cpp +++ b/source/blender/freestyle/src/geometry/HashGrid.cpp diff --git a/extern/freestyle/src/geometry/HashGrid.h b/source/blender/freestyle/src/geometry/HashGrid.h index f6605957676..f6605957676 100755 --- a/extern/freestyle/src/geometry/HashGrid.h +++ b/source/blender/freestyle/src/geometry/HashGrid.h diff --git a/extern/freestyle/src/geometry/Noise.cpp b/source/blender/freestyle/src/geometry/Noise.cpp index 396fc3bbb47..396fc3bbb47 100755 --- a/extern/freestyle/src/geometry/Noise.cpp +++ b/source/blender/freestyle/src/geometry/Noise.cpp diff --git a/extern/freestyle/src/geometry/Noise.h b/source/blender/freestyle/src/geometry/Noise.h index 00cebbb451e..00cebbb451e 100755 --- a/extern/freestyle/src/geometry/Noise.h +++ b/source/blender/freestyle/src/geometry/Noise.h diff --git a/extern/freestyle/src/geometry/Polygon.h b/source/blender/freestyle/src/geometry/Polygon.h index f9c4c78d424..f9c4c78d424 100755 --- a/extern/freestyle/src/geometry/Polygon.h +++ b/source/blender/freestyle/src/geometry/Polygon.h diff --git a/extern/freestyle/src/geometry/SweepLine.h b/source/blender/freestyle/src/geometry/SweepLine.h index e3fb4ad8c0c..e3fb4ad8c0c 100755 --- a/extern/freestyle/src/geometry/SweepLine.h +++ b/source/blender/freestyle/src/geometry/SweepLine.h diff --git a/extern/freestyle/src/geometry/VecMat.h b/source/blender/freestyle/src/geometry/VecMat.h index 9bbec3b1349..9bbec3b1349 100755 --- a/extern/freestyle/src/geometry/VecMat.h +++ b/source/blender/freestyle/src/geometry/VecMat.h diff --git a/extern/freestyle/src/geometry/geometry.pro b/source/blender/freestyle/src/geometry/geometry.pro index a63aa6483b4..a63aa6483b4 100755 --- a/extern/freestyle/src/geometry/geometry.pro +++ b/source/blender/freestyle/src/geometry/geometry.pro diff --git a/extern/freestyle/src/geometry/matrix_util.cpp b/source/blender/freestyle/src/geometry/matrix_util.cpp index 2117b06e62f..2117b06e62f 100755 --- a/extern/freestyle/src/geometry/matrix_util.cpp +++ b/source/blender/freestyle/src/geometry/matrix_util.cpp diff --git a/extern/freestyle/src/geometry/matrix_util.h b/source/blender/freestyle/src/geometry/matrix_util.h index a990413c403..a990413c403 100755 --- a/extern/freestyle/src/geometry/matrix_util.h +++ b/source/blender/freestyle/src/geometry/matrix_util.h diff --git a/extern/freestyle/src/geometry/normal_cycle.cpp b/source/blender/freestyle/src/geometry/normal_cycle.cpp index b456ced8331..b456ced8331 100755 --- a/extern/freestyle/src/geometry/normal_cycle.cpp +++ b/source/blender/freestyle/src/geometry/normal_cycle.cpp diff --git a/extern/freestyle/src/geometry/normal_cycle.h b/source/blender/freestyle/src/geometry/normal_cycle.h index 41fbf7b3fab..41fbf7b3fab 100755 --- a/extern/freestyle/src/geometry/normal_cycle.h +++ b/source/blender/freestyle/src/geometry/normal_cycle.h diff --git a/extern/freestyle/src/geometry/src.pri b/source/blender/freestyle/src/geometry/src.pri index a35760fe892..a35760fe892 100755 --- a/extern/freestyle/src/geometry/src.pri +++ b/source/blender/freestyle/src/geometry/src.pri diff --git a/extern/freestyle/src/image/GaussianFilter.cpp b/source/blender/freestyle/src/image/GaussianFilter.cpp index 97c2aedc62e..97c2aedc62e 100755 --- a/extern/freestyle/src/image/GaussianFilter.cpp +++ b/source/blender/freestyle/src/image/GaussianFilter.cpp diff --git a/extern/freestyle/src/image/GaussianFilter.h b/source/blender/freestyle/src/image/GaussianFilter.h index c75177541d3..c75177541d3 100755 --- a/extern/freestyle/src/image/GaussianFilter.h +++ b/source/blender/freestyle/src/image/GaussianFilter.h diff --git a/extern/freestyle/src/image/Image.h b/source/blender/freestyle/src/image/Image.h index 83d6785e32f..83d6785e32f 100755 --- a/extern/freestyle/src/image/Image.h +++ b/source/blender/freestyle/src/image/Image.h diff --git a/extern/freestyle/src/image/ImagePyramid.cpp b/source/blender/freestyle/src/image/ImagePyramid.cpp index 45c02004d1c..45c02004d1c 100755 --- a/extern/freestyle/src/image/ImagePyramid.cpp +++ b/source/blender/freestyle/src/image/ImagePyramid.cpp diff --git a/extern/freestyle/src/image/ImagePyramid.h b/source/blender/freestyle/src/image/ImagePyramid.h index 9e326757f02..9e326757f02 100755 --- a/extern/freestyle/src/image/ImagePyramid.h +++ b/source/blender/freestyle/src/image/ImagePyramid.h diff --git a/extern/freestyle/src/image/image.pro b/source/blender/freestyle/src/image/image.pro index 133b6cf4f35..133b6cf4f35 100755 --- a/extern/freestyle/src/image/image.pro +++ b/source/blender/freestyle/src/image/image.pro diff --git a/extern/freestyle/src/image/src.pri b/source/blender/freestyle/src/image/src.pri index c047929b49f..c047929b49f 100755 --- a/extern/freestyle/src/image/src.pri +++ b/source/blender/freestyle/src/image/src.pri diff --git a/extern/freestyle/src/libconfig.pri b/source/blender/freestyle/src/libconfig.pri index 6fec8878694..6fec8878694 100755 --- a/extern/freestyle/src/libconfig.pri +++ b/source/blender/freestyle/src/libconfig.pri diff --git a/extern/freestyle/src/makedsp.vcnet.debug.bat b/source/blender/freestyle/src/makedsp.vcnet.debug.bat index e19ca52b4f7..e19ca52b4f7 100755 --- a/extern/freestyle/src/makedsp.vcnet.debug.bat +++ b/source/blender/freestyle/src/makedsp.vcnet.debug.bat diff --git a/extern/freestyle/src/makedsp.vcnet.release.bat b/source/blender/freestyle/src/makedsp.vcnet.release.bat index 3050a2fe4ea..3050a2fe4ea 100755 --- a/extern/freestyle/src/makedsp.vcnet.release.bat +++ b/source/blender/freestyle/src/makedsp.vcnet.release.bat diff --git a/extern/freestyle/src/rendering/GLBBoxRenderer.cpp b/source/blender/freestyle/src/rendering/GLBBoxRenderer.cpp index 464779d6a43..464779d6a43 100755 --- a/extern/freestyle/src/rendering/GLBBoxRenderer.cpp +++ b/source/blender/freestyle/src/rendering/GLBBoxRenderer.cpp diff --git a/extern/freestyle/src/rendering/GLBBoxRenderer.h b/source/blender/freestyle/src/rendering/GLBBoxRenderer.h index 4bb72ba80b0..4bb72ba80b0 100755 --- a/extern/freestyle/src/rendering/GLBBoxRenderer.h +++ b/source/blender/freestyle/src/rendering/GLBBoxRenderer.h diff --git a/extern/freestyle/src/rendering/GLDebugRenderer.cpp b/source/blender/freestyle/src/rendering/GLDebugRenderer.cpp index b396a0ce6d3..b396a0ce6d3 100755 --- a/extern/freestyle/src/rendering/GLDebugRenderer.cpp +++ b/source/blender/freestyle/src/rendering/GLDebugRenderer.cpp diff --git a/extern/freestyle/src/rendering/GLDebugRenderer.h b/source/blender/freestyle/src/rendering/GLDebugRenderer.h index abf76d079da..abf76d079da 100755 --- a/extern/freestyle/src/rendering/GLDebugRenderer.h +++ b/source/blender/freestyle/src/rendering/GLDebugRenderer.h diff --git a/extern/freestyle/src/rendering/GLFreeMemoryVisitor.cpp b/source/blender/freestyle/src/rendering/GLFreeMemoryVisitor.cpp index b5a835f5104..b5a835f5104 100644 --- a/extern/freestyle/src/rendering/GLFreeMemoryVisitor.cpp +++ b/source/blender/freestyle/src/rendering/GLFreeMemoryVisitor.cpp diff --git a/extern/freestyle/src/rendering/GLFreeMemoryVisitor.h b/source/blender/freestyle/src/rendering/GLFreeMemoryVisitor.h index dd6412b1bb7..dd6412b1bb7 100644 --- a/extern/freestyle/src/rendering/GLFreeMemoryVisitor.h +++ b/source/blender/freestyle/src/rendering/GLFreeMemoryVisitor.h diff --git a/extern/freestyle/src/rendering/GLMonoColorRenderer.cpp b/source/blender/freestyle/src/rendering/GLMonoColorRenderer.cpp index 792846fa020..792846fa020 100755 --- a/extern/freestyle/src/rendering/GLMonoColorRenderer.cpp +++ b/source/blender/freestyle/src/rendering/GLMonoColorRenderer.cpp diff --git a/extern/freestyle/src/rendering/GLMonoColorRenderer.h b/source/blender/freestyle/src/rendering/GLMonoColorRenderer.h index d8e3cf536ec..d8e3cf536ec 100755 --- a/extern/freestyle/src/rendering/GLMonoColorRenderer.h +++ b/source/blender/freestyle/src/rendering/GLMonoColorRenderer.h diff --git a/extern/freestyle/src/rendering/GLRenderer.cpp b/source/blender/freestyle/src/rendering/GLRenderer.cpp index d566060dfc7..d566060dfc7 100755 --- a/extern/freestyle/src/rendering/GLRenderer.cpp +++ b/source/blender/freestyle/src/rendering/GLRenderer.cpp diff --git a/extern/freestyle/src/rendering/GLRenderer.h b/source/blender/freestyle/src/rendering/GLRenderer.h index ddbf082038b..ddbf082038b 100755 --- a/extern/freestyle/src/rendering/GLRenderer.h +++ b/source/blender/freestyle/src/rendering/GLRenderer.h diff --git a/extern/freestyle/src/rendering/GLSelectRenderer.cpp b/source/blender/freestyle/src/rendering/GLSelectRenderer.cpp index b4a2406c644..b4a2406c644 100755 --- a/extern/freestyle/src/rendering/GLSelectRenderer.cpp +++ b/source/blender/freestyle/src/rendering/GLSelectRenderer.cpp diff --git a/extern/freestyle/src/rendering/GLSelectRenderer.h b/source/blender/freestyle/src/rendering/GLSelectRenderer.h index bf8a334aebb..bf8a334aebb 100755 --- a/extern/freestyle/src/rendering/GLSelectRenderer.h +++ b/source/blender/freestyle/src/rendering/GLSelectRenderer.h diff --git a/extern/freestyle/src/rendering/GLStrokeRenderer.cpp b/source/blender/freestyle/src/rendering/GLStrokeRenderer.cpp index 7525807da47..7525807da47 100755 --- a/extern/freestyle/src/rendering/GLStrokeRenderer.cpp +++ b/source/blender/freestyle/src/rendering/GLStrokeRenderer.cpp diff --git a/extern/freestyle/src/rendering/GLStrokeRenderer.h b/source/blender/freestyle/src/rendering/GLStrokeRenderer.h index bef95996444..bef95996444 100755 --- a/extern/freestyle/src/rendering/GLStrokeRenderer.h +++ b/source/blender/freestyle/src/rendering/GLStrokeRenderer.h diff --git a/extern/freestyle/src/rendering/GLUtils.cpp b/source/blender/freestyle/src/rendering/GLUtils.cpp index 5e9ba2a5bf4..5e9ba2a5bf4 100755 --- a/extern/freestyle/src/rendering/GLUtils.cpp +++ b/source/blender/freestyle/src/rendering/GLUtils.cpp diff --git a/extern/freestyle/src/rendering/GLUtils.h b/source/blender/freestyle/src/rendering/GLUtils.h index 453b3f31259..453b3f31259 100755 --- a/extern/freestyle/src/rendering/GLUtils.h +++ b/source/blender/freestyle/src/rendering/GLUtils.h diff --git a/extern/freestyle/src/rendering/GLXOffscreenViewer.cpp b/source/blender/freestyle/src/rendering/GLXOffscreenViewer.cpp index 7135cedd7ad..7135cedd7ad 100755 --- a/extern/freestyle/src/rendering/GLXOffscreenViewer.cpp +++ b/source/blender/freestyle/src/rendering/GLXOffscreenViewer.cpp diff --git a/extern/freestyle/src/rendering/GLXOffscreenViewer.h b/source/blender/freestyle/src/rendering/GLXOffscreenViewer.h index c09a23f500b..c09a23f500b 100755 --- a/extern/freestyle/src/rendering/GLXOffscreenViewer.h +++ b/source/blender/freestyle/src/rendering/GLXOffscreenViewer.h diff --git a/extern/freestyle/src/rendering/extgl.cpp b/source/blender/freestyle/src/rendering/extgl.cpp index d7207f21299..d7207f21299 100755 --- a/extern/freestyle/src/rendering/extgl.cpp +++ b/source/blender/freestyle/src/rendering/extgl.cpp diff --git a/extern/freestyle/src/rendering/extgl.h b/source/blender/freestyle/src/rendering/extgl.h index 68c13dea3d2..68c13dea3d2 100755 --- a/extern/freestyle/src/rendering/extgl.h +++ b/source/blender/freestyle/src/rendering/extgl.h diff --git a/extern/freestyle/src/rendering/pbuffer.cpp b/source/blender/freestyle/src/rendering/pbuffer.cpp index ec73fc52ae4..ec73fc52ae4 100755 --- a/extern/freestyle/src/rendering/pbuffer.cpp +++ b/source/blender/freestyle/src/rendering/pbuffer.cpp diff --git a/extern/freestyle/src/rendering/pbuffer.h b/source/blender/freestyle/src/rendering/pbuffer.h index 7f11f461b1c..7f11f461b1c 100755 --- a/extern/freestyle/src/rendering/pbuffer.h +++ b/source/blender/freestyle/src/rendering/pbuffer.h diff --git a/extern/freestyle/src/rendering/rendering.pro b/source/blender/freestyle/src/rendering/rendering.pro index 0bbca195b6b..0bbca195b6b 100755 --- a/extern/freestyle/src/rendering/rendering.pro +++ b/source/blender/freestyle/src/rendering/rendering.pro diff --git a/extern/freestyle/src/rendering/src.pri b/source/blender/freestyle/src/rendering/src.pri index aee4cdb2782..aee4cdb2782 100755 --- a/extern/freestyle/src/rendering/src.pri +++ b/source/blender/freestyle/src/rendering/src.pri diff --git a/extern/freestyle/src/scene_graph/DrawingStyle.h b/source/blender/freestyle/src/scene_graph/DrawingStyle.h index e2be6fa8264..e2be6fa8264 100755 --- a/extern/freestyle/src/scene_graph/DrawingStyle.h +++ b/source/blender/freestyle/src/scene_graph/DrawingStyle.h diff --git a/extern/freestyle/src/scene_graph/IndexedFaceSet.cpp b/source/blender/freestyle/src/scene_graph/IndexedFaceSet.cpp index ec3d3ad748c..ec3d3ad748c 100755 --- a/extern/freestyle/src/scene_graph/IndexedFaceSet.cpp +++ b/source/blender/freestyle/src/scene_graph/IndexedFaceSet.cpp diff --git a/extern/freestyle/src/scene_graph/IndexedFaceSet.h b/source/blender/freestyle/src/scene_graph/IndexedFaceSet.h index c6951942dbb..c6951942dbb 100755 --- a/extern/freestyle/src/scene_graph/IndexedFaceSet.h +++ b/source/blender/freestyle/src/scene_graph/IndexedFaceSet.h diff --git a/extern/freestyle/src/scene_graph/LineRep.cpp b/source/blender/freestyle/src/scene_graph/LineRep.cpp index 9dec2ec803f..9dec2ec803f 100755 --- a/extern/freestyle/src/scene_graph/LineRep.cpp +++ b/source/blender/freestyle/src/scene_graph/LineRep.cpp diff --git a/extern/freestyle/src/scene_graph/LineRep.h b/source/blender/freestyle/src/scene_graph/LineRep.h index 1bbba130ba3..1bbba130ba3 100755 --- a/extern/freestyle/src/scene_graph/LineRep.h +++ b/source/blender/freestyle/src/scene_graph/LineRep.h diff --git a/extern/freestyle/src/scene_graph/Material.h b/source/blender/freestyle/src/scene_graph/Material.h index 09557ad3473..09557ad3473 100755 --- a/extern/freestyle/src/scene_graph/Material.h +++ b/source/blender/freestyle/src/scene_graph/Material.h diff --git a/extern/freestyle/src/scene_graph/MaxFileLoader.cpp b/source/blender/freestyle/src/scene_graph/MaxFileLoader.cpp index 515874c4021..515874c4021 100755 --- a/extern/freestyle/src/scene_graph/MaxFileLoader.cpp +++ b/source/blender/freestyle/src/scene_graph/MaxFileLoader.cpp diff --git a/extern/freestyle/src/scene_graph/MaxFileLoader.h b/source/blender/freestyle/src/scene_graph/MaxFileLoader.h index ab31e656d46..ab31e656d46 100755 --- a/extern/freestyle/src/scene_graph/MaxFileLoader.h +++ b/source/blender/freestyle/src/scene_graph/MaxFileLoader.h diff --git a/extern/freestyle/src/scene_graph/Node.h b/source/blender/freestyle/src/scene_graph/Node.h index 1726dd3c853..1726dd3c853 100755 --- a/extern/freestyle/src/scene_graph/Node.h +++ b/source/blender/freestyle/src/scene_graph/Node.h diff --git a/extern/freestyle/src/scene_graph/NodeCamera.cpp b/source/blender/freestyle/src/scene_graph/NodeCamera.cpp index 2d850287ae5..2d850287ae5 100644 --- a/extern/freestyle/src/scene_graph/NodeCamera.cpp +++ b/source/blender/freestyle/src/scene_graph/NodeCamera.cpp diff --git a/extern/freestyle/src/scene_graph/NodeCamera.h b/source/blender/freestyle/src/scene_graph/NodeCamera.h index 76ccf465d38..76ccf465d38 100644 --- a/extern/freestyle/src/scene_graph/NodeCamera.h +++ b/source/blender/freestyle/src/scene_graph/NodeCamera.h diff --git a/extern/freestyle/src/scene_graph/NodeDrawingStyle.cpp b/source/blender/freestyle/src/scene_graph/NodeDrawingStyle.cpp index acd740ee055..acd740ee055 100755 --- a/extern/freestyle/src/scene_graph/NodeDrawingStyle.cpp +++ b/source/blender/freestyle/src/scene_graph/NodeDrawingStyle.cpp diff --git a/extern/freestyle/src/scene_graph/NodeDrawingStyle.h b/source/blender/freestyle/src/scene_graph/NodeDrawingStyle.h index 18442ae10f9..18442ae10f9 100755 --- a/extern/freestyle/src/scene_graph/NodeDrawingStyle.h +++ b/source/blender/freestyle/src/scene_graph/NodeDrawingStyle.h diff --git a/extern/freestyle/src/scene_graph/NodeGroup.cpp b/source/blender/freestyle/src/scene_graph/NodeGroup.cpp index 3d2aa2c8694..3d2aa2c8694 100755 --- a/extern/freestyle/src/scene_graph/NodeGroup.cpp +++ b/source/blender/freestyle/src/scene_graph/NodeGroup.cpp diff --git a/extern/freestyle/src/scene_graph/NodeGroup.h b/source/blender/freestyle/src/scene_graph/NodeGroup.h index a1bd2b57e56..a1bd2b57e56 100755 --- a/extern/freestyle/src/scene_graph/NodeGroup.h +++ b/source/blender/freestyle/src/scene_graph/NodeGroup.h diff --git a/extern/freestyle/src/scene_graph/NodeLight.cpp b/source/blender/freestyle/src/scene_graph/NodeLight.cpp index 61a46155cfa..61a46155cfa 100755 --- a/extern/freestyle/src/scene_graph/NodeLight.cpp +++ b/source/blender/freestyle/src/scene_graph/NodeLight.cpp diff --git a/extern/freestyle/src/scene_graph/NodeLight.h b/source/blender/freestyle/src/scene_graph/NodeLight.h index 0689505fb24..0689505fb24 100755 --- a/extern/freestyle/src/scene_graph/NodeLight.h +++ b/source/blender/freestyle/src/scene_graph/NodeLight.h diff --git a/extern/freestyle/src/scene_graph/NodeShape.cpp b/source/blender/freestyle/src/scene_graph/NodeShape.cpp index 2012ef83b9f..2012ef83b9f 100755 --- a/extern/freestyle/src/scene_graph/NodeShape.cpp +++ b/source/blender/freestyle/src/scene_graph/NodeShape.cpp diff --git a/extern/freestyle/src/scene_graph/NodeShape.h b/source/blender/freestyle/src/scene_graph/NodeShape.h index 3e963beec38..3e963beec38 100755 --- a/extern/freestyle/src/scene_graph/NodeShape.h +++ b/source/blender/freestyle/src/scene_graph/NodeShape.h diff --git a/extern/freestyle/src/scene_graph/NodeTransform.cpp b/source/blender/freestyle/src/scene_graph/NodeTransform.cpp index 64e9b7a4dd6..64e9b7a4dd6 100755 --- a/extern/freestyle/src/scene_graph/NodeTransform.cpp +++ b/source/blender/freestyle/src/scene_graph/NodeTransform.cpp diff --git a/extern/freestyle/src/scene_graph/NodeTransform.h b/source/blender/freestyle/src/scene_graph/NodeTransform.h index 3929c60996b..3929c60996b 100755 --- a/extern/freestyle/src/scene_graph/NodeTransform.h +++ b/source/blender/freestyle/src/scene_graph/NodeTransform.h diff --git a/extern/freestyle/src/scene_graph/OrientedLineRep.cpp b/source/blender/freestyle/src/scene_graph/OrientedLineRep.cpp index 2d0205308b9..2d0205308b9 100755 --- a/extern/freestyle/src/scene_graph/OrientedLineRep.cpp +++ b/source/blender/freestyle/src/scene_graph/OrientedLineRep.cpp diff --git a/extern/freestyle/src/scene_graph/OrientedLineRep.h b/source/blender/freestyle/src/scene_graph/OrientedLineRep.h index 4274581e39a..4274581e39a 100755 --- a/extern/freestyle/src/scene_graph/OrientedLineRep.h +++ b/source/blender/freestyle/src/scene_graph/OrientedLineRep.h diff --git a/extern/freestyle/src/scene_graph/Rep.cpp b/source/blender/freestyle/src/scene_graph/Rep.cpp index 520d3c41e2e..520d3c41e2e 100755 --- a/extern/freestyle/src/scene_graph/Rep.cpp +++ b/source/blender/freestyle/src/scene_graph/Rep.cpp diff --git a/extern/freestyle/src/scene_graph/Rep.h b/source/blender/freestyle/src/scene_graph/Rep.h index 6ccc2152c48..6ccc2152c48 100755 --- a/extern/freestyle/src/scene_graph/Rep.h +++ b/source/blender/freestyle/src/scene_graph/Rep.h diff --git a/extern/freestyle/src/scene_graph/ScenePrettyPrinter.cpp b/source/blender/freestyle/src/scene_graph/ScenePrettyPrinter.cpp index aeee87f8222..aeee87f8222 100755 --- a/extern/freestyle/src/scene_graph/ScenePrettyPrinter.cpp +++ b/source/blender/freestyle/src/scene_graph/ScenePrettyPrinter.cpp diff --git a/extern/freestyle/src/scene_graph/ScenePrettyPrinter.h b/source/blender/freestyle/src/scene_graph/ScenePrettyPrinter.h index 4e83825ff55..4e83825ff55 100755 --- a/extern/freestyle/src/scene_graph/ScenePrettyPrinter.h +++ b/source/blender/freestyle/src/scene_graph/ScenePrettyPrinter.h diff --git a/extern/freestyle/src/scene_graph/SceneVisitor.cpp b/source/blender/freestyle/src/scene_graph/SceneVisitor.cpp index 9cfb9d40d24..9cfb9d40d24 100755 --- a/extern/freestyle/src/scene_graph/SceneVisitor.cpp +++ b/source/blender/freestyle/src/scene_graph/SceneVisitor.cpp diff --git a/extern/freestyle/src/scene_graph/SceneVisitor.h b/source/blender/freestyle/src/scene_graph/SceneVisitor.h index c57bd2e0f6e..c57bd2e0f6e 100755 --- a/extern/freestyle/src/scene_graph/SceneVisitor.h +++ b/source/blender/freestyle/src/scene_graph/SceneVisitor.h diff --git a/extern/freestyle/src/scene_graph/TriangleRep.cpp b/source/blender/freestyle/src/scene_graph/TriangleRep.cpp index 215124b0676..215124b0676 100755 --- a/extern/freestyle/src/scene_graph/TriangleRep.cpp +++ b/source/blender/freestyle/src/scene_graph/TriangleRep.cpp diff --git a/extern/freestyle/src/scene_graph/TriangleRep.h b/source/blender/freestyle/src/scene_graph/TriangleRep.h index 20df12cfd8f..20df12cfd8f 100755 --- a/extern/freestyle/src/scene_graph/TriangleRep.h +++ b/source/blender/freestyle/src/scene_graph/TriangleRep.h diff --git a/extern/freestyle/src/scene_graph/VertexRep.cpp b/source/blender/freestyle/src/scene_graph/VertexRep.cpp index 1ecb5f141e1..1ecb5f141e1 100755 --- a/extern/freestyle/src/scene_graph/VertexRep.cpp +++ b/source/blender/freestyle/src/scene_graph/VertexRep.cpp diff --git a/extern/freestyle/src/scene_graph/VertexRep.h b/source/blender/freestyle/src/scene_graph/VertexRep.h index 9dce7fbbe9c..9dce7fbbe9c 100755 --- a/extern/freestyle/src/scene_graph/VertexRep.h +++ b/source/blender/freestyle/src/scene_graph/VertexRep.h diff --git a/extern/freestyle/src/scene_graph/scene_graph.pro b/source/blender/freestyle/src/scene_graph/scene_graph.pro index 5736104a597..5736104a597 100755 --- a/extern/freestyle/src/scene_graph/scene_graph.pro +++ b/source/blender/freestyle/src/scene_graph/scene_graph.pro diff --git a/extern/freestyle/src/scene_graph/src.pri b/source/blender/freestyle/src/scene_graph/src.pri index 994db200812..994db200812 100755 --- a/extern/freestyle/src/scene_graph/src.pri +++ b/source/blender/freestyle/src/scene_graph/src.pri diff --git a/extern/freestyle/src/stroke/AdvancedFunctions0D.cpp b/source/blender/freestyle/src/stroke/AdvancedFunctions0D.cpp index c22e183eccb..c22e183eccb 100755 --- a/extern/freestyle/src/stroke/AdvancedFunctions0D.cpp +++ b/source/blender/freestyle/src/stroke/AdvancedFunctions0D.cpp diff --git a/extern/freestyle/src/stroke/AdvancedFunctions0D.h b/source/blender/freestyle/src/stroke/AdvancedFunctions0D.h index d92575cf110..d92575cf110 100755 --- a/extern/freestyle/src/stroke/AdvancedFunctions0D.h +++ b/source/blender/freestyle/src/stroke/AdvancedFunctions0D.h diff --git a/extern/freestyle/src/stroke/AdvancedFunctions1D.cpp b/source/blender/freestyle/src/stroke/AdvancedFunctions1D.cpp index cf2982606e0..cf2982606e0 100755 --- a/extern/freestyle/src/stroke/AdvancedFunctions1D.cpp +++ b/source/blender/freestyle/src/stroke/AdvancedFunctions1D.cpp diff --git a/extern/freestyle/src/stroke/AdvancedFunctions1D.h b/source/blender/freestyle/src/stroke/AdvancedFunctions1D.h index 65b0eec36fd..65b0eec36fd 100755 --- a/extern/freestyle/src/stroke/AdvancedFunctions1D.h +++ b/source/blender/freestyle/src/stroke/AdvancedFunctions1D.h diff --git a/extern/freestyle/src/stroke/AdvancedPredicates1D.h b/source/blender/freestyle/src/stroke/AdvancedPredicates1D.h index f348f8593e5..f348f8593e5 100755 --- a/extern/freestyle/src/stroke/AdvancedPredicates1D.h +++ b/source/blender/freestyle/src/stroke/AdvancedPredicates1D.h diff --git a/extern/freestyle/src/stroke/AdvancedStrokeShaders.cpp b/source/blender/freestyle/src/stroke/AdvancedStrokeShaders.cpp index b1c5317c5f1..b1c5317c5f1 100755 --- a/extern/freestyle/src/stroke/AdvancedStrokeShaders.cpp +++ b/source/blender/freestyle/src/stroke/AdvancedStrokeShaders.cpp diff --git a/extern/freestyle/src/stroke/AdvancedStrokeShaders.h b/source/blender/freestyle/src/stroke/AdvancedStrokeShaders.h index b624ccd3e6b..b624ccd3e6b 100755 --- a/extern/freestyle/src/stroke/AdvancedStrokeShaders.h +++ b/source/blender/freestyle/src/stroke/AdvancedStrokeShaders.h diff --git a/extern/freestyle/src/stroke/BasicStrokeShaders.cpp b/source/blender/freestyle/src/stroke/BasicStrokeShaders.cpp index c3827ae3e36..c3827ae3e36 100755 --- a/extern/freestyle/src/stroke/BasicStrokeShaders.cpp +++ b/source/blender/freestyle/src/stroke/BasicStrokeShaders.cpp diff --git a/extern/freestyle/src/stroke/BasicStrokeShaders.h b/source/blender/freestyle/src/stroke/BasicStrokeShaders.h index f68971a3966..f68971a3966 100755 --- a/extern/freestyle/src/stroke/BasicStrokeShaders.h +++ b/source/blender/freestyle/src/stroke/BasicStrokeShaders.h diff --git a/extern/freestyle/src/stroke/Canvas.cpp b/source/blender/freestyle/src/stroke/Canvas.cpp index ecb76c4a015..ecb76c4a015 100755 --- a/extern/freestyle/src/stroke/Canvas.cpp +++ b/source/blender/freestyle/src/stroke/Canvas.cpp diff --git a/extern/freestyle/src/stroke/Canvas.h b/source/blender/freestyle/src/stroke/Canvas.h index cae50162933..cae50162933 100755 --- a/extern/freestyle/src/stroke/Canvas.h +++ b/source/blender/freestyle/src/stroke/Canvas.h diff --git a/extern/freestyle/src/stroke/Chain.cpp b/source/blender/freestyle/src/stroke/Chain.cpp index 3776cd58a03..3776cd58a03 100755 --- a/extern/freestyle/src/stroke/Chain.cpp +++ b/source/blender/freestyle/src/stroke/Chain.cpp diff --git a/extern/freestyle/src/stroke/Chain.h b/source/blender/freestyle/src/stroke/Chain.h index 042437a4154..042437a4154 100755 --- a/extern/freestyle/src/stroke/Chain.h +++ b/source/blender/freestyle/src/stroke/Chain.h diff --git a/extern/freestyle/src/stroke/ChainingIterators.cpp b/source/blender/freestyle/src/stroke/ChainingIterators.cpp index 206b6eb7364..206b6eb7364 100755 --- a/extern/freestyle/src/stroke/ChainingIterators.cpp +++ b/source/blender/freestyle/src/stroke/ChainingIterators.cpp diff --git a/extern/freestyle/src/stroke/ChainingIterators.h b/source/blender/freestyle/src/stroke/ChainingIterators.h index 1e946855dce..1e946855dce 100755 --- a/extern/freestyle/src/stroke/ChainingIterators.h +++ b/source/blender/freestyle/src/stroke/ChainingIterators.h diff --git a/extern/freestyle/src/stroke/ContextFunctions.cpp b/source/blender/freestyle/src/stroke/ContextFunctions.cpp index b55da1fb0f8..b55da1fb0f8 100755 --- a/extern/freestyle/src/stroke/ContextFunctions.cpp +++ b/source/blender/freestyle/src/stroke/ContextFunctions.cpp diff --git a/extern/freestyle/src/stroke/ContextFunctions.h b/source/blender/freestyle/src/stroke/ContextFunctions.h index 37c98656fa7..37c98656fa7 100755 --- a/extern/freestyle/src/stroke/ContextFunctions.h +++ b/source/blender/freestyle/src/stroke/ContextFunctions.h diff --git a/extern/freestyle/src/stroke/Curve.cpp b/source/blender/freestyle/src/stroke/Curve.cpp index f7b255c3ef4..f7b255c3ef4 100755 --- a/extern/freestyle/src/stroke/Curve.cpp +++ b/source/blender/freestyle/src/stroke/Curve.cpp diff --git a/extern/freestyle/src/stroke/Curve.h b/source/blender/freestyle/src/stroke/Curve.h index 400f27e5d5a..400f27e5d5a 100755 --- a/extern/freestyle/src/stroke/Curve.h +++ b/source/blender/freestyle/src/stroke/Curve.h diff --git a/extern/freestyle/src/stroke/CurveAdvancedIterators.h b/source/blender/freestyle/src/stroke/CurveAdvancedIterators.h index dfc9f2719f8..dfc9f2719f8 100755 --- a/extern/freestyle/src/stroke/CurveAdvancedIterators.h +++ b/source/blender/freestyle/src/stroke/CurveAdvancedIterators.h diff --git a/extern/freestyle/src/stroke/CurveIterators.h b/source/blender/freestyle/src/stroke/CurveIterators.h index 92f8bf065f4..92f8bf065f4 100755 --- a/extern/freestyle/src/stroke/CurveIterators.h +++ b/source/blender/freestyle/src/stroke/CurveIterators.h diff --git a/extern/freestyle/src/stroke/Modifiers.h b/source/blender/freestyle/src/stroke/Modifiers.h index c3be65ffc89..c3be65ffc89 100755 --- a/extern/freestyle/src/stroke/Modifiers.h +++ b/source/blender/freestyle/src/stroke/Modifiers.h diff --git a/extern/freestyle/src/stroke/Module.h b/source/blender/freestyle/src/stroke/Module.h index 591bb157392..591bb157392 100755 --- a/extern/freestyle/src/stroke/Module.h +++ b/source/blender/freestyle/src/stroke/Module.h diff --git a/extern/freestyle/src/stroke/Operators.cpp b/source/blender/freestyle/src/stroke/Operators.cpp index 121dee3ba26..121dee3ba26 100755 --- a/extern/freestyle/src/stroke/Operators.cpp +++ b/source/blender/freestyle/src/stroke/Operators.cpp diff --git a/extern/freestyle/src/stroke/Operators.h b/source/blender/freestyle/src/stroke/Operators.h index 96ecd0aa75b..96ecd0aa75b 100755 --- a/extern/freestyle/src/stroke/Operators.h +++ b/source/blender/freestyle/src/stroke/Operators.h diff --git a/extern/freestyle/src/stroke/PSStrokeRenderer.cpp b/source/blender/freestyle/src/stroke/PSStrokeRenderer.cpp index dc9c94e0e11..dc9c94e0e11 100755 --- a/extern/freestyle/src/stroke/PSStrokeRenderer.cpp +++ b/source/blender/freestyle/src/stroke/PSStrokeRenderer.cpp diff --git a/extern/freestyle/src/stroke/PSStrokeRenderer.h b/source/blender/freestyle/src/stroke/PSStrokeRenderer.h index 821c016ab91..821c016ab91 100755 --- a/extern/freestyle/src/stroke/PSStrokeRenderer.h +++ b/source/blender/freestyle/src/stroke/PSStrokeRenderer.h diff --git a/extern/freestyle/src/stroke/Predicates0D.h b/source/blender/freestyle/src/stroke/Predicates0D.h index 4c2dfacdf98..4c2dfacdf98 100755 --- a/extern/freestyle/src/stroke/Predicates0D.h +++ b/source/blender/freestyle/src/stroke/Predicates0D.h diff --git a/extern/freestyle/src/stroke/Predicates1D.h b/source/blender/freestyle/src/stroke/Predicates1D.h index cf9a3283ae4..cf9a3283ae4 100755 --- a/extern/freestyle/src/stroke/Predicates1D.h +++ b/source/blender/freestyle/src/stroke/Predicates1D.h diff --git a/extern/freestyle/src/stroke/QInformationMap.h b/source/blender/freestyle/src/stroke/QInformationMap.h index 2542bdba147..2542bdba147 100755 --- a/extern/freestyle/src/stroke/QInformationMap.h +++ b/source/blender/freestyle/src/stroke/QInformationMap.h diff --git a/extern/freestyle/src/stroke/Stroke.cpp b/source/blender/freestyle/src/stroke/Stroke.cpp index d6ff4d255c4..d6ff4d255c4 100755 --- a/extern/freestyle/src/stroke/Stroke.cpp +++ b/source/blender/freestyle/src/stroke/Stroke.cpp diff --git a/extern/freestyle/src/stroke/Stroke.h b/source/blender/freestyle/src/stroke/Stroke.h index a5cf51f8224..a5cf51f8224 100755 --- a/extern/freestyle/src/stroke/Stroke.h +++ b/source/blender/freestyle/src/stroke/Stroke.h diff --git a/extern/freestyle/src/stroke/StrokeAdvancedIterators.h b/source/blender/freestyle/src/stroke/StrokeAdvancedIterators.h index 279a0b12089..279a0b12089 100755 --- a/extern/freestyle/src/stroke/StrokeAdvancedIterators.h +++ b/source/blender/freestyle/src/stroke/StrokeAdvancedIterators.h diff --git a/extern/freestyle/src/stroke/StrokeIO.cpp b/source/blender/freestyle/src/stroke/StrokeIO.cpp index 7f540939fa1..7f540939fa1 100755 --- a/extern/freestyle/src/stroke/StrokeIO.cpp +++ b/source/blender/freestyle/src/stroke/StrokeIO.cpp diff --git a/extern/freestyle/src/stroke/StrokeIO.h b/source/blender/freestyle/src/stroke/StrokeIO.h index 42b99420f4a..42b99420f4a 100755 --- a/extern/freestyle/src/stroke/StrokeIO.h +++ b/source/blender/freestyle/src/stroke/StrokeIO.h diff --git a/extern/freestyle/src/stroke/StrokeIterators.h b/source/blender/freestyle/src/stroke/StrokeIterators.h index 9cc08a0532a..9cc08a0532a 100755 --- a/extern/freestyle/src/stroke/StrokeIterators.h +++ b/source/blender/freestyle/src/stroke/StrokeIterators.h diff --git a/extern/freestyle/src/stroke/StrokeLayer.cpp b/source/blender/freestyle/src/stroke/StrokeLayer.cpp index 8b469399ca8..8b469399ca8 100755 --- a/extern/freestyle/src/stroke/StrokeLayer.cpp +++ b/source/blender/freestyle/src/stroke/StrokeLayer.cpp diff --git a/extern/freestyle/src/stroke/StrokeLayer.h b/source/blender/freestyle/src/stroke/StrokeLayer.h index b89b77a85a7..b89b77a85a7 100755 --- a/extern/freestyle/src/stroke/StrokeLayer.h +++ b/source/blender/freestyle/src/stroke/StrokeLayer.h diff --git a/extern/freestyle/src/stroke/StrokeRenderer.cpp b/source/blender/freestyle/src/stroke/StrokeRenderer.cpp index e747fb4f5cd..e747fb4f5cd 100755 --- a/extern/freestyle/src/stroke/StrokeRenderer.cpp +++ b/source/blender/freestyle/src/stroke/StrokeRenderer.cpp diff --git a/extern/freestyle/src/stroke/StrokeRenderer.h b/source/blender/freestyle/src/stroke/StrokeRenderer.h index d192fe30145..d192fe30145 100755 --- a/extern/freestyle/src/stroke/StrokeRenderer.h +++ b/source/blender/freestyle/src/stroke/StrokeRenderer.h diff --git a/extern/freestyle/src/stroke/StrokeRep.cpp b/source/blender/freestyle/src/stroke/StrokeRep.cpp index 055e1fb1be4..055e1fb1be4 100755 --- a/extern/freestyle/src/stroke/StrokeRep.cpp +++ b/source/blender/freestyle/src/stroke/StrokeRep.cpp diff --git a/extern/freestyle/src/stroke/StrokeRep.h b/source/blender/freestyle/src/stroke/StrokeRep.h index 129769e5489..129769e5489 100755 --- a/extern/freestyle/src/stroke/StrokeRep.h +++ b/source/blender/freestyle/src/stroke/StrokeRep.h diff --git a/extern/freestyle/src/stroke/StrokeShader.h b/source/blender/freestyle/src/stroke/StrokeShader.h index fa1289f6e0f..fa1289f6e0f 100755 --- a/extern/freestyle/src/stroke/StrokeShader.h +++ b/source/blender/freestyle/src/stroke/StrokeShader.h diff --git a/extern/freestyle/src/stroke/StrokeTesselator.cpp b/source/blender/freestyle/src/stroke/StrokeTesselator.cpp index 6d0f5aa847c..6d0f5aa847c 100755 --- a/extern/freestyle/src/stroke/StrokeTesselator.cpp +++ b/source/blender/freestyle/src/stroke/StrokeTesselator.cpp diff --git a/extern/freestyle/src/stroke/StrokeTesselator.h b/source/blender/freestyle/src/stroke/StrokeTesselator.h index 767d82d3d98..767d82d3d98 100755 --- a/extern/freestyle/src/stroke/StrokeTesselator.h +++ b/source/blender/freestyle/src/stroke/StrokeTesselator.h diff --git a/extern/freestyle/src/stroke/StyleModule.h b/source/blender/freestyle/src/stroke/StyleModule.h index 3d39e53515b..3d39e53515b 100755 --- a/extern/freestyle/src/stroke/StyleModule.h +++ b/source/blender/freestyle/src/stroke/StyleModule.h diff --git a/extern/freestyle/src/stroke/TextStrokeRenderer.cpp b/source/blender/freestyle/src/stroke/TextStrokeRenderer.cpp index ea5af287bbe..ea5af287bbe 100755 --- a/extern/freestyle/src/stroke/TextStrokeRenderer.cpp +++ b/source/blender/freestyle/src/stroke/TextStrokeRenderer.cpp diff --git a/extern/freestyle/src/stroke/TextStrokeRenderer.h b/source/blender/freestyle/src/stroke/TextStrokeRenderer.h index ef610d63bdd..ef610d63bdd 100755 --- a/extern/freestyle/src/stroke/TextStrokeRenderer.h +++ b/source/blender/freestyle/src/stroke/TextStrokeRenderer.h diff --git a/extern/freestyle/src/stroke/src.pri b/source/blender/freestyle/src/stroke/src.pri index 09707f86dbc..09707f86dbc 100755 --- a/extern/freestyle/src/stroke/src.pri +++ b/source/blender/freestyle/src/stroke/src.pri diff --git a/extern/freestyle/src/stroke/stroke.pro b/source/blender/freestyle/src/stroke/stroke.pro index 90c0cc96592..90c0cc96592 100755 --- a/extern/freestyle/src/stroke/stroke.pro +++ b/source/blender/freestyle/src/stroke/stroke.pro diff --git a/extern/freestyle/src/swig/Freestyle.i b/source/blender/freestyle/src/swig/Freestyle.i index 37daddc4e11..37daddc4e11 100755 --- a/extern/freestyle/src/swig/Freestyle.i +++ b/source/blender/freestyle/src/swig/Freestyle.i diff --git a/extern/freestyle/src/swig/FreestyleWrapper.vc7.vcproj b/source/blender/freestyle/src/swig/FreestyleWrapper.vc7.vcproj index 060c1987ea1..060c1987ea1 100755 --- a/extern/freestyle/src/swig/FreestyleWrapper.vc7.vcproj +++ b/source/blender/freestyle/src/swig/FreestyleWrapper.vc7.vcproj diff --git a/extern/freestyle/src/swig/FreestyleWrapper.vc8.vcproj b/source/blender/freestyle/src/swig/FreestyleWrapper.vc8.vcproj index 833a4f89aca..833a4f89aca 100755 --- a/extern/freestyle/src/swig/FreestyleWrapper.vc8.vcproj +++ b/source/blender/freestyle/src/swig/FreestyleWrapper.vc8.vcproj diff --git a/extern/freestyle/src/swig/Makefile b/source/blender/freestyle/src/swig/Makefile index 01829434be0..01829434be0 100755 --- a/extern/freestyle/src/swig/Makefile +++ b/source/blender/freestyle/src/swig/Makefile diff --git a/extern/freestyle/src/swig/Makefile.cygwin b/source/blender/freestyle/src/swig/Makefile.cygwin index 1f5b3ce2a79..1f5b3ce2a79 100755 --- a/extern/freestyle/src/swig/Makefile.cygwin +++ b/source/blender/freestyle/src/swig/Makefile.cygwin diff --git a/extern/freestyle/src/swig/Makefile.linux b/source/blender/freestyle/src/swig/Makefile.linux index 2a93971ccd5..2a93971ccd5 100755 --- a/extern/freestyle/src/swig/Makefile.linux +++ b/source/blender/freestyle/src/swig/Makefile.linux diff --git a/extern/freestyle/src/swig/Makefile.mac b/source/blender/freestyle/src/swig/Makefile.mac index 2c46d74549e..2c46d74549e 100644 --- a/extern/freestyle/src/swig/Makefile.mac +++ b/source/blender/freestyle/src/swig/Makefile.mac diff --git a/extern/freestyle/src/swig/Makefile.noswig b/source/blender/freestyle/src/swig/Makefile.noswig index 368c4fb173b..368c4fb173b 100755 --- a/extern/freestyle/src/swig/Makefile.noswig +++ b/source/blender/freestyle/src/swig/Makefile.noswig diff --git a/extern/freestyle/src/swig/ModuleWrapper.cpp b/source/blender/freestyle/src/swig/ModuleWrapper.cpp index 36bd39b2b15..36bd39b2b15 100755 --- a/extern/freestyle/src/swig/ModuleWrapper.cpp +++ b/source/blender/freestyle/src/swig/ModuleWrapper.cpp diff --git a/extern/freestyle/src/swig/ModuleWrapper.h b/source/blender/freestyle/src/swig/ModuleWrapper.h index 06ca8c90f37..06ca8c90f37 100755 --- a/extern/freestyle/src/swig/ModuleWrapper.h +++ b/source/blender/freestyle/src/swig/ModuleWrapper.h diff --git a/extern/freestyle/src/system/BaseIterator.h b/source/blender/freestyle/src/system/BaseIterator.h index 45cc19df4fe..45cc19df4fe 100755 --- a/extern/freestyle/src/system/BaseIterator.h +++ b/source/blender/freestyle/src/system/BaseIterator.h diff --git a/extern/freestyle/src/system/BaseObject.cpp b/source/blender/freestyle/src/system/BaseObject.cpp index 21d8a77b268..21d8a77b268 100755 --- a/extern/freestyle/src/system/BaseObject.cpp +++ b/source/blender/freestyle/src/system/BaseObject.cpp diff --git a/extern/freestyle/src/system/BaseObject.h b/source/blender/freestyle/src/system/BaseObject.h index a8515f98385..a8515f98385 100755 --- a/extern/freestyle/src/system/BaseObject.h +++ b/source/blender/freestyle/src/system/BaseObject.h diff --git a/extern/freestyle/src/system/Cast.h b/source/blender/freestyle/src/system/Cast.h index 15af767443e..15af767443e 100755 --- a/extern/freestyle/src/system/Cast.h +++ b/source/blender/freestyle/src/system/Cast.h diff --git a/extern/freestyle/src/system/Exception.cpp b/source/blender/freestyle/src/system/Exception.cpp index d1d12d18297..d1d12d18297 100755 --- a/extern/freestyle/src/system/Exception.cpp +++ b/source/blender/freestyle/src/system/Exception.cpp diff --git a/extern/freestyle/src/system/Exception.h b/source/blender/freestyle/src/system/Exception.h index 378de6b558f..378de6b558f 100755 --- a/extern/freestyle/src/system/Exception.h +++ b/source/blender/freestyle/src/system/Exception.h diff --git a/extern/freestyle/src/system/FreestyleConfig.h b/source/blender/freestyle/src/system/FreestyleConfig.h index 45bd00a402e..45bd00a402e 100755 --- a/extern/freestyle/src/system/FreestyleConfig.h +++ b/source/blender/freestyle/src/system/FreestyleConfig.h diff --git a/extern/freestyle/src/system/Id.h b/source/blender/freestyle/src/system/Id.h index 1f2206ed337..1f2206ed337 100755 --- a/extern/freestyle/src/system/Id.h +++ b/source/blender/freestyle/src/system/Id.h diff --git a/extern/freestyle/src/system/Interpreter.h b/source/blender/freestyle/src/system/Interpreter.h index ce603b17238..ce603b17238 100755 --- a/extern/freestyle/src/system/Interpreter.h +++ b/source/blender/freestyle/src/system/Interpreter.h diff --git a/extern/freestyle/src/system/Precision.h b/source/blender/freestyle/src/system/Precision.h index 24327a280df..24327a280df 100755 --- a/extern/freestyle/src/system/Precision.h +++ b/source/blender/freestyle/src/system/Precision.h diff --git a/extern/freestyle/src/system/ProgressBar.h b/source/blender/freestyle/src/system/ProgressBar.h index 5b61f936c90..5b61f936c90 100755 --- a/extern/freestyle/src/system/ProgressBar.h +++ b/source/blender/freestyle/src/system/ProgressBar.h diff --git a/extern/freestyle/src/system/PseudoNoise.cpp b/source/blender/freestyle/src/system/PseudoNoise.cpp index 59332229ae2..59332229ae2 100755 --- a/extern/freestyle/src/system/PseudoNoise.cpp +++ b/source/blender/freestyle/src/system/PseudoNoise.cpp diff --git a/extern/freestyle/src/system/PseudoNoise.h b/source/blender/freestyle/src/system/PseudoNoise.h index 43143865600..43143865600 100755 --- a/extern/freestyle/src/system/PseudoNoise.h +++ b/source/blender/freestyle/src/system/PseudoNoise.h diff --git a/extern/freestyle/src/system/PythonInterpreter.cpp b/source/blender/freestyle/src/system/PythonInterpreter.cpp index 821bd32b40b..821bd32b40b 100755 --- a/extern/freestyle/src/system/PythonInterpreter.cpp +++ b/source/blender/freestyle/src/system/PythonInterpreter.cpp diff --git a/extern/freestyle/src/system/PythonInterpreter.h b/source/blender/freestyle/src/system/PythonInterpreter.h index f9a573ffb86..f9a573ffb86 100755 --- a/extern/freestyle/src/system/PythonInterpreter.h +++ b/source/blender/freestyle/src/system/PythonInterpreter.h diff --git a/extern/freestyle/src/system/RandGen.cpp b/source/blender/freestyle/src/system/RandGen.cpp index a328cb7f583..a328cb7f583 100755 --- a/extern/freestyle/src/system/RandGen.cpp +++ b/source/blender/freestyle/src/system/RandGen.cpp diff --git a/extern/freestyle/src/system/RandGen.h b/source/blender/freestyle/src/system/RandGen.h index 409d3b79609..409d3b79609 100755 --- a/extern/freestyle/src/system/RandGen.h +++ b/source/blender/freestyle/src/system/RandGen.h diff --git a/extern/freestyle/src/system/StringUtils.cpp b/source/blender/freestyle/src/system/StringUtils.cpp index 2af76feeb37..2af76feeb37 100755 --- a/extern/freestyle/src/system/StringUtils.cpp +++ b/source/blender/freestyle/src/system/StringUtils.cpp diff --git a/extern/freestyle/src/system/StringUtils.h b/source/blender/freestyle/src/system/StringUtils.h index 44adfc2b044..44adfc2b044 100755 --- a/extern/freestyle/src/system/StringUtils.h +++ b/source/blender/freestyle/src/system/StringUtils.h diff --git a/extern/freestyle/src/system/TimeStamp.cpp b/source/blender/freestyle/src/system/TimeStamp.cpp index c66e1131611..c66e1131611 100755 --- a/extern/freestyle/src/system/TimeStamp.cpp +++ b/source/blender/freestyle/src/system/TimeStamp.cpp diff --git a/extern/freestyle/src/system/TimeStamp.h b/source/blender/freestyle/src/system/TimeStamp.h index 568a7851e30..568a7851e30 100755 --- a/extern/freestyle/src/system/TimeStamp.h +++ b/source/blender/freestyle/src/system/TimeStamp.h diff --git a/extern/freestyle/src/system/TimeUtils.h b/source/blender/freestyle/src/system/TimeUtils.h index 99dd5b0a669..99dd5b0a669 100755 --- a/extern/freestyle/src/system/TimeUtils.h +++ b/source/blender/freestyle/src/system/TimeUtils.h diff --git a/extern/freestyle/src/system/src.pri b/source/blender/freestyle/src/system/src.pri index e7d69e142b4..e7d69e142b4 100755 --- a/extern/freestyle/src/system/src.pri +++ b/source/blender/freestyle/src/system/src.pri diff --git a/extern/freestyle/src/system/system.pro b/source/blender/freestyle/src/system/system.pro index 495cdf47105..495cdf47105 100755 --- a/extern/freestyle/src/system/system.pro +++ b/source/blender/freestyle/src/system/system.pro diff --git a/extern/freestyle/src/view_map/FEdgeXDetector.cpp b/source/blender/freestyle/src/view_map/FEdgeXDetector.cpp index 628b3ad77aa..628b3ad77aa 100755 --- a/extern/freestyle/src/view_map/FEdgeXDetector.cpp +++ b/source/blender/freestyle/src/view_map/FEdgeXDetector.cpp diff --git a/extern/freestyle/src/view_map/FEdgeXDetector.h b/source/blender/freestyle/src/view_map/FEdgeXDetector.h index 38d0f34e21f..38d0f34e21f 100755 --- a/extern/freestyle/src/view_map/FEdgeXDetector.h +++ b/source/blender/freestyle/src/view_map/FEdgeXDetector.h diff --git a/extern/freestyle/src/view_map/Functions0D.cpp b/source/blender/freestyle/src/view_map/Functions0D.cpp index c868510624c..c868510624c 100755 --- a/extern/freestyle/src/view_map/Functions0D.cpp +++ b/source/blender/freestyle/src/view_map/Functions0D.cpp diff --git a/extern/freestyle/src/view_map/Functions0D.h b/source/blender/freestyle/src/view_map/Functions0D.h index 3160546da2f..3160546da2f 100755 --- a/extern/freestyle/src/view_map/Functions0D.h +++ b/source/blender/freestyle/src/view_map/Functions0D.h diff --git a/extern/freestyle/src/view_map/Functions1D.cpp b/source/blender/freestyle/src/view_map/Functions1D.cpp index a34124ded31..a34124ded31 100755 --- a/extern/freestyle/src/view_map/Functions1D.cpp +++ b/source/blender/freestyle/src/view_map/Functions1D.cpp diff --git a/extern/freestyle/src/view_map/Functions1D.h b/source/blender/freestyle/src/view_map/Functions1D.h index c92d12ff330..c92d12ff330 100755 --- a/extern/freestyle/src/view_map/Functions1D.h +++ b/source/blender/freestyle/src/view_map/Functions1D.h diff --git a/extern/freestyle/src/view_map/Interface0D.h b/source/blender/freestyle/src/view_map/Interface0D.h index eec39d2f7bc..eec39d2f7bc 100755 --- a/extern/freestyle/src/view_map/Interface0D.h +++ b/source/blender/freestyle/src/view_map/Interface0D.h diff --git a/extern/freestyle/src/view_map/Interface1D.h b/source/blender/freestyle/src/view_map/Interface1D.h index 812187e5ec1..812187e5ec1 100755 --- a/extern/freestyle/src/view_map/Interface1D.h +++ b/source/blender/freestyle/src/view_map/Interface1D.h diff --git a/extern/freestyle/src/view_map/Silhouette.cpp b/source/blender/freestyle/src/view_map/Silhouette.cpp index db4f82d369e..db4f82d369e 100755 --- a/extern/freestyle/src/view_map/Silhouette.cpp +++ b/source/blender/freestyle/src/view_map/Silhouette.cpp diff --git a/extern/freestyle/src/view_map/Silhouette.h b/source/blender/freestyle/src/view_map/Silhouette.h index e88bf23b210..e88bf23b210 100755 --- a/extern/freestyle/src/view_map/Silhouette.h +++ b/source/blender/freestyle/src/view_map/Silhouette.h diff --git a/extern/freestyle/src/view_map/SilhouetteGeomEngine.cpp b/source/blender/freestyle/src/view_map/SilhouetteGeomEngine.cpp index 19b8a632ffe..19b8a632ffe 100755 --- a/extern/freestyle/src/view_map/SilhouetteGeomEngine.cpp +++ b/source/blender/freestyle/src/view_map/SilhouetteGeomEngine.cpp diff --git a/extern/freestyle/src/view_map/SilhouetteGeomEngine.h b/source/blender/freestyle/src/view_map/SilhouetteGeomEngine.h index 159dda1afc0..159dda1afc0 100755 --- a/extern/freestyle/src/view_map/SilhouetteGeomEngine.h +++ b/source/blender/freestyle/src/view_map/SilhouetteGeomEngine.h diff --git a/extern/freestyle/src/view_map/SteerableViewMap.cpp b/source/blender/freestyle/src/view_map/SteerableViewMap.cpp index b2604606aa7..b2604606aa7 100755 --- a/extern/freestyle/src/view_map/SteerableViewMap.cpp +++ b/source/blender/freestyle/src/view_map/SteerableViewMap.cpp diff --git a/extern/freestyle/src/view_map/SteerableViewMap.h b/source/blender/freestyle/src/view_map/SteerableViewMap.h index fe7c2493752..fe7c2493752 100755 --- a/extern/freestyle/src/view_map/SteerableViewMap.h +++ b/source/blender/freestyle/src/view_map/SteerableViewMap.h diff --git a/extern/freestyle/src/view_map/ViewEdgeXBuilder.cpp b/source/blender/freestyle/src/view_map/ViewEdgeXBuilder.cpp index 20b3aeb144d..20b3aeb144d 100755 --- a/extern/freestyle/src/view_map/ViewEdgeXBuilder.cpp +++ b/source/blender/freestyle/src/view_map/ViewEdgeXBuilder.cpp diff --git a/extern/freestyle/src/view_map/ViewEdgeXBuilder.h b/source/blender/freestyle/src/view_map/ViewEdgeXBuilder.h index 9e2837b49a7..9e2837b49a7 100755 --- a/extern/freestyle/src/view_map/ViewEdgeXBuilder.h +++ b/source/blender/freestyle/src/view_map/ViewEdgeXBuilder.h diff --git a/extern/freestyle/src/view_map/ViewMap.cpp b/source/blender/freestyle/src/view_map/ViewMap.cpp index 9a2d262b703..9a2d262b703 100755 --- a/extern/freestyle/src/view_map/ViewMap.cpp +++ b/source/blender/freestyle/src/view_map/ViewMap.cpp diff --git a/extern/freestyle/src/view_map/ViewMap.h b/source/blender/freestyle/src/view_map/ViewMap.h index bdbb140e130..bdbb140e130 100755 --- a/extern/freestyle/src/view_map/ViewMap.h +++ b/source/blender/freestyle/src/view_map/ViewMap.h diff --git a/extern/freestyle/src/view_map/ViewMapAdvancedIterators.h b/source/blender/freestyle/src/view_map/ViewMapAdvancedIterators.h index bb2d916f2df..bb2d916f2df 100755 --- a/extern/freestyle/src/view_map/ViewMapAdvancedIterators.h +++ b/source/blender/freestyle/src/view_map/ViewMapAdvancedIterators.h diff --git a/extern/freestyle/src/view_map/ViewMapBuilder.cpp b/source/blender/freestyle/src/view_map/ViewMapBuilder.cpp index 32f5283a63c..32f5283a63c 100755 --- a/extern/freestyle/src/view_map/ViewMapBuilder.cpp +++ b/source/blender/freestyle/src/view_map/ViewMapBuilder.cpp diff --git a/extern/freestyle/src/view_map/ViewMapBuilder.h b/source/blender/freestyle/src/view_map/ViewMapBuilder.h index ec52d4fdd7e..ec52d4fdd7e 100755 --- a/extern/freestyle/src/view_map/ViewMapBuilder.h +++ b/source/blender/freestyle/src/view_map/ViewMapBuilder.h diff --git a/extern/freestyle/src/view_map/ViewMapIO.cpp b/source/blender/freestyle/src/view_map/ViewMapIO.cpp index d68164973a1..d68164973a1 100755 --- a/extern/freestyle/src/view_map/ViewMapIO.cpp +++ b/source/blender/freestyle/src/view_map/ViewMapIO.cpp diff --git a/extern/freestyle/src/view_map/ViewMapIO.h b/source/blender/freestyle/src/view_map/ViewMapIO.h index 33e168b537b..33e168b537b 100755 --- a/extern/freestyle/src/view_map/ViewMapIO.h +++ b/source/blender/freestyle/src/view_map/ViewMapIO.h diff --git a/extern/freestyle/src/view_map/ViewMapIterators.h b/source/blender/freestyle/src/view_map/ViewMapIterators.h index 004674ba758..004674ba758 100755 --- a/extern/freestyle/src/view_map/ViewMapIterators.h +++ b/source/blender/freestyle/src/view_map/ViewMapIterators.h diff --git a/extern/freestyle/src/view_map/ViewMapTesselator.cpp b/source/blender/freestyle/src/view_map/ViewMapTesselator.cpp index 6041f527d17..6041f527d17 100755 --- a/extern/freestyle/src/view_map/ViewMapTesselator.cpp +++ b/source/blender/freestyle/src/view_map/ViewMapTesselator.cpp diff --git a/extern/freestyle/src/view_map/ViewMapTesselator.h b/source/blender/freestyle/src/view_map/ViewMapTesselator.h index fc1ec8e373e..fc1ec8e373e 100755 --- a/extern/freestyle/src/view_map/ViewMapTesselator.h +++ b/source/blender/freestyle/src/view_map/ViewMapTesselator.h diff --git a/extern/freestyle/src/view_map/src.pri b/source/blender/freestyle/src/view_map/src.pri index 2faf6a81fea..2faf6a81fea 100755 --- a/extern/freestyle/src/view_map/src.pri +++ b/source/blender/freestyle/src/view_map/src.pri diff --git a/extern/freestyle/src/view_map/view_map.pro b/source/blender/freestyle/src/view_map/view_map.pro index ef629bcf6a7..ef629bcf6a7 100755 --- a/extern/freestyle/src/view_map/view_map.pro +++ b/source/blender/freestyle/src/view_map/view_map.pro diff --git a/extern/freestyle/src/winged_edge/Curvature.cpp b/source/blender/freestyle/src/winged_edge/Curvature.cpp index a890fb92c04..a890fb92c04 100755 --- a/extern/freestyle/src/winged_edge/Curvature.cpp +++ b/source/blender/freestyle/src/winged_edge/Curvature.cpp diff --git a/extern/freestyle/src/winged_edge/Curvature.h b/source/blender/freestyle/src/winged_edge/Curvature.h index 214a32ca922..214a32ca922 100755 --- a/extern/freestyle/src/winged_edge/Curvature.h +++ b/source/blender/freestyle/src/winged_edge/Curvature.h diff --git a/extern/freestyle/src/winged_edge/Nature.h b/source/blender/freestyle/src/winged_edge/Nature.h index 1f165e677f5..1f165e677f5 100755 --- a/extern/freestyle/src/winged_edge/Nature.h +++ b/source/blender/freestyle/src/winged_edge/Nature.h diff --git a/extern/freestyle/src/winged_edge/WEdge.cpp b/source/blender/freestyle/src/winged_edge/WEdge.cpp index 79b3a8dae26..79b3a8dae26 100755 --- a/extern/freestyle/src/winged_edge/WEdge.cpp +++ b/source/blender/freestyle/src/winged_edge/WEdge.cpp diff --git a/extern/freestyle/src/winged_edge/WEdge.h b/source/blender/freestyle/src/winged_edge/WEdge.h index 2369caf4566..2369caf4566 100755 --- a/extern/freestyle/src/winged_edge/WEdge.h +++ b/source/blender/freestyle/src/winged_edge/WEdge.h diff --git a/extern/freestyle/src/winged_edge/WFillGrid.cpp b/source/blender/freestyle/src/winged_edge/WFillGrid.cpp index 7d0a2d3c561..7d0a2d3c561 100755 --- a/extern/freestyle/src/winged_edge/WFillGrid.cpp +++ b/source/blender/freestyle/src/winged_edge/WFillGrid.cpp diff --git a/extern/freestyle/src/winged_edge/WFillGrid.h b/source/blender/freestyle/src/winged_edge/WFillGrid.h index 2ebbc2f359a..2ebbc2f359a 100755 --- a/extern/freestyle/src/winged_edge/WFillGrid.h +++ b/source/blender/freestyle/src/winged_edge/WFillGrid.h diff --git a/extern/freestyle/src/winged_edge/WSFillGrid.cpp b/source/blender/freestyle/src/winged_edge/WSFillGrid.cpp index cf3734b488e..cf3734b488e 100755 --- a/extern/freestyle/src/winged_edge/WSFillGrid.cpp +++ b/source/blender/freestyle/src/winged_edge/WSFillGrid.cpp diff --git a/extern/freestyle/src/winged_edge/WSFillGrid.h b/source/blender/freestyle/src/winged_edge/WSFillGrid.h index 976fdca8e46..976fdca8e46 100755 --- a/extern/freestyle/src/winged_edge/WSFillGrid.h +++ b/source/blender/freestyle/src/winged_edge/WSFillGrid.h diff --git a/extern/freestyle/src/winged_edge/WXEdge.cpp b/source/blender/freestyle/src/winged_edge/WXEdge.cpp index 115a4f61789..115a4f61789 100755 --- a/extern/freestyle/src/winged_edge/WXEdge.cpp +++ b/source/blender/freestyle/src/winged_edge/WXEdge.cpp diff --git a/extern/freestyle/src/winged_edge/WXEdge.h b/source/blender/freestyle/src/winged_edge/WXEdge.h index beacb1a9ca9..beacb1a9ca9 100755 --- a/extern/freestyle/src/winged_edge/WXEdge.h +++ b/source/blender/freestyle/src/winged_edge/WXEdge.h diff --git a/extern/freestyle/src/winged_edge/WXEdgeBuilder.cpp b/source/blender/freestyle/src/winged_edge/WXEdgeBuilder.cpp index 534c6e323a9..534c6e323a9 100755 --- a/extern/freestyle/src/winged_edge/WXEdgeBuilder.cpp +++ b/source/blender/freestyle/src/winged_edge/WXEdgeBuilder.cpp diff --git a/extern/freestyle/src/winged_edge/WXEdgeBuilder.h b/source/blender/freestyle/src/winged_edge/WXEdgeBuilder.h index b646d66a285..b646d66a285 100755 --- a/extern/freestyle/src/winged_edge/WXEdgeBuilder.h +++ b/source/blender/freestyle/src/winged_edge/WXEdgeBuilder.h diff --git a/extern/freestyle/src/winged_edge/WingedEdgeBuilder.cpp b/source/blender/freestyle/src/winged_edge/WingedEdgeBuilder.cpp index 98e7c269248..98e7c269248 100755 --- a/extern/freestyle/src/winged_edge/WingedEdgeBuilder.cpp +++ b/source/blender/freestyle/src/winged_edge/WingedEdgeBuilder.cpp diff --git a/extern/freestyle/src/winged_edge/WingedEdgeBuilder.h b/source/blender/freestyle/src/winged_edge/WingedEdgeBuilder.h index fe033f2ea0b..fe033f2ea0b 100755 --- a/extern/freestyle/src/winged_edge/WingedEdgeBuilder.h +++ b/source/blender/freestyle/src/winged_edge/WingedEdgeBuilder.h diff --git a/extern/freestyle/src/winged_edge/src.pri b/source/blender/freestyle/src/winged_edge/src.pri index 9cf40633dcf..9cf40633dcf 100755 --- a/extern/freestyle/src/winged_edge/src.pri +++ b/source/blender/freestyle/src/winged_edge/src.pri diff --git a/extern/freestyle/src/winged_edge/winged_edge.pro b/source/blender/freestyle/src/winged_edge/winged_edge.pro index e36d69454b6..e36d69454b6 100755 --- a/extern/freestyle/src/winged_edge/winged_edge.pro +++ b/source/blender/freestyle/src/winged_edge/winged_edge.pro diff --git a/extern/freestyle/style_modules/ChainingIterators.py b/source/blender/freestyle/style_modules/ChainingIterators.py index 60255c3d094..60255c3d094 100755 --- a/extern/freestyle/style_modules/ChainingIterators.py +++ b/source/blender/freestyle/style_modules/ChainingIterators.py diff --git a/extern/freestyle/style_modules/Functions0D.py b/source/blender/freestyle/style_modules/Functions0D.py index c1ba591c789..c1ba591c789 100755 --- a/extern/freestyle/style_modules/Functions0D.py +++ b/source/blender/freestyle/style_modules/Functions0D.py diff --git a/extern/freestyle/style_modules/Functions1D.py b/source/blender/freestyle/style_modules/Functions1D.py index e2505466aae..e2505466aae 100755 --- a/extern/freestyle/style_modules/Functions1D.py +++ b/source/blender/freestyle/style_modules/Functions1D.py diff --git a/extern/freestyle/style_modules/PredicatesB1D.py b/source/blender/freestyle/style_modules/PredicatesB1D.py index dfc895e8d9b..dfc895e8d9b 100755 --- a/extern/freestyle/style_modules/PredicatesB1D.py +++ b/source/blender/freestyle/style_modules/PredicatesB1D.py diff --git a/extern/freestyle/style_modules/PredicatesU0D.py b/source/blender/freestyle/style_modules/PredicatesU0D.py index 10c4b85a6cf..10c4b85a6cf 100755 --- a/extern/freestyle/style_modules/PredicatesU0D.py +++ b/source/blender/freestyle/style_modules/PredicatesU0D.py diff --git a/extern/freestyle/style_modules/PredicatesU1D.py b/source/blender/freestyle/style_modules/PredicatesU1D.py index 18e9686f9df..18e9686f9df 100755 --- a/extern/freestyle/style_modules/PredicatesU1D.py +++ b/source/blender/freestyle/style_modules/PredicatesU1D.py diff --git a/extern/freestyle/style_modules/anisotropic_diffusion.py b/source/blender/freestyle/style_modules/anisotropic_diffusion.py index f8b68ee51a6..f8b68ee51a6 100755 --- a/extern/freestyle/style_modules/anisotropic_diffusion.py +++ b/source/blender/freestyle/style_modules/anisotropic_diffusion.py diff --git a/extern/freestyle/style_modules/apriori_and_causal_density.py b/source/blender/freestyle/style_modules/apriori_and_causal_density.py index e6bcf046bd0..e6bcf046bd0 100755 --- a/extern/freestyle/style_modules/apriori_and_causal_density.py +++ b/source/blender/freestyle/style_modules/apriori_and_causal_density.py diff --git a/extern/freestyle/style_modules/apriori_density.py b/source/blender/freestyle/style_modules/apriori_density.py index 77d41e7d04b..77d41e7d04b 100755 --- a/extern/freestyle/style_modules/apriori_density.py +++ b/source/blender/freestyle/style_modules/apriori_density.py diff --git a/extern/freestyle/style_modules/backbone_stretcher.py b/source/blender/freestyle/style_modules/backbone_stretcher.py index db17f2574ff..db17f2574ff 100755 --- a/extern/freestyle/style_modules/backbone_stretcher.py +++ b/source/blender/freestyle/style_modules/backbone_stretcher.py diff --git a/extern/freestyle/style_modules/blueprint_circles.py b/source/blender/freestyle/style_modules/blueprint_circles.py index 5eca00ff4ac..5eca00ff4ac 100755 --- a/extern/freestyle/style_modules/blueprint_circles.py +++ b/source/blender/freestyle/style_modules/blueprint_circles.py diff --git a/extern/freestyle/style_modules/blueprint_ellipses.py b/source/blender/freestyle/style_modules/blueprint_ellipses.py index 4e34310b3ca..4e34310b3ca 100755 --- a/extern/freestyle/style_modules/blueprint_ellipses.py +++ b/source/blender/freestyle/style_modules/blueprint_ellipses.py diff --git a/extern/freestyle/style_modules/blueprint_squares.py b/source/blender/freestyle/style_modules/blueprint_squares.py index 926f882456f..926f882456f 100755 --- a/extern/freestyle/style_modules/blueprint_squares.py +++ b/source/blender/freestyle/style_modules/blueprint_squares.py diff --git a/extern/freestyle/style_modules/cartoon.py b/source/blender/freestyle/style_modules/cartoon.py index 0c49f854f7d..0c49f854f7d 100755 --- a/extern/freestyle/style_modules/cartoon.py +++ b/source/blender/freestyle/style_modules/cartoon.py diff --git a/extern/freestyle/style_modules/contour.py b/source/blender/freestyle/style_modules/contour.py index b7c97064cae..b7c97064cae 100755 --- a/extern/freestyle/style_modules/contour.py +++ b/source/blender/freestyle/style_modules/contour.py diff --git a/extern/freestyle/style_modules/curvature2d.py b/source/blender/freestyle/style_modules/curvature2d.py index 587c53071d0..587c53071d0 100755 --- a/extern/freestyle/style_modules/curvature2d.py +++ b/source/blender/freestyle/style_modules/curvature2d.py diff --git a/extern/freestyle/style_modules/external_contour.py b/source/blender/freestyle/style_modules/external_contour.py index ae49e18981e..ae49e18981e 100755 --- a/extern/freestyle/style_modules/external_contour.py +++ b/source/blender/freestyle/style_modules/external_contour.py diff --git a/extern/freestyle/style_modules/external_contour_sketchy.py b/source/blender/freestyle/style_modules/external_contour_sketchy.py index 1c3ffe94e1b..1c3ffe94e1b 100755 --- a/extern/freestyle/style_modules/external_contour_sketchy.py +++ b/source/blender/freestyle/style_modules/external_contour_sketchy.py diff --git a/extern/freestyle/style_modules/external_contour_smooth.py b/source/blender/freestyle/style_modules/external_contour_smooth.py index 59633a25063..59633a25063 100755 --- a/extern/freestyle/style_modules/external_contour_smooth.py +++ b/source/blender/freestyle/style_modules/external_contour_smooth.py diff --git a/extern/freestyle/style_modules/extra-lines.sml b/source/blender/freestyle/style_modules/extra-lines.sml index c63cd40945d..c63cd40945d 100755 --- a/extern/freestyle/style_modules/extra-lines.sml +++ b/source/blender/freestyle/style_modules/extra-lines.sml diff --git a/extern/freestyle/style_modules/haloing.py b/source/blender/freestyle/style_modules/haloing.py index b64b2d967f7..b64b2d967f7 100755 --- a/extern/freestyle/style_modules/haloing.py +++ b/source/blender/freestyle/style_modules/haloing.py diff --git a/extern/freestyle/style_modules/ignore_small_occlusions.py b/source/blender/freestyle/style_modules/ignore_small_occlusions.py index 98c318a3757..98c318a3757 100755 --- a/extern/freestyle/style_modules/ignore_small_occlusions.py +++ b/source/blender/freestyle/style_modules/ignore_small_occlusions.py diff --git a/extern/freestyle/style_modules/invisible_lines.py b/source/blender/freestyle/style_modules/invisible_lines.py index 5cce741e91e..5cce741e91e 100755 --- a/extern/freestyle/style_modules/invisible_lines.py +++ b/source/blender/freestyle/style_modules/invisible_lines.py diff --git a/extern/freestyle/style_modules/japanese_bigbrush.py b/source/blender/freestyle/style_modules/japanese_bigbrush.py index e0985497e2c..e0985497e2c 100755 --- a/extern/freestyle/style_modules/japanese_bigbrush.py +++ b/source/blender/freestyle/style_modules/japanese_bigbrush.py diff --git a/extern/freestyle/style_modules/logical_operators.py b/source/blender/freestyle/style_modules/logical_operators.py index 63a0a9f9ed8..63a0a9f9ed8 100755 --- a/extern/freestyle/style_modules/logical_operators.py +++ b/source/blender/freestyle/style_modules/logical_operators.py diff --git a/extern/freestyle/style_modules/long_anisotropically_dense.py b/source/blender/freestyle/style_modules/long_anisotropically_dense.py index 4bfeedf257f..4bfeedf257f 100755 --- a/extern/freestyle/style_modules/long_anisotropically_dense.py +++ b/source/blender/freestyle/style_modules/long_anisotropically_dense.py diff --git a/extern/freestyle/style_modules/multiple_parameterization.py b/source/blender/freestyle/style_modules/multiple_parameterization.py index ff04c5930c5..ff04c5930c5 100755 --- a/extern/freestyle/style_modules/multiple_parameterization.py +++ b/source/blender/freestyle/style_modules/multiple_parameterization.py diff --git a/extern/freestyle/style_modules/nature.py b/source/blender/freestyle/style_modules/nature.py index 8cfd480ba3b..8cfd480ba3b 100755 --- a/extern/freestyle/style_modules/nature.py +++ b/source/blender/freestyle/style_modules/nature.py diff --git a/extern/freestyle/style_modules/near_lines.py b/source/blender/freestyle/style_modules/near_lines.py index b132f6b5802..b132f6b5802 100755 --- a/extern/freestyle/style_modules/near_lines.py +++ b/source/blender/freestyle/style_modules/near_lines.py diff --git a/extern/freestyle/style_modules/occluded_by_specific_object.py b/source/blender/freestyle/style_modules/occluded_by_specific_object.py index 96f431c2c4e..96f431c2c4e 100755 --- a/extern/freestyle/style_modules/occluded_by_specific_object.py +++ b/source/blender/freestyle/style_modules/occluded_by_specific_object.py diff --git a/extern/freestyle/style_modules/polygonalize.py b/source/blender/freestyle/style_modules/polygonalize.py index 81d47178404..81d47178404 100755 --- a/extern/freestyle/style_modules/polygonalize.py +++ b/source/blender/freestyle/style_modules/polygonalize.py diff --git a/extern/freestyle/style_modules/qi0.py b/source/blender/freestyle/style_modules/qi0.py index f742b777738..f742b777738 100755 --- a/extern/freestyle/style_modules/qi0.py +++ b/source/blender/freestyle/style_modules/qi0.py diff --git a/extern/freestyle/style_modules/qi0_not_external_contour.py b/source/blender/freestyle/style_modules/qi0_not_external_contour.py index 047ab7e1a8e..047ab7e1a8e 100755 --- a/extern/freestyle/style_modules/qi0_not_external_contour.py +++ b/source/blender/freestyle/style_modules/qi0_not_external_contour.py diff --git a/extern/freestyle/style_modules/qi1.py b/source/blender/freestyle/style_modules/qi1.py index 234d196f15e..234d196f15e 100755 --- a/extern/freestyle/style_modules/qi1.py +++ b/source/blender/freestyle/style_modules/qi1.py diff --git a/extern/freestyle/style_modules/qi2.py b/source/blender/freestyle/style_modules/qi2.py index 8e45914c619..8e45914c619 100755 --- a/extern/freestyle/style_modules/qi2.py +++ b/source/blender/freestyle/style_modules/qi2.py diff --git a/extern/freestyle/style_modules/sequentialsplit_sketchy.py b/source/blender/freestyle/style_modules/sequentialsplit_sketchy.py index b33cd5d4043..b33cd5d4043 100755 --- a/extern/freestyle/style_modules/sequentialsplit_sketchy.py +++ b/source/blender/freestyle/style_modules/sequentialsplit_sketchy.py diff --git a/extern/freestyle/style_modules/shaders.py b/source/blender/freestyle/style_modules/shaders.py index 17ad31961d5..17ad31961d5 100755 --- a/extern/freestyle/style_modules/shaders.py +++ b/source/blender/freestyle/style_modules/shaders.py diff --git a/extern/freestyle/style_modules/sketchy_multiple_parameterization.py b/source/blender/freestyle/style_modules/sketchy_multiple_parameterization.py index 69e6f11751d..69e6f11751d 100755 --- a/extern/freestyle/style_modules/sketchy_multiple_parameterization.py +++ b/source/blender/freestyle/style_modules/sketchy_multiple_parameterization.py diff --git a/extern/freestyle/style_modules/sketchy_topology_broken.py b/source/blender/freestyle/style_modules/sketchy_topology_broken.py index c1cefedfad2..c1cefedfad2 100755 --- a/extern/freestyle/style_modules/sketchy_topology_broken.py +++ b/source/blender/freestyle/style_modules/sketchy_topology_broken.py diff --git a/extern/freestyle/style_modules/sketchy_topology_preserved.py b/source/blender/freestyle/style_modules/sketchy_topology_preserved.py index bc56a272bd5..bc56a272bd5 100755 --- a/extern/freestyle/style_modules/sketchy_topology_preserved.py +++ b/source/blender/freestyle/style_modules/sketchy_topology_preserved.py diff --git a/extern/freestyle/style_modules/split_at_highest_2d_curvatures.py b/source/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py index 0f42080292b..0f42080292b 100755 --- a/extern/freestyle/style_modules/split_at_highest_2d_curvatures.py +++ b/source/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py diff --git a/extern/freestyle/style_modules/split_at_tvertices.py b/source/blender/freestyle/style_modules/split_at_tvertices.py index dde586fd1f0..dde586fd1f0 100755 --- a/extern/freestyle/style_modules/split_at_tvertices.py +++ b/source/blender/freestyle/style_modules/split_at_tvertices.py diff --git a/extern/freestyle/style_modules/stroke_texture.py b/source/blender/freestyle/style_modules/stroke_texture.py index d6c753bf9e6..d6c753bf9e6 100755 --- a/extern/freestyle/style_modules/stroke_texture.py +++ b/source/blender/freestyle/style_modules/stroke_texture.py diff --git a/extern/freestyle/style_modules/suggestive.py b/source/blender/freestyle/style_modules/suggestive.py index 99a419ca23f..99a419ca23f 100755 --- a/extern/freestyle/style_modules/suggestive.py +++ b/source/blender/freestyle/style_modules/suggestive.py diff --git a/extern/freestyle/style_modules/thickness_fof_depth_discontinuity.py b/source/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py index 06687fd9a00..06687fd9a00 100755 --- a/extern/freestyle/style_modules/thickness_fof_depth_discontinuity.py +++ b/source/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py diff --git a/extern/freestyle/style_modules/tipremover.py b/source/blender/freestyle/style_modules/tipremover.py index b87eb7a573a..b87eb7a573a 100755 --- a/extern/freestyle/style_modules/tipremover.py +++ b/source/blender/freestyle/style_modules/tipremover.py diff --git a/extern/freestyle/style_modules/tvertex_remover.py b/source/blender/freestyle/style_modules/tvertex_remover.py index b55754381f7..b55754381f7 100755 --- a/extern/freestyle/style_modules/tvertex_remover.py +++ b/source/blender/freestyle/style_modules/tvertex_remover.py diff --git a/extern/freestyle/style_modules/uniformpruning_zsort.py b/source/blender/freestyle/style_modules/uniformpruning_zsort.py index 7e719417af0..7e719417af0 100755 --- a/extern/freestyle/style_modules/uniformpruning_zsort.py +++ b/source/blender/freestyle/style_modules/uniformpruning_zsort.py diff --git a/extern/freestyle/style_modules/vector.py b/source/blender/freestyle/style_modules/vector.py index 039f262546b..039f262546b 100755 --- a/extern/freestyle/style_modules/vector.py +++ b/source/blender/freestyle/style_modules/vector.py diff --git a/source/blender/include/BIF_screen.h b/source/blender/include/BIF_screen.h index aa3fe6a9279..6f9c0ae194f 100644 --- a/source/blender/include/BIF_screen.h +++ b/source/blender/include/BIF_screen.h @@ -82,7 +82,6 @@ void winqdelete(struct ScrArea *sa); void winqclear(struct ScrArea *sa); void addqueue(short win, unsigned short event, short val); void addafterqueue(short win, unsigned short event, short val); -void add_readfile_event(char *filename); short ext_qtest(void); unsigned short extern_qread(short *val); unsigned short extern_qread_ext(short *val, char *ascii); diff --git a/source/blender/include/butspace.h b/source/blender/include/butspace.h index 8556d47e4ab..242965a820c 100644 --- a/source/blender/include/butspace.h +++ b/source/blender/include/butspace.h @@ -367,7 +367,7 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_SEQ_BUT_TRANSFORM 1695 #define B_SEQ_BUT_RELOAD_FILE 1696 #define B_SEQ_BUT_REBUILD_PROXY 1697 - +#define B_SEQ_SEL_PROXY_DIR 1698 /* *********************** */ #define B_ARMATUREBUTS 1800 #define B_POSE 1701 diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c index 37bbb68ba03..78f780c43b1 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c @@ -160,11 +160,11 @@ static void node_dynamic_free_storage_cb(bNode *node) } /* Disable pynode when its script fails */ -/*static void node_dynamic_disable(bNode *node) +static void node_dynamic_disable(bNode *node) { node->custom1 = 0; node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ERROR); -}*/ +} /* Disable all pynodes using the given text (script) id */ static void node_dynamic_disable_all_by_id(ID *id) @@ -401,7 +401,11 @@ static int node_dynamic_parse(struct bNode *node) MEM_freeN(buf); if (!pyresult) { + if (BTST(node->custom1, NODE_DYNAMIC_LOADED)) { + node_dynamic_disable(node); + } else { node_dynamic_disable_all_by_id(node->id); + } node_dynamic_pyerror_print(node); PyGILState_Release(gilstate); return -1; diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c index 7cfb30cbc07..4e271db69de 100644 --- a/source/blender/python/BPY_interface.c +++ b/source/blender/python/BPY_interface.c @@ -444,7 +444,7 @@ void BPY_rebuild_syspath( void ) } BLI_strncpy(dirpath, U.pythondir, FILE_MAX); - BLI_convertstringcode(dirpath, G.sce, 0); + BLI_convertstringcode(dirpath, G.sce); syspath_append(dirpath); /* append to module search path */ BLI_make_file_string("/", modpath, dirpath, "bpymodules"); @@ -1005,7 +1005,7 @@ int BPY_menu_do_python( short menutype, int event ) /* dirs in Blender can be "//", which has a special meaning */ BLI_strncpy(upythondir, U.pythondir, FILE_MAX); - BLI_convertstringcode(upythondir, G.sce, 0); /* if so, this expands it */ + BLI_convertstringcode(upythondir, G.sce); /* if so, this expands it */ BLI_make_file_string( "/", filestr, upythondir, pym->filename ); } else { /* script is in default scripts dir */ diff --git a/source/blender/python/BPY_menus.c b/source/blender/python/BPY_menus.c index ce1b964b689..82da9edbee6 100644 --- a/source/blender/python/BPY_menus.c +++ b/source/blender/python/BPY_menus.c @@ -492,7 +492,7 @@ static int bpymenu_CreateFromFile( void ) fscanf( fp, "# User defined scripts dir: %[^\n]\n", w1 ); BLI_strncpy(upythondir, U.pythondir, FILE_MAX); - BLI_convertstringcode(upythondir, G.sce, 0); + BLI_convertstringcode(upythondir, G.sce); if( strcmp( w1, upythondir ) != 0 ) return -1; @@ -604,7 +604,7 @@ static void bpymenu_WriteDataFile( void ) char upythondir[FILE_MAX]; BLI_strncpy(upythondir, U.pythondir, FILE_MAX); - BLI_convertstringcode(upythondir, G.sce, 0); + BLI_convertstringcode(upythondir, G.sce); fprintf( fp, "# User defined scripts dir: %s\n", upythondir ); } @@ -1003,7 +1003,7 @@ int BPyMenu_Init( int usedir ) } else { BLI_strncpy(upythondir, upydir, FILE_MAX); - BLI_convertstringcode(upythondir, G.sce, 0); + BLI_convertstringcode(upythondir, G.sce); } sdir = bpy_gethome(1); @@ -1096,7 +1096,7 @@ the user defined Python scripts dir.\n", dirname ); } if( stat_dir2 == 0 ) { BLI_strncpy(dirname, U.pythondir, FILE_MAX); - BLI_convertstringcode(dirname, G.sce, 0); + BLI_convertstringcode(dirname, G.sce); i = bpymenu_ParseDir( dirname, NULL, 1 ); if (i == -1 && DEBUG) fprintf(stderr, "User defined scripts dir does not seem valid.\n\n"); diff --git a/source/blender/python/api2_2x/Blender.c b/source/blender/python/api2_2x/Blender.c index fe5ae25ccb1..daba0c36fdf 100644 --- a/source/blender/python/api2_2x/Blender.c +++ b/source/blender/python/api2_2x/Blender.c @@ -371,7 +371,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char upydir[FILE_MAX]; BLI_strncpy(upydir, U.pythondir, FILE_MAX); - BLI_convertstringcode(upydir, G.sce, 0); + BLI_convertstringcode(upydir, G.sce); if (BLI_exists(upydir)) { char udatadir[FILE_MAXDIR]; @@ -397,7 +397,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char upydir[FILE_MAX]; BLI_strncpy(upydir, U.pythondir, FILE_MAX); - BLI_convertstringcode(upydir, G.sce, 0); + BLI_convertstringcode(upydir, G.sce); if( BLI_exists( upydir ) ) ret = PyString_FromString( upydir ); @@ -410,7 +410,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char yfexportdir[FILE_MAX]; BLI_strncpy(yfexportdir, U.yfexportdir, FILE_MAX); - BLI_convertstringcode(yfexportdir, G.sce, 0); + BLI_convertstringcode(yfexportdir, G.sce); if( BLI_exists( yfexportdir ) ) ret = PyString_FromString( yfexportdir ); @@ -423,7 +423,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char fontdir[FILE_MAX]; BLI_strncpy(fontdir, U.fontdir, FILE_MAX); - BLI_convertstringcode(fontdir, G.sce, 0); + BLI_convertstringcode(fontdir, G.sce); if( BLI_exists( fontdir ) ) ret = PyString_FromString( fontdir ); @@ -436,7 +436,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char textudir[FILE_MAX]; BLI_strncpy(textudir, U.textudir, FILE_MAX); - BLI_convertstringcode(textudir, G.sce, 0); + BLI_convertstringcode(textudir, G.sce); if( BLI_exists( textudir ) ) ret = PyString_FromString( textudir ); @@ -449,7 +449,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char plugtexdir[FILE_MAX]; BLI_strncpy(plugtexdir, U.plugtexdir, FILE_MAX); - BLI_convertstringcode(plugtexdir, G.sce, 0); + BLI_convertstringcode(plugtexdir, G.sce); if( BLI_exists( plugtexdir ) ) ret = PyString_FromString( plugtexdir ); @@ -462,7 +462,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char plugseqdir[FILE_MAX]; BLI_strncpy(plugseqdir, U.plugseqdir, FILE_MAX); - BLI_convertstringcode(plugseqdir, G.sce, 0); + BLI_convertstringcode(plugseqdir, G.sce); if( BLI_exists( plugseqdir ) ) ret = PyString_FromString( plugseqdir ); @@ -475,7 +475,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char renderdir[FILE_MAX]; BLI_strncpy(renderdir, U.renderdir, FILE_MAX); - BLI_convertstringcode(renderdir, G.sce, 0); + BLI_convertstringcode(renderdir, G.sce); if( BLI_exists( renderdir ) ) ret = PyString_FromString( renderdir ); @@ -488,7 +488,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char sounddir[FILE_MAX]; BLI_strncpy(sounddir, U.sounddir, FILE_MAX); - BLI_convertstringcode(sounddir, G.sce, 0); + BLI_convertstringcode(sounddir, G.sce); if( BLI_exists( sounddir ) ) ret = PyString_FromString( sounddir ); @@ -501,7 +501,7 @@ static PyObject *Blender_Get( PyObject * self, PyObject * value ) char tempdir[FILE_MAX]; BLI_strncpy(tempdir, U.tempdir, FILE_MAX); - BLI_convertstringcode(tempdir, G.sce, 0); + BLI_convertstringcode(tempdir, G.sce); if( BLI_exists( tempdir ) ) ret = PyString_FromString( tempdir ); @@ -776,7 +776,7 @@ static PyObject *Blender_ShowHelp(PyObject *self, PyObject *script) char upydir[FILE_MAX]; BLI_strncpy(upydir, U.pythondir, FILE_MAX); - BLI_convertstringcode(upydir, G.sce, 0); + BLI_convertstringcode(upydir, G.sce); BLI_make_file_string("/", hspath, upydir, "help_browser.py"); if (!BLI_exists(hspath)) diff --git a/source/blender/python/api2_2x/Library.c b/source/blender/python/api2_2x/Library.c index 667db8a1dfd..799735c2062 100644 --- a/source/blender/python/api2_2x/Library.c +++ b/source/blender/python/api2_2x/Library.c @@ -166,7 +166,7 @@ static PyObject *M_Library_Open( PyObject * self, PyObject * value ) /* copy the name to make it absolute so BLO_blendhandle_from_file doesn't complain */ BLI_strncpy(fname1, fname, sizeof(fname1)); - BLI_convertstringcode(fname1, G.sce, 0); /* make absolute */ + BLI_convertstringcode(fname1, G.sce); /* make absolute */ /* G.sce = last file loaded, save for UI and restore after opening file */ BLI_strncpy(filename, G.sce, sizeof(filename)); @@ -483,7 +483,7 @@ static BlendHandle *open_library( char *filename, char *longFilename ) /* get complete file name if necessary */ BLI_strncpy( longFilename, filename, FILE_MAX ); - BLI_convertstringcode( longFilename, G.sce, 0 ); + BLI_convertstringcode( longFilename, G.sce ); /* throw exceptions for wrong file type, cyclic reference */ if( !BLO_has_bfile_extension(longFilename) ) { @@ -515,11 +515,12 @@ static BlendHandle *open_library( char *filename, char *longFilename ) */ static PyObject *CreatePyObject_LibData( int idtype, int kind, - void *name, void *iter, char *filename ) + void *name, void *iter, char *filename, int rel ) { BPy_LibraryData *seq = PyObject_NEW( BPy_LibraryData, &LibraryData_Type); seq->iter = iter; /* the name list (for iterators) */ seq->type = idtype; /* the Blender ID type */ + seq->rel = rel; /* relative or absolute library */ seq->kind = kind; /* used by Blender Objects */ seq->name = name; /* object name, iterator name list, or NULL */ /* save the library name */ @@ -560,7 +561,8 @@ static PyObject *lib_link_or_append( BPy_LibraryData *self, PyObject * value, /* otherwise, create a pseudo object ready for appending or linking */ return CreatePyObject_LibData( ID_OB, mode, - BLI_strdupn( name, strlen( name ) ), NULL, self->filename ); + BLI_strdupn( name, strlen( name ) ), NULL, self->filename, + self->rel ); } } @@ -586,6 +588,9 @@ PyObject *LibraryData_importLibData( BPy_LibraryData *self, char *name, if( !openlib ) return NULL; + /* fix any /foo/../foo/ */ + BLI_cleanup_file(NULL, longFilename); + /* find all datablocks for the specified type */ names = BLO_blendhandle_get_datablock_names ( openlib, self->type ); @@ -616,15 +621,15 @@ PyObject *LibraryData_importLibData( BPy_LibraryData *self, char *name, } /* import from the libary */ - BLO_script_library_append( &openlib, longFilename, name, self->type, mode, - scene ); + BLO_script_library_append( &openlib, longFilename, name, self->type, + mode | self->rel, scene ); /* * locate the library. If this is an append, make the data local. If it * is link, we need the library for later */ for( lib = G.main->library.first; lib; lib = lib->id.next ) - if( strcmp( longFilename, lib->name ) == 0 ) { + if( strcmp( longFilename, lib->filename ) == 0) { if( mode != FILE_LINK ) { all_local( lib, 1 ); /* important we unset, otherwise these object wont @@ -717,7 +722,7 @@ static PyObject *LibraryData_getIter( BPy_LibraryData * self ) /* build an iterator object for the name list */ return CreatePyObject_LibData( self->type, OTHER, names, - names, self->filename ); + names, self->filename, self->rel ); } /* Return next name. */ @@ -942,7 +947,7 @@ PyTypeObject LibraryData_Type = { static PyObject *LibraryData_CreatePyObject( BPy_Library *self, void *mode ) { return CreatePyObject_LibData( GET_INT_FROM_POINTER(mode), OTHER, NULL, NULL, - self->filename ); + self->filename, self->rel); } /************************************************************ @@ -972,6 +977,39 @@ static int Library_setFilename( BPy_Library * self, PyObject * args ) return 0; } +/* + * Return the library's name. The format depends on whether the library is + * accessed as relative or absolute. + */ + +static PyObject *Library_getName( BPy_Library * self ) +{ + Library *lib; + BlendHandle *openlib; + char longFilename[FILE_MAX]; + + /* try to open the library */ + openlib = open_library( self->filename, longFilename ); + if( openlib ) { + BLO_blendhandle_close( openlib ); + /* remove any /../ or /./ junk */ + BLI_cleanup_file(NULL, longFilename); + + /* search the loaded libraries for a match */ + for( lib = G.main->library.first; lib; lib = lib->id.next ) + if( strcmp( longFilename, lib->filename ) == 0) { + return PyString_FromString( lib->name ); + } + + /* library not found in memory */ + return EXPP_ReturnPyObjError( PyExc_RuntimeError, + "library not loaded" ); + } + /* could not load library */ + return EXPP_ReturnPyObjError( PyExc_IOError, "library not found" ); +} + + /************************************************************************ * Python Library_type attributes get/set structure ************************************************************************/ @@ -981,6 +1019,10 @@ static PyGetSetDef Library_getseters[] = { (getter)Library_getFilename, (setter)Library_setFilename, "library filename", NULL}, + {"name", + (getter)Library_getName, (setter)NULL, + "library name (as used by Blender)", + NULL}, {"objects", (getter)LibraryData_CreatePyObject, (setter)NULL, "objects from the library", @@ -1066,20 +1108,27 @@ static PyGetSetDef Library_getseters[] = { * actually accessed later. */ -static PyObject *M_Library_Load(PyObject *self, PyObject * value) +static PyObject *M_Library_Load(PyObject *self, PyObject * args) { - char *filename = PyString_AsString(value); + char *filename = NULL; + PyObject *relative = NULL; BPy_Library *lib; - if( !filename ) + if( !PyArg_ParseTuple( args, "s|O", &filename, &relative ) ) return EXPP_ReturnPyObjError( PyExc_TypeError, - "expected a string" ); + "expected strings and optional bool as arguments." ); /* try to create a new object */ lib = (BPy_Library *)PyObject_NEW( BPy_Library, &Library_Type ); if( !lib ) return NULL; + /* save relative flag value */ + if( relative && PyObject_IsTrue(relative) ) + lib->rel = FILE_STRINGCODE; + else + lib->rel = 0; + /* assign the library filename for future use, then return */ BLI_strncpy( lib->filename, filename, sizeof(lib->filename) ); @@ -1087,7 +1136,7 @@ static PyObject *M_Library_Load(PyObject *self, PyObject * value) } static struct PyMethodDef M_Library_methods[] = { - {"load", (PyCFunction)M_Library_Load, METH_O, + {"load", (PyCFunction)M_Library_Load, METH_VARARGS, "(string) - declare a .blend file for use as a library"}, {NULL, NULL, 0, NULL} }; diff --git a/source/blender/python/api2_2x/Library.h b/source/blender/python/api2_2x/Library.h index 326040edb35..b75e61d55ff 100644 --- a/source/blender/python/api2_2x/Library.h +++ b/source/blender/python/api2_2x/Library.h @@ -42,6 +42,7 @@ typedef struct { PyObject_HEAD char filename[FILE_MAXDIR + FILE_MAXFILE]; + int rel; } BPy_Library; typedef struct { @@ -50,6 +51,7 @@ typedef struct { int type; char filename[FILE_MAXDIR + FILE_MAXFILE]; char *name; + int rel; enum { OBJECT_IS_LINK, OBJECT_IS_APPEND, diff --git a/source/blender/python/api2_2x/Node.c b/source/blender/python/api2_2x/Node.c index ba975a6892f..1d420c5e4cb 100644 --- a/source/blender/python/api2_2x/Node.c +++ b/source/blender/python/api2_2x/Node.c @@ -361,6 +361,15 @@ static int pysockets_to_blendersockets(PyObject *tuple, bNodeSocketType **socks, len = PyTuple_Size(tuple); + if (len >= MAX_SOCKET) { + char error_msg[70]; + PyOS_snprintf(error_msg, sizeof(error_msg), + "limit exceeded: each node can't have more than %d i/o sockets", MAX_SOCKET - 1); + PyErr_SetString(PyExc_AttributeError, error_msg); + len = 0; + retval = -1; + } + nsocks = MEM_callocN(sizeof(bNodeSocketType)*(len+1), "bNodeSocketType in Node.c"); for (pos = 0, a = 0; pos< len; pos++, a++) { @@ -437,6 +446,7 @@ static int Map_socketdef(BPy_NodeSocketLists *self, PyObject *args, void *closur { bNode *node = NULL; PyObject *tuple = NULL; + int ret = 0; node = self->node; @@ -453,7 +463,7 @@ static int Map_socketdef(BPy_NodeSocketLists *self, PyObject *args, void *closur if (args) { if(PySequence_Check(args)) { tuple = PySequence_Tuple(args); - pysockets_to_blendersockets(tuple, + ret = pysockets_to_blendersockets(tuple, &(node->typeinfo->inputs), node->custom1, 1); Py_DECREF(self->input); self->input = tuple; @@ -466,7 +476,7 @@ static int Map_socketdef(BPy_NodeSocketLists *self, PyObject *args, void *closur if (args) { if(PyList_Check(args)) { tuple = PySequence_Tuple(args); - pysockets_to_blendersockets(tuple, + ret = pysockets_to_blendersockets(tuple, &(node->typeinfo->outputs), node->custom1, 0); Py_DECREF(self->output); self->output = tuple; @@ -479,6 +489,11 @@ static int Map_socketdef(BPy_NodeSocketLists *self, PyObject *args, void *closur fprintf(stderr,"DEBUG pynodes: got no list in Map_socketdef\n"); break; } + + if (ret == -1) { + node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ERROR); + } + return 0; } diff --git a/source/blender/python/api2_2x/Sys.c b/source/blender/python/api2_2x/Sys.c index 337f8b6bb14..9de4e344e8c 100644 --- a/source/blender/python/api2_2x/Sys.c +++ b/source/blender/python/api2_2x/Sys.c @@ -391,7 +391,8 @@ static PyObject *M_sys_expandpath( PyObject * self, PyObject * value ) "expected string argument" ); BLI_strncpy(expanded, path, FILE_MAXDIR + FILE_MAXFILE); - BLI_convertstringcode(expanded, G.sce, G.scene->r.cfra); + BLI_convertstringcode(expanded, G.sce); + BLI_convertstringframe(expanded, G.scene->r.cfra); return PyString_FromString(expanded); } diff --git a/source/blender/python/api2_2x/doc/LibData.py b/source/blender/python/api2_2x/doc/LibData.py index 7b6f4950c76..47bd7fdb763 100644 --- a/source/blender/python/api2_2x/doc/LibData.py +++ b/source/blender/python/api2_2x/doc/LibData.py @@ -26,13 +26,15 @@ Example:: me.materials[0] = mat # assign linked material to mesh """ -def load(filename): +def load(filename,relative=False): """ Select an existing .blend file for use as a library. Unlike the Library module, multiple libraries can be defined at the same time. @type filename: string @param filename: The filename of a Blender file. Filenames starting with "//" will be loaded relative to the blend file's location. + @type relative: boolean + @param relative: Convert relative paths to absolute paths (default). Setting this parameter to True will leave paths relative. @rtype: Library @return: return a L{Library} object. """ @@ -46,8 +48,10 @@ class Libraries: It provides access to scenes, objects, meshes, curves, metaballs, materials, textures, images, lattices, lamps, cameras, ipos, worlds, fonts, texts, sounds, groups, armatures, and actions. - @ivar filename: The path to the library + @ivar filename: The filename of the library, as supplied by user. @type filename: string + @ivar name: The path to the library, as used by Blender. If the filename supplied by the user is relative, but the relative option to L{library.load()<load>} is False, the name will be the absolute path. + @type name: string @ivar scenes: library L{scene<Scene.Scene>} data @type scenes: L{LibData} @ivar objects: library L{object<Object.Object>} data diff --git a/source/blender/python/api2_2x/sceneRender.c b/source/blender/python/api2_2x/sceneRender.c index 7cae5f6144f..db5ad669255 100644 --- a/source/blender/python/api2_2x/sceneRender.c +++ b/source/blender/python/api2_2x/sceneRender.c @@ -598,8 +598,7 @@ PyObject *RenderData_Play( BPy_RenderData * self ) if( self->renderContext->imtype == R_QUICKTIME ) { strcpy( file, self->renderContext->pic ); - BLI_convertstringcode( file, (char *) self->scene, - self->renderContext->cfra ); + BLI_convertstringcode( file, G.sce ); BLI_make_existing_file( file ); if( BLI_strcasecmp( file + strlen( file ) - 4, ".mov" ) ) { sprintf( txt, "%04d_%04d.mov", @@ -612,8 +611,8 @@ PyObject *RenderData_Play( BPy_RenderData * self ) { strcpy( file, self->renderContext->pic ); - BLI_convertstringcode( file, G.sce, - self->renderContext->cfra ); + BLI_convertstringcode( file, G.sce ); + BLI_make_existing_file( file ); if( BLI_strcasecmp( file + strlen( file ) - 4, ".avi" ) ) { sprintf( txt, "%04d_%04d.avi", diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index a49a9a2fdc8..736bb4dd584 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -428,7 +428,7 @@ void makeqtstring (char *string) { if (string==0) return; strcpy(string, G.scene->r.pic); - BLI_convertstringcode(string, G.sce, G.scene->r.cfra); + BLI_convertstringcode(string, G.sce); BLI_make_existing_file(string); diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 09c850b6252..93282e641d3 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1835,7 +1835,8 @@ static void load_backbuffer(Render *re) char name[256]; strcpy(name, re->r.backbuf); - BLI_convertstringcode(name, G.sce, re->r.cfra); + BLI_convertstringcode(name, G.sce); + BLI_convertstringframe(name, re->r.cfra); if(re->backbuf) { re->backbuf->id.us--; diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index f1c356a0a77..b02e89233e5 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -4585,16 +4585,21 @@ void do_vgroupbuts(unsigned short event) switch(event) { case B_NEWVGROUP: add_defgroup (ob); + DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); scrarea_queue_winredraw(curarea); allqueue(REDRAWOOPS, 0); + break; case B_DELVGROUP: - if ((G.obedit) && (G.obedit == ob)) + if ((G.obedit) && (G.obedit == ob)) { del_defgroup (ob); - else + } else { del_defgroup_in_object_mode (ob); + DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); + } allqueue (REDRAWVIEW3D, 1); allqueue(REDRAWOOPS, 0); + allqueue(REDRAWBUTSEDIT, 1); BIF_undo_push("Delete vertex group"); break; case B_ASSIGNVGROUP: @@ -4616,6 +4621,7 @@ void do_vgroupbuts(unsigned short event) break; case B_DESELVGROUP: sel_verts_defgroup(0); + DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); allqueue (REDRAWVIEW3D, 1); allqueue(REDRAWOOPS, 0); countall(); diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index f9951bbbcb7..6190f1f0a73 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -3123,9 +3123,13 @@ void do_effects_panels(unsigned short event) } } else { - psys->flag |= PSYS_EDITED; - if(G.f & G_PARTICLEEDIT) - PE_create_particle_edit(ob, psys); + if(psys_check_enabled(ob, psys)) { + psys->flag |= PSYS_EDITED; + if(G.f & G_PARTICLEEDIT) + PE_create_particle_edit(ob, psys); + } + else + error("Particle system not enabled, skipping set editable"); } } case B_FIELD_DEP: diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c index 5fd23af591e..b295cdd8481 100644 --- a/source/blender/src/buttons_scene.c +++ b/source/blender/src/buttons_scene.c @@ -1175,9 +1175,14 @@ static void seq_panel_proxy() } if (last_seq->flag & SEQ_USE_PROXY_CUSTOM_DIR) { + uiDefIconBut(block, BUT, B_SEQ_SEL_PROXY_DIR, + ICON_FILESEL, 10, 120, 20, 20, 0, 0, 0, 0, 0, + "Select the directory/name for " + "the proxy storage"); + uiDefBut(block, TEX, B_SEQ_BUT_RELOAD, "Dir: ", - 10,120,240,19, last_seq->strip->proxy->dir, + 30,120,220,20, last_seq->strip->proxy->dir, 0.0, 160.0, 100, 0, ""); } @@ -1264,10 +1269,20 @@ void sequencer_panels() } } +static void sel_proxy_dir(char *name) +{ + Sequence *last_seq = get_last_seq(); + strcpy(last_seq->strip->proxy->dir, name); + + allqueue(REDRAWBUTSSCENE, 0); + + BIF_undo_push("Change proxy directory"); +} void do_sequencer_panels(unsigned short event) { Sequence *last_seq = get_last_seq(); + ScrArea * sa; switch(event) { case B_SEQ_BUT_PLUGIN: @@ -1280,6 +1295,13 @@ void do_sequencer_panels(unsigned short event) case B_SEQ_BUT_REBUILD_PROXY: seq_proxy_rebuild(last_seq); break; + case B_SEQ_SEL_PROXY_DIR: + sa= closest_bigger_area(); + areawinset(sa->win); + activate_fileselect(FILE_SPECIAL, "SELECT PROXY DIR", + last_seq->strip->proxy->dir, + sel_proxy_dir); + break; case B_SEQ_BUT_RELOAD: case B_SEQ_BUT_RELOAD_ALL: update_seq_ipo_rect(last_seq); diff --git a/source/blender/src/buttons_shading.c b/source/blender/src/buttons_shading.c index 5e420ade204..b46679898b4 100644 --- a/source/blender/src/buttons_shading.c +++ b/source/blender/src/buttons_shading.c @@ -238,7 +238,7 @@ static void save_env(char *name) char str[FILE_MAX]; strcpy(str, name); - BLI_convertstringcode(str, G.sce, G.scene->r.cfra); + BLI_convertstringcode(str, G.sce); tex= G.buts->lockpoin; if(tex && GS(tex->id.name)==ID_TE) { @@ -2338,9 +2338,9 @@ static void world_panel_preview(World *wrld) uiBlockBeginAlign(block); 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) { + /*if (wrld->skytype & WO_SKYBLEND) {*/ /* In some (rare?) cases its possible to use this, leave this out for now */ 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); } diff --git a/source/blender/src/drawimage.c b/source/blender/src/drawimage.c index ac2b92d0815..6d1cd244b84 100644 --- a/source/blender/src/drawimage.c +++ b/source/blender/src/drawimage.c @@ -533,7 +533,7 @@ void draw_uvs_sima(void) if (G.sima->flag & SI_DRAW_STRETCH) { - float col[3]; + float col[4]; float aspx, aspy; float tface_uv[4][2]; diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c index 808320bb9de..aec0e112b32 100644 --- a/source/blender/src/drawobject.c +++ b/source/blender/src/drawobject.c @@ -3474,6 +3474,8 @@ static void draw_particle_edit(Object *ob, ParticleSystem *psys) PE_hide_keys_time(psys,CFRA); psys_cache_paths(ob,psys,CFRA,0); } + if(psys->pathcache==0) + return; if(pset->flag & PE_SHOW_CHILD && psys->part->draw_as == PART_DRAW_PATH) { if(psys->childcache==0) diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c index d97701e8c1e..b01b7bc151c 100644 --- a/source/blender/src/drawview.c +++ b/source/blender/src/drawview.c @@ -3394,8 +3394,12 @@ static double swaptime; static int curmode; /* used for fps display */ +#define REDRAW_FRAME_AVERAGE 8 static double redrawtime; static double lredrawtime; +static float redrawtimes_fps[REDRAW_FRAME_AVERAGE]; +static short redrawtime_index; + int update_time(void) { @@ -3418,13 +3422,33 @@ static void draw_viewport_fps(ScrArea *sa) { float fps; char printable[16]; - + int i, tot; if (lredrawtime == redrawtime) return; printable[0] = '\0'; - fps = (float)(1.0/(lredrawtime-redrawtime)); + +#if 0 + /* this is too simple, better do an average */ + fps = (float)(1.0/(lredrawtime-redrawtime)) +#else + redrawtimes_fps[redrawtime_index] = (float)(1.0/(lredrawtime-redrawtime)); + + for (i=0, tot=0, fps=0.0f ; i < REDRAW_FRAME_AVERAGE ; i++) { + if (redrawtimes_fps[i]) { + fps += redrawtimes_fps[i]; + tot++; + } + } + if (tot) { + redrawtime_index++; + if (redrawtime_index >= REDRAW_FRAME_AVERAGE) + redrawtime_index = 0; + + fps = fps / tot; + } +#endif /* is this more then half a frame behind? */ if (fps+0.5 < FPS) { @@ -3549,6 +3573,12 @@ void inner_play_anim_loop(int init, int mode) cached = cached_dynamics(PSFRA,PEFRA); redrawtime = 1.0/FPS; + + redrawtime_index = REDRAW_FRAME_AVERAGE; + while(redrawtime_index--) { + redrawtimes_fps[redrawtime_index] = 0.0; + } + redrawtime_index = 0; lredrawtime = 0.0; return; } diff --git a/source/blender/src/editcurve.c b/source/blender/src/editcurve.c index d9bc55fa8bf..34dcab09c2a 100644 --- a/source/blender/src/editcurve.c +++ b/source/blender/src/editcurve.c @@ -4316,8 +4316,10 @@ Nurb *addNurbprim(int type, int stype, int newname) makeknots(nu, 1, nu->flagu>>1); BLI_addtail(&editNurb, nu); /* temporal for spin */ - if(newname) spin_nurb(0, 2); - else spin_nurb(0, 0); + if(newname && (U.flag & USER_ADD_VIEWALIGNED) == 0) + spin_nurb(0, 2); + else + spin_nurb(0, 0); makeknots(nu, 2, nu->flagv>>1); @@ -4344,8 +4346,10 @@ Nurb *addNurbprim(int type, int stype, int newname) nu->resolv= 32; nu->flag= CU_SMOOTH; BLI_addtail(&editNurb, nu); /* temporal for extrude and translate */ - if(newname) spin_nurb(0, 2); - else spin_nurb(0, 0); + if(newname && (U.flag & USER_ADD_VIEWALIGNED) == 0) + spin_nurb(0, 2); + else + spin_nurb(0, 0); BLI_remlink(&editNurb, nu); diff --git a/source/blender/src/editdeform.c b/source/blender/src/editdeform.c index 6d6a53fc59e..a072898327f 100644 --- a/source/blender/src/editdeform.c +++ b/source/blender/src/editdeform.c @@ -217,19 +217,25 @@ void duplicate_defgroup ( Object *ob ) dg = BLI_findlink (&ob->defbase, (ob->actdef-1)); if (!dg) return; - - BLI_snprintf (name, 32, "%s_copy", dg->name); - while (get_named_vertexgroup (ob, name)) { - if ((strlen (name) + 6) > 32) { - error ("Error: the name for the new group is > 32 characters"); - return; + + if (strstr(dg->name, "_copy")) { + BLI_strncpy (name, dg->name, 32); /* will be renamed _copy.001... etc */ + } else { + BLI_snprintf (name, 32, "%s_copy", dg->name); + while (get_named_vertexgroup (ob, name)) { + if ((strlen (name) + 6) > 32) { + error ("Error: the name for the new group is > 32 characters"); + return; + } + strcpy (s, name); + BLI_snprintf (name, 32, "%s_copy", s); } - strcpy (s, name); - BLI_snprintf (name, 32, "%s_copy", s); - } + } cdg = copy_defgroup (dg); strcpy (cdg->name, name); + unique_vertexgroup_name(cdg, ob); + BLI_addtail (&ob->defbase, cdg); idg = (ob->actdef-1); diff --git a/source/blender/src/editimasel.c b/source/blender/src/editimasel.c index 2ee583788e5..67e10d771e0 100644 --- a/source/blender/src/editimasel.c +++ b/source/blender/src/editimasel.c @@ -166,8 +166,7 @@ static void activate_imageselect_(int type, char *title, char *file, short *menu name[2]= 0; BLI_strncpy(name, file, sizeof(name)); - BLI_convertstringcode(name, G.sce, G.scene->r.cfra); - + BLI_convertstringcode(name, G.sce); simasel= curarea->spacedata.first; diff --git a/source/blender/src/editipo.c b/source/blender/src/editipo.c index d72bdc6fc80..a8b2ff761e5 100644 --- a/source/blender/src/editipo.c +++ b/source/blender/src/editipo.c @@ -3793,6 +3793,12 @@ void clean_ipo_curve(IpoCurve *icu) MEM_freeN(old_bezts); } + +/* temp struct used for smooth_ipo */ +typedef struct tSmooth_Bezt { + float *h1, *h2, *h3; /* bezt->vec[0,1,2][1] */ +} tSmooth_Bezt; + void smooth_ipo(void) { EditIpo *ei; @@ -3804,7 +3810,6 @@ void smooth_ipo(void) ei= G.sipo->editipo; for(b=0; b<G.sipo->totipo; b++, ei++) { if (ISPOIN3(ei, flag & IPO_VISIBLE, icu, icu->bezt)) { - ok= 0; if(G.sipo->showkey) ok= 1; else if(totipo_vert && (ei->flag & IPO_EDIT)) ok= 2; @@ -3813,52 +3818,94 @@ void smooth_ipo(void) if(ok) { IpoCurve *icu= ei->icu; BezTriple *bezt; - float meanValSum = 0.0f, meanVal; - float valDiff; - int i, totSel = 0; + int i, x, totSel = 0; /* check if enough points */ if (icu->totvert >= 3) { - /* first loop through - obtain average value */ + /* first loop through - count how many verts are selected, and fix up handles */ bezt= icu->bezt; - for (i=1; i < icu->totvert; i++, bezt++) { + for (i=0; i < icu->totvert; i++, bezt++) { if (BEZSELECTED(bezt)) { /* line point's handles up with point's vertical position */ bezt->vec[0][1]= bezt->vec[2][1]= bezt->vec[1][1]; - if(bezt->h1==HD_AUTO || bezt->h1==HD_VECT) bezt->h1= HD_ALIGN; - if(bezt->h2==HD_AUTO || bezt->h2==HD_VECT) bezt->h2= HD_ALIGN; + if ((bezt->h1==HD_AUTO) || (bezt->h1==HD_VECT)) bezt->h1= HD_ALIGN; + if ((bezt->h2==HD_AUTO) || (bezt->h2==HD_VECT)) bezt->h2= HD_ALIGN; /* add value to total */ - meanValSum += bezt->vec[1][1]; totSel++; } } - /* calculate mean value */ - meanVal= meanValSum / totSel; - - /* second loop through - update point positions */ - bezt= icu->bezt; - for (i=0; i < icu->totvert; i++, bezt++) { - if (BEZSELECTED(bezt)) { - /* 1. calculate difference between the points - * 2. move point half-way along that distance - */ - if (bezt->vec[1][1] > meanVal) { - /* bezt val above mean */ - valDiff= bezt->vec[1][1] - meanVal; - bezt->vec[1][1]= meanVal + (valDiff / 2); + /* if any points were selected, allocate tSmooth_Bezt points to work on */ + if (totSel >= 3) { + tSmooth_Bezt *tarray, *tsb; + + /* allocate memory in one go */ + tsb= tarray= MEM_callocN(totSel*sizeof(tSmooth_Bezt), "tSmooth_Bezt Array"); + + /* populate tarray with data of selected points */ + bezt= icu->bezt; + for (i=0, x=0; (i < icu->totvert) && (x < totSel); i++, bezt++) { + if (BEZSELECTED(bezt)) { + /* tsb simply needs pointer to vec, and index */ + tsb->h1 = &bezt->vec[0][1]; + tsb->h2 = &bezt->vec[1][1]; + tsb->h3 = &bezt->vec[2][1]; + + /* advance to the next tsb to populate */ + if (x < totSel- 1) + tsb++; + else + break; } - else { - /* bezt val below mean */ - valDiff= meanVal - bezt->vec[1][1]; - bezt->vec[1][1] = bezt->vec[1][1] + (valDiff / 2); + } + + /* calculate the new smoothed ipo's with weighted averages: + * - this is done with two passes + * - uses 5 points for each operation (which stores in the relevant handles) + * - previous: w/a ratio = 3:5:2:1:1 + * - next: w/a ratio = 1:1:2:5:3 + */ + + /* round 1: calculate previous and next */ + tsb= tarray; + for (i=0; i < totSel; i++, tsb++) { + /* don't touch end points (otherwise, curves slowly explode) */ + if (ELEM(i, 0, (totSel-1)) == 0) { + tSmooth_Bezt *tP1 = tsb - 1; + tSmooth_Bezt *tP2 = (i-2 > 0) ? (tsb - 2) : (NULL); + tSmooth_Bezt *tN1 = tsb + 1; + tSmooth_Bezt *tN2 = (i+2 < totSel) ? (tsb + 2) : (NULL); + + float p1 = *tP1->h2; + float p2 = (tP2) ? (*tP2->h2) : (*tP1->h2); + float c1 = *tsb->h2; + float n1 = *tN1->h2; + float n2 = (tN2) ? (*tN2->h2) : (*tN1->h2); + + /* calculate previous and next */ + *tsb->h1= (3*p2 + 5*p1 + 2*c1 + n1 + n2) / 12; + *tsb->h3= (p2 + p1 + 2*c1 + 5*n1 + 3*n2) / 12; } } + + /* round 2: calculate new values and reset handles */ + tsb= tarray; + for (i=0; i < totSel; i++, tsb++) { + /* calculate new position by averaging handles */ + *tsb->h2 = (*tsb->h1 + *tsb->h3) / 2; + + /* reset handles now */ + *tsb->h1 = *tsb->h2; + *tsb->h3 = *tsb->h2; + } + + /* free memory required for tarray */ + MEM_freeN(tarray); } } - - /* recalc handles */ + + /* recalculate handles */ calchandles_ipocurve(icu); } } diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c index 335c8378507..a412a7945ee 100644 --- a/source/blender/src/editobject.c +++ b/source/blender/src/editobject.c @@ -555,6 +555,20 @@ static int return_editcurve_indexar(int *tot, int **indexar, float *cent) return totvert; } +/* use this when the loc/size/rot of the parent has changed but the children should stay in the same place + * apply-size-rot or object center for eg */ +static void ignore_parent_tx( Object *ob ) { + Object *ob_child; + /* a change was made, adjust the children to compensate */ + for (ob_child=G.main->object.first; ob_child; ob_child=ob_child->id.next) { + if (ob_child->parent == ob) { + apply_obmat(ob_child); + what_does_parent(ob_child); + Mat4Invert(ob_child->parentinv, workob.obmat); + } + } +} + static void select_editcurve_hook(HookModifierData *hmd) { extern ListBase editNurb; @@ -1936,6 +1950,9 @@ void docenter(int centermode) base->object->loc[1]+= centn[1]; base->object->loc[2]+= centn[2]; + where_is_object(base->object); + ignore_parent_tx(base->object); + /* other users? */ ob= G.main->object.first; while(ob) { @@ -1954,6 +1971,9 @@ void docenter(int centermode) ob->loc[1]+= centn[1]; ob->loc[2]+= centn[2]; + where_is_object(ob); + ignore_parent_tx(ob); + if(tme && (tme->flag & ME_ISDONE)==0) { mvert= tme->mvert; for(a=0; a<tme->totvert; a++, mvert++) { @@ -2033,6 +2053,9 @@ void docenter(int centermode) base->object->loc[0]+= cent[0]; base->object->loc[1]+= cent[1]; base->object->loc[2]+= cent[2]; + + where_is_object(base->object); + ignore_parent_tx(base->object); } tot_change++; @@ -2080,6 +2103,10 @@ void docenter(int centermode) */ docenter_armature(base->object, centermode); tot_change++; + + where_is_object(base->object); + ignore_parent_tx(base->object); + if(G.obedit) break; } @@ -3869,7 +3896,7 @@ void make_links(short event) void apply_objects_locrot( void ) { Base *base, *basact; - Object *ob, *ob_child; + Object *ob; bArmature *arm; Mesh *me; Curve *cu; @@ -4018,14 +4045,7 @@ void apply_objects_locrot( void ) continue; } - /* a change was made, adjust the children to compensate */ - for (ob_child=G.main->object.first; ob_child; ob_child=ob_child->id.next) { - if (ob_child->parent == ob) { - apply_obmat(ob_child); - what_does_parent(ob_child); - Mat4Invert(ob_child->parentinv, workob.obmat); - } - } + ignore_parent_tx(ob); } } if (change) { diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c index 2df92af5bca..1cd8733a7ea 100644 --- a/source/blender/src/editscreen.c +++ b/source/blender/src/editscreen.c @@ -890,12 +890,6 @@ int afterqtest(short win, unsigned short evt) static char ext_load_str[256]= {0, 0}; -void add_readfile_event(char *filename) -{ - mainqenter(LOAD_FILE, 1); - strcpy(ext_load_str, filename); - BLI_convertstringcode(ext_load_str, G.sce, G.scene->r.cfra); -} static short ext_reshape= 0, ext_redraw=0, ext_inputchange=0, ext_mousemove=0, ext_undopush=0; @@ -1396,7 +1390,7 @@ void screenmain(void) else if (event==QKEY) { /* Temp place to print mem debugging info ctrl+alt+shift + qkey */ if ( G.qual == (LR_SHIFTKEY | LR_ALTKEY | LR_CTRLKEY) ) { - MEM_printmemlist_pydict(); + MEM_printmemlist_stats(); } else if((G.obedit && G.obedit->type==OB_FONT && g_activearea->spacetype==SPACE_VIEW3D)||g_activearea->spacetype==SPACE_TEXT||g_activearea->spacetype==SPACE_SCRIPT); diff --git a/source/blender/src/editsima.c b/source/blender/src/editsima.c index c0efbf8b40b..f5cf29528f3 100644 --- a/source/blender/src/editsima.c +++ b/source/blender/src/editsima.c @@ -2288,7 +2288,9 @@ static void save_image_doit(char *name) if (ibuf) { BLI_strncpy(str, name, sizeof(str)); - BLI_convertstringcode(str, G.sce, G.scene->r.cfra); + BLI_convertstringcode(str, G.sce); + BLI_convertstringframe(str, G.scene->r.cfra); + if(G.scene->r.scemode & R_EXTENSION) { BKE_add_image_extension(str, G.sima->imtypenr); @@ -2499,7 +2501,7 @@ void save_image_sequence_sima(void) char name[FILE_MAX]; BLI_strncpy(name, ibuf->name, sizeof(name)); - BLI_convertstringcode(name, G.sce, 0); + BLI_convertstringcode(name, G.sce); if(0 == IMB_saveiff(ibuf, name, IB_rect | IB_zbuf | IB_zbuffloat)) { error("Could not write image", name); diff --git a/source/blender/src/editsound.c b/source/blender/src/editsound.c index 3ea9a0fb056..1cb7ec276cb 100644 --- a/source/blender/src/editsound.c +++ b/source/blender/src/editsound.c @@ -713,7 +713,7 @@ bSound *sound_new_sound(char *name) if (!G.scene->audio.mixrate) G.scene->audio.mixrate = 44100; /* convert the name to absolute path */ strcpy(str, name); - BLI_convertstringcode(str, G.sce, G.scene->r.cfra); + BLI_convertstringcode(str, G.sce); /* check if the sample on disk can be opened */ file = open(str, O_BINARY|O_RDONLY); @@ -825,7 +825,7 @@ bSample *sound_new_sample(bSound *sound) /* 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_convertstringcode(samplename, G.sce); BLI_strncpy(sample->name, samplename, FILE_MAXDIR); /* connect the pf to the sample */ @@ -849,13 +849,13 @@ bSample *sound_find_sample(bSound *sound) // convert sound->name to abolute filename strcpy(name, sound->name); - BLI_convertstringcode(name, G.sce, G.scene->r.cfra); + BLI_convertstringcode(name, G.sce); /* search through the list of loaded samples */ sample = samples->first; while (sample) { strcpy(samplename, sample->name); - BLI_convertstringcode(samplename, G.sce, G.scene->r.cfra); + BLI_convertstringcode(samplename, G.sce); if (strcmp(name, samplename) == 0) { break; diff --git a/source/blender/src/filesel.c b/source/blender/src/filesel.c index 138e0faa491..74fcc081229 100644 --- a/source/blender/src/filesel.c +++ b/source/blender/src/filesel.c @@ -1172,7 +1172,7 @@ static void activate_fileselect_(int type, char *title, char *file, short *menup name[2]= 0; BLI_strncpy(name, file, sizeof(name)); - BLI_convertstringcode(name, G.sce, G.scene->r.cfra); + BLI_convertstringcode(name, G.sce); sfile= curarea->spacedata.first; diff --git a/source/blender/src/fluidsim.c b/source/blender/src/fluidsim.c index b51f5bba4d6..a7361a9ffca 100644 --- a/source/blender/src/fluidsim.c +++ b/source/blender/src/fluidsim.c @@ -622,7 +622,7 @@ void fluidsimBake(struct Object *ob) // prepare names... strncpy(targetDir, domainSettings->surfdataPath, FILE_MAXDIR); strncpy(newSurfdataPath, domainSettings->surfdataPath, FILE_MAXDIR); - BLI_convertstringcode(targetDir, G.sce, 0); // fixed #frame-no + BLI_convertstringcode(targetDir, G.sce); // fixed #frame-no strcpy(targetFile, targetDir); strcat(targetFile, suffixConfig); @@ -674,7 +674,7 @@ void fluidsimBake(struct Object *ob) if(selection<1) return; // 0 from menu, or -1 aborted strcpy(targetDir, newSurfdataPath); strncpy(domainSettings->surfdataPath, newSurfdataPath, FILE_MAXDIR); - BLI_convertstringcode(targetDir, G.sce, 0); // fixed #frame-no + BLI_convertstringcode(targetDir, G.sce); // fixed #frame-no } // -------------------------------------------------------------------------------------------- diff --git a/source/blender/src/ghostwinlay.c b/source/blender/src/ghostwinlay.c index 90a9ae9e406..7179f2fae57 100644 --- a/source/blender/src/ghostwinlay.c +++ b/source/blender/src/ghostwinlay.c @@ -927,6 +927,42 @@ void window_open_ndof(Window* win) } ndofLib = PIL_dynlib_open(plug_path); + + /* On systems where blender is installed in /usr/bin/blender, ~/.blender/plugins/ is a better place to look */ + if (ndofLib==NULL) { + + if (plug_path) { + MEM_freeN(plug_path); + } + + inst_path = BLI_gethome(); + if (inst_path) { + size_t len = strlen(inst_path) + strlen(plug_dir) + strlen(PATH_SEP)*2 + + strlen(plug_name) + 1; + + if (!strstr(inst_path, ".blender")) { + len += strlen(".blender") + strlen(PATH_SEP); + } + + plug_path = MEM_mallocN(len, "ndofpluginpath"); + if (plug_path) { + strncpy(plug_path, inst_path, len); + strcat(plug_path, PATH_SEP); + if (!strstr(inst_path, ".blender")) { + strcat(plug_path, ".blender"); + strcat(plug_path, PATH_SEP); + } + strcat(plug_path, plug_dir); + strcat(plug_path, PATH_SEP); + strcat(plug_path, plug_name); + } + } + + ndofLib = PIL_dynlib_open(plug_path); + } + + + #if 0 fprintf(stderr, "plugin path=%s; ndofLib=%p\n", plug_path, (void*)ndofLib); #endif diff --git a/source/blender/src/header_action.c b/source/blender/src/header_action.c index 2ed5107da29..9c7046c5111 100644 --- a/source/blender/src/header_action.c +++ b/source/blender/src/header_action.c @@ -95,7 +95,10 @@ enum { ACTMENU_VIEW_NOHIDE, ACTMENU_VIEW_TRANSDELDUPS, ACTMENU_VIEW_HORIZOPTIMISE, - ACTMENU_VIEW_GCOLORS + ACTMENU_VIEW_GCOLORS, + ACTMENU_VIEW_PREVRANGESET, + ACTMENU_VIEW_PREVRANGECLEAR, + ACTMENU_VIEW_PREVRANGEAUTO }; enum { @@ -350,6 +353,15 @@ static void do_action_viewmenu(void *arg, int event) case ACTMENU_VIEW_GCOLORS: /* Draw grouped-action channels using its group's color */ G.saction->flag ^= SACTION_NODRAWGCOLORS; break; + case ACTMENU_VIEW_PREVRANGESET: /* Set preview range */ + anim_previewrange_set(); + break; + case ACTMENU_VIEW_PREVRANGECLEAR: /* Clear preview range */ + anim_previewrange_clear(); + break; + case ACTMENU_VIEW_PREVRANGEAUTO: /* Auto preview-range length */ + action_previewrange_set(G.saction->action); + break; } allqueue(REDRAWVIEW3D, 0); } @@ -447,11 +459,30 @@ static uiBlock *action_viewmenu(void *arg_unused) "Play Back Animation|Alt A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_VIEW_PLAY3D, ""); + //uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, + // "Play Back Animation in 3D View|Alt Shift A", 0, yco-=20, + // menuwidth, 19, NULL, 0.0, 0.0, 1, + // ACTMENU_VIEW_PLAYALL, ""); + + uiDefBut(block, SEPR, 0, "", 0, yco-=6, + menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, - "Play Back Animation in 3D View|Alt Shift A", 0, yco-=20, + "Set Preview Range|Ctrl P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, - ACTMENU_VIEW_PLAYALL, ""); - + ACTMENU_VIEW_PREVRANGESET, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, + "Clear Preview Range|Alt P", 0, yco-=20, + menuwidth, 19, NULL, 0.0, 0.0, 1, + ACTMENU_VIEW_PREVRANGECLEAR, ""); + + if (G.saction->action) { + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, + "Preview Range from Action Length|Ctrl Alt P", 0, yco-=20, + menuwidth, 19, NULL, 0.0, 0.0, 1, + ACTMENU_VIEW_PREVRANGEAUTO, ""); + } + uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); diff --git a/source/blender/src/header_ipo.c b/source/blender/src/header_ipo.c index 54a3790574b..81d94725a90 100644 --- a/source/blender/src/header_ipo.c +++ b/source/blender/src/header_ipo.c @@ -745,6 +745,12 @@ static void do_ipo_viewmenu(void *arg, int event) case 12: G.sipo->flag ^= SIPO_LOCK_VIEW; break; + case 13: /* Set Preview Range */ + anim_previewrange_set(); + break; + case 14: /* Clear Preview Range */ + anim_previewrange_clear(); + break; } } @@ -775,10 +781,17 @@ static uiBlock *ipo_viewmenu(void *arg_unused) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Play Animation|Alt A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Play Animation in 3D View|Alt Shift A", 0, yco-=20, - menuwidth, 19, NULL, 0.0, 0.0, 1, 7, ""); + //uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Play Animation in 3D View|Alt Shift A", 0, yco-=20, + // menuwidth, 19, NULL, 0.0, 0.0, 1, 7, ""); uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); + + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Set Preview Range|Ctrl P", 0, yco-=20, + menuwidth, 19, NULL, 0.0, 0.0, 1, 13, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Preview Range|Alt P", 0, yco-=20, + menuwidth, 19, NULL, 0.0, 0.0, 1, 14, ""); + + uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Center on Current Frame|Shift C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, ""); diff --git a/source/blender/src/header_nla.c b/source/blender/src/header_nla.c index 41e7bc32365..ef4b79c0537 100644 --- a/source/blender/src/header_nla.c +++ b/source/blender/src/header_nla.c @@ -122,6 +122,12 @@ static void do_nla_viewmenu(void *arg, int event) case 7: /* Show timing in Frames or Seconds */ G.snla->flag ^= SNLA_DRAWTIME; break; + case 8: /* Set Preview Range */ + anim_previewrange_set(); + break; + case 9: /* Clear Preview Range */ + anim_previewrange_clear(); + break; } } @@ -154,7 +160,12 @@ static uiBlock *nla_viewmenu(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, "Play Back Animation|Alt A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Play Back Animation in 3D View|Alt Shift A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); + //uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Play Back Animation in 3D View|Alt Shift A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); + + uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); + + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Set Preview Range|Ctrl P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Preview Range|Alt P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, ""); uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); diff --git a/source/blender/src/interface_draw.c b/source/blender/src/interface_draw.c index fdb5fea658c..83a3c12bae7 100644 --- a/source/blender/src/interface_draw.c +++ b/source/blender/src/interface_draw.c @@ -1839,7 +1839,7 @@ static void ui_draw_but_CHARTAB(uiBut *but) int err; strcpy(tmpStr, G.selfont->name); - BLI_convertstringcode(tmpStr, G.sce, 0); + BLI_convertstringcode(tmpStr, G.sce); err = FTF_SetFont((unsigned char *)tmpStr, 0, 14.0); } } diff --git a/source/blender/src/outliner.c b/source/blender/src/outliner.c index a887a6f1751..683b06aafc4 100644 --- a/source/blender/src/outliner.c +++ b/source/blender/src/outliner.c @@ -3539,7 +3539,7 @@ static void namebutton_cb(void *tep, void *oldnamep) if (te->idcode == ID_LI) { char expanded[FILE_MAXDIR + FILE_MAXFILE]; BLI_strncpy(expanded, ((Library *)tselem->id)->name, FILE_MAXDIR + FILE_MAXFILE); - BLI_convertstringcode(expanded, G.sce, G.scene->r.cfra); + BLI_convertstringcode(expanded, G.sce); if (!BLI_exists(expanded)) { error("This path does not exist, correct this before saving"); } diff --git a/source/blender/src/screendump.c b/source/blender/src/screendump.c index b5240a94241..e793c224fcb 100644 --- a/source/blender/src/screendump.c +++ b/source/blender/src/screendump.c @@ -69,7 +69,8 @@ void write_screendump(char *name) if(dumprect) { strcpy(G.ima, name); - BLI_convertstringcode(name, G.sce, G.scene->r.cfra); + BLI_convertstringcode(name, G.sce); + BLI_convertstringframe(name, G.scene->r.cfra); /* TODO - is this ever used? */ /* BKE_add_image_extension() checks for if extension was already set */ if(G.scene->r.scemode & R_EXTENSION) diff --git a/source/blender/src/seqaudio.c b/source/blender/src/seqaudio.c index 3e784019274..7c27f32c242 100644 --- a/source/blender/src/seqaudio.c +++ b/source/blender/src/seqaudio.c @@ -106,7 +106,7 @@ void makewavstring (char *string) if (string==0) return; strcpy(string, G.scene->r.pic); - BLI_convertstringcode(string, G.sce, G.scene->r.cfra); + BLI_convertstringcode(string, G.sce); BLI_make_existing_file(string); @@ -394,8 +394,7 @@ static void audio_fill_seq(Sequence * seq, void * mixdown, strncat(name, seq->strip->stripdata->name, FILE_MAXFILE-1); - BLI_convertstringcode(name, G.sce, - G.scene->r.cfra); + BLI_convertstringcode(name, G.sce); seq->hdaudio= sound_open_hdaudio(name); } diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c index 22bedab6bee..b4d3a6c3ce2 100644 --- a/source/blender/src/sequence.c +++ b/source/blender/src/sequence.c @@ -429,7 +429,9 @@ void reload_sequence_new_file(Sequence * seq) strncpy(str, seq->strip->dir, FILE_MAXDIR-1); strncat(str, seq->strip->stripdata->name, FILE_MAXFILE-1); - BLI_convertstringcode(str, G.sce, G.scene->r.cfra); + BLI_convertstringcode(str, G.sce); + BLI_convertstringframe(str, G.scene->r.cfra); /* TODO - is this needed? */ + } if (seq->type == SEQ_IMAGE) { @@ -1068,7 +1070,9 @@ static int seq_proxy_get_fname(Sequence * seq, int cfra, char * name) G.scene->r.size); } - BLI_convertstringcode(name, G.sce, frameno); + BLI_convertstringcode(name, G.sce); + BLI_convertstringframe(name, frameno); + strcat(name, ".jpg"); @@ -1269,8 +1273,8 @@ static void make_cb_table_byte(float lift, float gain, float gamma, for (y = 0; y < 256; y++) { float v = 1.0 * y / 255; - v += lift; v *= gain; + v += lift; v = pow(v, gamma); v *= mul; if ( v > 1.0) { @@ -1290,8 +1294,8 @@ static void make_cb_table_float(float lift, float gain, float gamma, for (y = 0; y < 256; y++) { float v = (float) y * 1.0 / 255.0; - v += lift; v *= gain; + v += lift; v = pow(v, gamma); v *= mul; table[y] = v; @@ -1367,7 +1371,7 @@ static void color_balance_float_float(Sequence * seq, TStripElem* se, while (p < e) { int c; for (c = 0; c < 3; c++) { - p[c] = pow((p[c] + cb.lift[c]) * cb.gain[c], + p[c] = pow(p[c] * cb.gain[c] + cb.lift[c], cb.gamma[c]) * mul; } p += 4; @@ -1705,8 +1709,9 @@ static void do_build_seq_ibuf(Sequence * seq, TStripElem *se, int cfra, StripElem * s_elem = give_stripelem(seq, cfra); strncpy(name, seq->strip->dir, FILE_MAXDIR-1); - strncat(name, s_elem->name, FILE_MAXFILE); - BLI_convertstringcode(name, G.sce, G.scene->r.cfra); + strncat(name, s_elem->name, FILE_MAXFILE-1); + BLI_convertstringcode(name, G.sce); + BLI_convertstringframe(name, G.scene->r.cfra); if (!build_proxy_run) { se->ibuf = seq_proxy_fetch(seq, cfra); } @@ -1735,7 +1740,8 @@ static void do_build_seq_ibuf(Sequence * seq, TStripElem *se, int cfra, if(seq->anim==0) { strncpy(name, seq->strip->dir, FILE_MAXDIR-1); strncat(name, seq->strip->stripdata->name, FILE_MAXFILE-1); - BLI_convertstringcode(name, G.sce, G.scene->r.cfra); + BLI_convertstringcode(name, G.sce); + BLI_convertstringframe(name, G.scene->r.cfra); seq->anim = openanim(name, IB_rect); } diff --git a/source/blender/src/space.c b/source/blender/src/space.c index 72fb442fda0..41e539c3d1a 100644 --- a/source/blender/src/space.c +++ b/source/blender/src/space.c @@ -1005,6 +1005,8 @@ void BIF_undo_push(char *str) undo_push_armature(str); } else if(G.f & G_PARTICLEEDIT) { + if (U.undosteps == 0) return; + PE_undo_push(str); } else { diff --git a/source/blender/src/view.c b/source/blender/src/view.c index 8498917b54e..163a116371d 100644 --- a/source/blender/src/view.c +++ b/source/blender/src/view.c @@ -974,8 +974,10 @@ 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==V3D_ORTHO || G.vd->persp==V3D_CAMOB) preview3d_event= 0; } - if(G.vd->persp==V3D_ORTHO || G.vd->persp==V3D_CAMOB) preview3d_event= 0; + mvalo[0]= mval[0]; diff --git a/source/blender/src/writeimage.c b/source/blender/src/writeimage.c index d7e40dabd43..1ef32fc33e8 100644 --- a/source/blender/src/writeimage.c +++ b/source/blender/src/writeimage.c @@ -99,7 +99,8 @@ static void save_rendered_image_cb_real(char *name, int confirm) BKE_add_image_extension(name, G.scene->r.imtype); strcpy(str, name); - BLI_convertstringcode(str, G.sce, G.scene->r.cfra); + BLI_convertstringcode(str, G.sce); + BLI_convertstringframe(str, G.scene->r.cfra); /* TODO - is this even used? */ if (confirm) overwrite = saveover(str); diff --git a/source/blender/src/writemovie.c b/source/blender/src/writemovie.c index 83c3b64eabd..dea7fbd9ddb 100644 --- a/source/blender/src/writemovie.c +++ b/source/blender/src/writemovie.c @@ -97,7 +97,7 @@ static void make_movie_name(char *string) if (string==0) return; strcpy(string, G.scene->r.pic); - BLI_convertstringcode(string, G.sce, G.scene->r.cfra); + BLI_convertstringcode(string, G.sce); len= strlen(string); BLI_make_existing_file(string); diff --git a/source/blender/yafray/intern/export_File.cpp b/source/blender/yafray/intern/export_File.cpp index ac7d2703eb8..f8bbdad5f65 100644 --- a/source/blender/yafray/intern/export_File.cpp +++ b/source/blender/yafray/intern/export_File.cpp @@ -126,7 +126,7 @@ static void adjustPath(string &path) // if relative, expand to full path char cpath[MAXPATHLEN]; strcpy(cpath, path.c_str()); - BLI_convertstringcode(cpath, G.sce, 0); + BLI_convertstringcode(cpath, G.sce); path = cpath; #ifdef WIN32 // add drive char if not there diff --git a/source/blender/yafray/intern/export_Plugin.cpp b/source/blender/yafray/intern/export_Plugin.cpp index 361939df9c4..6ae4a31bf50 100644 --- a/source/blender/yafray/intern/export_Plugin.cpp +++ b/source/blender/yafray/intern/export_Plugin.cpp @@ -278,7 +278,7 @@ static void adjustPath(string &path) // if relative, expand to full path char cpath[MAXPATHLEN]; strcpy(cpath, path.c_str()); - BLI_convertstringcode(cpath, G.sce, 0); + BLI_convertstringcode(cpath, G.sce); path = cpath; #ifdef WIN32 // add drive char if not there diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp index 200c04bbfd3..fa8409b123e 100644 --- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp +++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp @@ -264,7 +264,7 @@ extern "C" void StartKetsjiShell(struct ScrArea *area, if (exitstring != "") strcpy(basedpath, exitstring.Ptr()); - BLI_convertstringcode(basedpath, pathname, 0); + BLI_convertstringcode(basedpath, pathname); bfd = load_game_data(basedpath); // if it wasn't loaded, try it forced relative @@ -275,7 +275,7 @@ extern "C" void StartKetsjiShell(struct ScrArea *area, strcpy(temppath, "//"); strcat(temppath, basedpath); - BLI_convertstringcode(temppath, pathname, 0); + BLI_convertstringcode(temppath, pathname); bfd = load_game_data(temppath); } diff --git a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp index 6b0df44cb16..a656c5e5523 100644 --- a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp +++ b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp @@ -91,6 +91,10 @@ int KX_BlenderRenderTools::ProcessLighting(int layer) { if (m_clientobject) { + if (layer == RAS_LIGHT_OBJECT_LAYER) + { + layer = static_cast<KX_GameObject*>(m_clientobject)->GetLayer(); + } if (applyLights(layer)) { EnableOpenGLLights(); diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 3e83ed20840..08e9e36c048 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -1680,8 +1680,11 @@ static KX_GameObject *gameobject_from_blenderobject( break; } } - if (gameobj) + if (gameobj) + { gameobj->SetPhysicsEnvironment(kxscene->GetPhysicsEnvironment()); + gameobj->SetLayer(ob->lay); + } return gameobj; } diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp index a575415ab05..6b594e2e70b 100644 --- a/source/gameengine/Converter/KX_ConvertActuators.cpp +++ b/source/gameengine/Converter/KX_ConvertActuators.cpp @@ -351,7 +351,7 @@ void BL_ConvertActuators(char* maggiename, else { /* but we need to convert the samplename into absolute pathname first */ - BLI_convertstringcode(soundact->sound->name, maggiename, 0); + BLI_convertstringcode(soundact->sound->name, maggiename); samplename = soundact->sound->name; /* and now we can load it */ diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index f8fc256b371..f13b1bcf4c9 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -163,6 +163,25 @@ bool SCA_KeyboardSensor::Evaluate(CValue* eventval) { m_val=(active)?1:0; result = true; + } else + { + if (active) + { + if (m_val == 0) + { + //see comment below + //m_val = 1; + //result = true; + ; + } + } else + { + if (m_val == 1) + { + m_val = 0; + result = true; + } + } } } @@ -178,6 +197,13 @@ bool SCA_KeyboardSensor::Evaluate(CValue* eventval) if (inevent.m_status == SCA_InputEvent::KX_NO_INPUTSTATUS) { + if (m_val == 1) + { + // this situation may occur after a scene suspend: the keyboard release + // event was not captured, produce now the event off + m_val = 0; + result = true; + } } else { if (inevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED) @@ -190,6 +216,23 @@ bool SCA_KeyboardSensor::Evaluate(CValue* eventval) { m_val = 0; result = true; + } else + { + if (inevent.m_status == SCA_InputEvent::KX_ACTIVE) + { + if (m_val == 0) + { + //hmm, this abnormal situation may occur in the following cases: + //- the key was pressed while the scene was suspended + //- this is a new scene and the key is active from the start + //In the second case, it's dangerous to activate the sensor + //(think of a key to go to next scene) + //What we really need is a edge/level flag in the key sensor + //m_val = 1; + //result = true; + ; + } + } } } } diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp index a91cf3e0439..8810b7470ed 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp +++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp @@ -158,6 +158,25 @@ bool SCA_MouseSensor::Evaluate(CValue* event) { m_val = 0; result = true; + } else + { + if (event.m_status == SCA_InputEvent::KX_ACTIVE) + { + if (m_val == 0) + { + //dangerous + //m_val = 1; + //result = true; + ; + } + } else + { + if (m_val == 1) + { + m_val = 0; + result = true; + } + } } } break; @@ -183,6 +202,13 @@ bool SCA_MouseSensor::Evaluate(CValue* event) { m_val = 0; result = true; + } else + { + if (m_val == 1) + { + m_val = 0; + result = true; + } } } break; diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp index a5b8d8aacdf..edda7657ef9 100644 --- a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp +++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp @@ -137,6 +137,10 @@ int GPC_RenderTools::ProcessLighting(int layer) { if (m_clientobject) { + if (layer == RAS_LIGHT_OBJECT_LAYER) + { + layer = static_cast<KX_GameObject*>(m_clientobject)->GetLayer(); + } if (applyLights(layer)) { EnableOpenGLLights(); diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp index 1496f7c6ad3..8817bc98886 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp @@ -579,7 +579,7 @@ int main(int argc, char** argv) // base the actuator filename with respect // to the original file working directory strcpy(basedpath, exitstring.Ptr()); - BLI_convertstringcode(basedpath, pathname, 0); + BLI_convertstringcode(basedpath, pathname); bfd = load_game_data(basedpath); } diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp index cfdcba8a5d6..44727588106 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp @@ -84,6 +84,7 @@ KX_BlenderMaterial::KX_BlenderMaterial( mScene(scene), mUserDefBlend(0), mModified(0), + mConstructed(false), mPass(0) { @@ -119,7 +120,9 @@ KX_BlenderMaterial::KX_BlenderMaterial( KX_BlenderMaterial::~KX_BlenderMaterial() { // cleanup work - OnExit(); + if (mConstructed) + // clean only if material was actually used + OnExit(); } @@ -138,6 +141,10 @@ unsigned int* KX_BlenderMaterial::GetMCol(void) const void KX_BlenderMaterial::OnConstruction() { + if (mConstructed) + // when material are reused between objects + return; + // for each unique material... int i; for(i=0; i<mMaterial->num_enabled; i++) { @@ -148,19 +155,20 @@ void KX_BlenderMaterial::OnConstruction() } if(!mTextures[i].InitCubeMap(i, mMaterial->cubemap[i] ) ) spit("unable to initialize image("<<i<<") in "<< - mMaterial->matname<< ", image will not be available"); + mMaterial->matname<< ", image will not be available"); } else { if( mMaterial->img[i] ) { if( ! mTextures[i].InitFromImage(i, mMaterial->img[i], (mMaterial->flag[i] &MIPMAP)!=0 )) spit("unable to initialize image("<<i<<") in "<< - mMaterial->matname<< ", image will not be available"); + mMaterial->matname<< ", image will not be available"); } } } mBlendFunc[0] =0; mBlendFunc[1] =0; + mConstructed = true; } void KX_BlenderMaterial::OnExit() diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.h b/source/gameengine/Ketsji/KX_BlenderMaterial.h index 2b1264154d0..b9d48199520 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.h +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.h @@ -93,6 +93,7 @@ private: bool mUserDefBlend; unsigned int mBlendFunc[2]; bool mModified; + bool mConstructed; // if false, don't clean on exit void ActivatGLMaterials( RAS_IRasterizer* rasty )const; void ActivateTexGen( RAS_IRasterizer *ras ) const; diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp index 4a61c37be06..e0cd5a3bc9e 100644 --- a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp +++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp @@ -1123,7 +1123,7 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj, ci.m_inertiaFactor = shapeprops->m_inertia/0.4f;//defaults to 0.4, don't want to change behaviour ci.m_collisionFilterGroup = (isbulletdyna) ? short(CcdConstructionInfo::DefaultFilter) : short(CcdConstructionInfo::StaticFilter); ci.m_collisionFilterMask = (isbulletdyna) ? short(CcdConstructionInfo::AllFilter) : short(CcdConstructionInfo::AllFilter ^ CcdConstructionInfo::StaticFilter); - + ci.m_bRigid = objprop->m_dyna && objprop->m_angular_rigidbody; KX_BulletPhysicsController* physicscontroller = new KX_BulletPhysicsController(ci,isbulletdyna); //remember that we created a shape so that we can delete it when the scene is removed (bullet will not delete it) kxscene->AddShape(bm); @@ -1147,6 +1147,7 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj, //{ // rbody->setCollisionFlags(rbody->getCollisionFlags() | btCollisionObject::CF_NO_CONTACT_RESPONSE); //} + if (objprop->m_dyna && !objprop->m_angular_rigidbody) { /* @@ -1161,8 +1162,10 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj, */ //env->createConstraint(physicscontroller,0,PHY_ANGULAR_CONSTRAINT,0,0,0,0,0,1); - physicscontroller->GetRigidBody()->setAngularFactor(0.f); - + + //Now done directly in ci.m_bRigid so that it propagates to replica + //physicscontroller->GetRigidBody()->setAngularFactor(0.f); + ; } bool isActor = objprop->m_isactor; diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index cf621e04f99..4c6ba448ebf 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -74,6 +74,7 @@ KX_GameObject::KX_GameObject( ) : SCA_IObject(T), m_bDyna(false), + m_layer(0), m_bSuspendDynamics(false), m_bUseObjectColor(false), m_bVisible(true), @@ -228,7 +229,7 @@ void KX_GameObject::SetParent(KX_Scene *scene, KX_GameObject* obj) NodeSetLocalScale(scale1); NodeSetLocalPosition(MT_Point3(newpos[0],newpos[1],newpos[2])); - NodeSetLocalOrientation(NodeGetWorldOrientation()*invori); + NodeSetLocalOrientation(invori*NodeGetWorldOrientation()); NodeUpdateGS(0.f,true); // object will now be a child, it must be removed from the parent list CListValue* rootlist = scene->GetRootParentList(); @@ -479,6 +480,22 @@ KX_GameObject::SetVisible( m_bVisible = v; } +void +KX_GameObject::SetLayer( + int l + ) +{ + m_layer = l; +} + +int +KX_GameObject::GetLayer( + void + ) +{ + return m_layer; +} + // used by Python, and the actuatorshould _not_ be misused by the // scene! void diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 87775e81216..da0cd69e129 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -70,6 +70,7 @@ protected: KX_ClientObjectInfo* m_pClient_info; STR_String m_name; STR_String m_text; + int m_layer; std::vector<RAS_MeshObject*> m_meshes; bool m_bSuspendDynamics; @@ -571,6 +572,22 @@ public: bool b ); + /** + * Change the layer of the object (when it is added in another layer + * than the original layer) + */ + void + SetLayer( + int l + ); + + /** + * Get the object layer + */ + int + GetLayer( + void + ); /** * @section Logic bubbling methods. diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 54003284e03..e4054e07475 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -650,6 +650,8 @@ SCA_IObject* KX_Scene::AddReplicaObject(class CValue* originalobject, for (git = m_logicHierarchicalGameObjects.begin();!(git==m_logicHierarchicalGameObjects.end());++git) { (*git)->Relink(&m_map_gameobject_to_replica); + // add the object in the layer of the parent + (*git)->SetLayer(parentobj->GetLayer()); } // now replicate logic diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp index d99b75482b9..e444c4c73be 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp @@ -137,6 +137,10 @@ void CcdPhysicsController::CreateRigidbody() m_body->setGravity( m_cci.m_gravity); m_body->setDamping(m_cci.m_linearDamping, m_cci.m_angularDamping); + if (!m_cci.m_bRigid) + { + m_body->setAngularFactor(0.f); + } } CcdPhysicsController::~CcdPhysicsController() diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.h b/source/gameengine/Physics/Bullet/CcdPhysicsController.h index 54b4bcc40ee..37fa465351f 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.h +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.h @@ -60,6 +60,7 @@ struct CcdConstructionInfo m_linearDamping(0.1f), m_angularDamping(0.1f), m_collisionFlags(0), + m_bRigid(false), m_collisionFilterGroup(DefaultFilter), m_collisionFilterMask(AllFilter), m_collisionShape(0), @@ -78,6 +79,7 @@ struct CcdConstructionInfo btScalar m_linearDamping; btScalar m_angularDamping; int m_collisionFlags; + bool m_bRigid; ///optional use of collision group/mask: ///only collision with object goups that match the collision mask. diff --git a/source/gameengine/Rasterizer/RAS_BucketManager.cpp b/source/gameengine/Rasterizer/RAS_BucketManager.cpp index 6c3e89fa69d..50df1a1e2ea 100644 --- a/source/gameengine/Rasterizer/RAS_BucketManager.cpp +++ b/source/gameengine/Rasterizer/RAS_BucketManager.cpp @@ -113,6 +113,7 @@ void RAS_BucketManager::RenderAlphaBuckets( std::multiset< alphamesh, backtofront>::iterator msit = alphameshset.begin(); for (; msit != alphameshset.end(); ++msit) { + rendertools->SetClientObject((*(*msit).m_ms).m_clientObj); while ((*msit).m_bucket->ActivateMaterial(cameratrans, rasty, rendertools, drawingmode)) (*msit).m_bucket->RenderMeshSlot(cameratrans, rasty, rendertools, *(*msit).m_ms, drawingmode); } diff --git a/source/gameengine/Rasterizer/RAS_IRenderTools.h b/source/gameengine/Rasterizer/RAS_IRenderTools.h index 30c96d02847..16e15653c82 100644 --- a/source/gameengine/Rasterizer/RAS_IRenderTools.h +++ b/source/gameengine/Rasterizer/RAS_IRenderTools.h @@ -61,6 +61,10 @@ public: RAS_TEXT_PADDED, RAS_TEXT_MAX }; + enum RAS_LIGHT_MODE { + RAS_LIGHT_NONE = -1, + RAS_LIGHT_OBJECT_LAYER = 0 + }; RAS_IRenderTools( ) : diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp index 4642ffbaeb8..02e84f8a243 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp @@ -189,7 +189,7 @@ bool RAS_MaterialBucket::ActivateMaterial(const MT_Transform& cameratrans, RAS_I } else { - rendertools->ProcessLighting(m_material->GetLightLayer()); + rendertools->ProcessLighting(RAS_IRenderTools::RAS_LIGHT_OBJECT_LAYER/*m_material->GetLightLayer()*/); } drawmode = (rasty->GetDrawingMode() < RAS_IRasterizer::KX_SOLID ? @@ -204,7 +204,6 @@ void RAS_MaterialBucket::RenderMeshSlot(const MT_Transform& cameratrans, RAS_IRa if (!ms.m_bVisible) return; - rendertools->SetClientObject(ms.m_clientObj); m_material->ActivateMeshSlot(ms, rasty); /* __NLA Do the deformation */ @@ -317,15 +316,12 @@ void RAS_MaterialBucket::Render(const MT_Transform& cameratrans, //rasty->SetMaterial(*m_material); - if (m_meshSlots.size() >0) - { - rendertools->SetClientObject((*m_meshSlots.begin()).m_clientObj); - } int drawmode; for (T_MeshSlotList::const_iterator it = m_meshSlots.begin(); ! (it == m_meshSlots.end()); ++it) { + rendertools->SetClientObject((*it).m_clientObj); while (ActivateMaterial(cameratrans, rasty, rendertools, drawmode)) RenderMeshSlot(cameratrans, rasty, rendertools, *it, drawmode); } diff --git a/tools/Blender.py b/tools/Blender.py index 30e9979cf9a..e4d143935a3 100644 --- a/tools/Blender.py +++ b/tools/Blender.py @@ -121,6 +121,9 @@ def setup_staticlibs(lenv): ] libincs += Split(lenv['BF_OPENEXR_LIBPATH']) libincs += Split(lenv['BF_FFMPEG_LIBPATH']) + + if lenv['WITH_BF_FREESTYLE']: + libincs += Split(lenv['BF_LIB3DS_LIBPATH']) if lenv['WITH_BF_INTERNATIONAL']: libincs += Split(lenv['BF_GETTEXT_LIBPATH']) @@ -160,12 +163,14 @@ def setup_syslibs(lenv): syslibs += Split(lenv['BF_OPENEXR_LIB']) if lenv['WITH_BF_FFMPEG']: syslibs += Split(lenv['BF_FFMPEG_LIB']) + if lenv['WITH_BF_FREESTYLE']: + syslibs += Split(lenv['BF_LIB3DS_LIB']) syslibs += Split(lenv['BF_SDL_LIB']) if not lenv['WITH_BF_STATICOPENGL']: syslibs += Split(lenv['BF_OPENGL_LIB']) if lenv['OURPLATFORM'] in ('win32-vc', 'win32-mingw','linuxcross'): syslibs += Split(lenv['BF_PTHREADS_LIB']) - + syslibs += Split(lenv['LLIBS']) return syslibs diff --git a/tools/btools.py b/tools/btools.py index 51367d6bd42..8158bf6cfcc 100755 --- a/tools/btools.py +++ b/tools/btools.py @@ -66,6 +66,7 @@ def validate_arguments(args, bc): 'BF_FANCY', 'BF_QUIET', 'BF_X264_CONFIG', 'BF_XVIDCORE_CONFIG', + 'BF_WITH_BF_FREESTYLE', 'BF_FREESTYLE', 'BF_FREESTYLE_SRC', 'BF_SWIG', 'BF_LIB3DS', 'BF_LIB3DS_LIB', 'BF_LIB3DS_LIBPATH', 'BF_LIB3DS_INC' ] arg_list = ['BF_DEBUG', 'BF_QUIET', 'BF_CROSS', 'BF_UPDATE', @@ -236,6 +237,16 @@ def read_opts(cfg, args): ('BF_SOLID_INC', 'Solid include path', ''), ('BF_WINTAB', 'WinTab base dir', ''), ('BF_WINTAB_INC', 'WinTab include dir', ''), + + (BoolOption('WITH_BF_FREESTYLE', 'Use Freestyle if true', 'true')), + ('BF_FREESTYLE', 'Freestyle base path', ''), + ('BF_FREESTYLE_SRC', 'Freestyle source path', ''), + ('BF_SWIG', 'SWIG base path', ''), + ('BF_LIB3DS', 'SWIG base path', ''), + ('BF_LIB3DS_LIB', 'lib3ds library', ''), + ('BF_LIB3DS_LIBPATH', 'lib3ds library path', ''), + ('BF_LIB3DS_INC', 'lib3ds include path', ''), + ## ##WITH_BF_NSPR = 'true' ##BF_NSPR = $(LCGDIR)/nspr |